[GHC] #8951: genSym uses atomic_inc but doesn't link arm_atomic_spin_lock

GHC ghc-devs at haskell.org
Wed Apr 2 22:43:32 UTC 2014


#8951: genSym uses atomic_inc but doesn't link arm_atomic_spin_lock
--------------------------------+----------------------------------------
       Reporter:  cjwatson      |             Owner:
           Type:  bug           |            Status:  new
       Priority:  normal        |         Milestone:
      Component:  Build System  |           Version:  7.8.1-rc1
       Keywords:                |  Operating System:  Linux
   Architecture:  arm           |   Type of failure:  Building GHC failed
     Difficulty:  Unknown       |         Test Case:
     Blocked By:                |          Blocking:
Related Tickets:                |
--------------------------------+----------------------------------------
 On Debian armel, a snapshot of GHC 7.8 from 20140228 fails to build as
 follows:

 https://buildd.debian.org/status/fetch.php?pkg=ghc&arch=armel&ver=7.8.20140228-1&stamp=1394495564

 {{{
 "inplace/bin/ghc-stage2" -o utils/haddock/dist/build/tmp/haddock -hisuf hi
 -osuf  o -hcsuf hc -static  -H32m -O -lffi -optl-pthread -optc-mlong-calls
 -hide-all-packages -i -iutils/haddock/driver -iutils/haddock/src
 -iutils/haddock/vendor/attoparsec-0.10.4.0 -iutils/haddock/dist/build
 -iutils/haddock/dist/build/autogen -Iutils/haddock/dist/build
 -Iutils/haddock/dist/build/autogen    -optP-DIN_GHC_TREE -optP-include
 -optPutils/haddock/dist/build/autogen/cabal_macros.h -package
 Cabal-1.18.1.3 -package array-0.5.0.0 -package base-4.7.0.0 -package
 bytestring-0.10.4.0 -package containers-0.5.4.0 -package deepseq-1.3.0.2
 -package directory-1.2.0.2 -package filepath-1.3.0.2 -package
 ghc-7.8.0.20140228 -package xhtml-3000.2.1 -funbox-strict-fields -Wall
 -fwarn-tabs -O2 -XHaskell2010  -no-user-package-db -rtsopts      -odir
 utils/haddock/dist/build -hidir utils/haddock/dist/build -stubdir
 utils/haddock/dist/build     utils/haddock/dist/build/Main.o
 utils/haddock/dist/build/Documentation/Haddock.o
 utils/haddock/dist/build/Data/Attoparsec.o
 utils/haddock/dist/build/Data/Attoparsec/ByteString.o
 utils/haddock/dist/build/Data/Attoparsec/ByteString/Char8.o
 utils/haddock/dist/build/Data/Attoparsec/Combinator.o
 utils/haddock/dist/build/Data/Attoparsec/Number.o
 utils/haddock/dist/build/Data/Attoparsec/ByteString/FastSet.o
 utils/haddock/dist/build/Data/Attoparsec/ByteString/Internal.o
 utils/haddock/dist/build/Data/Attoparsec/Internal.o
 utils/haddock/dist/build/Data/Attoparsec/Internal/Types.o
 utils/haddock/dist/build/Haddock.o
 utils/haddock/dist/build/Haddock/Interface.o
 utils/haddock/dist/build/Haddock/Interface/Rename.o
 utils/haddock/dist/build/Haddock/Interface/Create.o
 utils/haddock/dist/build/Haddock/Interface/AttachInstances.o
 utils/haddock/dist/build/Haddock/Interface/LexParseRn.o
 utils/haddock/dist/build/Haddock/Interface/ParseModuleHeader.o
 utils/haddock/dist/build/Haddock/Parser.o
 utils/haddock/dist/build/Haddock/Parser/Util.o
 utils/haddock/dist/build/Haddock/Utf8.o
 utils/haddock/dist/build/Haddock/Utils.o
 utils/haddock/dist/build/Haddock/Backends/Xhtml.o
 utils/haddock/dist/build/Haddock/Backends/Xhtml/Decl.o
 utils/haddock/dist/build/Haddock/Backends/Xhtml/DocMarkup.o
 utils/haddock/dist/build/Haddock/Backends/Xhtml/Layout.o
 utils/haddock/dist/build/Haddock/Backends/Xhtml/Names.o
 utils/haddock/dist/build/Haddock/Backends/Xhtml/Themes.o
 utils/haddock/dist/build/Haddock/Backends/Xhtml/Types.o
 utils/haddock/dist/build/Haddock/Backends/Xhtml/Utils.o
 utils/haddock/dist/build/Haddock/Backends/LaTeX.o
 utils/haddock/dist/build/Haddock/Backends/HaddockDB.o
 utils/haddock/dist/build/Haddock/Backends/Hoogle.o
 utils/haddock/dist/build/Haddock/ModuleTree.o
 utils/haddock/dist/build/Haddock/Types.o
 utils/haddock/dist/build/Haddock/Doc.o
 utils/haddock/dist/build/Haddock/Version.o
 utils/haddock/dist/build/Haddock/InterfaceFile.o
 utils/haddock/dist/build/Haddock/Options.o
 utils/haddock/dist/build/Haddock/GhcUtils.o
 utils/haddock/dist/build/Haddock/Convert.o
 utils/haddock/dist/build/Paths_haddock.o
 /«PKGBUILDDIR»/compiler/stage2/build/libHSghc-7.8.0.20140228.a(genSym.o):
 In function `genSym':
 genSym.c:(.text+0x84): undefined reference to `arm_atomic_spin_lock'
 genSym.c:(.text+0x88): undefined reference to `arm_atomic_spin_unlock'
 collect2: error: ld returned 1 exit status
 make[2]: *** [utils/haddock/dist/build/tmp/haddock] Error 1
 }}}

 Our armel architecture satisfies "arm_HOST_ARCH &&
 defined(arm_HOST_ARCH_PRE_ARMv6)", so cas() in includes/stg/SMP.h will
 (uniquely among architectures) not be entirely inline: it calls
 arm_atomic_spin_lock and arm_atomic_spin_unlock, which are in libHSrts.
 7.8 introduces compiler/cbits/genSym.c which uses atomic_inc.  How should
 the linkage requirements be satisfied here?

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8951>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list