id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	os	architecture	failure	difficulty	testcase	blockedby	blocking	related
2285	Solaris 9 build fails at stage2 with undefined symbol errors (for libm symbols)	TimBishop		"(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."	bug	closed	normal	6.12.1	Compiler	6.8.2	invalid			Solaris	sparc		Unknown				
