diff options
author | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2012-03-28 22:24:59 +0000 |
---|---|---|
committer | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2012-03-28 22:24:59 +0000 |
commit | f4b59fd62358f28e23bae2fa8756913fd758299a (patch) | |
tree | aa78d41676b17cfae0c8cd3c77e0004a4c946a5e /ports | |
parent | 11e8a843c1be2bfbacb427ca25282e6979ebb48f (diff) |
Merge changes between r17700 and r17813 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@17814 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'ports')
-rw-r--r-- | ports/ChangeLog.alpha | 12 | ||||
-rw-r--r-- | ports/ChangeLog.arm | 16 | ||||
-rw-r--r-- | ports/ChangeLog.hppa | 7 | ||||
-rw-r--r-- | ports/ChangeLog.m68k | 21 | ||||
-rw-r--r-- | ports/ChangeLog.mips | 13 | ||||
-rw-r--r-- | ports/sysdeps/alpha/configure (renamed from ports/sysdeps/alpha/elf/configure) | 2 | ||||
-rw-r--r-- | ports/sysdeps/alpha/configure.in (renamed from ports/sysdeps/alpha/elf/configure.in) | 2 | ||||
-rw-r--r-- | ports/sysdeps/alpha/crti.S (renamed from ports/sysdeps/alpha/elf/crti.S) | 0 | ||||
-rw-r--r-- | ports/sysdeps/alpha/crtn.S (renamed from ports/sysdeps/alpha/elf/crtn.S) | 0 | ||||
-rw-r--r-- | ports/sysdeps/alpha/start.S (renamed from ports/sysdeps/alpha/elf/start.S) | 0 | ||||
-rw-r--r-- | ports/sysdeps/arm/configure | 38 | ||||
-rw-r--r-- | ports/sysdeps/arm/configure.in | 31 | ||||
-rw-r--r-- | ports/sysdeps/arm/elf/configure | 122 | ||||
-rw-r--r-- | ports/sysdeps/arm/elf/configure.in | 33 | ||||
-rw-r--r-- | ports/sysdeps/arm/start.S (renamed from ports/sysdeps/arm/elf/start.S) | 0 | ||||
-rw-r--r-- | ports/sysdeps/m68k/m680x0/fpu/bits/mathinline.h | 20 | ||||
-rw-r--r-- | ports/sysdeps/m68k/m680x0/fpu/libm-test-ulps | 27 | ||||
-rw-r--r-- | ports/sysdeps/m68k/m680x0/fpu/s_cexp.c | 41 | ||||
-rw-r--r-- | ports/sysdeps/m68k/start.S (renamed from ports/sysdeps/m68k/elf/start.S) | 0 | ||||
-rw-r--r-- | ports/sysdeps/mips/configure (renamed from ports/sysdeps/mips/elf/configure) | 2 | ||||
-rw-r--r-- | ports/sysdeps/mips/configure.in (renamed from ports/sysdeps/mips/elf/configure.in) | 2 | ||||
-rw-r--r-- | ports/sysdeps/mips/start.S (renamed from ports/sysdeps/mips/elf/start.S) | 0 | ||||
-rw-r--r-- | ports/sysdeps/unix/arm/start.c | 85 | ||||
-rw-r--r-- | ports/sysdeps/unix/sysv/linux/arm/bits/mman.h | 5 | ||||
-rw-r--r-- | ports/sysdeps/unix/sysv/linux/hppa/bits/atomic.h | 5 | ||||
-rw-r--r-- | ports/sysdeps/unix/sysv/linux/mips/bits/mman.h | 5 |
26 files changed, 217 insertions, 272 deletions
diff --git a/ports/ChangeLog.alpha b/ports/ChangeLog.alpha index 500e2273c..c25d3f1f6 100644 --- a/ports/ChangeLog.alpha +++ b/ports/ChangeLog.alpha @@ -1,3 +1,15 @@ +2012-03-27 Richard Henderson <rth@twiddle.net> + + * sysdeps/alpha/elf/configure.in: Move to ... + * sysdeps/alpha/configure.in: ... here. Update comment. + * sysdeps/alpha/configure: Regenerate. + * sysdeps/alpha/elf/crti.S: Move to ... + * sysdeps/alpha/crti.S: ... here. + * sysdeps/alpha/elf/crtn.S: Move to ... + * sysdeps/alpha/crtn.S: ... here. + * sysdeps/alpha/elf/start.S: Move to ... + * sysdeps/alpha/start.S: ... here. + 2012-03-21 Richard Henderson <rth@twiddle.net> * sysdeps/alpha/hp-timing.h: Include <_itoa.h> instead diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm index f1376cdab..491cc920e 100644 --- a/ports/ChangeLog.arm +++ b/ports/ChangeLog.arm @@ -1,3 +1,19 @@ +2012-03-28 Joseph Myers <joseph@codesourcery.com> + + * sysdeps/unix/sysv/linux/arm/bits/mman.h (MAP_STACK): Define. + (MAP_HUGETLB): Likewise. + +2012-03-27 Joseph Myers <joseph@codesourcery.com> + + * sysdeps/arm/elf/start.S: Moved to ... + * sysdeps/arm/start.S: ...here. + * sysdeps/arm/elf/configure.in: Merge into ... + * sysdeps/arm/configure.in: ...here. + * sysdeps/arm/configure: Regenerated. + * sysdeps/arm/elf/configure.in: Remove file. + * sysdeps/arm/elf/configure: Likewise. + * sysdeps/unix/arm/start.c: Likewise. + 2012-03-20 Joseph Myers <joseph@codesourcery.com> * sysdeps/unix/sysv/linux/arm/register-dump.h: Include <_itoa.h> diff --git a/ports/ChangeLog.hppa b/ports/ChangeLog.hppa index 527147544..700c78fe0 100644 --- a/ports/ChangeLog.hppa +++ b/ports/ChangeLog.hppa @@ -1,3 +1,10 @@ +2012-03-22 Carlos O'Donell <carlos@systemhalted.org> + + [BZ #6730] + + * sysdeps/unix/sysv/linux/hppa/bits/atomic.h: Don't negate %r21 and + check for -EFAULT and -ENOSYS instead. + 2012-03-09 Richard Henderson <rth@twiddle.net> * sysdeps/hppa/hppa1.1/s_signbit.c: Use <> to include math_private.h. diff --git a/ports/ChangeLog.m68k b/ports/ChangeLog.m68k index 04c4f93a1..8108e001c 100644 --- a/ports/ChangeLog.m68k +++ b/ports/ChangeLog.m68k @@ -1,3 +1,24 @@ +2012-03-27 Andreas Schwab <schwab@linux-m68k.org> + + * sysdeps/m68k/elf/start.S: Move to ... + * sysdeps/m68k/start.S: ... here. + +2012-03-23 Andreas Schwab <schwab@linux-m68k.org> + + * sysdeps/m68k/m680x0/fpu/libm-test-ulps: Update. + + * sysdeps/m68k/m680x0/fpu/s_cexp.c: Avoid undue overflow. + + * sysdeps/m68k/m680x0/fpu/bits/mathinline.h (__inline_mathop1): + Mark asm as volatile. + (__scalbn): Likewise. + (__lrint): Likewise. + (__sincos): Likewise. + +2012-03-22 Andreas Schwab <schwab@linux-m68k.org> + + * sysdeps/m68k/m680x0/fpu/libm-test-ulps: Update. + 2012-03-21 Andreas Schwab <schwab@linux-m68k.org> * sysdeps/unix/sysv/linux/m68k/register-dump.h: Include <_itoa.h> diff --git a/ports/ChangeLog.mips b/ports/ChangeLog.mips index 44667cdea..01f51c0c4 100644 --- a/ports/ChangeLog.mips +++ b/ports/ChangeLog.mips @@ -1,3 +1,16 @@ +2012-03-28 Joseph Myers <joseph@codesourcery.com> + + * sysdeps/unix/sysv/linux/mips/bits/mman.h (MAP_STACK): Define. + (MAP_HUGETLB): Likewise. + +2012-03-27 Joseph Myers <joseph@codesourcery.com> + + * sysdeps/mips/elf/start.S: Moved to ... + * sysdeps/mips/start.S: ...here. + * sysdeps/mips/elf/configure.in: Moved to ... + * sysdeps/mips/configure.in: ...here. Update comment. + * sysdeps/mips/configure: New generated file. + 2012-03-20 Joseph Myers <joseph@codesourcery.com> * sysdeps/unix/sysv/linux/mips/register-dump.h: Include <_itoa.h> diff --git a/ports/sysdeps/alpha/elf/configure b/ports/sysdeps/alpha/configure index 5da987591..1d0daf5a8 100644 --- a/ports/sysdeps/alpha/elf/configure +++ b/ports/sysdeps/alpha/configure @@ -81,7 +81,7 @@ $as_echo X/"$0" | } # This file is generated from configure.in by Autoconf. DO NOT EDIT! - # Local configure fragment for sysdeps/alpha/elf. + # Local configure fragment for sysdeps/alpha. # Check for support of thread-local storage handling in assembler and linker. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Alpha TLS support" >&5 diff --git a/ports/sysdeps/alpha/elf/configure.in b/ports/sysdeps/alpha/configure.in index 75fff5374..bf8e92665 100644 --- a/ports/sysdeps/alpha/elf/configure.in +++ b/ports/sysdeps/alpha/configure.in @@ -1,5 +1,5 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. -# Local configure fragment for sysdeps/alpha/elf. +# Local configure fragment for sysdeps/alpha. # Check for support of thread-local storage handling in assembler and linker. AC_CACHE_CHECK(for Alpha TLS support, libc_cv_alpha_tls, [dnl diff --git a/ports/sysdeps/alpha/elf/crti.S b/ports/sysdeps/alpha/crti.S index bfb69d475..bfb69d475 100644 --- a/ports/sysdeps/alpha/elf/crti.S +++ b/ports/sysdeps/alpha/crti.S diff --git a/ports/sysdeps/alpha/elf/crtn.S b/ports/sysdeps/alpha/crtn.S index 72b3c8aaa..72b3c8aaa 100644 --- a/ports/sysdeps/alpha/elf/crtn.S +++ b/ports/sysdeps/alpha/crtn.S diff --git a/ports/sysdeps/alpha/elf/start.S b/ports/sysdeps/alpha/start.S index 4875536ad..4875536ad 100644 --- a/ports/sysdeps/alpha/elf/start.S +++ b/ports/sysdeps/alpha/start.S diff --git a/ports/sysdeps/arm/configure b/ports/sysdeps/arm/configure index ab2371fce..651d46a34 100644 --- a/ports/sysdeps/arm/configure +++ b/ports/sysdeps/arm/configure @@ -83,6 +83,44 @@ $as_echo X/"$0" | # This file is generated from configure.in by Autoconf. DO NOT EDIT! # Local configure fragment for sysdeps/arm. +# Check for support of thread-local storage handling in assembler and +# linker. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ARM TLS support" >&5 +$as_echo_n "checking for ARM TLS support... " >&6; } +if ${libc_cv_arm_tls+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat > conftest.s <<\EOF + .section ".tdata", "awT", %progbits + .globl foo +foo: .long 1 + .section ".tbss", "awT", %nobits + .globl bar +bar: .skip 4 + .text +.word foo(tpoff) +.word foo(tlsgd) +EOF +if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + libc_cv_arm_tls=yes +else + libc_cv_arm_tls=no +fi +rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_arm_tls" >&5 +$as_echo "$libc_cv_arm_tls" >&6; } +if test $libc_cv_arm_tls = no; then + as_fn_error $? "the assembler must support TLS" "$LINENO" 5 +fi + +#AC_DEFINE(PI_STATIC_AND_HIDDEN) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the CFI directive .cfi_sections is supported" >&5 $as_echo_n "checking whether the CFI directive .cfi_sections is supported... " >&6; } if ${libc_cv_asm_cfi_directive_sections+:} false; then : diff --git a/ports/sysdeps/arm/configure.in b/ports/sysdeps/arm/configure.in index 9f4ff3b73..706add2d6 100644 --- a/ports/sysdeps/arm/configure.in +++ b/ports/sysdeps/arm/configure.in @@ -1,6 +1,37 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. # Local configure fragment for sysdeps/arm. +# Check for support of thread-local storage handling in assembler and +# linker. +AC_CACHE_CHECK(for ARM TLS support, libc_cv_arm_tls, [dnl +cat > conftest.s <<\EOF + .section ".tdata", "awT", %progbits + .globl foo +foo: .long 1 + .section ".tbss", "awT", %nobits + .globl bar +bar: .skip 4 + .text +.word foo(tpoff) +.word foo(tlsgd) +EOF +dnl +if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then + libc_cv_arm_tls=yes +else + libc_cv_arm_tls=no +fi +rm -f conftest*]) +if test $libc_cv_arm_tls = no; then + AC_MSG_ERROR([the assembler must support TLS]) +fi + +dnl It is always possible to access static and hidden symbols in an +dnl position independent way. +dnl NOTE: This feature was added by the GCC TLS patches. We should test for +dnl it. Until we do, don't define it. +#AC_DEFINE(PI_STATIC_AND_HIDDEN) + AC_CACHE_CHECK([whether the CFI directive .cfi_sections is supported], [libc_cv_asm_cfi_directive_sections], [cat > conftest.s <<EOF diff --git a/ports/sysdeps/arm/elf/configure b/ports/sysdeps/arm/elf/configure deleted file mode 100644 index 49d57a4da..000000000 --- a/ports/sysdeps/arm/elf/configure +++ /dev/null @@ -1,122 +0,0 @@ - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -# This file is generated from configure.in by Autoconf. DO NOT EDIT! - # Local configure fragment for sysdeps/arm/elf. - -# Check for support of thread-local storage handling in assembler and -# linker. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ARM TLS support" >&5 -$as_echo_n "checking for ARM TLS support... " >&6; } -if ${libc_cv_arm_tls+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat > conftest.s <<\EOF - .section ".tdata", "awT", %progbits - .globl foo -foo: .long 1 - .section ".tbss", "awT", %nobits - .globl bar -bar: .skip 4 - .text -.word foo(tpoff) -.word foo(tlsgd) -EOF -if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 - (eval $ac_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - libc_cv_arm_tls=yes -else - libc_cv_arm_tls=no -fi -rm -f conftest* -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_arm_tls" >&5 -$as_echo "$libc_cv_arm_tls" >&6; } -if test $libc_cv_arm_tls = no; then - as_fn_error $? "the assembler must support TLS" "$LINENO" 5 -fi - -#AC_DEFINE(PI_STATIC_AND_HIDDEN) diff --git a/ports/sysdeps/arm/elf/configure.in b/ports/sysdeps/arm/elf/configure.in deleted file mode 100644 index 123a32186..000000000 --- a/ports/sysdeps/arm/elf/configure.in +++ /dev/null @@ -1,33 +0,0 @@ -GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. -# Local configure fragment for sysdeps/arm/elf. - -# Check for support of thread-local storage handling in assembler and -# linker. -AC_CACHE_CHECK(for ARM TLS support, libc_cv_arm_tls, [dnl -cat > conftest.s <<\EOF - .section ".tdata", "awT", %progbits - .globl foo -foo: .long 1 - .section ".tbss", "awT", %nobits - .globl bar -bar: .skip 4 - .text -.word foo(tpoff) -.word foo(tlsgd) -EOF -dnl -if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then - libc_cv_arm_tls=yes -else - libc_cv_arm_tls=no -fi -rm -f conftest*]) -if test $libc_cv_arm_tls = no; then - AC_MSG_ERROR([the assembler must support TLS]) -fi - -dnl It is always possible to access static and hidden symbols in an -dnl position independent way. -dnl NOTE: This feature was added by the GCC TLS patches. We should test for -dnl it. Until we do, don't define it. -#AC_DEFINE(PI_STATIC_AND_HIDDEN) diff --git a/ports/sysdeps/arm/elf/start.S b/ports/sysdeps/arm/start.S index a857d8b97..a857d8b97 100644 --- a/ports/sysdeps/arm/elf/start.S +++ b/ports/sysdeps/arm/start.S diff --git a/ports/sysdeps/m68k/m680x0/fpu/bits/mathinline.h b/ports/sysdeps/m68k/m680x0/fpu/bits/mathinline.h index 8d4e30a4a..ffcc39edf 100644 --- a/ports/sysdeps/m68k/m680x0/fpu/bits/mathinline.h +++ b/ports/sysdeps/m68k/m680x0/fpu/bits/mathinline.h @@ -146,7 +146,8 @@ __NTH (__signbitl (long double __x)) __m81_defun (float_type, func, (float_type __mathop_x)) \ { \ float_type __result; \ - __asm("f" __STRING(op) "%.x %1, %0" : "=f" (__result) : "f" (__mathop_x));\ + __asm __volatile__ ("f" __STRING(op) "%.x %1, %0" \ + : "=f" (__result) : "f" (__mathop_x)); \ return __result; \ } @@ -243,8 +244,8 @@ __m81_defun (int, __CONCAT(__isinf,s), (float_type __value)) \ /* There is no branch-condition for infinity, \ so we must extract and examine the condition codes manually. */ \ unsigned long int __fpsr; \ - __asm("ftst%.x %1\n" \ - "fmove%.l %/fpsr, %0" : "=dm" (__fpsr) : "f" (__value)); \ + __asm ("ftst%.x %1\n" \ + "fmove%.l %/fpsr, %0" : "=dm" (__fpsr) : "f" (__value)); \ return (__fpsr & (2 << 24)) ? (__fpsr & (8 << 24) ? -1 : 1) : 0; \ } \ \ @@ -262,7 +263,8 @@ __m81_defun (float_type, __CONCAT(__scalbn,s), \ (float_type __x, int __n)) \ { \ float_type __result; \ - __asm ("fscale%.l %1, %0" : "=f" (__result) : "dmi" (__n), "0" (__x)); \ + __asm __volatile__ ("fscale%.l %1, %0" : "=f" (__result) \ + : "dmi" (__n), "0" (__x)); \ return __result; \ } @@ -279,8 +281,8 @@ __inline_functions(long double,l) __m81_defun (int, __CONCAT(__isnan,s), (float_type __value)) \ { \ char __result; \ - __asm("ftst%.x %1\n" \ - "fsun %0" : "=dm" (__result) : "f" (__value)); \ + __asm ("ftst%.x %1\n" \ + "fsun %0" : "=dm" (__result) : "f" (__value)); \ return __result; \ } @@ -319,7 +321,7 @@ __m81_defun (float_type, __CONCAT(__nearbyint,s), (float_type __x)) \ __m81_defun (long int, __CONCAT(__lrint,s), (float_type __x)) \ { \ long int __result; \ - __asm ("fmove%.l %1, %0" : "=dm" (__result) : "f" (__x)); \ + __asm __volatile__ ("fmove%.l %1, %0" : "=dm" (__result) : "f" (__x)); \ return __result; \ } @@ -337,8 +339,8 @@ __m81_inline void \ __NTH (__m81_u(__CONCAT(__sincos,s))(float_type __x, float_type *__sinx, \ float_type *__cosx)) \ { \ - __asm ("fsincos%.x %2,%1:%0" \ - : "=f" (*__sinx), "=f" (*__cosx) : "f" (__x)); \ + __asm __volatile__ ("fsincos%.x %2,%1:%0" \ + : "=f" (*__sinx), "=f" (*__cosx) : "f" (__x)); \ } __inline_functions (double,) diff --git a/ports/sysdeps/m68k/m680x0/fpu/libm-test-ulps b/ports/sysdeps/m68k/m680x0/fpu/libm-test-ulps index 8d6478cfe..b153ba9be 100644 --- a/ports/sysdeps/m68k/m680x0/fpu/libm-test-ulps +++ b/ports/sysdeps/m68k/m680x0/fpu/libm-test-ulps @@ -439,12 +439,18 @@ ildouble: 1 ldouble: 1 # cexp +Test "Real part of: cexp (-10000 + 0x1p16383 i) == 1.045876464564882298442774542991176546722e-4343 + 4.421154026488516836023811173959413420548e-4344 i": +ildouble: 1 +ldouble: 1 Test "Real part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i": float: 1 ifloat: 1 Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i": float: 1 ifloat: 1 +Test "Real part of: cexp (-95 + 0.75 i) == 4.039714446238306526889476684000081624047e-42 + 3.763383677300535390271646960780570275931e-42 i": +ildouble: 1 +ldouble: 1 Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i": float: 2 ifloat: 2 @@ -453,6 +459,21 @@ float: 1 ifloat: 1 ildouble: 1 ldouble: 1 +Test "Imaginary part of: cexp (11356.5625 + 0.75 i) == 9.052188470850960144814815984311663764287e4931 + 8.432986734191301036267148978260970230200e4931 i": +ildouble: 1 +ldouble: 1 +Test "Imaginary part of: cexp (50 + 0x1p127 i) == 4.053997150228616856622417636046265337193e21 + 3.232070315463388524466674772633810238819e21 i": +ildouble: 1 +ldouble: 1 +Test "Real part of: cexp (709.8125 + 0.75 i) == 1.355121963080879535248452862759108365762e308 + 1.262426823598609432507811340856186873507e308 i": +ildouble: 1 +ldouble: 1 +Test "Real part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i": +ildouble: 1 +ldouble: 1 +Test "Imaginary part of: cexp (88.75 + 0.75 i) == 2.558360358486542817001900410314204322891e38 + 2.383359453227311447654736314679677655100e38 i": +ildouble: 1 +ldouble: 1 # clog Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i": @@ -1128,8 +1149,8 @@ ifloat: 5 ildouble: 2 ldouble: 2 Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6": -float: 2 -ifloat: 2 +float: 3 +ifloat: 3 ildouble: 1 ldouble: 1 Test "jn (2, 0x1.ffff62p+99) == -4.43860668048170034334926693188979974489e-16": @@ -1941,6 +1962,8 @@ ldouble: 1 Function: Real part of "cexp": float: 2 ifloat: 2 +ildouble: 1 +ldouble: 1 Function: Imaginary part of "cexp": float: 1 diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_cexp.c b/ports/sysdeps/m68k/m680x0/fpu/s_cexp.c index 62cddbdad..c2a9f1d22 100644 --- a/ports/sysdeps/m68k/m680x0/fpu/s_cexp.c +++ b/ports/sysdeps/m68k/m680x0/fpu/s_cexp.c @@ -17,6 +17,7 @@ License along with the GNU C Library. If not, see <http://www.gnu.org/licenses/>. */ +#include <float.h> #include <complex.h> #include <math.h> #include "mathimpl.h" @@ -43,26 +44,46 @@ s(__cexp) (__complex__ float_type x) if ((ix_cond & (__M81_COND_NAN|__M81_COND_INF)) == 0) { /* Imaginary part is finite. */ - float_type exp_val = m81(__ieee754_exp) (__real__ x); + unsigned long rx_cond = __m81_test (__real__ x); - __real__ retval = __imag__ retval = exp_val; - if (m81(__finite) (exp_val)) + if ((rx_cond & (__M81_COND_NAN|__M81_COND_INF)) == 0) { - float_type sin_ix, cos_ix; - __asm ("fsincos%.x %2,%1:%0" : "=f" (sin_ix), "=f" (cos_ix) - : "f" (__imag__ x)); - __real__ retval *= cos_ix; + const int t = (int) ((LDBL_MAX_EXP - 1) * M_LN2l); + long double sin_ix, cos_ix, exp_val; + + __m81_u (__sincosl) (__imag__ x, &sin_ix, &cos_ix); + + if (__real__ x > t) + { + long double exp_t = __m81_u(__ieee754_expl) (t); + __real__ x -= t; + sin_ix *= exp_t; + cos_ix *= exp_t; + if (__real__ x > t) + { + __real__ x -= t; + sin_ix *= exp_t; + cos_ix *= exp_t; + } + } + + exp_val = __m81_u(__ieee754_expl) (__real__ x); + __real__ retval = exp_val * cos_ix; if (ix_cond & __M81_COND_ZERO) __imag__ retval = __imag__ x; else - __imag__ retval *= sin_ix; + __imag__ retval = exp_val * sin_ix; } else { /* Compute the sign of the result. */ - float_type remainder, pi_2; + long double remainder, pi_2; int quadrant; + if ((rx_cond & (__M81_COND_NAN|__M81_COND_NEG)) == __M81_COND_NEG) + __real__ retval = __imag__ retval = 0.0; + else + __real__ retval = __imag__ retval = __real__ x; __asm ("fmovecr %#0,%0\n\tfscale%.w %#-1,%0" : "=f" (pi_2)); __asm ("fmod%.x %2,%0\n\tfmove%.l %/fpsr,%1" : "=f" (remainder), "=dm" (quadrant) @@ -83,7 +104,7 @@ s(__cexp) (__complex__ float_type x) __imag__ retval = -__imag__ retval; break; } - if (ix_cond & __M81_COND_ZERO && !m81(__isnan) (exp_val)) + if (ix_cond & __M81_COND_ZERO && (rx_cond & __M81_COND_NAN) == 0) __imag__ retval = __imag__ x; } } diff --git a/ports/sysdeps/m68k/elf/start.S b/ports/sysdeps/m68k/start.S index 7c3e99aa7..7c3e99aa7 100644 --- a/ports/sysdeps/m68k/elf/start.S +++ b/ports/sysdeps/m68k/start.S diff --git a/ports/sysdeps/mips/elf/configure b/ports/sysdeps/mips/configure index 3cf02e0f1..e80f0a01a 100644 --- a/ports/sysdeps/mips/elf/configure +++ b/ports/sysdeps/mips/configure @@ -81,7 +81,7 @@ $as_echo X/"$0" | } # This file is generated from configure.in by Autoconf. DO NOT EDIT! - # Local configure fragment for sysdeps/mips/elf. + # Local configure fragment for sysdeps/mips. # Check for support of thread-local storage handling in assembler and # linker. diff --git a/ports/sysdeps/mips/elf/configure.in b/ports/sysdeps/mips/configure.in index 5cb5a742e..ed92d2938 100644 --- a/ports/sysdeps/mips/elf/configure.in +++ b/ports/sysdeps/mips/configure.in @@ -1,5 +1,5 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. -# Local configure fragment for sysdeps/mips/elf. +# Local configure fragment for sysdeps/mips. # Check for support of thread-local storage handling in assembler and # linker. diff --git a/ports/sysdeps/mips/elf/start.S b/ports/sysdeps/mips/start.S index fa0cfe14e..fa0cfe14e 100644 --- a/ports/sysdeps/mips/elf/start.S +++ b/ports/sysdeps/mips/start.S diff --git a/ports/sysdeps/unix/arm/start.c b/ports/sysdeps/unix/arm/start.c deleted file mode 100644 index e9a032b9d..000000000 --- a/ports/sysdeps/unix/arm/start.c +++ /dev/null @@ -1,85 +0,0 @@ -/* Special startup code for ARM a.out binaries. - Copyright (C) 1998, 2004, 2012 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 - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - In addition to the permissions in the GNU Lesser General Public - License, the Free Software Foundation gives you unlimited - permission to link the compiled version of this file with other - programs, and to distribute those programs without any restriction - coming from the use of this file. (The GNU Lesser General Public - License restrictions do apply in other respects; for example, they - cover modification of the file, and distribution when not linked - into another program.) - - Note that people who make modified versions of this file are not - obligated to grant this special exception for their modified - versions; it is their choice whether to do so. The GNU Lesser - General Public License gives permission to release a modified - version without this exception; this exception also makes it - possible to release a modified version which carries forward this - exception. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <http://www.gnu.org/licenses/>. */ - -#include <errno.h> -#include <stdlib.h> -#include <unistd.h> -#include <sysdep.h> - -/* The first piece of initialized data. */ -int __data_start = 0; -weak_alias (__data_start, data_start) - -extern void __libc_init (int argc, char **argv, char **envp); -extern int main (int argc, char **argv, char **envp); - -/* N.B.: It is important that this be the first function. - This file is the first thing in the text section. */ - -/* If this was in C it might create its own stack frame and - screw up the arguments. */ -asm (".text; .globl _start; _start: B start1"); - -/* Fool gcc into thinking that more args are passed. This makes it look - on the stack (correctly) for the real arguments. It causes somewhat - strange register usage in start1(), but we aren't too bothered about - that at the moment. */ -#define DUMMIES a1, a2, a3, a4 - -#ifdef DUMMIES -#define ARG_DUMMIES DUMMIES, -#define DECL_DUMMIES int DUMMIES; -#else -#define ARG_DUMMIES -#define DECL_DUMMIES -#endif - -/* ARGSUSED */ -static void -start1 (ARG_DUMMIES argc, argv, envp) - DECL_DUMMIES - int argc; - char **argv; - char **envp; -{ - /* Store a pointer to the environment. */ - __environ = envp; - - /* Do C library initializations. */ - __libc_init (argc, argv, __environ); - - /* Call the user program. */ - exit (main (argc, argv, __environ)); -} diff --git a/ports/sysdeps/unix/sysv/linux/arm/bits/mman.h b/ports/sysdeps/unix/sysv/linux/arm/bits/mman.h index 0b24db103..46c7249f7 100644 --- a/ports/sysdeps/unix/sysv/linux/arm/bits/mman.h +++ b/ports/sysdeps/unix/sysv/linux/arm/bits/mman.h @@ -1,6 +1,5 @@ /* Definitions for POSIX memory map interface. Linux/ARM version. - Copyright (C) 1997, 2000, 2003, 2005, 2006, 2009, 2011 - Free Software Foundation, Inc. + Copyright (C) 1997-2012 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 @@ -63,6 +62,8 @@ # define MAP_NORESERVE 0x04000 /* Don't check for reservations. */ # define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */ # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */ +# define MAP_STACK 0x20000 /* Allocation is for a stack. */ +# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ #endif /* Flags to `msync'. */ diff --git a/ports/sysdeps/unix/sysv/linux/hppa/bits/atomic.h b/ports/sysdeps/unix/sysv/linux/hppa/bits/atomic.h index 89823d279..457c2e967 100644 --- a/ports/sysdeps/unix/sysv/linux/hppa/bits/atomic.h +++ b/ports/sysdeps/unix/sysv/linux/hppa/bits/atomic.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003 Free Software Foundation, Inc. +/* Copyright (C) 2003-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Carlos O'Donell <carlos@baldric.uwo.ca>, 2005. @@ -79,14 +79,13 @@ typedef uintmax_t uatomic_max_t; "cmpb,=,n %%r25, %%r21, 0b \n\t" \ "nop \n\t" \ "stw %%r28, %0 \n\t" \ - "sub %%r0, %%r21, %%r21 \n\t" \ "stw %%r21, %1 \n\t" \ : "=m" (lws_ret), "=m" (lws_errno) \ : "r" (mem), "r" (oldval), "r" (newval) \ : _LWS_CLOBBER \ ); \ \ - if(lws_errno == EFAULT || lws_errno == ENOSYS) \ + if(lws_errno == -EFAULT || lws_errno == -ENOSYS) \ ABORT_INSTRUCTION; \ \ lws_ret; \ diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/mman.h b/ports/sysdeps/unix/sysv/linux/mips/bits/mman.h index d23a766b3..e9c919b8c 100644 --- a/ports/sysdeps/unix/sysv/linux/mips/bits/mman.h +++ b/ports/sysdeps/unix/sysv/linux/mips/bits/mman.h @@ -1,6 +1,5 @@ /* Definitions for POSIX memory map interface. Linux/MIPS version. - Copyright (C) 1997, 2000, 2003, 2004, 2005, 2006, 2009, 2011 - Free Software Foundation, Inc. + Copyright (C) 1997-2012 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 @@ -65,6 +64,8 @@ # define MAP_LOCKED 0x8000 /* pages are locked */ # define MAP_POPULATE 0x10000 /* populate (prefault) pagetables */ # define MAP_NONBLOCK 0x20000 /* do not block on IO */ +# define MAP_STACK 0x40000 /* Allocation is for a stack. */ +# define MAP_HUGETLB 0x80000 /* Create huge page mapping. */ #endif /* Flags to `msync'. */ |