PR libgcj/20160
* ltmain.sh: Avoid creating archives with components that have duplicate basenames.
This commit is contained in:
parent
a76903bf5d
commit
33a3fb7b23
2 changed files with 64 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2005-03-01 Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
|
PR libgcj/20160
|
||||||
|
* ltmain.sh: Avoid creating archives with components that have
|
||||||
|
duplicate basenames.
|
||||||
|
|
||||||
2005-02-28 Andrew Pinski <pinskia@physics.uc.edu>
|
2005-02-28 Andrew Pinski <pinskia@physics.uc.edu>
|
||||||
|
|
||||||
PR bootstrap/20250
|
PR bootstrap/20250
|
||||||
|
|
58
ltmain.sh
58
ltmain.sh
|
@ -4234,6 +4234,63 @@ fi\
|
||||||
# fi
|
# fi
|
||||||
# done
|
# done
|
||||||
|
|
||||||
|
# POSIX demands no paths to be encoded in archives. We have
|
||||||
|
# to avoid creating archives with duplicate basenames if we
|
||||||
|
# might have to extract them afterwards, e.g., when creating a
|
||||||
|
# static archive out of a convenience library, or when linking
|
||||||
|
# the entirety of a libtool archive into another (currently
|
||||||
|
# not supported by libtool).
|
||||||
|
if (for obj in $oldobjs
|
||||||
|
do
|
||||||
|
$echo "X$obj" | $Xsed -e 's%^.*/%%'
|
||||||
|
done | sort | sort -uc >/dev/null 2>&1); then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
$echo "copying selected object files to avoid basename conflicts..."
|
||||||
|
|
||||||
|
if test -z "$gentop"; then
|
||||||
|
gentop="$output_objdir/${outputname}x"
|
||||||
|
|
||||||
|
$show "${rm}r $gentop"
|
||||||
|
$run ${rm}r "$gentop"
|
||||||
|
$show "$mkdir $gentop"
|
||||||
|
$run $mkdir "$gentop"
|
||||||
|
status=$?
|
||||||
|
if test $status -ne 0 && test ! -d "$gentop"; then
|
||||||
|
exit $status
|
||||||
|
fi
|
||||||
|
generated="$generated $gentop"
|
||||||
|
fi
|
||||||
|
|
||||||
|
save_oldobjs=$oldobjs
|
||||||
|
oldobjs=
|
||||||
|
counter=1
|
||||||
|
for obj in $save_oldobjs
|
||||||
|
do
|
||||||
|
objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
|
||||||
|
case " $oldobjs " in
|
||||||
|
" ") oldobjs=$obj ;;
|
||||||
|
*[\ /]"$objbase "*)
|
||||||
|
while :; do
|
||||||
|
# Make sure we don't pick an alternate name that also
|
||||||
|
# overlaps.
|
||||||
|
newobj=lt$counter-$objbase
|
||||||
|
counter=`expr $counter + 1`
|
||||||
|
case " $oldobjs " in
|
||||||
|
*[\ /]"$newobj "*) ;;
|
||||||
|
*) if test ! -f "$gentop/$newobj"; then break; fi ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
$show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
|
||||||
|
$run ln "$obj" "$gentop/$newobj" ||
|
||||||
|
$run cp "$obj" "$gentop/$newobj"
|
||||||
|
oldobjs="$oldobjs $gentop/$newobj"
|
||||||
|
;;
|
||||||
|
*) oldobjs="$oldobjs $obj" ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
eval cmds=\"$old_archive_cmds\"
|
eval cmds=\"$old_archive_cmds\"
|
||||||
|
|
||||||
if len=`expr "X$cmds" : ".*"` &&
|
if len=`expr "X$cmds" : ".*"` &&
|
||||||
|
@ -4247,6 +4304,7 @@ fi\
|
||||||
objlist=
|
objlist=
|
||||||
concat_cmds=
|
concat_cmds=
|
||||||
save_oldobjs=$oldobjs
|
save_oldobjs=$oldobjs
|
||||||
|
|
||||||
for obj in $save_oldobjs
|
for obj in $save_oldobjs
|
||||||
do
|
do
|
||||||
oldobjs="$objlist $obj"
|
oldobjs="$objlist $obj"
|
||||||
|
|
Loading…
Reference in a new issue