Subject: Re: Changes to libexec/ld.aout_so/arch/sparc/md.c
To: Bill Studenmund <wrstuden@nas.nasa.gov>
From: Aymeric Vincent <Aymeric.Vincent@crans.ens-cachan.fr>
List: tech-toolchain
Date: 01/19/2000 00:38:50
Bill Studenmund <wrstuden@nas.nasa.gov> writes:

> On 19 Jan 2000, Aymeric Vincent wrote:
> 
> > Actually, I gave it a try yesterday until late... :-/ But the main
> > problem is that host and target stuff are too much intermixed. I could
> > get a cross-linker (from i386 to m68k, BTW), but here are the problems
> > I encountered:
> 
> How exactly did you do this? A fair cunk of the machinery I'm using I
> haven't released. :-)

Maybe I'll forget something, because I removed everything, since the
rework to be done is more fundamental, but basically, here is the
procedure I used:

 - Add CPPFLAGS+=-DNEED_SWAP -DCROSS_LINKER to Makefile
 -   variant: add -I/m68k/usr/include to get different errors at
	runtime ;) 
 - Add #undef __ELF__ to all source files right before #include <a.out.h>
 - do env MACHINE_ARCH=m68k make
 - copy ld to the right places (/usr/local/bin/m68k-netbsd-ld and
	/usr/local/m68k-netbsd/ld here)

Give it a try, watch it dump core, or funny output of `file' or
`m68k-netbsd-nm' on output files...

All these patches are gross, and that's why I removed them, I was just
trying to see if a quick hack could make it work... But
no... Certainly with little work, I can get a i386->m68k crosslinker,
but this will be highly specific and awful.

BTW, gas.old compiles like a charm, and I can cross-compile the Amiga
(m68k) kernel with ld.new. The problems arise with PIC when trying to
build shared libs in the main tree (basesrc). Wouldn't it be simpler
to make ld.new work with gas.old, or to get rid of gas.old and ld.old
altogether? I suspect there are issues here, else it would've been
done, but what are they?


thanks,
 Aymeric

-- 
COPYING:21-26: error: redefinition of concept `free'