[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Issues w/ "relink" and cross-compilation
From: |
Thierry Reding |
Subject: |
Re: Issues w/ "relink" and cross-compilation |
Date: |
Mon, 12 Jul 2010 09:17:35 +0200 |
User-agent: |
Mutt/1.5.20 (2009-06-14) |
And here's the patch.
diff --git a/ltmain.sh b/ltmain.sh
index 6939dcc..be92a38 100755
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -2009,6 +2009,10 @@ func_mode_install ()
dir="$dir$objdir"
if test -n "$relink_command"; then
+ if test -n "$sysroot"; then
+ libdir=`$ECHO "X$libdir" | $Xsed -e "s%$sysroot%%"`
+ relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%(\(.*\))%(\1
-L$destdir)%"`
+ fi
# Determine the prefix the user has applied to our future dir.
inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
@@ -4330,6 +4334,13 @@ func_mode_link ()
prev=
continue
;;
+ sysroot)
+ sysroot="$arg"
+ compiler_flags="$compiler_flags --sysroot $arg"
+ compile_command="$compile_command --sysroot $arg"
+ prev=
+ continue
+ ;;
precious_regex)
precious_files_regex="$arg"
prev=
@@ -4462,6 +4473,11 @@ func_mode_link ()
continue
;;
+ --sysroot)
+ prev=sysroot
+ continue
+ ;;
+
# The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
# so, if we see these flags be careful not to treat them like -L
-L[A-Z][A-Z]*:*)
@@ -5097,7 +5113,7 @@ func_mode_link ()
for searchdir in $searchdirs; do
for search_ext in .la $std_shrext .so .a; do
# Search the libtool library
- lib="$searchdir/lib${name}${search_ext}"
+ lib="${sysroot}$searchdir/lib${name}${search_ext}"
if test -f "$lib"; then
if test "$search_ext" = ".la"; then
found=yes
@@ -5784,8 +5800,12 @@ func_mode_link ()
add="$libdir/$linklib"
fi
else
- # We cannot seem to hardcode it, guess we'll fake it.
- add_dir="-L$libdir"
+ if test -n "$sysroot"; then
+ libdir=`$ECHO "X$libdir" | $Xsed -e "s%${sysroot}%%"`
+ else
+ # We cannot seem to hardcode it, guess we'll fake it.
+ add_dir="-L$libdir"
+ fi
# Try looking first in the location we're being installed to.
if test -n "$inst_prefix_dir"; then
case $libdir in
@@ -8125,6 +8145,11 @@ EOF
case $host,$output,$installed,$module,$dlname in
*cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll |
*cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
esac
+
+ if test -n "$install_libdir"; then
+ install_libdir="${sysroot}$install_libdir"
+ fi
+
$ECHO > $output "\
# $outputname - a libtool library file
# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
@@ -8167,6 +8192,10 @@ dlpreopen='$dlprefiles'
# Directory that this library needs to be installed in:
libdir='$install_libdir'"
+ if test -n "$sysroot"; then
+ $ECHO >> $output "\
+sysroot='$sysroot'"
+ fi
if test "$installed" = no && test "$need_relink" = yes; then
$ECHO >> $output "\
relink_command=\"$relink_command\""
signature.asc
Description: Digital signature