* configure.in (SYMBOL_PREFIX): separate from EXPORT_PREFIX.
* win32/mkexports.rb (Exports#each_export): use SYMBOL_PREFIX. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29739 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
536e266e58
commit
18bd7f8c84
@ -1,3 +1,9 @@
|
|||||||
|
Thu Nov 11 20:45:23 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* configure.in (SYMBOL_PREFIX): separate from EXPORT_PREFIX.
|
||||||
|
|
||||||
|
* win32/mkexports.rb (Exports#each_export): use SYMBOL_PREFIX.
|
||||||
|
|
||||||
Wed Nov 10 07:20:10 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Wed Nov 10 07:20:10 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* cygwin/GNUmakefile.in (scriptbin): make executable file from
|
* cygwin/GNUmakefile.in (scriptbin): make executable file from
|
||||||
|
@ -135,6 +135,7 @@ OBJEXT = @OBJEXT@
|
|||||||
ASMEXT = S
|
ASMEXT = S
|
||||||
DLEXT = @DLEXT@
|
DLEXT = @DLEXT@
|
||||||
MANTYPE = @MANTYPE@
|
MANTYPE = @MANTYPE@
|
||||||
|
SYMBOL_PREFIX = @SYMBOL_PREFIX@
|
||||||
|
|
||||||
INSTALLED_LIST= .installed.list
|
INSTALLED_LIST= .installed.list
|
||||||
|
|
||||||
@ -169,7 +170,7 @@ $(LIBRUBY_A):
|
|||||||
$(LIBRUBY_SO):
|
$(LIBRUBY_SO):
|
||||||
@-$(PRE_LIBRUBY_UPDATE)
|
@-$(PRE_LIBRUBY_UPDATE)
|
||||||
$(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(SOLIBS) $(OUTFLAG)$@
|
$(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(SOLIBS) $(OUTFLAG)$@
|
||||||
-$(OBJCOPY) -w -L '@EXPORT_PREFIX@Init_*' -L '@EXPORT_PREFIX@*_threadptr_*' $@
|
-$(OBJCOPY) -w -L '$(SYMBOL_PREFIX)Init_*' -L '$(SYMBOL_PREFIX)*_threadptr_*' $@
|
||||||
@-$(MINIRUBY) -e 'ARGV.each{|link| File.delete link if File.exist? link; \
|
@-$(MINIRUBY) -e 'ARGV.each{|link| File.delete link if File.exist? link; \
|
||||||
File.symlink "$(LIBRUBY_SO)", link}' \
|
File.symlink "$(LIBRUBY_SO)", link}' \
|
||||||
$(LIBRUBY_ALIASES) || true
|
$(LIBRUBY_ALIASES) || true
|
||||||
|
19
configure.in
19
configure.in
@ -2349,16 +2349,16 @@ AC_SUBST(INSTALLDOC)
|
|||||||
if test "$rb_with_pthread" = "yes"; then
|
if test "$rb_with_pthread" = "yes"; then
|
||||||
THREAD_MODEL=pthread
|
THREAD_MODEL=pthread
|
||||||
fi
|
fi
|
||||||
AC_CACHE_CHECK([for prefix of exported symbols], rb_cv_export_prefix, [
|
AC_CACHE_CHECK([for prefix of external symbols], rb_cv_symbol_prefix, [
|
||||||
AC_TRY_COMPILE([extern void conftest_exported(void) {}], [], [
|
AC_TRY_COMPILE([extern void conftest_external(void) {}], [], [
|
||||||
rb_cv_export_prefix=`$NM conftest.$ac_objext |
|
rb_cv_symbol_prefix=`$NM conftest.$ac_objext |
|
||||||
sed -n ['/.*[ ]\([^ ]*\)conftest_exported.*/!d;s//\1/p;q']`
|
sed -n ['/.*[ ]\([^ ]*\)conftest_external.*/!d;s//\1/p;q']`
|
||||||
],
|
],
|
||||||
[rb_cv_export_prefix=''])
|
[rb_cv_symbol_prefix=''])
|
||||||
test -n "$rb_cv_export_prefix" || rb_cv_export_prefix=NONE
|
test -n "$rb_cv_symbol_prefix" || rb_cv_symbol_prefix=NONE
|
||||||
])
|
])
|
||||||
EXPORT_PREFIX="$rb_cv_export_prefix"
|
SYMBOL_PREFIX="$rb_cv_symbol_prefix"
|
||||||
test "x$EXPORT_PREFIX" = xNONE && EXPORT_PREFIX=''
|
test "x$SYMBOL_PREFIX" = xNONE && SYMBOL_PREFIX=''
|
||||||
MINIDLNOBJ=dmydln.o
|
MINIDLNOBJ=dmydln.o
|
||||||
AS_CASE(["$target_os"],
|
AS_CASE(["$target_os"],
|
||||||
[linux*], [
|
[linux*], [
|
||||||
@ -2424,7 +2424,7 @@ AS_CASE(["$target_os"],
|
|||||||
LIBRUBY_SO='$(RUBY_SO_NAME)'.dll
|
LIBRUBY_SO='$(RUBY_SO_NAME)'.dll
|
||||||
LIBRUBY_DLDFLAGS="${LIBRUBY_DLDFLAGS}"' $(RUBYDEF)'
|
LIBRUBY_DLDFLAGS="${LIBRUBY_DLDFLAGS}"' $(RUBYDEF)'
|
||||||
fi
|
fi
|
||||||
test -z "$EXPORT_PREFIX" && EXPORT_PREFIX=' '
|
EXPORT_PREFIX=' '
|
||||||
DLDFLAGS="${DLDFLAGS}"' $(DEFFILE)'
|
DLDFLAGS="${DLDFLAGS}"' $(DEFFILE)'
|
||||||
AC_LIBOBJ([win32])
|
AC_LIBOBJ([win32])
|
||||||
COMMON_LIBS=m
|
COMMON_LIBS=m
|
||||||
@ -2557,6 +2557,7 @@ AC_SUBST(COMMON_LIBS)
|
|||||||
AC_SUBST(COMMON_MACROS)
|
AC_SUBST(COMMON_MACROS)
|
||||||
AC_SUBST(COMMON_HEADERS)
|
AC_SUBST(COMMON_HEADERS)
|
||||||
AC_SUBST(EXPORT_PREFIX)
|
AC_SUBST(EXPORT_PREFIX)
|
||||||
|
AC_SUBST(SYMBOL_PREFIX)
|
||||||
AC_SUBST(MINIOBJS)
|
AC_SUBST(MINIOBJS)
|
||||||
AC_SUBST(THREAD_MODEL)
|
AC_SUBST(THREAD_MODEL)
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ $(RCFILES): $(RBCONFIG) $(srcdir)/revision.h $(srcdir)/win32/resource.rb
|
|||||||
$(PROGRAM): $(RUBY_INSTALL_NAME).res.@OBJEXT@
|
$(PROGRAM): $(RUBY_INSTALL_NAME).res.@OBJEXT@
|
||||||
$(WPROGRAM): $(RUBYW_INSTALL_NAME).res.@OBJEXT@
|
$(WPROGRAM): $(RUBYW_INSTALL_NAME).res.@OBJEXT@
|
||||||
@rm -f $@
|
@rm -f $@
|
||||||
$(PURIFY) $(CC) -mwindows -e _mainCRTStartup $(LDFLAGS) $(XLDFLAGS) \
|
$(PURIFY) $(CC) -mwindows -e $(SYMBOL_PREFIX)mainCRTStartup $(LDFLAGS) $(XLDFLAGS) \
|
||||||
$(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) -o $@
|
$(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) -o $@
|
||||||
$(STUBPROGRAM): $(RUBY_INSTALL_NAME).res.@OBJEXT@ stub.@OBJEXT@
|
$(STUBPROGRAM): $(RUBY_INSTALL_NAME).res.@OBJEXT@ stub.@OBJEXT@
|
||||||
@rm -f $@
|
@rm -f $@
|
||||||
|
@ -143,9 +143,12 @@ class Exports::Cygwin < Exports
|
|||||||
end
|
end
|
||||||
|
|
||||||
def each_export(objs)
|
def each_export(objs)
|
||||||
|
symprefix = RbConfig::CONFIG["SYMBOL_PREFIX"]
|
||||||
|
symprefix.strip! if symprefix
|
||||||
|
re = /\s(?:(T)|[[:upper:]])\s#{symprefix}((?!Init_|.*_threadptr_|DllMain@).*)$/
|
||||||
objdump(objs) do |l|
|
objdump(objs) do |l|
|
||||||
next if /@.*@/ =~ l
|
next if /@.*@/ =~ l
|
||||||
yield $2, !$1 if /\s(?:(T)|[[:upper:]])\s_((?!Init_|.*_threadptr_|DllMain@).*)$/ =~ l
|
yield $2, !$1 if re =~ l
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user