Module Name:    src
Committed By:   joerg
Date:           Tue Jul 26 16:10:16 UTC 2011

Modified Files:
        src/distrib/sets/lists/base: ad.mips64eb ad.mips64el md.amd64
            md.sparc64 shl.mi
        src/distrib/sets/lists/comp: ad.mips64eb ad.mips64el md.amd64
            md.sparc64 shl.mi
        src/include: math.h
        src/lib/libm: Makefile shlib_version
        src/lib/libm/src: namespace.h s_scalbn.c
Added Files:
        src/lib/libm/src: s_scalbnl.c

Log Message:
Add scalbnl to libm.


To generate a diff of this commit:
cvs rdiff -u -r1.61 -r1.62 src/distrib/sets/lists/base/ad.mips64eb
cvs rdiff -u -r1.58 -r1.59 src/distrib/sets/lists/base/ad.mips64el
cvs rdiff -u -r1.131 -r1.132 src/distrib/sets/lists/base/md.amd64
cvs rdiff -u -r1.125 -r1.126 src/distrib/sets/lists/base/md.sparc64
cvs rdiff -u -r1.594 -r1.595 src/distrib/sets/lists/base/shl.mi
cvs rdiff -u -r1.46 -r1.47 src/distrib/sets/lists/comp/ad.mips64eb \
    src/distrib/sets/lists/comp/ad.mips64el
cvs rdiff -u -r1.127 -r1.128 src/distrib/sets/lists/comp/md.amd64
cvs rdiff -u -r1.113 -r1.114 src/distrib/sets/lists/comp/md.sparc64
cvs rdiff -u -r1.183 -r1.184 src/distrib/sets/lists/comp/shl.mi
cvs rdiff -u -r1.54 -r1.55 src/include/math.h
cvs rdiff -u -r1.111 -r1.112 src/lib/libm/Makefile
cvs rdiff -u -r1.12 -r1.13 src/lib/libm/shlib_version
cvs rdiff -u -r1.3 -r1.4 src/lib/libm/src/namespace.h
cvs rdiff -u -r1.14 -r1.15 src/lib/libm/src/s_scalbn.c
cvs rdiff -u -r0 -r1.1 src/lib/libm/src/s_scalbnl.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/sets/lists/base/ad.mips64eb
diff -u src/distrib/sets/lists/base/ad.mips64eb:1.61 src/distrib/sets/lists/base/ad.mips64eb:1.62
--- src/distrib/sets/lists/base/ad.mips64eb:1.61	Mon Jul 25 03:09:51 2011
+++ src/distrib/sets/lists/base/ad.mips64eb	Tue Jul 26 16:10:15 2011
@@ -1,4 +1,4 @@
-# $NetBSD: ad.mips64eb,v 1.61 2011/07/25 03:09:51 christos Exp $
+# $NetBSD: ad.mips64eb,v 1.62 2011/07/26 16:10:15 joerg Exp $
 ./libexec/ld.elf_so-64				base-compat-shlib	compat,pic
 ./libexec/ld.elf_so-o32				base-sysutil-bin	compat,pic
 ./usr/lib/64					base-compat-lib
@@ -154,7 +154,7 @@
 ./usr/lib/64/liblzma.so.1			base-compat-shlib	compat,pic
 ./usr/lib/64/liblzma.so.1.0			base-compat-shlib	compat,pic
 ./usr/lib/64/libm.so.0				base-compat-shlib	compat,pic
-./usr/lib/64/libm.so.0.9			base-compat-shlib	compat,pic
+./usr/lib/64/libm.so.0.10			base-compat-shlib	compat,pic
 ./usr/lib/64/libmagic.so.3			base-compat-shlib	compat,pic
 ./usr/lib/64/libmagic.so.3.1			base-compat-shlib	compat,pic
 ./usr/lib/64/libmenu.so.6			base-compat-shlib	compat,pic
@@ -438,7 +438,7 @@
 ./usr/lib/o32/liblzma.so.1			base-compat-shlib	compat,pic
 ./usr/lib/o32/liblzma.so.1.0			base-compat-shlib	compat,pic
 ./usr/lib/o32/libm.so.0				base-compat-shlib	compat,pic
-./usr/lib/o32/libm.so.0.9			base-compat-shlib	compat,pic
+./usr/lib/o32/libm.so.0.10			base-compat-shlib	compat,pic
 ./usr/lib/o32/libmagic.so.3			base-compat-shlib	compat,pic
 ./usr/lib/o32/libmagic.so.3.1			base-compat-shlib	compat,pic
 ./usr/lib/o32/libmenu.so.6			base-compat-shlib	compat,pic

Index: src/distrib/sets/lists/base/ad.mips64el
diff -u src/distrib/sets/lists/base/ad.mips64el:1.58 src/distrib/sets/lists/base/ad.mips64el:1.59
--- src/distrib/sets/lists/base/ad.mips64el:1.58	Mon Jul 25 03:09:51 2011
+++ src/distrib/sets/lists/base/ad.mips64el	Tue Jul 26 16:10:15 2011
@@ -1,4 +1,4 @@
-# $NetBSD: ad.mips64el,v 1.58 2011/07/25 03:09:51 christos Exp $
+# $NetBSD: ad.mips64el,v 1.59 2011/07/26 16:10:15 joerg Exp $
 ./libexec/ld.elf_so-64				base-compat-shlib	compat,pic
 ./libexec/ld.elf_so-o32				base-sysutil-bin	compat,pic
 ./usr/lib/64					base-compat-lib
@@ -154,7 +154,7 @@
 ./usr/lib/64/liblzma.so.1			base-compat-shlib	compat,pic
 ./usr/lib/64/liblzma.so.1.0			base-compat-shlib	compat,pic
 ./usr/lib/64/libm.so.0				base-compat-shlib	compat,pic
-./usr/lib/64/libm.so.0.9			base-compat-shlib	compat,pic
+./usr/lib/64/libm.so.0.10			base-compat-shlib	compat,pic
 ./usr/lib/64/libmagic.so.3			base-compat-shlib	compat,pic
 ./usr/lib/64/libmagic.so.3.1			base-compat-shlib	compat,pic
 ./usr/lib/64/libmenu.so.6			base-compat-shlib	compat,pic
@@ -438,7 +438,7 @@
 ./usr/lib/o32/liblzma.so.1			base-compat-shlib	compat,pic
 ./usr/lib/o32/liblzma.so.1.0			base-compat-shlib	compat,pic
 ./usr/lib/o32/libm.so.0				base-compat-shlib	compat,pic
-./usr/lib/o32/libm.so.0.9			base-compat-shlib	compat,pic
+./usr/lib/o32/libm.so.0.10			base-compat-shlib	compat,pic
 ./usr/lib/o32/libmagic.so.3			base-compat-shlib	compat,pic
 ./usr/lib/o32/libmagic.so.3.1			base-compat-shlib	compat,pic
 ./usr/lib/o32/libmenu.so.6			base-compat-shlib	compat,pic

Index: src/distrib/sets/lists/base/md.amd64
diff -u src/distrib/sets/lists/base/md.amd64:1.131 src/distrib/sets/lists/base/md.amd64:1.132
--- src/distrib/sets/lists/base/md.amd64:1.131	Mon Jul 25 03:09:51 2011
+++ src/distrib/sets/lists/base/md.amd64	Tue Jul 26 16:10:15 2011
@@ -1,4 +1,4 @@
-# $NetBSD: md.amd64,v 1.131 2011/07/25 03:09:51 christos Exp $
+# $NetBSD: md.amd64,v 1.132 2011/07/26 16:10:15 joerg Exp $
 ./dev/lms0					base-obsolete		obsolete
 ./dev/mms0					base-obsolete		obsolete
 ./libexec/ld.elf_so-i386			base-sys-shlib		compat,pic
@@ -164,7 +164,7 @@
 ./usr/lib/i386/liblzma.so.1			base-compat-shlib	compat,pic
 ./usr/lib/i386/liblzma.so.1.0			base-compat-shlib	compat,pic
 ./usr/lib/i386/libm.so.0			base-compat-shlib	compat,pic
-./usr/lib/i386/libm.so.0.9			base-compat-shlib	compat,pic
+./usr/lib/i386/libm.so.0.10			base-compat-shlib	compat,pic
 ./usr/lib/i386/libmagic.so.3			base-compat-shlib	compat,pic
 ./usr/lib/i386/libmagic.so.3.1			base-compat-shlib	compat,pic
 ./usr/lib/i386/libmenu.so.6			base-compat-shlib	compat,pic

Index: src/distrib/sets/lists/base/md.sparc64
diff -u src/distrib/sets/lists/base/md.sparc64:1.125 src/distrib/sets/lists/base/md.sparc64:1.126
--- src/distrib/sets/lists/base/md.sparc64:1.125	Mon Jul 25 03:09:52 2011
+++ src/distrib/sets/lists/base/md.sparc64	Tue Jul 26 16:10:15 2011
@@ -1,4 +1,4 @@
-# $NetBSD: md.sparc64,v 1.125 2011/07/25 03:09:52 christos Exp $
+# $NetBSD: md.sparc64,v 1.126 2011/07/26 16:10:15 joerg Exp $
 ./libexec/ld.elf_so-sparc			base-sysutil-bin	compat,pic
 ./sbin/edlabel					base-sysutil-root	obsolete
 ./usr/bin/fdformat				base-util-bin
@@ -156,7 +156,7 @@
 ./usr/lib/sparc/liblzma.so.1			base-compat-shlib	compat,pic
 ./usr/lib/sparc/liblzma.so.1.0			base-compat-shlib	compat,pic
 ./usr/lib/sparc/libm.so.0			base-compat-shlib	compat,pic
-./usr/lib/sparc/libm.so.0.9			base-compat-shlib	compat,pic
+./usr/lib/sparc/libm.so.0.10			base-compat-shlib	compat,pic
 ./usr/lib/sparc/libmagic.so.3			base-compat-shlib	compat,pic
 ./usr/lib/sparc/libmagic.so.3.1			base-compat-shlib	compat,pic
 ./usr/lib/sparc/libmenu.so.6			base-compat-shlib	compat,pic

Index: src/distrib/sets/lists/base/shl.mi
diff -u src/distrib/sets/lists/base/shl.mi:1.594 src/distrib/sets/lists/base/shl.mi:1.595
--- src/distrib/sets/lists/base/shl.mi:1.594	Mon Jul 25 03:09:52 2011
+++ src/distrib/sets/lists/base/shl.mi	Tue Jul 26 16:10:15 2011
@@ -1,4 +1,4 @@
-# $NetBSD: shl.mi,v 1.594 2011/07/25 03:09:52 christos Exp $
+# $NetBSD: shl.mi,v 1.595 2011/07/26 16:10:15 joerg Exp $
 #
 # Note:	Don't delete entries from here - mark them as "obsolete" instead,
 #	unless otherwise stated below.
@@ -48,7 +48,7 @@
 ./lib/liblzma.so.1.0				base-sys-shlib		dynamicroot
 ./lib/libm.so					base-sys-shlib		dynamicroot
 ./lib/libm.so.0					base-sys-shlib		dynamicroot
-./lib/libm.so.0.9				base-sys-shlib		dynamicroot
+./lib/libm.so.0.10				base-sys-shlib		dynamicroot
 ./lib/libprop.so				base-sys-shlib		dynamicroot
 ./lib/libprop.so.1				base-sys-shlib		dynamicroot
 ./lib/libprop.so.1.1				base-sys-shlib		dynamicroot
@@ -313,7 +313,7 @@
 ./usr/lib/liblzf.so.0.0				base-sys-shlib
 ./usr/lib/libm.so				base-sys-shlib
 ./usr/lib/libm.so.0				base-sys-shlib
-./usr/lib/libm.so.0.9				base-sys-shlib
+./usr/lib/libm.so.0.10				base-sys-shlib
 ./usr/lib/libmagic.so				base-sys-shlib
 ./usr/lib/libmagic.so.3				base-sys-shlib
 ./usr/lib/libmagic.so.3.1			base-sys-shlib

Index: src/distrib/sets/lists/comp/ad.mips64eb
diff -u src/distrib/sets/lists/comp/ad.mips64eb:1.46 src/distrib/sets/lists/comp/ad.mips64eb:1.47
--- src/distrib/sets/lists/comp/ad.mips64eb:1.46	Mon Jul 25 03:09:52 2011
+++ src/distrib/sets/lists/comp/ad.mips64eb	Tue Jul 26 16:10:15 2011
@@ -1,4 +1,4 @@
-# $NetBSD: ad.mips64eb,v 1.46 2011/07/25 03:09:52 christos Exp $
+# $NetBSD: ad.mips64eb,v 1.47 2011/07/26 16:10:15 joerg Exp $
 ./usr/bin/elf2aout				comp-obsolete		obsolete
 ./usr/bin/elf2ecoff				comp-sysutil-bin
 ./usr/include/gcc-4.5/loongson.h		comp-c-include		gcccmds,gcc=45
@@ -1289,7 +1289,7 @@
 ./usr/libdata/debug/usr/lib/64/liblwres.so.5.3.debug	comp-bind-debug	debug,compat
 ./usr/libdata/debug/usr/lib/64/liblzf.so.0.0.debug		comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/64/liblzma.so.1.0.debug	comp-sys-debug	debug,compat
-./usr/libdata/debug/usr/lib/64/libm.so.0.9.debug		comp-sys-debug	debug,compat
+./usr/libdata/debug/usr/lib/64/libm.so.0.10.debug		comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/64/libmagic.so.3.1.debug	comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/64/libmenu.so.6.0.debug	comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/64/libmj.so.1.0.debug		comp-crypto-debug	debug,compat
@@ -1437,7 +1437,7 @@
 ./usr/libdata/debug/usr/lib/o32/liblwres.so.5.3.debug	comp-bind-debug	debug,compat
 ./usr/libdata/debug/usr/lib/o32/liblzf.so.0.0.debug		comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/o32/liblzma.so.1.0.debug	comp-sys-debug	debug,compat
-./usr/libdata/debug/usr/lib/o32/libm.so.0.9.debug		comp-sys-debug	debug,compat
+./usr/libdata/debug/usr/lib/o32/libm.so.0.10.debug		comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/o32/libmagic.so.3.1.debug	comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/o32/libmenu.so.6.0.debug	comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/o32/libmj.so.1.0.debug		comp-crypto-debug	debug,compat
Index: src/distrib/sets/lists/comp/ad.mips64el
diff -u src/distrib/sets/lists/comp/ad.mips64el:1.46 src/distrib/sets/lists/comp/ad.mips64el:1.47
--- src/distrib/sets/lists/comp/ad.mips64el:1.46	Mon Jul 25 03:09:52 2011
+++ src/distrib/sets/lists/comp/ad.mips64el	Tue Jul 26 16:10:16 2011
@@ -1,4 +1,4 @@
-# $NetBSD: ad.mips64el,v 1.46 2011/07/25 03:09:52 christos Exp $
+# $NetBSD: ad.mips64el,v 1.47 2011/07/26 16:10:16 joerg Exp $
 ./usr/bin/elf2aout				comp-obsolete		obsolete
 ./usr/bin/elf2ecoff				comp-sysutil-bin
 ./usr/include/gcc-4.5/loongson.h		comp-c-include		gcccmds,gcc=45
@@ -1289,7 +1289,7 @@
 ./usr/libdata/debug/usr/lib/64/liblwres.so.5.3.debug	comp-bind-debug	debug,compat
 ./usr/libdata/debug/usr/lib/64/liblzf.so.0.0.debug		comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/64/liblzma.so.1.0.debug	comp-sys-debug	debug,compat
-./usr/libdata/debug/usr/lib/64/libm.so.0.9.debug		comp-sys-debug	debug,compat
+./usr/libdata/debug/usr/lib/64/libm.so.0.10.debug		comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/64/libmagic.so.3.1.debug	comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/64/libmenu.so.6.0.debug	comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/64/libmj.so.1.0.debug		comp-crypto-debug	debug,compat
@@ -1437,7 +1437,7 @@
 ./usr/libdata/debug/usr/lib/o32/liblwres.so.5.3.debug	comp-bind-debug	debug,compat
 ./usr/libdata/debug/usr/lib/o32/liblzf.so.0.0.debug		comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/o32/liblzma.so.1.0.debug	comp-sys-debug	debug,compat
-./usr/libdata/debug/usr/lib/o32/libm.so.0.9.debug		comp-sys-debug	debug,compat
+./usr/libdata/debug/usr/lib/o32/libm.so.0.10.debug		comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/o32/libmagic.so.3.1.debug	comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/o32/libmenu.so.6.0.debug	comp-sys-debug	debug,compat
 ./usr/libdata/debug/usr/lib/o32/libmj.so.1.0.debug		comp-crypto-debug	debug,compat

Index: src/distrib/sets/lists/comp/md.amd64
diff -u src/distrib/sets/lists/comp/md.amd64:1.127 src/distrib/sets/lists/comp/md.amd64:1.128
--- src/distrib/sets/lists/comp/md.amd64:1.127	Mon Jul 25 03:09:52 2011
+++ src/distrib/sets/lists/comp/md.amd64	Tue Jul 26 16:10:16 2011
@@ -1,4 +1,4 @@
-# $NetBSD: md.amd64,v 1.127 2011/07/25 03:09:52 christos Exp $
+# $NetBSD: md.amd64,v 1.128 2011/07/26 16:10:16 joerg Exp $
 ./usr/include/amd64				comp-c-include
 ./usr/include/amd64/ansi.h			comp-c-include
 ./usr/include/amd64/aout_machdep.h		comp-c-include
@@ -1065,7 +1065,7 @@
 ./usr/libdata/debug/usr/lib/i386/liblwres.so.5.3.debug	comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/i386/liblzf.so.0.0.debug	comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/i386/liblzma.so.1.0.debug	comp-compat-shlib	compat,pic,debug
-./usr/libdata/debug/usr/lib/i386/libm.so.0.9.debug	comp-compat-shlib	compat,pic,debug
+./usr/libdata/debug/usr/lib/i386/libm.so.0.10.debug	comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/i386/libmagic.so.3.1.debug	comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/i386/libmenu.so.6.0.debug	comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/i386/libmj.so.1.0.debug	comp-compat-shlib	compat,pic,debug

Index: src/distrib/sets/lists/comp/md.sparc64
diff -u src/distrib/sets/lists/comp/md.sparc64:1.113 src/distrib/sets/lists/comp/md.sparc64:1.114
--- src/distrib/sets/lists/comp/md.sparc64:1.113	Mon Jul 25 03:09:52 2011
+++ src/distrib/sets/lists/comp/md.sparc64	Tue Jul 26 16:10:16 2011
@@ -1,4 +1,4 @@
-# $NetBSD: md.sparc64,v 1.113 2011/07/25 03:09:52 christos Exp $
+# $NetBSD: md.sparc64,v 1.114 2011/07/26 16:10:16 joerg Exp $
 ./usr/include/gcc-4.5/tgmath.h			comp-c-include		gcccmds,gcc=45
 ./usr/include/ieeefp.h				comp-c-include
 ./usr/include/sparc				comp-c-include
@@ -928,7 +928,7 @@
 ./usr/libdata/debug/usr/lib/sparc/liblwres.so.5.3.debug			comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/sparc/liblzf.so.0.0.debug			comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/sparc/liblzma.so.1.0.debug			comp-compat-shlib	compat,pic,debug
-./usr/libdata/debug/usr/lib/sparc/libm.so.0.9.debug			comp-compat-shlib	compat,pic,debug
+./usr/libdata/debug/usr/lib/sparc/libm.so.0.10.debug			comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/sparc/libmagic.so.3.1.debug			comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/sparc/libmenu.so.6.0.debug			comp-compat-shlib	compat,pic,debug
 ./usr/libdata/debug/usr/lib/sparc/libmj.so.1.0.debug			comp-compat-shlib	compat,pic,debug

Index: src/distrib/sets/lists/comp/shl.mi
diff -u src/distrib/sets/lists/comp/shl.mi:1.183 src/distrib/sets/lists/comp/shl.mi:1.184
--- src/distrib/sets/lists/comp/shl.mi:1.183	Mon Jul 25 03:09:52 2011
+++ src/distrib/sets/lists/comp/shl.mi	Tue Jul 26 16:10:16 2011
@@ -1,4 +1,4 @@
-# $NetBSD: shl.mi,v 1.183 2011/07/25 03:09:52 christos Exp $
+# $NetBSD: shl.mi,v 1.184 2011/07/26 16:10:16 joerg Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -290,7 +290,7 @@
 ./usr/libdata/debug/usr/lib/liblwres.so.5.3.debug	comp-bind-debug	debug
 ./usr/libdata/debug/usr/lib/liblzf.so.0.0.debug		comp-sys-debug	debug
 ./usr/libdata/debug/usr/lib/liblzma.so.1.0.debug	comp-sys-debug	debug
-./usr/libdata/debug/usr/lib/libm.so.0.9.debug		comp-sys-debug	debug
+./usr/libdata/debug/usr/lib/libm.so.0.10.debug		comp-sys-debug	debug
 ./usr/libdata/debug/usr/lib/libmagic.so.3.1.debug	comp-sys-debug	debug
 ./usr/libdata/debug/usr/lib/libmenu.so.6.0.debug	comp-sys-debug	debug
 ./usr/libdata/debug/usr/lib/libmj.so.1.0.debug		comp-crypto-debug	debug

Index: src/include/math.h
diff -u src/include/math.h:1.54 src/include/math.h:1.55
--- src/include/math.h:1.54	Sun Feb  6 00:44:08 2011
+++ src/include/math.h	Tue Jul 26 16:10:15 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: math.h,v 1.54 2011/02/06 00:44:08 christos Exp $	*/
+/*	$NetBSD: math.h,v 1.55 2011/07/26 16:10:15 joerg Exp $	*/
 
 /*
  * ====================================================
@@ -497,6 +497,9 @@
 int	__isnanl(long double);
 int	__signbitl(long double);
 #endif
+
+long double	scalbnl(long double, int);
+
 __END_DECLS
 
 #endif /* _MATH_H_ */

Index: src/lib/libm/Makefile
diff -u src/lib/libm/Makefile:1.111 src/lib/libm/Makefile:1.112
--- src/lib/libm/Makefile:1.111	Mon Jun 20 07:43:58 2011
+++ src/lib/libm/Makefile	Tue Jul 26 16:10:16 2011
@@ -1,4 +1,4 @@
-#  $NetBSD: Makefile,v 1.111 2011/06/20 07:43:58 mrg Exp $
+#  $NetBSD: Makefile,v 1.112 2011/07/26 16:10:16 joerg Exp $
 #
 #  @(#)Makefile 5.1beta 93/09/24
 #
@@ -140,7 +140,7 @@
 	s_isinff.c s_isnanf.c s_ldexpf.c s_lib_version.c s_log1p.c \
 	s_log1pf.c s_logb.c s_logbf.c s_matherr.c s_modff.c s_nextafter.c \
 	s_nextafterf.c s_remquo.c s_remquof.c s_rint.c s_rintf.c s_round.c s_roundf.c s_scalbn.c \
-	s_scalbnf.c s_signgam.c s_significand.c s_significandf.c s_sin.c \
+	s_scalbnf.c s_scalbnl.c s_signgam.c s_significand.c s_significandf.c s_sin.c \
 	s_sinf.c s_tan.c s_tanf.c s_tanh.c s_tanhf.c s_trunc.c s_truncf.c \
 	w_acos.c w_acosf.c w_acosh.c w_acoshf.c w_asin.c w_asinf.c w_atan2.c \
 	w_atan2f.c w_atanh.c w_atanhf.c w_cosh.c w_coshf.c \

Index: src/lib/libm/shlib_version
diff -u src/lib/libm/shlib_version:1.12 src/lib/libm/shlib_version:1.13
--- src/lib/libm/shlib_version:1.12	Sun Feb  6 00:44:09 2011
+++ src/lib/libm/shlib_version	Tue Jul 26 16:10:16 2011
@@ -1,5 +1,5 @@
-#	$NetBSD: shlib_version,v 1.12 2011/02/06 00:44:09 christos Exp $
+#	$NetBSD: shlib_version,v 1.13 2011/07/26 16:10:16 joerg Exp $
 #	Remember to update distrib/sets/lists/base/shl.* when changing
 #
 major=0
-minor=9
+minor=10

Index: src/lib/libm/src/namespace.h
diff -u src/lib/libm/src/namespace.h:1.3 src/lib/libm/src/namespace.h:1.4
--- src/lib/libm/src/namespace.h:1.3	Fri Apr 23 19:17:07 2010
+++ src/lib/libm/src/namespace.h	Tue Jul 26 16:10:16 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: namespace.h,v 1.3 2010/04/23 19:17:07 drochner Exp $ */
+/* $NetBSD: namespace.h,v 1.4 2011/07/26 16:10:16 joerg Exp $ */
 
 #define atan2 _atan2
 #define atan2f _atan2f
@@ -32,3 +32,4 @@
 
 #define scalbn _scalbn
 #define scalbnf _scalbnf
+#define scalbnl _scalbnl

Index: src/lib/libm/src/s_scalbn.c
diff -u src/lib/libm/src/s_scalbn.c:1.14 src/lib/libm/src/s_scalbn.c:1.15
--- src/lib/libm/src/s_scalbn.c:1.14	Fri Apr 23 19:17:07 2010
+++ src/lib/libm/src/s_scalbn.c	Tue Jul 26 16:10:16 2011
@@ -12,7 +12,7 @@
 
 #include <sys/cdefs.h>
 #if defined(LIBM_SCCS) && !defined(lint)
-__RCSID("$NetBSD: s_scalbn.c,v 1.14 2010/04/23 19:17:07 drochner Exp $");
+__RCSID("$NetBSD: s_scalbn.c,v 1.15 2011/07/26 16:10:16 joerg Exp $");
 #endif
 
 /*
@@ -26,6 +26,11 @@
 #include "math.h"
 #include "math_private.h"
 
+#ifndef __HAVE_LONG_DOUBLE
+__strong_alias(_scalbnl, _scalbn)
+__weak_alias(scalbnl, _scalbnl)
+#endif
+
 #ifdef __weak_alias
 __weak_alias(scalbn, _scalbn)
 #endif

Added files:

Index: src/lib/libm/src/s_scalbnl.c
diff -u /dev/null src/lib/libm/src/s_scalbnl.c:1.1
--- /dev/null	Tue Jul 26 16:10:16 2011
+++ src/lib/libm/src/s_scalbnl.c	Tue Jul 26 16:10:16 2011
@@ -0,0 +1,106 @@
+/*	$NetBSD: s_scalbnl.c,v 1.1 2011/07/26 16:10:16 joerg Exp $	*/
+
+/*-
+ * Copyright (c) 2011 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Joerg Sonnenberger.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: s_scalbnl.c,v 1.1 2011/07/26 16:10:16 joerg Exp $");
+
+#include "namespace.h"
+
+#include <float.h>
+#include <math.h>
+#include <machine/ieee.h>
+
+#ifdef __HAVE_LONG_DOUBLE
+
+#ifdef __weak_alias
+__weak_alias(scalbnl, _scalbnl)
+#endif
+
+#if LDBL_MANT_DIG == 64
+#define	FROM_UNDERFLOW	0x1p65L
+#define	TO_UNDERFLOW	0x1p-65L
+#elif LDBL_MANT_DIG == 113
+#define	FROM_UNDERFLOW	0x1p114L
+#define	TO_UNDERFLOW	0x1p-114L
+#else
+#error Unsupported long double format
+#endif
+
+long double
+scalbnl(long double x, int n)
+{
+	union ieee_ext_u u;
+
+	/* Trivial cases first */
+	if (n == 0 || x == 0.0L)
+		return x;
+
+	u.extu_ld = x;
+
+	/* NaN and infinite don't change either, but trigger exception */
+	if (u.extu_ext.ext_exp == EXT_EXP_INFNAN)
+		return x + x;
+
+	/* Protect against integer overflow in calculation of new exponent */
+	if (n > LDBL_MAX_EXP - LDBL_MIN_EXP + LDBL_MANT_DIG)
+		goto overflow;
+	if (n < LDBL_MAX_EXP - LDBL_MIN_EXP + LDBL_MANT_DIG)
+		goto underflow;
+
+	/* Scale denormalized numbers slightly, so that they are normal */
+	if (u.extu_ext.ext_exp == 0) {
+		u.extu_ld *= FROM_UNDERFLOW;
+		n -= LDBL_MANT_DIG + 1;
+	}
+
+	n += u.extu_ext.ext_exp;
+	if (n >= LDBL_MAX_EXP + EXT_EXP_BIAS)
+		goto overflow;
+	/* Positive exponent (incl. bias) means normal result */
+	if (n > 0) {
+		u.extu_ext.ext_exp = n;
+		return u.extu_ld;
+	}
+	/* Shift the exponent and let the multiply below handle subnormal */
+	n += LDBL_MANT_DIG + 1;
+	if (n <= 0)
+		goto underflow;
+	u.extu_ext.ext_exp = n;
+	return u.extu_ld * TO_UNDERFLOW;
+
+underflow:
+	return LDBL_MIN * copysignl(LDBL_MIN, x);
+
+overflow:
+	return LDBL_MAX * copysignl(LDBL_MAX, x);
+}
+
+#endif

Reply via email to