* Fix regression in 1.5.16 to not install libtldl data files from `libtoolize --ltdl'ed software packages. * Bug Fixes. Changes 1.5.16: * Allow shell special characters like `$' in source file names, but not in object names, to enhance GCJ support. * Detection of compiler wrappers like distcc/ccache and $host_alias prefix. * More robust tests for PIC flag, `-c -o', in presence of warnings. * Bug Fixes, among others for convenience archives regression on Solaris and timestamp-preserving `libtoolize --copy --ltdl'.
114 lines
3.5 KiB
Text
114 lines
3.5 KiB
Text
$NetBSD: patch-ac,v 1.18 2005/05/18 11:57:12 adam Exp $
|
|
|
|
--- ltmain.sh.orig Mon May 16 11:39:29 2005
|
|
+++ ltmain.sh
|
|
@@ -188,6 +188,31 @@ func_win32_libid ()
|
|
# arg is usually of the form 'gcc ...'
|
|
func_infer_tag ()
|
|
{
|
|
+ # Set the commonly-used compilers for some tags.
|
|
+ tag_compilers_CC="*cc *xlc"
|
|
+ tag_compilers_CXX="*++ *CC"
|
|
+ tag_compilers_F77="*77 *fort"
|
|
+ base_compiler=`set -- "$@"; $echo $1`
|
|
+ # If $tagname still isn't set, then try to infer if the default
|
|
+ # "CC" tag applies by matching up the base compile command to some
|
|
+ # compilers commonly used for the "CC" tag.
|
|
+ if test -z "$tagname"; then
|
|
+ z=CC
|
|
+ eval "tag_compilers=\$tag_compilers_${z}"
|
|
+ if test -n "$tag_compilers"; then
|
|
+ for zp in $tag_compilers; do
|
|
+ case $base_compiler in
|
|
+ $zp)
|
|
+ # The compiler in the base compile command matches
|
|
+ # one of the common compilers for the current tag.
|
|
+ # Assume this is the tagged configuration we want.
|
|
+ tagname=$z
|
|
+ break
|
|
+ ;;
|
|
+ esac
|
|
+ done
|
|
+ fi
|
|
+ fi
|
|
if test -n "$available_tags" && test -z "$tagname"; then
|
|
CC_quoted=
|
|
for arg in $CC; do
|
|
@@ -228,6 +253,27 @@ func_infer_tag ()
|
|
break
|
|
;;
|
|
esac
|
|
+ # If $tagname still isn't set, then try to infer it by
|
|
+ # matching up the base compile command to some compilers
|
|
+ # commonly used for certain tags.
|
|
+ base_compiler=`set -- "$@"; $echo $1`
|
|
+ eval "tag_compilers=\$tag_compilers_${z}"
|
|
+ if test -n "$tag_compilers"; then
|
|
+ for zp in $tag_compilers; do
|
|
+ case $base_compiler in
|
|
+ $zp)
|
|
+ # The compiler in the base compile command matches
|
|
+ # one of the common compilers for the current tag.
|
|
+ # Assume this is the tagged configuration we want.
|
|
+ tagname=$z
|
|
+ break
|
|
+ ;;
|
|
+ esac
|
|
+ done
|
|
+ if test -n "$tagname"; then
|
|
+ break
|
|
+ fi
|
|
+ fi
|
|
fi
|
|
done
|
|
# If $tagname still isn't set, then no tagged configuration
|
|
@@ -512,7 +558,7 @@ if test -z "$show_help"; then
|
|
$echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
|
|
$echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
|
|
case $nonopt in
|
|
- *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
|
|
+ *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc* | *CC)
|
|
mode=link
|
|
for arg
|
|
do
|
|
@@ -1313,6 +1359,13 @@ EOF
|
|
exit $EXIT_FAILURE
|
|
;;
|
|
esac
|
|
+ # Canonicalise the pathname
|
|
+ tmp=""
|
|
+ while test "$arg" != "$tmp"
|
|
+ do
|
|
+ tmp=$arg
|
|
+ arg=`$echo "X$arg" | $Xsed -e 's%[^/.][^/.]*/\.\.%%g' -e 's%/\./%/%g' -e 's%//*%/%g' -e 's%/$%%g'`
|
|
+ done
|
|
if test "$prev" = rpath; then
|
|
case "$rpath " in
|
|
*" $arg "*) ;;
|
|
@@ -3202,6 +3255,7 @@ EOF
|
|
linux)
|
|
major=.`expr $current - $age`
|
|
versuffix="$major.$age.$revision"
|
|
+ versuffix2="$major.$age"
|
|
;;
|
|
|
|
osf)
|
|
@@ -5462,8 +5516,16 @@ relink_command=\"$relink_command\""
|
|
exit $EXIT_FAILURE
|
|
fi
|
|
|
|
- # Strip any trailing slash from the destination.
|
|
- dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
|
|
+ # Canonicalise the pathname:
|
|
+ # - remove foo/../
|
|
+ # - replace //
|
|
+ # - remove /./
|
|
+ # - strip any trailing /
|
|
+ tmp=""
|
|
+ while test "$dest" != "$tmp"; do
|
|
+ tmp=$dest
|
|
+ dest=`$echo "X$dest" | $Xsed -e 's%[^/.][^/.]*/\.\.%%g' -e 's%/\./%/%g' -e 's%//*%/%g' -e 's%/$%%g'`
|
|
+ done
|
|
|
|
# Check to see that the destination is a directory.
|
|
test -d "$dest" && isdir=yes
|