From 27b56ba6cc4d22c0407c0372ec8d6de20e9ac2a7 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 6 Jul 2006 23:24:51 +0000 Subject: [PATCH] Port to hosts whose 'sort' and 'tail' implementations treat operands with leading '+' as file names... Port to hosts whose 'sort' and 'tail' implementations treat operands with leading '+' as file names, as POSIX has required since 2001. However, make sure the code still works on pre-POSIX hosts. * ltmain.sh: Don't assume "sort +2" is equivalent to "sort -k 3", since POSIX 1003.1-2001 no longer requires this. contrib: * compare_tests: Don't assume "sort +2" is equivalent to "sort -k 3", since POSIX 1003.1-2001 no longer requires this. gcc: * Makefile.in (slowcompare): Port to POSIX 1003.1-2001, which says you should use "tail -c +N" rather than "tail +Nc". Fix a bug: the old code incorrectly skipped 15 bytes, not 16. From-SVN: r115234 --- ChangeLog | 9 +++++++++ contrib/ChangeLog | 9 +++++++++ contrib/compare_tests | 10 ++++++++-- gcc/ChangeLog | 10 ++++++++++ gcc/Makefile.in | 9 +++++++-- ltmain.sh | 8 +++++++- 6 files changed, 50 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4f6f192b72b..3d9a3ee3800 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2006-07-06 Paul Eggert + + Port to hosts whose 'sort' and 'tail' implementations + treat operands with leading '+' as file names, as POSIX + has required since 2001. However, make sure the code still + works on pre-POSIX hosts. + * ltmain.sh: Don't assume "sort +2" is equivalent to + "sort -k 3", since POSIX 1003.1-2001 no longer requires this. + 2006-07-05 Ulrich Weigand * MAINTAINERS (Various Maintainers): Add myself as reload maintainer. diff --git a/contrib/ChangeLog b/contrib/ChangeLog index 120213ac20f..35d29b96f12 100644 --- a/contrib/ChangeLog +++ b/contrib/ChangeLog @@ -1,3 +1,12 @@ +2006-07-06 Paul Eggert + + Port to hosts whose 'sort' and 'tail' implementations + treat operands with leading '+' as file names, as POSIX + has required since 2001. However, make sure the code still + works on pre-POSIX hosts. + * compare_tests: Don't assume "sort +2" is equivalent to + "sort -k 3", since POSIX 1003.1-2001 no longer requires this. + 2006-06-05 James Lemke * dg-cmp-results.sh: New script for comparing DejaGNU logs. diff --git a/contrib/compare_tests b/contrib/compare_tests index bcf678c52ea..bed97429d66 100755 --- a/contrib/compare_tests +++ b/contrib/compare_tests @@ -31,8 +31,14 @@ now=$tmp2 exit_status=0 trap "rm -f $tmp1 $tmp2 $now_s $before_s" 0 1 2 3 5 9 13 15 -sort -t ':' +1 "$now" > "$now_s" -sort -t ':' +1 "$before" > "$before_s" +if sort -k 2 /dev/null 2>&1; then + skip1='-k 2' +else + skip1='+1' +fi + +sort -t ':' $skip1 "$now" > "$now_s" +sort -t ':' $skip1 "$before" > "$before_s" grep '^FAIL:' "$now_s" | sed 's/^[^:]*:[ ]//' >$tmp1 grep '^PASS' "$before_s" | sed 's/^[^:]*:[ ]//' | comm -12 $tmp1 - >$tmp2 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e5eb94cd1f0..94f768f6a20 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2006-07-06 Paul Eggert + + Port to hosts whose 'sort' and 'tail' implementations + treat operands with leading '+' as file names, as POSIX + has required since 2001. However, make sure the code still + works on pre-POSIX hosts. + * Makefile.in (slowcompare): Port to POSIX 1003.1-2001, + which says you should use "tail -c +N" rather than "tail +Nc". + Fix a bug: the old code incorrectly skipped 15 bytes, not 16. + 2006-07-06 Zdenek Dvorak * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in argument name. diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 9f29c7bfe4d..3287de9a605 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -4384,8 +4384,13 @@ fastcompare fastcompare3 fastcompare4 fastcompare-lean fastcompare3-lean fastcom for file in $$dir/*$(objext); do \ case "$@" in \ slowcompare* ) \ - tail +16c ./$$file > tmp-foo1; \ - tail +16c stage$$stage/$$file > tmp-foo2; \ + if tail -c +1 /dev/null 2>&1; then \ + skip16='-c +17'; \ + else \ + skip16='+17c'; \ + fi; \ + tail $$skip16 ./$$file > tmp-foo1; \ + tail $$skip16 stage$$stage/$$file > tmp-foo2; \ cmp tmp-foo1 tmp-foo2 > /dev/null 2>&1; \ cmpret=$$?; \ ;; \ diff --git a/ltmain.sh b/ltmain.sh index 219823fc45d..a3c55f9a751 100644 --- a/ltmain.sh +++ b/ltmain.sh @@ -3839,7 +3839,13 @@ extern \"C\" { fi # Try sorting and uniquifying the output. - if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then + if grep -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then : else grep -v "^: " < "$nlist" > "$nlist"S