mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-05 05:13:04 +00:00
8ff6850f25
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]: |
||
---|---|---|
.. | ||
plugins | ||
darwin.nix | ||
default.nix | ||
JetbrainsRemoteDev.patch | ||
linux.nix | ||
update_ides.py | ||
versions.json |