mirror of
git://git.savannah.gnu.org/libtool.git
synced 2025-02-05 14:40:42 +08:00
process postdeps to include sysrooted paths
* libltdl/m4/libtool.m4 (_LT_FUNC_STRIPNAME_CNF): New (from Charles Wilson). (_LT_SYS_HIDDEN_LIBDEPS): Require it. Use func_stripname_cnf to convert sysroot (-L= and -R=) usage in postdeps. Adjust the code because -L, -R and -l flags will now always be separated from the rest of the argument. Signed-off-by: Paolo Bonzini <bonzini@gnu.org> Signed-off-by: Charles Wilson <libtool@cwilson.fastmail.fm>
This commit is contained in:
parent
adb8f844f3
commit
d77a3a5124
42
libltdl/m4/libtool.m4
vendored
42
libltdl/m4/libtool.m4
vendored
@ -6692,6 +6692,29 @@ AC_LANG_POP
|
||||
])# _LT_LANG_CXX_CONFIG
|
||||
|
||||
|
||||
# _LT_FUNC_STRIPNAME_CNF
|
||||
# ----------------------
|
||||
# func_stripname_cnf prefix suffix name
|
||||
# strip PREFIX and SUFFIX off of NAME.
|
||||
# PREFIX and SUFFIX must not contain globbing or regex special
|
||||
# characters, hashes, percent signs, but SUFFIX may contain a leading
|
||||
# dot (in which case that matches only a dot).
|
||||
#
|
||||
# This function is identical to the (non-XSI) version of func_stripname,
|
||||
# except this one can be used by m4 code that may be executed by configure,
|
||||
# rather than the libtool script.
|
||||
m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
|
||||
AC_REQUIRE([_LT_DECL_SED])
|
||||
AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
|
||||
func_stripname_cnf ()
|
||||
{
|
||||
case ${2} in
|
||||
.*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
|
||||
*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
|
||||
esac
|
||||
} # func_stripname_cnf
|
||||
])# _LT_FUNC_STRIPNAME_CNF
|
||||
|
||||
# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
|
||||
# ---------------------------------
|
||||
# Figure out "hidden" library dependencies from verbose
|
||||
@ -6700,6 +6723,7 @@ AC_LANG_POP
|
||||
# objects, libraries and library flags.
|
||||
m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
|
||||
[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
|
||||
AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
|
||||
# Dependencies to place before and after the object being linked:
|
||||
_LT_TAGVAR(predep_objects, $1)=
|
||||
_LT_TAGVAR(postdep_objects, $1)=
|
||||
@ -6770,13 +6794,22 @@ if AC_TRY_EVAL(ac_compile); then
|
||||
test $p = "-R"; then
|
||||
prev=$p
|
||||
continue
|
||||
else
|
||||
prev=
|
||||
fi
|
||||
|
||||
# Expand the sysroot to ease extracting the directories later.
|
||||
if test -z "$prev"; then
|
||||
case $p in
|
||||
-L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
|
||||
-R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
|
||||
-l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
|
||||
esac
|
||||
fi
|
||||
case $p in
|
||||
=*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
|
||||
esac
|
||||
if test "$pre_test_object_deps_done" = no; then
|
||||
case ${prev}${p} in
|
||||
-L* | -R*)
|
||||
case ${prev} in
|
||||
-L | -R)
|
||||
# Internal compiler library paths should come after those
|
||||
# provided the user. The postdeps already come after the
|
||||
# user supplied libs so there is no need to process them.
|
||||
@ -6796,6 +6829,7 @@ if AC_TRY_EVAL(ac_compile); then
|
||||
_LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
|
||||
fi
|
||||
fi
|
||||
prev=
|
||||
;;
|
||||
|
||||
*.$objext)
|
||||
|
Loading…
Reference in New Issue
Block a user