Solaris 9 build fails at stage2 with undefined symbol errors (for libm symbols)
(A copy of the pasted errors is attached to the ticket)
I'm having a problem building ghc 6.8.2 using gcc 4.2.3 on Solaris 9. The problem occurs during the linking of stage2/ghc-inplace. Here is the error:
make[3]: Entering directory `/u1/src/garstow/devel/ghc/work/ghc-6.8.2/compiler'
../compiler/stage1/ghc-inplace -cpp stage2/ghc-inplace.c -o stage2/ghc-inplace
Undefined first referenced
symbol in file
cosf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
expf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
logf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
powf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
sinf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
tanf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
acosf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
asinf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
atanf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
coshf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
sinhf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
tanhf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
sqrtf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
ld: fatal: Symbol referencing errors. No output written to stage2/ghc-inplace
collect2: ld returned 1 exit status
make[3]: *** [stage2/ghc-inplace] Error 1
make[3]: Leaving directory `/u1/src/garstow/devel/ghc/work/ghc-6.8.2/compiler'
make[2]: *** [stage2] Error 2
make[2]: Leaving directory `/u1/src/garstow/devel/ghc/work/ghc-6.8.2'
make[1]: *** [bootstrap2] Error 2
make[1]: Leaving directory `/u1/src/garstow/devel/ghc/work/ghc-6.8.2'
make: *** [build-work/ghc-6.8.2/Makefile] Error 2
It was fairly obvious those symbols were provided by libm, so I did a little digging to check if it was trying to link -lm, and it was:
tdb@vulture [/u1/src/garstow/devel/ghc/work/ghc-6.8.2/compiler] % ../compiler/stage1/ghc-inplace -v -cpp stage2/ghc-inplace.c -o stage2/ghc-inplace
Using /u1/src/garstow/devel/ghc/work/ghc-6.8.2/compiler/stage1/ghc-6.8.2 -B/u1/src/garstow/devel/ghc/work/ghc-6.8.2 -fhardwire-lib-paths
Glasgow Haskell Compiler, Version 6.8.2, for Haskell 98, stage 1 booted by GHC version 6.4.1
Using package config file: /u1/src/garstow/devel/ghc/work/ghc-6.8.2/driver/package.conf.inplace
wired-in package base mapped to base-3.0.1.0
wired-in package rts mapped to rts-1.0
wired-in package haskell98 mapped to haskell98-1.0.1.0
wired-in package template-haskell mapped to template-haskell-2.2.0.0
wired-in package ndp not found.
Hsc static flags: -fhardwire-lib-paths -static
Created temporary directory: /tmp/ghc6599_0
*** C Compiler:
gcc -x c stage2/ghc-inplace.c -o /tmp/ghc6599_0/ghc6599_0.s -mcpu=v9 -v -S -Wimplicit -O -D__GLASGOW_HASKELL__=608 -DTABLES_NEXT_TO_CODE -I /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/include -I /u1/src/garstow/devel/ghc/work/ghc-6.8.2/includes -I /u1/src/garstow/devel/ghc/work/ghc-6.8.2/rts -I /u1/src/garstow/devel/ghc/work/ghc-6.8.2/gmp/gmpbuild
Using built-in specs.
Target: sparc-sun-solaris2.9
Configured with: ../../work/gcc-4.2.3/configure --enable-threads --enable-shared=libstdc++ --enable-languages=ada,c,c++,fortran,java,objc,obj-c++,treelang --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld
Thread model: posix
gcc version 4.2.3
/usr/local/packages/gcc-4.2.3/bin/../libexec/gcc/sparc-sun-solaris2.9/4.2.3/cc1 -quiet -v -I /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/include -I /u1/src/garstow/devel/ghc/work/ghc-6.8.2/includes -I /u1/src/garstow/devel/ghc/work/ghc-6.8.2/rts -I /u1/src/garstow/devel/ghc/work/ghc-6.8.2/gmp/gmpbuild -iprefix /usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/ -D__sparcv8 -D__GLASGOW_HASKELL__=608 -DTABLES_NEXT_TO_CODE stage2/ghc-inplace.c -quiet -dumpbase ghc-inplace.c -mcpu=v9 -auxbase-strip /tmp/ghc6599_0/ghc6599_0.s -O -Wimplicit -version -o /tmp/ghc6599_0/ghc6599_0.s
ignoring nonexistent directory "/usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/../../../../sparc-sun-solaris2.9/include"
ignoring nonexistent directory "NONE/include"
ignoring duplicate directory "/usr/local/lib/gcc/sparc-sun-solaris2.9/4.2.3/include"
ignoring nonexistent directory "/usr/local/lib/gcc/sparc-sun-solaris2.9/4.2.3/../../../../sparc-sun-solaris2.9/include"
ignoring nonexistent directory "/u1/src/garstow/devel/ghc/work/ghc-6.8.2/gmp/gmpbuild"
#include "..." search starts here:
#include <...> search starts here:
/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/include
/u1/src/garstow/devel/ghc/work/ghc-6.8.2/includes
/u1/src/garstow/devel/ghc/work/ghc-6.8.2/rts
/usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/include
/usr/local/include
/usr/include
End of search list.
GNU C version 4.2.3 (sparc-sun-solaris2.9)
compiled by GNU C version 4.2.3.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 71a7bcafd96401b66a893845012cdee8
*** Assembler:
gcc -mcpu=v9 -c /tmp/ghc6599_0/ghc6599_0.s -o stage2/ghc-inplace.o
*** Linker:
gcc -v -o stage2/ghc-inplace stage2/ghc-inplace.o -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/haskell98/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/array/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/process/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/unix/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/random/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/directory/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/filepath/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/old-time/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/old-locale/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/rts -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/gmp -lHShaskell98-1.0.1.0 -lHSarray-0.1.0.0 -lHSprocess-1.0.0.0 -lHSunix-2.3.0.0 -ldl -lHSrandom-1.0.0.0 -lHSdirectory-1.0.0.0 -lHSfilepath-1.1.0.0 -lHSold-time-1.0.0.0 -lHSold-locale-1.0.0.0 -lHSbase-3.0.1.0 -lHSrts -lm -lgmp -ldl -lrt -u base_GHCziBase_Izh_static_info -u base_GHCziBase_Czh_static_info -u base_GHCziFloat_Fzh_static_info -u base_GHCziFloat_Dzh_static_info -u base_GHCziPtr_Ptr_static_info -u base_GHCziWord_Wzh_static_info -u base_GHCziInt_I8zh_static_info -u base_GHCziInt_I16zh_static_info -u base_GHCziInt_I32zh_static_info -u base_GHCziInt_I64zh_static_info -u base_GHCziWord_W8zh_static_info -u base_GHCziWord_W16zh_static_info -u base_GHCziWord_W32zh_static_info -u base_GHCziWord_W64zh_static_info -u base_GHCziStable_StablePtr_static_info -u base_GHCziBase_Izh_con_info -u base_GHCziBase_Czh_con_info -u base_GHCziFloat_Fzh_con_info -u base_GHCziFloat_Dzh_con_info -u base_GHCziPtr_Ptr_con_info -u base_GHCziPtr_FunPtr_con_info -u base_GHCziStable_StablePtr_con_info -u base_GHCziBase_False_closure -u base_GHCziBase_True_closure -u base_GHCziPack_unpackCString_closure -u base_GHCziIOBase_stackOverflow_closure -u base_GHCziIOBase_heapOverflow_closure -u base_GHCziIOBase_NonTermination_closure -u base_GHCziIOBase_BlockedOnDeadMVar_closure -u base_GHCziIOBase_BlockedIndefinitely_closure -u base_GHCziIOBase_Deadlock_closure -u base_GHCziIOBase_NestedAtomically_closure -u base_GHCziWeak_runFinalizzerBatch_closure -u base_GHCziConc_ensureIOManagerIsRunning_closure
Using built-in specs.
Target: sparc-sun-solaris2.9
Configured with: ../../work/gcc-4.2.3/configure --enable-threads --enable-shared=libstdc++ --enable-languages=ada,c,c++,fortran,java,objc,obj-c++,treelang --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld
Thread model: posix
gcc version 4.2.3
/usr/local/packages/gcc-4.2.3/bin/../libexec/gcc/sparc-sun-solaris2.9/4.2.3/collect2 -V -Y P,/usr/ccs/lib:/usr/lib -Qy -o stage2/ghc-inplace -u base_GHCziBase_Izh_static_info -u base_GHCziBase_Czh_static_info -u base_GHCziFloat_Fzh_static_info -u base_GHCziFloat_Dzh_static_info -u base_GHCziPtr_Ptr_static_info -u base_GHCziWord_Wzh_static_info -u base_GHCziInt_I8zh_static_info -u base_GHCziInt_I16zh_static_info -u base_GHCziInt_I32zh_static_info -u base_GHCziInt_I64zh_static_info -u base_GHCziWord_W8zh_static_info -u base_GHCziWord_W16zh_static_info -u base_GHCziWord_W32zh_static_info -u base_GHCziWord_W64zh_static_info -u base_GHCziStable_StablePtr_static_info -u base_GHCziBase_Izh_con_info -u base_GHCziBase_Czh_con_info -u base_GHCziFloat_Fzh_con_info -u base_GHCziFloat_Dzh_con_info -u base_GHCziPtr_Ptr_con_info -u base_GHCziPtr_FunPtr_con_info -u base_GHCziStable_StablePtr_con_info -u base_GHCziBase_False_closure -u base_GHCziBase_True_closure -u base_GHCziPack_unpackCString_closure -u base_GHCziIOBase_stackOverflow_closure -u base_GHCziIOBase_heapOverflow_closure -u base_GHCziIOBase_NonTermination_closure -u base_GHCziIOBase_BlockedOnDeadMVar_closure -u base_GHCziIOBase_BlockedIndefinitely_closure -u base_GHCziIOBase_Deadlock_closure -u base_GHCziIOBase_NestedAtomically_closure -u base_GHCziWeak_runFinalizzerBatch_closure -u base_GHCziConc_ensureIOManagerIsRunning_closure /usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/crt1.o /usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/crti.o /usr/ccs/lib/values-Xa.o /usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/crtbegin.o -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/haskell98/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/array/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/process/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/unix/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/random/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/directory/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/filepath/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/old-time/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/old-locale/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/rts -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/gmp -L/usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3 -L/usr/local/packages/gcc-4.2.3/bin/../lib/gcc -L/usr/local/lib/gcc/sparc-sun-solaris2.9/4.2.3 -L/usr/ccs/lib -L/usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/../../.. -L/usr/local/lib/gcc/sparc-sun-solaris2.9/4.2.3/../../.. stage2/ghc-inplace.o -lHShaskell98-1.0.1.0 -lHSarray-0.1.0.0 -lHSprocess-1.0.0.0 -lHSunix-2.3.0.0 -ldl -lHSrandom-1.0.0.0 -lHSdirectory-1.0.0.0 -lHSfilepath-1.1.0.0 -lHSold-time-1.0.0.0 -lHSold-locale-1.0.0.0 -lHSbase-3.0.1.0 -lHSrts -lm -lgmp -ldl -lrt -lgcc -lc -lgcc -lc /usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/crtend.o /usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/crtn.o
ld: Software Generation Utilities - Solaris Link Editors: 5.9-1.397
Undefined first referenced
symbol in file
cosf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
expf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
logf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
powf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
sinf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
tanf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
acosf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
asinf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
atanf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
coshf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
sinhf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
tanhf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
sqrtf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
ld: fatal: Symbol referencing errors. No output written to stage2/ghc-inplace
collect2: ld returned 1 exit status
*** Deleting temp files:
Deleting: /tmp/ghc6599_0/ghc6599_0.s
*** Deleting temp dirs:
Deleting: /tmp/ghc6599_0
I then confirmed the problem could be replicated with just gcc:
tdb@vulture [/u1/src/garstow/devel/ghc/work/ghc-6.8.2/compiler] % gcc -v -o stage2/ghc-inplace stage2/ghc-inplace.o -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/haskell98/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/array/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/process/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/unix/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/random/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/directory/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/filepath/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/old-time/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/old-locale/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/rts -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/gmp -lHShaskell98-1.0.1.0 -lHSarray-0.1.0.0 -lHSprocess-1.0.0.0 -lHSunix-2.3.0.0 -ldl -lHSrandom-1.0.0.0 -lHSdirectory-1.0.0.0 -lHSfilepath-1.1.0.0 -lHSold-time-1.0.0.0 -lHSold-locale-1.0.0.0 -lHSbase-3.0.1.0 -lHSrts -lm -lgmp -ldl -lrt -u base_GHCziBase_Izh_static_info -u base_GHCziBase_Czh_static_info -u base_GHCziFloat_Fzh_static_info -u base_GHCziFloat_Dzh_static_info -u base_GHCziPtr_Ptr_static_info -u base_GHCziWord_Wzh_static_info -u base_GHCziInt_I8zh_static_info -u base_GHCziInt_I16zh_static_info -u base_GHCziInt_I32zh_static_info -u base_GHCziInt_I64zh_static_info -u base_GHCziWord_W8zh_static_info -u base_GHCziWord_W16zh_static_info -u base_GHCziWord_W32zh_static_info -u base_GHCziWord_W64zh_static_info -u base_GHCziStable_StablePtr_static_info -u base_GHCziBase_Izh_con_info -u base_GHCziBase_Czh_con_info -u base_GHCziFloat_Fzh_con_info -u base_GHCziFloat_Dzh_con_info -u base_GHCziPtr_Ptr_con_info -u base_GHCziPtr_FunPtr_con_info -u base_GHCziStable_StablePtr_con_info -u base_GHCziBase_False_closure -u base_GHCziBase_True_closure -u base_GHCziPack_unpackCString_closure -u base_GHCziIOBase_stackOverflow_closure -u base_GHCziIOBase_heapOverflow_closure -u base_GHCziIOBase_NonTermination_closure -u base_GHCziIOBase_BlockedOnDeadMVar_closure -u base_GHCziIOBase_BlockedIndefinitely_closure -u base_GHCziIOBase_Deadlock_closure -u base_GHCziIOBase_NestedAtomically_closure -u base_GHCziWeak_runFinalizzerBatch_closure -u base_GHCziConc_ensureIOManagerIsRunning_closure
Using built-in specs.
Target: sparc-sun-solaris2.9
Configured with: ../../work/gcc-4.2.3/configure --enable-threads --enable-shared=libstdc++ --enable-languages=ada,c,c++,fortran,java,objc,obj-c++,treelang --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld
Thread model: posix
gcc version 4.2.3
/usr/local/packages/gcc-4.2.3/bin/../libexec/gcc/sparc-sun-solaris2.9/4.2.3/collect2 -V -Y P,/usr/ccs/lib:/usr/lib -Qy -o stage2/ghc-inplace -u base_GHCziBase_Izh_static_info -u base_GHCziBase_Czh_static_info -u base_GHCziFloat_Fzh_static_info -u base_GHCziFloat_Dzh_static_info -u base_GHCziPtr_Ptr_static_info -u base_GHCziWord_Wzh_static_info -u base_GHCziInt_I8zh_static_info -u base_GHCziInt_I16zh_static_info -u base_GHCziInt_I32zh_static_info -u base_GHCziInt_I64zh_static_info -u base_GHCziWord_W8zh_static_info -u base_GHCziWord_W16zh_static_info -u base_GHCziWord_W32zh_static_info -u base_GHCziWord_W64zh_static_info -u base_GHCziStable_StablePtr_static_info -u base_GHCziBase_Izh_con_info -u base_GHCziBase_Czh_con_info -u base_GHCziFloat_Fzh_con_info -u base_GHCziFloat_Dzh_con_info -u base_GHCziPtr_Ptr_con_info -u base_GHCziPtr_FunPtr_con_info -u base_GHCziStable_StablePtr_con_info -u base_GHCziBase_False_closure -u base_GHCziBase_True_closure -u base_GHCziPack_unpackCString_closure -u base_GHCziIOBase_stackOverflow_closure -u base_GHCziIOBase_heapOverflow_closure -u base_GHCziIOBase_NonTermination_closure -u base_GHCziIOBase_BlockedOnDeadMVar_closure -u base_GHCziIOBase_BlockedIndefinitely_closure -u base_GHCziIOBase_Deadlock_closure -u base_GHCziIOBase_NestedAtomically_closure -u base_GHCziWeak_runFinalizzerBatch_closure -u base_GHCziConc_ensureIOManagerIsRunning_closure /usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/crt1.o /usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/crti.o /usr/ccs/lib/values-Xa.o /usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/crtbegin.o -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/haskell98/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/array/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/process/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/unix/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/random/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/directory/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/filepath/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/old-time/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/old-locale/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/rts -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/gmp -L/usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3 -L/usr/local/packages/gcc-4.2.3/bin/../lib/gcc -L/usr/local/lib/gcc/sparc-sun-solaris2.9/4.2.3 -L/usr/ccs/lib -L/usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/../../.. -L/usr/local/lib/gcc/sparc-sun-solaris2.9/4.2.3/../../.. stage2/ghc-inplace.o -lHShaskell98-1.0.1.0 -lHSarray-0.1.0.0 -lHSprocess-1.0.0.0 -lHSunix-2.3.0.0 -ldl -lHSrandom-1.0.0.0 -lHSdirectory-1.0.0.0 -lHSfilepath-1.1.0.0 -lHSold-time-1.0.0.0 -lHSold-locale-1.0.0.0 -lHSbase-3.0.1.0 -lHSrts -lm -lgmp -ldl -lrt -lgcc -lc -lgcc -lc /usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/crtend.o /usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/crtn.o
ld: Software Generation Utilities - Solaris Link Editors: 5.9-1.397
Undefined first referenced
symbol in file
cosf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
expf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
logf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
powf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
sinf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
tanf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
acosf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
asinf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
atanf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
coshf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
sinhf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
tanhf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
sqrtf /u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build/libHSbase-3.0.1.0.a(Float__1.o)
ld: fatal: Symbol referencing errors. No output written to stage2/ghc-inplace
collect2: ld returned 1 exit status
As a work-around I tried giving it the static libm library, and that succeeded:
tdb@vulture [/u1/src/garstow/devel/ghc/work/ghc-6.8.2/compiler] % gcc -v -o stage2/ghc-inplace stage2/ghc-inplace.o -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/haskell98/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/array/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/process/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/unix/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/random/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/directory/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/filepath/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/old-time/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/old-locale/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/rts -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/gmp -lHShaskell98-1.0.1.0 -lHSarray-0.1.0.0 -lHSprocess-1.0.0.0 -lHSunix-2.3.0.0 -ldl -lHSrandom-1.0.0.0 -lHSdirectory-1.0.0.0 -lHSfilepath-1.1.0.0 -lHSold-time-1.0.0.0 -lHSold-locale-1.0.0.0 -lHSbase-3.0.1.0 -lHSrts -lm -lgmp -ldl -lrt -u base_GHCziBase_Izh_static_info -u base_GHCziBase_Czh_static_info -u base_GHCziFloat_Fzh_static_info -u base_GHCziFloat_Dzh_static_info -u base_GHCziPtr_Ptr_static_info -u base_GHCziWord_Wzh_static_info -u base_GHCziInt_I8zh_static_info -u base_GHCziInt_I16zh_static_info -u base_GHCziInt_I32zh_static_info -u base_GHCziInt_I64zh_static_info -u base_GHCziWord_W8zh_static_info -u base_GHCziWord_W16zh_static_info -u base_GHCziWord_W32zh_static_info -u base_GHCziWord_W64zh_static_info -u base_GHCziStable_StablePtr_static_info -u base_GHCziBase_Izh_con_info -u base_GHCziBase_Czh_con_info -u base_GHCziFloat_Fzh_con_info -u base_GHCziFloat_Dzh_con_info -u base_GHCziPtr_Ptr_con_info -u base_GHCziPtr_FunPtr_con_info -u base_GHCziStable_StablePtr_con_info -u base_GHCziBase_False_closure -u base_GHCziBase_True_closure -u base_GHCziPack_unpackCString_closure -u base_GHCziIOBase_stackOverflow_closure -u base_GHCziIOBase_heapOverflow_closure -u base_GHCziIOBase_NonTermination_closure -u base_GHCziIOBase_BlockedOnDeadMVar_closure -u base_GHCziIOBase_BlockedIndefinitely_closure -u base_GHCziIOBase_Deadlock_closure -u base_GHCziIOBase_NestedAtomically_closure -u base_GHCziWeak_runFinalizzerBatch_closure -u base_GHCziConc_ensureIOManagerIsRunning_closure /usr/lib/libm.a
Using built-in specs.
Target: sparc-sun-solaris2.9
Configured with: ../../work/gcc-4.2.3/configure --enable-threads --enable-shared=libstdc++ --enable-languages=ada,c,c++,fortran,java,objc,obj-c++,treelang --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld
Thread model: posix
gcc version 4.2.3
/usr/local/packages/gcc-4.2.3/bin/../libexec/gcc/sparc-sun-solaris2.9/4.2.3/collect2 -V -Y P,/usr/ccs/lib:/usr/lib -Qy -o stage2/ghc-inplace -u base_GHCziBase_Izh_static_info -u base_GHCziBase_Czh_static_info -u base_GHCziFloat_Fzh_static_info -u base_GHCziFloat_Dzh_static_info -u base_GHCziPtr_Ptr_static_info -u base_GHCziWord_Wzh_static_info -u base_GHCziInt_I8zh_static_info -u base_GHCziInt_I16zh_static_info -u base_GHCziInt_I32zh_static_info -u base_GHCziInt_I64zh_static_info -u base_GHCziWord_W8zh_static_info -u base_GHCziWord_W16zh_static_info -u base_GHCziWord_W32zh_static_info -u base_GHCziWord_W64zh_static_info -u base_GHCziStable_StablePtr_static_info -u base_GHCziBase_Izh_con_info -u base_GHCziBase_Czh_con_info -u base_GHCziFloat_Fzh_con_info -u base_GHCziFloat_Dzh_con_info -u base_GHCziPtr_Ptr_con_info -u base_GHCziPtr_FunPtr_con_info -u base_GHCziStable_StablePtr_con_info -u base_GHCziBase_False_closure -u base_GHCziBase_True_closure -u base_GHCziPack_unpackCString_closure -u base_GHCziIOBase_stackOverflow_closure -u base_GHCziIOBase_heapOverflow_closure -u base_GHCziIOBase_NonTermination_closure -u base_GHCziIOBase_BlockedOnDeadMVar_closure -u base_GHCziIOBase_BlockedIndefinitely_closure -u base_GHCziIOBase_Deadlock_closure -u base_GHCziIOBase_NestedAtomically_closure -u base_GHCziWeak_runFinalizzerBatch_closure -u base_GHCziConc_ensureIOManagerIsRunning_closure /usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/crt1.o /usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/crti.o /usr/ccs/lib/values-Xa.o /usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/crtbegin.o -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/haskell98/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/array/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/process/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/unix/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/random/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/directory/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/filepath/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/old-time/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/old-locale/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/libraries/base/dist/build -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/rts -L/u1/src/garstow/devel/ghc/work/ghc-6.8.2/gmp -L/usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3 -L/usr/local/packages/gcc-4.2.3/bin/../lib/gcc -L/usr/local/lib/gcc/sparc-sun-solaris2.9/4.2.3 -L/usr/ccs/lib -L/usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/../../.. -L/usr/local/lib/gcc/sparc-sun-solaris2.9/4.2.3/../../.. stage2/ghc-inplace.o -lHShaskell98-1.0.1.0 -lHSarray-0.1.0.0 -lHSprocess-1.0.0.0 -lHSunix-2.3.0.0 -ldl -lHSrandom-1.0.0.0 -lHSdirectory-1.0.0.0 -lHSfilepath-1.1.0.0 -lHSold-time-1.0.0.0 -lHSold-locale-1.0.0.0 -lHSbase-3.0.1.0 -lHSrts -lm -lgmp -ldl -lrt /usr/lib/libm.a -lgcc -lc -lgcc -lc /usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/crtend.o /usr/local/packages/gcc-4.2.3/bin/../lib/gcc/sparc-sun-solaris2.9/4.2.3/crtn.o
ld: Software Generation Utilities - Solaris Link Editors: 5.9-1.397
Strangely the resulting binary is linked against libm.so.
I used truss to check if an alternate libm was being found by the compiler, but it wasn't. I also tried adding -lm to the beginning and end of the compile line, but it didn't help.
I'm happy to help debug as needed.
Thanks, Tim.
Trac metadata
Trac field | Value |
---|---|
Version | 6.8.2 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |