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
This commit is contained in:
Paul Eggert 2006-07-06 23:24:51 +00:00 committed by Mike Stump
parent 525dc87d06
commit 27b56ba6cc
6 changed files with 50 additions and 5 deletions

View File

@ -1,3 +1,12 @@
2006-07-06 Paul Eggert <eggert@cs.ucla.edu>
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 <uweigand@de.ibm.com>
* MAINTAINERS (Various Maintainers): Add myself as reload maintainer.

View File

@ -1,3 +1,12 @@
2006-07-06 Paul Eggert <eggert@cs.ucla.edu>
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 <jwlemke@wasabisystems.com>
* dg-cmp-results.sh: New script for comparing DejaGNU logs.

View File

@ -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 >/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

View File

@ -1,3 +1,13 @@
2006-07-06 Paul Eggert <eggert@cs.ucla.edu>
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 <dvorakz@suse.cz>
* tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in argument name.

View File

@ -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 >/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=$$?; \
;; \

View File

@ -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 >/dev/null 2>&1; then
sort -k 3
else
sort +2
fi |
uniq > "$nlist"S; then
:
else
grep -v "^: " < "$nlist" > "$nlist"S