HP3000-L Archives

April 2000, Week 1

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Reply To:
Date:
Thu, 6 Apr 2000 11:47:33 -0800
Content-Type:
text/plain
Parts/Attachments:
text/plain (54 lines)
>I believe the gcc compiler created the *.o object files ok, but with out
>the filecode NMOBJ.

That's correct. But, that's also OK in that the LINKEDITOR really doesn't
care about the NMOBJ filecode. (Actually, please note that there are a couple
of versions of LINKEDIT that do have a problem - that's a known bug and since
been fixed. Also note that as of 6.5, LINKEDIT doesn't complain - at least
on my version of 6.5 :-))

>The ar command is really the C89 script, which tries to LINKEDIT the obj
>files but is complaining about the files not having the filecode NMOBJ

Correct. /SYS/HPBIN/C89 is really a script interpreter provided by MKS
as part of the POSIX environment. I'm basically a lazy person :o so I
took that path of least resistence when I needed to create an ld
workalike and canabalized the /etc/c89.ccg script into an /etc/ld.ccg
script for gcc.

>ar: "functions/crypt.o" is not a valid object module (file code should
>be NMOBJ) - file ignored

This indicates that you did not run the full installation scripts,
because one portion of the installation script is to patch this out
of /etc/ar.ccg. You can do this by hand:

Around line 121 of /etc/ar.ccg, locate the following:

        while (mem = read(ARGV)) do
                if (!o_t && !access(mem, 4))
                        println CMDNAME|": cannot access file \""|mem|
                                "\" - file ignored";
                elif (!o_t && filecode(mem) != "NMOBJ")
                        println CMDNAME|": \""|mem|
                                "\" is not a valid object module (file code"|
                                " should be NMOBJ) - file ignored";
                else
                        file_count++;
                        if (o_t)
                                println mem -> rfile;
                        else
                                println fullpath(mem) -> rfile;
                        fi
                fi
        done

Delete the following lines from that script:

                elif (!o_t && filecode(mem) != "NMOBJ")
                        println CMDNAME|": \""|mem|
                                "\" is not a valid object module (file code"|
                                " should be NMOBJ) - file ignored";

That should do it!

ATOM RSS1 RSS2