This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


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

GNU C Library master sources branch master updated. glibc-2.16-ports-merge-602-gf62c8ab


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  f62c8abcfbf0d2e7f0a6c6c1dde53158e6fc4e59 (commit)
      from  a68d0680f89b5f3639b30ec7955671d97e101e87 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=f62c8abcfbf0d2e7f0a6c6c1dde53158e6fc4e59

commit f62c8abcfbf0d2e7f0a6c6c1dde53158e6fc4e59
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Nov 2 18:43:27 2012 -0700

    Compile x86 rtld with -mno-sse -mno-mmx

diff --git a/ChangeLog b/ChangeLog
index be5ab22..fdb2ccb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2012-11-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* stdlib/Makefile (headers): Add bits/stdlib-float.h.
+	* stdlib/stdlib.h (atof): Moved to ...
+	* include/bits/stdlib-float.h: Here.  New file.
+	* stdlib/stdlib.h: Include <bits/stdlib-float.h>.
+	* stdlib/bits/stdlib-float.h: New file.
+	* sysdeps/x86/Makefile (CFLAGS-.os): Compile rtld routines with
+	-mno-sse -mno-mmx.
+	* sysdeps/x86_64/multiarch/strcasestr-nonascii.c: Include
+	<xmmintrin.h>.
+
 2012-11-02  Joseph Myers  <joseph@codesourcery.com>
 
 	* conform/conformtest.pl (@headers): Add fenv.h.
diff --git a/include/bits/stdlib-float.h b/include/bits/stdlib-float.h
new file mode 100644
index 0000000..d3f5c5b
--- /dev/null
+++ b/include/bits/stdlib-float.h
@@ -0,0 +1,4 @@
+/* No floating-point inline functions in rtld.  */
+#ifndef IS_IN_rtld
+# include <stdlib/bits/stdlib-float.h>
+#endif
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 1c0595b..4db686c 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,9 @@
+2012-11-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* sysdeps/x86_64/tls.h: Don't include <xmmintrin.h>.
+	(__128bits): New struct typedef.
+	(tcbhead_t): Replace __m128 with __128bits.
+
 2012-10-30  Aurelien Jarno  <aurelien@aurel32.net>
 	    Joseph Myers  <joseph@codesourcery.com>
 
diff --git a/nptl/sysdeps/x86_64/tls.h b/nptl/sysdeps/x86_64/tls.h
index b651d1c..bc60a51 100644
--- a/nptl/sysdeps/x86_64/tls.h
+++ b/nptl/sysdeps/x86_64/tls.h
@@ -27,7 +27,14 @@
 # include <stdlib.h>
 # include <sysdep.h>
 # include <kernel-features.h>
-# include <xmmintrin.h>
+
+/* Replacement type for __m128 since this file is included by ld.so,
+   which is compiled with -mno-sse.  It must not change the alignment
+   of rtld_savespace_sse.  */
+typedef struct
+{
+  int i[4];
+} __128bits;
 
 
 /* Type for the dtv.  */
@@ -64,7 +71,7 @@ typedef struct
   void *__private_tm[5];
   long int __unused2;
   /* Have space for the post-AVX register size.  */
-  __m128 rtld_savespace_sse[8][4] __attribute__ ((aligned (32)));
+  __128bits rtld_savespace_sse[8][4] __attribute__ ((aligned (32)));
 
   void *__padding[8];
 } tcbhead_t;
diff --git a/stdlib/Makefile b/stdlib/Makefile
index 57830a8..5e99d7f 100644
--- a/stdlib/Makefile
+++ b/stdlib/Makefile
@@ -20,7 +20,7 @@
 #
 subdir	:= stdlib
 
-headers	:= stdlib.h bits/stdlib.h bits/stdlib-ldbl.h			      \
+headers	:= stdlib.h bits/stdlib.h bits/stdlib-ldbl.h bits/stdlib-float.h      \
 	   monetary.h bits/monetary-ldbl.h				      \
 	   inttypes.h stdint.h bits/wordsize.h				      \
 	   errno.h sys/errno.h bits/errno.h				      \
diff --git a/sysdeps/x86_64/multiarch/strcasestr-nonascii.c b/stdlib/bits/stdlib-float.h
similarity index 55%
copy from sysdeps/x86_64/multiarch/strcasestr-nonascii.c
copy to stdlib/bits/stdlib-float.h
index a1f9968..46f3a32 100644
--- a/sysdeps/x86_64/multiarch/strcasestr-nonascii.c
+++ b/stdlib/bits/stdlib-float.h
@@ -1,5 +1,5 @@
-/* strstr with SSE4.2 intrinsics
-   Copyright (C) 2010 Free Software Foundation, Inc.
+/* Floating-point inline functions for stdlib.h.
+   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
@@ -16,34 +16,16 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-# include <ctype.h>
+#ifndef _STDLIB_H
+# error "Never use <bits/stdlib-float.h> directly; include <stdlib.h> instead."
+#endif
 
-
-/* Similar to __m128i_strloadu.  Convert to lower case for none-POSIX/C
-   locale.  */
-static inline __m128i
-__m128i_strloadu_tolower (const unsigned char *p)
+#ifdef __USE_EXTERN_INLINES
+__BEGIN_NAMESPACE_STD
+__extern_inline double
+__NTH (atof (const char *__nptr))
 {
-  union
-    {
-      char b[16];
-      __m128i x;
-    } u;
-
-  for (int i = 0; i < 16; ++i)
-    if (p[i] == 0)
-      {
-	u.b[i] = 0;
-	break;
-      }
-    else
-      u.b[i] = tolower (p[i]);
-
-  return u.x;
+  return strtod (__nptr, (char **) NULL);
 }
-
-
-#define STRCASESTR_NONASCII
-#define USE_AS_STRCASESTR
-#define STRSTR_SSE42 __strcasestr_sse42_nonascii
-#include "strstr.c"
+__END_NAMESPACE_STD
+#endif /* Optimizing and Inlining.  */
diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h
index cf3f39c..0eb982c 100644
--- a/stdlib/stdlib.h
+++ b/stdlib/stdlib.h
@@ -274,11 +274,6 @@ extern long double strtold_l (const char *__restrict __nptr,
 
 #ifdef __USE_EXTERN_INLINES
 __BEGIN_NAMESPACE_STD
-__extern_inline double
-__NTH (atof (const char *__nptr))
-{
-  return strtod (__nptr, (char **) NULL);
-}
 __extern_inline int
 __NTH (atoi (const char *__nptr))
 {
@@ -953,6 +948,7 @@ extern int getloadavg (double __loadavg[], int __nelem)
      __THROW __nonnull ((1));
 #endif
 
+#include <bits/stdlib-float.h>
 
 /* Define some macros helping to catch buffer overflows.  */
 #if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function
diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile
new file mode 100644
index 0000000..f25d1e2
--- /dev/null
+++ b/sysdeps/x86/Makefile
@@ -0,0 +1,4 @@
+ifeq ($(subdir),elf)
+CFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
+		   -mno-sse -mno-mmx)
+endif
diff --git a/sysdeps/x86_64/multiarch/strcasestr-nonascii.c b/sysdeps/x86_64/multiarch/strcasestr-nonascii.c
index a1f9968..db84a43 100644
--- a/sysdeps/x86_64/multiarch/strcasestr-nonascii.c
+++ b/sysdeps/x86_64/multiarch/strcasestr-nonascii.c
@@ -16,7 +16,8 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-# include <ctype.h>
+#include <ctype.h>
+#include <xmmintrin.h>
 
 
 /* Similar to __m128i_strloadu.  Convert to lower case for none-POSIX/C

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                      |   12 +++++++++
 include/bits/stdlib-float.h                    |    4 +++
 nptl/ChangeLog                                 |    6 ++++
 nptl/sysdeps/x86_64/tls.h                      |   11 +++++++-
 stdlib/Makefile                                |    2 +-
 stdlib/bits/stdlib-float.h                     |   31 ++++++++++++++++++++++++
 stdlib/stdlib.h                                |    6 +----
 sysdeps/x86/Makefile                           |    4 +++
 sysdeps/x86_64/multiarch/strcasestr-nonascii.c |    3 +-
 9 files changed, 70 insertions(+), 9 deletions(-)
 create mode 100644 include/bits/stdlib-float.h
 create mode 100644 stdlib/bits/stdlib-float.h
 create mode 100644 sysdeps/x86/Makefile


hooks/post-receive
-- 
GNU C Library master sources


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