Linking error during stage2

dermiste dermiste at gmail.com
Tue Nov 11 12:38:02 EST 2008


Hi,

I've successfully built GHC-6.10.1 from 6.6.1 on OpenBSD 4.4, and
would like now to generate a hc-file-bundle to build it without
pre-existing GHC. I followed the instructions in [1], but I'm stuck
with this error :

[....]
gmake[2]: Leaving directory
`/usr/ports/lang/ghc/w-ghc-6.10.1-ghc_boot/ghc-6.10.1/ghc'
gmake[1]: Leaving directory
`/usr/ports/lang/ghc/w-ghc-6.10.1-ghc_boot/ghc-6.10.1/compiler'
gmake -C utils with-stage-2
gmake[1]: Entering directory
`/usr/ports/lang/ghc/w-ghc-6.10.1-ghc_boot/ghc-6.10.1/utils'
gmake -C installPackage with-stage-2
gmake[2]: Entering directory
`/usr/ports/lang/ghc/w-ghc-6.10.1-ghc_boot/ghc-6.10.1/utils/installPackage'
/usr/ports/lang/ghc/w-ghc-6.10.1-ghc_boot/ghc-6.10.1/libraries/cabal-bin
/usr/local/bin/ghc
/usr/ports/lang/ghc/w-ghc-6.10.1-ghc_boot/ghc-6.10.1/libraries/bootstrapping.conf
configure --distpref dist-install         \
                           --prefix=/NONEXISTENT --bindir=/NONEXISTENT
--libdir=/NONEXISTENT --libexecdir=/NONEXISTENT --datadir=/NONEXISTENT
--docdir=/NONEXISTENT --haddockdir=/NONEXISTENT --htmldir=/NONEXISTENT
\

--with-compiler=/usr/ports/lang/ghc/w-ghc-6.10.1-ghc_boot/ghc-6.10.1/ghc/stage2-inplace/ghc
--with-hc-pkg=/usr/ports/lang/ghc/w-ghc-6.10.1-ghc_boot/ghc-6.10.1/utils/ghc-pkg/install-inplace/bin/ghc-pkg
  --package-db /usr/ports/lang/ghc/w-ghc-6.10.1-ghc_boot/ghc-6.10.1/stage3.package.conf
  \
                           --libsubdir='$pkgid' --with-gcc=gcc
--with-ld=/usr/bin/ld --hsc2hs-option=-I/usr/local/include
--configure-option='--with-gmp-includes=/usr/local/include'
--configure-option='--with-gmp-libraries=/usr/local/lib'
--configure-option=--with-cc=gcc
--with-hsc2hs=/usr/ports/lang/ghc/w-ghc-6.10.1-ghc_boot/ghc-6.10.1/utils/hsc2hs/install-inplace/bin/hsc2hs
      \
                           --constraint="Cabal == 1.6.0.1"
Configuring installPackage-1.0...
/usr/ports/lang/ghc/w-ghc-6.10.1-ghc_boot/ghc-6.10.1/libraries/cabal-bin
/usr/local/bin/ghc
/usr/ports/lang/ghc/w-ghc-6.10.1-ghc_boot/ghc-6.10.1/libraries/bootstrapping.conf
build     --distpref dist-install  --ghc-option=-H32m --ghc-option=-O
--ghc-option=-fvia-C --ghc-option=-Rghc-timing
--ghc-option=-keep-hc-file --ghc-option=-Wall
Preprocessing executables for installPackage-1.0...
Building installPackage-1.0...
Linking dist-install/build/installPackage/installPackage ...
/usr/ports/lang/ghc/w-ghc-6.10.1-ghc_boot/ghc-6.10.1/libraries/unix/dist/build/libHSunix-2.3.1.0.a(Semaphore.o)(.text+0xac):
In function `unixzm2zi3zi1zi0_SystemziPosixziSemaphore_zdwa_info':
: undefined reference to `sem_trywait'
{... five more like that ...}
/usr/ports/lang/ghc/w-ghc-6.10.1-ghc_boot/ghc-6.10.1/libraries/unix/dist/build/libHSunix-2.3.1.0.a(Semaphore.o)(.text+0x17a4):
In function `s29I_info':
: undefined reference to `sem_unlink'
collect2: ld returned 1 exit status
<<ghc: 36084348 bytes, 5 GCs, 3492304/5176252 avg/max bytes residency
(3 samples), 33M in use, 0.01 INIT (0.00 elapsed), 0.12 MUT (5.36
elapsed), 0.07 GC (0.21 elapsed) :ghc>>

Obviously, the linker skips entirely /usr/lib/libpthread.a, as all the
symbols defined in <semaphore.h> are into it.
But its behaviour is slightly inconsistent, as I had no problem
building the stage2 commenting SplitObjs in mk/build.mk

some more data : I'm compiling this with the aforementioned GHC-6.10.1
bootstrapped from GHC-6.6.1.

Clues anyone ?

[1] http://hackage.haskell.org/trac/ghc/wiki/Building/Porting#PortingGHCtoanewplatform
-- 
Vincent Gross

"So, the essence of XML is this: the problem it solves is not hard, and
it does not solve the problem well." -- Jerome Simeon & Phil Wadler


More information about the Glasgow-haskell-users mailing list