[comp.sys.apollo] Cross Compiling on the DN10,000

turner@dover.sps.mot.com (Robert Turner) (07/11/90)

I'm using the DN10,000 as a compile engine.  I use the C compile
flag -W0,cpu,3000 to force it to compile to the M68K class
processors.

Is it possible to also perform the "ld" on the DN10,000 for M68K
class machines?

I got a suggestion to set the environmental variable, ISP, to
"m68k", and then the ld would work, but alas it didn't.  The
Apollo help line had no suggestions.

Any ideas?

Robert


-- 
-----
Law of the Net:  Trivia begets trivia tenfold.                All opinions are.
Robert Turner (602) 897-5441 ...!uunet!dover!turner or turner@dover.sps.mot.com

krowitz%richter@UMIX.CC.UMICH.EDU (David Krowitz) (07/11/90)

I think the problem may  be that "ld" is going to look for any
system libraries that are being referenced in the local /lib directory
(ie. //dn10000/lib), which of course contains A88K versions of the
libraries (clib, et. al.). Try explicity loading your libraries from
a DN3000's /lib directory.


 -- David Krowitz

krowitz@richter.mit.edu   (18.83.0.109)
krowitz%richter.mit.edu@eddie.mit.edu
krowitz%richter.mit.edu@mitvma.bitnet
(in order of decreasing preference)

u36009@U2.NCSA.UIUC.EDU (07/12/90)

> I'm using the DN10,000 as a compile engine.  I use the C compile
> flag -W0,cpu,3000 to force it to compile to the M68K class
> processors.
> Is it possible to also perform the "ld" on the DN10,000 for M68K
> class machines?

I cross-compile all the time on our 10k by using the "cc" interface to
"ld".  I use:    cc *.o -A cpu,m68k     

There must be a way to get the m68k flag directly to "ld" since "cc" can
do it, but it appears to be undocumented.

By the way, make sure you have a populated /usr/lib/isp_m68k directory.
My sr10.2p installation did not have one so I copied it from a 68k machine
and it works just fine.

-Kem

 =============================================================================
      Kem Ahlers                 u36009@u2.ncsa.uiuc.edu  (Internet) 
      Caterpillar, Inc.          u36009@ncsagate          (Bitnet)   
      Peoria, IL  USA 

vasta@apollo.HP.COM (John Vasta) (07/17/90)

In article <2316@dover.sps.mot.com> turner@dover.sps.mot.com.UUCP (Robert Turner) writes:
>I'm using the DN10,000 as a compile engine.  I use the C compile
>flag -W0,cpu,3000 to force it to compile to the M68K class
>processors.
>
>Is it possible to also perform the "ld" on the DN10,000 for M68K
>class machines?

I would recommend using the -A cpu,3000 option instead of -W0. The
-A options are recognized by the /bin/cc driver, as opposed to the
-W0 options which are just passed through to the C compiler. If you
also use /bin/cc to perform the link step, then it will apply the
correct option to /bin/ld (i.e. any cpu setting implying a 68k
target causes "-A cpu,m68k" to be passed to ld). If you are calling
ld directly you can pass it "-A cpu,m68k" or "-A cpu,a88k" as well.
But since ld won't accept "-A cpu,3000" you can't automatically use
the same cpu option as that used during compilation. It's simpler
to let /bin/cc do the translation for you.

When ld sees a cpu option it will set the ISP environment variable
during its run so that library pathnames resolve to the correct
objects for that cpu type. As someone else pointed out, you must be
sure to have loaded the 68k *archive* libraries (e.g. those in
/usr/lib) on your DN10000.
John Vasta                Hewlett-Packard Apollo Systems Division
vasta@apollo.hp.com       M.S. CHA-01-LT
(508) 256-6600 x6362      300 Apollo Drive, Chelmsford, MA 01824
UUCP: {decwrl!decvax, mit-eddie, attunix}!apollo!vasta