bootstrap/5872: gcc-20020304 bootstrap failure on IBM SP/2 AIX 4.3: ld reports TOC overflow

Nelson H. F. Beebe
Thu Mar 7 09:26:00 GMT 2002

>Number:         5872
>Category:       bootstrap
>Synopsis:       gcc-20020304 bootstrap failure on IBM SP/2 AIX 4.3: ld reports TOC overflow
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Mar 07 09:26:00 PST 2002
>Originator:     Nelson H. F. Beebe
>Release:        3.1 20020304 (prerelease)
Department of Mathematics, University of Utah
	IBM SP2 (166 MHz);  AIX
	% uname -a
	AIX sp-i 3 4 000152774C00
	% oslevel
	% cc -V
	VisualAge C++ Professional / C for AIX Compiler, Version 5
host: powerpc-ibm-aix4.3.2.0
build: powerpc-ibm-aix4.3.2.0
target: powerpc-ibm-aix4.3.2.0
configured with: ../gcc-20020304/configure --prefix=/usr/local/test --enable-cpplib --enable-libgcj --enable-shared --enable-version-specific-runtime-libs --with-local-prefix=/usr/local --enable-threads
gcc has become complex enough that the default 64KB TOC size is
inadequate, causing a link failure during the bootstrap process:

gcc -DIN_GCC -g -W -Wall -Wwrite-strings -Wstrict-prototypes \
        -Wmissing-prototypes -Wtraditional -pedantic -Wno-long-long \
        -DHAVE_CONFIG_H -o cc1 \ c-parse.o c-lang.o attribs.o \
        c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o c-convert.o \
        c-aux-info.o c-common.o c-format.o c-semantics.o \
        c-objc-common.o libcpp.a main.o libbackend.a ./intl/libintl.a \
        -liconv ../libiberty/libiberty.a
ld: 0711-781 ERROR: TOC overflow. TOC size: 73584       Maximum size: 65536
collect2: ld returned 12 exit status
make[2]: *** [cc1] Error 1

IBM's manual pages contains this commentary:
	% man ld

	Options (-bOptions)
	The following values are possible for the Options variable of the -b flag. You
	can list more than one option after the -b flag, separating them with a single


	bigtoc Generates extra code if the size of the table of contents (TOC) is
	greater than 64KB. Extra code is needed for every reference to a TOC symbol that
	cannot be addressed with a 16-bit offset. Because a program containing generated
	code may have poor performance, you should reduce the number of TOC entries
	needed by the program before using this option. The default is the nobigtoc

This build was bootstrapped with gcc-2.95.3.  

I then made a second attempt using the native cc; it too failed, but
differently; that problem will be reported separately.

../gcc-20020304/configure \
	--prefix=/usr/local/test \
	--enable-cpplib \
	--enable-libgcj \
	--enable-shared \
	--enable-version-specific-runtime-libs \
	--with-local-prefix=/usr/local \
	--enable-threads && \
		make bootstrap


- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- Center for Scientific Computing       FAX: +1 801 585 1640, +1 801 581 4148 -
- University of Utah                    Internet e-mail:  -
- Department of Mathematics, 110 LCB -
- 155 S 1400 E RM 233                                 -
- Salt Lake City, UT 84112-0090, USA    URL:  -

More information about the Gcc-bugs mailing list