diff --git a/Makefile.PL b/Makefile.PL index 3d5064c..b29f4ca 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -249,12 +249,18 @@ my @CC_OPTIONS = ( ) : () ), ); -# RT #70135: These flags are valid only for gcc/g++ -if ($Config{cc} =~ /^g?cc/) { - push @CC_OPTIONS, - CCFLAGS => $Config{ccflags} . ' -Wl,-Bsymbolic', - LDFLAGS => $Config{ldflags} . ' -Wl,-Bsymbolic', - LDDLFLAGS => $Config{lddlflags} . ' -Wl,-Bsymbolic'; +# RT #70135: See if ld supports Bsymbolic; +for my $path (File::Spec->path) { + if (MM->maybe_command("$path/ld")) { + my $output = `$path/ld --help`; + if ($output =~ /Bsymbolic/) { + push @CC_OPTIONS, + CCFLAGS => $Config{ccflags} . ' -Wl,-Bsymbolic', + LDFLAGS => $Config{ldflags} . ' -Wl,-Bsymbolic', + LDDLFLAGS => $Config{lddlflags} . ' -Wl,-Bsymbolic'; + } + last; + } } #####################################################################