-
Notifications
You must be signed in to change notification settings - Fork 34
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
Undefined symbol setHighMemDynamic #88
Comments
FYI A similar problem seems to occur with |
This is mysterious - you're right, those symbols aren't in 8.8.4, and yet our CI on github is passing for 8.8.4 (and indeed versions back to 8.4.4). Perhaps there's some lazy symbol resolution going on, that's somehow disabled on your OS? @alpmestan @donsbot any ideas? |
I don't know the details and so i am just guessing here, but i assume this has to do with me building on NixOS where build steps usually required patching the elf records in order to insert the absolute paths of the libraries as NixOS doesn't have dynamic loading (as libs aren't installed into /usr/lib or /usr/local/lib) On that note I just removed |
Why |
Hello,
Hard to tell without inspecting the Also, @dsp - what does your nix env look like, could you share your shell.nix and build process? I can try to reproduce the problem (I'm on NixOS too, but build Glean from the same docker image that CI uses). |
@alpmestan here is my hacked together flake file : https://gist.github.com/dsp/05dd9e3402bf4454f10e5ff7684c8b0b . Note that i must build folly and a few other things myself due to the haswell flag required for AVX2 support. Note also that i cannot yet build hsthrift and glean as a package because of the weird ghc8 + cabal3.6 requirement, that i just can't get to work. The workflow of Note #90 explains why my builds fail. @exi was so kind to help me debug this. |
Issue facebookincubator#88 and facebookincubator#90 describe that depending on system GHC can lazily link all symbols or strictly link them at link time. To ensure we consistently test that all the symbols in the binary are available, we need to set LD_BIND_NOW to a non empty string. This will force ld to resolv all symbols (see https://man7.org/linux/man-pages/man8/ld.so.8.html) at link time.
Closed by #91 |
When compiling hsthrift
lib:thrift-server
with GHC 8.8.4 (due to the requirement ofbase < 4.15
), it fails withPlease note:
due to missing
setHighMemDynamic
, which seems to be defined in GHC RTShttps://gitlab.haskell.org/ghc/ghc/-/commit/7a65f9e140906087273ce95f062775f18f6a708d
. Looking at gitlab the function seems to first appear in GHC 9.2.X, released a year ago and not available in 8.8.4 RTS.It seems to me that either hsthrift needs to be bumped to require 9.2.X or setHighMemDynamic needs to be removed. Maybe i am missunderstanding how i am supposed to build this, so please advice.
The text was updated successfully, but these errors were encountered: