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 public function patchBeforeMake(): bool
{ {
if (getenv('SPC_LIBC') !== 'musl') { if (getenv('SPC_LIBC') === 'glibc' && str_contains(getenv('CC'), 'devtoolset-10')) {
return false; return false;
} }
// imagick with calls omp_pause_all which requires -lgomp, on non-musl we build imagick without openmp // 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 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 = '--enable-openmp';
$openmp = getenv('SPC_LIBC') === 'musl' ? '--enable-openmp' : '--disable-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} "; $extra = "--without-jxl --without-x {$openmp} ";
$required_libs = ''; $required_libs = '';
$optional_libs = [ $optional_libs = [

View File

@@ -144,7 +144,7 @@ class SPCConfigUtil
} }
} }
// patch: imagick (imagemagick wrapper) for linux needs libgomp // 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'; $short_name[] = '-lgomp';
} }
return implode(' ', $short_name); return implode(' ', $short_name);