about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--nptl/ChangeLog4
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/Makefile4
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/pthread_attr_setstack.c31
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/pthread_attr_setstackaddr.c30
-rw-r--r--sysdeps/ia64/fpu/libm-test-ulps33
6 files changed, 85 insertions, 21 deletions
diff --git a/ChangeLog b/ChangeLog
index f4f02f504d..857fba22d3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2003-03-04  Jakub Jelinek  <jakub@redhat.com>
+
+	* sysdeps/ia64/fpu/libm-test-ulps: Regenerated.
+
 2003-03-04  Ulrich Drepper  <drepper@redhat.com>
 
 	* sysdeps/unix/sysv/linux/x86_64/clone.S: Add support for the new
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index daa6b4e46c..ff0fbefb45 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,5 +1,9 @@
 2003-03-04  Ulrich Drepper  <drepper@redhat.com>
 
+	* sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
+	* sysdeps/unix/sysv/linux/x86_64/pthread_attr_setstack.c: New file.
+	* sysdeps/unix/sysv/linux/x86_64/pthread_attr_setstackaddr.c: New file.
+
 	* pthread_attr_setstack.c: Moved to...
 	* sysdeps/pthread/pthread_attr_setstack.c: ...here.  New file.
 	* pthread_attr_setstackaddr.c: Moved to...
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile b/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile
new file mode 100644
index 0000000000..c73c2b6c26
--- /dev/null
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile
@@ -0,0 +1,4 @@
+ifeq ($(subdir),nptl)
+# We need to make sure that stack memory is allocated in the low 4GB.
+CFLAGS-pthread_create.c += -DARCH_MAP_FLAGS=MAP_32BIT
+endif
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_attr_setstack.c b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_attr_setstack.c
new file mode 100644
index 0000000000..7b9f094033
--- /dev/null
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_attr_setstack.c
@@ -0,0 +1,31 @@
+/* Copyright (C) 2003 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
+
+   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.
+
+   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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <inttypes.h>
+
+/* For Linux/x86-64 we have one extra requirement: the stack must be
+   in the first 4GB.  Otherwise the segment register base address is
+   not wide enough.  */
+#define EXTRA_PARAM_CHECKS \
+  if ((uintptr_t) stackaddr > 0x100000000ul				      \
+      || (uintptr_t) stackaddr + stacksize > 0x100000000ul)		      \
+    /* We cannot handle that stack address.  */				      \
+    return EINVAL
+
+#include <nptl/sysdeps/pthread/pthread_attr_setstack.c>
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_attr_setstackaddr.c b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_attr_setstackaddr.c
new file mode 100644
index 0000000000..e95f7dff11
--- /dev/null
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_attr_setstackaddr.c
@@ -0,0 +1,30 @@
+/* Copyright (C) 2003 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
+
+   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.
+
+   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, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <inttypes.h>
+
+/* For Linux/x86-64 we have one extra requirement: the stack must be
+   in the first 4GB.  Otherwise the segment register base address is
+   not wide enough.  */
+#define EXTRA_PARAM_CHECKS \
+  if ((uintptr_t) stackaddr > 0x100000000ul)				      \
+    /* We cannot handle that stack address.  */				      \
+    return EINVAL
+
+#include <nptl/sysdeps/pthread/pthread_attr_setstackaddr.c>
diff --git a/sysdeps/ia64/fpu/libm-test-ulps b/sysdeps/ia64/fpu/libm-test-ulps
index 419e56e435..bdb3f7fc63 100644
--- a/sysdeps/ia64/fpu/libm-test-ulps
+++ b/sysdeps/ia64/fpu/libm-test-ulps
@@ -1,10 +1,5 @@
 # Begin of automatic generation
 
-# acos
-Test "acos (0.0625) == 1.50825556499840522843072005474337068":
-ildouble: 622
-ldouble: 622
-
 # cacos
 Test "Imaginary part of: cacos (0.75 + 1.25 i) == 1.11752014915610270578240049553777969 - 1.13239363160530819522266333696834467 i":
 float: 1
@@ -122,8 +117,6 @@ ifloat: 1
 Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
 float: 1
 ifloat: 1
-ildouble: 202
-ldouble: 202
 Test "Imaginary part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
 ildouble: 1
 ldouble: 1
@@ -223,6 +216,9 @@ idouble: 1
 ifloat: 1
 
 # cos
+Test "cos (0.80190127184058835) == 0.69534156199418473":
+double: 1
+idouble: 1
 Test "cos (M_PI_6l * 2.0) == 0.5":
 double: 1
 float: 1
@@ -247,8 +243,6 @@ ldouble: 1
 Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
 float: 1
 ifloat: 1
-ildouble: 587
-ldouble: 587
 Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
 float: 1
 ifloat: 1
@@ -259,8 +253,8 @@ double: 1
 float: 4
 idouble: 1
 ifloat: 4
-ildouble: 768
-ldouble: 768
+ildouble: 1
+ldouble: 1
 Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
 ildouble: 1
 ldouble: 1
@@ -272,8 +266,8 @@ double: 2
 float: 3
 idouble: 2
 ifloat: 3
-ildouble: 370
-ldouble: 370
+ildouble: 3
+ldouble: 3
 Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i":
 ildouble: 1
 ldouble: 1
@@ -610,6 +604,9 @@ ildouble: 1
 ldouble: 1
 
 # sincos
+Test "sincos (0.80190127184058835, &sin_res, &cos_res) puts 0.69534156199418473 in cos_res":
+double: 1
+idouble: 1
 Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
 double: 1
 float: 1
@@ -794,10 +791,6 @@ double: 1
 idouble: 1
 
 # Maximal error of functions:
-Function: "acos":
-ildouble: 622
-ldouble: 622
-
 Function: Imaginary part of "cacos":
 float: 1
 ifloat: 1
@@ -889,8 +882,6 @@ ldouble: 1
 Function: Real part of "cexp":
 float: 1
 ifloat: 1
-ildouble: 202
-ldouble: 202
 
 Function: Imaginary part of "cexp":
 float: 1
@@ -933,8 +924,8 @@ double: 2
 float: 5
 idouble: 2
 ifloat: 5
-ildouble: 768
-ldouble: 768
+ildouble: 3
+ldouble: 3
 
 Function: Imaginary part of "cpow":
 double: 2