-
Notifications
You must be signed in to change notification settings - Fork 323
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
Disabling musl as it isn't capable to load dynamic library #3917
Disabling musl as it isn't capable to load dynamic library #3917
Conversation
…ach/LoadParserInNativeImage
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The non-runner native images would need to be tested separately.
@radeusgd probably knows more about them
What is the alternative? Are we switching back to Then I'm not sure if we can do that. If I think correctly, it would break the launcher project. See our docs explaining why we link Also, we may try to do a mixed configuration and stay on However, let's double check if this will not make some bad stuff - for example, will the Enso Http library still work? If it relies on the same Java backend that was broken in the launcher which in the native build delegates to this
|
I'm afraid we may not have tests that will catch if the launcher is broken by this migration. We have some Still, I'm not certain such tests will catch this (potential) segfault. It may not be as deterministic as we want, unfortunately I don't remember the exact details as this was some time ago. I can try to look a bit deeper into it if necessary, just need a note to do so. |
I have just tried to reproduce the bug mentioned in https://sourceware.org/bugzilla/show_bug.cgi?id=10652 on Ubuntu 22.04 with glibc version 2.35, and I cannot reproduce it. The last comment from that issue is from 2020-06-21 mentioned that the bug is reproducible with glibc 2.31. So maybe in 2.35 it is already fixed? Can someone else try that? cc @4e6 |
Thanks for checking it! It may be a good find. Although I'm surprised as no one seems to have been working on this bug so it must have been an accidental fix? I can try to repro it too, but probably only next week. Another question is - are we going to require |
Maybe an accidental impact of other fix? I honestly don't know. That is why I suggested someone else to try.
Not quite. More specifically, it depends on if we want to stick to statically linked executable. And I would say that we do want that, since it provides more portability. Then, the only question is which version of |
@Akirathan I also have no problems building native images with glibc 2.36 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Although, we might have problems with the distribution of the binaries
ldd built-distribution/enso-launcher-0.0.0-dev-linux-amd64/enso/bin/enso
linux-vdso.so.1 (0x00007ffeaf3f9000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f7eea800000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007f7eee639000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f7eea619000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f7eee551000)
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f7eee66d000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f7eee531000)
Indeed, I think the whole point of |
@@ -1636,7 +1636,7 @@ lazy val `engine-runner` = project | |||
rebuildNativeImage := NativeImage | |||
.buildNativeImage( | |||
"runner", | |||
staticOnLinux = true, | |||
staticOnLinux = false, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Disabling musl
only for the runner
image.
Ideally we would link |
You're right, I thought it might affect the launcher, but it is not. LGTM from me then |
ld -lz failed. Can we install the
and I am able to |
Pull Request Description
Disabling
musl
as it isn't capable to load dynamic library.Important Notes
With this change it is possible to:
Is it OK, @radeusgd to disable
musl
? If not, we would have to find a way to link the parser in statically, not dynamically.Checklist
Please include the following checklist in your PR:
./runner
is built and executed in the CI