Compiling GCC 10.2 on AIX 7.2

Randal T. Rioux randal@procyonlabs.com
Wed Aug 19 17:36:01 GMT 2020


On 8/19/20 10:37 AM, David Edelsohn wrote:
> On Wed, Aug 19, 2020 at 3:04 AM Kewen.Lin <linkw@linux.ibm.com> wrote:
>>
>> Hi Randal,
>>
>> on 2020/8/19 上午6:38, Randal T. Rioux 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@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"
>>            ~~~~~~~~~~~~~~ " typo?
>>
>> I did a check locally, the wrong OBJECT_MODE caused the assembler
>> error like
>>
>> Assembler:
>> /tmp//ccZmd28O.s: line 1: 1252-192 Assembly mode is not specified.
>>         Set the OBJECT_MODE environment variable to 32 or 64 or
>>         use the -a32 or -a64 option.
>>
>> Hope it's just a pasted typo, isn't responsible for this error.
>>
>>> # 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
>>>
>>
>> With David's help, I built gcc trunk on aix7.2 successfully before
>> with the configuration command like:
>>
>> $GCC_SRC/configure --enable-languages=c,c++,fortran --disable-werror --with-gmp=/opt/freeware/ --with-libiconv-prefix=/opt/freeware/ --disable-libstdcxx-pch --with-included-gettext --with-cpu=power9 --prefix=$GCC_INSTALL --with-as=/usr/bin/as --with-ld=/usr/bin/ld --disable-bootstrap
>>
>> I referred to the information here https://gcc.gnu.org/wiki/CompileFarm
>> "Building GCC on AIX"
>>
>> Also installed the required components pointed out here:
>>   https://gcc.gnu.org/install/prerequisites.html
>>
>> via the website/repo aix-toolbox
>>   https://www.ibm.com/support/pages/aix-toolbox-linux-applications-downloads-alpha
>>
>> Sorry that I didn't have the access to that machine any more, can't provide more
>> information by checking the history.
> 
> Why are you setting any environment variables?  All of the environment
> variables are wrong.  you cannot build a 64 bit version of GCC on AIX
> in that manner.

That's the answer I was hoping not to get :-)

I can compile it fine as a 32 bit app. For example, this is my configure:

/usr/src/gcc-10.2.0/configure --enable-languages=c,c++ --disable-werror
--disable-libstdcxx-pch --with-cpu=power7 --disable-bootstrap --without-isl

My interest was to create a pure 64-bit environment, and I spent a lot
of hours trying!

Is there a way to build 64 bit GCC on AIX?

Thanks to all for the responses!

Randal




More information about the Gcc-help mailing list