From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24343 invoked by alias); 12 Sep 2002 14:58:29 -0000 Mailing-List: contact libc-hacker-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-hacker-owner@sources.redhat.com Received: (qmail 24319 invoked from network); 12 Sep 2002 14:58:26 -0000 Received: from unknown (HELO sunsite.mff.cuni.cz) (195.113.19.66) by sources.redhat.com with SMTP; 12 Sep 2002 14:58:26 -0000 Received: (from jakub@localhost) by sunsite.mff.cuni.cz (8.11.6/8.11.6) id g8CEwKO24091; Thu, 12 Sep 2002 16:58:20 +0200 Date: Thu, 12 Sep 2002 07:58:00 -0000 From: Jakub Jelinek To: Ulrich Drepper , Roland McGrath Cc: Glibc hackers Subject: [PATCH] sparcv9-linux fixes Message-ID: <20020912165820.V1013@sunsite.ms.mff.cuni.cz> Reply-To: Jakub Jelinek Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i X-SW-Source: 2002-09/txt/msg00016.txt.bz2 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 * 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