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,351
    • Issues 5,351
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 568
    • Merge requests 568
  • 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
  • #20689
Closed
Open
Issue created Nov 16, 2021 by Matthew Pickering@mpickeringDeveloper

Linker error when using ghci (packman) - requires dynamic R_X86_64_PC32 reloc against 'g0' which may overflow at runtime

Repro: git@github.com:mpickering/packman.git

cabal repl
cabal repl
[nix-shell:~/packman]$ cabal repl
Resolving dependencies...
Build profile: -w ghc-8.10.2 -O1
In order, the following will be built (use -v for more details):
 - packman-0.5.0 (lib) (first run)
Configuring library for packman-0.5.0..
Preprocessing library for packman-0.5.0..
GHCi, version 8.10.2: https://www.haskell.org/ghc/  :? for help
[1 of 4] Compiling GHC.Packing.PackException ( /home/matt/packman/dist-newstyle/build/x86_64-linux/ghc-8.10.2/packman-0.5.0/build/GHC/Packing/PackException.hs, /run/user/1000/ghc1380672_0/ghc_8.o )
[2 of 4] Compiling GHC.Packing.Type ( GHC/Packing/Type.hs, /run/user/1000/ghc1380672_0/ghc_10.o )
[3 of 4] Compiling GHC.Packing.Core ( GHC/Packing/Core.hs, /run/user/1000/ghc1380672_0/ghc_6.o )
[4 of 4] Compiling GHC.Packing      ( GHC/Packing.hs, interpreted )
Ok, four modules loaded.
*GHC.Packing> :q
Leaving GHCi.
^[[A
[nix-shell:~/packman]$ cabal repl
Build profile: -w ghc-8.10.2 -O1
In order, the following will be built (use -v for more details):
 - packman-0.5.0 (lib) (first run)
Preprocessing library for packman-0.5.0..
GHCi, version 8.10.2: https://www.haskell.org/ghc/  :? for help
/nix/store/p792j5f44l3f0xi7ai5jllwnxqwnka88-binutils-2.31.1/bin/ld.gold: error: /home/matt/packman/dist-newstyle/build/x86_64-linux/ghc-8.10.2/packman-0.5.0/build/cbits/Wrapper.o: requires dynamic R_X86_64_PC32 reloc against 'g0' which may overflow at runtime; recompile with -fPIC
collect2: error: ld returned 1 exit status
`cc' failed in phase `Linker'. (Exit code: 1)
cabal: repl failed for packman-0.5.0.

You need to cabal build then cabal repl for this to fail on HEAD.

[nix-shell:~/packman]$ cabal build -w ~/ghc-multi-hmi/_build/stage1/bin/ghc
Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.2.0.0 supports
'ghc' version < 8.12): /home/matt/ghc-multi-hmi/_build/stage1/bin/ghc is
version 9.3.20211107
Resolving dependencies...
Build profile: -w ghc-9.3.20211107 -O1
In order, the following will be built (use -v for more details):
 - packman-0.5.0 (lib) (first run)
Configuring library for packman-0.5.0..
Preprocessing library for packman-0.5.0..
Building library for packman-0.5.0..
[1 of 4] Compiling GHC.Packing.PackException ( /home/matt/packman/dist-newstyle/build/x86_64-linux/ghc-9.3.20211107/packman-0.5.0/build/GHC/Packing/PackException.hs, /home/matt/packman/dist-newstyle/build/x86_64-linux/ghc-9.3.20211107/packman-0.5.0/build/GHC/Packing/PackException.o, /home/matt/packman/dist-newstyle/build/x86_64-linux/ghc-9.3.20211107/packman-0.5.0/build/GHC/Packing/PackException.dyn_o )
[2 of 4] Compiling GHC.Packing.Type ( GHC/Packing/Type.hs, /home/matt/packman/dist-newstyle/build/x86_64-linux/ghc-9.3.20211107/packman-0.5.0/build/GHC/Packing/Type.o, /home/matt/packman/dist-newstyle/build/x86_64-linux/ghc-9.3.20211107/packman-0.5.0/build/GHC/Packing/Type.dyn_o )
[3 of 4] Compiling GHC.Packing.Core ( GHC/Packing/Core.hs, /home/matt/packman/dist-newstyle/build/x86_64-linux/ghc-9.3.20211107/packman-0.5.0/build/GHC/Packing/Core.o, /home/matt/packman/dist-newstyle/build/x86_64-linux/ghc-9.3.20211107/packman-0.5.0/build/GHC/Packing/Core.dyn_o )
[4 of 4] Compiling GHC.Packing      ( GHC/Packing.hs, /home/matt/packman/dist-newstyle/build/x86_64-linux/ghc-9.3.20211107/packman-0.5.0/build/GHC/Packing.o, /home/matt/packman/dist-newstyle/build/x86_64-linux/ghc-9.3.20211107/packman-0.5.0/build/GHC/Packing.dyn_o )
[nix-shell:~/packman]$ cabal repl -w ~/ghc-multi-hmi/_build/stage1/bin/ghc
Build profile: -w ghc-9.3.20211107 -O1
In order, the following will be built (use -v for more details):
 - packman-0.5.0 (lib) (ephemeral targets)
Preprocessing library for packman-0.5.0..
GHCi, version 9.3.20211107: https://www.haskell.org/ghc/  :? for help
/nix/store/p792j5f44l3f0xi7ai5jllwnxqwnka88-binutils-2.31.1/bin/ld.gold: error: /home/matt/packman/dist-newstyle/build/x86_64-linux/ghc-9.3.20211107/packman-0.5.0/build/cbits/Wrapper.o: requires dynamic R_X86_64_PC32 reloc against 'g0' which may overflow at runtime; recompile with -fPIC
collect2: error: ld returned 1 exit status
`cc' failed in phase `Linker'. (Exit code: 1)
cabal: repl failed for packman-0.5.0.

It's strange that you need to run cabal repl twice in order to see the issue. I can see this with 8.10.2 and also HEAD.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking