diff --git a/src/SPC/builder/unix/library/imagemagick.php b/src/SPC/builder/unix/library/imagemagick.php index 2e795a0d..42064e2d 100644 --- a/src/SPC/builder/unix/library/imagemagick.php +++ b/src/SPC/builder/unix/library/imagemagick.php @@ -12,6 +12,11 @@ trait imagemagick { protected function build(): void { + $original_ldflags = $this->builder->arch_ld_flags; + if (str_contains($this->builder->arch_ld_flags, '-Wl,--as-needed')) { + $this->builder->arch_ld_flags = str_replace('-Wl,--as-needed', '', $original_ldflags); + } + $ac = UnixAutoconfExecutor::create($this) ->optionalLib('libzip', ...ac_with_args('zip')) ->optionalLib('libjpeg', ...ac_with_args('jpeg')) @@ -33,9 +38,6 @@ trait imagemagick // special: linux-static target needs `-static` $ldflags = SPCTarget::isStatic() ? '-static -ldl' : '-ldl'; - if (str_contains($this->builder->arch_ld_flags, '-Wl,--as-needed')) { - $ldflags = str_replace('-ldl', '-Wl,--no-as-needed -ldl -Wl,--as-needed', $ldflags); - } // special: macOS needs -iconv $libs = SPCTarget::getTargetOS() === 'Darwin' ? '-liconv' : ''; @@ -48,6 +50,8 @@ trait imagemagick $ac->configure()->make(); + $this->builder->arch_ld_flags = $original_ldflags; + $filelist = [ 'ImageMagick.pc', 'ImageMagick-7.Q16HDRI.pc',