diff options
Diffstat (limited to 'sysdeps')
26 files changed, 191 insertions, 149 deletions
diff --git a/sysdeps/generic/libc-start.c b/sysdeps/generic/libc-start.c index 3fcadcf19f..194db6b1ec 100644 --- a/sysdeps/generic/libc-start.c +++ b/sysdeps/generic/libc-start.c @@ -75,11 +75,7 @@ STATIC int LIBC_START_MAIN (int (*main) (int, char **, char ** #ifdef LIBC_START_MAIN_AUXVEC_ARG ElfW(auxv_t) *__unbounded auxvec, #endif -#ifdef INIT_MAIN_ARGS __typeof (main) init, -#else - void (*init) (void), -#endif void (*fini) (void), void (*rtld_fini) (void), void *__unbounded stack_end) @@ -95,11 +91,7 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL), #ifdef LIBC_START_MAIN_AUXVEC_ARG ElfW(auxv_t) *__unbounded auxvec, #endif -#ifdef INIT_MAIN_ARGS __typeof (main) init, -#else - void (*init) (void), -#endif void (*fini) (void), void (*rtld_fini) (void), void *__unbounded stack_end) { @@ -195,11 +187,7 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL), GLRO(dl_debug_printf) ("\ninitialize program: %s\n\n", argv[0]); #endif if (init) - (*init) ( -#ifdef INIT_MAIN_ARGS - argc, argv, __environ MAIN_AUXVEC_PARAM -#endif - ); + (*init) (argc, argv, __environ MAIN_AUXVEC_PARAM); #ifdef SHARED /* Auditing checkpoint: we have a new object. */ diff --git a/sysdeps/generic/s_ctan.c b/sysdeps/generic/s_ctan.c index 6a09fe465b..0464ab86d5 100644 --- a/sysdeps/generic/s_ctan.c +++ b/sysdeps/generic/s_ctan.c @@ -1,5 +1,5 @@ /* Complex tangent function for double. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -61,8 +61,18 @@ __ctan (__complex__ double x) den = cos2rx + __ieee754_cosh (2.0 * __imag__ x); - __real__ res = sin2rx / den; - __imag__ res = __ieee754_sinh (2.0 * __imag__ x) / den; + if (den == 0.0) + { + __complex__ double ez = __cexp (1.0i * x); + __complex__ double emz = __cexp (-1.0i * x); + + res = (ez - emz) / (ez + emz) * -1.0i; + } + else + { + __real__ res = sin2rx / den; + __imag__ res = __ieee754_sinh (2.0 * __imag__ x) / den; + } } return res; diff --git a/sysdeps/generic/s_ctanf.c b/sysdeps/generic/s_ctanf.c index e02971dd44..58d9d13298 100644 --- a/sysdeps/generic/s_ctanf.c +++ b/sysdeps/generic/s_ctanf.c @@ -1,5 +1,5 @@ /* Complex tangent function for float. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -61,8 +61,19 @@ __ctanf (__complex__ float x) den = cos2rx + __ieee754_coshf (2.0 * __imag__ x); - __real__ res = sin2rx / den; - __imag__ res = __ieee754_sinhf (2.0 * __imag__ x) / den; + + if (den == 0.0) + { + __complex__ float ez = __cexpf (1.0i * x); + __complex__ float emz = __cexpf (-1.0i * x); + + res = (ez - emz) / (ez + emz) * -1.0i; + } + else + { + __real__ res = sin2rx / den; + __imag__ res = __ieee754_sinhf (2.0 * __imag__ x) / den; + } } return res; diff --git a/sysdeps/generic/s_ctanh.c b/sysdeps/generic/s_ctanh.c index 971cd9040c..fe38dae291 100644 --- a/sysdeps/generic/s_ctanh.c +++ b/sysdeps/generic/s_ctanh.c @@ -1,5 +1,5 @@ /* Complex hyperbole tangent for double. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -61,8 +61,18 @@ __ctanh (__complex__ double x) den = (__ieee754_cosh (2.0 * __real__ x) + cos2ix); - __real__ res = __ieee754_sinh (2.0 * __real__ x) / den; - __imag__ res = sin2ix / den; + if (den == 0.0) + { + __complex__ double ez = __cexp (x); + __complex__ double emz = __cexp (-x); + + res = (ez - emz) / (ez + emz); + } + else + { + __real__ res = __ieee754_sinh (2.0 * __real__ x) / den; + __imag__ res = sin2ix / den; + } } return res; diff --git a/sysdeps/generic/s_ctanhf.c b/sysdeps/generic/s_ctanhf.c index cfcabab36a..c331dbaabb 100644 --- a/sysdeps/generic/s_ctanhf.c +++ b/sysdeps/generic/s_ctanhf.c @@ -1,5 +1,5 @@ /* Complex hyperbole tangent for float. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -61,8 +61,18 @@ __ctanhf (__complex__ float x) den = (__ieee754_coshf (2.0 * __real__ x) + cos2ix); - __real__ res = __ieee754_sinhf (2.0 * __real__ x) / den; - __imag__ res = sin2ix / den; + if (den == 0.0f) + { + __complex__ float ez = __cexpf (x); + __complex__ float emz = __cexpf (-x); + + res = (ez - emz) / (ez + emz); + } + else + { + __real__ res = __ieee754_sinhf (2.0 * __real__ x) / den; + __imag__ res = sin2ix / den; + } } return res; diff --git a/sysdeps/generic/s_ctanhl.c b/sysdeps/generic/s_ctanhl.c index 7bf6b39199..77ca8f8717 100644 --- a/sysdeps/generic/s_ctanhl.c +++ b/sysdeps/generic/s_ctanhl.c @@ -1,5 +1,5 @@ /* Complex hyperbole tangent for long double. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -61,8 +61,18 @@ __ctanhl (__complex__ long double x) den = (__ieee754_coshl (2.0 * __real__ x) + cos2ix); - __real__ res = __ieee754_sinhl (2.0 * __real__ x) / den; - __imag__ res = sin2ix / den; + if (den == 0.0L) + { + __complex__ long double ez = __cexpl (x); + __complex__ long double emz = __cexpl (-x); + + res = (ez - emz) / (ez + emz); + } + else + { + __real__ res = __ieee754_sinhl (2.0 * __real__ x) / den; + __imag__ res = sin2ix / den; + } } return res; diff --git a/sysdeps/generic/s_ctanl.c b/sysdeps/generic/s_ctanl.c index fa153e9b35..89379a5ff9 100644 --- a/sysdeps/generic/s_ctanl.c +++ b/sysdeps/generic/s_ctanl.c @@ -1,5 +1,5 @@ /* Complex tangent function for long double. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. @@ -61,8 +61,19 @@ __ctanl (__complex__ long double x) den = cos2rx + __ieee754_coshl (2.0 * __imag__ x); - __real__ res = sin2rx / den; - __imag__ res = __ieee754_sinhl (2.0 * __imag__ x) / den; + + if (den == 0.0) + { + __complex__ long double ez = __cexpl (1.0i * x); + __complex__ long double emz = __cexpl (-1.0i * x); + + res = (ez - emz) / (ez + emz) * -1.0i; + } + else + { + __real__ res = sin2rx / den; + __imag__ res = __ieee754_sinhl (2.0 * __imag__ x) / den; + } } return res; diff --git a/sysdeps/hppa/add_n.s b/sysdeps/hppa/add_n.s index aaabd72e20..a396b3471c 100644 --- a/sysdeps/hppa/add_n.s +++ b/sysdeps/hppa/add_n.s @@ -38,19 +38,19 @@ __mpn_add_n: .callinfo frame=0,no_calls .entry - ldws,ma 4(0,%r25),%r21 - ldws,ma 4(0,%r24),%r20 + ldws,ma 4(%r25),%r21 + ldws,ma 4(%r24),%r20 addib,= -1,%r23,L$end ;! check for (SIZE == 1) add %r21,%r20,%r28 ;! add first limbs ignoring cy -L$loop: ldws,ma 4(0,%r25),%r21 - ldws,ma 4(0,%r24),%r20 - stws,ma %r28,4(0,%r26) +L$loop: ldws,ma 4(%r25),%r21 + ldws,ma 4(%r24),%r20 + stws,ma %r28,4(%r26) addib,<> -1,%r23,L$loop addc %r21,%r20,%r28 -L$end: stws %r28,0(0,%r26) +L$end: stws %r28,0(%r26) bv 0(%r2) addc %r0,%r0,%r28 diff --git a/sysdeps/hppa/hppa1.1/udiv_qrnnd.s b/sysdeps/hppa/hppa1.1/udiv_qrnnd.s index fdc63e59e5..7b83619c7d 100644 --- a/sysdeps/hppa/hppa1.1/udiv_qrnnd.s +++ b/sysdeps/hppa/hppa1.1/udiv_qrnnd.s @@ -38,20 +38,20 @@ __udiv_qrnnd: .entry ldo 64(%r30),%r30 - stws %r25,-16(0,%r30) ;! n_hi - stws %r24,-12(0,%r30) ;! n_lo + stws %r25,-16(%r30) ;! n_hi + stws %r24,-12(%r30) ;! n_lo b,l L$0,%r1 ldo L$0000-L$0(%r1),%r1 L$0: - fldds -16(0,%r30),%fr5 - stws %r23,-12(0,%r30) + fldds -16(%r30),%fr5 + stws %r23,-12(%r30) comib,<= 0,%r25,L$1 fcnvxf,dbl,dbl %fr5,%fr5 - fldds 0(0,%r1),%fr4 + fldds 0(%r1),%fr4 fadd,dbl %fr4,%fr5,%fr5 L$1: fcpy,sgl %fr0,%fr6L - fldws -12(0,%r30),%fr6R + fldws -12(%r30),%fr6R fcnvxf,dbl,dbl %fr6,%fr4 fdiv,dbl %fr5,%fr4,%fr5 @@ -60,9 +60,9 @@ L$1: fstws %fr4R,-16(%r30) xmpyu %fr4R,%fr6R,%fr6 ldws -16(%r30),%r28 - fstds %fr6,-16(0,%r30) - ldws -12(0,%r30),%r21 - ldws -16(0,%r30),%r20 + fstds %fr6,-16(%r30) + ldws -12(%r30),%r21 + ldws -16(%r30),%r20 sub %r24,%r21,%r22 subb %r25,%r20,%r1 comib,= 0,%r1,L$2 @@ -72,7 +72,7 @@ L$1: ldo -1(%r28),%r28 L$2: bv 0(%r2) - stws %r22,0(0,%r26) + stws %r22,0(%r26) .exit .procend diff --git a/sysdeps/hppa/lshift.s b/sysdeps/hppa/lshift.s index 400fbcf6dd..151b283e57 100644 --- a/sysdeps/hppa/lshift.s +++ b/sysdeps/hppa/lshift.s @@ -35,32 +35,32 @@ __mpn_lshift: sh2add %r24,%r25,%r25 sh2add %r24,%r26,%r26 - ldws,mb -4(0,%r25),%r22 + ldws,mb -4(%r25),%r22 subi 32,%r23,%r1 mtsar %r1 addib,= -1,%r24,L$0004 vshd %r0,%r22,%r28 ;! compute carry out limb - ldws,mb -4(0,%r25),%r29 + ldws,mb -4(%r25),%r29 addib,= -1,%r24,L$0002 vshd %r22,%r29,%r20 -L$loop: ldws,mb -4(0,%r25),%r22 - stws,mb %r20,-4(0,%r26) +L$loop: ldws,mb -4(%r25),%r22 + stws,mb %r20,-4(%r26) addib,= -1,%r24,L$0003 vshd %r29,%r22,%r20 - ldws,mb -4(0,%r25),%r29 - stws,mb %r20,-4(0,%r26) + ldws,mb -4(%r25),%r29 + stws,mb %r20,-4(%r26) addib,<> -1,%r24,L$loop vshd %r22,%r29,%r20 -L$0002: stws,mb %r20,-4(0,%r26) +L$0002: stws,mb %r20,-4(%r26) vshd %r29,%r0,%r20 bv 0(%r2) - stw %r20,-4(0,%r26) -L$0003: stws,mb %r20,-4(0,%r26) + stw %r20,-4(%r26) +L$0003: stws,mb %r20,-4(%r26) L$0004: vshd %r22,%r0,%r20 bv 0(%r2) - stw %r20,-4(0,%r26) + stw %r20,-4(%r26) .exit .procend diff --git a/sysdeps/hppa/rshift.s b/sysdeps/hppa/rshift.s index acb772f523..dff189dc48 100644 --- a/sysdeps/hppa/rshift.s +++ b/sysdeps/hppa/rshift.s @@ -33,31 +33,31 @@ __mpn_rshift: .callinfo frame=64,no_calls .entry - ldws,ma 4(0,%r25),%r22 + ldws,ma 4(%r25),%r22 mtsar %r23 addib,= -1,%r24,L$0004 vshd %r22,%r0,%r28 ;! compute carry out limb - ldws,ma 4(0,%r25),%r29 + ldws,ma 4(%r25),%r29 addib,= -1,%r24,L$0002 vshd %r29,%r22,%r20 -L$loop: ldws,ma 4(0,%r25),%r22 - stws,ma %r20,4(0,%r26) +L$loop: ldws,ma 4(%r25),%r22 + stws,ma %r20,4(%r26) addib,= -1,%r24,L$0003 vshd %r22,%r29,%r20 - ldws,ma 4(0,%r25),%r29 - stws,ma %r20,4(0,%r26) + ldws,ma 4(%r25),%r29 + stws,ma %r20,4(%r26) addib,<> -1,%r24,L$loop vshd %r29,%r22,%r20 -L$0002: stws,ma %r20,4(0,%r26) +L$0002: stws,ma %r20,4(%r26) vshd %r0,%r29,%r20 bv 0(%r2) - stw %r20,0(0,%r26) -L$0003: stws,ma %r20,4(0,%r26) + stw %r20,0(%r26) +L$0003: stws,ma %r20,4(%r26) L$0004: vshd %r0,%r22,%r20 bv 0(%r2) - stw %r20,0(0,%r26) + stw %r20,0(%r26) .exit .procend diff --git a/sysdeps/hppa/setjmp.S b/sysdeps/hppa/setjmp.S index f10a7a304d..0da34db6f1 100644 --- a/sysdeps/hppa/setjmp.S +++ b/sysdeps/hppa/setjmp.S @@ -53,17 +53,17 @@ __sigsetjmp: stw %rp, 80(%r26) - ldo 88(%r26),%r19 - fstds,ma %fr12, 8(%r19) /* 88 */ - fstds,ma %fr13, 8(%r19) /* 96 */ - fstds,ma %fr14, 8(%r19) /* 104 */ - fstds,ma %fr15, 8(%r19) /* 112 */ - fstds,ma %fr16, 8(%r19) /* 120 */ - fstds,ma %fr17, 8(%r19) /* 128 */ - fstds,ma %fr18, 8(%r19) /* 136 */ - fstds,ma %fr19, 8(%r19) /* 144 */ - fstds,ma %fr20, 8(%r19) /* 152 */ - fstds %fr21, 0(%r19) /* 160 */ + ldo 88(%r26),%r1 + fstds,ma %fr12, 8(%r1) /* 88 */ + fstds,ma %fr13, 8(%r1) /* 96 */ + fstds,ma %fr14, 8(%r1) /* 104 */ + fstds,ma %fr15, 8(%r1) /* 112 */ + fstds,ma %fr16, 8(%r1) /* 120 */ + fstds,ma %fr17, 8(%r1) /* 128 */ + fstds,ma %fr18, 8(%r1) /* 136 */ + fstds,ma %fr19, 8(%r1) /* 144 */ + fstds,ma %fr20, 8(%r1) /* 152 */ + fstds %fr21, 0(%r1) /* 160 */ b __sigjmp_save nop .procend diff --git a/sysdeps/hppa/sub_n.s b/sysdeps/hppa/sub_n.s index 34f196826d..7764961a2d 100644 --- a/sysdeps/hppa/sub_n.s +++ b/sysdeps/hppa/sub_n.s @@ -38,19 +38,19 @@ __mpn_sub_n: .callinfo frame=0,no_calls .entry - ldws,ma 4(0,%r25),%r21 - ldws,ma 4(0,%r24),%r20 + ldws,ma 4(%r25),%r21 + ldws,ma 4(%r24),%r20 addib,= -1,%r23,L$end ;! check for (SIZE == 1) sub %r21,%r20,%r28 ;! subtract first limbs ignoring cy -L$loop: ldws,ma 4(0,%r25),%r21 - ldws,ma 4(0,%r24),%r20 - stws,ma %r28,4(0,%r26) +L$loop: ldws,ma 4(%r25),%r21 + ldws,ma 4(%r24),%r20 + stws,ma %r28,4(%r26) addib,<> -1,%r23,L$loop subb %r21,%r20,%r28 -L$end: stws %r28,0(0,%r26) +L$end: stws %r28,0(%r26) addc %r0,%r0,%r28 bv 0(%r2) subi 1,%r28,%r28 diff --git a/sysdeps/hppa/udiv_qrnnd.s b/sysdeps/hppa/udiv_qrnnd.s index cd2b58ddec..8e9c07a205 100644 --- a/sysdeps/hppa/udiv_qrnnd.s +++ b/sysdeps/hppa/udiv_qrnnd.s @@ -38,7 +38,7 @@ __udiv_qrnnd: .callinfo frame=0,no_calls .entry - comb,< %r23,0,L$largedivisor + comb,< %r23,%r0,L$largedivisor sub %r0,%r23,%r1 ;! clear cy as side-effect ds %r0,%r1,%r0 addc %r24,%r24,%r24 @@ -107,7 +107,7 @@ __udiv_qrnnd: ds %r25,%r23,%r25 comclr,>= %r25,%r0,%r0 addl %r25,%r23,%r25 - stws %r25,0(0,%r26) + stws %r25,0(%r26) bv 0(%r2) addc %r28,%r28,%r28 @@ -186,7 +186,7 @@ L$largedivisor: comclr,>= %r25,%r0,%r0 addl %r25,%r22,%r25 sh1addl %r25,%r20,%r25 - stws %r25,0(0,%r26) + stws %r25,0(%r26) bv 0(%r2) addc %r24,%r24,%r28 @@ -269,7 +269,7 @@ L$odd: addib,sv,n 1,%r22,L$FF.. ;! r22 = (d / 2 + 1) addc %r0,%r28,%r28 sub,<< %r25,%r23,%r0 addl %r25,%r1,%r25 - stws %r25,0(0,%r26) + stws %r25,0(%r26) bv 0(%r2) addc %r0,%r28,%r28 @@ -278,7 +278,7 @@ L$odd: addib,sv,n 1,%r22,L$FF.. ;! r22 = (d / 2 + 1) L$FF..: add,uv %r25,%r24,%r24 sub,<< %r24,%r23,%r0 ldo 1(%r24),%r24 - stws %r24,0(0,%r26) + stws %r24,0(%r26) bv 0(%r2) addc %r0,%r25,%r28 diff --git a/sysdeps/i386/dl-trampoline.S b/sysdeps/i386/dl-trampoline.S index 80dd300e86..fd87eb711d 100644 --- a/sysdeps/i386/dl-trampoline.S +++ b/sysdeps/i386/dl-trampoline.S @@ -45,6 +45,7 @@ _dl_runtime_resolve: .size _dl_runtime_resolve, .-_dl_runtime_resolve +#ifndef PROF .globl _dl_runtime_profile .type _dl_runtime_profile, @function cfi_startproc @@ -180,3 +181,4 @@ _dl_runtime_profile: ret cfi_endproc .size _dl_runtime_profile, .-_dl_runtime_profile +#endif diff --git a/sysdeps/ia64/dl-trampoline.S b/sysdeps/ia64/dl-trampoline.S index b7969a6cf0..1b31dc7c9c 100644 --- a/sysdeps/ia64/dl-trampoline.S +++ b/sysdeps/ia64/dl-trampoline.S @@ -175,7 +175,7 @@ END(_dl_runtime_resolve) 16byte f13 16byte f14 16byte f15 - + Since stack has to be 16 byte aligned, the stack allocation is in 16byte increment. Before calling _dl_profile_fixup, the stack will look like @@ -189,6 +189,7 @@ END(_dl_runtime_resolve) #define PLTENTER_FRAME_SIZE (4*8 + 8*8 + 8*16 + 2*8 + 16) #define PLTEXIT_FRAME_SIZE (PLTENTER_FRAME_SIZE + 4*8 + 8*16) +#ifndef PROF ENTRY(_dl_runtime_profile) { .mii .prologue @@ -535,3 +536,4 @@ ENTRY(_dl_runtime_profile) ;; } END(_dl_runtime_profile) +#endif diff --git a/sysdeps/powerpc/elf/libc-start.c b/sysdeps/powerpc/elf/libc-start.c index eed3e06c8a..af67a39a29 100644 --- a/sysdeps/powerpc/elf/libc-start.c +++ b/sysdeps/powerpc/elf/libc-start.c @@ -30,7 +30,6 @@ weak_extern (__cache_line_size) #define LIBC_START_DISABLE_INLINE #define LIBC_START_MAIN_AUXVEC_ARG #define MAIN_AUXVEC_ARG -#define INIT_MAIN_ARGS #include <sysdeps/generic/libc-start.c> diff --git a/sysdeps/powerpc/powerpc32/dl-trampoline.S b/sysdeps/powerpc/powerpc32/dl-trampoline.S index ea5ce7b45a..506e8022b9 100644 --- a/sysdeps/powerpc/powerpc32/dl-trampoline.S +++ b/sysdeps/powerpc/powerpc32/dl-trampoline.S @@ -66,6 +66,7 @@ _dl_runtime_resolve: bctr .size _dl_runtime_resolve,.-_dl_runtime_resolve +#ifndef PROF .align 2 .globl _dl_prof_resolve .type _dl_prof_resolve,@function @@ -172,3 +173,4 @@ _dl_prof_resolve: addi r1,r1,320 bctr .size _dl_prof_resolve,.-_dl_prof_resolve +#endif diff --git a/sysdeps/powerpc/powerpc64/dl-trampoline.S b/sysdeps/powerpc/powerpc64/dl-trampoline.S index 0c617063c9..c90f961615 100644 --- a/sysdeps/powerpc/powerpc64/dl-trampoline.S +++ b/sysdeps/powerpc/powerpc64/dl-trampoline.S @@ -26,7 +26,7 @@ and r11 contains the link_map (from PLT0+16). The link_map becomes parm1 (r3) and the index (r0) need to be converted to an offset (index * 24) in parm2 (r4). */ - + EALIGN(_dl_runtime_resolve, 4, 0) /* We need to save the registers used to pass parameters, ie. r3 thru r10; the registers are saved in a stack frame. */ @@ -139,8 +139,8 @@ END(_dl_runtime_resolve) * Parameter save area, Allocated by the call, at least 8 double words +40 TOC save area +32 Reserved for linker - +24 Reserved for compiler - +16 LR save area + +24 Reserved for compiler + +16 LR save area +8 CR save area r1+0 stack back chain */ @@ -169,7 +169,7 @@ END(_dl_runtime_resolve) and r11 contains the link_map (from PLT0+16). The link_map becomes parm1 (r3) and the index (r0) needs to be converted to an offset (index * 24) in parm2 (r4). */ - +#ifndef PROF EALIGN(_dl_profile_resolve, 4, 0) /* Spill r30, r31 to preserve the link_map* and reloc_addr, in case we need to call _dl_call_pltexit. */ @@ -215,23 +215,23 @@ EALIGN(_dl_profile_resolve, 4, 0) li r12,64 stvx v2,0,r10 stvx v3,0,r9 - + stvx v4,r11,r10 stvx v5,r11,r9 addi r11,r11,64 - + stvx v6,r12,r10 stvx v7,r12,r9 addi r12,r12,64 - + stvx v8,r11,r10 stvx v9,r11,r9 addi r11,r11,64 - + stvx v10,r12,r10 stvx v11,r12,r9 mfspr r0,VRSAVE - + stvx v12,r11,r10 stvx v13,r11,r9 L(saveFP): @@ -262,7 +262,7 @@ L(saveFP): nop /* Test *framesizep > 0 to see if need to do pltexit processing. */ ld r0,STACK_FRAME(r1) -/* Put the registers back. */ +/* Put the registers back. */ lwz r12,VR_VRSAVE(r1) cmpdi cr1,r0,0 cmpdi cr0,r12,0 @@ -275,22 +275,22 @@ L(saveFP): li r12,64 lvx v2,0,r10 lvx v3,0,r9 - + lvx v4,r11,r10 lvx v5,r11,r9 addi r11,r11,64 - + lvx v6,r12,r10 lvx v7,r12,r9 addi r12,r12,64 - + lvx v8,r11,r10 lvx v9,r11,r9 addi r11,r11,64 - + lvx v10,r12,r10 lvx v11,r12,r9 - + lvx v12,r11,r10 lvx v13,r11,r9 L(restoreFXR): @@ -339,22 +339,22 @@ L(do_pltexit): li r12,64 lvx v2,0,r10 lvx v3,0,r9 - + lvx v4,r11,r10 lvx v5,r11,r9 addi r11,r11,64 - + lvx v6,r12,r10 lvx v7,r12,r9 addi r12,r12,64 - + lvx v8,r11,r10 lvx v9,r11,r9 addi r11,r11,64 - + lvx v10,r12,r10 lvx v11,r12,r9 - + lvx v12,r11,r10 lvx v13,r11,r9 L(restoreFXR2): @@ -393,7 +393,7 @@ L(restoreFXR2): lfd fp13,FPR_PARMS+96(r1) /* Call the target function. */ bctrl - ld r2,40(r1) + ld r2,40(r1) lwz r12,VR_VRSAVE(r1) /* But return here and store the return values. */ std r3,INT_RTN(r1) @@ -413,7 +413,7 @@ L(callpltexit): addi r6,r1,INT_RTN bl JUMPTARGET(_dl_call_pltexit) nop -/* Restore the return values from target function. */ +/* Restore the return values from target function. */ lwz r12,VR_VRSAVE(r1) ld r3,INT_RTN(r1) ld r4,INT_RTN+8(r1) @@ -433,3 +433,4 @@ L(pltexitreturn): ld r1,0(r1) blr END(_dl_profile_resolve) +#endif diff --git a/sysdeps/s390/s390-32/dl-trampoline.S b/sysdeps/s390/s390-32/dl-trampoline.S index 4ee2295b89..fbbbc189db 100644 --- a/sysdeps/s390/s390-32/dl-trampoline.S +++ b/sysdeps/s390/s390-32/dl-trampoline.S @@ -64,6 +64,7 @@ _dl_runtime_resolve: .size _dl_runtime_resolve, .-_dl_runtime_resolve +#ifndef PROF .globl _dl_runtime_profile .type _dl_runtime_profile, @function cfi_startproc @@ -124,10 +125,10 @@ _dl_runtime_profile: 5: l %r14,7f-5b(%r1) la %r4,32(%r12) # pointer to struct La_s390_32_regs la %r5,72(%r12) # pointer to struct La_s390_32_retval - basr %r14,%r1 # call _dl_call_pltexit + basr %r14,%r1 # call _dl_call_pltexit j 1b 6: .long _dl_profile_fixup - 0b 7: .long _dl_call_pltexit - 5b cfi_endproc .size _dl_runtime_profile, .-_dl_runtime_profile - +#endif diff --git a/sysdeps/s390/s390-64/dl-trampoline.S b/sysdeps/s390/s390-64/dl-trampoline.S index 215d869803..8093582163 100644 --- a/sysdeps/s390/s390-64/dl-trampoline.S +++ b/sysdeps/s390/s390-64/dl-trampoline.S @@ -58,6 +58,7 @@ _dl_runtime_resolve: .size _dl_runtime_resolve, .-_dl_runtime_resolve +#ifndef PROF .globl _dl_runtime_profile .type _dl_runtime_profile, @function cfi_startproc @@ -124,3 +125,4 @@ _dl_runtime_profile: j 0b cfi_endproc .size _dl_runtime_profile, .-_dl_runtime_profile +#endif diff --git a/sysdeps/unix/sysv/linux/bits/sched.h b/sysdeps/unix/sysv/linux/bits/sched.h index 24495e2b34..69462bf61c 100644 --- a/sysdeps/unix/sysv/linux/bits/sched.h +++ b/sysdeps/unix/sysv/linux/bits/sched.h @@ -1,6 +1,6 @@ /* Definitions of constants and data structure for POSIX 1003.1b-1993 scheduling interface. - Copyright (C) 1996-1999,2001,2002,2003 Free Software Foundation, Inc. + Copyright (C) 1996-1999,2001-2003,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 @@ -69,7 +69,7 @@ __BEGIN_DECLS /* Clone current process. */ #ifdef __USE_MISC extern int clone (int (*__fn) (void *__arg), void *__child_stack, - int __flags, void *__arg) __THROW; + int __flags, void *__arg, ...) __THROW; #endif __END_DECLS diff --git a/sysdeps/unix/sysv/linux/configure b/sysdeps/unix/sysv/linux/configure index 325073c62c..06683089ad 100644 --- a/sysdeps/unix/sysv/linux/configure +++ b/sysdeps/unix/sysv/linux/configure @@ -261,38 +261,29 @@ case "$prefix" in ;; esac -# Under Linux the LinuxThreads or NPTL add-on should be available. +# Under Linux the NPTL add-on should be available. case $add_ons in - # Only one of the add-ons should be available. - *linuxthreads*nptl*|*nptl*linuxthreads*) - echo "\ -*** LinuxThreads and NPTL add-ons are both available. Only one must be used." - exit 1 - ;; # It is available. Good. - *linuxthreads*) - linuxthreads_missing= - ;; *nptl*) - linuxthreads_missing= + nptl_missing= ;; *) - linuxthreads_missing=yes + nptl_missing=yes ;; esac -if test "$linuxthreads_missing"; then +if test "$nptl_missing"; then if test $enable_sanity = yes; then echo "\ *** On GNU/Linux systems it is normal to compile GNU libc with the -*** \`linuxthreads' add-on. Without that, the library will be +*** \`nptl' add-on. Without that, the library will be *** incompatible with normal GNU/Linux systems. *** If you really mean to not use this add-on, run configure again *** using the extra parameter \`--disable-sanity-checks'." exit 1 else echo "\ -*** WARNING: Are you sure you do not want to use the \`linuxthreads' +*** WARNING: Are you sure you do not want to use the \`nptl' *** add-on?" fi fi diff --git a/sysdeps/unix/sysv/linux/configure.in b/sysdeps/unix/sysv/linux/configure.in index 88feb868fe..b90de065af 100644 --- a/sysdeps/unix/sysv/linux/configure.in +++ b/sysdeps/unix/sysv/linux/configure.in @@ -196,38 +196,29 @@ case "$prefix" in ;; esac -# Under Linux the LinuxThreads or NPTL add-on should be available. +# Under Linux the NPTL add-on should be available. case $add_ons in - # Only one of the add-ons should be available. - *linuxthreads*nptl*|*nptl*linuxthreads*) - echo "\ -*** LinuxThreads and NPTL add-ons are both available. Only one must be used." - exit 1 - ;; # It is available. Good. - *linuxthreads*) - linuxthreads_missing= - ;; *nptl*) - linuxthreads_missing= + nptl_missing= ;; *) - linuxthreads_missing=yes + nptl_missing=yes ;; esac -if test "$linuxthreads_missing"; then +if test "$nptl_missing"; then if test $enable_sanity = yes; then echo "\ *** On GNU/Linux systems it is normal to compile GNU libc with the -*** \`linuxthreads' add-on. Without that, the library will be +*** \`nptl' add-on. Without that, the library will be *** incompatible with normal GNU/Linux systems. *** If you really mean to not use this add-on, run configure again *** using the extra parameter \`--disable-sanity-checks'." exit 1 else echo "\ -*** WARNING: Are you sure you do not want to use the \`linuxthreads' +*** WARNING: Are you sure you do not want to use the \`nptl' *** add-on?" fi fi diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile b/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile index 05fd8523b7..e051f54637 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile @@ -4,7 +4,7 @@ LD += -melf32_sparc # When I get this to work, this is the right thing ifeq ($(subdir),elf) -CFLAGS-rtld.c += -mv8 +CFLAGS-rtld.c += -mcpu=v8 #rtld-routines += dl-sysdepsparc sysdep-others += lddlibc4 install-bin += lddlibc4 diff --git a/sysdeps/x86_64/dl-trampoline.S b/sysdeps/x86_64/dl-trampoline.S index eb46f29cf2..c1686dae10 100644 --- a/sysdeps/x86_64/dl-trampoline.S +++ b/sysdeps/x86_64/dl-trampoline.S @@ -56,7 +56,7 @@ _dl_runtime_resolve: .size _dl_runtime_resolve, .-_dl_runtime_resolve - +#ifndef PROF .globl _dl_runtime_profile .type _dl_runtime_profile, @function .align 16 @@ -186,3 +186,4 @@ _dl_runtime_profile: retq cfi_endproc .size _dl_runtime_profile, .-_dl_runtime_profile +#endif |