Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • GHC GHC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 5,261
    • Issues 5,261
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 569
    • Merge requests 569
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Glasgow Haskell CompilerGlasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #12748
Closed
Open
Issue created Oct 21, 2016 by Sylvain Henry@hsyl20Developer

BFD linker issue with GHCi

On my project, GHCi seems to hang waiting for the BFD linker to complete the link of libghc_1.so. The hanging command has the form: /usr/bin/ld @/tmp/ccHQ8Uzc Using gdb, it seems the BFD linker ld is looping (infinitely?) into bfd_elf_link_add_symbols.

I have tried to use the GOLD linker ld.gold instead on the ccHQ8Uzc file (removing the unsupported parameters --hash-size=31 and --reduce-memory-overhead) and it links instantly.

Could it be that GHC 8.0.1 generates too many symbols for the BFD linker or something like this? The BFD linker worked with GHC 7.10.3.

I build the project with stack, the hanging happens with stack repl (GHCi's prompt never shows):

@(Stack/Exec.hs:76:10)
2016-10-21 12:57:53.747332: [debug] Creating process: /usr/bin/ghc --interactive -i -odir=/home/hsyl20/travail/code/ViperVM/.stack-work/odir -hidir=/home/hsyl20/travail/code/ViperVM/.stack-work/odir -hide-all-packages -i/home/hsyl20/travail/code/ViperVM/src/lib -i/home/hsyl20/travail/code/ViperVM/.stack-work/dist/x86_64-linux/Cabal-1.24.0.0/build/autogen -i/home/hsyl20/travail/code/ViperVM/.stack-work/dist/x86_64-linux/Cabal-1.24.0.0/build -stubdir=/home/hsyl20/travail/code/ViperVM/.stack-work/dist/x86_64-linux/Cabal-1.24.0.0/build /home/hsyl20/travail/code/ViperVM/.stack-work/dist/x86_64-linux/Cabal-1.24.0.0/build/src/lib/ViperVM/Arch/X86_64/Linux/syscall.o /home/hsyl20/travail/code/ViperVM/.stack-work/dist/x86_64-linux/Cabal-1.24.0.0/build/src/lib/ViperVM/Arch/X86_64/cpuid.o -package-id=base-4.9.0.0 -package-id=containers-0.5.7.1 -package-id=list-t-1-z6InD0gw7C2QDNkG2mqUf -package-id=stm-2.4.4.1-9HlGYelGmT69YkepeDjuRg -package-id=stm-containers-0.2.15-JTVESCf1d8uCXyJbMCLfQJ -package-id=stm-linkedlist-0.1.0.0-GCpyrfjLFyWFZy8qotX7VW -package-id=hashable-1.2.4.0-GnltDttmBjG9qGzcjuPOH4 -package-id=cereal-0.5.3.0-JHJQkHEuvBGFx8XwIB7eX0 -package-id=bytestring-0.10.8.1 -package-id=system-fileio-0.3.16.3-EDef2a4Ximk1z04PLLp95q -package-id=system-filepath-0.4.13.4-24DUGoIUqZu3MxGDhYLfCN -package-id=pureMD5-2.1.3-HBUMOqRjfoe6ZpLefZBT34 -package-id=text-1.2.2.1-FgcR4Xf0VlEHD9HLxzq9WJ -package-id=filepath-1.4.1.0 -package-id=either-4.4.1.1-H4kagIugHGeIf0psi4Z0to -package-id=vector-0.11.0.0-BEDZb5o2QOhGbIm6ky7rl6 -package-id=directory-1.2.6.2 -package-id=megaparsec-5.0.1-25EMPYC0AB61WKE0MffPOR -package-id=transformers-0.5.2.0 -package-id=unix-2.7.2.0 -package-id=criterion-1.1.1.0-Hq6Gg6oBMXcJvBdkiC2CBq -package-id=c-storable-deriving-0.1.3-DIL5UpBe3Em7XwOYU01lXH -package-id=pqueue-1.3.1.1-A3EjwMk8dUf7l1Swzqrred -package-id=mtl-2.2.1-6qsR1PHUy5lL47Hpoa4jCM -package-id=template-haskell-2.11.0.0 -package-id=text-format-0.3.1.1-IMczxQgUdKA8it9OEumLMx -package-id=diagrams-1.3.0.1-9gEbAUMmu7DEIEOtgBTN65 -package-id=diagrams-lib-1.3.1.4-EWFz1jRqz29KScpInBNJM4 -package-id=diagrams-core-1.3.0.8-GGXo5v7JBpPFzOrVLJC9nc -package-id=diagrams-rasterific-1.3.1.8-2NQiYfE0qFP7UFNV120Viv -package-id=JuicyPixels-3.2.8-GcqBxM3ZIJ83rYx9ygJ0bm -package-id=loop-0.3.0-98VH1UqsOHy2KxBxA55ICY -package-id=Rasterific-0.6.1.1-3xSOfexAru5AQFIj4yXZ8f -package-id=colour-2.3.3-1clKnMqHWhQAElTFd8Ydyp -package-id=file-embed-0.0.10-IXfudWSq57y1Athysk5ifZ -i/home/hsyl20/travail/code/ViperVM/src/apps -i/home/hsyl20/travail/code/ViperVM/.stack-work/dist/x86_64-linux/Cabal-1.24.0.0/build/Disass/Disass-tmp -i/home/hsyl20/travail/code/ViperVM/src/apps/Elf -i/home/hsyl20/travail/code/ViperVM/.stack-work/dist/x86_64-linux/Cabal-1.24.0.0/build/ElfWeb/ElfWeb-tmp -package-id=happstack-server-7.4.6.2-8UX7Pc8fxznJjPPJjgBwca -package-id=lucid-2.9.6-FZpI2dlNE9n8QXjEeTfhJW -package-id=optparse-applicative-0.12.1.0-4FckWvtE7Gp1EYdm7OVbJw -i/home/hsyl20/travail/code/ViperVM/.stack-work/dist/x86_64-linux/Cabal-1.24.0.0/build/MemoryTest/MemoryTest-tmp -i/home/hsyl20/travail/code/ViperVM/src/apps/PlatformWeb -i/home/hsyl20/travail/code/ViperVM/.stack-work/dist/x86_64-linux/Cabal-1.24.0.0/build/PlatformWeb/PlatformWeb-tmp -package-id=blaze-html-0.8.1.2-2ceCZ3Fm7x67ZwaaR7uQ3C -package-id=blaze-markup-0.7.1.0-BKRb0wHFpEyDJWTsyjQqnp -package-id=network-2.6.3.1-G4Up1CPKbp7DeFsnywOnGG -i/home/hsyl20/travail/code/ViperVM/.stack-work/dist/x86_64-linux/Cabal-1.24.0.0/build/TestSyscalls/TestSyscalls-tmp -i/home/hsyl20/travail/code/ViperVM/src/apps/X86Web -i/home/hsyl20/travail/code/ViperVM/.stack-work/dist/x86_64-linux/Cabal-1.24.0.0/build/X86Web/X86Web-tmp -package-id=HTTP-4000.3.3-Fl4VtSZsPE4A3kSlCM2M0U -i/home/hsyl20/travail/code/ViperVM/.stack-work/dist/x86_64-linux/Cabal-1.24.0.0/build/gunzip/gunzip-tmp -i/home/hsyl20/travail/code/ViperVM/.stack-work/dist/x86_64-linux/Cabal-1.24.0.0/build/huffman/huffman-tmp -i/home/hsyl20/travail/code/ViperVM/.stack-work/dist/x86_64-linux/Cabal-1.24.0.0/build/udev/udev-tmp -i/home/hsyl20/travail/code/dynamic-linker-template -i/home/hsyl20/travail/code/dynamic-linker-template/.stack-work/dist/x86_64-linux/Cabal-1.24.0.0/build/autogen -i/home/hsyl20/travail/code/dynamic-linker-template/.stack-work/dist/x86_64-linux/Cabal-1.24.0.0/build -stubdir=/home/hsyl20/travail/code/dynamic-linker-template/.stack-work/dist/x86_64-linux/Cabal-1.24.0.0/build -Wall -Wall -Wall -Wall -Wall -Wall -Wall -Wall -Wall -Wall -Wall -optP-include -optP/tmp/ghci13379/cabal_macros.h -ghci-script=/tmp/ghci13379/ghci-script
@(System/Process/Run.hs:103:5)
GHCi, version 8.0.1: http://www.haskell.org/ghc/  :? for help

This is on ArchLinux, binutils-2.27, stack 1.2.0, GHC 8.0.1.

Steps to reproduce (I don't have a smaller reproducing example for now):

git clone https://github.com/hsyl20/ViperVM
cd ViperVM
stack repl
# wait... the compilation is quite long
# press enter when stack asks for the main module to load

stack build doesn't trigger this linker issue.

Trac metadata
Trac field Value
Version 8.0.1
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler (Linking)
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking