Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Absolute runpaths in ELF libraries generated by cabal_package #1130

Closed
thufschmitt opened this issue Oct 18, 2019 · 1 comment
Closed

Absolute runpaths in ELF libraries generated by cabal_package #1130

thufschmitt opened this issue Oct 18, 2019 · 1 comment

Comments

@thufschmitt
Copy link
Contributor

Quite similar to #1127 , although this issue is triggered in a different context by a different rule, so probably worth a different issue

Describe the bug

cabal_package generates .so files that contain absolute references to the sandbox root in their ELF header

To Reproduce

bazel build //tests/binary-with-prebuilt/...
readelf -d bazel-bin/external/stackage/streaming-0.2.2.0/_install/lib/libHSstreaming-0.2.2.0-ghc8.6.5.so| grep .cache/bazel

On my machine, this gives me

$ readelf -d bazel-bin/external/stackage/streaming-0.2.2.0/_install/lib/libHSstreaming-0.2.2.0-ghc8.6.5.so| grep .cache/bazel     06:43:34
 0x000000000000001d (RUNPATH)            Library runpath: [/nix/store/44zyylbbhabj2d62f7lbb6wmjlllcv10-ghc-8.6.5/lib/ghc-8.6.5/array-0.5.3.0:/nix/store/44zyylbbhabj2d62f7lbb6wmjlllcv10-ghc-8.6.5/lib/ghc-8.6.5/base-4.12.0.0:/home/regnat/.cache/bazel/_bazel_regnat/9b6df921bb6e07dc34fcea21f9031196/sandbox/linux-sandbox/15/execroot/rules_haskell/bazel-out/k8-fastbuild/bin/external/stackage/base-orphans-0.8.1/_install/lib:/nix/store/44zyylbbhabj2d62f7lbb6wmjlllcv10-ghc-8.6.5/lib/ghc-8.6.5/containers-0.6.0.1:/nix/store/44zyylbbhabj2d62f7lbb6wmjlllcv10-ghc-8.6.5/lib/ghc-8.6.5/deepseq-1.4.4.0:/nix/store/44zyylbbhabj2d62f7lbb6wmjlllcv10-ghc-8.6.5/lib/ghc-8.6.5/ghc-prim-0.5.3:/nix/store/44zyylbbhabj2d62f7lbb6wmjlllcv10-ghc-8.6.5/lib/ghc-8.6.5/integer-gmp-1.0.2.0:/nix/store/vdw4zkdvdcpca3bn0z7i3a2na48pr38a-gmp-6.1.2/lib:/home/regnat/.cache/bazel/_bazel_regnat/9b6df921bb6e07dc34fcea21f9031196/sandbox/linux-sandbox/15/execroot/rules_haskell/bazel-out/k8-fastbuild/bin/external/stackage/mmorph-1.1.2/_install/lib:/nix/store/44zyylbbhabj2d62f7lbb6wmjlllcv10-ghc-8.6.5/lib/ghc-8.6.5/mtl-2.2.2:/nix/store/44zyylbbhabj2d62f7lbb6wmjlllcv10-ghc-8.6.5/lib/ghc-8.6.5/rts:/nix/store/rr52rxkzn8w4pidxp8g49649yysa726h-libffi-3.2.1/lib:/home/regnat/.cache/bazel/_bazel_regnat/9b6df921bb6e07dc34fcea21f9031196/sandbox/linux-sandbox/15/execroot/rules_haskell/bazel-out/k8-fastbuild/bin/external/stackage/semigroups-0.18.5/_install/lib:/nix/store/44zyylbbhabj2d62f7lbb6wmjlllcv10-ghc-8.6.5/lib/ghc-8.6.5/stm-2.5.0.0:/nix/store/44zyylbbhabj2d62f7lbb6wmjlllcv10-ghc-8.6.5/lib/ghc-8.6.5/transformers-0.5.6.2:/home/regnat/.cache/bazel/_bazel_regnat/9b6df921bb6e07dc34fcea21f9031196/sandbox/linux-sandbox/15/execroot/rules_haskell/bazel-out/k8-fastbuild/bin/external/stackage/transformers-base-0.4.5.2/_install/lib:/home/regnat/.cache/bazel/_bazel_regnat/9b6df921bb6e07dc34fcea21f9031196/sandbox/linux-sandbox/15/execroot/rules_haskell/bazel-out/k8-fastbuild/bin/external/stackage/transformers-compat-0.6.2/_install/lib:/nix/store/iykxb0bmfjmi7s53kfg6pjbfpd8jmza6-glibc-2.27/lib:/nix/store/pjx3f50x0qziyivs7rbg5s12p99nn2np-gcc-7.4.0-lib/lib:/home/regnat/.cache/bazel/_bazel_regnat/9b6df921bb6e07dc34fcea21f9031196/sandbox/linux-sandbox/15/execroot/rules_haskell/bazel-out/k8-fastbuild/bin/_solib_k8/_U@rules_Uhaskell_S_Shaskell_Ctoolchain-libraries___Uexternal_Srules_Uhaskell_Ughc_Unixpkgs_Uhaskell_Utoolchain_Slib_Sghc-8.6.5_Scontainers-0.6.0.1:/home/regnat/.cache/bazel/_bazel_regnat/9b6df921bb6e07dc34fcea21f9031196/sandbox/linux-sandbox/15/execroot/rules_haskell/bazel-out/k8-fastbuild/bin/_solib_k8/_U@rules_Uhaskell_S_Shaskell_Ctoolchain-libraries___Uexternal_Srules_Uhaskell_Ughc_Unixpkgs_Uhaskell_Utoolchain_Slib_Sghc-8.6.5_Sdeepseq-1.4.4.0:/home/regnat/.cache/bazel/_bazel_regnat/9b6df921bb6e07dc34fcea21f9031196/sandbox/linux-sandbox/15/execroot/rules_haskell/bazel-out/k8-fastbuild/bin/_solib_k8/_U@stackage_S_S_Cmmorph___Uexternal_Sstackage_Smmorph-1.1.2_S_Uinstall_Slib:/home/regnat/.cache/bazel/_bazel_regnat/9b6df921bb6e07dc34fcea21f9031196/sandbox/linux-sandbox/15/execroot/rules_haskell/bazel-out/k8-fastbuild/bin/_solib_k8/_U@rules_Uhaskell_S_Shaskell_Ctoolchain-libraries___Uexternal_Srules_Uhaskell_Ughc_Unixpkgs_Uhaskell_Utoolchain_Slib_Sghc-8.6.5_Smtl-2.2.2:/home/regnat/.cache/bazel/_bazel_regnat/9b6df921bb6e07dc34fcea21f9031196/sandbox/linux-sandbox/15/execroot/rules_haskell/bazel-out/k8-fastbuild/bin/_solib_k8/_U@stackage_S_S_Csemigroups___Uexternal_Sstackage_Ssemigroups-0.18.5_S_Uinstall_Slib:/home/regnat/.cache/bazel/_bazel_regnat/9b6df921bb6e07dc34fcea21f9031196/sandbox/linux-sandbox/15/execroot/rules_haskell/bazel-out/k8-fastbuild/bin/_solib_k8/_U@stackage_S_S_Ctransformers-base___Uexternal_Sstackage_Stransformers-base-0.4.5.2_S_Uinstall_Slib:/home/regnat/.cache/bazel/_bazel_regnat/9b6df921bb6e07dc34fcea21f9031196/sandbox/linux-sandbox/15/execroot/rules_haskell/bazel-out/k8-fastbuild/bin/_solib_k8/_U@stackage_S_S_Cbase-orphans___Uexternal_Sstackage_Sbase-orphans-0.8.1_S_Uinstall_Slib:/home/regnat/.cache/bazel/_bazel_regnat/9b6df921bb6e07dc34fcea21f9031196/sandbox/linux-sandbox/15/execroot/rules_haskell/bazel-out/k8-fastbuild/bin/_solib_k8/_U@rules_Uhaskell_S_Shaskell_Ctoolchain-libraries___Uexternal_Srules_Uhaskell_Ughc_Unixpkgs_Uhaskell_Utoolchain_Slib_Sghc-8.6.5_Sstm-2.5.0.0:/home/regnat/.cache/bazel/_bazel_regnat/9b6df921bb6e07dc34fcea21f9031196/sandbox/linux-sandbox/15/execroot/rules_haskell/bazel-out/k8-fastbuild/bin/_solib_k8/_U@rules_Uhaskell_S_Shaskell_Ctoolchain-libraries___Uexternal_Srules_Uhaskell_Ughc_Unixpkgs_Uhaskell_Utoolchain_Slib_Sghc-8.6.5_Sarray-0.5.3.0:/home/regnat/.cache/bazel/_bazel_regnat/9b6df921bb6e07dc34fcea21f9031196/sandbox/linux-sandbox/15/execroot/rules_haskell/bazel-out/k8-fastbuild/bin/_solib_k8/_U@stackage_S_S_Ctransformers-compat___Uexternal_Sstackage_Stransformers-compat-0.6.2_S_Uinstall_Slib:/home/regnat/.cache/bazel/_bazel_regnat/9b6df921bb6e07dc34fcea21f9031196/sandbox/linux-sandbox/15/execroot/rules_haskell/bazel-out/k8-fastbuild/bin/_solib_k8/_U@rules_Uhaskell_S_Shaskell_Ctoolchain-libraries___Uexternal_Srules_Uhaskell_Ughc_Unixpkgs_Uhaskell_Utoolchain_Slib_Sghc-8.6.5_Stransformers-0.5.6.2:/home/regnat/.cache/bazel/_bazel_regnat/9b6df921bb6e07dc34fcea21f9031196/sandbox/linux-sandbox/15/execroot/rules_haskell/bazel-out/k8-fastbuild/bin/_solib_k8/_U@rules_Uhaskell_S_Shaskell_Ctoolchain-libraries___Uexternal_Srules_Uhaskell_Ughc_Unixpkgs_Uhaskell_Utoolchain_Slib_Sghc-8.6.5_Sbase-4.12.0.0:/home/regnat/.cache/bazel/_bazel_regnat/9b6df921bb6e07dc34fcea21f9031196/sandbox/linux-sandbox/15/execroot/rules_haskell/bazel-out/k8-fastbuild/bin/_solib_k8/_U@rules_Uhaskell_S_Shaskell_Ctoolchain-libraries___Uexternal_Srules_Uhaskell_Ughc_Unixpkgs_Uhaskell_Utoolchain_Slib_Sghc-8.6.5_Sinteger-gmp-1.0.2.0:/home/regnat/.cache/bazel/_bazel_regnat/9b6df921bb6e07dc34fcea21f9031196/sandbox/linux-sandbox/15/execroot/rules_haskell/bazel-out/k8-fastbuild/bin/_solib_k8/_U@rules_Uhaskell_S_Shaskell_Ctoolchain-libraries___Uexternal_Srules_Uhaskell_Ughc_Unixpkgs_Uhaskell_Utoolchain_Slib_Sghc-8.6.5_Sghc-prim-0.5.3]

Expected behavior

Empty result: The so file shouldn't keep any reference to the cache directory

Environment

  • OS name + version: Nixos 19.09
  • Bazel version: 0.28.0
  • Version of the rules: 01333db
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants