ponyc: Fixes code generation to use generic arch, not native
Previous to this commit, code generated by the pony compiler would default to "native" as a cpu and march, resulting in code that would use opcodes native to the hydra build system, but potentially not the end-user's machine. Fixes: #414174
This commit is contained in:
@@ -99,6 +99,20 @@ stdenv.mkDerivation rec {
|
||||
--replace-fail "https://github.com/google/googletest/releases/download/v$googletestRev/googletest-$googletestRev.tar.gz" "$NIX_BUILD_TOP/deps/googletest-$googletestRev.tar"
|
||||
'';
|
||||
|
||||
# We do not concern ourselves with darwin as the ponyc compiler
|
||||
# has logic which overrides this environmental variable in this
|
||||
# case.
|
||||
env.arch =
|
||||
if stdenv.hostPlatform.isx86_64 then
|
||||
"x86-64"
|
||||
else if stdenv.hostPlatform.isAarch64 then
|
||||
"armv8-a"
|
||||
else
|
||||
lib.warn ''
|
||||
architecture '${stdenv.hostPlatform.system}' compiles with native optimizations,
|
||||
this may result in crashes on incompatible CPUs!
|
||||
'' "native";
|
||||
|
||||
preBuild = ''
|
||||
extraFlags=(build_flags=-j$NIX_BUILD_CORES)
|
||||
''
|
||||
|
||||
Reference in New Issue
Block a user