diff options
| author | nixdrin <146267602+nixdrin@users.noreply.github.com> | 2023-09-28 21:03:14 +0200 |
|---|---|---|
| committer | nixdrin <146267602+nixdrin@users.noreply.github.com> | 2023-10-08 17:15:47 +0200 |
| commit | 8ff6850f2564d26a91b30eb8f7993a7a2c3bf4bb (patch) | |
| tree | 473febfb57985531d6eed56f3668070211f34976 /pkgs/development/python-modules/rangehttpserver | |
| parent | 87828a0e03d1418e848d3dd3f3014a632e4a4f64 (diff) | |
jetbrains: drop libstdc++.so.6 from LD_LIBRARY_PATH
Most of the libraries listed in the LD_LIBRARY_PATH for the Jetbrains
IDEs are loaded indirectly using JNA in Java code, e.g.
myLibNotify = Native.load("libnotify.so.4", LibNotify.class); [1]
private val library = Native.load("secret-1", SecretLibrary::class.java) [2]
In this case the typical patching mechanism with Nix does not work
because JNA does the library lookup at runtime with its own mechanism.
However, there is one outlier: stdenv.cc.cc.lib is also added to the
LD_LIBRARY_PATH for libstdc++.so.6 because it is reportedly needed
for some "internals". It does not make sense to access libstdc++
from Java code so it feels like this one was added to work around
some native library or executable that should be patched instead
of using LD_LIBRARY_PATH.
Unfortunately, having libstdc++ in LD_LIBRARY_PATH can also easily
cause ABI conflicts. This is because this variable is inherited into
terminals opened within the IDE. Using a Nix environment there with
different versions of libstdc++ easily causes errors such as
libstdc++.so.6: version `GLIBCXX_3.4.29' not found
Most of the IDEs work just fine without having libstdc++ in
LD_LIBRARY_PATH. Since it's not really clear why it has to be in
there let's just drop it to avoid the ABI conflicts.
[1]: https://github.com/JetBrains/intellij-community/blob/c0a703267a671bbbac2384fc226c82b2203db72b/platform/platform-impl/src/com/intellij/ui/LibNotifyWrapper.java#L40
[2]: https://github.com/JetBrains/intellij-community/blob/c0a703267a671bbbac2384fc226c82b2203db72b/platform/credential-store/src/linuxSecretLibrary.kt#L38
Diffstat (limited to 'pkgs/development/python-modules/rangehttpserver')
0 files changed, 0 insertions, 0 deletions
