[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commits] r18836 - in /fsf/trunk/libc: ./ include/sys/ socket/ soft-fp/ sysdeps/i386/ sysdeps/i386/bits/ sysdeps/mach/hurd/ sysdeps/sp...
- To: commits@xxxxxxxxxx
- Subject: [Commits] r18836 - in /fsf/trunk/libc: ./ include/sys/ socket/ soft-fp/ sysdeps/i386/ sysdeps/i386/bits/ sysdeps/mach/hurd/ sysdeps/sp...
- From: eglibc@xxxxxxxxxx
- Date: Thu, 31 May 2012 00:01:33 -0000
Author: eglibc
Date: Thu May 31 00:01:32 2012
New Revision: 18836
Log:
Import glibc-mainline for 2012-05-31
Added:
fsf/trunk/libc/sysdeps/x86/
fsf/trunk/libc/sysdeps/x86/bits/
fsf/trunk/libc/sysdeps/x86/bits/byteswap-16.h
fsf/trunk/libc/sysdeps/x86/bits/byteswap.h
fsf/trunk/libc/sysdeps/x86/bits/endian.h
fsf/trunk/libc/sysdeps/x86/bits/huge_vall.h
fsf/trunk/libc/sysdeps/x86/bits/link.h
fsf/trunk/libc/sysdeps/x86/bits/linkmap.h
fsf/trunk/libc/sysdeps/x86/bits/mathdef.h
fsf/trunk/libc/sysdeps/x86/bits/select.h
fsf/trunk/libc/sysdeps/x86/bits/setjmp.h
Removed:
fsf/trunk/libc/sysdeps/i386/bits/
fsf/trunk/libc/sysdeps/x86_64/bits/byteswap-16.h
fsf/trunk/libc/sysdeps/x86_64/bits/byteswap.h
fsf/trunk/libc/sysdeps/x86_64/bits/endian.h
fsf/trunk/libc/sysdeps/x86_64/bits/link.h
fsf/trunk/libc/sysdeps/x86_64/bits/linkmap.h
fsf/trunk/libc/sysdeps/x86_64/bits/mathdef.h
fsf/trunk/libc/sysdeps/x86_64/bits/select.h
fsf/trunk/libc/sysdeps/x86_64/bits/setjmp.h
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/include/sys/socket.h
fsf/trunk/libc/socket/connect.c
fsf/trunk/libc/soft-fp/op-common.h
fsf/trunk/libc/soft-fp/soft-fp.h
fsf/trunk/libc/sysdeps/i386/Implies
fsf/trunk/libc/sysdeps/mach/hurd/connect.c
fsf/trunk/libc/sysdeps/sparc/sparc32/soft-fp/sfp-machine.h
fsf/trunk/libc/sysdeps/sparc/sparc64/soft-fp/sfp-machine.h
fsf/trunk/libc/sysdeps/unix/inet/syscalls.list
fsf/trunk/libc/sysdeps/unix/sysv/linux/connect.S
fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
fsf/trunk/libc/sysdeps/unix/sysv/linux/sa_len.c
fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/syscalls.list
fsf/trunk/libc/sysdeps/x86_64/Implies
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Thu May 31 00:01:32 2012
@@ -1,3 +1,74 @@
+2012-05-30 H.J. Lu <hongjiu.lu@xxxxxxxxx>
+
+ [BZ #14117]
+ * sysdeps/i386/bits/huge_vall.h: Renamed to ...
+ * sysdeps/x86/bits/huge_vall.h: This.
+
+ * sysdeps/i386/bits/select.h: Removed.
+ * sysdeps/x86_64/bits/select.h: Renamed to ...
+ * sysdeps/x86/bits/select.h: This.
+
+ * sysdeps/i386/bits/setjmp.h: Removed.
+ * sysdeps/x86_64/bits/setjmp.h: Renamed to ...
+ * sysdeps/x86/bits/setjmp.h: This.
+
+ * sysdeps/i386/bits/mathdef.h: Removed.
+ * sysdeps/x86_64/bits/mathdef.h: Renamed to ...
+ * sysdeps/x86/bits/mathdef.h: This.
+
+2012-05-30 Andreas Schwab <schwab@xxxxxxxxxxxxxx>
+
+ [BZ #14132]
+ * include/sys/socket.h (__connect_internal)
+ (__libc_sa_len_internal): Remove declaration.
+ (__connect, __libc_sa_len): Declare hidden_proto.
+ (SA_LEN): Remove use of INTUSE.
+ * socket/connect.c: Add libc_hidden_def.
+ * sysdeps/mach/hurd/connect.c: Replace INTDEF by libc_hidden_def.
+ * sysdeps/unix/sysv/linux/sa_len.c: Likewise.
+ * sysdeps/unix/inet/syscalls.list: Remove __connect_internal
+ alias.
+ * sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list: Likewise.
+ * sysdeps/unix/sysv/linux/x86_64/syscalls.list: Likewise.
+ * sysdeps/unix/sysv/linux/connect.S: Use libc_hidden_weak instead
+ of adding _internal alias.
+
+2012-05-30 H.J. Lu <hongjiu.lu@xxxxxxxxx>
+
+ [BZ #14117]
+ * sysdeps/i386/bits/link.h: Removed.
+ * sysdeps/i386/bits/linkmap.h: Likewise.
+ * sysdeps/x86_64/bits/link.h: Renamed to ...
+ * sysdeps/x86/bits/link.h: This.
+ * sysdeps/x86_64/bits/linkmap.h: Renamed to ...
+ * sysdeps/x86/bits/linkmap.h: This.
+
+ * sysdeps/i386/bits/endian.h: Removed.
+ * sysdeps/x86_64/bits/endian.h: Renamed to ...
+ * sysdeps/x86/bits/endian.h: This.
+
+ * sysdeps/i386/bits/byteswap.h: Removed.
+ * sysdeps/i386/bits/byteswap-16.h: Likewise.
+ * sysdeps/x86_64/bits/byteswap.h: Renamed to ...
+ * sysdeps/x86/bits/byteswap.h: This.
+ * sysdeps/x86_64/bits/byteswap-16.h: Renamed to ...
+ * sysdeps/x86/bits/byteswap-16.h: This.
+ * sysdeps/i386/Implies: Add x86.
+ * sysdeps/x86_64/Implies: Likewise.
+
+2012-05-30 David S. Miller <davem@xxxxxxxxxxxxx>
+
+ * soft-fp/soft-fp.h (FP_CUR_EXCEPTIONS): Define.
+ (FP_TRAPPING_EXCEPTIONS): Provide default implementation.
+ * sysdeps/sparc/sparc32/soft-fp/sfp-machine.h
+ (FP_TRAPPING_EXCEPTIONS): Define.
+ * sysdeps/sparc/sparc64/soft-fp/sfp-machine.h
+ (FP_TRAPPING_EXCEPTIONS): Define.
+ * soft-fp/op-common.h (_FP_PACK_SEMIRAW): Signal underflow for
+ subnormals only when inexact has been signalled or underflow
+ exceptions are enabled.
+ (_FP_PACK_CANONICAL): Likewise.
+
2012-05-30 H.J. Lu <hongjiu.lu@xxxxxxxxx>
[BZ #14183]
Modified: fsf/trunk/libc/include/sys/socket.h
==============================================================================
--- fsf/trunk/libc/include/sys/socket.h (original)
+++ fsf/trunk/libc/include/sys/socket.h Thu May 31 00:01:32 2012
@@ -57,8 +57,7 @@
extern int __libc_connect (int __fd, __CONST_SOCKADDR_ARG __addr,
socklen_t __len);
extern int __connect (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len);
-extern int __connect_internal (int __fd, __CONST_SOCKADDR_ARG __addr,
- socklen_t __len) attribute_hidden;
+libc_hidden_proto (__connect)
/* Read N bytes into BUF from socket FD.
Returns the number read or -1 for errors.
@@ -144,17 +143,8 @@
# define SA_LEN(_x) (_x)->sa_len
#else
extern int __libc_sa_len (sa_family_t __af);
-extern int __libc_sa_len_internal (sa_family_t __af) attribute_hidden;
-# ifndef NOT_IN_libc
-# define SA_LEN(_x) INTUSE(__libc_sa_len)((_x)->sa_family)
-# else
-# define SA_LEN(_x) __libc_sa_len((_x)->sa_family)
-# endif
-#endif
-
-
-#ifndef NOT_IN_libc
-# define __connect(fd, addr, len) INTUSE(__connect) (fd, addr, len)
+libc_hidden_proto (__libc_sa_len)
+# define SA_LEN(_x) __libc_sa_len((_x)->sa_family)
#endif
#ifdef SOCK_CLOEXEC
Modified: fsf/trunk/libc/socket/connect.c
==============================================================================
--- fsf/trunk/libc/socket/connect.c (original)
+++ fsf/trunk/libc/socket/connect.c Thu May 31 00:01:32 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997 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
@@ -32,6 +32,7 @@
return -1;
}
weak_alias (__connect, connect)
+libc_hidden_def (__connect)
stub_warning (connect)
#include <stub-tag.h>
Modified: fsf/trunk/libc/soft-fp/op-common.h
==============================================================================
--- fsf/trunk/libc/soft-fp/op-common.h (original)
+++ fsf/trunk/libc/soft-fp/op-common.h Thu May 31 00:01:32 2012
@@ -1,5 +1,5 @@
/* Software floating-point emulation. Common operations.
- Copyright (C) 1997,1998,1999,2006,2007 Free Software Foundation, Inc.
+ Copyright (C) 1997,1998,1999,2006,2007,2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@xxxxxxxxxx),
Jakub Jelinek (jj@xxxxxxxxxxxxxx),
@@ -146,7 +146,11 @@
if (!_FP_EXP_NORMAL(fs, wc, X) && !_FP_FRAC_ZEROP_##wc(X)) \
{ \
if (X##_e == 0) \
- FP_SET_EXCEPTION(FP_EX_UNDERFLOW); \
+ { \
+ if ((FP_CUR_EXCEPTIONS & FP_EX_INEXACT) \
+ || (FP_TRAPPING_EXCEPTIONS & FP_EX_UNDERFLOW)) \
+ FP_SET_EXCEPTION(FP_EX_UNDERFLOW); \
+ } \
else \
{ \
if (!_FP_KEEPNANFRACP) \
@@ -226,13 +230,16 @@
{ \
X##_e = 1; \
_FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \
+ FP_SET_EXCEPTION(FP_EX_INEXACT); \
} \
else \
{ \
X##_e = 0; \
_FP_FRAC_SRL_##wc(X, _FP_WORKBITS); \
- FP_SET_EXCEPTION(FP_EX_UNDERFLOW); \
} \
+ if ((FP_CUR_EXCEPTIONS & FP_EX_INEXACT) \
+ || (FP_TRAPPING_EXCEPTIONS & FP_EX_UNDERFLOW)) \
+ FP_SET_EXCEPTION(FP_EX_UNDERFLOW); \
} \
else \
{ \
Modified: fsf/trunk/libc/soft-fp/soft-fp.h
==============================================================================
--- fsf/trunk/libc/soft-fp/soft-fp.h (original)
+++ fsf/trunk/libc/soft-fp/soft-fp.h Thu May 31 00:01:32 2012
@@ -127,6 +127,13 @@
#define FP_CLEAR_EXCEPTIONS \
_fex = 0
+
+#define FP_CUR_EXCEPTIONS \
+ (_fex)
+
+#ifndef FP_TRAPPING_EXCEPTIONS
+#define FP_TRAPPING_EXCEPTIONS 0
+#endif
#define _FP_ROUND_NEAREST(wc, X) \
do { \
Modified: fsf/trunk/libc/sysdeps/i386/Implies
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/Implies (original)
+++ fsf/trunk/libc/sysdeps/i386/Implies Thu May 31 00:01:32 2012
@@ -1,3 +1,4 @@
+x86
wordsize-32
ieee754/ldbl-96
ieee754/dbl-64
Modified: fsf/trunk/libc/sysdeps/mach/hurd/connect.c
==============================================================================
--- fsf/trunk/libc/sysdeps/mach/hurd/connect.c (original)
+++ fsf/trunk/libc/sysdeps/mach/hurd/connect.c Thu May 31 00:01:32 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992,94,95,96,97,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1992-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
@@ -22,8 +22,6 @@
#include <hurd/socket.h>
#include <sys/un.h>
#include <hurd/ifsock.h>
-
-#undef __connect
/* Open a connection on socket FD to peer at ADDR (which LEN bytes long).
For connectionless socket types, just set the default address to send to
@@ -73,5 +71,5 @@
return err ? __hurd_dfail (fd, err) : 0;
}
-INTDEF(__connect)
+libc_hidden_def (__connect)
weak_alias (__connect, connect)
Modified: fsf/trunk/libc/sysdeps/sparc/sparc32/soft-fp/sfp-machine.h
==============================================================================
--- fsf/trunk/libc/sysdeps/sparc/sparc32/soft-fp/sfp-machine.h (original)
+++ fsf/trunk/libc/sysdeps/sparc/sparc32/soft-fp/sfp-machine.h Thu May 31 00:01:32 2012
@@ -1,6 +1,6 @@
/* Machine-dependent software floating-point definitions.
Sparc userland (_Q_*) version.
- Copyright (C) 1997,1998,1999, 2002, 2006 Free Software Foundation, Inc.
+ Copyright (C) 1997,1998,1999,2002,2006,2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@xxxxxxxxxx),
Jakub Jelinek (jj@xxxxxxxxxxxxxx) and
@@ -192,6 +192,7 @@
_FPU_GETCW(_fcw); \
} while (0)
+#define FP_TRAPPING_EXCEPTIONS ((_fcw >> 23) & 0x1f)
#define FP_INHIBIT_RESULTS ((_fcw >> 23) & _fex)
/* Simulate exceptions using double arithmetics. */
Modified: fsf/trunk/libc/sysdeps/sparc/sparc64/soft-fp/sfp-machine.h
==============================================================================
--- fsf/trunk/libc/sysdeps/sparc/sparc64/soft-fp/sfp-machine.h (original)
+++ fsf/trunk/libc/sysdeps/sparc/sparc64/soft-fp/sfp-machine.h Thu May 31 00:01:32 2012
@@ -1,6 +1,6 @@
/* Machine-dependent software floating-point definitions.
Sparc64 userland (_Q_* and _Qp_*) version.
- Copyright (C) 1997, 1998, 1999, 2006 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998, 1999, 2006, 2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@xxxxxxxxxx),
Jakub Jelinek (jj@xxxxxxxxxxxxxx) and
@@ -100,6 +100,7 @@
_FPU_GETCW(_fcw); \
} while (0)
+#define FP_TRAPPING_EXCEPTIONS ((_fcw >> 23) & 0x1f)
#define FP_INHIBIT_RESULTS ((_fcw >> 23) & _fex)
/* Simulate exceptions using double arithmetics. */
Modified: fsf/trunk/libc/sysdeps/unix/inet/syscalls.list
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/inet/syscalls.list (original)
+++ fsf/trunk/libc/sysdeps/unix/inet/syscalls.list Thu May 31 00:01:32 2012
@@ -2,7 +2,7 @@
accept - accept Ci:iBN __libc_accept accept
bind - bind i:ipi __bind bind
-connect - connect Ci:ipi __libc_connect __connect __connect_internal connect
+connect - connect Ci:ipi __libc_connect __connect connect
gethostid - gethostid i: gethostid
gethostname - gethostname i:bn __gethostname gethostname
getpeername - getpeername i:ibN __getpeername getpeername
Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/connect.S
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/connect.S (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/connect.S Thu May 31 00:01:32 2012
@@ -3,5 +3,5 @@
#define NARGS 3
#define NEED_CANCELLATION
#include <socket.S>
-strong_alias (__libc_connect, __connect_internal)
weak_alias (__libc_connect, __connect)
+libc_hidden_weak (__connect)
Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list Thu May 31 00:01:32 2012
@@ -18,7 +18,7 @@
# proper socket implementations:
accept - accept Ci:iBN __libc_accept __accept accept
bind - bind i:ipi __bind bind
-connect - connect Ci:ipi __libc_connect __connect_internal __connect connect
+connect - connect Ci:ipi __libc_connect __connect connect
getpeername - getpeername i:ipp __getpeername getpeername
getsockname - getsockname i:ipp __getsockname getsockname
getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/sa_len.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/sa_len.c (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/sa_len.c Thu May 31 00:01:32 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 1999, 2002, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 1998-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
@@ -60,4 +60,4 @@
}
return 0;
}
-INTDEF(__libc_sa_len)
+libc_hidden_def (__libc_sa_len)
Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/syscalls.list
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/syscalls.list (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/syscalls.list Thu May 31 00:01:32 2012
@@ -20,7 +20,7 @@
# proper socket implementations:
accept - accept Ci:iBN __libc_accept __accept accept
bind - bind i:ipi __bind bind
-connect - connect Ci:ipi __libc_connect __connect_internal __connect connect
+connect - connect Ci:ipi __libc_connect __connect connect
getpeername - getpeername i:ipp __getpeername getpeername
getsockname - getsockname i:ipp __getsockname getsockname
getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
Added: fsf/trunk/libc/sysdeps/x86/bits/byteswap-16.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86/bits/byteswap-16.h (added)
+++ fsf/trunk/libc/sysdeps/x86/bits/byteswap-16.h Thu May 31 00:01:32 2012
@@ -1,0 +1,49 @@
+/* Macros to swap the order of bytes in 16-bit integer values.
+ Copyright (C) 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
+ 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/>. */
+
+#ifndef _BITS_BYTESWAP_H
+# error "Never use <bits/byteswap-16.h> directly; include <byteswap.h> instead."
+#endif
+
+#ifdef __GNUC__
+# if __GNUC__ >= 2
+# define __bswap_16(x) \
+ (__extension__ \
+ ({ register unsigned short int __v, __x = (unsigned short int) (x); \
+ if (__builtin_constant_p (__x)) \
+ __v = __bswap_constant_16 (__x); \
+ else \
+ __asm__ ("rorw $8, %w0" \
+ : "=r" (__v) \
+ : "0" (__x) \
+ : "cc"); \
+ __v; }))
+# else
+/* This is better than nothing. */
+# define __bswap_16(x) \
+ (__extension__ \
+ ({ register unsigned short int __x = (unsigned short int) (x); \
+ __bswap_constant_16 (__x); }))
+# endif
+#else
+static __inline unsigned short int
+__bswap_16 (unsigned short int __bsx)
+{
+ return __bswap_constant_16 (__bsx);
+}
+#endif
Added: fsf/trunk/libc/sysdeps/x86/bits/byteswap.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86/bits/byteswap.h (added)
+++ fsf/trunk/libc/sysdeps/x86/bits/byteswap.h Thu May 31 00:01:32 2012
@@ -1,0 +1,154 @@
+/* Macros to swap the order of bytes in integer values.
+ Copyright (C) 1997-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
+ 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/>. */
+
+#if !defined _BYTESWAP_H && !defined _NETINET_IN_H && !defined _ENDIAN_H
+# error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
+#endif
+
+#ifndef _BITS_BYTESWAP_H
+#define _BITS_BYTESWAP_H 1
+
+#include <features.h>
+#include <bits/wordsize.h>
+
+/* Swap bytes in 16 bit value. */
+#define __bswap_constant_16(x) \
+ ((unsigned short int) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)))
+
+/* Get __bswap_16. */
+#include <bits/byteswap-16.h>
+
+/* Swap bytes in 32 bit value. */
+#define __bswap_constant_32(x) \
+ ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \
+ (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24))
+
+#ifdef __GNUC__
+# if __GNUC_PREREQ (4, 2)
+static __inline unsigned int
+__bswap_32 (unsigned int __bsx)
+{
+ return __builtin_bswap32 (__bsx);
+}
+# elif __GNUC__ >= 2
+# if __WORDSIZE == 64 || (defined __i486__ || defined __pentium__ \
+ || defined __pentiumpro__ || defined __pentium4__ \
+ || defined __k8__ || defined __athlon__ \
+ || defined __k6__ || defined __nocona__ \
+ || defined __core2__ || defined __geode__ \
+ || defined __amdfam10__)
+/* To swap the bytes in a word the i486 processors and up provide the
+ `bswap' opcode. On i386 we have to use three instructions. */
+# define __bswap_32(x) \
+ (__extension__ \
+ ({ register unsigned int __v, __x = (x); \
+ if (__builtin_constant_p (__x)) \
+ __v = __bswap_constant_32 (__x); \
+ else \
+ __asm__ ("bswap %0" : "=r" (__v) : "0" (__x)); \
+ __v; }))
+# else
+# define __bswap_32(x) \
+ (__extension__ \
+ ({ register unsigned int __v, __x = (x); \
+ if (__builtin_constant_p (__x)) \
+ __v = __bswap_constant_32 (__x); \
+ else \
+ __asm__ ("rorw $8, %w0;" \
+ "rorl $16, %0;" \
+ "rorw $8, %w0" \
+ : "=r" (__v) \
+ : "0" (__x) \
+ : "cc"); \
+ __v; }))
+# endif
+# else
+# define __bswap_32(x) \
+ (__extension__ \
+ ({ register unsigned int __x = (x); __bswap_constant_32 (__x); }))
+# endif
+#else
+static __inline unsigned int
+__bswap_32 (unsigned int __bsx)
+{
+ return __bswap_constant_32 (__bsx);
+}
+#endif
+
+
+#if __GNUC_PREREQ (2, 0)
+/* Swap bytes in 64 bit value. */
+# define __bswap_constant_64(x) \
+ (__extension__ ((((x) & 0xff00000000000000ull) >> 56) \
+ | (((x) & 0x00ff000000000000ull) >> 40) \
+ | (((x) & 0x0000ff0000000000ull) >> 24) \
+ | (((x) & 0x000000ff00000000ull) >> 8) \
+ | (((x) & 0x00000000ff000000ull) << 8) \
+ | (((x) & 0x0000000000ff0000ull) << 24) \
+ | (((x) & 0x000000000000ff00ull) << 40) \
+ | (((x) & 0x00000000000000ffull) << 56)))
+
+# if __GNUC_PREREQ (4, 2)
+static __inline unsigned long long int
+__bswap_64 (unsigned long long int __bsx)
+{
+ return __builtin_bswap64 (__bsx);
+}
+# elif __WORDSIZE == 64
+# define __bswap_64(x) \
+ (__extension__ \
+ ({ register unsigned long __v, __x = (x); \
+ if (__builtin_constant_p (__x)) \
+ __v = __bswap_constant_64 (__x); \
+ else \
+ __asm__ ("bswap %q0" : "=r" (__v) : "0" (__x)); \
+ __v; }))
+# else
+# define __bswap_64(x) \
+ (__extension__ \
+ ({ union { __extension__ unsigned long long int __ll; \
+ unsigned int __l[2]; } __w, __r; \
+ if (__builtin_constant_p (x)) \
+ __r.__ll = __bswap_constant_64 (x); \
+ else \
+ { \
+ __w.__ll = (x); \
+ __r.__l[0] = __bswap_32 (__w.__l[1]); \
+ __r.__l[1] = __bswap_32 (__w.__l[0]); \
+ } \
+ __r.__ll; }))
+# endif
+#elif __GLIBC_HAVE_LONG_LONG
+# define __bswap_constant_64(x) \
+ ((((x) & 0xff00000000000000ull) >> 56) \
+ | (((x) & 0x00ff000000000000ull) >> 40) \
+ | (((x) & 0x0000ff0000000000ull) >> 24) \
+ | (((x) & 0x000000ff00000000ull) >> 8) \
+ | (((x) & 0x00000000ff000000ull) << 8) \
+ | (((x) & 0x0000000000ff0000ull) << 24) \
+ | (((x) & 0x000000000000ff00ull) << 40) \
+ | (((x) & 0x00000000000000ffull) << 56))
+
+static __inline unsigned long long int
+__bswap_64 (unsigned long long int __bsx)
+{
+ return __bswap_constant_64 (__bsx);
+}
+#endif
+
+#endif /* _BITS_BYTESWAP_H */
Added: fsf/trunk/libc/sysdeps/x86/bits/endian.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86/bits/endian.h (added)
+++ fsf/trunk/libc/sysdeps/x86/bits/endian.h Thu May 31 00:01:32 2012
@@ -1,0 +1,7 @@
+/* i386/x86_64 are little-endian. */
+
+#ifndef _ENDIAN_H
+# error "Never use <bits/endian.h> directly; include <endian.h> instead."
+#endif
+
+#define __BYTE_ORDER __LITTLE_ENDIAN
Added: fsf/trunk/libc/sysdeps/x86/bits/huge_vall.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86/bits/huge_vall.h (added)
+++ fsf/trunk/libc/sysdeps/x86/bits/huge_vall.h Thu May 31 00:01:32 2012
@@ -1,0 +1,42 @@
+/* `HUGE_VALL' constant for ix86 (where it is infinity).
+ Used by <stdlib.h> and <math.h> functions for overflow.
+ Copyright (C) 1992, 1995, 1996, 1997, 1999, 2000, 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/>. */
+
+#ifndef _MATH_H
+# error "Never use <bits/huge_vall.h> directly; include <math.h> instead."
+#endif
+
+#if __GNUC_PREREQ(3,3)
+# define HUGE_VALL (__builtin_huge_vall())
+#elif __GNUC_PREREQ(2,96)
+# define HUGE_VALL (__extension__ 0x1.0p32767L)
+#else
+
+# define __HUGE_VALL_bytes { 0, 0, 0, 0, 0, 0, 0, 0x80, 0xff, 0x7f, 0, 0 }
+
+# define __huge_vall_t union { unsigned char __c[12]; long double __ld; }
+# ifdef __GNUC__
+# define HUGE_VALL (__extension__ \
+ ((__huge_vall_t) { __c: __HUGE_VALL_bytes }).__ld)
+# else /* Not GCC. */
+static __huge_vall_t __huge_vall = { __HUGE_VALL_bytes };
+# define HUGE_VALL (__huge_vall.__ld)
+# endif /* GCC. */
+
+#endif /* GCC 2.95 */
Added: fsf/trunk/libc/sysdeps/x86/bits/link.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86/bits/link.h (added)
+++ fsf/trunk/libc/sysdeps/x86/bits/link.h Thu May 31 00:01:32 2012
@@ -1,0 +1,147 @@
+/* Copyright (C) 2004, 2005, 2009, 2011 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/>. */
+
+#ifndef _LINK_H
+# error "Never include <bits/link.h> directly; use <link.h> instead."
+#endif
+
+
+#ifndef __x86_64__
+/* Registers for entry into PLT on IA-32. */
+typedef struct La_i86_regs
+{
+ uint32_t lr_edx;
+ uint32_t lr_ecx;
+ uint32_t lr_eax;
+ uint32_t lr_ebp;
+ uint32_t lr_esp;
+} La_i86_regs;
+
+/* Return values for calls from PLT on IA-32. */
+typedef struct La_i86_retval
+{
+ uint32_t lrv_eax;
+ uint32_t lrv_edx;
+ long double lrv_st0;
+ long double lrv_st1;
+} La_i86_retval;
+
+
+__BEGIN_DECLS
+
+extern Elf32_Addr la_i86_gnu_pltenter (Elf32_Sym *__sym, unsigned int __ndx,
+ uintptr_t *__refcook,
+ uintptr_t *__defcook,
+ La_i86_regs *__regs,
+ unsigned int *__flags,
+ const char *__symname,
+ long int *__framesizep);
+extern unsigned int la_i86_gnu_pltexit (Elf32_Sym *__sym, unsigned int __ndx,
+ uintptr_t *__refcook,
+ uintptr_t *__defcook,
+ const La_i86_regs *__inregs,
+ La_i86_retval *__outregs,
+ const char *symname);
+
+__END_DECLS
+
+#else
+
+/* Registers for entry into PLT on x86-64. */
+# if __GNUC_PREREQ (4,0)
+typedef float La_x86_64_xmm __attribute__ ((__vector_size__ (16)));
+typedef float La_x86_64_ymm
+ __attribute__ ((__vector_size__ (32), __aligned__ (16)));
+# else
+typedef float La_x86_64_xmm __attribute__ ((__mode__ (__V4SF__)));
+# endif
+
+typedef union
+{
+# if __GNUC_PREREQ (4,0)
+ La_x86_64_ymm ymm[2];
+# endif
+ La_x86_64_xmm xmm[4];
+} La_x86_64_vector __attribute__ ((__aligned__ (16)));
+
+typedef struct La_x86_64_regs
+{
+ uint64_t lr_rdx;
+ uint64_t lr_r8;
+ uint64_t lr_r9;
+ uint64_t lr_rcx;
+ uint64_t lr_rsi;
+ uint64_t lr_rdi;
+ uint64_t lr_rbp;
+ uint64_t lr_rsp;
+ La_x86_64_xmm lr_xmm[8];
+ La_x86_64_vector lr_vector[8];
+} La_x86_64_regs;
+
+/* Return values for calls from PLT on x86-64. */
+typedef struct La_x86_64_retval
+{
+ uint64_t lrv_rax;
+ uint64_t lrv_rdx;
+ La_x86_64_xmm lrv_xmm0;
+ La_x86_64_xmm lrv_xmm1;
+ long double lrv_st0;
+ long double lrv_st1;
+ La_x86_64_vector lrv_vector0;
+ La_x86_64_vector lrv_vector1;
+} La_x86_64_retval;
+
+#define La_x32_regs La_x86_64_regs
+#define La_x32_retval La_x86_64_retval
+
+__BEGIN_DECLS
+
+extern Elf64_Addr la_x86_64_gnu_pltenter (Elf64_Sym *__sym,
+ unsigned int __ndx,
+ uintptr_t *__refcook,
+ uintptr_t *__defcook,
+ La_x86_64_regs *__regs,
+ unsigned int *__flags,
+ const char *__symname,
+ long int *__framesizep);
+extern unsigned int la_x86_64_gnu_pltexit (Elf64_Sym *__sym,
+ unsigned int __ndx,
+ uintptr_t *__refcook,
+ uintptr_t *__defcook,
+ const La_x86_64_regs *__inregs,
+ La_x86_64_retval *__outregs,
+ const char *__symname);
+
+extern Elf32_Addr la_x32_gnu_pltenter (Elf32_Sym *__sym,
+ unsigned int __ndx,
+ uintptr_t *__refcook,
+ uintptr_t *__defcook,
+ La_x32_regs *__regs,
+ unsigned int *__flags,
+ const char *__symname,
+ long int *__framesizep);
+extern unsigned int la_x32_gnu_pltexit (Elf32_Sym *__sym,
+ unsigned int __ndx,
+ uintptr_t *__refcook,
+ uintptr_t *__defcook,
+ const La_x32_regs *__inregs,
+ La_x32_retval *__outregs,
+ const char *__symname);
+
+__END_DECLS
+
+#endif
Added: fsf/trunk/libc/sysdeps/x86/bits/linkmap.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86/bits/linkmap.h (added)
+++ fsf/trunk/libc/sysdeps/x86/bits/linkmap.h Thu May 31 00:01:32 2012
@@ -1,0 +1,16 @@
+#if __WORDSIZE == 64
+struct link_map_machine
+ {
+ Elf64_Addr plt; /* Address of .plt + 0x16 */
+ Elf64_Addr gotplt; /* Address of .got + 0x18 */
+ void *tlsdesc_table; /* Address of TLS descriptor hash table. */
+ };
+
+#else
+struct link_map_machine
+ {
+ Elf32_Addr plt; /* Address of .plt + 0x16 */
+ Elf32_Addr gotplt; /* Address of .got + 0x0c */
+ void *tlsdesc_table; /* Address of TLS descriptor hash table. */
+ };
+#endif
Added: fsf/trunk/libc/sysdeps/x86/bits/mathdef.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86/bits/mathdef.h (added)
+++ fsf/trunk/libc/sysdeps/x86/bits/mathdef.h Thu May 31 00:01:32 2012
@@ -1,0 +1,59 @@
+/* Copyright (C) 2001-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
+ 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/>. */
+
+#if !defined _MATH_H && !defined _COMPLEX_H
+# error "Never use <bits/mathdef.h> directly; include <math.h> instead"
+#endif
+
+#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF
+# define _MATH_H_MATHDEF 1
+
+# if defined __x86_64__ || (defined __FLT_EVAL_METHOD__ && __FLT_EVAL_METHOD__ == 0)
+/* The x86-64 architecture computes values with the precission of the
+ used type. Similarly for -m32 -mfpmath=sse. */
+typedef float float_t; /* `float' expressions are evaluated as `float'. */
+typedef double double_t; /* `double' expressions are evaluated
+ as `double'. */
+# else
+/* The ix87 FPUs evaluate all values in the 80 bit floating-point format
+ which is also available for the user as `long double'. Therefore we
+ define: */
+typedef long double float_t; /* `float' expressions are evaluated as
+ `long double'. */
+typedef long double double_t; /* `double' expressions are evaluated as
+ `long double'. */
+# endif
+
+/* The values returned by `ilogb' for 0 and NaN respectively. */
+# define FP_ILOGB0 (-2147483647 - 1)
+# define FP_ILOGBNAN (-2147483647 - 1)
+
+/* The GCC 4.6 compiler will define __FP_FAST_FMA{,F,L} if the fma{,f,l}
+ builtins are supported. */
+# if __FP_FAST_FMA
+# define FP_FAST_FMA 1
+# endif
+
+# if __FP_FAST_FMAF
+# define FP_FAST_FMAF 1
+# endif
+
+# if __FP_FAST_FMAL
+# define FP_FAST_FMAL 1
+# endif
+
+#endif /* ISO C99 */
Added: fsf/trunk/libc/sysdeps/x86/bits/select.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86/bits/select.h (added)
+++ fsf/trunk/libc/sysdeps/x86/bits/select.h Thu May 31 00:01:32 2012
@@ -1,0 +1,63 @@
+/* Copyright (C) 1997-1999,2001,2008,2009,2011 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/>. */
+
+#ifndef _SYS_SELECT_H
+# error "Never use <bits/select.h> directly; include <sys/select.h> instead."
+#endif
+
+#include <bits/wordsize.h>
+
+
+#if defined __GNUC__ && __GNUC__ >= 2
+
+# if __WORDSIZE == 64
+# define __FD_ZERO_STOS "stosq"
+# else
+# define __FD_ZERO_STOS "stosl"
+# endif
+
+# define __FD_ZERO(fdsp) \
+ do { \
+ int __d0, __d1; \
+ __asm__ __volatile__ ("cld; rep; " __FD_ZERO_STOS \
+ : "=c" (__d0), "=D" (__d1) \
+ : "a" (0), "0" (sizeof (fd_set) \
+ / sizeof (__fd_mask)), \
+ "1" (&__FDS_BITS (fdsp)[0]) \
+ : "memory"); \
+ } while (0)
+
+#else /* ! GNU CC */
+
+/* We don't use `memset' because this would require a prototype and
+ the array isn't too big. */
+# define __FD_ZERO(set) \
+ do { \
+ unsigned int __i; \
+ fd_set *__arr = (set); \
+ for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) \
+ __FDS_BITS (__arr)[__i] = 0; \
+ } while (0)
+
+#endif /* GNU CC */
+
+#define __FD_SET(d, set) \
+ ((void) (__FDS_BITS (set)[__FD_ELT (d)] |= __FD_MASK (d)))
+#define __FD_CLR(d, set) \
+ ((void) (__FDS_BITS (set)[__FD_ELT (d)] &= ~__FD_MASK (d)))
+#define __FD_ISSET(d, set) \
+ ((__FDS_BITS (set)[__FD_ELT (d)] & __FD_MASK (d)) != 0)
Added: fsf/trunk/libc/sysdeps/x86/bits/setjmp.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86/bits/setjmp.h (added)
+++ fsf/trunk/libc/sysdeps/x86/bits/setjmp.h Thu May 31 00:01:32 2012
@@ -1,0 +1,40 @@
+/* Copyright (C) 2001,2002,2003,2005,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/>. */
+
+/* Define the machine-dependent type `jmp_buf'. x86-64 version. */
+#ifndef _BITS_SETJMP_H
+#define _BITS_SETJMP_H 1
+
+#if !defined _SETJMP_H && !defined _PTHREAD_H
+# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
+#endif
+
+#include <bits/wordsize.h>
+
+#ifndef _ASM
+
+# if __WORDSIZE == 64
+typedef long int __jmp_buf[8];
+# elif defined __x86_64__
+typedef long long int __jmp_buf[8];
+# else
+typedef int __jmp_buf[6];
+# endif
+
+#endif
+
+#endif /* bits/setjmp.h */
Modified: fsf/trunk/libc/sysdeps/x86_64/Implies
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/Implies (original)
+++ fsf/trunk/libc/sysdeps/x86_64/Implies Thu May 31 00:01:32 2012
@@ -1,3 +1,4 @@
+x86
ieee754/ldbl-96
ieee754/dbl-64/wordsize-64
ieee754/dbl-64
Removed: fsf/trunk/libc/sysdeps/x86_64/bits/byteswap-16.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/bits/byteswap-16.h (original)
+++ fsf/trunk/libc/sysdeps/x86_64/bits/byteswap-16.h (removed)
@@ -1,49 +1,0 @@
-/* Macros to swap the order of bytes in 16-bit integer values.
- Copyright (C) 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
- 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/>. */
-
-#ifndef _BITS_BYTESWAP_H
-# error "Never use <bits/byteswap-16.h> directly; include <byteswap.h> instead."
-#endif
-
-#ifdef __GNUC__
-# if __GNUC__ >= 2
-# define __bswap_16(x) \
- (__extension__ \
- ({ register unsigned short int __v, __x = (unsigned short int) (x); \
- if (__builtin_constant_p (__x)) \
- __v = __bswap_constant_16 (__x); \
- else \
- __asm__ ("rorw $8, %w0" \
- : "=r" (__v) \
- : "0" (__x) \
- : "cc"); \
- __v; }))
-# else
-/* This is better than nothing. */
-# define __bswap_16(x) \
- (__extension__ \
- ({ register unsigned short int __x = (unsigned short int) (x); \
- __bswap_constant_16 (__x); }))
-# endif
-#else
-static __inline unsigned short int
-__bswap_16 (unsigned short int __bsx)
-{
- return __bswap_constant_16 (__bsx);
-}
-#endif
Removed: fsf/trunk/libc/sysdeps/x86_64/bits/byteswap.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/bits/byteswap.h (original)
+++ fsf/trunk/libc/sysdeps/x86_64/bits/byteswap.h (removed)
@@ -1,154 +1,0 @@
-/* Macros to swap the order of bytes in integer values.
- Copyright (C) 1997-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
- 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/>. */
-
-#if !defined _BYTESWAP_H && !defined _NETINET_IN_H && !defined _ENDIAN_H
-# error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
-#endif
-
-#ifndef _BITS_BYTESWAP_H
-#define _BITS_BYTESWAP_H 1
-
-#include <features.h>
-#include <bits/wordsize.h>
-
-/* Swap bytes in 16 bit value. */
-#define __bswap_constant_16(x) \
- ((unsigned short int) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)))
-
-/* Get __bswap_16. */
-#include <bits/byteswap-16.h>
-
-/* Swap bytes in 32 bit value. */
-#define __bswap_constant_32(x) \
- ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \
- (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24))
-
-#ifdef __GNUC__
-# if __GNUC_PREREQ (4, 2)
-static __inline unsigned int
-__bswap_32 (unsigned int __bsx)
-{
- return __builtin_bswap32 (__bsx);
-}
-# elif __GNUC__ >= 2
-# if __WORDSIZE == 64 || (defined __i486__ || defined __pentium__ \
- || defined __pentiumpro__ || defined __pentium4__ \
- || defined __k8__ || defined __athlon__ \
- || defined __k6__ || defined __nocona__ \
- || defined __core2__ || defined __geode__ \
- || defined __amdfam10__)
-/* To swap the bytes in a word the i486 processors and up provide the
- `bswap' opcode. On i386 we have to use three instructions. */
-# define __bswap_32(x) \
- (__extension__ \
- ({ register unsigned int __v, __x = (x); \
- if (__builtin_constant_p (__x)) \
- __v = __bswap_constant_32 (__x); \
- else \
- __asm__ ("bswap %0" : "=r" (__v) : "0" (__x)); \
- __v; }))
-# else
-# define __bswap_32(x) \
- (__extension__ \
- ({ register unsigned int __v, __x = (x); \
- if (__builtin_constant_p (__x)) \
- __v = __bswap_constant_32 (__x); \
- else \
- __asm__ ("rorw $8, %w0;" \
- "rorl $16, %0;" \
- "rorw $8, %w0" \
- : "=r" (__v) \
- : "0" (__x) \
- : "cc"); \
- __v; }))
-# endif
-# else
-# define __bswap_32(x) \
- (__extension__ \
- ({ register unsigned int __x = (x); __bswap_constant_32 (__x); }))
-# endif
-#else
-static __inline unsigned int
-__bswap_32 (unsigned int __bsx)
-{
- return __bswap_constant_32 (__bsx);
-}
-#endif
-
-
-#if __GNUC_PREREQ (2, 0)
-/* Swap bytes in 64 bit value. */
-# define __bswap_constant_64(x) \
- (__extension__ ((((x) & 0xff00000000000000ull) >> 56) \
- | (((x) & 0x00ff000000000000ull) >> 40) \
- | (((x) & 0x0000ff0000000000ull) >> 24) \
- | (((x) & 0x000000ff00000000ull) >> 8) \
- | (((x) & 0x00000000ff000000ull) << 8) \
- | (((x) & 0x0000000000ff0000ull) << 24) \
- | (((x) & 0x000000000000ff00ull) << 40) \
- | (((x) & 0x00000000000000ffull) << 56)))
-
-# if __GNUC_PREREQ (4, 2)
-static __inline unsigned long long int
-__bswap_64 (unsigned long long int __bsx)
-{
- return __builtin_bswap64 (__bsx);
-}
-# elif __WORDSIZE == 64
-# define __bswap_64(x) \
- (__extension__ \
- ({ register unsigned long __v, __x = (x); \
- if (__builtin_constant_p (__x)) \
- __v = __bswap_constant_64 (__x); \
- else \
- __asm__ ("bswap %q0" : "=r" (__v) : "0" (__x)); \
- __v; }))
-# else
-# define __bswap_64(x) \
- (__extension__ \
- ({ union { __extension__ unsigned long long int __ll; \
- unsigned int __l[2]; } __w, __r; \
- if (__builtin_constant_p (x)) \
- __r.__ll = __bswap_constant_64 (x); \
- else \
- { \
- __w.__ll = (x); \
- __r.__l[0] = __bswap_32 (__w.__l[1]); \
- __r.__l[1] = __bswap_32 (__w.__l[0]); \
- } \
- __r.__ll; }))
-# endif
-#elif __GLIBC_HAVE_LONG_LONG
-# define __bswap_constant_64(x) \
- ((((x) & 0xff00000000000000ull) >> 56) \
- | (((x) & 0x00ff000000000000ull) >> 40) \
- | (((x) & 0x0000ff0000000000ull) >> 24) \
- | (((x) & 0x000000ff00000000ull) >> 8) \
- | (((x) & 0x00000000ff000000ull) << 8) \
- | (((x) & 0x0000000000ff0000ull) << 24) \
- | (((x) & 0x000000000000ff00ull) << 40) \
- | (((x) & 0x00000000000000ffull) << 56))
-
-static __inline unsigned long long int
-__bswap_64 (unsigned long long int __bsx)
-{
- return __bswap_constant_64 (__bsx);
-}
-#endif
-
-#endif /* _BITS_BYTESWAP_H */
Removed: fsf/trunk/libc/sysdeps/x86_64/bits/endian.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/bits/endian.h (original)
+++ fsf/trunk/libc/sysdeps/x86_64/bits/endian.h (removed)
@@ -1,7 +1,0 @@
-/* x86_64 is little-endian. */
-
-#ifndef _ENDIAN_H
-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-#endif
-
-#define __BYTE_ORDER __LITTLE_ENDIAN
Removed: fsf/trunk/libc/sysdeps/x86_64/bits/link.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/bits/link.h (original)
+++ fsf/trunk/libc/sysdeps/x86_64/bits/link.h (removed)
@@ -1,147 +1,0 @@
-/* Copyright (C) 2004, 2005, 2009, 2011 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/>. */
-
-#ifndef _LINK_H
-# error "Never include <bits/link.h> directly; use <link.h> instead."
-#endif
-
-
-#ifndef __x86_64__
-/* Registers for entry into PLT on IA-32. */
-typedef struct La_i86_regs
-{
- uint32_t lr_edx;
- uint32_t lr_ecx;
- uint32_t lr_eax;
- uint32_t lr_ebp;
- uint32_t lr_esp;
-} La_i86_regs;
-
-/* Return values for calls from PLT on IA-32. */
-typedef struct La_i86_retval
-{
- uint32_t lrv_eax;
- uint32_t lrv_edx;
- long double lrv_st0;
- long double lrv_st1;
-} La_i86_retval;
-
-
-__BEGIN_DECLS
-
-extern Elf32_Addr la_i86_gnu_pltenter (Elf32_Sym *__sym, unsigned int __ndx,
- uintptr_t *__refcook,
- uintptr_t *__defcook,
- La_i86_regs *__regs,
- unsigned int *__flags,
- const char *__symname,
- long int *__framesizep);
-extern unsigned int la_i86_gnu_pltexit (Elf32_Sym *__sym, unsigned int __ndx,
- uintptr_t *__refcook,
- uintptr_t *__defcook,
- const La_i86_regs *__inregs,
- La_i86_retval *__outregs,
- const char *symname);
-
-__END_DECLS
-
-#else
-
-/* Registers for entry into PLT on x86-64. */
-# if __GNUC_PREREQ (4,0)
-typedef float La_x86_64_xmm __attribute__ ((__vector_size__ (16)));
-typedef float La_x86_64_ymm
- __attribute__ ((__vector_size__ (32), __aligned__ (16)));
-# else
-typedef float La_x86_64_xmm __attribute__ ((__mode__ (__V4SF__)));
-# endif
-
-typedef union
-{
-# if __GNUC_PREREQ (4,0)
- La_x86_64_ymm ymm[2];
-# endif
- La_x86_64_xmm xmm[4];
-} La_x86_64_vector __attribute__ ((__aligned__ (16)));
-
-typedef struct La_x86_64_regs
-{
- uint64_t lr_rdx;
- uint64_t lr_r8;
- uint64_t lr_r9;
- uint64_t lr_rcx;
- uint64_t lr_rsi;
- uint64_t lr_rdi;
- uint64_t lr_rbp;
- uint64_t lr_rsp;
- La_x86_64_xmm lr_xmm[8];
- La_x86_64_vector lr_vector[8];
-} La_x86_64_regs;
-
-/* Return values for calls from PLT on x86-64. */
-typedef struct La_x86_64_retval
-{
- uint64_t lrv_rax;
- uint64_t lrv_rdx;
- La_x86_64_xmm lrv_xmm0;
- La_x86_64_xmm lrv_xmm1;
- long double lrv_st0;
- long double lrv_st1;
- La_x86_64_vector lrv_vector0;
- La_x86_64_vector lrv_vector1;
-} La_x86_64_retval;
-
-#define La_x32_regs La_x86_64_regs
-#define La_x32_retval La_x86_64_retval
-
-__BEGIN_DECLS
-
-extern Elf64_Addr la_x86_64_gnu_pltenter (Elf64_Sym *__sym,
- unsigned int __ndx,
- uintptr_t *__refcook,
- uintptr_t *__defcook,
- La_x86_64_regs *__regs,
- unsigned int *__flags,
- const char *__symname,
- long int *__framesizep);
-extern unsigned int la_x86_64_gnu_pltexit (Elf64_Sym *__sym,
- unsigned int __ndx,
- uintptr_t *__refcook,
- uintptr_t *__defcook,
- const La_x86_64_regs *__inregs,
- La_x86_64_retval *__outregs,
- const char *__symname);
-
-extern Elf32_Addr la_x32_gnu_pltenter (Elf32_Sym *__sym,
- unsigned int __ndx,
- uintptr_t *__refcook,
- uintptr_t *__defcook,
- La_x32_regs *__regs,
- unsigned int *__flags,
- const char *__symname,
- long int *__framesizep);
-extern unsigned int la_x32_gnu_pltexit (Elf32_Sym *__sym,
- unsigned int __ndx,
- uintptr_t *__refcook,
- uintptr_t *__defcook,
- const La_x32_regs *__inregs,
- La_x32_retval *__outregs,
- const char *__symname);
-
-__END_DECLS
-
-#endif
Removed: fsf/trunk/libc/sysdeps/x86_64/bits/linkmap.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/bits/linkmap.h (original)
+++ fsf/trunk/libc/sysdeps/x86_64/bits/linkmap.h (removed)
@@ -1,16 +1,0 @@
-#if __WORDSIZE == 64
-struct link_map_machine
- {
- Elf64_Addr plt; /* Address of .plt + 0x16 */
- Elf64_Addr gotplt; /* Address of .got + 0x18 */
- void *tlsdesc_table; /* Address of TLS descriptor hash table. */
- };
-
-#else
-struct link_map_machine
- {
- Elf32_Addr plt; /* Address of .plt + 0x16 */
- Elf32_Addr gotplt; /* Address of .got + 0x0c */
- void *tlsdesc_table; /* Address of TLS descriptor hash table. */
- };
-#endif
Removed: fsf/trunk/libc/sysdeps/x86_64/bits/mathdef.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/bits/mathdef.h (original)
+++ fsf/trunk/libc/sysdeps/x86_64/bits/mathdef.h (removed)
@@ -1,59 +1,0 @@
-/* Copyright (C) 2001-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
- 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/>. */
-
-#if !defined _MATH_H && !defined _COMPLEX_H
-# error "Never use <bits/mathdef.h> directly; include <math.h> instead"
-#endif
-
-#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF
-# define _MATH_H_MATHDEF 1
-
-# if defined __x86_64__ || (defined __FLT_EVAL_METHOD__ && __FLT_EVAL_METHOD__ == 0)
-/* The x86-64 architecture computes values with the precission of the
- used type. Similarly for -m32 -mfpmath=sse. */
-typedef float float_t; /* `float' expressions are evaluated as `float'. */
-typedef double double_t; /* `double' expressions are evaluated
- as `double'. */
-# else
-/* The ix87 FPUs evaluate all values in the 80 bit floating-point format
- which is also available for the user as `long double'. Therefore we
- define: */
-typedef long double float_t; /* `float' expressions are evaluated as
- `long double'. */
-typedef long double double_t; /* `double' expressions are evaluated as
- `long double'. */
-# endif
-
-/* The values returned by `ilogb' for 0 and NaN respectively. */
-# define FP_ILOGB0 (-2147483647 - 1)
-# define FP_ILOGBNAN (-2147483647 - 1)
-
-/* The GCC 4.6 compiler will define __FP_FAST_FMA{,F,L} if the fma{,f,l}
- builtins are supported. */
-# if __FP_FAST_FMA
-# define FP_FAST_FMA 1
-# endif
-
-# if __FP_FAST_FMAF
-# define FP_FAST_FMAF 1
-# endif
-
-# if __FP_FAST_FMAL
-# define FP_FAST_FMAL 1
-# endif
-
-#endif /* ISO C99 */
Removed: fsf/trunk/libc/sysdeps/x86_64/bits/select.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/bits/select.h (original)
+++ fsf/trunk/libc/sysdeps/x86_64/bits/select.h (removed)
@@ -1,63 +1,0 @@
-/* Copyright (C) 1997-1999,2001,2008,2009,2011 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/>. */
-
-#ifndef _SYS_SELECT_H
-# error "Never use <bits/select.h> directly; include <sys/select.h> instead."
-#endif
-
-#include <bits/wordsize.h>
-
-
-#if defined __GNUC__ && __GNUC__ >= 2
-
-# if __WORDSIZE == 64
-# define __FD_ZERO_STOS "stosq"
-# else
-# define __FD_ZERO_STOS "stosl"
-# endif
-
-# define __FD_ZERO(fdsp) \
- do { \
- int __d0, __d1; \
- __asm__ __volatile__ ("cld; rep; " __FD_ZERO_STOS \
- : "=c" (__d0), "=D" (__d1) \
- : "a" (0), "0" (sizeof (fd_set) \
- / sizeof (__fd_mask)), \
- "1" (&__FDS_BITS (fdsp)[0]) \
- : "memory"); \
- } while (0)
-
-#else /* ! GNU CC */
-
-/* We don't use `memset' because this would require a prototype and
- the array isn't too big. */
-# define __FD_ZERO(set) \
- do { \
- unsigned int __i; \
- fd_set *__arr = (set); \
- for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i) \
- __FDS_BITS (__arr)[__i] = 0; \
- } while (0)
-
-#endif /* GNU CC */
-
-#define __FD_SET(d, set) \
- ((void) (__FDS_BITS (set)[__FD_ELT (d)] |= __FD_MASK (d)))
-#define __FD_CLR(d, set) \
- ((void) (__FDS_BITS (set)[__FD_ELT (d)] &= ~__FD_MASK (d)))
-#define __FD_ISSET(d, set) \
- ((__FDS_BITS (set)[__FD_ELT (d)] & __FD_MASK (d)) != 0)
Removed: fsf/trunk/libc/sysdeps/x86_64/bits/setjmp.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/bits/setjmp.h (original)
+++ fsf/trunk/libc/sysdeps/x86_64/bits/setjmp.h (removed)
@@ -1,40 +1,0 @@
-/* Copyright (C) 2001,2002,2003,2005,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/>. */
-
-/* Define the machine-dependent type `jmp_buf'. x86-64 version. */
-#ifndef _BITS_SETJMP_H
-#define _BITS_SETJMP_H 1
-
-#if !defined _SETJMP_H && !defined _PTHREAD_H
-# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
-#endif
-
-#include <bits/wordsize.h>
-
-#ifndef _ASM
-
-# if __WORDSIZE == 64
-typedef long int __jmp_buf[8];
-# elif defined __x86_64__
-typedef long long int __jmp_buf[8];
-# else
-typedef int __jmp_buf[6];
-# endif
-
-#endif
-
-#endif /* bits/setjmp.h */
_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits