[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commits] r18209 - in /fsf/trunk/libc: ./ elf/ math/ scripts/ scripts/data/ sysdeps/mach/hurd/ sysdeps/powerpc/fpu/ sysdeps/powerpc/po...
- To: commits@xxxxxxxxxx
- Subject: [Commits] r18209 - in /fsf/trunk/libc: ./ elf/ math/ scripts/ scripts/data/ sysdeps/mach/hurd/ sysdeps/powerpc/fpu/ sysdeps/powerpc/po...
- From: eglibc@xxxxxxxxxx
- Date: Wed, 25 Apr 2012 00:01:39 -0000
Author: eglibc
Date: Wed Apr 25 00:01:37 2012
New Revision: 18209
Log:
Import glibc-mainline for 2012-04-25
Added:
fsf/trunk/libc/scripts/check-localplt.awk
Removed:
fsf/trunk/libc/sysdeps/powerpc/powerpc64/fpu/s_floorl.S
fsf/trunk/libc/sysdeps/unix/bsd/bsd4.4/Implies
fsf/trunk/libc/sysdeps/unix/bsd/bsd4.4/system.c
fsf/trunk/libc/sysdeps/unix/fork.S
fsf/trunk/libc/sysdeps/unix/getdents.c
fsf/trunk/libc/sysdeps/unix/getegid.S
fsf/trunk/libc/sysdeps/unix/geteuid.S
fsf/trunk/libc/sysdeps/unix/i386/fork.S
fsf/trunk/libc/sysdeps/unix/mman/
fsf/trunk/libc/sysdeps/unix/sparc/fork.S
fsf/trunk/libc/sysdeps/unix/system.c
fsf/trunk/libc/sysdeps/unix/sysv/getdents.c
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/Makeconfig
fsf/trunk/libc/Makerules
fsf/trunk/libc/NEWS
fsf/trunk/libc/config.make.in
fsf/trunk/libc/configure
fsf/trunk/libc/configure.in
fsf/trunk/libc/elf/Makefile
fsf/trunk/libc/math/libm-test.inc
fsf/trunk/libc/scripts/data/localplt-generic.data
fsf/trunk/libc/sysdeps/mach/hurd/symlink.c
fsf/trunk/libc/sysdeps/mach/hurd/symlinkat.c
fsf/trunk/libc/sysdeps/powerpc/fpu/libm-test-ulps
fsf/trunk/libc/sysdeps/unix/syscalls.list
fsf/trunk/libc/sysdeps/unix/sysv/linux/Implies
fsf/trunk/libc/sysdeps/unix/sysv/syscalls.list
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Wed Apr 25 00:01:37 2012
@@ -1,3 +1,69 @@
+2012-04-24 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/unix/fork.S: Remove file.
+ * sysdeps/unix/i386/fork.S: Likewise.
+ * sysdeps/unix/sparc/fork.S: Likewise.
+
+ * sysdeps/unix/system.c: Remove file.
+ * sysdeps/unix/bsd/bsd4.4/system.c: Likewise.
+
+ * sysdeps/unix/getegid.S: Remove file.
+ * sysdeps/unix/geteuid.S: Likewise.
+
+2012-04-24 Roland McGrath <roland@xxxxxxxxxxxxx>
+
+ * scripts/check-localplt.awk: New file.
+ * elf/Makefile ($(objpfx)check-localplt.out): Use that script instead
+ of diff.
+ * scripts/data/localplt-generic.data: Add a comment.
+
+ * sysdeps/mach/hurd/symlink.c: Don't call __mach_port_deallocate on
+ NODE when __dir_mkfile failed.
+ * sysdeps/mach/hurd/symlinkat.c: Likewise.
+ Reported by Ludovic CourtÃÂs <ludo@xxxxxxx>.
+
+2012-04-24 Andreas Jaeger <aj@xxxxxxx>
+
+ * Makerules (common-clean): Also remove gen-as-const-headers
+ files.
+
+2012-04-24 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * Makerules (native-compile): Do not change working directory for
+ build. Use $(OUTPUT_OPTION) in command.
+ (ALL_BUILD_CFLAGS): Use $(common-objpfx) to find config.h.
+
+2012-04-24 Adhemerval Zanella <azanella@xxxxxxxxxxxxxxxxxx>
+
+ [BZ #13886]
+ * sysdeps/powerpc/powerpc64/fpu/s_floorl.S: Delete file. Use the
+ sysdeps/ieee754/ldbl-128ibm/s_floorl.c version instead.
+ * math/libm-test.inc (floor_test): Add more tests.
+ * sysdeps/powerpc/fpu/libm-test-ulps: Update for pow tests.
+
+2012-04-24 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/unix/getdents.c: Remove file.
+ * sysdeps/unix/sysv/getdents.c: Likewise.
+ * sysdeps/unix/sysv/syscalls.list (s_getdents): Remove.
+
+ * sysdeps/unix/syscalls.list (madvise): Add syscall from
+ sysdeps/unix/mman/syscalls.list.
+ (mmap): Likewise.
+ (mprotect): Likewise.
+ (msync): Likewise.
+ (munmap): Likewise.
+ * sysdeps/unix/bsd/bsd4.4/Implies: Remove.
+ * sysdeps/unix/mman/syscalls.list: Remove.
+ * sysdeps/unix/sysv/linux/Implies: Don't include unix/mman.
+
+ * configure.in (libc_cv_libgcc_s_suffix): Remove test.
+ (libc_cv_as_needed): Don't use $libc_cv_libgcc_s_suffix.
+ * configure: Regenerated.
+ * Makeconfig [$(have-as-needed) = yes] (libgcc_eh): Don't use
+ $(libgcc_s_suffix).
+ * config.make.in (libgcc_s_suffix): Remove variable.
+
2012-04-23 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
* sysdeps/unix/sysv/gethostname.c: Move to ...
Modified: fsf/trunk/libc/Makeconfig
==============================================================================
--- fsf/trunk/libc/Makeconfig (original)
+++ fsf/trunk/libc/Makeconfig Wed Apr 25 00:01:37 2012
@@ -537,7 +537,7 @@
ifneq ($(have-as-needed),yes)
libgcc_eh := -lgcc_eh $(libunwind)
else
- libgcc_eh := -Wl,--as-needed -lgcc_s$(libgcc_s_suffix) $(libunwind) -Wl,--no-as-needed
+ libgcc_eh := -Wl,--as-needed -lgcc_s $(libunwind) -Wl,--no-as-needed
endif
gnulib := -lgcc $(libgcc_eh)
static-gnulib := -lgcc -lgcc_eh $(libunwind)
Modified: fsf/trunk/libc/Makerules
==============================================================================
--- fsf/trunk/libc/Makerules (original)
+++ fsf/trunk/libc/Makerules Wed Apr 25 00:01:37 2012
@@ -1114,17 +1114,15 @@
endif
install: install-no-libc.a-nosubdir
-# Command to compile $< in $(objdir) using the native libraries.
+# Command to compile $< using the native libraries.
define native-compile
$(make-target-directory)
-$(patsubst %/,cd % &&,$(objpfx)) \
$(BUILD_CC) $($(basename $(<F))-CFLAGS) $(ALL_BUILD_CFLAGS) \
- $(firstword $(filter /%,$< $(shell pwd)/$<)) -o $(@F)
+ $< $(OUTPUT_OPTION)
endef
# We always want to use configuration definitions.
-# Note that this is only used for commands running in $(objpfx).
-ALL_BUILD_CFLAGS = $(BUILD_CFLAGS) -include $(..)config.h
+ALL_BUILD_CFLAGS = $(BUILD_CFLAGS) -include $(common-objpfx)config.h
# Support the GNU standard name for this target.
.PHONY: check
@@ -1330,6 +1328,7 @@
-rm -f $(objpfx)*.d $(objpfx)*.dt
-rm -fr $(addprefix $(objpfx),$(generated-dirs))
-rm -f $(addprefix $(common-objpfx),$(common-generated))
+ -rm -f $(gen-as-const-headers:%.sym=$(common-objpfx)%.h)
# Produce a file `stubs' which contains `#define __stub_FUNCTION'
# for each function which is a stub. We grovel over all the .d files
Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Wed Apr 25 00:01:37 2012
@@ -19,10 +19,10 @@
13551, 13552, 13553, 13555, 13559, 13566, 13583, 13592, 13618, 13637,
13656, 13658, 13673, 13691, 13695, 13704, 13705, 13706, 13726, 13738,
13739, 13760, 13761, 13786, 13792, 13806, 13824, 13840, 13841, 13844,
- 13846, 13851, 13852, 13854, 13871, 13872, 13873, 13879, 13883, 13892,
- 13895, 13908, 13910, 13911, 13912, 13913, 13915, 13916, 13917, 13918,
- 13919, 13920, 13921, 13926, 13927, 13928, 13938, 13963, 13967, 13970,
- 13973
+ 13846, 13851, 13852, 13854, 13871, 13872, 13873, 13879, 13883, 13886,
+ 13892, 13895, 13908, 13910, 13911, 13912, 13913, 13915, 13916, 13917,
+ 13918, 13919, 13920, 13921, 13926, 13927, 13928, 13938, 13963, 13967,
+ 13970, 13973
* ISO C11 support:
Modified: fsf/trunk/libc/config.make.in
==============================================================================
--- fsf/trunk/libc/config.make.in (original)
+++ fsf/trunk/libc/config.make.in Wed Apr 25 00:01:37 2012
@@ -50,7 +50,6 @@
have-z-execstack = @libc_cv_z_execstack@
have-Bgroup = @libc_cv_Bgroup@
have-as-needed = @libc_cv_as_needed@
-libgcc_s_suffix = @libc_cv_libgcc_s_suffix@
with-fp = @with_fp@
old-glibc-headers = @old_glibc_headers@
unwind-find-fde = @libc_cv_gcc_unwind_find_fde@
Modified: fsf/trunk/libc/configure
==============================================================================
--- fsf/trunk/libc/configure (original)
+++ fsf/trunk/libc/configure Wed Apr 25 00:01:37 2012
@@ -651,7 +651,6 @@
libc_cv_z_combreloc
ASFLAGS_config
libc_cv_as_needed
-libc_cv_libgcc_s_suffix
libc_cv_Bgroup
libc_cv_cc_with_libunwind
VERSIONING
@@ -6305,24 +6304,6 @@
$as_echo "$libc_cv_Bgroup" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libgcc_s suffix" >&5
-$as_echo_n "checking for libgcc_s suffix... " >&6; }
-if ${libc_cv_libgcc_s_suffix+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat > conftest.c <<EOF
-int main (void) { return 0; }
-EOF
-libc_cv_libgcc_s_suffix=`${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
- -fPIC -shared -shared-libgcc -o conftest.so \
- conftest.c -v 2>&1 >/dev/null \
- | sed -n 's/^.* -lgcc_s\([^ ]*\) .*$/\1/p'`
-rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_libgcc_s_suffix" >&5
-$as_echo "$libc_cv_libgcc_s_suffix" >&6; }
-
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --as-needed option" >&5
$as_echo_n "checking for --as-needed option... " >&6; }
if ${libc_cv_as_needed+:} false; then :
@@ -6333,7 +6314,7 @@
EOF
if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
-fPIC -shared -o conftest.so conftest.c
- -lgcc_s$libc_cv_libgcc_s_suffix -Wl,--as-needed
+ -lgcc_s -Wl,--as-needed
-nostdlib 1>&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
Modified: fsf/trunk/libc/configure.in
==============================================================================
--- fsf/trunk/libc/configure.in (original)
+++ fsf/trunk/libc/configure.in Wed Apr 25 00:01:37 2012
@@ -1519,20 +1519,6 @@
rm -f conftest*])
AC_SUBST(libc_cv_Bgroup)
-AC_CACHE_CHECK(for libgcc_s suffix,
- libc_cv_libgcc_s_suffix, [dnl
-cat > conftest.c <<EOF
-int main (void) { return 0; }
-EOF
-changequote(,)dnl
-libc_cv_libgcc_s_suffix=`${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
- -fPIC -shared -shared-libgcc -o conftest.so \
- conftest.c -v 2>&1 >/dev/null \
- | sed -n 's/^.* -lgcc_s\([^ ]*\) .*$/\1/p'`
-changequote([,])dnl
-rm -f conftest*])
-AC_SUBST(libc_cv_libgcc_s_suffix)
-
AC_CACHE_CHECK(for --as-needed option,
libc_cv_as_needed, [dnl
cat > conftest.c <<EOF
@@ -1540,7 +1526,7 @@
EOF
if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS
-fPIC -shared -o conftest.so conftest.c
- -lgcc_s$libc_cv_libgcc_s_suffix -Wl,--as-needed
+ -lgcc_s -Wl,--as-needed
-nostdlib 1>&AS_MESSAGE_LOG_FD])
then
libc_cv_as_needed=yes
Modified: fsf/trunk/libc/elf/Makefile
==============================================================================
--- fsf/trunk/libc/elf/Makefile (original)
+++ fsf/trunk/libc/elf/Makefile Wed Apr 25 00:01:37 2012
@@ -933,8 +933,7 @@
$(common-objpfx)crypt/libcrypt.so \
$(check-data)
$(dir $<)$(notdir $<) $(filter-out $< $(check-data),$^) | \
- LC_ALL=C sort | \
- diff -u $(check-data) - > $@
+ $(AWK) -f $(..)scripts/check-localplt.awk $(check-data) -
endif
$(objpfx)tst-dlopenrpathmod.so: $(libdl)
Modified: fsf/trunk/libc/math/libm-test.inc
==============================================================================
--- fsf/trunk/libc/math/libm-test.inc (original)
+++ fsf/trunk/libc/math/libm-test.inc Wed Apr 25 00:01:37 2012
@@ -3442,6 +3442,9 @@
TEST_f_f (floor, 10141204801825835211973625643008.5L, 10141204801825835211973625643008.0L);
TEST_f_f (floor, 10141204801825835211973625643008.75L, 10141204801825835211973625643008.0L);
TEST_f_f (floor, 10141204801825835211973625643009.5L, 10141204801825835211973625643009.0L);
+
+ TEST_f_f (floor, 0xf.ffffffffffffff8p+47L, 0xf.fffffffffffep+47L);
+ TEST_f_f (floor, -0x8.000000000000004p+48L, -0x8.000000000001p+48L);
#endif
END (floor);
Added: fsf/trunk/libc/scripts/check-localplt.awk
==============================================================================
--- fsf/trunk/libc/scripts/check-localplt.awk (added)
+++ fsf/trunk/libc/scripts/check-localplt.awk Wed Apr 25 00:01:37 2012
@@ -1,0 +1,53 @@
+# This is an awk script to process the output of elf/check-localplt.
+# The first file argument is the file of expected results.
+# Each line is either a comment starting with # or it looks like:
+# libfoo.so: function
+# or
+# libfoo.so: function ?
+# The latter means that a PLT entry for function is optional in libfoo.so.
+# The former means one is required.
+# The second file argument is - and this (stdin) receives the output
+# of the check-localplt program.
+
+BEGIN { result = 0 }
+
+FILENAME != "-" && /^#/ { next }
+
+FILENAME != "-" {
+ if (NF != 2 && !(NF == 3 && $3 == "?")) {
+ printf "%s:%d: bad data line: %s\n", FILENAME, FNR, $0 > "/dev/stderr";
+ result = 2;
+ } else {
+ accept[$1 " " $2] = NF == 2;
+ }
+ next;
+}
+
+NF != 2 {
+ print "Unexpected output from check-localplt:", $0 > "/dev/stderr";
+ result = 2;
+ next
+}
+
+{
+ key = $1 " " $2
+ if (key in accept) {
+ delete accept[key]
+ } else {
+ print "Extra PLT reference:", $0;
+ if (result == 0)
+ result = 1;
+ }
+}
+
+END {
+ for (key in accept) {
+ if (accept[key]) {
+ # It's mandatory.
+ print "Missing required PLT reference:", key;
+ result = 1;
+ }
+ }
+
+ exit(result);
+}
Modified: fsf/trunk/libc/scripts/data/localplt-generic.data
==============================================================================
--- fsf/trunk/libc/scripts/data/localplt-generic.data (original)
+++ fsf/trunk/libc/scripts/data/localplt-generic.data Wed Apr 25 00:01:37 2012
@@ -1,3 +1,6 @@
+# See scripts/check-localplt.awk for how this file is processed.
+# PLT use is required for the malloc family and for matherr because
+# users can define their own functions and have library internals call them.
libc.so: calloc
libc.so: free
libc.so: malloc
Modified: fsf/trunk/libc/sysdeps/mach/hurd/symlink.c
==============================================================================
--- fsf/trunk/libc/sysdeps/mach/hurd/symlink.c (original)
+++ fsf/trunk/libc/sysdeps/mach/hurd/symlink.c Wed Apr 25 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -46,19 +46,22 @@
err = __dir_mkfile (dir, O_WRITE, 0777 & ~_hurd_umask, &node);
if (! err)
- /* Set the node's translator to make it a symlink. */
- err = __file_set_translator (node,
- FS_TRANS_EXCL|FS_TRANS_SET,
- FS_TRANS_EXCL|FS_TRANS_SET, 0,
- buf, sizeof (_HURD_SYMLINK) + len,
- MACH_PORT_NULL, MACH_MSG_TYPE_COPY_SEND);
+ {
+ /* Set the node's translator to make it a symlink. */
+ err = __file_set_translator (node,
+ FS_TRANS_EXCL|FS_TRANS_SET,
+ FS_TRANS_EXCL|FS_TRANS_SET, 0,
+ buf, sizeof (_HURD_SYMLINK) + len,
+ MACH_PORT_NULL, MACH_MSG_TYPE_COPY_SEND);
- if (! err)
- /* Link the node, now a valid symlink, into the target directory. */
- err = __dir_link (dir, node, name, 1);
+ if (! err)
+ /* Link the node, now a valid symlink, into the target directory. */
+ err = __dir_link (dir, node, name, 1);
+
+ __mach_port_deallocate (__mach_task_self (), node);
+ }
__mach_port_deallocate (__mach_task_self (), dir);
- __mach_port_deallocate (__mach_task_self (), node);
if (err)
return __hurd_fail (err);
Modified: fsf/trunk/libc/sysdeps/mach/hurd/symlinkat.c
==============================================================================
--- fsf/trunk/libc/sysdeps/mach/hurd/symlinkat.c (original)
+++ fsf/trunk/libc/sysdeps/mach/hurd/symlinkat.c Wed Apr 25 00:01:37 2012
@@ -1,6 +1,5 @@
/* Create a symbolic link named relative to an open directory. Hurd version.
- Copyright (C) 1991,1992,1993,1994,1995,1996,1997,2006
- Free Software Foundation, Inc.
+ Copyright (C) 1991-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -53,19 +52,22 @@
err = __dir_mkfile (dir, O_WRITE, 0777 & ~_hurd_umask, &node);
if (! err)
- /* Set the node's translator to make it a symlink. */
- err = __file_set_translator (node,
- FS_TRANS_EXCL|FS_TRANS_SET,
- FS_TRANS_EXCL|FS_TRANS_SET, 0,
- buf, sizeof (_HURD_SYMLINK) + len,
- MACH_PORT_NULL, MACH_MSG_TYPE_COPY_SEND);
+ {
+ /* Set the node's translator to make it a symlink. */
+ err = __file_set_translator (node,
+ FS_TRANS_EXCL|FS_TRANS_SET,
+ FS_TRANS_EXCL|FS_TRANS_SET, 0,
+ buf, sizeof (_HURD_SYMLINK) + len,
+ MACH_PORT_NULL, MACH_MSG_TYPE_COPY_SEND);
- if (! err)
- /* Link the node, now a valid symlink, into the target directory. */
- err = __dir_link (dir, node, name, 1);
+ if (! err)
+ /* Link the node, now a valid symlink, into the target directory. */
+ err = __dir_link (dir, node, name, 1);
+
+ __mach_port_deallocate (__mach_task_self (), node);
+ }
__mach_port_deallocate (__mach_task_self (), dir);
- __mach_port_deallocate (__mach_task_self (), node);
if (err)
return __hurd_fail (err);
Modified: fsf/trunk/libc/sysdeps/powerpc/fpu/libm-test-ulps
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/fpu/libm-test-ulps (original)
+++ fsf/trunk/libc/sysdeps/powerpc/fpu/libm-test-ulps Wed Apr 25 00:01:37 2012
@@ -1488,6 +1488,17 @@
ildouble: 1
ldouble: 1
+# pow
+Test "pow (0x0.ffffffp0, -0x1p24) == 2.7182819094701610539628664526874952929416":
+float: 1
+ifloat: 1
+Test "pow (0x0.ffffffp0, 0x1p24) == 0.3678794302077803437135155590023422899744":
+float: 1
+ifloat: 1
+Test "pow (0x1.000002p0, 0x1p24) == 7.3890552180866447284268641248075832310141":
+float: 1
+ifloat: 1
+
# pow_downward
Test "pow_downward (1.0625, 1.125) == 1.070582293028761362162622578677070098674":
ildouble: 1
@@ -2448,6 +2459,8 @@
ldouble: 1
Function: "pow":
+float: 1
+ifloat: 1
ildouble: 1
ldouble: 1
Removed: fsf/trunk/libc/sysdeps/powerpc/powerpc64/fpu/s_floorl.S
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc64/fpu/s_floorl.S (original)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc64/fpu/s_floorl.S (removed)
@@ -1,133 +1,0 @@
-/* long double floor function.
- IBM extended format long double version.
- Copyright (C) 2004, 2006 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
- .section ".toc","aw"
-.LC0: /* 2**52 */
- .tc FD_43300000_0[TC],0x4330000000000000
-
- .section ".text"
-/* long double [fp1,fp2] floorl (long double x [fp1,fp2])
- IEEE 1003.1 floor function.
-
- PowerPC64 long double uses the IBM extended format which is
- represented two 64-floating point double values. The values are
- non-overlapping giving an effective precision of 106 bits. The first
- double contains the high order bits of mantisa and is always rounded
- to represent a normal rounding of long double to double. Since the
- long double value is sum of the high and low values, the low double
- normally has the opposite sign to compensate for the this rounding.
-
- For long double there are two cases:
- 1) |x| < 2**52, all the integer bits are in the high double.
- floor the high double and set the low double to -0.0.
- 2) |x| >= 2**52, Rounding involves both doubles.
- See the comment before lable .L2 for details.
- */
-
-ENTRY (__floorl)
- mffs fp11 /* Save current FPU rounding mode. */
- lfd fp13,.LC0@toc(2)
- fabs fp0,fp1
- fabs fp9,fp2
- fsub fp12,fp13,fp13 /* generate 0.0 */
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl- cr7,.L2
- mtfsfi 7,3 /* Set rounding mode toward -inf. */
- fneg fp2,fp12 /* set low double to -0.0. */
- ble- cr6,.L0
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fcmpu cr5,fp1,fp12 /* if (x > 0.0) */
- mtfsf 0x01,fp11 /* restore previous rounding mode. */
- bnelr+ cr5
- fmr fp1,fp12 /* x must be +0.0 for the 0.0 case. */
- blr
-.L0:
- bge- cr6,.L1 /* if (x < 0.0) */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fadd fp1,fp1,fp13 /* x+= TWO52; */
-.L1:
- mtfsf 0x01,fp11 /* restore previous rounding mode. */
- blr
-
-
-/* The high double is > TWO52 so we need to round the low double and
- perhaps the high double. In this case we have to round the low
- double and handle any adjustment to the high double that may be
- caused by rounding (up). This is complicated by the fact that the
- high double may already be rounded and the low double may have the
- opposite sign to compensate.This gets a bit tricky so we use the
- following algorithm:
-
- tau = floor(x_high/TWO52);
- x0 = x_high - tau;
- x1 = x_low + tau;
- r1 = rint(x1);
- y_high = x0 + r1;
- y_low = x0 - y_high + r1;
- return y; */
-.L2:
- fcmpu cr7,fp9,fp13 /* if (|x_low| > TWO52) */
- fcmpu cr0,fp9,fp12 /* || (|x_low| == 0.0) */
- fcmpu cr5,fp2,fp12 /* if (x_low > 0.0) */
- bgelr- cr7 /* return x; */
- beqlr- cr0
- mtfsfi 7,3 /* Set rounding mode toward -inf. */
- fdiv fp8,fp1,fp13 /* x_high/TWO52 */
-
- bng- cr6,.L6 /* if (x > 0.0) */
- fctidz fp0,fp8
- fcfid fp8,fp0 /* tau = floor(x_high/TWO52); */
- bng cr5,.L4 /* if (x_low > 0.0) */
- fmr fp3,fp1
- fmr fp4,fp2
- b .L5
-.L4: /* if (x_low < 0.0) */
- fsub fp3,fp1,fp8 /* x0 = x_high - tau; */
- fadd fp4,fp2,fp8 /* x1 = x_low + tau; */
-.L5:
- fadd fp5,fp4,fp13 /* r1 = r1 + TWO52; */
- fsub fp5,fp5,fp13 /* r1 = r1 - TWO52; */
- b .L9
-.L6: /* if (x < 0.0) */
- fctidz fp0,fp8
- fcfid fp8,fp0 /* tau = floor(x_high/TWO52); */
- bnl cr5,.L7 /* if (x_low < 0.0) */
- fmr fp3,fp1
- fmr fp4,fp2
- b .L8
-.L7: /* if (x_low > 0.0) */
- fsub fp3,fp1,fp8 /* x0 = x_high - tau; */
- fadd fp4,fp2,fp8 /* x1 = x_low + tau; */
-.L8:
- fsub fp5,fp4,fp13 /* r1-= TWO52; */
- fadd fp5,fp5,fp13 /* r1+= TWO52; */
-.L9:
- mtfsf 0x01,fp11 /* restore previous rounding mode. */
- fadd fp1,fp3,fp5 /* y_high = x0 + r1; */
- fsub fp2,fp3,fp1 /* y_low = x0 - y_high + r1; */
- fadd fp2,fp2,fp5
- blr
-END (__floorl)
-
-long_double_symbol (libm, __floorl, floorl)
Removed: fsf/trunk/libc/sysdeps/unix/bsd/bsd4.4/Implies
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/bsd/bsd4.4/Implies (original)
+++ fsf/trunk/libc/sysdeps/unix/bsd/bsd4.4/Implies (removed)
@@ -1,2 +1,0 @@
-# 4.4 BSD has the canonical set of <sys/mman.h> system calls.
-unix/mman
Removed: fsf/trunk/libc/sysdeps/unix/bsd/bsd4.4/system.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/bsd/bsd4.4/system.c (original)
+++ fsf/trunk/libc/sysdeps/unix/bsd/bsd4.4/system.c (removed)
@@ -1,2 +1,0 @@
-/* BSD 4.4 does have `waitpid'. Avoid unix/system.c, which says we don't. */
-#include <sysdeps/posix/system.c>
Removed: fsf/trunk/libc/sysdeps/unix/fork.S
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/fork.S (original)
+++ fsf/trunk/libc/sysdeps/unix/fork.S (removed)
@@ -1,33 +1,0 @@
-/* Copyright (C) 1991,92,94,95,97,2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-/* This code works for at least m68k. */
-
-SYSCALL__ (fork, 0)
- /* R1 is now 0 for the parent and 1 for the child. Decrement it to
- make it -1 (all bits set) for the parent, and 0 (no bits set)
- for the child. Then AND it with R0, so the parent gets
- R0&-1==R0, and the child gets R0&0==0. */
- subl #1, r1
- andl r1, r0
- ret
-PSEUDO_END (__fork)
-libc_hidden_def (__fork)
-
-weak_alias (__fork, fork)
Removed: fsf/trunk/libc/sysdeps/unix/getdents.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/getdents.c (original)
+++ fsf/trunk/libc/sysdeps/unix/getdents.c (removed)
@@ -1,35 +1,0 @@
-/* Copyright (C) 1993, 1995, 1996, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stddef.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-ssize_t
-__getdirentries (fd, buf, nbytes, basep)
- int fd;
- char *buf;
- size_t nbytes;
- off_t *basep;
-{
- if (basep)
- *basep = __lseek (fd, (off_t) 0, SEEK_CUR);
-
- return (ssize_t) __read (fd, buf, nbytes);
-}
-
-weak_alias (__getdirentries, getdirentries)
Removed: fsf/trunk/libc/sysdeps/unix/getegid.S
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/getegid.S (original)
+++ fsf/trunk/libc/sysdeps/unix/getegid.S (removed)
@@ -1,29 +1,0 @@
-/* Copyright (C) 1991, 1992, 1995, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-#ifdef SYS_getegid
-SYSCALL__ (getegid, 0)
-#else
-PSEUDO (__getegid, getgid, 0)
- MOVE(r1, r0)
-#endif
- ret
-PSEUDO_END(__getegid)
-
-weak_alias (__getegid, getegid)
Removed: fsf/trunk/libc/sysdeps/unix/geteuid.S
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/geteuid.S (original)
+++ fsf/trunk/libc/sysdeps/unix/geteuid.S (removed)
@@ -1,29 +1,0 @@
-/* Copyright (C) 1991, 1992, 1995, 1997 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-#ifdef SYS_geteuid
-SYSCALL__ (geteuid, 0)
-#else
-PSEUDO (__geteuid, getuid, 0)
- MOVE(r1, r0)
-#endif
- ret
-PSEUDO_END(__geteuid)
-
-weak_alias (__geteuid, geteuid)
Removed: fsf/trunk/libc/sysdeps/unix/i386/fork.S
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/i386/fork.S (original)
+++ fsf/trunk/libc/sysdeps/unix/i386/fork.S (removed)
@@ -1,31 +1,0 @@
-/* Copyright (C) 1991,92,94,95,97,2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-SYSCALL__ (fork, 0)
- /* R1 is now 0 for the parent and 1 for the child. Decrement it to
- make it -1 (all bits set) for the parent, and 0 (no bits set)
- for the child. Then AND it with R0, so the parent gets
- R0&-1==R0, and the child gets R0&0==0. */
- decl r1
- andl r1, r0
- ret
-PSEUDO_END (__fork)
-libc_hidden_def (__fork)
-
-weak_alias (__fork, fork)
Removed: fsf/trunk/libc/sysdeps/unix/sparc/fork.S
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sparc/fork.S (original)
+++ fsf/trunk/libc/sysdeps/unix/sparc/fork.S (removed)
@@ -1,30 +1,0 @@
-/* Copyright (C) 1991, 92, 94, 95, 97, 99, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-SYSCALL__ (fork, 0)
- /* %o1 is now 0 for the parent and 1 for the child. Decrement it to
- make it -1 (all bits set) for the parent, and 0 (no bits set)
- for the child. Then AND it with %o0, so the parent gets
- %o0&-1==pid, and the child gets %o0&0==0. */
- sub %o1, 1, %o1
- retl
- and %o0, %o1, %o0
-libc_hidden_def (__fork)
-
-weak_alias (__fork, fork)
Modified: fsf/trunk/libc/sysdeps/unix/syscalls.list
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/syscalls.list (original)
+++ fsf/trunk/libc/sysdeps/unix/syscalls.list Wed Apr 25 00:01:37 2012
@@ -26,7 +26,12 @@
kill - kill i:ii __kill kill
link - link i:ss __link link
lseek - lseek i:iii __libc_lseek __lseek lseek
+madvise - madvise i:pii madvise
mkdir - mkdir i:si __mkdir mkdir
+mmap - mmap b:aniiii __mmap mmap
+mprotect - mprotect i:aii __mprotect mprotect
+msync - msync Ci:aii __libc_msync msync
+munmap - munmap i:ai __munmap munmap
open - open Ci:siv __libc_open __open open
profil - profil i:piii __profil profil
ptrace - ptrace i:iiii ptrace
Removed: fsf/trunk/libc/sysdeps/unix/system.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/system.c (original)
+++ fsf/trunk/libc/sysdeps/unix/system.c (removed)
@@ -1,2 +1,0 @@
-#define NO_WAITPID
-#include <sysdeps/posix/system.c>
Removed: fsf/trunk/libc/sysdeps/unix/sysv/getdents.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/getdents.c (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/getdents.c (removed)
@@ -1,38 +1,0 @@
-/* Copyright (C) 1993, 1995, 1997, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <stddef.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-extern ssize_t __getdents (int fd, char *buf, size_t nbytes);
-
-ssize_t
-__getdirentries (fd, buf, nbytes, basep)
- int fd;
- char *buf;
- size_t nbytes;
- off_t *basep;
-{
- if (basep)
- *basep = __lseek (fd, (off_t) 0, SEEK_CUR);
-
- return __getdents (fd, buf, nbytes);
-}
-
-weak_alias (__getdirentries, getdirentries)
Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/Implies
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/Implies (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/Implies Wed Apr 25 00:01:37 2012
@@ -5,10 +5,5 @@
# Linux shares most of the syscalls which are also common to BSD and SVR4.
unix/common
-# Linux as of version 1.3.29 has all functions of the mmap family
-# which are described in POSIX.4. Missing is only madvise() so
-# we define a stub here.
-unix/mman
-
# Linux has network support in the kernel.
unix/inet
Modified: fsf/trunk/libc/sysdeps/unix/sysv/syscalls.list
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/syscalls.list (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/syscalls.list Wed Apr 25 00:01:37 2012
@@ -5,7 +5,6 @@
nice - nice i:i nice
pause - pause Ci: pause
poll - poll Ci:pii poll
-s_getdents getdents getdents i:ipi __getdents
setrlimit - setrlimit i:ip __setrlimit setrlimit
settimeofday - settimeofday i:PP __settimeofday settimeofday
signal - signal i:ii signal
_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits