[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commits] r23315 - in /fsf/trunk/libc: ./ manual/ math/ nptl/sysdeps/powerpc/ ports/ ports/sysdeps/arm/ scripts/ sysdeps/mach/hurd/



Author: eglibc
Date: Tue Jun 18 00:02:02 2013
New Revision: 23315

Log:
Import glibc-mainline for 2013-06-18

Added:
    fsf/trunk/libc/scripts/sysd-rules.awk
Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/Makerules
    fsf/trunk/libc/NEWS
    fsf/trunk/libc/configure
    fsf/trunk/libc/configure.in
    fsf/trunk/libc/manual/install.texi
    fsf/trunk/libc/math/test-misc.c
    fsf/trunk/libc/nptl/sysdeps/powerpc/tls.h
    fsf/trunk/libc/ports/ChangeLog.arm
    fsf/trunk/libc/ports/sysdeps/arm/feenablxcpt.c
    fsf/trunk/libc/sysdeps/mach/hurd/Makefile

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Tue Jun 18 00:02:02 2013
@@ -1,3 +1,27 @@
+2013-06-17  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* nptl/sysdeps/powerpc/tls.h (tcbhead_t): Add Event-Based Branch
+	fields.
+
+2013-06-17  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* scripts/sysd-rules.awk: Sort sysd_rules_patterns by descending
+	length of target pattern, then descending length of dependency pattern.
+	* configure.in (AWK): Require gawk 3.1.2 or newer.
+	* manual/install.texi (Tools for Compilation): Say that we do.
+	* configure: Regenerated.
+
+	* Makerules [inhibit-sysdep-asm] (check-inhibit-asm): Variable removed.
+	($(common-objpfx)sysd-rules): Replace shell logic with running ...
+	* scripts/sysd-rules.awk: ... this new script.
+	* sysdeps/mach/hurd/Makefile (inhibit-sysdep-asm): Use a regexp rather
+	than a glob-style pattern.
+
+2013-06-17  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* math/test-misc.c (main): Do not treat incorrectly rounded
+	conversions as failure unless ROUNDING_TESTS passes.
+
 2013-06-15  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	[BZ #15631]

Modified: fsf/trunk/libc/Makerules
==============================================================================
--- fsf/trunk/libc/Makerules (original)
+++ fsf/trunk/libc/Makerules Tue Jun 18 00:02:02 2013
@@ -217,14 +217,9 @@
 # later directory would be chosen over a .c file in an earlier directory,
 # which does not preserve the desired sysdeps ordering behavior.
 
-# System-dependent makefiles can put in `inhibit-sysdep-asm' wildcard
-# patterns matching sysdep directories whose assembly source files should
-# be suppressed.
-ifdef inhibit-sysdep-asm
-define check-inhibit-asm
-case $$sysdir in $(subst $(empty) ,|,$(inhibit-sysdep-asm))) asm= ;; esac;
-endef
-endif
+# System-dependent makefiles can put in `inhibit-sysdep-asm' regexps
+# matching sysdep directories whose assembly source files should be
+# suppressed.
 
 -include $(common-objpfx)sysd-rules
 ifneq ($(sysd-rules-sysdirs),$(config-sysdirs))
@@ -233,34 +228,16 @@
 sysd-rules-force = FORCE
 FORCE:
 endif
-$(common-objpfx)sysd-rules: $(common-objpfx)config.make $(..)Makerules \
+$(common-objpfx)sysd-rules: $(..)scripts/sysd-rules.awk \
+			    $(common-objpfx)config.make $(..)Makerules \
 			    $(sysdep-makefiles) $(sysdep-makeconfigs) \
 			    $(sysd-rules-force)
 	-@rm -f $@T
-	(echo 'sysd-rules-sysdirs := $(config-sysdirs)';		      \
-	 for dir in $(config-sysdirs); do				      \
-	   case "$$dir" in						      \
-	   /*) ;;							      \
-	   *) dir="\$$(..)$$dir" ;;					      \
-	   esac;							      \
-	   asm='.S';							      \
-	   $(check-inhibit-asm)						      \
-	   for o in $(all-object-suffixes); do				      \
-	     set $(subst :, ,$(sysd-rules-patterns));			      \
-	     while [ $$# -ge 2 ]; do					      \
-	       t=$$1; shift; 						      \
-	       d=$$1; shift;						      \
-	       v=$${t%%%}; [ x"$$v" = x ] || v="\$$($${v}CPPFLAGS)";	      \
-	       for s in $$asm .c; do					      \
-		 echo "\$$(objpfx)$$t$$o: $$dir/$$d$$s \$$(before-compile)";  \
-		 echo "	\$$(compile-command$$s) $$v";			      \
-	       done;							      \
-	     done;							      \
-	   done;							      \
-	   echo "\$$(inst_includedir)/%.h: $$dir/%.h \$$(+force)";	      \
-	   echo "	\$$(do-install)"; 				      \
-	 done;								      \
-	 echo 'sysd-rules-done = t') > $@T
+	LC_ALL=C $(AWK) -f $< > $@T \
+			-v all_object_suffixes='$(all-object-suffixes)' \
+			-v inhibit_sysdep_asm='$(inhibit-sysdep-asm)' \
+			-v sysd_rules_patterns='$(sysd-rules-patterns)' \
+			-v config_sysdirs='$(config-sysdirs)'
 	mv -f $@T $@
 
 ifndef sysd-rules-done

Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Tue Jun 18 00:02:02 2013
@@ -12,15 +12,15 @@
   2546, 2560, 5159, 6809, 10060, 10062, 10357, 10686, 11120, 11561, 12387,
   12515, 12723, 13550, 13889, 13951, 13988, 14142, 14176, 14200, 14256,
   14280, 14293, 14317, 14327, 14478, 14496, 14582, 14686, 14812, 14888,
-  14894, 14908, 14909, 14920, 14952, 14964, 14981, 14982, 14985, 14991,
-  14994, 14996, 15000, 15003, 15006, 15007, 15014, 15020, 15023, 15036,
-  15054, 15055, 15062, 15078, 15084, 15085, 15086, 15100, 15160, 15214,
-  15221, 15232, 15234, 15283, 15285, 15287, 15304, 15305, 15307, 15309,
-  15327, 15330, 15335, 15336, 15337, 15339, 15342, 15346, 15359, 15361,
-  15366, 15380, 15381, 15394, 15395, 15405, 15406, 15409, 15416, 15418,
-  15419, 15423, 15424, 15426, 15429, 15431, 15432, 15441, 15442, 15448,
-  15465, 15480, 15485, 15488, 15490, 15492, 15493, 15497, 15506, 15529,
-  15536, 15553, 15577, 15583, 15618, 15627, 15631.
+  14894, 14907, 14908, 14909, 14920, 14952, 14964, 14981, 14982, 14985,
+  14991, 14994, 14996, 15000, 15003, 15006, 15007, 15014, 15020, 15023,
+  15036, 15054, 15055, 15062, 15078, 15084, 15085, 15086, 15100, 15160,
+  15214, 15221, 15232, 15234, 15283, 15285, 15287, 15304, 15305, 15307,
+  15309, 15327, 15330, 15335, 15336, 15337, 15339, 15342, 15346, 15359,
+  15361, 15366, 15380, 15381, 15394, 15395, 15405, 15406, 15409, 15416,
+  15418, 15419, 15423, 15424, 15426, 15429, 15431, 15432, 15441, 15442,
+  15448, 15465, 15480, 15485, 15488, 15490, 15492, 15493, 15497, 15506,
+  15529, 15536, 15553, 15577, 15583, 15618, 15627, 15631.
 
 * CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla
   #15078).

Modified: fsf/trunk/libc/configure
==============================================================================
--- fsf/trunk/libc/configure (original)
+++ fsf/trunk/libc/configure Tue Jun 18 00:02:02 2013
@@ -4993,7 +4993,7 @@
   ac_prog_version=`$AWK --version 2>&1 | sed -n 's/^.*GNU Awk[^0-9]*\([0-9][0-9.]*\).*$/\1/p'`
   case $ac_prog_version in
     '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-    [3-9].*)
+    3.1.[2-9]*|3.[2-9]*|[4-9]*)
        ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
     *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
 

Modified: fsf/trunk/libc/configure.in
==============================================================================
--- fsf/trunk/libc/configure.in (original)
+++ fsf/trunk/libc/configure.in Tue Jun 18 00:02:02 2013
@@ -986,7 +986,7 @@
   SED=: aux_missing="$aux_missing sed")
 AC_CHECK_PROG_VER(AWK, gawk, --version,
   [GNU Awk[^0-9]*\([0-9][0-9.]*\)],
-  [[3-9].*], critic_missing="$critic_missing gawk")
+  [3.1.[2-9]*|3.[2-9]*|[4-9]*], critic_missing="$critic_missing gawk")
 
 AC_CHECK_TOOL(NM, nm, false)
 

Modified: fsf/trunk/libc/manual/install.texi
==============================================================================
--- fsf/trunk/libc/manual/install.texi (original)
+++ fsf/trunk/libc/manual/install.texi Tue Jun 18 00:02:02 2013
@@ -379,10 +379,11 @@
 mechanism for the info files is not present or works differently.
 
 @item
-GNU @code{awk} 3.0, or higher
-
-@code{Awk} is used in several places to generate files.
-@code{gawk} 3.0 is known to work.
+GNU @code{awk} 3.1.2, or higher
+
+@code{awk} is used in several places to generate files.
+Some @code{gawk} extensions are used, including the @code{asorti}
+function, which was introduced in version 3.1.2 of @code{gawk}.
 
 @item
 Perl 5

Modified: fsf/trunk/libc/math/test-misc.c
==============================================================================
--- fsf/trunk/libc/math/test-misc.c (original)
+++ fsf/trunk/libc/math/test-misc.c Tue Jun 18 00:02:02 2013
@@ -1306,7 +1306,11 @@
 	    {
 	      printf ("%La incorrectly rounded to %s as %a\n",
 		      ld5 * i, mstr, d5);
-	      result = 1;
+	      if (ROUNDING_TESTS (long double, mode)
+		  && ROUNDING_TESTS (double, mode))
+		result = 1;
+	      else
+		puts ("ignoring this failure");
 	    }
 	}
     }
@@ -1322,7 +1326,11 @@
   if (d7 != nextafter (0.0, 1.0))
     {
       printf ("%La incorrectly rounded upward to %a\n", ld7, d7);
-      result = 1;
+      if (ROUNDING_TESTS (long double, FE_UPWARD)
+	  && ROUNDING_TESTS (double, FE_UPWARD))
+	result = 1;
+      else
+	puts ("ignoring this failure");
     }
 #endif
 

Modified: fsf/trunk/libc/nptl/sysdeps/powerpc/tls.h
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/powerpc/tls.h (original)
+++ fsf/trunk/libc/nptl/sysdeps/powerpc/tls.h Tue Jun 18 00:02:02 2013
@@ -61,6 +61,11 @@
    are private.  */
 typedef struct
 {
+  /* Reservation for the Event-Based Branching ABI.  */
+  uintptr_t ebb_handler;
+  uintptr_t ebb_ctx_pointer;
+  uintptr_t ebb_reserved1;
+  uintptr_t ebb_reserved2;
   uintptr_t pointer_guard;
   uintptr_t stack_guard;
   dtv_t *dtv;

Modified: fsf/trunk/libc/ports/ChangeLog.arm
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.arm (original)
+++ fsf/trunk/libc/ports/ChangeLog.arm Tue Jun 18 00:02:02 2013
@@ -1,3 +1,9 @@
+2013-06-17  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	[BZ #14907]
+	* sysdeps/arm/feenablxcpt.c (feenableexcept): Test whether all
+	requested exception traps were enabled and return -1 if not.
+
 2013-06-15  Siddhesh Poyarekar  <siddhesh@xxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/arm/nptl/libpthread.abilist: Update.

Modified: fsf/trunk/libc/ports/sysdeps/arm/feenablxcpt.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/arm/feenablxcpt.c (original)
+++ fsf/trunk/libc/ports/sysdeps/arm/feenablxcpt.c Tue Jun 18 00:02:02 2013
@@ -39,6 +39,18 @@
 
       _FPU_SETCW(new_exc);
 
+      if (excepts != 0)
+	{
+	  /* VFPv3 and VFPv4 do not support trapping exceptions, so
+	     test whether the relevant bits were set and fail if
+	     not.  */
+	  unsigned int temp;
+	  _FPU_GETCW (temp);
+	  if ((temp & (excepts << FE_EXCEPT_SHIFT))
+	      != (excepts << FE_EXCEPT_SHIFT))
+	    return -1;
+	}
+
       return old_exc;
     }
 

Added: fsf/trunk/libc/scripts/sysd-rules.awk
==============================================================================
--- fsf/trunk/libc/scripts/sysd-rules.awk (added)
+++ fsf/trunk/libc/scripts/sysd-rules.awk Tue Jun 18 00:02:02 2013
@@ -1,0 +1,76 @@
+# This is a GAWK script to generate the sysd-rules file.
+# It does not read any input, but it requires that several variables
+# be set on its command line (using -v) to their makefile counterparts:
+#	all_object_suffixes	$(all-object-suffixes)
+#	inhibit_sysdep_asm	$(inhibit-sysdep-asm)
+#	config_sysdirs		$(config_sysdirs)
+#	sysd_rules_patterns	$(sysd-rules-patterns)
+
+BEGIN {
+  print "sysd-rules-sysdirs :=", config_sysdirs;
+
+  nsuffixes = split(all_object_suffixes, suffixes);
+  ninhibit_asm = split(inhibit_sysdep_asm, inhibit_asm);
+  nsysdirs = split(config_sysdirs, sysdirs);
+  npatterns = split(sysd_rules_patterns, patterns);
+
+  # Each element of $(sysd-rules-patterns) is a pair TARGET:DEP.
+  # They are no in particular order.  We need to sort them so that
+  # the longest TARGET is first, and, among elements with the same
+  # TARGET, the longest DEP is first.
+  for (i = 1; i <= npatterns; ++i) {
+    if (split(patterns[i], td, ":") != 2) {
+      msg = "bad sysd-rules-patterns element '" patterns[i] "'";
+      print msg > "/dev/stderr";
+      exit 2;
+    }
+    target_order = sprintf("%09d", npatterns + 1 - length(td[1]));
+    dep_order = sprintf("%09d", npatterns - length(td[2]));
+    sort_patterns[target_order SUBSEP dep_order] = patterns[i];
+  }
+  asorti(sort_patterns, map_patterns);
+  for (i in map_patterns) {
+    patterns[i] = sort_patterns[map_patterns[i]];
+  }
+
+  for (sysdir_idx = 1; sysdir_idx <= nsysdirs; ++sysdir_idx) {
+    dir = sysdirs[sysdir_idx];
+    if (dir !~ /^\//) dir = "$(..)" dir;
+    asm_rules = 1;
+    for (i = 1; i <= ninhibit_asm; ++i) {
+      if (dir ~ ("^.*sysdeps/" inhibit_asm[i] "$")) {
+        asm_rules = 0;
+        break;
+      }
+    }
+    for (suffix_idx = 1; suffix_idx <= nsuffixes; ++suffix_idx) {
+      o = suffixes[suffix_idx];
+      for (pattern_idx = 1; pattern_idx <= npatterns; ++pattern_idx) {
+        pattern = patterns[pattern_idx];
+        split(pattern, td, ":");
+        target_pattern = td[1];
+        dep_pattern = td[2];
+        if (target_pattern == "%") {
+          command_suffix = "";
+        } else {
+          prefix = gensub(/%/, "", "", target_pattern);
+          command_suffix = " $(" prefix  "CPPFLAGS)";
+        }
+        target = "$(objpfx)" target_pattern o ":";
+        if (asm_rules) {
+          dep = dir "/" dep_pattern ".S";
+          print target, dep, "$(before-compile)";
+          print "\t$(compile-command.S)" command_suffix;
+        }
+        dep = dir "/" dep_pattern ".c";
+        print target, dep, "$(before-compile)";
+        print "\t$(compile-command.c)" command_suffix;
+      }
+    }
+    print "$(inst_includedir)/%.h:", dir "/%.h", "$(+force)";
+    print "\t$(do-install)";
+  }
+
+  print "sysd-rules-done := t";
+  exit 0;
+}

Modified: fsf/trunk/libc/sysdeps/mach/hurd/Makefile
==============================================================================
--- fsf/trunk/libc/sysdeps/mach/hurd/Makefile (original)
+++ fsf/trunk/libc/sysdeps/mach/hurd/Makefile Tue Jun 18 00:02:02 2013
@@ -28,7 +28,7 @@
 # Do not use any assembly code from sysdeps/unix (and subdirectories).
 # This bypasses all the system call stubs and uses any existing posix or
 # generic C files instead.
-inhibit-sysdep-asm += unix*
+inhibit-sysdep-asm += unix.*
 inhibit-unix-syscalls = yes
 
 # Don't try to generate anything from the installed Unix system and its

_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits