bootstrap/8686: GCC 3.2.1 bootstrap fails: 32-bit Solaris 9 + Sun patch 112963-01

Paul Eggert
Sat Nov 23 00:31:00 GMT 2002

>Number:         8686
>Category:       bootstrap
>Synopsis:       3.2.1 bootstrap fails: 32-bit Solaris 9 + Sun patch 112963-01
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Nov 22 22:36:00 PST 2002
>Originator:     Paul Eggert
>Release:        3.2.1
Twin Sun, Inc.
System: SunOS 5.9 Generic_112233-02 sun4u sparc SUNW,Ultra-1
Architecture: sun4

host: sparc-sun-solaris2.9
build: sparc-sun-solaris2.9
target: sparc-sun-solaris2.9
configured with: ../gcc-3.2.1/configure --disable-nls --enable-languages=c,c++ --prefix=/opt/reb/lib/gcc/gcc-3.2.1 --with-system-zlib
	When GCC is built on Solaris 9 (sparc), on a host with a 32-bit
	kernel, with the Sun-recommended patches (as of 2002-11-22)
	installed, the build fails.

	According to Sun bug 4747851, Sun patch 112963-01 introduced
	a bug that makes it impossible to create a 64-bit relocatable
	object file using ld -r under a 32-bit kernel.	Sun says that
	this is fixed in Sun test patch T112963-02 or newer.  This
	appears to be the bug that GCC runs into.  As of this writing,
	the test patches are not available to the public (you need to
	have Sun software support to get them).

	Sun patch 112963-01 is one of the Sun-recommended patches, so it
	is commonly installed these days.  You can get it from
	among other locations.

	Here are the failure symptoms.
gmake[5]: Entering directory `/net/cog/project/reb/src/base/gcc/build/gcc'
./xgcc -B./ -B/opt/reb/lib/gcc/gcc-3.2.1/sparc-sun-solaris2.9/bin/ -isystem /opt/reb/lib/gcc/gcc-3.2.1/sparc-sun-solaris2.9/include -isystem /opt/reb/lib/gcc/gcc-3.2.1/sparc-sun-solaris2.9/sys-include -m64 -O2  -DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include  -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -m64  -c -o sparcv9/crtfastmath.o ../../gcc-3.2.1/gcc/config/sparc/crtfastmath.c
gmake[5]: Leaving directory `/net/cog/project/reb/src/base/gcc/build/gcc'
./xgcc -B./ -B/opt/reb/lib/gcc/gcc-3.2.1/sparc-sun-solaris2.9/bin/ -isystem /opt/reb/lib/gcc/gcc-3.2.1/sparc-sun-solaris2.9/include -isystem /opt/reb/lib/gcc/gcc-3.2.1/sparc-sun-solaris2.9/sys-include -O2  -DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include  -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -shared -nodefaultlibs -Wl,-h, -Wl,-z,text -Wl,-z,defs -Wl,-M,libgcc/sparcv9/ -o sparcv9/  -m64  libgcc/sparcv9/_muldi3.o libgcc/sparcv9/_negdi2.o libgcc/sparcv9/_lshrdi3.o libgcc/sparcv9/_ashldi3.o libgcc/sparcv9/_ashrdi3.o libgcc/sparcv9/_ffsdi2.o libgcc/sparcv9/_clz.o libgcc/sparcv9/_cmpdi2.o libgcc/sparcv9/_ucmpdi2.o libgcc/sparcv9/_floatdidf.o libgcc/sparcv9/_floatdisf.o libgcc/sparcv9/_fixunsdfsi.o libgcc/sparcv9/_fixunssfsi.o libgcc/sparcv9/_fixunsdfdi.o libgcc/sparcv9/_fixdfdi.o libgcc/sparcv9/_fixunssfdi.o libgcc/sparcv9/_fixsfdi.o libgcc/sparcv9/_fixxfdi.o libgcc/sparcv9/_fixunsxfdi.o libgcc/sparcv9/_floatdixf.o libgcc/sparcv9/_fixunsxfsi.o libgcc/sparcv9/_fixtfdi.o libgcc/sparcv9/_fixunstfdi.o libgcc/sparcv9/_floatditf.o libgcc/sparcv9/_clear_cache.o libgcc/sparcv9/_trampoline.o libgcc/sparcv9/__main.o libgcc/sparcv9/_exit.o libgcc/sparcv9/_absvsi2.o libgcc/sparcv9/_absvdi2.o libgcc/sparcv9/_addvsi3.o libgcc/sparcv9/_addvdi3.o libgcc/sparcv9/_subvsi3.o libgcc/sparcv9/_subvdi3.o libgcc/sparcv9/_mulvsi3.o libgcc/sparcv9/_mulvdi3.o libgcc/sparcv9/_negvsi2.o libgcc/sparcv9/_negvdi2.o libgcc/sparcv9/_ctors.o libgcc/sparcv9/_divdi3.o libgcc/sparcv9/_moddi3.o libgcc/sparcv9/_udivdi3.o libgcc/sparcv9/_umoddi3.o libgcc/sparcv9/_udiv_w_sdiv.o libgcc/sparcv9/_udivmoddi4.o  libgcc/sparcv9/unwind-dw2.o libgcc/sparcv9/unwind-dw2-fde.o libgcc/sparcv9/unwind-sjlj.o -lc && rm -f && ln -s sparcv9/
ld: fatal: file dlopen failed: /usr/ccs/bin/ld: fatal: relocation error: file /usr/lib/ symbol dbg_mask: referenced symbol not found
collect2: ld returned 1 exit status
gmake[4]: *** [sparcv9/] Error 1
gmake[4]: Leaving directory `/net/cog/project/reb/src/base/gcc/build/gcc'
gmake[3]: *** [stmp-multilib] Error 2
gmake[3]: Leaving directory `/net/cog/project/reb/src/base/gcc/build/gcc'
gmake[2]: *** [stage1_build] Error 2
gmake[2]: Leaving directory `/net/cog/project/reb/src/base/gcc/build/gcc'
gmake[1]: *** [bootstrap-lean] Error 2
gmake[1]: Leaving directory `/net/cog/project/reb/src/base/gcc/build'
*** Error code 2
make: Fatal error: Command failed for target `bootstrap.made'
	Install Solaris 9 (sparc) on a Sun box.
	Install Sun patch 112963-01.
	Boot a 32-bit kernel.
	Configure GCC and run "make bootstrap-lean".
	I haven't tried any of these fixes, but they might work:

	* Configure GCC with the --disable-multilib option.
	* Build GCC under a 64-bit kernel instead.
	* Back out patch 112963-01.
	* Install patch T112963-02 or later.

	I'll try the first option next, as it's easiest for me.

More information about the Gcc-bugs mailing list