summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS8
-rw-r--r--NO-THANKS1
-rw-r--r--m4/libtool.m454
3 files changed, 37 insertions, 26 deletions
diff --git a/NEWS b/NEWS
index 87926bda..c2f667b4 100644
--- a/NEWS
+++ b/NEWS
@@ -27,6 +27,14 @@ NEWS - list of user-visible changes between releases of GNU Libtool
ia64-hp-hpux*, because the default system runtime loader path does
not contain them.
+ - Previously, when using Sun C++ on Solaris or Linux, `-Cstd -Crun`
+ flags were added to $postdeps unless CXX or CXXFLAGS contained
+ `-library=stlport4`. Newer releases have added other compiler flags
+ that are also incompatible with `-Cstd -Crun`, so now we don't add
+ them if any of `-std=c++[0-9][0-9]`, `-library=stdcxx4` or
+ `-compat=g` were found in CXX or CXXFLAGS when the Sun C++ compiler
+ is detected.
+
* Noteworthy changes in release 2.4.4 (2014-11-29) [stable]
diff --git a/NO-THANKS b/NO-THANKS
index dc338348..7f592768 100644
--- a/NO-THANKS
+++ b/NO-THANKS
@@ -100,6 +100,7 @@ Lawrence Velázquez larryv@macports.org
Lionel Landwerlin llandwerlin@gmail.com
Maciej Helminiak dion2@wp.pl
Mahesh Narayanamurthi mahesh.mach@gmail.com
+Marc Glisse marc.glisse@inria.fr
Marcel Loose loose@astron.nl
Markus Duft markus.duft@salomon.at
Martin Doucha doucha@integri.cz
diff --git a/m4/libtool.m4 b/m4/libtool.m4
index 0c120ff9..22a72849 100644
--- a/m4/libtool.m4
+++ b/m4/libtool.m4
@@ -7422,6 +7422,28 @@ func_stripname_cnf ()
} # func_stripname_cnf
])# _LT_FUNC_STRIPNAME_CNF
+
+# _LT_FUNC_SUNCC_CSTD_ABI
+# -----------------------
+# func_suncc_cstd_abi
+# Several compiler flags select an ABI that is
+# incompatible with the Cstd library. Avoid specifying
+# it if any are in CXXFLAGS.
+m4_defun([_LT_FUNC_SUNCC_CSTD_ABI], [[
+func_suncc_cstd_abi ()
+{
+ case " $CXX $CXXFLAGS " in
+ *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*)
+ suncc_use_cstd_abi=no
+ ;;
+ *)
+ suncc_use_cstd_abi=yes
+ ;;
+ esac
+} # func_suncc_cstd_abi
+]])# _LT_FUNC_SUNCC_CSTD_ABI
+
+
# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
# ---------------------------------
# Figure out "hidden" library dependencies from verbose
@@ -7430,6 +7452,7 @@ func_stripname_cnf ()
# objects, libraries and library flags.
m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_FUNC_SUNCC_CSTD_ABI])dnl
AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
# Dependencies to place before and after the object being linked:
_LT_TAGVAR(predep_objects, $1)=
@@ -7603,20 +7626,10 @@ interix[[3-9]]*)
linux*)
case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- # Sun C++ 5.9
-
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
+ *Sun\ C*) # Sun C++ 5.9
+ func_suncc_cstd_abi
- if test yes != "$solaris_use_stlport4"; then
+ if test no != "$suncc_use_cstd_abi"; then
_LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
fi
;;
@@ -7626,20 +7639,9 @@ linux*)
solaris*)
case $cc_basename in
CC* | sunCC*)
- # The more standards-conforming stlport4 library is
- # incompatible with the Cstd library. Avoid specifying
- # it if it's in CXXFLAGS. Ignore libCrun as
- # -library=stlport4 depends on it.
- case " $CXX $CXXFLAGS " in
- *" -library=stlport4 "*)
- solaris_use_stlport4=yes
- ;;
- esac
+ func_suncc_cstd_abi
- # Adding this requires a known-good setup of shared libraries for
- # Sun compiler versions before 5.6, else PIC objects from an old
- # archive will be linked into the output, leading to subtle bugs.
- if test yes != "$solaris_use_stlport4"; then
+ if test no != "$suncc_use_cstd_abi"; then
_LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
fi
;;