mirror of
git://git.savannah.gnu.org/libtool.git
synced 2024-11-21 01:40:57 +08:00
libtool: more carefully avoid automatic -Cstd -Crun on Sun Pro CXX.
* m4/libtool.m4 (_LT_FUNC_SUNCC_CSTD_ABI): New function factored out of repeated code. Take note of other known -Cstd incompatible compiler flags. (_LT_SYS_HIDDEN_LIBDEPS): Use it to determine whether -Cstd -Crun can be safely added to postdeps with Sun Pro CXX. * NEWS: Update. * NO-THANKS: Add Marc Glisse. Reported by Marc Glisse Signed-off-by: Gary V. Vaughan <gary@gnu.org>
This commit is contained in:
parent
4fede0bc49
commit
b49ab52cb3
8
NEWS
8
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
|
ia64-hp-hpux*, because the default system runtime loader path does
|
||||||
not contain them.
|
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]
|
* Noteworthy changes in release 2.4.4 (2014-11-29) [stable]
|
||||||
|
|
||||||
|
@ -100,6 +100,7 @@ Lawrence Velázquez larryv@macports.org
|
|||||||
Lionel Landwerlin llandwerlin@gmail.com
|
Lionel Landwerlin llandwerlin@gmail.com
|
||||||
Maciej Helminiak dion2@wp.pl
|
Maciej Helminiak dion2@wp.pl
|
||||||
Mahesh Narayanamurthi mahesh.mach@gmail.com
|
Mahesh Narayanamurthi mahesh.mach@gmail.com
|
||||||
|
Marc Glisse marc.glisse@inria.fr
|
||||||
Marcel Loose loose@astron.nl
|
Marcel Loose loose@astron.nl
|
||||||
Markus Duft markus.duft@salomon.at
|
Markus Duft markus.duft@salomon.at
|
||||||
Martin Doucha doucha@integri.cz
|
Martin Doucha doucha@integri.cz
|
||||||
|
54
m4/libtool.m4
vendored
54
m4/libtool.m4
vendored
@ -7422,6 +7422,28 @@ func_stripname_cnf ()
|
|||||||
} # func_stripname_cnf
|
} # func_stripname_cnf
|
||||||
])# _LT_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])
|
# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
|
||||||
# ---------------------------------
|
# ---------------------------------
|
||||||
# Figure out "hidden" library dependencies from verbose
|
# Figure out "hidden" library dependencies from verbose
|
||||||
@ -7430,6 +7452,7 @@ func_stripname_cnf ()
|
|||||||
# objects, libraries and library flags.
|
# objects, libraries and library flags.
|
||||||
m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
|
m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
|
||||||
[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
|
[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
|
||||||
|
m4_require([_LT_FUNC_SUNCC_CSTD_ABI])dnl
|
||||||
AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
|
AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
|
||||||
# Dependencies to place before and after the object being linked:
|
# Dependencies to place before and after the object being linked:
|
||||||
_LT_TAGVAR(predep_objects, $1)=
|
_LT_TAGVAR(predep_objects, $1)=
|
||||||
@ -7603,20 +7626,10 @@ interix[[3-9]]*)
|
|||||||
|
|
||||||
linux*)
|
linux*)
|
||||||
case `$CC -V 2>&1 | sed 5q` in
|
case `$CC -V 2>&1 | sed 5q` in
|
||||||
*Sun\ C*)
|
*Sun\ C*) # Sun C++ 5.9
|
||||||
# Sun C++ 5.9
|
func_suncc_cstd_abi
|
||||||
|
|
||||||
# The more standards-conforming stlport4 library is
|
if test no != "$suncc_use_cstd_abi"; then
|
||||||
# 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
|
|
||||||
|
|
||||||
if test yes != "$solaris_use_stlport4"; then
|
|
||||||
_LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
|
_LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
@ -7626,20 +7639,9 @@ linux*)
|
|||||||
solaris*)
|
solaris*)
|
||||||
case $cc_basename in
|
case $cc_basename in
|
||||||
CC* | sunCC*)
|
CC* | sunCC*)
|
||||||
# The more standards-conforming stlport4 library is
|
func_suncc_cstd_abi
|
||||||
# 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
|
|
||||||
|
|
||||||
# Adding this requires a known-good setup of shared libraries for
|
if test no != "$suncc_use_cstd_abi"; then
|
||||||
# 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
|
|
||||||
_LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
|
_LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
Loading…
Reference in New Issue
Block a user