Re: Compiling GCC 10.2 on AIX 7.2

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

 



On Tue, 18 Aug 2020 at 23:41, Randal T. Rioux <randal@xxxxxxxxxxxxxxx> wrote:
>
> On 8/17/20 3:28 PM, Randal T. Rioux wrote:
> > On 8/17/20 12:15 PM, Jonathan Wakely wrote:
> >> On Mon, 17 Aug 2020 at 17:12, Randal T. Rioux <randal@xxxxxxxxxxxxxxx> wrote:
> >>>
> >>> On 8/17/20 6:28 AM, Jonathan Wakely wrote:
> >>>> On Mon, 17 Aug 2020 at 07:04, Randal T. Rioux <randal@xxxxxxxxxxxxxxx> wrote:
> >>>>>
> >>>>> System: IBM POWER 740 (POWER7 CPU)
> >>>>> OS Level: 7200-04-02-2016
> >>>>> Bootstrap Compiler: GCC 8.3.0 from AIX Toolbox (IBM yum repo)
> >>>>>
> >>>>> Please let me know if I need to include anything else. Hopefully I've
> >>>>> provided enough information to aid in my request here.
> >>>>>
> >>>>> Environment Variables:
> >>>>>
> >>>>> export CFLAGS="-mcpu=power7 -pipe -O2 -I/opt/freeware/include"
> >>>>> export CXXFLAGS=$CFLAGS
> >>>>> export LDFLAGS="-L/opt/freeware/lib64 -L/opt/freeware/lib
> >>>>> -Wl,-blibpath:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib
> >>>>> -Wl,-bmaxdata:0x80000000"
> >>>>> export CONFIG_SHELL=/opt/freeware/bin/bash
> >>>>> export CONFIG_ENV_ARGS=/opt/freeware/bin/bash
> >>>>>
> >>>>> configure output: https://pastebin.com/FinvPRPU
> >>>>> config.log: https://pastebin.com/4Y30z9tU
> >>>>> config.status: https://pastebin.com/C7ZC9uzB
> >>>>>
> >>>>> configure seems to work fine, although the config.log seems to show it
> >>>>> ignores my flags to only enable c/c++ compilers (I could be reading this
> >>>>> wrong).
> >>>>
> >>>> You are reading it wrong.
> >>>
> >>> Okay then.
> >>>
> >>>>> Running make works for a little bit, then dies around:
> >>>>>
> >>>>> (snip)
> >>>>> mkdir -p -- common/.deps
> >>>>> mkdir -p -- analyzer/.deps
> >>>>> config.status: executing default commands
> >>>>> gmake[2]: Leaving directory '/usr/src/gcc-build'
> >>>>> gmake[1]: *** [Makefile:20799: stage1-bubble] Error 2
> >>>>> gmake[1]: Leaving directory '/usr/src/gcc-build'
> >>>>> gmake: *** [Makefile:1002: all] Error 2
> >>>>
> >>>> You've snipped the actual error so we can't see what failed.
> >>>
> >>> What specifically would help you (or anyone else) to diagnose this?
> >>
> >> Showing the error.
> >>
> >> Something failed, and then make kept printing some more lines and then
> >> exited. You've only shown the exiting part, not the error that
> >> preceded it.
> >
> > I see - running parallel make added output past the failure point.
> >
> > This is the part where it conks out:
> >
> > (snip)
> > gcc -mcpu=power7 -pipe -O2 -I/opt/freeware/include -L/opt/freeware/lib64
> > -L/opt/freeware/lib
> > -Wl,-blibpath:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib
> > -Wl,-bmaxdata:0x80000000 -o fixincl fixincl.o fixtests.o fixfixes.o
> > server.o procopen.o fixlib.o fixopts.o ../libiberty/libiberty.a
> > collect2: fatal error: ../libiberty/libiberty.a: not a COFF file
> > compilation terminated.
> > gmake[3]: *** [Makefile:110: full-stamp] Error 1
> > gmake[3]: Leaving directory
> > '/usr/src/gcc-build/build-powerpc-ibm-aix7.2.4.0/fixincludes'
> > gmake[2]: *** [Makefile:2880: all-build-fixincludes] Error 2
> > gmake[2]: Leaving directory '/usr/src/gcc-build'
> > gmake[1]: *** [Makefile:20799: stage1-bubble] Error 2
> > gmake[1]: Leaving directory '/usr/src/gcc-build'
> > gmake: *** [Makefile:1002: all] Error 2
> >
> > Could it be an ld or binutils issue?
>
> Quick update.
>
> Uninstalling GNU binutils helped. But I hit a different wall.
>
> These are my current environment variables (which work for compiling
> other software like Apache HTTPD):
>
> # export CONFIG_SHELL=/opt/freeware/bin/bash
> # export CONFIG_ENV_ARGS=/opt/freeware/bin/bash
> # export CFLAGS="-maix64 -mcpu=power7 -D_LARGE_FILES -pipe -O2
> -I/opt/freeware/include"
> # export CXXFLAGS=$CFLAGS
> # export RM="/usr/bin/rm -f"
> # export AR="/usr/bin/ar -X64"
> # export OBJECT_MODE=64"
> # export LDFLAGS="-L/opt/freeware/lib64 -L/opt/freeware/lib -maix64
> -Wl,-b64 -Wl,-brtl -Wl,-bbigtoc
> -Wl,-blibpath:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib"
>
> This is my configure line:
>
> # /usr/src/gcc-10.2.0/configure --with-isl=/usr/local --disable-multilib
> --disable-nls --enable-languages=c,c++ --enable-decimal-float=dpd
> --with-cloog=no --with-ppl=no --disable-libstdcxx-pch

GCC hasn't used cloog or ppl for some years, it uses ISL now so those
options do nothing. If it isn't found, it won't be used, but you can
use --without-isl if you want.

> --enable-__cxa_atexit --disable-werror --enable-bootstrap
>
> And this is the end of make where it dies:
>
> [ -f stage_final ] || echo stage3 > stage_final
> make[1]: Entering directory '/usr/src/gcc-build'
> make[2]: Entering directory '/usr/src/gcc-build'
> make[3]: Entering directory '/usr/src/gcc-build'
> rm -f stage_current
> make[3]: Leaving directory '/usr/src/gcc-build'
> make[2]: Leaving directory '/usr/src/gcc-build'
> make[2]: Entering directory '/usr/src/gcc-build'
> Configuring stage 1 in ./intl
> configure: loading cache ./config.cache
> checking for powerpc-ibm-aix7.2.4.0-gcc... gcc
> checking whether the C compiler works... no
> configure: error: in `/usr/src/gcc-build/intl':
> configure: error: C compiler cannot create executables
> See `config.log' for more details
> make[2]: *** [Makefile:6461: configure-stage1-intl] Error 77
> make[2]: Leaving directory '/usr/src/gcc-build'
> make[1]: *** [Makefile:20799: stage1-bubble] Error 2
> make[1]: Leaving directory '/usr/src/gcc-build'
> make: *** [Makefile:1002: all] Error 2
> bash-5.0#
>
> Still looking for help from anyone brave enough to venture in this hole.
> I just really want to figure out why compiling GCC 64-bit for AIX is so
> difficult.

Like it says, see config.log for more details.

The problem is probably those environment variables you're defining.

Building GCC on AIX 7.2 is possible with the following config
(providing valid paths for gmp and libiconv):

PATH=/opt/freeware/bin:$PATH
.../src/configure --disable-werror --enable-languages=c,c++
--with-gmp=... --with-libiconv-prefix=... --disable-libstdcxx-pch
--with-included-gettext
make SHELL=/bin/bash CONFIG_SHELL=/bin/bash

The SHELL and CONFIG_SHELL variables aren't required, they just speed things up.



[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