mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* 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
5 changed files with 23 additions and 12 deletions
|
@ -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>
|
||||
|
||||
* cygwin/GNUmakefile.in (scriptbin): make executable file from
|
||||
|
|
|
@ -135,6 +135,7 @@ OBJEXT = @OBJEXT@
|
|||
ASMEXT = S
|
||||
DLEXT = @DLEXT@
|
||||
MANTYPE = @MANTYPE@
|
||||
SYMBOL_PREFIX = @SYMBOL_PREFIX@
|
||||
|
||||
INSTALLED_LIST= .installed.list
|
||||
|
||||
|
@ -169,7 +170,7 @@ $(LIBRUBY_A):
|
|||
$(LIBRUBY_SO):
|
||||
@-$(PRE_LIBRUBY_UPDATE)
|
||||
$(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; \
|
||||
File.symlink "$(LIBRUBY_SO)", link}' \
|
||||
$(LIBRUBY_ALIASES) || true
|
||||
|
|
19
configure.in
19
configure.in
|
@ -2349,16 +2349,16 @@ AC_SUBST(INSTALLDOC)
|
|||
if test "$rb_with_pthread" = "yes"; then
|
||||
THREAD_MODEL=pthread
|
||||
fi
|
||||
AC_CACHE_CHECK([for prefix of exported symbols], rb_cv_export_prefix, [
|
||||
AC_TRY_COMPILE([extern void conftest_exported(void) {}], [], [
|
||||
rb_cv_export_prefix=`$NM conftest.$ac_objext |
|
||||
sed -n ['/.*[ ]\([^ ]*\)conftest_exported.*/!d;s//\1/p;q']`
|
||||
AC_CACHE_CHECK([for prefix of external symbols], rb_cv_symbol_prefix, [
|
||||
AC_TRY_COMPILE([extern void conftest_external(void) {}], [], [
|
||||
rb_cv_symbol_prefix=`$NM conftest.$ac_objext |
|
||||
sed -n ['/.*[ ]\([^ ]*\)conftest_external.*/!d;s//\1/p;q']`
|
||||
],
|
||||
[rb_cv_export_prefix=''])
|
||||
test -n "$rb_cv_export_prefix" || rb_cv_export_prefix=NONE
|
||||
[rb_cv_symbol_prefix=''])
|
||||
test -n "$rb_cv_symbol_prefix" || rb_cv_symbol_prefix=NONE
|
||||
])
|
||||
EXPORT_PREFIX="$rb_cv_export_prefix"
|
||||
test "x$EXPORT_PREFIX" = xNONE && EXPORT_PREFIX=''
|
||||
SYMBOL_PREFIX="$rb_cv_symbol_prefix"
|
||||
test "x$SYMBOL_PREFIX" = xNONE && SYMBOL_PREFIX=''
|
||||
MINIDLNOBJ=dmydln.o
|
||||
AS_CASE(["$target_os"],
|
||||
[linux*], [
|
||||
|
@ -2424,7 +2424,7 @@ AS_CASE(["$target_os"],
|
|||
LIBRUBY_SO='$(RUBY_SO_NAME)'.dll
|
||||
LIBRUBY_DLDFLAGS="${LIBRUBY_DLDFLAGS}"' $(RUBYDEF)'
|
||||
fi
|
||||
test -z "$EXPORT_PREFIX" && EXPORT_PREFIX=' '
|
||||
EXPORT_PREFIX=' '
|
||||
DLDFLAGS="${DLDFLAGS}"' $(DEFFILE)'
|
||||
AC_LIBOBJ([win32])
|
||||
COMMON_LIBS=m
|
||||
|
@ -2557,6 +2557,7 @@ AC_SUBST(COMMON_LIBS)
|
|||
AC_SUBST(COMMON_MACROS)
|
||||
AC_SUBST(COMMON_HEADERS)
|
||||
AC_SUBST(EXPORT_PREFIX)
|
||||
AC_SUBST(SYMBOL_PREFIX)
|
||||
AC_SUBST(MINIOBJS)
|
||||
AC_SUBST(THREAD_MODEL)
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@ $(RCFILES): $(RBCONFIG) $(srcdir)/revision.h $(srcdir)/win32/resource.rb
|
|||
$(PROGRAM): $(RUBY_INSTALL_NAME).res.@OBJEXT@
|
||||
$(WPROGRAM): $(RUBYW_INSTALL_NAME).res.@OBJEXT@
|
||||
@rm -f $@
|
||||
$(PURIFY) $(CC) -mwindows -e _mainCRTStartup $(LDFLAGS) $(XLDFLAGS) \
|
||||
$(PURIFY) $(CC) -mwindows -e $(SYMBOL_PREFIX)mainCRTStartup $(LDFLAGS) $(XLDFLAGS) \
|
||||
$(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) -o $@
|
||||
$(STUBPROGRAM): $(RUBY_INSTALL_NAME).res.@OBJEXT@ stub.@OBJEXT@
|
||||
@rm -f $@
|
||||
|
|
|
@ -143,9 +143,12 @@ class Exports::Cygwin < Exports
|
|||
end
|
||||
|
||||
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|
|
||||
next if /@.*@/ =~ l
|
||||
yield $2, !$1 if /\s(?:(T)|[[:upper:]])\s_((?!Init_|.*_threadptr_|DllMain@).*)$/ =~ l
|
||||
yield $2, !$1 if re =~ l
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue