From 71b1675eed1792430695bbd09e4882569c45e16a Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 17 Feb 2004 07:08:51 +0000 Subject: Update. * stdlib/test-canon.c (do_test): Test realpath(,NULL) in the loop as well. --- ChangeLog | 3 +++ nptl/ChangeLog | 6 ++++++ .../unix/sysv/linux/i386/i486/pthread_cond_timedwait.S | 4 ++++ stdlib/test-canon.c | 13 ++++++++++++- 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index a574af7..2a3109b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2004-02-16 Ulrich Drepper + * stdlib/test-canon.c (do_test): Test realpath(,NULL) in the loop + as well. + * stdlib/canonicalize.c (__realpath): Remove unnecessary copy operations. diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 677e334..2e18bfb 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,9 @@ +2004-02-16 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S + (__condvar_tw_cleanup): Little optimization. + Patch by Dinakar Guniguntala . + 2004-02-16 Steven Munroe * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: Replace libc with diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S index 1783095..6d1a325 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S @@ -401,7 +401,11 @@ __condvar_tw_cleanup: adcl $0, woken_seq+4(%ebx) LOCK +#if cond_lock == 0 + subl $1, (%ebx) +#else subl $1, cond_lock(%ebx) +#endif je 2f #if cond_lock == 0 diff --git a/stdlib/test-canon.c b/stdlib/test-canon.c index 6b7375a..f070df7 100644 --- a/stdlib/test-canon.c +++ b/stdlib/test-canon.c @@ -1,5 +1,5 @@ /* Test program for returning the canonical absolute name of a given file. - Copyright (C) 1996, 1997, 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 2000, 2002, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by David Mosberger . @@ -186,6 +186,17 @@ do_test (int argc, char ** argv) ++errors; continue; } + + char *result2 = realpath (tests[i].in, NULL); + if ((result2 == NULL && result != NULL) + || (result2 != NULL && strcmp (result, result2) != 0)) + { + printf ("\ +%s: realpath(..., NULL) produced different result than realpath(..., buf): '%s' vs '%s'\n", + argv[0], result2, result); + ++errors; + } + free (result2); } getcwd (buf, sizeof(buf)); -- cgit v1.1