Compiling GCC 10.2 on AIX 7.2

Randal T. Rioux randal@procyonlabs.com
Tue Aug 18 22:38:56 GMT 2020


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@procyonlabs.com> wrote:
>>>
>>> On 8/17/20 6:28 AM, Jonathan Wakely wrote:
>>>> On Mon, 17 Aug 2020 at 07:04, Randal T. Rioux <randal@procyonlabs.com> 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
--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.

Thanks!



More information about the Gcc-help mailing list