summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/extmk.rb9
1 files changed, 7 insertions, 2 deletions
diff --git a/ext/extmk.rb b/ext/extmk.rb
index 0ed0559e97..60ee34b226 100644
--- a/ext/extmk.rb
+++ b/ext/extmk.rb
@@ -41,6 +41,10 @@ def extmake(target)
init_mkmf
+ if /linux/ =~ RUBY_PLATFORM and $configure_args['--enable-shared'] and CONFIG["GNU_LD"] == "yes"
+ $DLDFLAGS << " -Wl,-no-undefined"
+ end
+
begin
dir = Dir.pwd
File.mkpath target unless File.directory?(target)
@@ -70,7 +74,7 @@ def extmake(target)
$extlist.push [$static, $target, File.basename($target)]
end
unless system($make, *$mflags)
- $ignore or $continue or exit(1)
+ $ignore or $continue or return false
end
else
open("./Makefile", "w") {|f|
@@ -91,6 +95,7 @@ def extmake(target)
rm_f "conftest*"
Dir.chdir dir
end
+ true
end
require 'getopts'
@@ -175,7 +180,7 @@ ext_prefix = "#{$top_srcdir}/ext"
Dir.glob("#{ext_prefix}/**/MANIFEST") do |d|
d = File.dirname(d)
d.slice!(0, ext_prefix.length + 1)
- extmake(d)
+ extmake(d) or exit(1)
end
if $ignore