rev 1.28
Propagate a convenience library's dependency libs correctly when it is being linked into a libtool library. Deplibs are now propagated whether libdir is set or not. rev 1.27 The dlpreopen pass over libraries reverses the elements in the $deplibs list. This causes problems when the link pass tries to find libraries when they are located in non-standard places denoted by -L options. Due to the reversed order these -L options occur after the libraries that need them, and they are not found: (Un)Reverse $deplibs list at the start of the link pass in lib mode. From libtool CVS
This commit is contained in:
parent
214269002d
commit
a8a0fd2d8e
@ -1,4 +1,4 @@
|
||||
# $OpenBSD: Makefile,v 1.35 2004/12/18 21:38:18 brad Exp $
|
||||
# $OpenBSD: Makefile,v 1.36 2004/12/18 23:30:36 brad Exp $
|
||||
# $FreeBSD: Makefile,v 1.2 1998/09/23 16:15:53 vanilla Exp $
|
||||
|
||||
COMMENT= "generic shared library support script"
|
||||
@ -6,7 +6,7 @@ COMMENT-ltdl= "GNU libtool system independent dlopen wrapper"
|
||||
|
||||
VERSION= 1.5.10
|
||||
DISTNAME= libtool-${VERSION}
|
||||
PKGNAME= ${DISTNAME}p1
|
||||
PKGNAME= ${DISTNAME}p2
|
||||
PKGNAME-ltdl= libltdl-${VERSION}
|
||||
CATEGORIES= devel
|
||||
MASTER_SITES= ${MASTER_SITE_GNU:=libtool/}
|
||||
|
@ -1,7 +1,25 @@
|
||||
$OpenBSD: patch-libltdl_ltmain_sh,v 1.5 2004/12/18 21:38:18 brad Exp $
|
||||
$OpenBSD: patch-libltdl_ltmain_sh,v 1.6 2004/12/18 23:30:36 brad Exp $
|
||||
--- libltdl/ltmain.sh.orig Sun Sep 19 08:34:44 2004
|
||||
+++ libltdl/ltmain.sh Sat Dec 18 16:33:27 2004
|
||||
@@ -1985,10 +1985,6 @@ EOF
|
||||
+++ libltdl/ltmain.sh Sat Dec 18 17:00:07 2004
|
||||
@@ -1950,6 +1950,17 @@ EOF
|
||||
;;
|
||||
esac
|
||||
for pass in $passes; do
|
||||
+ # The preopen pass in lib mode reverses $deplibs; put it back here
|
||||
+ # so that -L comes before libs that need it for instance...
|
||||
+ if test "$linkmode,$pass" = "lib,link"; then
|
||||
+ ## FIXME: Find the place where the list is rebuilt in the wrong
|
||||
+ ## order, and fix it there properly
|
||||
+ tmp_deplibs=
|
||||
+ for deplib in $deplibs; do
|
||||
+ tmp_deplibs="$deplib $tmp_deplibs"
|
||||
+ done
|
||||
+ deplibs="$tmp_deplibs"
|
||||
+ fi
|
||||
if test "$linkmode,$pass" = "lib,link" ||
|
||||
test "$linkmode,$pass" = "prog,scan"; then
|
||||
libs="$deplibs"
|
||||
@@ -1985,10 +1996,6 @@ EOF
|
||||
$echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
|
||||
continue
|
||||
fi
|
||||
@ -12,7 +30,38 @@ $OpenBSD: patch-libltdl_ltmain_sh,v 1.5 2004/12/18 21:38:18 brad Exp $
|
||||
name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
|
||||
for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
|
||||
for search_ext in .la $std_shrext .so .a; do
|
||||
@@ -2611,7 +2607,7 @@ EOF
|
||||
@@ -2213,20 +2220,20 @@ EOF
|
||||
# It is a libtool convenience library, so add in its objects.
|
||||
convenience="$convenience $ladir/$objdir/$old_library"
|
||||
old_convenience="$old_convenience $ladir/$objdir/$old_library"
|
||||
- tmp_libs=
|
||||
- for deplib in $dependency_libs; do
|
||||
- deplibs="$deplib $deplibs"
|
||||
- if test "X$duplicate_deps" = "Xyes" ; then
|
||||
- case "$tmp_libs " in
|
||||
- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
|
||||
- esac
|
||||
- fi
|
||||
- tmp_libs="$tmp_libs $deplib"
|
||||
- done
|
||||
elif test "$linkmode" != prog && test "$linkmode" != lib; then
|
||||
$echo "$modename: \`$lib' is not a convenience library" 1>&2
|
||||
exit $EXIT_FAILURE
|
||||
fi
|
||||
+ tmp_libs=
|
||||
+ for deplib in $dependency_libs; do
|
||||
+ deplibs="$deplib $deplibs"
|
||||
+ if test "X$duplicate_deps" = "Xyes" ; then
|
||||
+ case "$tmp_libs " in
|
||||
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
|
||||
+ esac
|
||||
+ fi
|
||||
+ tmp_libs="$tmp_libs $deplib"
|
||||
+ done
|
||||
continue
|
||||
fi # $pass = conv
|
||||
|
||||
@@ -2611,7 +2618,7 @@ EOF
|
||||
add_dir=
|
||||
add=
|
||||
# Finalize command for both is simple: just hardcode it.
|
||||
@ -21,7 +70,7 @@ $OpenBSD: patch-libltdl_ltmain_sh,v 1.5 2004/12/18 21:38:18 brad Exp $
|
||||
add="$libdir/$linklib"
|
||||
elif test "$hardcode_minus_L" = yes; then
|
||||
add_dir="-L$libdir"
|
||||
@@ -5804,40 +5800,6 @@ relink_command=\"$relink_command\""
|
||||
@@ -5804,40 +5811,6 @@ relink_command=\"$relink_command\""
|
||||
# Exit here if they wanted silent mode.
|
||||
test "$show" = : && exit $EXIT_SUCCESS
|
||||
|
||||
|
@ -1,7 +1,25 @@
|
||||
$OpenBSD: patch-ltmain_in,v 1.5 2004/12/18 21:38:18 brad Exp $
|
||||
$OpenBSD: patch-ltmain_in,v 1.6 2004/12/18 23:30:36 brad Exp $
|
||||
--- ltmain.in.orig Sun Sep 19 08:15:12 2004
|
||||
+++ ltmain.in Sat Dec 18 16:33:37 2004
|
||||
@@ -1985,10 +1985,6 @@ EOF
|
||||
+++ ltmain.in Sat Dec 18 17:01:45 2004
|
||||
@@ -1950,6 +1950,17 @@ EOF
|
||||
;;
|
||||
esac
|
||||
for pass in $passes; do
|
||||
+ # The preopen pass in lib mode reverses $deplibs; put it back here
|
||||
+ # so that -L comes before libs that need it for instance...
|
||||
+ if test "$linkmode,$pass" = "lib,link"; then
|
||||
+ ## FIXME: Find the place where the list is rebuilt in the wrong
|
||||
+ ## order, and fix it there properly
|
||||
+ tmp_deplibs=
|
||||
+ for deplib in $deplibs; do
|
||||
+ tmp_deplibs="$deplib $tmp_deplibs"
|
||||
+ done
|
||||
+ deplibs="$tmp_deplibs"
|
||||
+ fi
|
||||
if test "$linkmode,$pass" = "lib,link" ||
|
||||
test "$linkmode,$pass" = "prog,scan"; then
|
||||
libs="$deplibs"
|
||||
@@ -1985,10 +1996,6 @@ EOF
|
||||
$echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
|
||||
continue
|
||||
fi
|
||||
@ -12,7 +30,38 @@ $OpenBSD: patch-ltmain_in,v 1.5 2004/12/18 21:38:18 brad Exp $
|
||||
name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
|
||||
for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
|
||||
for search_ext in .la $std_shrext .so .a; do
|
||||
@@ -2611,7 +2607,7 @@ EOF
|
||||
@@ -2213,20 +2220,20 @@ EOF
|
||||
# It is a libtool convenience library, so add in its objects.
|
||||
convenience="$convenience $ladir/$objdir/$old_library"
|
||||
old_convenience="$old_convenience $ladir/$objdir/$old_library"
|
||||
- tmp_libs=
|
||||
- for deplib in $dependency_libs; do
|
||||
- deplibs="$deplib $deplibs"
|
||||
- if test "X$duplicate_deps" = "Xyes" ; then
|
||||
- case "$tmp_libs " in
|
||||
- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
|
||||
- esac
|
||||
- fi
|
||||
- tmp_libs="$tmp_libs $deplib"
|
||||
- done
|
||||
elif test "$linkmode" != prog && test "$linkmode" != lib; then
|
||||
$echo "$modename: \`$lib' is not a convenience library" 1>&2
|
||||
exit $EXIT_FAILURE
|
||||
fi
|
||||
+ tmp_libs=
|
||||
+ for deplib in $dependency_libs; do
|
||||
+ deplibs="$deplib $deplibs"
|
||||
+ if test "X$duplicate_deps" = "Xyes" ; then
|
||||
+ case "$tmp_libs " in
|
||||
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
|
||||
+ esac
|
||||
+ fi
|
||||
+ tmp_libs="$tmp_libs $deplib"
|
||||
+ done
|
||||
continue
|
||||
fi # $pass = conv
|
||||
|
||||
@@ -2611,7 +2618,7 @@ EOF
|
||||
add_dir=
|
||||
add=
|
||||
# Finalize command for both is simple: just hardcode it.
|
||||
@ -21,7 +70,7 @@ $OpenBSD: patch-ltmain_in,v 1.5 2004/12/18 21:38:18 brad Exp $
|
||||
add="$libdir/$linklib"
|
||||
elif test "$hardcode_minus_L" = yes; then
|
||||
add_dir="-L$libdir"
|
||||
@@ -5804,40 +5800,6 @@ relink_command=\"$relink_command\""
|
||||
@@ -5804,40 +5811,6 @@ relink_command=\"$relink_command\""
|
||||
# Exit here if they wanted silent mode.
|
||||
test "$show" = : && exit $EXIT_SUCCESS
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user