2002-02-07  Andreas Schwab  <schwab@suse.de>

	* configure.in: Fix check for -zcombreloc.

2002-02-06  H.J. Lu  <hjl@gnu.org>

	* config.h.in (HAVE_BUILTIN_MEMSET): New.
	* configure.in: Check if __builtin_memset really works.
	* elf/rtld.c (_dl_start): Check HAVE_BUILTIN_MEMSET instead of
	__GNUC_PREREQ (2, 96) before using __builtin_memset.

2002-02-06  Jakub Jelinek  <jakub@redhat.com>

	* io/bug-ftw3.c (main): Don't try the test if root.

2002-02-06  Martin Schwidefsky  <schwidefsky@de.ibm.com>

	* sysdeps/unix/sysv/linux/s390/brk.c (__brk): Correct inline assembly
	constraints.
	* sysdeps/unix/sysv/linux/s390/s390-32/bits/resource.h (RLIMIT_LOCKS):
	Add RLIMIT_LOCKS and adjust RLIMIT_NLIMITS.
	* sysdeps/unix/sysv/linux/s390/s390-64/bits/resource.h (RLIMIT_LOCKS):
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/clone.S (clone): Make clone
	a weak alias for __clone.
	* sysdeps/unix/sysv/linux/s390/s390-64/clone.S (clone): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h: Fix typo.
	* sysdeps/unix/sysv/linux/s390/s390-64/Makefile: Add framestate.
	* sysdeps/unix/sysv/linux/s390/s390-64/Versions: New file.
	* sysdeps/unix/sysv/linux/s390/s390-64/mmap.S (__mmap64): Make __mmap
	a weak alias for __mmap64.

	* sysdeps/mips/atomicity.h (exchange_and_add): Not use branch likely.
	* sysdeps/unix/sysv/linux/mips/sys/tas.h (_test_and_set): Likewise.
	* sysdeps/generic/dl-tls.c: Don't read TLS header if TLS is not needed.
This commit is contained in:
Ulrich Drepper 2002-02-07 17:54:45 +00:00
parent d4468ab788
commit d555194cb3
16 changed files with 188 additions and 67 deletions

View File

@ -1,14 +1,46 @@
2002-02-07 Andreas Schwab <schwab@suse.de>
* configure.in: Fix check for -zcombreloc.
2002-02-06 H.J. Lu <hjl@gnu.org>
* config.h.in (HAVE_BUILTIN_MEMSET): New.
* configure.in: Check if __builtin_memset really works.
* elf/rtld.c (_dl_start): Check HAVE_BUILTIN_MEMSET instead of
__GNUC_PREREQ (2, 96) before using __builtin_memset.
2002-02-06 Jakub Jelinek <jakub@redhat.com>
* io/bug-ftw3.c (main): Don't try the test if root.
2002-02-06 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/unix/sysv/linux/s390/brk.c (__brk): Correct inline assembly
constraints.
* sysdeps/unix/sysv/linux/s390/s390-32/bits/resource.h (RLIMIT_LOCKS):
Add RLIMIT_LOCKS and adjust RLIMIT_NLIMITS.
* sysdeps/unix/sysv/linux/s390/s390-64/bits/resource.h (RLIMIT_LOCKS):
Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/clone.S (clone): Make clone
a weak alias for __clone.
* sysdeps/unix/sysv/linux/s390/s390-64/clone.S (clone): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h: Fix typo.
* sysdeps/unix/sysv/linux/s390/s390-64/Makefile: Add framestate.
* sysdeps/unix/sysv/linux/s390/s390-64/Versions: New file.
* sysdeps/unix/sysv/linux/s390/s390-64/mmap.S (__mmap64): Make __mmap
a weak alias for __mmap64.
2002-02-05 H.J. Lu <hjl@gnu.org> 2002-02-05 H.J. Lu <hjl@gnu.org>
* sysdeps/mips/atomicity.h (exchange_and_add): Not use branch * sysdeps/mips/atomicity.h (exchange_and_add): Not use branch likely.
likely.
(atomic_add): Likewise. (atomic_add): Likewise.
(compare_and_swap): Likewise. (compare_and_swap): Likewise.
* sysdeps/unix/sysv/linux/mips/sys/tas.h (_test_and_set): * sysdeps/unix/sysv/linux/mips/sys/tas.h (_test_and_set): Likewise.
Likewise.
2002-02-07 Ulrich Drepper <drepper@redhat.com> 2002-02-07 Ulrich Drepper <drepper@redhat.com>
* sysdeps/generic/dl-tls.c: Don't read TLS header if TLS is not needed.
* sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Account for * sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Account for
alignment of the TCB and store total size and alignment of static alignment of the TCB and store total size and alignment of static
TLS block in _dl_tls_static_size and _dl_tls_static_align. TLS block in _dl_tls_static_size and _dl_tls_static_align.

View File

@ -85,6 +85,9 @@
/* Define if the compiler supports __builtin_expect. */ /* Define if the compiler supports __builtin_expect. */
#undef HAVE_BUILTIN_EXPECT #undef HAVE_BUILTIN_EXPECT
/* Define if the compiler supports __builtin_memset. */
#undef HAVE_BUILTIN_MEMSET
/* Define if the regparm attribute shall be used for local functions /* Define if the regparm attribute shall be used for local functions
(gcc on ix86 only). */ (gcc on ix86 only). */
#undef USE_REGPARMS #undef USE_REGPARMS

123
configure vendored
View File

@ -2897,12 +2897,13 @@ if eval "test \"`echo '$''{'libc_cv_z_combreloc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.c <<EOF cat > conftest.c <<EOF
extern int bar (void); extern int bar (int);
int foo (void) { return bar (); } extern int mumble;
int foo (void) { return bar (mumble); }
EOF EOF
if { ac_try='${CC-cc} -shared -o conftest.so conftest.c if { ac_try='${CC-cc} -shared -o conftest.so conftest.c
-nostdlib -nostartfiles -nostdlib -nostartfiles
-Wl,-z,combreloc 1>&5'; { (eval echo configure:2906: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } -Wl,-z,combreloc 1>&5'; { (eval echo configure:2907: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
then then
if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
libc_cv_z_combreloc=yes libc_cv_z_combreloc=yes
@ -2927,12 +2928,12 @@ fi
if test $elf != yes; then if test $elf != yes; then
echo $ac_n "checking for .init and .fini sections""... $ac_c" 1>&6 echo $ac_n "checking for .init and .fini sections""... $ac_c" 1>&6
echo "configure:2931: checking for .init and .fini sections" >&5 echo "configure:2932: checking for .init and .fini sections" >&5
if eval "test \"`echo '$''{'libc_cv_have_initfini'+set}'`\" = set"; then if eval "test \"`echo '$''{'libc_cv_have_initfini'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 2936 "configure" #line 2937 "configure"
#include "confdefs.h" #include "confdefs.h"
int main() { int main() {
@ -2941,7 +2942,7 @@ asm (".section .init");
asm ("${libc_cv_dot_text}"); asm ("${libc_cv_dot_text}");
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:2945: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:2946: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
libc_cv_have_initfini=yes libc_cv_have_initfini=yes
else else
@ -2964,7 +2965,7 @@ fi
if test $elf = yes -a $gnu_ld = yes; then if test $elf = yes -a $gnu_ld = yes; then
echo $ac_n "checking whether cc puts quotes around section names""... $ac_c" 1>&6 echo $ac_n "checking whether cc puts quotes around section names""... $ac_c" 1>&6
echo "configure:2968: checking whether cc puts quotes around section names" >&5 echo "configure:2969: checking whether cc puts quotes around section names" >&5
if eval "test \"`echo '$''{'libc_cv_have_section_quotes'+set}'`\" = set"; then if eval "test \"`echo '$''{'libc_cv_have_section_quotes'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
@ -3001,19 +3002,19 @@ if test $elf = yes; then
else else
if test $ac_cv_prog_cc_works = yes; then if test $ac_cv_prog_cc_works = yes; then
echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6 echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6
echo "configure:3005: checking for _ prefix on C symbol names" >&5 echo "configure:3006: checking for _ prefix on C symbol names" >&5
if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3010 "configure" #line 3011 "configure"
#include "confdefs.h" #include "confdefs.h"
asm ("_glibc_foobar:"); asm ("_glibc_foobar:");
int main() { int main() {
glibc_foobar (); glibc_foobar ();
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3017: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:3018: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
libc_cv_asm_underscores=yes libc_cv_asm_underscores=yes
else else
@ -3028,17 +3029,17 @@ fi
echo "$ac_t""$libc_cv_asm_underscores" 1>&6 echo "$ac_t""$libc_cv_asm_underscores" 1>&6
else else
echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6 echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6
echo "configure:3032: checking for _ prefix on C symbol names" >&5 echo "configure:3033: checking for _ prefix on C symbol names" >&5
if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3037 "configure" #line 3038 "configure"
#include "confdefs.h" #include "confdefs.h"
void underscore_test(void) { void underscore_test(void) {
return; } return; }
EOF EOF
if { (eval echo configure:3042: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:3043: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if grep _underscore_test conftest* >/dev/null; then if grep _underscore_test conftest* >/dev/null; then
rm -f conftest* rm -f conftest*
libc_cv_asm_underscores=yes libc_cv_asm_underscores=yes
@ -3070,7 +3071,7 @@ if test $elf = yes; then
fi fi
echo $ac_n "checking for assembler .weak directive""... $ac_c" 1>&6 echo $ac_n "checking for assembler .weak directive""... $ac_c" 1>&6
echo "configure:3074: checking for assembler .weak directive" >&5 echo "configure:3075: checking for assembler .weak directive" >&5
if eval "test \"`echo '$''{'libc_cv_asm_weak_directive'+set}'`\" = set"; then if eval "test \"`echo '$''{'libc_cv_asm_weak_directive'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
@ -3093,7 +3094,7 @@ echo "$ac_t""$libc_cv_asm_weak_directive" 1>&6
if test $libc_cv_asm_weak_directive = no; then if test $libc_cv_asm_weak_directive = no; then
echo $ac_n "checking for assembler .weakext directive""... $ac_c" 1>&6 echo $ac_n "checking for assembler .weakext directive""... $ac_c" 1>&6
echo "configure:3097: checking for assembler .weakext directive" >&5 echo "configure:3098: checking for assembler .weakext directive" >&5
if eval "test \"`echo '$''{'libc_cv_asm_weakext_directive'+set}'`\" = set"; then if eval "test \"`echo '$''{'libc_cv_asm_weakext_directive'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
@ -3140,14 +3141,14 @@ EOF
;; ;;
hppa*linux*) hppa*linux*)
echo $ac_n "checking for assembler line separator""... $ac_c" 1>&6 echo $ac_n "checking for assembler line separator""... $ac_c" 1>&6
echo "configure:3144: checking for assembler line separator" >&5 echo "configure:3145: checking for assembler line separator" >&5
if eval "test \"`echo '$''{'libc_cv_asm_line_sep'+set}'`\" = set"; then if eval "test \"`echo '$''{'libc_cv_asm_line_sep'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.s <<EOF cat > conftest.s <<EOF
nop ; is_old_puffin nop ; is_old_puffin
EOF EOF
if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:3151: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:3152: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_asm_line_sep='!' libc_cv_asm_line_sep='!'
else else
if test -z "$enable_hacker_mode"; then if test -z "$enable_hacker_mode"; then
@ -3169,7 +3170,7 @@ EOF
esac esac
echo $ac_n "checking for ld --no-whole-archive""... $ac_c" 1>&6 echo $ac_n "checking for ld --no-whole-archive""... $ac_c" 1>&6
echo "configure:3173: checking for ld --no-whole-archive" >&5 echo "configure:3174: checking for ld --no-whole-archive" >&5
if eval "test \"`echo '$''{'libc_cv_ld_no_whole_archive'+set}'`\" = set"; then if eval "test \"`echo '$''{'libc_cv_ld_no_whole_archive'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
@ -3180,7 +3181,7 @@ __throw () {}
EOF EOF
if { ac_try='${CC-cc} $CFLAGS if { ac_try='${CC-cc} $CFLAGS
-nostdlib -nostartfiles -Wl,--no-whole-archive -nostdlib -nostartfiles -Wl,--no-whole-archive
-o conftest conftest.c 1>&5'; { (eval echo configure:3184: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then -o conftest conftest.c 1>&5'; { (eval echo configure:3185: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_ld_no_whole_archive=yes libc_cv_ld_no_whole_archive=yes
else else
libc_cv_ld_no_whole_archive=no libc_cv_ld_no_whole_archive=no
@ -3194,7 +3195,7 @@ if test $libc_cv_ld_no_whole_archive = yes; then
fi fi
echo $ac_n "checking for gcc -fexceptions""... $ac_c" 1>&6 echo $ac_n "checking for gcc -fexceptions""... $ac_c" 1>&6
echo "configure:3198: checking for gcc -fexceptions" >&5 echo "configure:3199: checking for gcc -fexceptions" >&5
if eval "test \"`echo '$''{'libc_cv_gcc_exceptions'+set}'`\" = set"; then if eval "test \"`echo '$''{'libc_cv_gcc_exceptions'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
@ -3205,7 +3206,7 @@ __throw () {}
EOF EOF
if { ac_try='${CC-cc} $CFLAGS if { ac_try='${CC-cc} $CFLAGS
-nostdlib -nostartfiles -fexceptions -nostdlib -nostartfiles -fexceptions
-o conftest conftest.c 1>&5'; { (eval echo configure:3209: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then -o conftest conftest.c 1>&5'; { (eval echo configure:3210: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_gcc_exceptions=yes libc_cv_gcc_exceptions=yes
else else
libc_cv_gcc_exceptions=no libc_cv_gcc_exceptions=no
@ -3220,14 +3221,14 @@ fi
if test "$base_machine" = alpha ; then if test "$base_machine" = alpha ; then
echo $ac_n "checking for function ..ng prefix""... $ac_c" 1>&6 echo $ac_n "checking for function ..ng prefix""... $ac_c" 1>&6
echo "configure:3224: checking for function ..ng prefix" >&5 echo "configure:3225: checking for function ..ng prefix" >&5
if eval "test \"`echo '$''{'libc_cv_gcc_alpha_ng_prefix'+set}'`\" = set"; then if eval "test \"`echo '$''{'libc_cv_gcc_alpha_ng_prefix'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.c <<\EOF cat > conftest.c <<\EOF
foo () { } foo () { }
EOF EOF
if { ac_try='${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null'; { (eval echo configure:3231: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; if { ac_try='${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null'; { (eval echo configure:3232: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
then then
libc_cv_gcc_alpha_ng_prefix=yes libc_cv_gcc_alpha_ng_prefix=yes
else else
@ -3254,19 +3255,19 @@ if test "$host_cpu" = powerpc ; then
# Check for a bug present in at least versions 2.8.x of GCC # Check for a bug present in at least versions 2.8.x of GCC
# and versions 1.0.x of EGCS. # and versions 1.0.x of EGCS.
echo $ac_n "checking whether clobbering cr0 causes problems""... $ac_c" 1>&6 echo $ac_n "checking whether clobbering cr0 causes problems""... $ac_c" 1>&6
echo "configure:3258: checking whether clobbering cr0 causes problems" >&5 echo "configure:3259: checking whether clobbering cr0 causes problems" >&5
if eval "test \"`echo '$''{'libc_cv_c_asmcr0_bug'+set}'`\" = set"; then if eval "test \"`echo '$''{'libc_cv_c_asmcr0_bug'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3263 "configure" #line 3264 "configure"
#include "confdefs.h" #include "confdefs.h"
int tester(int x) { asm ("" : : : "cc"); return x & 123; } int tester(int x) { asm ("" : : : "cc"); return x & 123; }
int main() { int main() {
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3270: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if { (eval echo configure:3271: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest* rm -rf conftest*
libc_cv_c_asmcr0_bug='no' libc_cv_c_asmcr0_bug='no'
else else
@ -3288,12 +3289,12 @@ fi
fi fi
echo $ac_n "checking for DWARF2 unwind info support""... $ac_c" 1>&6 echo $ac_n "checking for DWARF2 unwind info support""... $ac_c" 1>&6
echo "configure:3292: checking for DWARF2 unwind info support" >&5 echo "configure:3293: checking for DWARF2 unwind info support" >&5
if eval "test \"`echo '$''{'libc_cv_gcc_dwarf2_unwind_info'+set}'`\" = set"; then if eval "test \"`echo '$''{'libc_cv_gcc_dwarf2_unwind_info'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.c <<EOF cat > conftest.c <<EOF
#line 3297 "configure" #line 3298 "configure"
static char __EH_FRAME_BEGIN__; static char __EH_FRAME_BEGIN__;
_start () _start ()
{ {
@ -3320,7 +3321,7 @@ __bzero () {}
EOF EOF
if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame_info if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame_info
-nostdlib -nostartfiles -nostdlib -nostartfiles
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:3324: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3325: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_gcc_dwarf2_unwind_info=static libc_cv_gcc_dwarf2_unwind_info=static
else else
libc_cv_gcc_dwarf2_unwind_info=no libc_cv_gcc_dwarf2_unwind_info=no
@ -3328,7 +3329,7 @@ fi
if test $libc_cv_gcc_dwarf2_unwind_info = no; then if test $libc_cv_gcc_dwarf2_unwind_info = no; then
if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame
-nostdlib -nostartfiles -nostdlib -nostartfiles
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:3332: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3333: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_gcc_dwarf2_unwind_info=yes libc_cv_gcc_dwarf2_unwind_info=yes
else else
libc_cv_gcc_dwarf2_unwind_info=no libc_cv_gcc_dwarf2_unwind_info=no
@ -3358,12 +3359,12 @@ EOF
esac esac
echo $ac_n "checking for __builtin_expect""... $ac_c" 1>&6 echo $ac_n "checking for __builtin_expect""... $ac_c" 1>&6
echo "configure:3362: checking for __builtin_expect" >&5 echo "configure:3363: checking for __builtin_expect" >&5
if eval "test \"`echo '$''{'libc_cv_gcc_builtin_expect'+set}'`\" = set"; then if eval "test \"`echo '$''{'libc_cv_gcc_builtin_expect'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.c <<EOF cat > conftest.c <<EOF
#line 3367 "configure" #line 3368 "configure"
int foo (int a) int foo (int a)
{ {
a = __builtin_expect (a, 10); a = __builtin_expect (a, 10);
@ -3371,7 +3372,7 @@ int foo (int a)
} }
EOF EOF
if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:3375: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3376: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_gcc_builtin_expect=yes libc_cv_gcc_builtin_expect=yes
else else
libc_cv_gcc_builtin_expect=no libc_cv_gcc_builtin_expect=no
@ -3387,13 +3388,41 @@ EOF
fi fi
echo $ac_n "checking for __builtin_memset""... $ac_c" 1>&6
echo "configure:3393: checking for __builtin_memset" >&5
if eval "test \"`echo '$''{'libc_cv_gcc_builtin_memset'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.c <<\EOF
void zero (void *x)
{
__builtin_memset (x, 0, 4);
}
EOF
if { ac_try='${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null'; { (eval echo configure:3403: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
then
libc_cv_gcc_builtin_memset=no
else
libc_cv_gcc_builtin_memset=yes
fi
rm -f conftest*
fi
echo "$ac_t""$libc_cv_gcc_builtin_memset" 1>&6
if test "$libc_cv_gcc_builtin_memset" = yes ; then
cat >> confdefs.h <<\EOF
#define HAVE_BUILTIN_MEMSET 1
EOF
fi
echo $ac_n "checking for local label subtraction""... $ac_c" 1>&6 echo $ac_n "checking for local label subtraction""... $ac_c" 1>&6
echo "configure:3392: checking for local label subtraction" >&5 echo "configure:3421: checking for local label subtraction" >&5
if eval "test \"`echo '$''{'libc_cv_gcc_subtract_local_labels'+set}'`\" = set"; then if eval "test \"`echo '$''{'libc_cv_gcc_subtract_local_labels'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
cat > conftest.c <<EOF cat > conftest.c <<EOF
#line 3397 "configure" #line 3426 "configure"
int foo (int a) int foo (int a)
{ {
static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 }; static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 };
@ -3406,7 +3435,7 @@ int foo (int a)
} }
EOF EOF
if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:3410: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3439: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_gcc_subtract_local_labels=yes libc_cv_gcc_subtract_local_labels=yes
else else
libc_cv_gcc_subtract_local_labels=no libc_cv_gcc_subtract_local_labels=no
@ -3423,7 +3452,7 @@ EOF
fi fi
echo $ac_n "checking for libgd""... $ac_c" 1>&6 echo $ac_n "checking for libgd""... $ac_c" 1>&6
echo "configure:3427: checking for libgd" >&5 echo "configure:3456: checking for libgd" >&5
if test "$with_gd" != "no"; then if test "$with_gd" != "no"; then
old_CFLAGS="$CFLAGS" old_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $libgd_include" CFLAGS="$CFLAGS $libgd_include"
@ -3432,14 +3461,14 @@ if test "$with_gd" != "no"; then
old_LIBS="$LIBS" old_LIBS="$LIBS"
LIBS="$LIBS -lgd -lpng -lz -lm" LIBS="$LIBS -lgd -lpng -lz -lm"
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3436 "configure" #line 3465 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <gd.h> #include <gd.h>
int main() { int main() {
gdImagePng (0, 0) gdImagePng (0, 0)
; return 0; } ; return 0; }
EOF EOF
if { (eval echo configure:3443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then if { (eval echo configure:3472: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest* rm -rf conftest*
LIBGD=yes LIBGD=yes
else else
@ -3459,7 +3488,7 @@ echo "$ac_t""$LIBGD" 1>&6
echo $ac_n "checking size of long double""... $ac_c" 1>&6 echo $ac_n "checking size of long double""... $ac_c" 1>&6
echo "configure:3463: checking size of long double" >&5 echo "configure:3492: checking size of long double" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_long_double'+set}'`\" = set"; then if eval "test \"`echo '$''{'ac_cv_sizeof_long_double'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
@ -3467,7 +3496,7 @@ else
ac_cv_sizeof_long_double=0 ac_cv_sizeof_long_double=0
else else
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 3471 "configure" #line 3500 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <stdio.h> #include <stdio.h>
int main() int main()
@ -3478,7 +3507,7 @@ int main()
return(0); return(0);
} }
EOF EOF
if { (eval echo configure:3482: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null if { (eval echo configure:3511: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then then
ac_cv_sizeof_long_double=`cat conftestval` ac_cv_sizeof_long_double=`cat conftestval`
else else
@ -3556,7 +3585,7 @@ if test "$uname" = "sysdeps/generic"; then
fi fi
echo $ac_n "checking OS release for uname""... $ac_c" 1>&6 echo $ac_n "checking OS release for uname""... $ac_c" 1>&6
echo "configure:3560: checking OS release for uname" >&5 echo "configure:3589: checking OS release for uname" >&5
if eval "test \"`echo '$''{'libc_cv_uname_release'+set}'`\" = set"; then if eval "test \"`echo '$''{'libc_cv_uname_release'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
@ -3578,7 +3607,7 @@ echo "$ac_t""$libc_cv_uname_release" 1>&6
uname_release="$libc_cv_uname_release" uname_release="$libc_cv_uname_release"
echo $ac_n "checking OS version for uname""... $ac_c" 1>&6 echo $ac_n "checking OS version for uname""... $ac_c" 1>&6
echo "configure:3582: checking OS version for uname" >&5 echo "configure:3611: checking OS version for uname" >&5
if eval "test \"`echo '$''{'libc_cv_uname_version'+set}'`\" = set"; then if eval "test \"`echo '$''{'libc_cv_uname_version'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else
@ -3600,7 +3629,7 @@ else
fi fi
echo $ac_n "checking stdio selection""... $ac_c" 1>&6 echo $ac_n "checking stdio selection""... $ac_c" 1>&6
echo "configure:3604: checking stdio selection" >&5 echo "configure:3633: checking stdio selection" >&5
case $stdio in case $stdio in
libio) cat >> confdefs.h <<\EOF libio) cat >> confdefs.h <<\EOF
@ -3614,7 +3643,7 @@ echo "$ac_t""$stdio" 1>&6
# Test for old glibc 2.0.x headers so that they can be removed properly # Test for old glibc 2.0.x headers so that they can be removed properly
# Search only in includedir. # Search only in includedir.
echo $ac_n "checking for old glibc 2.0.x headers""... $ac_c" 1>&6 echo $ac_n "checking for old glibc 2.0.x headers""... $ac_c" 1>&6
echo "configure:3618: checking for old glibc 2.0.x headers" >&5 echo "configure:3647: checking for old glibc 2.0.x headers" >&5
if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h" if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h"
then then
old_glibc_headers=yes old_glibc_headers=yes
@ -3675,7 +3704,7 @@ if test $shared = default; then
fi fi
echo $ac_n "checking whether -fPIC is default""... $ac_c" 1>&6 echo $ac_n "checking whether -fPIC is default""... $ac_c" 1>&6
echo "configure:3679: checking whether -fPIC is default" >&5 echo "configure:3708: checking whether -fPIC is default" >&5
if eval "test \"`echo '$''{'pic_default'+set}'`\" = set"; then if eval "test \"`echo '$''{'pic_default'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6 echo $ac_n "(cached) $ac_c" 1>&6
else else

View File

@ -1065,8 +1065,9 @@ EOF
AC_CACHE_CHECK(for -z combreloc, AC_CACHE_CHECK(for -z combreloc,
libc_cv_z_combreloc, [dnl libc_cv_z_combreloc, [dnl
cat > conftest.c <<EOF cat > conftest.c <<EOF
extern int bar (void); extern int bar (int);
int foo (void) { return bar (); } extern int mumble;
int foo (void) { return bar (mumble); }
EOF EOF
if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c
-nostdlib -nostartfiles -nostdlib -nostartfiles
@ -1398,6 +1399,25 @@ if test "$libc_cv_gcc_builtin_expect" = yes; then
AC_DEFINE(HAVE_BUILTIN_EXPECT) AC_DEFINE(HAVE_BUILTIN_EXPECT)
fi fi
AC_CACHE_CHECK(for __builtin_memset, libc_cv_gcc_builtin_memset, [dnl
cat > conftest.c <<\EOF
void zero (void *x)
{
__builtin_memset (x, 0, 4);
}
EOF
dnl
if AC_TRY_COMMAND([${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null]);
then
libc_cv_gcc_builtin_memset=no
else
libc_cv_gcc_builtin_memset=yes
fi
rm -f conftest* ])
if test "$libc_cv_gcc_builtin_memset" = yes ; then
AC_DEFINE(HAVE_BUILTIN_MEMSET)
fi
dnl Check whether the compiler supports subtraction of local labels. dnl Check whether the compiler supports subtraction of local labels.
AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels, AC_CACHE_CHECK(for local label subtraction, libc_cv_gcc_subtract_local_labels,
[cat > conftest.c <<EOF [cat > conftest.c <<EOF

View File

@ -130,7 +130,7 @@ _dl_start (void *arg)
{ {
struct link_map bootstrap_map; struct link_map bootstrap_map;
hp_timing_t start_time; hp_timing_t start_time;
#if !__GNUC_PREREQ (2, 96) #ifndef HAVE_BUILTIN_MEMSET
size_t cnt; size_t cnt;
#endif #endif
@ -150,7 +150,7 @@ _dl_start (void *arg)
`memset' since it might not be built in or inlined and we cannot `memset' since it might not be built in or inlined and we cannot
make function calls at this point. Use '__builtin_memset' if we make function calls at this point. Use '__builtin_memset' if we
know it is available. */ know it is available. */
#if __GNUC_PREREQ (2, 96) #ifdef HAVE_BUILTIN_MEMSET
__builtin_memset (bootstrap_map.l_info, '\0', sizeof (bootstrap_map.l_info)); __builtin_memset (bootstrap_map.l_info, '\0', sizeof (bootstrap_map.l_info));
#else #else
for (cnt = 0; for (cnt = 0;
@ -1366,6 +1366,12 @@ of this helper program; chances are you did not intend to run this program.\n\
/* This means we actually have some modules which use TLS. /* This means we actually have some modules which use TLS.
Computer the TLS offsets for the various blocks. */ Computer the TLS offsets for the various blocks. */
_dl_determine_tlsoffset (GL(dl_initimage_list)->l_tls_nextimage); _dl_determine_tlsoffset (GL(dl_initimage_list)->l_tls_nextimage);
/* Construct the static TLS block and the dtv for the initial
thread. For some platforms this will include allocating memory
for the thread descriptor. The memory for the TLS block will
never be freed. It should be allocated accordingly. The dtv
array can be changed if dynamic loading requires it. */
#endif #endif
{ {

View File

@ -25,6 +25,12 @@ main (void)
int r; int r;
int e; int e;
if (getuid () == 0)
{
puts ("this test needs to be run by ordinary user");
exit (0);
}
dname = mkdtemp (tmp); dname = mkdtemp (tmp);
if (dname == NULL) if (dname == NULL)
{ {

View File

@ -19,11 +19,11 @@
#include <assert.h> #include <assert.h>
#include <tls.h>
/* We don't need any of this if TLS is not supported. */ /* We don't need any of this if TLS is not supported. */
#ifdef USE_TLS #ifdef USE_TLS
#include <tls.h>
#include <dl-tls.h> #include <dl-tls.h>
#include <ldsodefs.h> #include <ldsodefs.h>

View File

@ -35,14 +35,13 @@ __brk (void *addr)
void *newbrk; void *newbrk;
{ {
register long r0 asm ("2");
register void *__addr asm("2") = addr; register void *__addr asm("2") = addr;
asm ("svc %b1\n\t" /* call sys_brk */ asm ("svc %b1\n\t" /* call sys_brk */
: "=d" (r0) : "=d" (__addr)
: "I" (SYS_ify(brk)), "r" (__addr) : "I" (SYS_ify(brk)), "r" (__addr)
: _svc_clobber ); : "cc", "memory" );
newbrk = (void *) r0; newbrk = __addr;
} }
__curbrk = newbrk; __curbrk = newbrk;

View File

@ -1,5 +1,5 @@
/* Bit values & structures for resource limits. Linux version. /* Bit values & structures for resource limits. Linux version.
Copyright (C) 2000, 2001 Free Software Foundation, Inc. Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -76,7 +76,11 @@ enum __rlimit_resource
RLIMIT_MEMLOCK = 8, RLIMIT_MEMLOCK = 8,
#define RLIMIT_MEMLOCK RLIMIT_MEMLOCK #define RLIMIT_MEMLOCK RLIMIT_MEMLOCK
RLIMIT_NLIMITS = 10, /* Maximum number of file locks. */
RLIMIT_LOCKS = 10,
#define RLIMIT_LOCKS RLIMIT_LOCKS
RLIMIT_NLIMITS = 11,
RLIM_NLIMITS = RLIMIT_NLIMITS RLIM_NLIMITS = RLIMIT_NLIMITS
#define RLIMIT_NLIMITS RLIMIT_NLIMITS #define RLIMIT_NLIMITS RLIMIT_NLIMITS
#define RLIM_NLIMITS RLIM_NLIMITS #define RLIM_NLIMITS RLIM_NLIMITS

View File

@ -65,3 +65,4 @@ thread_start:
.L1: .long _exit - .L0 .L1: .long _exit - .L0
#endif #endif
PSEUDO_END (__clone) PSEUDO_END (__clone)
weak_alias (__clone, clone)

View File

@ -1,5 +1,5 @@
/* Low-level statistical profiling support function. Linux/s390 version. /* Low-level statistical profiling support function. Linux/s390 version.
Copyright (C) 2000, 2001 Free Software Foundation, Inc. Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -23,5 +23,5 @@
static void static void
profil_counter (int signo, SIGCONTEXT scp) profil_counter (int signo, SIGCONTEXT scp)
{ {
profile_count((void *) ((unsigned long) GET_PC (scp) & 0x7fffffffUL)); profil_count((void *) ((unsigned long) GET_PC (scp) & 0x7fffffffUL));
} }

View File

@ -2,3 +2,11 @@ ifeq ($(subdir),misc)
sysdep_routines += setfsgid setfsuid setresgid setresuid sysdep_routines += setfsgid setfsuid setresgid setresuid
sysdep_headers += sys/elf.h sysdep_headers += sys/elf.h
endif endif
ifeq ($(subdir),elf)
ifeq (yes,$(build-shared))
# This is needed to support g++ v2 and v3.
sysdep_routines += framestate
shared-only-routines += framestate
endif
endif

View File

@ -0,0 +1,7 @@
libc {
GLIBC_2.2 {
# Exception handling support functions from libgcc
__register_frame; __register_frame_table; __deregister_frame;
__frame_state_for; __register_frame_info_table;
}
}

View File

@ -1,5 +1,5 @@
/* Bit values & structures for resource limits. 64 bit S/390 version. /* Bit values & structures for resource limits. 64 bit S/390 version.
Copyright (C) 2001 Free Software Foundation, Inc. Copyright (C) 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -76,7 +76,12 @@ enum __rlimit_resource
RLIMIT_AS = 9, RLIMIT_AS = 9,
#define RLIMIT_AS RLIMIT_AS #define RLIMIT_AS RLIMIT_AS
RLIM_NLIMITS = 10 /* Maximum number of file locks. */
RLIMIT_LOCKS = 10,
#define RLIMIT_LOCKS RLIMIT_LOCKS
RLIMIT_NLIMITS = 11,
RLIM_NLIMITS = RLIMIT_NLIMITS
#define RLIMIT_NLIMITS RLIMIT_NLIMITS #define RLIMIT_NLIMITS RLIMIT_NLIMITS
#define RLIM_NLIMITS RLIM_NLIMITS #define RLIM_NLIMITS RLIM_NLIMITS
}; };

View File

@ -53,3 +53,4 @@ thread_start:
#endif #endif
jg _exit@PLT /* branch to _exit -> thread termination */ jg _exit@PLT /* branch to _exit -> thread termination */
PSEUDO_END (__clone) PSEUDO_END (__clone)
weak_alias (__clone, clone)

View File

@ -64,4 +64,4 @@ PSEUDO_END (__mmap)
weak_alias (__mmap, mmap) weak_alias (__mmap, mmap)
weak_alias (__mmap, mmap64) weak_alias (__mmap, mmap64)
weak_alias (__mmap, __mmap64)