[LLVMbugs] [Bug 8378] New: Cannot Build llvm-gcc-4.2-2.8 on Solaris/x86

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu Oct 14 08:52:04 PDT 2010


http://llvm.org/bugs/show_bug.cgi?id=8378

           Summary: Cannot Build llvm-gcc-4.2-2.8 on Solaris/x86
           Product: tools
           Version: 2.8
          Platform: Sun
        OS/Version: Solaris
            Status: NEW
          Severity: normal
          Priority: P
         Component: llvm-gcc
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: spear at cse.lehigh.edu
                CC: llvmbugs at cs.uiuc.edu


I am unable to build llvm-gcc-4.2-2.8 on Solaris/x86.

I successfully built llvm-gcc-4.2-2.7 and llvm-2.7 on Solaris/x86.  I can also
build llvm-2.8 itself on Solaris/x86.  The break occurs only when moving from
the released llvm-gcc-4.2-2.7 to llvm-gcc-4.2-2.8

Platform:
uname -a == SunOS 5.10 Generic_142901-12 i86pc i386 i86pc

Toolchain:
gcc 4.5.1
binutils 2.20.1

Configure invocation:
../llvm-gcc-4.2-2.8.source/configure
--prefix=/proj/spear0/dtmc_x86/llvm-2.8-gcc --program-prefix=llvm-
--enable-llvm=/proj/spear0/dtmc_x86/llvm --enable-languages=c,c++
--enable-checking --with-gnu-as --with-as=/proj/spear0/binutils-2.20.1/bin/as
--with-gnu-ld --with-ld=/proj/spear0/binutils-2.20.1/bin/ld

The specific error occurs when building libgcc2.c.  I'm building using 'gmake'
(no -j flag).

<output>

/tmp/mfs/2.8/build/./gcc/xgcc -B/tmp/mfs/2.8/build/./gcc/
-B/proj/spear0/dtmc_x86/llvm-2.8-gcc/i386-pc-solaris2.10/bin/
-B/proj/spear0/dtmc_x86/llvm-2.8-gcc/i386-pc-solaris2.10/lib/ -isystem
/proj/spear0/dtmc_x86/llvm-2.8-gcc/i386-pc-solaris2.10/include -isystem
/proj/spear0/dtmc_x86/llvm-2.8-gcc/i386-pc-solaris2.10/sys-include   -O2  -O2
-g -O2  -DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition  -isystem ./include  -fPIC -g
-DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -I. -I.
-I../../llvm-gcc-4.2-2.8.source/gcc -I../../llvm-gcc-4.2-2.8.source/gcc/.
-I../../llvm-gcc-4.2-2.8.source/gcc/../include -I./../intl
-I../../llvm-gcc-4.2-2.8.source/gcc/../libcpp/include 
-I../../llvm-gcc-4.2-2.8.source/gcc/../libdecnumber -I../libdecnumber
-I/proj/spear0/dtmc_x86/llvm/include -DL_mulxc3 -fvisibility=hidden
-DHIDE_EXPORTS -c ../../llvm-gcc-4.2-2.8.source/gcc/libgcc2.c -o
libgcc/./_mulxc3.o
../../llvm-gcc-4.2-2.8.source/gcc/libgcc2.c: In function '__mulxc3':
../../llvm-gcc-4.2-2.8.source/gcc/libgcc2.c:1855: internal compiler error:
Segmentation Fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://llvm.org/bugs/> for instructions.

</output>

Re-running gmake reproduces the error, and provides the following background
about gcc build progress:

<output>
[ -f stage_final ] || echo stage3 > stage_final
gmake[1]: Entering directory `/tmp/mfs/2.8/build'
gmake[2]: Entering directory `/tmp/mfs/2.8/build'
gmake[3]: Entering directory `/tmp/mfs/2.8/build'
rm -f stage_current
gmake[3]: Leaving directory `/tmp/mfs/2.8/build'
gmake[2]: Leaving directory `/tmp/mfs/2.8/build'
gmake[2]: Entering directory `/tmp/mfs/2.8/build'
gmake[3]: Entering directory `/tmp/mfs/2.8/build/libiberty'
gmake[4]: Entering directory `/tmp/mfs/2.8/build/libiberty/testsuite'
gmake[4]: Nothing to be done for `all'.
gmake[4]: Leaving directory `/tmp/mfs/2.8/build/libiberty/testsuite'
gmake[3]: Leaving directory `/tmp/mfs/2.8/build/libiberty'
gmake[3]: Entering directory `/tmp/mfs/2.8/build/intl'
rm -f stamp-h1
/bin/sh ./config.status config.h
config.status: creating config.h
config.status: config.h is unchanged
test -f config.h || (rm -f stamp-h1 && gmake stamp-h1)
gmake[3]: Leaving directory `/tmp/mfs/2.8/build/intl'
gmake[3]: Entering directory
`/tmp/mfs/2.8/build/build-i386-pc-solaris2.10/libiberty'
gmake[4]: Entering directory
`/tmp/mfs/2.8/build/build-i386-pc-solaris2.10/libiberty/testsuite'
gmake[4]: Nothing to be done for `all'.
gmake[4]: Leaving directory
`/tmp/mfs/2.8/build/build-i386-pc-solaris2.10/libiberty/testsuite'
gmake[3]: Leaving directory
`/tmp/mfs/2.8/build/build-i386-pc-solaris2.10/libiberty'
gmake[3]: Entering directory
`/tmp/mfs/2.8/build/build-i386-pc-solaris2.10/fixincludes'
gmake[3]: Nothing to be done for `all'.
gmake[3]: Leaving directory
`/tmp/mfs/2.8/build/build-i386-pc-solaris2.10/fixincludes'
gmake[3]: Entering directory `/tmp/mfs/2.8/build/libcpp'
test -f config.h || (rm -f stamp-h1 && gmake stamp-h1)
gmake[3]: Leaving directory `/tmp/mfs/2.8/build/libcpp'
gmake[3]: Entering directory `/tmp/mfs/2.8/build/libdecnumber'
gmake[3]: Nothing to be done for `all'.
gmake[3]: Leaving directory `/tmp/mfs/2.8/build/libdecnumber'
gmake[3]: Entering directory `/tmp/mfs/2.8/build/gcc'
gmake[3]: Leaving directory `/tmp/mfs/2.8/build/gcc'
gmake[2]: Leaving directory `/tmp/mfs/2.8/build'
gmake[2]: Entering directory `/tmp/mfs/2.8/build'
gmake[3]: Entering directory `/tmp/mfs/2.8/build'
rm -f stage_current
gmake[3]: Leaving directory `/tmp/mfs/2.8/build'
gmake[2]: Leaving directory `/tmp/mfs/2.8/build'
gmake[2]: Entering directory `/tmp/mfs/2.8/build'
gmake[3]: Entering directory `/tmp/mfs/2.8/build/libiberty'
gmake[4]: Entering directory `/tmp/mfs/2.8/build/libiberty/testsuite'
gmake[4]: Nothing to be done for `all'.
gmake[4]: Leaving directory `/tmp/mfs/2.8/build/libiberty/testsuite'
gmake[3]: Leaving directory `/tmp/mfs/2.8/build/libiberty'
gmake[3]: Entering directory `/tmp/mfs/2.8/build/intl'
rm -f stamp-h1
/bin/sh ./config.status config.h
config.status: creating config.h
config.status: config.h is unchanged
test -f config.h || (rm -f stamp-h1 && gmake stamp-h1)
gmake[3]: Leaving directory `/tmp/mfs/2.8/build/intl'
gmake[3]: Entering directory
`/tmp/mfs/2.8/build/build-i386-pc-solaris2.10/libiberty'
gmake[4]: Entering directory
`/tmp/mfs/2.8/build/build-i386-pc-solaris2.10/libiberty/testsuite'
gmake[4]: Nothing to be done for `all'.
gmake[4]: Leaving directory
`/tmp/mfs/2.8/build/build-i386-pc-solaris2.10/libiberty/testsuite'
gmake[3]: Leaving directory
`/tmp/mfs/2.8/build/build-i386-pc-solaris2.10/libiberty'
gmake[3]: Entering directory
`/tmp/mfs/2.8/build/build-i386-pc-solaris2.10/fixincludes'
gmake[3]: Nothing to be done for `all'.
gmake[3]: Leaving directory
`/tmp/mfs/2.8/build/build-i386-pc-solaris2.10/fixincludes'
gmake[3]: Entering directory `/tmp/mfs/2.8/build/libcpp'
test -f config.h || (rm -f stamp-h1 && gmake stamp-h1)
gmake[3]: Leaving directory `/tmp/mfs/2.8/build/libcpp'
gmake[3]: Entering directory `/tmp/mfs/2.8/build/libdecnumber'
gmake[3]: Nothing to be done for `all'.
gmake[3]: Leaving directory `/tmp/mfs/2.8/build/libdecnumber'
gmake[3]: Entering directory `/tmp/mfs/2.8/build/gcc'
gmake \
  CFLAGS="-g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -pedantic -Wno-long-long -Wno-variadic-macros
-Wno-overlength-strings -Wold-style-definition -Wmissing-format-attribute
-fno-common " \
  CONFIG_H="config.h  auto-host.h
../../llvm-gcc-4.2-2.8.source/gcc/../include/ansidecl.h" \
  MAKEOVERRIDES= \
  -f libgcc.mk all
gmake[4]: Entering directory `/tmp/mfs/2.8/build/gcc'
gmake GCC_FOR_TARGET="/tmp/mfs/2.8/build/./gcc/xgcc -B/tmp/mfs/2.8/build/./gcc/
-B/proj/spear0/dtmc_x86/llvm-2.8-gcc/i386-pc-solaris2.10/bin/
-B/proj/spear0/dtmc_x86/llvm-2.8-gcc/i386-pc-solaris2.10/lib/ -isystem
/proj/spear0/dtmc_x86/llvm-2.8-gcc/i386-pc-solaris2.10/include -isystem
/proj/spear0/dtmc_x86/llvm-2.8-gcc/i386-pc-solaris2.10/sys-include " \
  AR_FOR_TARGET="/usr/ccs/bin/ar" \
  AR_CREATE_FOR_TARGET="/usr/ccs/bin/ar  rc" \
  AR_EXTRACT_FOR_TARGET="/usr/ccs/bin/ar  x" \
  AR_FLAGS_FOR_TARGET="" \
  CC="/tmp/mfs/2.8/build/./prev-gcc/xgcc -B/tmp/mfs/2.8/build/./prev-gcc/
-B/proj/spear0/dtmc_x86/llvm-2.8-gcc/i386-pc-solaris2.10/bin/" CFLAGS="-g -O2
-W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic
-Wno-long-long -Wno-variadic-macros -Wno-overlength-strings
-Wold-style-definition -Wmissing-format-attribute -fno-common " \
  BUILD_PREFIX="" \
  BUILD_PREFIX_1="" \
  LANGUAGES="" \
  LIBGCC2_CFLAGS="-O2  -O2 -g -O2  -DIN_GCC    -W -Wall -Wwrite-strings
-Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem
./include  -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED 
"  \
  LIBGCC2_STATIC_CFLAGS=""  \
  MULTILIB_CFLAGS="" T= gmon.o crtbegin.o crtend.o
gmake[5]: Entering directory `/tmp/mfs/2.8/build/gcc'
gmake[5]: `crtend.o' is up to date.
gmake[5]: Leaving directory `/tmp/mfs/2.8/build/gcc'
/tmp/mfs/2.8/build/./gcc/xgcc -B/tmp/mfs/2.8/build/./gcc/
-B/proj/spear0/dtmc_x86/llvm-2.8-gcc/i386-pc-solaris2.10/bin/
-B/proj/spear0/dtmc_x86/llvm-2.8-gcc/i386-pc-solaris2.10/lib/ -isystem
/proj/spear0/dtmc_x86/llvm-2.8-gcc/i386-pc-solaris2.10/include -isystem
/proj/spear0/dtmc_x86/llvm-2.8-gcc/i386-pc-solaris2.10/sys-include   -O2  -O2
-g -O2  -DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition  -isystem ./include  -fPIC -g
-DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -I. -I.
-I../../llvm-gcc-4.2-2.8.source/gcc -I../../llvm-gcc-4.2-2.8.source/gcc/.
-I../../llvm-gcc-4.2-2.8.source/gcc/../include -I./../intl
-I../../llvm-gcc-4.2-2.8.source/gcc/../libcpp/include 
-I../../llvm-gcc-4.2-2.8.source/gcc/../libdecnumber -I../libdecnumber
-I/proj/spear0/dtmc_x86/llvm/include -DL_mulxc3 -fvisibility=hidden
-DHIDE_EXPORTS -c ../../llvm-gcc-4.2-2.8.source/gcc/libgcc2.c -o
libgcc/./_mulxc3.o
../../llvm-gcc-4.2-2.8.source/gcc/libgcc2.c: In function '__mulxc3':
../../llvm-gcc-4.2-2.8.source/gcc/libgcc2.c:1855: internal compiler error:
Segmentation Fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://llvm.org/bugs/> for instructions.
gmake[4]: *** [libgcc/./_mulxc3.o] Error 1
gmake[4]: Leaving directory `/tmp/mfs/2.8/build/gcc'
gmake[3]: *** [stmp-multilib] Error 2
gmake[3]: Leaving directory `/tmp/mfs/2.8/build/gcc'
gmake[2]: *** [all-stage2-gcc] Error 2
gmake[2]: Leaving directory `/tmp/mfs/2.8/build'
gmake[1]: *** [stage2-bubble] Error 2
gmake[1]: Leaving directory `/tmp/mfs/2.8/build'
gmake: *** [all] Error 2

</output>

The bug also occurs when using gcc 4.4.1 on Solaris/x86.  And even though the
exact error is "internal compiler error", which would imply a gcc bug, the fact
that both compilers can handle llvm-gcc-2.7-4.2 but not llvm-gcc-2.8-4.2
suggests that this has more to do with changes to llvm-gcc between the 2.7 and
2.8 releases.

Any advice would be greatly appreciated!

- Mike Spear

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list