Is it possible to build a cross compiler for AIX 6.1 on Ubuntu?

Jeff Law law@redhat.com
Mon Nov 7 15:52:00 GMT 2016


On 11/07/2016 07:29 AM, jhenson1 wrote:
> Hi Martin and Jeff, thanks for the feedback - it was good to be able to press
> on knowing that it should be possible.  I've managed to get to the stage of
> being able to build a simple executable by invoking gcc and ld seperately.
> e.g. with PREFIX=/cross-compiler and SYSROOT=/cross-compiler/sysroot:
>
> $PREFIX/bin/*gcc -c hello.c
> $PREFIX/bin/*ld -o hello $SYSROOT/lib/crt0.o -lc hello.o
>
> Or:
>
> $/PREFIX/bin/*gcc -nodefaultlibs -nostartfiles  $SYSROOT/lib/crt0.o -lc
> hello.c
>
> This is probably sufficient for my needs but there are some oddities (well,
> they seem odd to me at least) which I've detailed below in case they're of
> interest to anyone.
>
> Thanks,
> Jon
>
> The oddities:
>
> 1. ld and gas have to be built explicitly
> 2. gcc is uanable to link with the built target libgcc
>
>
> I'm using a combined tree with:
>
> gcc-6.2.0
> binutils-2.27
> cloog-0.18.1
> gmp-6.1.0
> isl-0.16.1
> mpc-1.0.3
> mpfr-3.1.4
>
> To build binutls:
>
> ../combined/configure --prefix=/cross-compiler
> --with-sysroot=/cross-compiler/sysroot \
>                       --target=powerpc-ibm-aix6.1 --host=x86_64-linux-gnu -v
>
> make all-binutils && make install-binutils
>
> doesn't build gas or ld so I have to additionally issue:
binutils, gas and ld are distinct targets, thus all-binutils just builds 
the binutils subdirectory which has things like nm, objdump, objcopy, 
etc.  It's somewhat confusing.

Just use "make all && make install"  Or if you really want to build just 
the minimal stuff

"make all-gas all-binutils all-ld && make install-gas install-binutils 
install-ld"


>
> This appears to work, however trying to link against it yields:
>
> root@oc5328343620:/tmp# $PREFIX/bin/*gcc hello.c
> collect2: fatal error:
> /cross-compiler/lib/gcc/powerpc-ibm-aix6.1/6.2.0/libgcc.a: cannot open as
> COFF file
> compilation terminated.
I'd add "-v -Wl,-v" to get more details about what precisely is being 
called.

jeff



More information about the Gcc-help mailing list