This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] sparcv9-linux fixes


Hi!

4 different things:
1) libc.so did not compile at all, because of undefined __divdi3_internal
   reference. Instead of requiring each port using sysdeps/wordsize-32
   to add divdi3 manually into sysdep_routines, I think
   sysdeps/wordsize-32/Makefile should do it for all.
2) ld.so segfaulted on sparcv9 (and sparc64), because they have
   HP_TIMING, even HP_TIMING_INLINE, but due to lack of relocations
   even accesses to static variables in pic go through .got and need
   R_SPARC_RELATIVE adjustement (ie. !defined DONT_USE_BOOTSTRAP_MAP).
   I think it is better to do HP_TIMING_NOW ASAP even on these arches
   to an automatic variable and copy it to static variable later.
3) DaveM changed sparc64-linux specs file so that it hardcodes even
   /usr/lib/crt[in].o for -m32 link. Thus the ugly workaround has to be
   extended for sparc32 too.
4) and last ulps regeneration to make math tests happy

With all this sparcv9-linux glibc compiles and passes make check with
exception of tst-timer test
rpm -q binutils gcc
binutils-2.13.90.0.2-2
gcc-3.2-7.1
(the latter based on 20020903 checkout).

2002-09-12  Jakub Jelinek  <jakub@redhat.com>

	* elf/rtld.c (struct dl_start_final_info): New.
	(_dl_start_final): Change second argument to struct
	dl_start_final_info *.  Set start_time from info.
	(_dl_start): Remove bootstrap_map variable, add info.
	Define bootstrap_map as macro.  If not DONT_USE_BOOTSTRAP_MAP,
	store HP_TIMING_NOW result into info.start_time.

	* sysdeps/wordsize-32/Makefile: New file.
	* sysdeps/arm/Makefile: Removed.
	* sysdeps/i386/Makefile (sysdep_routines, shared-only-routines):
	Don't add divdi3 here.
	* sysdeps/m68k/Makefile: Likewise.
	* sysdeps/powerpc/powerpc32/Makefile: Likewise.
	* sysdeps/sh/Makefile: Likewise.
	* sysdeps/s390/s390-32/Makefile: Likewise.

	* sysdeps/sparc/sparc32/fpu/libm-test-ulps: Regenerate.

linuxthreads/
	* sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Move...
	* sysdeps/unix/sysv/linux/sparc/Makefile: ...here.
	Replace /usr/lib/crt[in].o with crt[in].o too.

--- libc/elf/rtld.c.jj	Thu Sep 12 02:54:46 2002
+++ libc/elf/rtld.c	Thu Sep 12 10:12:40 2002
@@ -146,8 +146,15 @@ TLS_INIT_HELPER
 #ifdef DONT_USE_BOOTSTRAP_MAP
 static ElfW(Addr) _dl_start_final (void *arg);
 #else
+struct dl_start_final_info
+{
+  struct link_map l;
+#if !defined HP_TIMING_NONAVAIL && HP_TIMING_INLINE
+  hp_timing_t start_time;
+#endif
+};
 static ElfW(Addr) _dl_start_final (void *arg,
-				   struct link_map *bootstrap_map_p);
+				   struct dl_start_final_info *info);
 #endif
 
 #ifdef RTLD_START
@@ -176,7 +183,7 @@ static inline ElfW(Addr) __attribute__ (
 _dl_start_final (void *arg)
 #else
 static ElfW(Addr) __attribute__ ((noinline))
-_dl_start_final (void *arg, struct link_map *bootstrap_map_p)
+_dl_start_final (void *arg, struct dl_start_final_info *info)
 #endif
 {
   ElfW(Addr) start_addr;
@@ -188,6 +195,10 @@ _dl_start_final (void *arg, struct link_
       /* If it hasn't happen yet record the startup time.  */
       if (! HP_TIMING_INLINE)
 	HP_TIMING_NOW (start_time);
+#ifndef DONT_USE_BOOTSTRAP_MAP
+      else
+	start_time = info->start_time;
+#endif
 
       /* Initialize the timing functions.  */
       HP_TIMING_DIFF_INIT ();
@@ -195,11 +206,11 @@ _dl_start_final (void *arg, struct link_
 
   /* Transfer data about ourselves to the permanent link_map structure.  */
 #ifndef DONT_USE_BOOTSTRAP_MAP
-  GL(dl_rtld_map).l_addr = bootstrap_map_p->l_addr;
-  GL(dl_rtld_map).l_ld = bootstrap_map_p->l_ld;
-  memcpy (GL(dl_rtld_map).l_info, bootstrap_map_p->l_info,
+  GL(dl_rtld_map).l_addr = info->l.l_addr;
+  GL(dl_rtld_map).l_ld = info->l.l_ld;
+  memcpy (GL(dl_rtld_map).l_info, info->l.l_info,
 	  sizeof GL(dl_rtld_map).l_info);
-  GL(dl_rtld_map).l_mach = bootstrap_map_p->l_mach;
+  GL(dl_rtld_map).l_mach = info->l.l_mach;
 #endif
   _dl_setup_hash (&GL(dl_rtld_map));
   GL(dl_rtld_map).l_opencount = 1;
@@ -208,20 +219,19 @@ _dl_start_final (void *arg, struct link_
   /* Copy the TLS related data if necessary.  */
 #if USE_TLS && !defined DONT_USE_BOOTSTRAP_MAP
 # ifdef HAVE___THREAD
-  assert (bootstrap_map_p->l_tls_modid != 0);
+  assert (info->l.l_tls_modid != 0);
 # else
-  if (bootstrap_map_p->l_tls_modid != 0)
+  if (info->l.l_tls_modid != 0)
 # endif
     {
-      GL(dl_rtld_map).l_tls_blocksize = bootstrap_map_p->l_tls_blocksize;
-      GL(dl_rtld_map).l_tls_align = bootstrap_map_p->l_tls_align;
-      GL(dl_rtld_map).l_tls_initimage_size
-	= bootstrap_map_p->l_tls_initimage_size;
-      GL(dl_rtld_map).l_tls_initimage = bootstrap_map_p->l_tls_initimage;
-      GL(dl_rtld_map).l_tls_offset = bootstrap_map_p->l_tls_offset;
+      GL(dl_rtld_map).l_tls_blocksize = info->l.l_tls_blocksize;
+      GL(dl_rtld_map).l_tls_align = info->l.l_tls_align;
+      GL(dl_rtld_map).l_tls_initimage_size = info->l.l_tls_initimage_size;
+      GL(dl_rtld_map).l_tls_initimage = info->l.l_tls_initimage;
+      GL(dl_rtld_map).l_tls_offset = info->l.l_tls_offset;
       GL(dl_rtld_map).l_tls_modid = 1;
       GL(dl_rtld_map).l_tls_tp_initialized
-	= bootstrap_map_p->l_tls_tp_initialized;
+	= info->l.l_tls_tp_initialized;
     }
 #endif
 
@@ -260,7 +270,8 @@ _dl_start (void *arg)
 #ifdef DONT_USE_BOOTSTRAP_MAP
 # define bootstrap_map GL(dl_rtld_map)
 #else
-  struct link_map bootstrap_map;
+  struct dl_start_final_info info;
+# define bootstrap_map info.l
 #endif
 #if !defined HAVE_BUILTIN_MEMSET || defined USE_TLS
   size_t cnt;
@@ -281,7 +292,11 @@ _dl_start (void *arg)
 #include "dynamic-link.h"
 
   if (HP_TIMING_INLINE && HP_TIMING_AVAIL)
+#ifdef DONT_USE_BOOTSTRAP_MAP
     HP_TIMING_NOW (start_time);
+#else
+    HP_TIMING_NOW (info.start_time);
+#endif
 
   /* Partly clean the `bootstrap_map' structure up.  Don't use
      `memset' since it might not be built in or inlined and we cannot
@@ -439,7 +454,7 @@ _dl_start (void *arg)
 #ifdef DONT_USE_BOOTSTRAP_MAP
     ElfW(Addr) entry = _dl_start_final (arg);
 #else
-    ElfW(Addr) entry = _dl_start_final (arg, &bootstrap_map);
+    ElfW(Addr) entry = _dl_start_final (arg, &info);
 #endif
 
 #ifndef ELF_MACHINE_START_ADDRESS
--- libc/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile.jj	Wed Apr 25 06:39:42 2001
+++ libc/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile	Thu Sep 12 13:01:55 2002
@@ -1,9 +0,0 @@
-ifeq ($(subdir),linuxthreads)
-# gcc -m64 has /usr/lib64/crti.o hardcoded in the specs file, because otherwise
-# it would normally find 32bit crti.o.
-LDFLAGS-pthread.so += -specs=$(objpfx)specs
-before-compile += $(objpfx)specs
-generated += specs
-$(objpfx)specs:
-	$(CC) $(CFLAGS) $(CPPFLAGS) -dumpspecs | sed 's_/usr/lib64/crti.o_crti.o_g' > $@
-endif
--- libc/linuxthreads/sysdeps/unix/sysv/linux/sparc/Makefile.jj	Thu Sep 12 13:01:59 2002
+++ libc/linuxthreads/sysdeps/unix/sysv/linux/sparc/Makefile	Thu Sep 12 13:03:20 2002
@@ -0,0 +1,10 @@
+ifeq ($(subdir),linuxthreads)
+# gcc has /usr/lib{,64}/crti.o hardcoded in the specs file, because otherwise
+# it would normally find {64,32}bit crt[in].o.
+LDFLAGS-pthread.so += -specs=$(objpfx)specs
+before-compile += $(objpfx)specs
+generated += specs
+$(objpfx)specs:
+	$(CC) $(CFLAGS) $(CPPFLAGS) -dumpspecs \
+	  | sed 's,/usr/lib\(\|64\)/\(crt[in]\.o\),\2,g' > $@
+endif
--- libc/sysdeps/arm/Makefile.jj	Mon Aug 12 15:36:38 2002
+++ libc/sysdeps/arm/Makefile	Thu Sep 12 08:40:32 2002
@@ -1,7 +0,0 @@
-ifeq ($(subdir),csu)
-ifeq (yes,$(build-shared))
-# Compatibility
-sysdep_routines += divdi3
-shared-only-routines += divdi3
-endif
-endif
--- libc/sysdeps/i386/Makefile.jj	Sat Mar 23 05:51:15 2002
+++ libc/sysdeps/i386/Makefile	Thu Sep 12 08:40:19 2002
@@ -9,12 +9,6 @@ ifeq ($(subdir),csu)
 # On i686 we must avoid generating the trampoline functions generated
 # to get the GOT pointer.
 CFLAGS-initfini.s += -march=i386 -mcpu=i386
-
-ifeq (yes,$(build-shared))
-# Compatibility
-sysdep_routines += divdi3
-shared-only-routines += divdi3
-endif
 endif
 
 ifeq ($(subdir),db2)
--- libc/sysdeps/m68k/Makefile.jj	Sat Mar 23 05:51:45 2002
+++ libc/sysdeps/m68k/Makefile	Thu Sep 12 08:41:27 2002
@@ -33,14 +33,6 @@ CFLAGS-setjmp.c := -fno-omit-frame-point
 # The 68k `long double' is a distinct type we support.
 long-double-fcts = yes
 
-ifeq ($(subdir),csu)
-ifeq (yes,$(build-shared))
-# Compatibility
-sysdep_routines += divdi3
-shared-only-routines += divdi3
-endif
-endif
-
 ifeq ($(subdir),elf)
 CFLAGS-rtld.c += -Wno-uninitialized -Wno-unused
 endif
--- libc/sysdeps/powerpc/powerpc32/Makefile.jj	Thu Sep  5 05:49:38 2002
+++ libc/sysdeps/powerpc/powerpc32/Makefile	Thu Sep 12 08:45:16 2002
@@ -37,8 +37,8 @@ ifeq (yes,$(have-protected))
 CPPFLAGS-divdi3.c = -DHAVE_DOT_HIDDEN
 CPPFLAGS-libgcc-compat.S = -DHAVE_DOT_HIDDEN
 endif
-sysdep_routines += divdi3 libgcc-compat
-shared-only-routines += divdi3 libgcc-compat
+sysdep_routines += libgcc-compat
+shared-only-routines += libgcc-compat
 endif
 endif
 
--- libc/sysdeps/sparc/sparc32/fpu/libm-test-ulps.jj	Mon Oct  1 06:18:57 2001
+++ libc/sysdeps/sparc/sparc32/fpu/libm-test-ulps	Thu Sep 12 12:14:49 2002
@@ -1,64 +1,18 @@
 # Begin of automatic generation
 
-# asin
-Test "asin (-0.5) == -pi/6":
-float: 2
-ifloat: 2
-Test "asin (0.5) == pi/6":
-float: 2
-ifloat: 2
-Test "asin (0.7) == 0.77539749661075306374035335271498708":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-# atanh
-Test "atanh (0.7) == 0.8673005276940531944":
-double: 1
-idouble: 1
-
 # atan2
-Test "atan2 (0.7, -1.0) == 2.530866689200584621918884506789267":
-float:  3.0000
-ifloat:  3.0000
-Test "atan2 (-0.7, -1.0) == -2.530866689200584621918884506789267":
-float:  3.0000
-ifloat:  3.0000
-Test "atan2 (1.4, -0.93) == 2.1571487668237843754887415992772736":
-float:  4.0000
-ifloat:  4.0000
-Function: "atan2":
-float:  4.0000
-ifloat:  4.0000
-
-# cabs
-Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271":
-float: 1
-ifloat: 1
-Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554":
-double: 1
-idouble: 1
-Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271":
+Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025":
+float: 3
+ifloat: 3
+Test "atan2 (0.75, -1.0) == 2.49809154479650885165983415456218025":
+float: 3
+ifloat: 3
+Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772":
 float: 1
 ifloat: 1
 
-# cacos
-Test "Real part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053 - 1.0927647857577371459105272080819308 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053 - 1.0927647857577371459105272080819308 i":
+# atanh
+Test "atanh (0.75) == 0.972955074527656652552676371721589865":
 float: 1
 ifloat: 1
 
@@ -73,20 +27,12 @@ double: 1
 float: 3
 idouble: 1
 ifloat: 3
-Test "Real part of: cacosh (0.7 + 1.2 i) == 1.0927647857577371459105272080819308 + 1.1351827477151551088992008271819053 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
 
 # casin
-Test "Real part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462 + 1.0927647857577371459105272080819308 i":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-Test "Imaginary part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462 + 1.0927647857577371459105272080819308 i":
+Test "Real part of: casin (0.75 + 1.25 i) == 0.453276177638793913448921196101971749 + 1.13239363160530819522266333696834467 i":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
 
 # casinh
@@ -100,11 +46,13 @@ double: 3
 float: 6
 idouble: 3
 ifloat: 6
-Test "Real part of: casinh (0.7 + 1.2 i) == 0.97865459559367387689317593222160964 + 0.91135418953156011567903546856170941 i":
+Test "Real part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: casinh (0.75 + 1.25 i) == 1.03171853444778027336364058631006594 + 0.911738290968487636358489564316731207 i":
 double: 1
-idouble: 1
-Test "Imaginary part of: casinh (0.7 + 1.2 i) == 0.97865459559367387689317593222160964 + 0.91135418953156011567903546856170941 i":
 float: 1
+idouble: 1
 ifloat: 1
 
 # catan
@@ -116,12 +64,9 @@ double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "Real part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 + 0.57705737765343067644394541889341712 i":
+Test "Real part of: catan (0.75 + 1.25 i) == 1.10714871779409050301706546017853704 + 0.549306144334054845697622618461262852 i":
 float: 4
 ifloat: 4
-Test "Imaginary part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 + 0.57705737765343067644394541889341712 i":
-double: 1
-idouble: 1
 
 # catanh
 Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
@@ -130,20 +75,21 @@ idouble: 4
 Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
 float: 4
 ifloat: 4
-Test "Real part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i":
+Test "Real part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
 double: 1
-float: 6
 idouble: 1
+Test "Imaginary part of: catanh (0.75 + 1.25 i) == 0.261492138795671927078652057366532140 + 0.996825126463918666098902241310446708 i":
+float: 6
 ifloat: 6
 
 # cbrt
 Test "cbrt (-27.0) == -3.0":
 double: 1
 idouble: 1
-Test "cbrt (0.970299) == 0.99":
+Test "cbrt (0.75) == 0.908560296416069829445605878163630251":
+double: 1
+idouble: 1
+Test "cbrt (0.9921875) == 0.997389022060725270579075195353955217":
 double: 1
 idouble: 1
 
@@ -151,12 +97,14 @@ idouble: 1
 Test "Imaginary part of: ccos (-2 - 3 i) == -4.1896256909688072301 - 9.1092278937553365979 i":
 float: 1
 ifloat: 1
-Test "Real part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i":
-double: 1
-idouble: 1
-Test "Imaginary part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i":
+Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
 double: 1
+float: 1
 idouble: 1
+ifloat: 1
+Test "Imaginary part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i":
+float: 1
+ifloat: 1
 
 # ccosh
 Test "Real part of: ccosh (-2 - 3 i) == -3.7245455049153225654 + 0.5118225699873846088 i":
@@ -165,34 +113,30 @@ ifloat: 1
 Test "Imaginary part of: ccosh (-2 - 3 i) == -3.7245455049153225654 + 0.5118225699873846088 i":
 float: 1
 ifloat: 1
-Test "Real part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i":
+Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "Imaginary part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i":
-double: 1
-idouble: 1
+Test "Imaginary part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i":
+float: 1
+ifloat: 1
 
 # cexp
 Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
 float: 1
 ifloat: 1
-Test "Real part of: cexp (0.7 + 1.2 i) == 0.72969890915032360123451688642930727 + 1.8768962328348102821139467908203072 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: cexp (0.7 + 1.2 i) == 0.72969890915032360123451688642930727 + 1.8768962328348102821139467908203072 i":
+Test "Real part of: cexp (0.75 + 1.25 i) == 0.667537446429131586942201977015932112 + 2.00900045494094876258347228145863909 i":
 float: 1
 ifloat: 1
 
 # clog
 Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i":
-double: 1
 float: 3
-idouble: 1
 ifloat: 3
+Test "Real part of: clog (0.75 + 1.25 i) == 0.376885901188190075998919126749298416 + 1.03037682652431246378774332703115153 i":
+float: 1
+ifloat: 1
 
 # clog10
 Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
@@ -230,14 +174,9 @@ ifloat: 1
 Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
 float: 1
 ifloat: 1
-Test "Real part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 + 0.4528483579352493248 i":
-double: 1
+Test "Real part of: clog10 (0.75 + 1.25 i) == 0.163679467193165171449476605077428975 + 0.447486970040493067069984724340855636 i":
 float: 1
-idouble: 1
 ifloat: 1
-Test "Imaginary part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 + 0.4528483579352493248 i":
-double: 1
-idouble: 1
 Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
 float: 1
 ifloat: 1
@@ -252,28 +191,39 @@ float: 1
 ifloat: 1
 
 # cos
-Test "cos (0.7) == 0.76484218728448842625585999019186495":
+Test "cos (M_PI_6l * 2.0) == 0.5":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "cos (M_PI_6l * 2.0) == 0.5":
-double: 1
-float: 0.5
-idouble: 1
-ifloat: 0.5
 Test "cos (M_PI_6l * 4.0) == -0.5":
 double: 2
 float: 1
 idouble: 2
 ifloat: 1
 Test "cos (pi/2) == 0":
-double: 0.2758
-float: 0.3667
-idouble: 0.2758
-ifloat: 0.3667
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
 
 # cpow
+Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+float: 1
+ifloat: 1
+Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i":
+float: 1
+ifloat: 1
+Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i) == 0.117506293914473555420279832210420483 + 0.346552747708338676483025352060418001 i":
+double: 1
+float: 4
+idouble: 1
+ifloat: 4
+Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i) == 0.0846958290317209430433805274189191353 + 0.513285749182902449043287190519090481 i":
+double: 2
+float: 3
+idouble: 2
+ifloat: 3
 Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
 double: 1
 float: 4
@@ -283,24 +233,19 @@ Test "Imaginary part of: cpow (2 + 3 i, 
 float: 2
 ifloat: 2
 Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
-double: 1.1031
-float: 1.4668
-idouble: 1.1031
-ifloat: 1.4668
-
-# csin
-Test "Imaginary part of: csin (0.7 + 1.2 i) == 1.1664563419657581376 + 1.1544997246948547371 i":
-float: 1
-ifloat: 1
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
 
 # csinh
 Test "Imaginary part of: csinh (-2 - 3 i) == 3.5905645899857799520 - 0.5309210862485198052 i":
 double: 1
 idouble: 1
-Test "Real part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i":
+Test "Real part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
 float: 1
 ifloat: 1
-Test "Imaginary part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i":
+Test "Imaginary part of: csinh (0.75 + 1.25 i) == 0.259294854551162779153349830618433028 + 1.22863452409509552219214606515777594 i":
 float: 1
 ifloat: 1
 
@@ -311,27 +256,14 @@ ifloat: 1
 Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
 float: 1
 ifloat: 1
-Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
-float: 1
-ifloat: 1
 
 # ctan
 Test "Real part of: ctan (-2 - 3 i) == 0.0037640256415042482 - 1.0032386273536098014 i":
 double: 1
 idouble: 1
-Test "Real part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i":
-float: 1
-ifloat: 1
-Test "Imaginary part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i":
+Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i":
 double: 1
-float: 1
 idouble: 1
-ifloat: 1
 
 # ctanh
 Test "Real part of: ctanh (-2 - 3 i) == -0.9653858790221331242 + 0.0098843750383224937 i":
@@ -342,34 +274,22 @@ ifloat: 2
 Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
 float: 1
 ifloat: 1
-Test "Real part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "Imaginary part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
+Test "Real part of: ctanh (0.75 + 1.25 i) == 1.37260757053378320258048606571226857 + 0.385795952609750664177596760720790220 i":
+double: 1
+idouble: 1
+
+# erf
+Test "erf (1.25) == 0.922900128256458230136523481197281140":
+double: 1
+idouble: 1
 
 # erfc
-Test "erfc (0.7) == 0.32219880616258152702":
+Test "erfc (2.0) == 0.00467773498104726583793074363274707139":
 double: 1
 idouble: 1
-Test "erfc (1.2) == 0.089686021770364619762":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-Test "erfc (2.0) == 0.0046777349810472658379":
+Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
 double: 1
 idouble: 1
-Test "erfc (4.1) == 0.67000276540848983727e-8":
-double: 24
-float: 12
-idouble: 24
-ifloat: 12
 
 # exp10
 Test "exp10 (-1) == 0.1":
@@ -377,8 +297,10 @@ double: 2
 float: 1
 idouble: 2
 ifloat: 1
-Test "exp10 (0.7) == 5.0118723362727228500155418688494574":
+Test "exp10 (0.75) == 5.62341325190349080394951039776481231":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
 Test "exp10 (3) == 1000":
 double: 6
@@ -387,32 +309,13 @@ idouble: 6
 ifloat: 2
 
 # expm1
+Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
+double: 1
+idouble: 1
 Test "expm1 (1) == M_El - 1.0":
 float: 1
 ifloat: 1
 
-# fmod
-Test "fmod (-6.5, -2.3) == -1.9":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "fmod (-6.5, 2.3) == -1.9":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "fmod (6.5, -2.3) == 1.9":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "fmod (6.5, 2.3) == 1.9":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-
 # hypot
 Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
@@ -429,9 +332,6 @@ ifloat: 1
 Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
-Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554":
-double: 1
-idouble: 1
 Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
 float: 1
 ifloat: 1
@@ -443,90 +343,110 @@ float: 1
 ifloat: 1
 
 # j0
-Test "j0 (10.0) == -0.24593576445134833520":
+Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "j0 (0.75) == 0.864242275166648623555731103820923211":
+float: 1
+ifloat: 1
+Test "j0 (10.0) == -0.245935764451348335197760862485328754":
 double: 2
 float: 1
 idouble: 2
 ifloat: 1
-Test "j0 (2.0) == 0.22389077914123566805":
+Test "j0 (2.0) == 0.223890779141235668051827454649948626":
 float: 2
 ifloat: 2
-Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1"
+Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
 double: 1
-idouble: 1
 float: 1
-ifloat: 1
-Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1"
-double: 1
 idouble: 1
-float: 1
 ifloat: 1
-Test "j0 (8.0) == 0.17165080713755390609":
+Test "j0 (8.0) == 0.171650807137553906090869407851972001":
 float: 1
 ifloat: 1
 
 # j1
-Test "j1 (10.0) == 0.043472746168861436670":
+Test "j1 (10.0) == 0.0434727461688614366697487680258592883":
 float: 2
 ifloat: 2
-Test "j1 (2.0) == 0.57672480775687338720":
+Test "j1 (2.0) == 0.576724807756873387202448242269137087":
 double: 1
 idouble: 1
-Test "j1 (8.0) == 0.23463634685391462438":
+Test "j1 (8.0) == 0.234636346853914624381276651590454612":
 double: 1
 idouble: 1
 
 # jn
-Test "jn (0, 10.0) == -0.24593576445134833520":
+Test "jn (0, -4.0) == -3.9714980986384737228659076845169804197562E-1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "jn (0, 0.75) == 0.864242275166648623555731103820923211":
+float: 1
+ifloat: 1
+Test "jn (0, 10.0) == -0.245935764451348335197760862485328754":
 double: 2
 float: 1
 idouble: 2
 ifloat: 1
-Test "jn (0, 2.0) == 0.22389077914123566805":
+Test "jn (0, 2.0) == 0.223890779141235668051827454649948626":
 float: 2
 ifloat: 2
-Test "jn (0, 8.0) == 0.17165080713755390609":
+Test "jn (0, 4.0) == -3.9714980986384737228659076845169804197562E-1":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
-Test "jn (1, 10.0) == 0.043472746168861436670":
+Test "jn (0, 8.0) == 0.171650807137553906090869407851972001":
+float: 1
+ifloat: 1
+Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883":
 float: 2
 ifloat: 2
-Test "jn (1, 2.0) == 0.57672480775687338720":
+Test "jn (1, 2.0) == 0.576724807756873387202448242269137087":
 double: 1
 idouble: 1
-Test "jn (1, 8.0) == 0.23463634685391462438":
+Test "jn (1, 8.0) == 0.234636346853914624381276651590454612":
 double: 1
 idouble: 1
-Test "jn (10, 0.1) == 0.26905328954342155795e-19":
-double: 6
-float: 4
-idouble: 6
-ifloat: 4
-Test "jn (10, 0.7) == 0.75175911502153953928e-11":
-double: 3
+Test "jn (10, 0.125) == 0.250543369809369890173993791865771547e-18":
+double: 1
 float: 1
-idouble: 3
+idouble: 1
+ifloat: 1
+Test "jn (10, 0.75) == 0.149621713117596814698712483621682835e-10":
+double: 1
+float: 1
+idouble: 1
 ifloat: 1
-Test "jn (10, 10.0) == 0.20748610663335885770":
+Test "jn (10, 10.0) == 0.207486106633358857697278723518753428":
 double: 4
 float: 3
 idouble: 4
 ifloat: 3
-Test "jn (10, 2.0) == 0.25153862827167367096e-6":
+Test "jn (10, 2.0) == 0.251538628271673670963516093751820639e-6":
 float: 4
 ifloat: 4
-Test "jn (3, 0.1) == 0.000020820315754756261429":
+Test "jn (3, 0.125) == 0.406503832554912875023029337653442868e-4":
 double: 1
+float: 1
 idouble: 1
-Test "jn (3, 0.7) == 0.0069296548267508408077":
+ifloat: 1
+Test "jn (3, 0.75) == 0.848438342327410884392755236884386804e-2":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
-Test "jn (3, 10.0) == 0.058379379305186812343":
+Test "jn (3, 10.0) == 0.0583793793051868123429354784103409563":
 double: 3
 float: 1
 idouble: 3
 ifloat: 1
-Test "jn (3, 2.0) == 0.12894324947440205110":
+Test "jn (3, 2.0) == 0.128943249474402051098793332969239835":
 double: 1
 float: 2
 idouble: 1
@@ -544,86 +464,45 @@ float: 2
 idouble: 1
 ifloat: 2
 
-# log
-Test "log (0.7) == -0.35667494393873237891263871124118447":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
 # log10
-Test "log10 (0.7) == -0.15490195998574316929":
+Test "log10 (0.75) == -0.124938736608299953132449886193870744":
 double: 1
-float: 1
+float: 2
 idouble: 1
-ifloat: 1
+ifloat: 2
 Test "log10 (e) == log10(e)":
 float: 1
 ifloat: 1
 
 # log1p
-Test "log1p (-0.3) == -0.35667494393873237891263871124118447":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-# log2
-Test "log2 (0.7) == -0.51457317282975824043":
-double: 1
+Test "log1p (-0.25) == -0.287682072451780927439219005993827432":
 float: 1
-idouble: 1
 ifloat: 1
 
 # sincos
-Test "sincos (0.7, &sin_res, &cos_res) puts 0.76484218728448842625585999019186495 in cos_res":
+Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
-double: 1
-float: 0.5
-idouble: 1
-ifloat: 0.5
 Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in sin_res":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
 Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
-double: 0.2758
-float: 0.3667
-idouble: 0.2758
-ifloat: 0.3667
-Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
-float: 1
-ifloat: 1
-
-# sinh
-Test "sinh (0.7) == 0.75858370183953350346":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-
-# tan
-Test "tan (pi/4) == 1":
-double: 0.5
-idouble: 0.5
-
-# tanh
-Test "tanh (0.7) == 0.60436777711716349631":
-double: 1
+Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res":
 float: 1
-idouble: 1
 ifloat: 1
 
-Test "tanh (-0.7) == -0.60436777711716349631":
+# tan
+Test "tan (pi/4) == 1":
 double: 1
-float: 1
 idouble: 1
-ifloat: 1
 
 # tgamma
 Test "tgamma (-0.5) == -2 sqrt (pi)":
@@ -641,170 +520,130 @@ idouble: 1
 ifloat: 1
 
 # y0
-Test "y0 (0.7) == -0.19066492933739506743":
+Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
 double: 2
 float: 1
 idouble: 2
 ifloat: 1
-Test "y0 (1.0) == 0.088256964215676957983":
+Test "y0 (1.5) == 0.382448923797758843955068554978089862":
 double: 2
 float: 1
 idouble: 2
 ifloat: 1
-Test "y0 (1.5) == 0.38244892379775884396":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "y0 (10.0) == 0.055671167283599391424":
+Test "y0 (10.0) == 0.0556711672835993914244598774101900481":
 float: 1
 ifloat: 1
-Test "y0 (8.0) == 0.22352148938756622053":
+Test "y0 (8.0) == 0.223521489387566220527323400498620359":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
 
 # y1
-Test "y1 (0.1) == -6.4589510947020269877":
+Test "y1 (0.125) == -5.19993611253477499595928744876579921":
 double: 1
 idouble: 1
-Test "y1 (0.7) == -1.1032498719076333697":
-double: 1
+Test "y1 (1.5) == -0.412308626973911295952829820633445323":
 float: 1
-idouble: 1
 ifloat: 1
-Test "y1 (1.5) == -0.41230862697391129595":
-float: 1
-ifloat: 1
-Test "y1 (10.0) == 0.24901542420695388392":
+Test "y1 (10.0) == 0.249015424206953883923283474663222803":
 double: 3
 float: 1
 idouble: 3
 ifloat: 1
-Test "y1 (2.0) == -0.10703243154093754689":
+Test "y1 (2.0) == -0.107032431540937546888370772277476637":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "y1 (8.0) == -0.15806046173124749426":
+Test "y1 (8.0) == -0.158060461731247494255555266187483550":
 double: 1
 float: 2
 idouble: 1
 ifloat: 2
 
 # yn
-Test "yn (0, 0.7) == -0.19066492933739506743":
-double: 2
-float: 1
-idouble: 2
-ifloat: 1
-Test "yn (0, 1.0) == 0.088256964215676957983":
+Test "yn (0, 1.0) == 0.0882569642156769579829267660235151628":
 double: 2
 float: 1
 idouble: 2
 ifloat: 1
-Test "yn (0, 1.5) == 0.38244892379775884396":
+Test "yn (0, 1.5) == 0.382448923797758843955068554978089862":
 double: 2
 float: 1
 idouble: 2
 ifloat: 1
-Test "yn (0, 10.0) == 0.055671167283599391424":
+Test "yn (0, 10.0) == 0.0556711672835993914244598774101900481":
 float: 1
 ifloat: 1
-Test "yn (0, 8.0) == 0.22352148938756622053":
+Test "yn (0, 8.0) == 0.223521489387566220527323400498620359":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "yn (1, 0.1) == -6.4589510947020269877":
+Test "yn (1, 0.125) == -5.19993611253477499595928744876579921":
 double: 1
 idouble: 1
-Test "yn (1, 0.7) == -1.1032498719076333697":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-Test "yn (1, 1.5) == -0.41230862697391129595":
+Test "yn (1, 1.5) == -0.412308626973911295952829820633445323":
 float: 1
 ifloat: 1
-Test "yn (1, 10.0) == 0.24901542420695388392":
+Test "yn (1, 10.0) == 0.249015424206953883923283474663222803":
 double: 3
 float: 1
 idouble: 3
 ifloat: 1
-Test "yn (1, 2.0) == -0.10703243154093754689":
+Test "yn (1, 2.0) == -0.107032431540937546888370772277476637":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "yn (1, 8.0) == -0.15806046173124749426":
+Test "yn (1, 8.0) == -0.158060461731247494255555266187483550":
 double: 1
 float: 2
 idouble: 1
 ifloat: 2
-Test "yn (10, 0.1) == -0.11831335132045197885e19":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
-Test "yn (10, 0.7) == -0.42447194260703866924e10":
-double: 3
-idouble: 3
-Test "yn (10, 1.0) == -0.12161801427868918929e9":
+Test "yn (10, 0.125) == -127057845771019398.252538486899753195":
 double: 1
 idouble: 1
-Test "yn (10, 10.0) == -0.35981415218340272205":
+Test "yn (10, 0.75) == -2133501638.90573424452445412893839236":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "yn (10, 2.0) == -129184.54220803928264":
-double: 2
-idouble: 2
-Test "yn (3, 0.1) == -5099.3323786129048894":
+Test "yn (10, 1.0) == -121618014.278689189288130426667971145":
 double: 1
-float: 1
 idouble: 1
-ifloat: 1
-Test "yn (3, 0.7) == -15.819479052819633505":
-double: 3
-float: 1
-idouble: 3
-ifloat: 1
-Test "yn (3, 10.0) == -0.25136265718383732978":
+Test "yn (10, 10.0) == -0.359814152183402722051986577343560609":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-Test "yn (3, 2.0) == -1.1277837768404277861":
-double: 1
-idouble: 1
-
-# Maximal error of functions:
-Function: "asin":
-double: 1
-float: 2
-idouble: 1
-ifloat: 2
-
-Function: "atanh":
+Test "yn (10, 2.0) == -129184.542208039282635913145923304214":
+double: 2
+idouble: 2
+Test "yn (3, 0.125) == -2612.69757350066712600220955744091741":
 double: 1
 idouble: 1
-
-Function: "cabs":
+Test "yn (3, 0.75) == -12.9877176234475433186319774484809207":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
-
-Function: Real part of "cacos":
+Test "yn (3, 10.0) == -0.251362657183837329779204747654240998":
 double: 1
 float: 1
 idouble: 1
 ifloat: 1
+Test "yn (3, 2.0) == -1.12778377684042778608158395773179238":
+double: 1
+idouble: 1
 
-Function: Imaginary part of "cacos":
+# Maximal error of functions:
+Function: "atan2":
+float: 3
+ifloat: 3
+
+Function: "atanh":
 float: 1
 ifloat: 1
 
@@ -821,13 +660,9 @@ idouble: 1
 ifloat: 3
 
 Function: Real part of "casin":
-double: 3
-float: 2
-idouble: 3
-ifloat: 2
-
-Function: Imaginary part of "casin":
+double: 1
 float: 1
+idouble: 1
 ifloat: 1
 
 Function: Real part of "casinh":
@@ -854,14 +689,10 @@ ifloat: 1
 
 Function: Real part of "catanh":
 double: 4
-float: 1
 idouble: 4
-ifloat: 1
 
 Function: Imaginary part of "catanh":
-double: 1
 float: 6
-idouble: 1
 ifloat: 6
 
 Function: "cbrt":
@@ -870,12 +701,12 @@ idouble: 1
 
 Function: Real part of "ccos":
 double: 1
+float: 1
 idouble: 1
+ifloat: 1
 
 Function: Imaginary part of "ccos":
-double: 1
 float: 1
-idouble: 1
 ifloat: 1
 
 Function: Real part of "ccosh":
@@ -885,31 +716,27 @@ idouble: 1
 ifloat: 1
 
 Function: Imaginary part of "ccosh":
-double: 1
 float: 1
-idouble: 1
 ifloat: 1
 
 Function: Real part of "cexp":
-double: 1
 float: 1
-idouble: 1
 ifloat: 1
 
 Function: Imaginary part of "cexp":
 float: 1
 ifloat: 1
 
+Function: Real part of "clog":
+float: 1
+ifloat: 1
+
 Function: Imaginary part of "clog":
-double: 1
 float: 3
-idouble: 1
 ifloat: 3
 
 Function: Real part of "clog10":
-double: 1
 float: 1
-idouble: 1
 ifloat: 1
 
 Function: Imaginary part of "clog10":
@@ -925,21 +752,17 @@ idouble: 2
 ifloat: 1
 
 Function: Real part of "cpow":
-double: 1
+double: 2
 float: 4
-idouble: 1
+idouble: 2
 ifloat: 4
 
 Function: Imaginary part of "cpow":
-double: 1.1031
+double: 2
 float: 2
-idouble: 1.1031
+idouble: 2
 ifloat: 2
 
-Function: Imaginary part of "csin":
-float: 1
-ifloat: 1
-
 Function: Real part of "csinh":
 float: 1
 ifloat: 1
@@ -951,44 +774,34 @@ idouble: 1
 ifloat: 1
 
 Function: Real part of "csqrt":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
-Function: Imaginary part of "csqrt":
 float: 1
 ifloat: 1
 
 Function: Real part of "ctan":
 double: 1
-float: 1
 idouble: 1
-ifloat: 1
 
 Function: Imaginary part of "ctan":
 double: 1
-float: 1
 idouble: 1
-ifloat: 1
 
 Function: Real part of "ctanh":
-double: 2
+double: 1
 float: 2
-idouble: 2
+idouble: 1
 ifloat: 2
 
 Function: Imaginary part of "ctanh":
-double: 2
 float: 1
-idouble: 2
 ifloat: 1
 
+Function: "erf":
+double: 1
+idouble: 1
+
 Function: "erfc":
-double: 24
-float: 12
-idouble: 24
-ifloat: 12
+double: 1
+idouble: 1
 
 Function: "exp10":
 double: 6
@@ -997,19 +810,13 @@ idouble: 6
 ifloat: 2
 
 Function: "expm1":
+double: 1
 float: 1
-ifloat: 1
-
-Function: "fmod":
-double: 2
-float: 1
-idouble: 2
+idouble: 1
 ifloat: 1
 
 Function: "hypot":
-double: 1
 float: 1
-idouble: 1
 ifloat: 1
 
 Function: "j0":
@@ -1025,9 +832,9 @@ idouble: 1
 ifloat: 2
 
 Function: "jn":
-double: 6
+double: 4
 float: 4
-idouble: 6
+idouble: 4
 ifloat: 4
 
 Function: "lgamma":
@@ -1036,28 +843,14 @@ float: 2
 idouble: 1
 ifloat: 2
 
-Function: "log":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
 Function: "log10":
 double: 1
-float: 1
+float: 2
 idouble: 1
-ifloat: 1
+ifloat: 2
 
 Function: "log1p":
-double: 1
 float: 1
-idouble: 1
-ifloat: 1
-
-Function: "log2":
-double: 1
-float: 1
-idouble: 1
 ifloat: 1
 
 Function: "sincos":
@@ -1066,21 +859,9 @@ float: 1
 idouble: 1
 ifloat: 1
 
-Function: "sinh":
-double: 1
-float: 1
-idouble: 1
-ifloat: 1
-
 Function: "tan":
-double: 0.5
-idouble: 0.5
-
-Function: "tanh":
 double: 1
-float: 1
 idouble: 1
-ifloat: 1
 
 Function: "tgamma":
 double: 1
--- libc/sysdeps/sh/Makefile.jj	Tue Aug 27 17:19:53 2002
+++ libc/sysdeps/sh/Makefile	Thu Sep 12 08:41:54 2002
@@ -1,11 +1,3 @@
 ifeq ($(subdir),gmon)
 sysdep_routines += _mcount
 endif
-
-ifeq ($(subdir),csu)
-ifeq (yes,$(build-shared))
-# Compatibility
-sysdep_routines += divdi3
-shared-only-routines += divdi3
-endif
-endif
--- libc/sysdeps/s390/s390-32/Makefile.jj	Sat Mar 23 05:52:40 2002
+++ libc/sysdeps/s390/s390-32/Makefile	Thu Sep 12 08:42:11 2002
@@ -1,13 +1,5 @@
 pic-ccflag = -fpic
 
-ifeq ($(subdir),csu)
-ifeq (yes,$(build-shared))
-# Compatibility
-sysdep_routines += divdi3
-shared-only-routines += divdi3
-endif
-endif
-
 ifeq ($(subdir),gmon)
 sysdep_routines += s390-mcount
 endif
--- libc/sysdeps/wordsize-32/Makefile.jj	Thu Sep 12 08:39:41 2002
+++ libc/sysdeps/wordsize-32/Makefile	Thu Sep 12 08:40:07 2002
@@ -0,0 +1,6 @@
+ifeq ($(subdir),csu)
+ifeq (yes,$(build-shared))
+sysdep_routines += divdi3
+shared-only-routines += divdi3
+endif
+endif

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]