diff options
Diffstat (limited to 'eclass/ELT-patches/relink/1.4.0a-GCC3.0-2')
-rw-r--r-- | eclass/ELT-patches/relink/1.4.0a-GCC3.0-2 | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/eclass/ELT-patches/relink/1.4.0a-GCC3.0-2 b/eclass/ELT-patches/relink/1.4.0a-GCC3.0-2 new file mode 100644 index 0000000..55103a4 --- /dev/null +++ b/eclass/ELT-patches/relink/1.4.0a-GCC3.0-2 @@ -0,0 +1,100 @@ +--- ltmain.sh Wed Oct 3 02:05:35 2001 ++++ ltmain.sh Wed Oct 3 05:16:14 2001 +@@ -754,6 +754,7 @@ + linker_flags= + dllsearchpath= + lib_search_path=`pwd` ++ inst_prefix_dir= + + avoid_version=no + dlfiles= +@@ -884,6 +885,11 @@ + prev= + continue + ;; ++ inst_prefix) ++ inst_prefix_dir="$arg" ++ prev= ++ continue ++ ;; + release) + release="-$arg" + prev= +@@ -985,6 +991,11 @@ + continue + ;; + ++ -inst-prefix-dir) ++ prev=inst_prefix ++ 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]*:*) +@@ -1866,6 +1877,7 @@ + + if test "$linkmode" = prog || test "$mode" = relink; then + add_shlibpath= ++ add_prefix_dir= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. +@@ -1886,10 +1898,22 @@ + add="-l$name" + fi + +- if test $linkmode = prog; then ++ if test -n "$inst_prefix_dir"; then ++ case "$libdir" in ++ [\\/]*) ++ add_prefix_dir="-L$inst_prefix_dir$libdir" ++ ;; ++ esac ++ fi ++ ++ # add_prefix_dir must be appended instead, otherwise it can ++ # possibly be overrided by any hardcoded -L/... path in deplibs ++ if test "$linkmode" = prog; then ++ test -n "$add_prefix_dir" && finalize_deplibs="$finalize_deplibs $add_prefix_dir" + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else ++ test -n "$add_prefix_dir" && deplibs="$deplibs $add_prefix_dir" + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi +@@ -3856,7 +3880,7 @@ + for tag in $taglist; do + tagopts="$tagopts --tag $tag" + done +- relink_command="(cd `pwd`; $SHELL $0$tagopts --mode=relink $libtool_args)" ++ relink_command="(cd `pwd`; $SHELL $0$tagopts --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` + + # Only create the output if not a dry run. +@@ -4157,6 +4181,24 @@ + dir="$dir$objdir" + + if test -n "$relink_command"; then ++ # Determine the prefix the user has applied to our future dir. ++ inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"` ++ ++ # Don't allow the user to place us outside of our expected ++ # location b/c this prevents finding dependent libraries that ++ # are installed to the same prefix. ++ if test "$inst_prefix_dir" = "$destdir"; then ++ $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 ++ exit 1 ++ fi ++ ++ if test -n "$inst_prefix_dir"; then ++ # Stick the inst_prefix_dir data into the link command. ++ relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` ++ else ++ relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%%"` ++ fi ++ + $echo "$modename: warning: relinking \`$file'" 1>&2 + $show "$relink_command" + if $run eval "$relink_command"; then : |