We are currently using the GPC 2.0, but this version does not provide all the functions we need, especially concerning file handle. To solve these problems, we want to install a more recent GPC version on our RS6000.
We intend to use: gcc : 2.95.2 gpc : 20001218 AIX : 4.3.2.0
We run the compile process as following:
./configure --enable-languages=pascal
make LANGUAGES=pascal
We get the following error:
make[2]: Entering directory `/usr/local/src/gcc-2.95.2/gcc/p' rm -f ../gpc1 gcc -DIN_GCC -DGPC -g -O2 -DHAIFA `case "gcc" in *gcc*) echo -Wall;; esac` -o ../gpc1 \ `cat stamp-gbe` ../c-aux-info.o ../c-iterate.o ../c-pragma.o gpc-common.o gpc-convert.o gpc-decl.o lang.o gpc-lex.o gpc-typeck.o module.o gpi-hash.o circle-buf.o memfiles.o objects.o parse.o rts.o types.o util.o setop.o `if [ xobstack.o != x ]; then echo ../obstack.o; else true; fi` `case "gcc" in "cc") if [ xalloca.o != x ]; then echo ../alloca.o; else true; fi ;; esac` `if [ x != x ]; then echo ../; else true; fi` -lld ../../libiberty/libiberty.a collect2: ld returned 12 exit status ld : 0711-781 ERROR : TOC capacity overflow. TOC size : 69120. Maximum size : 65536 make[2]: *** [../gpc1] Error 1 make[2]: Leaving directory `/usr/local/src/gcc-2.95.2/gcc/p' make[1]: *** [gpc1] Error 2 make[1]: Leaving directory `/usr/local/src/gcc-2.95.2/gcc' make: *** [all-gcc] Error 2
Note : The LD message was written in french and we translated it in english.
We found a way to correct it by modifying the GPC makefile line ALL_WARNINGS = `case "$(CC)" in *gcc*) echo -Wall ;; esac` in ALL_WARNINGS = `case "$(CC)" in *gcc*) echo -Wall -Wl,-bbigtoc;; esac`
Is that correction necessary or can we solve the problem another way during the configuration stage? Note : We verified that the systems patches IX75823, IX87327 and IX87913 are installed and used on our AIX platform.
After the correction, we still get a warning. The message is: ld : 0711-783 WARNING : TOC capacity overflow. Size : 69120. Maximum size : 65536 Creation of correcting instructions in process for each symbol capacity overflow make[2]: Leaving directory `/usr/local/src/gcc-2.95.2/gcc/p'
Nevertheless compilation process goes on, up to other error:
make[2]: Leaving directory `/usr/local/src/gcc-2.95.2/gcc' touch stmp-multilib gcc -DIN_GCC -DHAIFA -g -O2 -DHAVE_CONFIG_H -I. -I. -I./config -I./../include \ -DTARGET_MACHINE="powerpc-ibm-aix4.3.2.0" -DUSE_COLLECT2 \ -c `echo ./collect2.c | sed 's,^./,,'` In file included from collect2.c:98: /usr/include/ldfcn.h:47: #error -qlonglong must be used make[1]: *** [collect2.o] Error 1 make[1]: Leaving directory `/usr/local/src/gcc-2.95.2/gcc' make: *** [all-gcc] Error 2
Did someone already install that GPC version or any GPC version upper than 2.0 on AIX 4.3.2? What can we do to get a succesfull installation on this OS?
Thank you for your help.
nicolas bley wrote:
make[2]: Entering directory `/usr/local/src/gcc-2.95.2/gcc/p' rm -f ../gpc1 gcc -DIN_GCC -DGPC -g -O2 -DHAIFA `case "gcc" in *gcc*) echo -Wall;; esac` -o ../gpc1 \ `cat stamp-gbe` ../c-aux-info.o ../c-iterate.o ../c-pragma.o gpc-common.o gpc-convert.o gpc-decl.o lang.o gpc-lex.o gpc-typeck.o module.o gpi-hash.o circle-buf.o memfiles.o objects.o parse.o rts.o types.o util.o setop.o `if [ xobstack.o != x ]; then echo ../obstack.o; else true; fi` `case "gcc" in "cc") if [ xalloca.o != x ]; then echo ../alloca.o; else true; fi ;; esac` `if [ x != x ]; then echo ../; else true; fi` -lld ../../libiberty/libiberty.a collect2: ld returned 12 exit status ld : 0711-781 ERROR : TOC capacity overflow. TOC size : 69120. Maximum size : 65536 [...]
This is the AIX linker, correct? If so, I suggest to try using GNU ld. You can install it in a way that it is only invoked when compiling with GCC/GPC - see the GCC installation instructions.
Hope this helps,
Peter