make sure that libargon2 is always linked in before libsodium

This commit is contained in:
DubbleClick 2025-07-07 22:44:07 +07:00
parent 385a46b96f
commit 9cd17fca1c

View File

@ -23,4 +23,21 @@ class password_argon2 extends Extension
throw new RuntimeException('extension ' . $this->getName() . ' failed sanity check');
}
}
public function patchBeforeMake(): bool
{
if ($this->builder->getLib('libsodium') !== null) {
$extraLibs = getenv('SPC_EXTRA_LIBS');
if ($extraLibs !== false) {
$extraLibs = str_replace(
[BUILD_LIB_PATH . '/libargon2.a', BUILD_LIB_PATH . '/libsodium.a'],
['', BUILD_LIB_PATH . '/libargon2.a' . ' ' . BUILD_LIB_PATH . '/libsodium.a'],
$extraLibs,
);
$extraLibs = trim(preg_replace('/\s+/', ' ', $extraLibs)); // normalize spacing
f_putenv('SPC_EXTRA_LIBS=' . $extraLibs);
}
}
return false;
}
}