summaryrefslogtreecommitdiff
path: root/ports
diff options
context:
space:
mode:
authorjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2012-03-28 22:24:59 +0000
committerjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2012-03-28 22:24:59 +0000
commitf4b59fd62358f28e23bae2fa8756913fd758299a (patch)
treeaa78d41676b17cfae0c8cd3c77e0004a4c946a5e /ports
parent11e8a843c1be2bfbacb427ca25282e6979ebb48f (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.alpha12
-rw-r--r--ports/ChangeLog.arm16
-rw-r--r--ports/ChangeLog.hppa7
-rw-r--r--ports/ChangeLog.m68k21
-rw-r--r--ports/ChangeLog.mips13
-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/configure38
-rw-r--r--ports/sysdeps/arm/configure.in31
-rw-r--r--ports/sysdeps/arm/elf/configure122
-rw-r--r--ports/sysdeps/arm/elf/configure.in33
-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.h20
-rw-r--r--ports/sysdeps/m68k/m680x0/fpu/libm-test-ulps27
-rw-r--r--ports/sysdeps/m68k/m680x0/fpu/s_cexp.c41
-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.c85
-rw-r--r--ports/sysdeps/unix/sysv/linux/arm/bits/mman.h5
-rw-r--r--ports/sysdeps/unix/sysv/linux/hppa/bits/atomic.h5
-rw-r--r--ports/sysdeps/unix/sysv/linux/mips/bits/mman.h5
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'. */