Subject: Re: executable formats in port-powerpc
To: Wolfgang Solfrank <ws@kurt.tools.de>
From: Monroe Williams <monroe@pobox.com>
List: port-powerpc
Date: 11/22/1996 15:56:43
Let's see if I can stir up this list a bit...

At 7:01 AM -0800 11/13/96, Wolfgang Solfrank wrote:
>Currently NetBSD/powerpc uses a.out format for nearly everything.  The only
>exception is the boot-code that is in ELF format with a special note-section
>to conform to the format that PReP and PPCP mandate for booting.

I've been playing with the port of linux for PCI PowerMacs.  (There, that 
should get me keelhauled for heresy on this list... ;)  I'd _much_ rather
be playing with NetBSD-powerpc, so I'd like to see what I can do towards
getting it working on my hardware.  

The PCI powermacs have Open Firmware.  It's possible to get the console
working natively (" kbd" input " /chaos/control" output), and they can 
even boot with bootp/tftp over ethernet.  (I've been doing this with my 
7500 for several weeks, booting from an SE/30 running NetBSD-mac68k.  
Sick, huh? ;)  They have the unfortunate quirk that the boot file retreived 
this way apparently needs to be in 'coff' format.  The linux port gets 
around this by creating a kernel in ELF format, using objcopy with a 
polyglot binutils to create a coff version, and then running an almost-trivial
program that sets a couple of magic numbers in the coff file.  I'd like to 
try this with a netbsd-powerpc kernel and see what happens.

>To allow the generation of the proper gcc, I've made the diffs for gcc 2.7.2.1
>available in ftp://ftp.NetBSD.ORG/pub/NetBSD/arch/powerpc/gcc/gcc.diffs.gz.
>You'll have to configure --target=powerpc-aout-netbsd after applying these
>diffs.

>Note that this is only the compiler.  Proper binutils are needed in addition
>to that to make a cross development environment.  I'm using a specially hacked
>version of the NetBSD assembler and linker, so that isn't easy to make available
>to others for cross-compilation.  So sorry :-(, currently you are on your own
>on that.

Is there some reason you _can't_ make the source to this available?  I'd like
to do some experimentation, but learning enough to hack binutils from scratch
myself would probably take me quite some time...

One more random thought -- what would be involved with getting EXEC_ELF
and linux emulation working on the powerpc?  There are several different
powerpc linux flavors out there already, and AFAIK they are all userland-
compatible.  It would be nice to be able to take advantage of the various
binary archive sites that already exist and/or any commercial packages 
that get ported...

-- monroe