summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--Makefile.in5
-rw-r--r--configure.in4
3 files changed, 14 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 1d064b3e90..e89f9fcabd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Sun Dec 7 23:17:33 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * Makefile.in (LIBRUBY_SO): localizes non-public symbols.
+
+ * configure.in (OBJDUMP, OBJCOPY): for dealing with binary files.
+
Sun Dec 7 17:44:06 2008 Tanaka Akira <akr@fsij.org>
* lib/open3.rb (Open3.capture3): renamed from Open3.poutput3.
diff --git a/Makefile.in b/Makefile.in
index eece91ed6e..39fc686b3e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -102,6 +102,8 @@ AS = @AS@
ASFLAGS = @ASFLAGS@
IFCHANGE = $(srcdir)/tool/ifchange
SET_LC_MESSAGES = env LC_MESSAGES=C
+OBJDUMP = @OBJDUMP@
+OBJCOPY = @OBJCOPY@
OBJEXT = @OBJEXT@
ASMEXT = S
@@ -137,6 +139,9 @@ $(LIBRUBY_A):
$(LIBRUBY_SO):
@-$(PRE_LIBRUBY_UPDATE)
$(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(SOLIBS) $(OUTFLAG)$@
+ @-test "$(OBJDUMP)" = "" || test "$(OBJCOPY)" = "" || { \
+ set dummy `$(OBJDUMP) -t $@ | sed '/^[^ ]* g/!d;s/.* //;/^\(Init_\|vm_\)/!d;s/^/-L /'`; \
+ shift; test "$$#" = 0 || $(OBJCOPY) "$$@" $@; }
@-$(MINIRUBY) -e 'ARGV.each{|link| File.delete link if File.exist? link; \
File.symlink "$(LIBRUBY_SO)", link}' \
$(LIBRUBY_ALIASES) || true
diff --git a/configure.in b/configure.in
index 8f7463142e..e1fcdb3055 100644
--- a/configure.in
+++ b/configure.in
@@ -214,6 +214,9 @@ AC_CHECK_TOOL(AS, as)
ASFLAGS=$ASFLAGS
AC_SUBST(ASFLAGS)
+AC_CHECK_TOOL(OBJDUMP, objdump)
+AC_CHECK_TOOL(OBJCOPY, objcopy)
+
case "$target_os" in
cygwin*|mingw*)
AC_CHECK_TOOL(NM, nm)
@@ -223,7 +226,6 @@ cygwin*|mingw*)
case "$target_os" in
mingw*)
test "$rb_cv_msvcrt" = "" && unset rb_cv_msvcrt
- AC_CHECK_TOOL(OBJDUMP, objdump)
AC_CACHE_CHECK(for mingw32 runtime DLL, rb_cv_msvcrt, [
AC_TRY_LINK([#include <stdio.h>],
[FILE* volatile f = stdin; return 0;],