Re: AIX Cross compile on Mac OS X

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Perry Smith wrote:

> I tried just copying over the AIX header files and using the Mac
> compiler but I run off into the weeds.  I'm guessing that the Mac
> compiler has a different set of predefines.  I tried to specify the
> AIX predefines by looking at the output with -v set but I'm still not
> able to compile.  I have -nostdinc set and a few -I<dir> options set
> along with a couple of -Uxxx to take out what the Mac compiler
> defines and a couple -Dxxx to add in what the AIX compiler defines.
> It still isn't working.

That's a bad idea, and I don't expect it would ever work right.  An ABI
is a lot more than just defines.

> So, then I thought I would try to compile gcc using the cross
> compiler options using the Mac as the host and AIX as the target.  I
> get up to where it tries to build libstdc++ and then the configure
> script stops with "undefined host/target combination".  I've loaded
> binutils on the Mac, compiled with AIX as the target as well.  Still
> no go.

This should work fine.  It would help if you specified more details,
e.g. what was the exact configure command and target specification did
you use?  From looking at gcc-testresults it looks like you want
"powerpc-ibm-aix5.3.0.0", but the output of config.guess on the system
ought to tell you what to use.

Note that you will need your cross-binutils already installed and in the
path if you want to build any of the target libraries (libgcc,
libstdc++, libgfortran, libgcj, etc.)  But at that point, the compiler
itself has already been built, so if you want to use it for compiling
only and not linking then it should be sufficient.  I think the make
target is all-gcc to build just gcc and no target libraries.

However since your goal is to verify code when not online then you ought
to actually build a working cross-toolchain and link the output binary,
since that will catch a lot of bugs that just compiling would not.  By
the time you have a working cross-binutils and cross-gcc getting the
target libraries cross compiled should be pretty simple, assuming that
you've copied over the system headers into $prefix/$target/include and
startup objects into $prefix/$target/lib.

Brian

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux