diff --git a/src/Package/Library/libargon2.php b/src/Package/Library/libargon2.php index 49afceeb7..f2ff69e26 100644 --- a/src/Package/Library/libargon2.php +++ b/src/Package/Library/libargon2.php @@ -28,10 +28,14 @@ public function patchBeforeLinuxBuild(LibraryPackage $lib): void #[BuildFor('Linux')] public function buildUnix(LibraryPackage $lib, PackageBuilder $builder): void { + // Upstream defaults to -march=native; follow the configured target instead. + preg_match_all('/(?:^|\s)-march=([A-Za-z0-9._+-]+)(?=\s|$)/', $lib->getLibExtraCFlags(), $matches); + $optTarget = escapeshellarg(array_pop($matches[1]) ?: 'none'); + shell()->cd($lib->getSourceDir())->initializeEnv($lib) - ->exec("make PREFIX='' clean") - ->exec("make -j{$builder->concurrency} PREFIX=''") - ->exec("make install PREFIX='' DESTDIR={$lib->getBuildRootPath()}"); + ->exec("make PREFIX='' OPTTARGET={$optTarget} clean") + ->exec("make -j{$builder->concurrency} PREFIX='' OPTTARGET={$optTarget}") + ->exec("make install PREFIX='' OPTTARGET={$optTarget} DESTDIR={$lib->getBuildRootPath()}"); $lib->patchPkgconfPrefix(['libargon2.pc']);