diff --git a/src/SPC/builder/extension/imagick.php b/src/SPC/builder/extension/imagick.php index 7b0e20f9..4bd4ddcc 100644 --- a/src/SPC/builder/extension/imagick.php +++ b/src/SPC/builder/extension/imagick.php @@ -15,8 +15,12 @@ class imagick extends Extension 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 - $extra_libs = trim(getenv('SPC_EXTRA_LIBS') . ' -lgomp'); + // imagick with calls omp_pause_all which requires openmp, on non-musl we build imagick without openmp + $extra_libs = match (PHP_OS_FAMILY) { + 'Linux' => trim(getenv('SPC_EXTRA_LIBS') . ' -lgomp'), + 'Darwin' => trim(getenv('SPC_EXTRA_LIBS') . ' -lomp'), + default => '' + }; f_putenv('SPC_EXTRA_LIBS=' . $extra_libs); return true; } diff --git a/src/SPC/builder/unix/library/imagemagick.php b/src/SPC/builder/unix/library/imagemagick.php index ead786a2..bf0b2931 100644 --- a/src/SPC/builder/unix/library/imagemagick.php +++ b/src/SPC/builder/unix/library/imagemagick.php @@ -33,7 +33,7 @@ trait imagemagick ->optionalLib('bzip2', ...ac_with_args('bzlib')) ->addConfigureArgs( // TODO: glibc rh 10 toolset's libgomp.a was built without -fPIC so we can't use openmp without depending on libgomp.so - getenv('SPC_LIBC') === 'glibc' && str_contains(getenv('CC'), 'devtoolset-10') ? '--disable-openmp' : '--enable-openmp', + getenv('SPC_LIBC') === 'musl' ? '--enable-openmp' : '--disable-openmp', '--without-jxl', '--without-x', ); diff --git a/src/SPC/util/SPCConfigUtil.php b/src/SPC/util/SPCConfigUtil.php index 375d40cd..da52d3b8 100644 --- a/src/SPC/util/SPCConfigUtil.php +++ b/src/SPC/util/SPCConfigUtil.php @@ -146,6 +146,9 @@ class SPCConfigUtil if (in_array('imagemagick', $libraries) && PHP_OS_FAMILY === 'Linux' && !(getenv('SPC_LIBC') === 'glibc' && str_contains(getenv('CC'), 'devtoolset-10'))) { $short_name[] = '-lgomp'; } + if (in_array('imagemagick', $libraries) && PHP_OS_FAMILY === 'Darwin') { + $short_name[] = '-lomp'; + } return implode(' ', $short_name); }