Update of /cvsroot/fink/experimental/rangerrick/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6785/scripts
Added Files: gcc-symbol-mangle-detector Removed Files: gcc-symbol-mangle-detector.sh Log Message: work-in-progress --- gcc-symbol-mangle-detector.sh DELETED --- --- NEW FILE: gcc-symbol-mangle-detector --- #!/usr/bin/perl $|++; use strict; PACKAGE: for my $package (@ARGV) { print $package, "... "; my @symbols; if (open(DPKG, "dpkg -L '$package' |")) { while (my $file = <DPKG>) { chomp($file); if (`file "$file" 2>/dev/null` =~ /Mach-O/) { system("nm -g '$file' >/tmp/$$.before"); system("c++filt < /tmp/$$.before > /tmp/$$.after"); if (open(DIFF, "diff -uNb /tmp/$$.before /tmp/$$.after |")) { while (my $diffline = <DIFF>) { chomp($diffline); if ($diffline =~ /^\+\s*(.*?)\s*$/) { push(@symbols, $1); } else { #print "did not match: $diffline\n"; } } close(DIFF); } else { warn "unable to run diff: $!\n"; } } } close(DPKG); if (@symbols) { print int(@symbols), " symbols mangled\n"; } else { print "not mangled\n"; } } else { warn "unable to run dpkg -L '$package': $!\n"; } } unlink("/tmp/$$.before"); unlink("/tmp/$$.after"); __END__ for PACKAGE in "$@"; do MATCH=0 echo -e "${PACKAGE}: \c" dpkg -L "$PACKAGE" | while read FILE; do if [ "$MATCH" -eq 0 ] && [ -f "$FILE" ]; then if [ `file "$FILE" 2>/dev/null | grep -c "Mach-O"` -gt 0 ]; then nm -g "$FILE" > /tmp/$$.before c++filt < /tmp/$$.before > /tmp/$$.after COUNT=`diff /tmp/$$.before /tmp/$$.after | wc -l` if [ "$COUNT" -gt 0 ]; then echo "$PACKAGE: mangled" MATCH=1 break 3 fi fi fi done if [ "$MATCH" -eq 0 ]; then echo "$PACKAGE: not mangled" fi done ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 _______________________________________________ Fink-commits mailing list Fink-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/fink-commits