Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
GHC
GHC
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 4,326
    • Issues 4,326
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 390
    • Merge Requests 390
  • Requirements
    • Requirements
    • List
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Security & Compliance
    • Security & Compliance
    • Dependency List
    • License Compliance
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Glasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #2285

Closed
Open
Opened May 14, 2008 by TimBishop@trac-TimBishop

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
Assignee
Assign to
6.12.1
Milestone
6.12.1
Assign milestone
Time tracking
None
Due date
None
Reference: ghc/ghc#2285