Robert Withrow wrote:
>
> I've searched through the mailing list archives and otherwise
> searched around, but haven't found any real solid information,
> so...
>
BEWARE: I have never done this, but I probably have a reasonable guess
since I wrote the basic "crosskit" ports we carry.
>
> Specifically, I need to know:
>
> 1. Exactly what FreeBSD-specific things need to be done to a
> GCC-2.95.2 compilation system to get cross builds to work?
>
Take a look at Jerry Hicks' crossm68k ports, there is everything you
need to start with a cross binutils and a crossgcc. You should only have
to change the TARGET, but it would be good to check the crossgcc FAQ at
cygnus, JIC there is something special about the powerpc crosscompiler.
> a. What headers should be used? (Not newlib, right?)
> b. What as and ld should be used.
> c. What kind of abi options are necessary? Like stack
> frames, -f<whatevers>, etc...
> d. etc....
>
WRT (b) the crossbinutils will produce the as and ld you need.
There are two possible paths:
1) building FreeBSD from the start (probably the hardest).
- Since you are building for an embedded system you don't need any OS on
your target. Something like powerpc-elf should work (look in the
crossgcc FAQ for the supported targets).
- You should then start porting FreeBSD's libc with this compiler;
newlib is probably a good reference.
- The rest of the userland has to be built, but I wouldn't bet on the
resulting kernel booting due to problems while crossbuilding from 32 to
64 bits.
2) Using another target (probably the path used by FreeBSD-Alpha)
-If you have access to the platform in question but just want the
crossutils to help, you could use the equivalent NetBSD target
(powerpc-netbsd-elf ?).
-In this case you can also use NetBSD's headers and libraries while you
get started, and get the FreeBSD userland (booter, etc) ported.
- Eventually you can get a working kernel and some drivers.
All more easily said than done...
cheers,
Pedro.
> I've scanned through the GCC and Binutils stuff and I have a rough
> idea, but I'd appreciate advice from someone who's actually been
> there and done that! (Maybe one of the original Alpha porters?)
>
> 2. What are the mechanical steps needed to insert a new port?
>
> a. I plan to scan for "[Aa]lpha" in the entire source tree and
> do what they did, but perhaps there is an easier way? Like, where
> are architecture-specific things hiding?
>
> 3. How do you actually cross-build FreeBSD? Is there a FAQ?
>
> a. Again, I plan on scanning for alpha, but a cookbook would
> be easier.
>
> Thanks!
>
> --
> Robert Withrow -- (+1 978 288 8256)
> [EMAIL PROTECTED]
>
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-hackers" in the body of the message
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message