diff --git a/pkgs/development/compilers/openjdk/fix-java-home-jdk8.patch b/pkgs/development/compilers/openjdk/fix-java-home-jdk8.patch new file mode 100644 index 000000000000..6189412c999c --- /dev/null +++ b/pkgs/development/compilers/openjdk/fix-java-home-jdk8.patch @@ -0,0 +1,15 @@ +--- a/hotspot/src/os/linux/vm/os_linux.cpp 2015-02-04 21:14:39.000000000 +0100 ++++ b/hotspot/src/os/linux/vm/os_linux.cpp 2015-05-19 16:17:29.960107613 +0200 +@@ -2304,10 +2304,8 @@ + assert(ret, "cannot locate libjvm"); + char *rp = NULL; + if (ret && dli_fname[0] != '\0') { +- rp = realpath(dli_fname, buf); ++ snprintf(buf, buflen, "%s", dli_fname); + } +- if (rp == NULL) +- return; + + if (Arguments::created_by_gamma_launcher()) { + // Support for the gamma launcher. Typical value for buf is + diff --git a/pkgs/development/compilers/openjdk/openjdk8.nix b/pkgs/development/compilers/openjdk/openjdk8.nix index 44e934741635..b26baef88590 100644 --- a/pkgs/development/compilers/openjdk/openjdk8.nix +++ b/pkgs/development/compilers/openjdk/openjdk8.nix @@ -50,11 +50,16 @@ let ''; prePatch = '' # despite --with-override-jdk the build still searchs here - ln -s "../jdk-${repover}" "jdk"; - ln -s "../hotspot-${repover}" "hotspot"; + # GNU Patch bug, follow symlinks only follow the last symlink.. + mv "../jdk-${repover}" "jdk"; + mv "../hotspot-${repover}" "hotspot"; + ''; + postPatch = '' + mv jdk "../jdk-${repover}"; + mv hotspot "../hotspot-${repover}"; ''; patches = [ - ./fix-java-home.patch + ./fix-java-home-jdk8.patch ./read-truststore-from-env-jdk8.patch ./currency-date-range-jdk8.patch ];