Merge pull request #299203 from thiagokokada/fix-graalvm-x86_64-darwin

buildGraalvm: fix build in x86_64-darwin

authored by Thiago Kenji Okada and committed by GitHub 282bea96 31543384

+23 -24
+6 -12
pkgs/development/compilers/graalvm/community-edition/buildGraalvm.nix
··· 107 107 ++ lib.optional stdenv.isLinux autoPatchelfHook; 108 108 109 109 propagatedBuildInputs = [ setJavaClassPath zlib ] 110 - ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Foundation; 110 + ++ lib.optional stdenv.isDarwin darwin.apple_sdk_11_0.frameworks.Foundation; 111 111 112 112 buildInputs = lib.optionals stdenv.isLinux [ 113 113 alsa-lib # libasound.so wanted by lib/libjsound.so ··· 165 165 echo "Testing GraalVM" 166 166 $out/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler HelloWorld | fgrep 'Hello World' 167 167 168 - # Workaround GraalVM issue where the builder does not have access to the 169 - # environment variables since 21.0.0 170 - # Only needed for native-image tests 171 - # https://github.com/oracle/graal/pull/6095 172 - # https://github.com/oracle/graal/pull/6095 173 - # https://github.com/oracle/graal/issues/7502 174 - export NATIVE_IMAGE_DEPRECATED_BUILDER_SANITATION="true"; 168 + extraNativeImageArgs="$(export -p | sed -n 's/^declare -x \([^=]\+\)=.*$/ -E\1/p' | tr -d \\n)" 175 169 176 170 echo "Ahead-Of-Time compilation" 177 - $out/bin/native-image -H:+UnlockExperimentalVMOptions -H:-CheckToolchain -H:+ReportExceptionStackTraces HelloWorld 171 + $out/bin/native-image -H:+UnlockExperimentalVMOptions -H:-CheckToolchain -H:+ReportExceptionStackTraces -march=compatibility $extraNativeImageArgs HelloWorld 178 172 ./helloworld | fgrep 'Hello World' 179 173 180 174 ${# --static is only available in Linux 181 175 lib.optionalString (stdenv.isLinux && !useMusl) '' 182 176 echo "Ahead-Of-Time compilation with -H:+StaticExecutableWithDynamicLibC" 183 - $out/bin/native-image -H:+UnlockExperimentalVMOptions -H:+StaticExecutableWithDynamicLibC HelloWorld 177 + $out/bin/native-image -H:+UnlockExperimentalVMOptions -H:+StaticExecutableWithDynamicLibC -march=compatibility $extraNativeImageArgs HelloWorld 184 178 ./helloworld | fgrep 'Hello World' 185 179 186 180 echo "Ahead-Of-Time compilation with --static" 187 - $out/bin/native-image --static HelloWorld 181 + $out/bin/native-image $extraNativeImageArgs -march=compatibility --static HelloWorld 188 182 ./helloworld | fgrep 'Hello World' 189 183 ''} 190 184 191 185 ${# --static is only available in Linux 192 186 lib.optionalString (stdenv.isLinux && useMusl) '' 193 187 echo "Ahead-Of-Time compilation with --static and --libc=musl" 194 - $out/bin/native-image --static HelloWorld --libc=musl 188 + $out/bin/native-image $extraNativeImageArgs -march=compatibility --libc=musl --static HelloWorld 195 189 ./helloworld | fgrep 'Hello World' 196 190 ''} 197 191
+17 -12
pkgs/development/compilers/graalvm/community-edition/default.nix
··· 1 1 { lib 2 - , stdenv 3 - , callPackage 4 - , fetchurl 2 + , pkgs 5 3 }: 6 4 5 + lib.makeScope pkgs.newScope (self: 7 6 { 8 - buildGraalvm = callPackage ./buildGraalvm.nix; 7 + stdenv = 8 + if pkgs.stdenv.isDarwin then 9 + pkgs.darwin.apple_sdk_11_0.stdenv 10 + else 11 + pkgs.stdenv; 12 + 13 + buildGraalvm = self.callPackage ./buildGraalvm.nix; 9 14 10 - buildGraalvmProduct = callPackage ./buildGraalvmProduct.nix; 15 + buildGraalvmProduct = self.callPackage ./buildGraalvmProduct.nix; 11 16 12 - graalvm-ce = callPackage ./graalvm-ce { }; 17 + graalvm-ce = self.callPackage ./graalvm-ce { }; 13 18 14 - graalvm-ce-musl = callPackage ./graalvm-ce { useMusl = true; }; 19 + graalvm-ce-musl = self.callPackage ./graalvm-ce { useMusl = true; }; 15 20 16 - graaljs = callPackage ./graaljs { }; 21 + graaljs = self.callPackage ./graaljs { }; 17 22 18 - graalnodejs = callPackage ./graalnodejs { }; 23 + graalnodejs = self.callPackage ./graalnodejs { }; 19 24 20 - graalpy = callPackage ./graalpy { }; 25 + graalpy = self.callPackage ./graalpy { }; 21 26 22 - truffleruby = callPackage ./truffleruby { }; 23 - } 27 + truffleruby = self.callPackage ./truffleruby { }; 28 + })