only disable openmp for rh devtoolset-10

This commit is contained in:
DubbleClick 2025-05-30 20:41:17 +07:00
parent 3867b9933d
commit 5382362168
3 changed files with 7 additions and 4 deletions

View File

@ -12,7 +12,7 @@ class imagick extends Extension
{
public function patchBeforeMake(): bool
{
if (getenv('SPC_LIBC') !== 'musl') {
if (getenv('SPC_LIBC') === 'glibc' && str_contains(getenv('CC'), 'devtoolset-10')) {
return false;
}
// imagick with calls omp_pause_all which requires -lgomp, on non-musl we build imagick without openmp

View File

@ -18,8 +18,11 @@ trait imagemagick
*/
protected function build(): void
{
// TODO: glibc rh 10 toolset's libgomp.a was built without -fPIC -fPIE so we can't use openmp without depending on libgomp.so
$openmp = getenv('SPC_LIBC') === 'musl' ? '--enable-openmp' : '--disable-openmp';
$openmp = '--enable-openmp';
// TODO: glibc rh 10 toolset's libgomp.a was built without -fPIC so we can't use openmp without depending on libgomp.so
if (getenv('SPC_LIBC') === 'glibc' && str_contains(getenv('CC'), 'devtoolset-10')) {
$openmp = '--disable-openmp';
}
$extra = "--without-jxl --without-x {$openmp} ";
$required_libs = '';
$optional_libs = [

View File

@ -144,7 +144,7 @@ class SPCConfigUtil
}
}
// patch: imagick (imagemagick wrapper) for linux needs libgomp
if (in_array('imagemagick', $libraries) && PHP_OS_FAMILY === 'Linux' && getenv('SPC_LIBC') === 'musl') {
if (in_array('imagemagick', $libraries) && PHP_OS_FAMILY === 'Linux' && !(getenv('SPC_LIBC') === 'glibc' && str_contains(getenv('CC'), 'devtoolset-10'))) {
$short_name[] = '-lgomp';
}
return implode(' ', $short_name);