Skip to content

Commit

Permalink
[BZ #955]
Browse files Browse the repository at this point in the history
2005-05-19  Richard Henderson  <rth@redhat.com>
	* sysdeps/unix/clock_gettime.c (clock_gettime): Fix typo around
	CLOCK_REALTIME.

	* sysdeps/ia64/bits/atomic.h (__arch_compare_and_exchange_bool_32_acq,
	__arch_compare_and_exchange_bool_64_acq,
	__arch_compare_and_exchange_val_32_acq,
	__arch_compare_and_exchange_val_64_acq, atomic_exchange_and_add):
	Use __sync builtin without _si or _di suffix.

2005-05-19  Jakub Jelinek  <jakub@redhat.com>

	[BZ #955]
	* iconvdata/ibm939.c (BODY): Avoid segfaults with input characters
	<UFFFF> and above.

2005-05-17  Andreas Schwab  <schwab@suse.de>

	* sysdeps/unix/sysv/linux/clock_getcpuclockid.c
	(clock_getcpuclockid): Always return a defined value.
  • Loading branch information
Ulrich Drepper committed May 21, 2005
1 parent 5722153 commit 363dd97
Show file tree
Hide file tree
Showing 8 changed files with 50 additions and 31 deletions.
22 changes: 22 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
2005-05-19 Richard Henderson <rth@redhat.com>

* sysdeps/unix/clock_gettime.c (clock_gettime): Fix typo around
CLOCK_REALTIME.

* sysdeps/ia64/bits/atomic.h (__arch_compare_and_exchange_bool_32_acq,
__arch_compare_and_exchange_bool_64_acq,
__arch_compare_and_exchange_val_32_acq,
__arch_compare_and_exchange_val_64_acq, atomic_exchange_and_add):
Use __sync builtin without _si or _di suffix.

2005-05-19 Jakub Jelinek <jakub@redhat.com>

[BZ #955]
* iconvdata/ibm939.c (BODY): Avoid segfaults with input characters
<UFFFF> and above.

2005-05-17 Andreas Schwab <schwab@suse.de>

* sysdeps/unix/sysv/linux/clock_getcpuclockid.c
(clock_getcpuclockid): Always return a defined value.

2005-05-17 Neal H. Walfield <neal@gnu.org>

* sysdeps/posix/getaddrinfo.c (gaih_local): Check [_HAVE_SA_LEN]
Expand Down
18 changes: 8 additions & 10 deletions iconvdata/ibm939.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* Conversion to and from IBM939.
Copyright (C) 2000-2002 Free Software Foundation, Inc.
Copyright (C) 2000-2002, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Masahide Washizawa <washi@yamato.ibm.co.jp>, 2000.
Expand Down Expand Up @@ -200,29 +200,27 @@ enum
if (__builtin_expect (ch >= 0xffff, 0)) \
{ \
UNICODE_TAG_HANDLER (ch, 4); \
rp1 = NULL; \
rp2 = NULL; \
goto ibm939_invalid_char; \
} \
else \
while (ch > rp1->end) \
++rp1; \
\
while (ch > rp1->end) \
++rp1; \
\
/* Use the UCS4 table for single byte. */ \
if (__builtin_expect (rp1 == NULL, 0) \
|| __builtin_expect (ch < rp1->start, 0) \
if (__builtin_expect (ch < rp1->start, 0) \
|| (cp = __ucs4_to_ibm939sb[ch + rp1->idx], \
__builtin_expect (cp[0], L'\1') == L'\0' && ch != '\0')) \
{ \
/* Use the UCS4 table for double byte. */ \
while (ch > rp2->end) \
++rp2; \
\
if (__builtin_expect (rp2 == NULL, 0) \
|| __builtin_expect (ch < rp2->start, 0) \
if (__builtin_expect (ch < rp2->start, 0) \
|| (cp = __ucs4_to_ibm939db[ch + rp2->idx], \
__builtin_expect (cp[0], L'\1')==L'\0' && ch != '\0')) \
{ \
/* This is an illegal character. */ \
ibm939_invalid_char: \
STANDARD_TO_LOOP_ERR_HANDLER (4); \
} \
else \
Expand Down
4 changes: 2 additions & 2 deletions linuxthreads/sysdeps/ia64/pspinlock.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ __pthread_spin_lock (pthread_spinlock_t *lock)
{
int *p = (int *) lock;

while (__builtin_expect (__sync_val_compare_and_swap_si (p, 0, 1), 0))
while (__builtin_expect (__sync_val_compare_and_swap (p, 0, 1), 0))
{
/* Spin without using the atomic instruction. */
do
Expand All @@ -46,7 +46,7 @@ weak_alias (__pthread_spin_lock, pthread_spin_lock)
int
__pthread_spin_trylock (pthread_spinlock_t *lock)
{
return __sync_val_compare_and_swap_si ((int *) lock, 0, 1) == 0 ? 0 : EBUSY;
return __sync_val_compare_and_swap ((int *) lock, 0, 1) == 0 ? 0 : EBUSY;
}
weak_alias (__pthread_spin_trylock, pthread_spin_trylock)

Expand Down
6 changes: 6 additions & 0 deletions nptl/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
2005-05-19 Richard Henderson <rth@redhat.com>

* sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use
__sync_val_compare_and_swap, not explicit _si variant.
* sysdeps/ia64/pthread_spin_trylock.c (pthread_spin_trylock): Likewise.

2005-05-03 Ulrich Drepper <drepper@redhat.com>

[BZ #915]
Expand Down
2 changes: 1 addition & 1 deletion nptl/sysdeps/ia64/pthread_spin_lock.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ pthread_spin_lock (lock)
{
int *p = (int *) lock;

while (__builtin_expect (__sync_val_compare_and_swap_si (p, 0, 1), 0))
while (__builtin_expect (__sync_val_compare_and_swap (p, 0, 1), 0))
{
/* Spin without using the atomic instruction. */
do
Expand Down
2 changes: 1 addition & 1 deletion nptl/sysdeps/ia64/pthread_spin_trylock.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@ int
pthread_spin_trylock (lock)
pthread_spinlock_t *lock;
{
return __sync_val_compare_and_swap_si ((int *) lock, 0, 1) == 0 ? 0 : EBUSY;
return __sync_val_compare_and_swap ((int *) lock, 0, 1) == 0 ? 0 : EBUSY;
}
23 changes: 8 additions & 15 deletions sysdeps/ia64/bits/atomic.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,12 @@ typedef uintmax_t uatomic_max_t;
(abort (), 0)

#define __arch_compare_and_exchange_bool_32_acq(mem, newval, oldval) \
(!__sync_bool_compare_and_swap_si ((void *) (mem), (int) (long) (oldval), \
(int) (long) (newval)))
(!__sync_bool_compare_and_swap ((mem), (int) (long) (oldval), \
(int) (long) (newval)))

#define __arch_compare_and_exchange_bool_64_acq(mem, newval, oldval) \
(!__sync_bool_compare_and_swap_di ((void *) (mem), (long) (oldval), \
(long) (newval)))
(!__sync_bool_compare_and_swap ((mem), (long) (oldval), \
(long) (newval)))

#define __arch_compare_and_exchange_val_8_acq(mem, newval, oldval) \
(abort (), (__typeof (*mem)) 0)
Expand All @@ -66,12 +66,11 @@ typedef uintmax_t uatomic_max_t;
(abort (), (__typeof (*mem)) 0)

#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
__sync_val_compare_and_swap_si ((void *) (mem), (int) (long) (oldval), \
(int) (long) (newval))
__sync_val_compare_and_swap ((mem), (int) (long) (oldval), \
(int) (long) (newval))

#define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
__sync_val_compare_and_swap_di ((void *) (mem), (long) (oldval), \
(long) (newval))
__sync_val_compare_and_swap ((mem), (long) (oldval), (long) (newval))

/* Atomically store newval and return the old value. */
#define atomic_exchange_acq(mem, value) \
Expand All @@ -80,15 +79,9 @@ typedef uintmax_t uatomic_max_t;
#define atomic_exchange_rel(mem, value) \
(__sync_synchronize (), __sync_lock_test_and_set (mem, value))


#define atomic_exchange_and_add(mem, value) \
({ __typeof (*mem) __result; \
if (sizeof (*mem) == 4) \
__result = __sync_fetch_and_add_si ((void *) (mem), (int) (value)); \
else if (sizeof (*mem) == 8) \
__result = __sync_fetch_and_add_di ((void *) (mem), (long) (value)); \
else \
abort (); \
__result = __sync_fetch_and_add ((mem), (int) (value)); \
__result; })

#define atomic_decrement_if_positive(mem) \
Expand Down
4 changes: 2 additions & 2 deletions sysdeps/unix/clock_gettime.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* clock_gettime -- Get the current time from a POSIX clockid_t. Unix version.
Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc.
Copyright (C) 1999-2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
Expand Down Expand Up @@ -100,7 +100,7 @@ clock_gettime (clockid_t clock_id, struct timespec *tp)
SYSDEP_GETTIME;
#endif

#ifndef HANDLED_REALTIME
#ifdef HANDLED_REALTIME
case CLOCK_REALTIME:
HANDLE_REALTIME;
break;
Expand Down

0 comments on commit 363dd97

Please sign in to comment.