git://git.jankratochvil.net
/
massrebuild.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dtneededsize: SYMLINK fixes.
[massrebuild.git]
/
dtneededsize
diff --git
a/dtneededsize
b/dtneededsize
index
da07789
..
0b15cc5
100755
(executable)
--- a/
dtneededsize
+++ b/
dtneededsize
@@
-56,17
+56,25
@@
find {
if (-l $binfn) {
my $target=readlink $binfn or die $binfn;
$binfn=~s{^[.]}{};
if (-l $binfn) {
my $target=readlink $binfn or die $binfn;
$binfn=~s{^[.]}{};
- my $ref=\$SYMLINK{$binfn};
- die if $$ref;
+ my $final;
if ($target=~m{^/}) {
if ($target=~m{^/}) {
- $
$ref
=$target;
+ $
final
=$target;
#warn "$binfn,target=rel=$$ref\n";
} else {
my $base=dirname(".$binfn");
my $abs=File::Spec->rel2abs($target,$base);
#warn "$binfn,target=rel=$$ref\n";
} else {
my $base=dirname(".$binfn");
my $abs=File::Spec->rel2abs($target,$base);
- $
$ref
="/".File::Spec->abs2rel($abs);
+ $
final
="/".File::Spec->abs2rel($abs);
#warn "$binfn,base=$base,target=$target,abs=$abs,rel=$$ref\n";
}
#warn "$binfn,base=$base,target=$target,abs=$abs,rel=$$ref\n";
}
+ 1 while $final=~s{/[^/]+/[.][.]/}{/};
+ 1 while $final=~s{/[^/]+/[.][.]$}{};
+ if ($final=~m{/[.][.]}) {
+ warn "$binfn,target=$target,final=$final\n";
+ return;
+ }
+ my $ref=\$SYMLINK{$binfn};
+ die if $$ref;
+ $$ref=$final;
return;
}
return if !-f $binfn;
return;
}
return if !-f $binfn;
@@
-179,5
+187,5
@@
warn "$binfn: ".Dumper(\%dwzcommons);
$dtsizeall+=$dtsizetot;
# warn "$binfn done\n".Dumper([sort keys(%l)]);
}
$dtsizeall+=$dtsizetot;
# warn "$binfn done\n".Dumper([sort keys(%l)]);
}
-print "dwzsizeall=$dwzsizeall dtsizeall=$dtsizeall\n";
+print "dwzsizeall=$dwzsizeall dtsizeall=$dtsizeall
=".$dwzsizeall/$dtsizeall."
\n";
print "computed=$computed of DEBUG=".(0+@DEBUG)."\n";
print "computed=$computed of DEBUG=".(0+@DEBUG)."\n";