diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | Makefile.in | 5 | ||||
-rw-r--r-- | configure.in | 4 |
3 files changed, 14 insertions, 1 deletions
@@ -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. + Mon Dec 15 10:00:36 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> * common.mk (btest-ruby): use RUNRUBY instead of MINIRUBY to load the 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 5b38723b20..34fe037d2c 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;], |