[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commits] r24734 - in /fsf/trunk/libc: ./ malloc/ nptl/ nptl/sysdeps/unix/sysv/linux/i386/i486/ ports/ ports/sysdeps/m68k/m680x0/fpu/ ...
- To: commits@xxxxxxxxxx
- Subject: [Commits] r24734 - in /fsf/trunk/libc: ./ malloc/ nptl/ nptl/sysdeps/unix/sysv/linux/i386/i486/ ports/ ports/sysdeps/m68k/m680x0/fpu/ ...
- From: eglibc@xxxxxxxxxx
- Date: Tue, 10 Dec 2013 08:02:13 -0000
Author: eglibc
Date: Tue Dec 10 00:02:12 2013
New Revision: 24734
Log:
Import glibc-mainline for 2013-12-10
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/NEWS
fsf/trunk/libc/Versions.def
fsf/trunk/libc/malloc/arena.c
fsf/trunk/libc/malloc/hooks.c
fsf/trunk/libc/malloc/malloc.c
fsf/trunk/libc/nptl/ChangeLog
fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
fsf/trunk/libc/ports/ChangeLog.m68k
fsf/trunk/libc/ports/sysdeps/m68k/m680x0/fpu/s_nextafterl.c
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/nptl/lowlevellock.h
fsf/trunk/libc/sysdeps/powerpc/fpu/libm-test-ulps
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Tue Dec 10 00:02:12 2013
@@ -1,3 +1,26 @@
+2013-12-09 Adhemerval Zanella <azanella@xxxxxxxxxxxxxxxxxx>
+
+ * Versions.def (libm): Add GLIBC_2.3 and GLIBC_2.19.
+
+2013-12-09 OndÃÂej BÃÂlka <neleai@xxxxxxxxx>
+
+ * malloc/malloc.c (alloc_perturb, free_perturb): Convert from
+ macro to a function. Check for zero perturb_byte.
+ (_int_malloc, _int_free): Remove zero perturb_byte checks.
+
+2013-12-09 OndÃÂej BÃÂlka <neleai@xxxxxxxxx>
+
+ * malloc/malloc.c: (force_reg): Remove.
+ (__malloc_assert, __libc_malloc, __libc_free, __libc_realloc,
+ _mid_memalign, __libc_calloc, sysmalloc, systrim): Replace
+ force_reg by atomic_forced_read.
+ * malloc/arena.c (ptmalloc_init): Likewise.
+ * malloc/hooks.c (top_check): Likewise.
+
+2013-12-09 Adhemerval Zanella <azanella@xxxxxxxxxxxxxxxxxx>
+
+ * sysdeps/powerpc/fpu/libm-test-ulps: Update.
+
2013-12-09 Markus Trippelsdorf <markus@xxxxxxxxxxxxxxx>
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Tue Dec 10 00:02:12 2013
@@ -15,13 +15,13 @@
15089, 15218, 15268, 15277, 15308, 15362, 15374, 15400, 15425, 15427,
15483, 15522, 15531, 15532, 15601, 15608, 15609, 15610, 15632, 15640,
15670, 15672, 15680, 15681, 15723, 15734, 15735, 15736, 15748, 15749,
- 15754, 15760, 15763, 15764, 15797, 15799, 15825, 15844, 15847, 15849,
- 15855, 15856, 15857, 15859, 15867, 15886, 15887, 15890, 15892, 15893,
- 15895, 15897, 15901, 15905, 15909, 15915, 15917, 15919, 15921, 15923,
- 15939, 15941, 15948, 15963, 15966, 15985, 15988, 15997, 16032, 16034,
- 16036, 16037, 16038, 16041, 16055, 16071, 16072, 16074, 16077, 16078,
- 16103, 16112, 16143, 16144, 16146, 16150, 16151, 16153, 16167, 16172,
- 16195, 16214, 16245, 16271, 16274, 16283, 16289.
+ 15754, 15760, 15763, 15764, 15797, 15799, 15825, 15843, 15844, 15847,
+ 15849, 15855, 15856, 15857, 15859, 15867, 15886, 15887, 15890, 15892,
+ 15893, 15895, 15897, 15901, 15905, 15909, 15915, 15917, 15919, 15921,
+ 15923, 15939, 15941, 15948, 15963, 15966, 15985, 15988, 15997, 16032,
+ 16034, 16036, 16037, 16038, 16041, 16055, 16071, 16072, 16074, 16077,
+ 16078, 16103, 16112, 16143, 16144, 16146, 16150, 16151, 16153, 16167,
+ 16172, 16195, 16214, 16245, 16271, 16274, 16283, 16289.
* The public headers no longer use __unused nor __block. This change is to
support compiling programs that are derived from BSD sources and use
Modified: fsf/trunk/libc/Versions.def
==============================================================================
--- fsf/trunk/libc/Versions.def (original)
+++ fsf/trunk/libc/Versions.def Tue Dec 10 00:02:12 2013
@@ -56,10 +56,12 @@
GLIBC_2.1
GLIBC_2.2
GLIBC_2.2.3
+ GLIBC_2.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.15
GLIBC_2.18
+ GLIBC_2.19
}
libnsl {
GLIBC_2.0
Modified: fsf/trunk/libc/malloc/arena.c
==============================================================================
--- fsf/trunk/libc/malloc/arena.c (original)
+++ fsf/trunk/libc/malloc/arena.c Tue Dec 10 00:02:12 2013
@@ -457,7 +457,7 @@
if (check_action != 0)
__malloc_check_init();
}
- void (*hook) (void) = force_reg (__malloc_initialize_hook);
+ void (*hook) (void) = atomic_forced_read (__malloc_initialize_hook);
if (hook != NULL)
(*hook)();
__malloc_initialized = 1;
Modified: fsf/trunk/libc/malloc/hooks.c
==============================================================================
--- fsf/trunk/libc/malloc/hooks.c (original)
+++ fsf/trunk/libc/malloc/hooks.c Tue Dec 10 00:02:12 2013
@@ -236,7 +236,7 @@
return -1;
}
/* Call the `morecore' hook if necessary. */
- void (*hook) (void) = force_reg (__after_morecore_hook);
+ void (*hook) (void) = atomic_forced_read (__after_morecore_hook);
if (hook)
(*hook) ();
main_arena.system_mem = (new_brk - mp_.sbrk_base) + sbrk_size;
Modified: fsf/trunk/libc/malloc/malloc.c
==============================================================================
--- fsf/trunk/libc/malloc/malloc.c (original)
+++ fsf/trunk/libc/malloc/malloc.c Tue Dec 10 00:02:12 2013
@@ -405,13 +405,6 @@
#include <string.h>
-
-
-/* Force a value to be in a register and stop the compiler referring
- to the source (mostly memory location) again. */
-#define force_reg(val) \
- ({ __typeof (val) _v; asm ("" : "=r" (_v) : "0" (val)); _v; })
-
/*
MORECORE-related declarations. By default, rely on sbrk
@@ -1877,8 +1870,20 @@
static int perturb_byte;
-#define alloc_perturb(p, n) memset (p, (perturb_byte ^ 0xff) & 0xff, n)
-#define free_perturb(p, n) memset (p, perturb_byte & 0xff, n)
+static inline void
+alloc_perturb (char *p, size_t n)
+{
+ if (__glibc_unlikely (perturb_byte))
+ memset (p, perturb_byte ^ 0xff, n);
+}
+
+static inline void
+free_perturb (char *p, size_t n)
+{
+ if (__glibc_unlikely (perturb_byte))
+ memset (p, perturb_byte, n);
+}
+
#include <stap-probe.h>
@@ -2448,7 +2453,7 @@
if (brk != (char*)(MORECORE_FAILURE)) {
/* Call the `morecore' hook if necessary. */
- void (*hook) (void) = force_reg (__after_morecore_hook);
+ void (*hook) (void) = atomic_forced_read (__after_morecore_hook);
if (__builtin_expect (hook != NULL, 0))
(*hook) ();
} else {
@@ -2586,7 +2591,7 @@
snd_brk = (char*)(MORECORE(0));
} else {
/* Call the `morecore' hook if necessary. */
- void (*hook) (void) = force_reg (__after_morecore_hook);
+ void (*hook) (void) = atomic_forced_read (__after_morecore_hook);
if (__builtin_expect (hook != NULL, 0))
(*hook) ();
}
@@ -2740,7 +2745,7 @@
MORECORE(-extra);
/* Call the `morecore' hook if necessary. */
- void (*hook) (void) = force_reg (__after_morecore_hook);
+ void (*hook) (void) = atomic_forced_read (__after_morecore_hook);
if (__builtin_expect (hook != NULL, 0))
(*hook) ();
new_brk = (char*)(MORECORE(0));
@@ -2844,7 +2849,7 @@
void *victim;
void *(*hook) (size_t, const void *)
- = force_reg (__malloc_hook);
+ = atomic_forced_read (__malloc_hook);
if (__builtin_expect (hook != NULL, 0))
return (*hook)(bytes, RETURN_ADDRESS (0));
@@ -2876,7 +2881,7 @@
mchunkptr p; /* chunk corresponding to mem */
void (*hook) (void *, const void *)
- = force_reg (__free_hook);
+ = atomic_forced_read (__free_hook);
if (__builtin_expect (hook != NULL, 0)) {
(*hook)(mem, RETURN_ADDRESS (0));
return;
@@ -2917,7 +2922,7 @@
void* newp; /* chunk to return */
void *(*hook) (void *, size_t, const void *) =
- force_reg (__realloc_hook);
+ atomic_forced_read (__realloc_hook);
if (__builtin_expect (hook != NULL, 0))
return (*hook)(oldmem, bytes, RETURN_ADDRESS (0));
@@ -3018,7 +3023,7 @@
void *p;
void *(*hook) (size_t, size_t, const void *) =
- force_reg (__memalign_hook);
+ atomic_forced_read (__memalign_hook);
if (__builtin_expect (hook != NULL, 0))
return (*hook)(alignment, bytes, address);
@@ -3128,7 +3133,7 @@
}
void *(*hook) (size_t, const void *) =
- force_reg (__malloc_hook);
+ atomic_forced_read (__malloc_hook);
if (__builtin_expect (hook != NULL, 0)) {
sz = bytes;
mem = (*hook)(sz, RETURN_ADDRESS (0));
@@ -3294,8 +3299,7 @@
}
check_remalloced_chunk(av, victim, nb);
void *p = chunk2mem(victim);
- if (__builtin_expect (perturb_byte, 0))
- alloc_perturb (p, bytes);
+ alloc_perturb (p, bytes);
return p;
}
}
@@ -3330,8 +3334,7 @@
victim->size |= NON_MAIN_ARENA;
check_malloced_chunk(av, victim, nb);
void *p = chunk2mem(victim);
- if (__builtin_expect (perturb_byte, 0))
- alloc_perturb (p, bytes);
+ alloc_perturb (p, bytes);
return p;
}
}
@@ -3410,8 +3413,7 @@
check_malloced_chunk(av, victim, nb);
void *p = chunk2mem(victim);
- if (__builtin_expect (perturb_byte, 0))
- alloc_perturb (p, bytes);
+ alloc_perturb (p, bytes);
return p;
}
@@ -3427,8 +3429,7 @@
victim->size |= NON_MAIN_ARENA;
check_malloced_chunk(av, victim, nb);
void *p = chunk2mem(victim);
- if (__builtin_expect (perturb_byte, 0))
- alloc_perturb (p, bytes);
+ alloc_perturb (p, bytes);
return p;
}
@@ -3552,8 +3553,7 @@
}
check_malloced_chunk(av, victim, nb);
void *p = chunk2mem(victim);
- if (__builtin_expect (perturb_byte, 0))
- alloc_perturb (p, bytes);
+ alloc_perturb (p, bytes);
return p;
}
}
@@ -3656,8 +3656,7 @@
}
check_malloced_chunk(av, victim, nb);
void *p = chunk2mem(victim);
- if (__builtin_expect (perturb_byte, 0))
- alloc_perturb (p, bytes);
+ alloc_perturb (p, bytes);
return p;
}
}
@@ -3691,8 +3690,7 @@
check_malloced_chunk(av, victim, nb);
void *p = chunk2mem(victim);
- if (__builtin_expect (perturb_byte, 0))
- alloc_perturb (p, bytes);
+ alloc_perturb (p, bytes);
return p;
}
@@ -3712,7 +3710,7 @@
*/
else {
void *p = sysmalloc(nb, av);
- if (p != NULL && __builtin_expect (perturb_byte, 0))
+ if (p != NULL)
alloc_perturb (p, bytes);
return p;
}
@@ -3805,8 +3803,7 @@
}
}
- if (__builtin_expect (perturb_byte, 0))
- free_perturb (chunk2mem(p), size - 2 * SIZE_SZ);
+ free_perturb (chunk2mem(p), size - 2 * SIZE_SZ);
set_fastchunks(av);
unsigned int idx = fastbin_index(size);
@@ -3888,8 +3885,7 @@
goto errout;
}
- if (__builtin_expect (perturb_byte, 0))
- free_perturb (chunk2mem(p), size - 2 * SIZE_SZ);
+ free_perturb (chunk2mem(p), size - 2 * SIZE_SZ);
/* consolidate backward */
if (!prev_inuse(p)) {
Modified: fsf/trunk/libc/nptl/ChangeLog
==============================================================================
--- fsf/trunk/libc/nptl/ChangeLog (original)
+++ fsf/trunk/libc/nptl/ChangeLog Tue Dec 10 00:02:12 2013
@@ -1,3 +1,10 @@
+2013-12-09 Andreas Schwab <schwab@xxxxxxx>
+
+ [BZ #15843]
+ * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
+ (__pthread_cond_timedwait): Remove wrong cfi_adjust_cfa_offset
+ before __condvar_tw_cleanup2 label.
+
2013-12-04 Ulrich Weigand <Ulrich.Weigand@xxxxxxxxxx>
* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S Tue Dec 10 00:02:12 2013
@@ -505,9 +505,9 @@
#endif
call __lll_unlock_wake
jmp 11b
+
+#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
cfi_adjust_cfa_offset(-FRAME_SIZE)
-
-#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
.Lreltmo:
/* Get internal lock. */
movl $1, %edx
@@ -742,7 +742,6 @@
# endif
call __lll_lock_wait
jmp 106b
- cfi_adjust_cfa_offset(-FRAME_SIZE)
#endif
.size __pthread_cond_timedwait, .-__pthread_cond_timedwait
Modified: fsf/trunk/libc/ports/ChangeLog.m68k
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.m68k (original)
+++ fsf/trunk/libc/ports/ChangeLog.m68k Tue Dec 10 00:02:12 2013
@@ -1,9 +1,25 @@
+2013-12-10 Andreas Schwab <schwab@xxxxxxxxxxxxxx>
+
+ * sysdeps/m68k/m680x0/fpu/s_nextafterl.c (__nextafterl): Use
+ math_force_eval.
+
+ * sysdeps/unix/sysv/linux/m68k/nptl/lowlevellock.h
+ (FUTEX_WAIT_REQEUE_PI, FUTEX_CMP_REQEUE_PI)
+ (lll_futex_wait_requeue_pi, lll_futex_timed_wait_requeue_pi)
+ (lll_futex_cmp_requeue_pi): Define.
+
+ * sysdeps/unix/sysv/linux/m68k/kernel-features.h
+ (__ASSUME_REQUEUE_PI, __ASSUME_SET_ROBUST_LIST): Undefine before
+ 3.10.
+
2013-11-28 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
* sysdeps/m68k/fpu/fegetround.c (fegetround): Use libm_hidden_def.
2013-11-26 OndÃÂej BÃÂlka <neleai@xxxxxxxxx>
- * sysdeps/unix/sysv/linux/m68k/bits/stat.h: Use __glibc_reserved instead __unused.
+
+ * sysdeps/unix/sysv/linux/m68k/bits/stat.h: Use __glibc_reserved
+ instead of __unused.
2013-10-30 Mike Frysinger <vapier@xxxxxxxxxx>
Modified: fsf/trunk/libc/ports/sysdeps/m68k/m680x0/fpu/s_nextafterl.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/m68k/m680x0/fpu/s_nextafterl.c (original)
+++ fsf/trunk/libc/ports/sysdeps/m68k/m680x0/fpu/s_nextafterl.c Tue Dec 10 00:02:12 2013
@@ -46,7 +46,8 @@
if((ix|hx|lx)==0) { /* x == 0 */
SET_LDOUBLE_WORDS(x,esy&0x8000,0,1);/* return +-minsubnormal */
y = x*x;
- if(y==x) return y; else return x; /* raise underflow flag */
+ math_force_eval (y); /* raise underflow flag */
+ return x;
}
if(esx>=0) { /* x > 0 */
if(esx>esy||((esx==esy) && (hx>hy||((hx==hy)&&(lx>ly))))) {
@@ -91,10 +92,7 @@
if(esy==0x7fff) return x+x; /* overflow */
if(esy==0 && (hx & 0x80000000) == 0) { /* underflow */
y = x*x;
- if(y!=x) { /* raise underflow flag */
- SET_LDOUBLE_WORDS(y,esx,hx,lx);
- return y;
- }
+ math_force_eval (y); /* raise underflow flag */
}
SET_LDOUBLE_WORDS(x,esx,hx,lx);
return x;
Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h Tue Dec 10 00:02:12 2013
@@ -47,3 +47,9 @@
# undef __ASSUME_PSELECT
# undef __ASSUME_PPOLL
#endif
+
+/* No support for PI futexes or robust mutexes before 3.10 for m68k. */
+#if __LINUX_KERNEL_VERSION < 0x030a00
+# undef __ASSUME_REQUEUE_PI
+# undef __ASSUME_SET_ROBUST_LIST
+#endif
Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/nptl/lowlevellock.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/nptl/lowlevellock.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/nptl/lowlevellock.h Tue Dec 10 00:02:12 2013
@@ -38,6 +38,8 @@
#define FUTEX_TRYLOCK_PI 8
#define FUTEX_WAIT_BITSET 9
#define FUTEX_WAKE_BITSET 10
+#define FUTEX_WAIT_REQEUE_PI 11
+#define FUTEX_CMP_REQEUE_PI 12
#define FUTEX_PRIVATE_FLAG 128
#define FUTEX_CLOCK_REALTIME 256
@@ -142,6 +144,33 @@
INTERNAL_SYSCALL_ERROR_P (__ret, __err); \
})
+/* Priority Inheritance support. */
+#define lll_futex_wait_requeue_pi(futexp, val, mutex, private) \
+ lll_futex_timed_wait_requeue_pi (futexp, val, NULL, 0, mutex, private)
+
+#define lll_futex_timed_wait_requeue_pi(futexp, val, timespec, clockbit, \
+ mutex, private) \
+ ({ \
+ INTERNAL_SYSCALL_DECL (__err); \
+ long int __ret; \
+ int __op = FUTEX_WAIT_REQUEUE_PI | clockbit; \
+ \
+ __ret = INTERNAL_SYSCALL (futex, __err, 5, (futexp), \
+ __lll_private_flag (__op, private), \
+ (val), (timespec), mutex); \
+ __ret; \
+ })
+
+#define lll_futex_cmp_requeue_pi(futexp, nr_wake, nr_move, mutex, val, priv) \
+ ({ \
+ INTERNAL_SYSCALL_DECL (__err); \
+ long int __ret; \
+ __ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp), \
+ __lll_private_flag (FUTEX_CMP_REQUEUE_PI, priv),\
+ (nr_wake), (nr_move), (mutex), (val)); \
+ INTERNAL_SYSCALL_ERROR_P (__ret, __err); \
+ })
+
#define lll_trylock(lock) \
atomic_compare_and_exchange_val_acq (&(lock), 1, 0)
Modified: fsf/trunk/libc/sysdeps/powerpc/fpu/libm-test-ulps
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/fpu/libm-test-ulps (original)
+++ fsf/trunk/libc/sysdeps/powerpc/fpu/libm-test-ulps Tue Dec 10 00:02:12 2013
@@ -7075,6 +7075,17 @@
Test "gamma (-0x1p-5)":
double: 1
idouble: 1
+Test "gamma (-0x2p-16)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "gamma (-0x4p-12)":
+double: 1
+idouble: 1
+Test "gamma (-0x8p-8)":
+double: 1
+idouble: 1
Test "gamma (0.7)":
double: 1
float: 1
@@ -7084,6 +7095,18 @@
float: 1
ifloat: 1
Test "gamma (0x1p-30)":
+double: 1
+idouble: 1
+Test "gamma (0x4p-12)":
+float: 1
+ifloat: 1
+Test "gamma (0x4p-32)":
+double: 1
+idouble: 1
+Test "gamma (0xb.333333333333p-4)":
+double: 1
+idouble: 1
+Test "gamma (0xb.33333p-4)":
double: 1
idouble: 1
Test "gamma (1.2)":
@@ -7473,6 +7496,17 @@
Test "lgamma (-0x1p-5)":
double: 1
idouble: 1
+Test "lgamma (-0x2p-16)":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "lgamma (-0x4p-12)":
+double: 1
+idouble: 1
+Test "lgamma (-0x8p-8)":
+double: 1
+idouble: 1
Test "lgamma (0.7)":
double: 1
float: 1
@@ -7482,6 +7516,18 @@
float: 1
ifloat: 1
Test "lgamma (0x1p-30)":
+double: 1
+idouble: 1
+Test "lgamma (0x4p-12)":
+float: 1
+ifloat: 1
+Test "lgamma (0x4p-32)":
+double: 1
+idouble: 1
+Test "lgamma (0xb.333333333333p-4)":
+double: 1
+idouble: 1
+Test "lgamma (0xb.33333p-4)":
double: 1
idouble: 1
Test "lgamma (1.2)":
_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits