From bb3db69e2a0c210cc3a63940622db96a97eb7947 Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 2 Mar 2018 01:37:53 +0000 Subject: [PATCH] configure.ac: library options to MAINLIBS * configure.ac (MAINLIBS): moved library options for main program and static libruby, and append MAINLIBS to LIBRUBYARG_STATIC, as these libraries are not needed for linking to shared libruby. [ruby-core:85882] [Bug #14422] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62627 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- configure.ac | 33 +++++++++++++++------------------ template/ruby.pc.in | 1 + win32/Makefile.sub | 6 ++++-- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/configure.ac b/configure.ac index aebbae1969a5..733a0c992fd7 100644 --- a/configure.ac +++ b/configure.ac @@ -10,6 +10,7 @@ AC_DISABLE_OPTION_CHECKING AC_ARG_VAR([cflags], [additional CFLAGS]) AC_ARG_VAR([cppflags], [additional CPPFLAGS]) AC_ARG_VAR([cxxflags], [additional CXXFLAGS]) +ORIG_LIBS=$LIBS AC_DEFUN([RUBY_RM_RECURSIVE], [ m4_version_prereq([2.70], [-1], [ @@ -2938,13 +2939,11 @@ AS_IF([test x"$enable_pthread" = xyes], [ AC_DEFINE(_THREAD_SAFE) AC_DEFINE(HAVE_LIBPTHREAD) AC_CHECK_HEADERS(pthread_np.h, [], [], [@%:@include ]) - AS_CASE([$pthread_lib], - [c], [], - [root], [], - [c_r], [MAINLIBS="-pthread $MAINLIBS"], - [AS_CASE(["$target_os"], - [openbsd*|mirbsd*], [LIBS="-pthread $LIBS"], - [LIBS="-l$pthread_lib $LIBS"])]) + AS_CASE(["$pthread_lib:$target_os"], + [c:*], [], + [root:*], [], + [c_r:*|*:openbsd*|*:mirbsd*], [LIBS="-pthread $LIBS"], + [LIBS="-l$pthread_lib $LIBS"]) ], [ AC_MSG_WARN("Don't know how to find pthread library on your system -- thread support disabled") ]) @@ -3623,7 +3622,7 @@ LIBRUBY_A='lib$(RUBY_SO_NAME)-static.a' LIBRUBY='$(LIBRUBY_A)' LIBRUBYARG_STATIC='-l$(RUBY_SO_NAME)-static' LIBRUBYARG='$(LIBRUBYARG_STATIC)' -SOLIBS= +SOLIBS='$(MAINLIBS)' AS_CASE(["$target_os"], [cygwin*|mingw*|haiku*|darwin*], [ @@ -3689,9 +3688,6 @@ AS_CASE("$enable_shared", [yes], [ LIBRUBY_RELATIVE=no test -z "$CCDLFLAGS" || CFLAGS="$CFLAGS $CCDLFLAGS" ENABLE_SHARED=yes - AS_IF([test "$rb_cv_binary_elf" = yes], [ - SOLIBS='$(LIBS)' - ]) # libdir can be overridden in config.site file (on OpenSUSE at least). libdir_basename=lib @@ -3726,7 +3722,6 @@ AS_CASE("$enable_shared", [yes], [ ]) ], [freebsd*|dragonfly*], [ - SOLIBS='$(LIBS)' LIBRUBY_SO='lib$(RUBY_SO_NAME).$(SOEXT).$(MAJOR)$(MINOR)' LIBRUBY_SONAME='$(LIBRUBY_SO)' AS_IF([test "$rb_cv_binary_elf" != "yes" ], [ @@ -3735,7 +3730,6 @@ AS_CASE("$enable_shared", [yes], [ ]) ], [netbsd*], [ - SOLIBS='$(LIBS)' LIBRUBY_SONAME='lib$(RUBY_SO_NAME).$(SOEXT).$(MAJOR)$(MINOR)' LIBRUBY_SO="${LIBRUBY_SONAME}"'.$(TEENY)' RUBY_APPEND_OPTIONS(LIBRUBY_DLDFLAGS, ['-Wl,-soname,$(LIBRUBY_SONAME)' "$LDFLAGS_OPTDIR"]) @@ -3746,11 +3740,9 @@ AS_CASE("$enable_shared", [yes], [ ]) ], [openbsd*|mirbsd*], [ - SOLIBS='$(LIBS)' LIBRUBY_SO='lib$(RUBY_SO_NAME).$(SOEXT).$(MAJOR).'`expr ${MINOR} \* 10 + ${TEENY}` ], [solaris*], [ - SOLIBS='$(LIBS)' LIBRUBY_SO='lib$(RUBY_SO_NAME).$(SOEXT).$(MAJOR)' LIBRUBY_SONAME='lib$(RUBY_SO_NAME).$(SOEXT).$(RUBY_PROGRAM_VERSION)' LIBRUBY_ALIASES='$(LIBRUBY_SONAME) lib$(RUBY_SO_NAME).$(SOEXT)' @@ -3768,7 +3760,7 @@ AS_CASE("$enable_shared", [yes], [ [aix*], [ RUBY_APPEND_OPTIONS(LIBRUBY_DLDFLAGS, ["${linker_flag}-bnoentry" "$XLDFLAGS" "$LDFLAGS_OPTDIR"]) LIBRUBYARG_SHARED='-L${libdir} -l${RUBY_SO_NAME}' - SOLIBS='-lm -lc' + LIBS="$LIBS -lm -lc" ], [darwin*], [ LIBRUBY_LDSHARED='$(CC) -dynamiclib' @@ -3788,7 +3780,6 @@ AS_CASE("$enable_shared", [yes], [ LIBRUBY_SO='lib$(RUBY_SO_NAME).$(SOEXT)' LIBRUBY_SONAME='lib$(RUBY_BASE_NAME).$(RUBY_API_VERSION).$(SOEXT)' LIBRUBY_ALIASES='$(LIBRUBY_SONAME) lib$(RUBY_INSTALL_NAME).$(SOEXT)' - SOLIBS='$(LIBS)' ], [interix*], [ LIBRUBYARG_SHARED='-L. -L${libdir} -l$(RUBY_SO_NAME)' @@ -4031,7 +4022,6 @@ AS_CASE(["$target_os"], ]) LIBRUBY_ALIASES='' FIRSTMAKEFILE=GNUmakefile:cygwin/GNUmakefile.in - SOLIBS='$(LIBS)' AS_IF([test x"$enable_shared" = xyes], [ LIBRUBY='lib$(RUBY_SO_NAME).dll.a' ], [ @@ -4131,6 +4121,13 @@ AS_IF([test "${universal_binary-no}" = yes ], [ [rb_cv_architecture_available=yes], [rb_cv_architecture_available=no])) ]) +MAINLIBS="$LIBS" +LIBS=$ORIG_LIBS +AS_IF([test -n "${LIBS}"], [ + libspat=`echo "${LIBS}" | sed 's/[[][|.*$^]]/\\&/g;s/^ */ /;s/^ *$/ /'` + MAINFLAGS=`echo " $MAINLIBS " | sed "s|$libspat"'||;s/^ *//;s/ *$//'` +]) +LIBRUBYARG_STATIC="${LIBRUBYARG_STATIC} \$(MAINLIBS)" CPPFLAGS="$CPPFLAGS "'$(DEFS)' test -z "$CPPFLAGS" || CPPFLAGS="$CPPFLAGS "; CPPFLAGS="$CPPFLAGS"'${cppflags}' AS_IF([test -n "${cflags+set}"], [ diff --git a/template/ruby.pc.in b/template/ruby.pc.in index d874f92c3b20..7ce4461c05df 100644 --- a/template/ruby.pc.in +++ b/template/ruby.pc.in @@ -39,6 +39,7 @@ sitehdrdir=@sitehdrdir@ rubyarchhdrdir=@rubyarchhdrdir@ vendorarchhdrdir=@vendorarchhdrdir@ sitearchhdrdir=@sitearchhdrdir@ +MAINLIBS=@MAINLIBS@ SOEXT=@SOEXT@ LIBPATH=@LIBPATH@ LIBRUBY_A=@LIBRUBY_A@ diff --git a/win32/Makefile.sub b/win32/Makefile.sub index 8673c121641e..f8316cccb68e 100644 --- a/win32/Makefile.sub +++ b/win32/Makefile.sub @@ -279,6 +279,7 @@ MJIT_DEBUGFLAGS = $(DEBUGFLAGS) CPPFLAGS = $(DEFS) $(ARCHDEFS) $(CPPFLAGS) DLDFLAGS = $(LDFLAGS) -dll +MAINLIBS = $(LIBS) SOLIBS = RCFILES = $(RUBY_INSTALL_NAME).rc $(RUBYW_INSTALL_NAME).rc $(RUBY_SO_NAME).rc !ifndef RCFLAGS @@ -821,7 +822,8 @@ s,@CPPFLAGS@,$(CPPFLAGS),;t t s,@CXXFLAGS@,$(CXXFLAGS),;t t s,@FFLAGS@,$(FFLAGS),;t t s,@LDFLAGS@,$(LDFLAGS),;t t -s,@LIBS@,$(LIBS),;t t +s,@LIBS@,,;t t +s,@MAINLIBS@,$(MAINLIBS),;t t s,@exec_prefix@,$${prefix},;t t s,@prefix@,$(prefix),;t t s,@program_transform_name@,s,.*,$(PROGRAM_PREFIX)&$(PROGRAM_SUFFIX),,;t t @@ -909,7 +911,7 @@ s,@LIBRUBY_SO@,$$(RUBY_SO_NAME).dll,;t t s,@LIBRUBY_ALIASES@,$(LIBRUBY_ALIASES),;t t s,@LIBRUBY@,$$(RUBY_SO_NAME).lib,;t t s,@LIBRUBYARG@,$$(LIBRUBYARG_SHARED),;t t -s,@LIBRUBYARG_STATIC@,$$(LIBRUBY_A),;t t +s,@LIBRUBYARG_STATIC@,$$(LIBRUBY_A) $$(MAINLIBS),;t t s,@LIBRUBYARG_SHARED@,$$(LIBRUBY),;t t s,@SOLIBS@,$(SOLIBS),;t t s,@DLDLIBS@,$(DLDLIBS),;t t