From f9f5f4986ba64b7b60c878c7a9977355327de47d Mon Sep 17 00:00:00 2001 From: Farid Zakaria Date: Wed, 16 Jun 2021 09:28:09 -0700 Subject: [PATCH] openjdk11: remove default library path This is a follow up to #123708 which does the similar patch but for OpenJDK11. Please see the linked issue for more detailed rationale. --- pkgs/development/compilers/openjdk/11.nix | 1 + .../openjdk/fix-library-path-jdk11.patch | 37 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 pkgs/development/compilers/openjdk/fix-library-path-jdk11.patch diff --git a/pkgs/development/compilers/openjdk/11.nix b/pkgs/development/compilers/openjdk/11.nix index ef593422ff26..40b24056270b 100644 --- a/pkgs/development/compilers/openjdk/11.nix +++ b/pkgs/development/compilers/openjdk/11.nix @@ -39,6 +39,7 @@ let ./read-truststore-from-env-jdk10.patch ./currency-date-range-jdk10.patch ./increase-javadoc-heap.patch + ./fix-library-path-jdk11.patch ] ++ lib.optionals (!headless && enableGnome2) [ ./swing-use-gtk-jdk10.patch ]; diff --git a/pkgs/development/compilers/openjdk/fix-library-path-jdk11.patch b/pkgs/development/compilers/openjdk/fix-library-path-jdk11.patch new file mode 100644 index 000000000000..21263dd68926 --- /dev/null +++ b/pkgs/development/compilers/openjdk/fix-library-path-jdk11.patch @@ -0,0 +1,37 @@ +diff --git a/src/hotspot/os/linux/os_linux.cpp b/src/hotspot/os/linux/os_linux.cpp +index 0dbe03349e..847d56778d 100644 +--- a/src/hotspot/os/linux/os_linux.cpp ++++ b/src/hotspot/os/linux/os_linux.cpp +@@ -326,13 +326,13 @@ void os::init_system_properties_values() { + // ... + // 7: The default directories, normally /lib and /usr/lib. + #if defined(AMD64) || (defined(_LP64) && defined(SPARC)) || defined(PPC64) || defined(S390) +- #define DEFAULT_LIBPATH "/usr/lib64:/lib64:/lib:/usr/lib" ++ #define DEFAULT_LIBPATH "" + #else +- #define DEFAULT_LIBPATH "/lib:/usr/lib" ++ #define DEFAULT_LIBPATH "" + #endif + + // Base path of extensions installed on the system. +-#define SYS_EXT_DIR "/usr/java/packages" ++#define SYS_EXT_DIR "" + #define EXTENSIONS_DIR "/lib/ext" + + // Buffer that fits several sprintfs. +@@ -392,13 +392,13 @@ void os::init_system_properties_values() { + strlen(v) + 1 + + sizeof(SYS_EXT_DIR) + sizeof("/lib/") + sizeof(DEFAULT_LIBPATH) + 1, + mtInternal); +- sprintf(ld_library_path, "%s%s" SYS_EXT_DIR "/lib:" DEFAULT_LIBPATH, v, v_colon); ++ sprintf(ld_library_path, "%s", v); + Arguments::set_library_path(ld_library_path); + FREE_C_HEAP_ARRAY(char, ld_library_path); + } + + // Extensions directories. +- sprintf(buf, "%s" EXTENSIONS_DIR ":" SYS_EXT_DIR EXTENSIONS_DIR, Arguments::get_java_home()); ++ sprintf(buf, "%s" EXTENSIONS_DIR, Arguments::get_java_home()); + Arguments::set_ext_dirs(buf); + + FREE_C_HEAP_ARRAY(char, buf);