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

[Commits] r21894 - in /fsf/trunk/libc: ./ debug/ inet/ localedata/ localedata/locales/ nscd/ ports/ ports/sysdeps/hppa/fpu/ ports/sysd...



Author: eglibc
Date: Fri Nov 30 00:04:14 2012
New Revision: 21894

Log:
Import glibc-mainline for 2012-11-30

Added:
    fsf/trunk/libc/localedata/locales/ia_FR
    fsf/trunk/libc/ports/sysdeps/mips/mips64/n32/_itoa.h
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/aarch64/dl-cache.h
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h
Removed:
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/bits/socket.h
Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/NEWS
    fsf/trunk/libc/debug/test-strcpy_chk.c
    fsf/trunk/libc/inet/tst-inet6_rth.c
    fsf/trunk/libc/localedata/ChangeLog
    fsf/trunk/libc/localedata/SUPPORTED
    fsf/trunk/libc/nscd/grpcache.c
    fsf/trunk/libc/ports/ChangeLog.aarch64
    fsf/trunk/libc/ports/ChangeLog.hppa
    fsf/trunk/libc/ports/ChangeLog.m68k
    fsf/trunk/libc/ports/ChangeLog.mips
    fsf/trunk/libc/ports/ChangeLog.tile
    fsf/trunk/libc/ports/sysdeps/hppa/fpu/feholdexcpt.c
    fsf/trunk/libc/ports/sysdeps/m68k/m680x0/fpu/libm-test-ulps
    fsf/trunk/libc/ports/sysdeps/tile/s_fmaf.c
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/mmap.c
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/register-dump.h
    fsf/trunk/libc/sysdeps/sparc/fpu/libm-test-ulps

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Fri Nov 30 00:04:14 2012
@@ -1,3 +1,23 @@
+2012-11-29  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* inet/tst-inet6_rth.c (do_test): Use a union rather than type punning.
+
+2012-11-28  Jeff Law  <law@xxxxxxxxxx>
+
+	[BZ #13761]
+	* nscd/grpcache.c (cache_addgr): Rename alloca_used to
+	dataset_temporary.  Track alloca usage into alloca_used.
+	If dataset is large allocate and release it via malloc/free.
+
+2012-06-04  Florian Weimer  <fweimer@xxxxxxxxxx>
+
+	[BZ #14197]
+	* debug/test-strcpy_chk.c: Mention __chk_fail ABI test.
+
+2012-11-28  David S. Miller  <davem@xxxxxxxxxxxxx>
+
+	* sysdeps/sparc/fpu/libm-test-ulps: Update.
+
 2012-11-28  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	[BZ #14803]

Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Fri Nov 30 00:04:14 2012
@@ -9,20 +9,20 @@
 
 * The following bugs are resolved with this release:
 
-  1349, 3439, 3479, 3665, 5044, 5246, 5298, 5400, 6530, 6778, 6808, 9685,
-  9914, 10014, 10038, 10631, 10873, 11438, 11607, 11638, 11741, 12140,
-  13412, 13542, 13601, 13603, 13604, 13629, 13679, 13696, 13698, 13717,
-  13741, 13759, 13763, 13881, 13939, 13950, 13952, 13966, 14042, 14047,
-  14090, 14150, 14151, 14152, 14154, 14157, 14166, 14173, 14195, 14237,
-  14251, 14252, 14283, 14298, 14303, 14307, 14328, 14331, 14336, 14337,
-  14347, 14349, 14368, 14376, 14417, 14459, 14476, 14477, 14501, 14505,
-  14510, 14516, 14518, 14519, 14530, 14532, 14538, 14543, 14544, 14545,
-  14557, 14562, 14568, 14576, 14579, 14583, 14587, 14595, 14602, 14610,
-  14621, 14638, 14645, 14648, 14652, 14660, 14661, 14669, 14672, 14683,
-  14694, 14716, 14719, 14743, 14767, 14783, 14784, 14785, 14793, 14796,
-  14797, 14801, 14803, 14805, 14807, 14811, 14815, 14821, 14822, 14824,
-  14828, 14831, 14835, 14838, 14856, 14863, 14865, 14866, 14868, 14869,
-  14871, 14889.
+  1349, 3439, 3479, 3665, 5044, 5246, 5298, 5400, 6530, 6677, 6778, 6808,
+  9685, 9914, 10014, 10038, 10631, 10873, 11438, 11607, 11638, 11741,
+  12140, 13412, 13542, 13601, 13603, 13604, 13629, 13679, 13696, 13698,
+  13717, 13741, 13759, 13761, 13763, 13881, 13939, 13950, 13952, 13966,
+  14042, 14047, 14090, 14150, 14151, 14152, 14154, 14157, 14166, 14173,
+  14195, 14197, 14237, 14251, 14252, 14283, 14298, 14303, 14307, 14328,
+  14331, 14336, 14337, 14347, 14349, 14368, 14376, 14417, 14447, 14459,
+  14476, 14477, 14501, 14505, 14510, 14516, 14518, 14519, 14530, 14532,
+  14538, 14543, 14544, 14545, 14557, 14562, 14568, 14576, 14579, 14583,
+  14587, 14595, 14602, 14610, 14621, 14638, 14645, 14648, 14652, 14660,
+  14661, 14669, 14672, 14683, 14694, 14716, 14719, 14743, 14767, 14783,
+  14784, 14785, 14793, 14796, 14797, 14801, 14803, 14805, 14807, 14811,
+  14815, 14821, 14822, 14824, 14828, 14831, 14835, 14838, 14856, 14863,
+  14865, 14866, 14868, 14869, 14871, 14879, 14889, 14893.
 
 * CVE-2011-4609 svc_run() produces high cpu usage when accept fails with
   EMFILE has been fixed (Bugzilla #14889).
@@ -83,8 +83,8 @@
   library at runtime and so will not suffer the overheads associated with
   multi-thread support in other code such as the C++ runtime library.
 
-* New locales: ayc_PE, doi_IN, mni_IN, nhn_MX, niu_NU, niu_NZ, sat_IN, and
-  szl_PL.
+* New locales: ayc_PE, doi_IN, ia_FR, mni_IN, nhn_MX, niu_NU, niu_NZ,
+  sat_IN, and szl_PL.
 
 Version 2.16
 

Modified: fsf/trunk/libc/debug/test-strcpy_chk.c
==============================================================================
--- fsf/trunk/libc/debug/test-strcpy_chk.c (original)
+++ fsf/trunk/libc/debug/test-strcpy_chk.c Fri Nov 30 00:04:14 2012
@@ -23,6 +23,9 @@
 # define TEST_NAME "strcpy_chk"
 # include "../string/test-string.h"
 
+/* This test case implicitly tests the availability of the __chk_fail
+   symbol, which is part of the public ABI and may be used
+   externally. */
 extern void __attribute__ ((noreturn)) __chk_fail (void);
 char *simple_strcpy_chk (char *, const char *, size_t);
 extern char *normal_strcpy (char *, const char *, size_t)

Modified: fsf/trunk/libc/inet/tst-inet6_rth.c
==============================================================================
--- fsf/trunk/libc/inet/tst-inet6_rth.c (original)
+++ fsf/trunk/libc/inet/tst-inet6_rth.c Fri Nov 30 00:04:14 2012
@@ -66,20 +66,24 @@
 	      goto out;
 	    }
 
-	  char buf2[1000];
-	  if (inet6_rth_reverse (p, buf2) != 0)
+          union
+          {
+            char buffer[1000];
+            struct ip6_rthdr0 rthdr0;
+          } buf2;
+	  if (inet6_rth_reverse (p, buf2.buffer) != 0)
 	    {
 	      puts ("first inet6_rth_reverse call failed");
 	      res = 1;
 	      goto out;
 	    }
-	  if (((struct ip6_rthdr0 *) buf2)->ip6r0_segleft != nseg)
+	  if (buf2.rthdr0.ip6r0_segleft != nseg)
 	    {
 	      puts ("segleft after first inet6_rth_reverse wrong");
 	      res = 1;
 	    }
 
-	  if (inet6_rth_segments (p) != inet6_rth_segments (buf2))
+	  if (inet6_rth_segments (p) != inet6_rth_segments (buf2.buffer))
 	    {
 	      puts ("number of seconds after first inet6_rth_reverse differs");
 	      res = 1;
@@ -88,7 +92,7 @@
 
 	  for (int i = 0; i < nseg; ++i)
 	    {
-	      struct in6_addr *addr = inet6_rth_getaddr (buf2, i);
+	      struct in6_addr *addr = inet6_rth_getaddr (buf2.buffer, i);
 	      if (addr == NULL)
 		{
 		  printf ("call %d of first inet6_rth_getaddr failed\n",

Modified: fsf/trunk/libc/localedata/ChangeLog
==============================================================================
--- fsf/trunk/libc/localedata/ChangeLog (original)
+++ fsf/trunk/libc/localedata/ChangeLog Fri Nov 30 00:04:14 2012
@@ -1,3 +1,11 @@
+2012-11-26  Nik Kalach  <nikka@xxxxxxxxxxxxxxxxx>
+
+	* locales/ia_FR (abmon): Fix December.
+
+	[BZ#14879]
+	* locales/ia_FR : New file.
+	* SUPPORTED (SUPPORTED-LOCALES): Add appropriate entry.
+
 2012-11-22  Andreas Jaeger  <aj@xxxxxxx>
 
 	* locales/niu_NU: Fix comment.

Modified: fsf/trunk/libc/localedata/SUPPORTED
==============================================================================
--- fsf/trunk/libc/localedata/SUPPORTED (original)
+++ fsf/trunk/libc/localedata/SUPPORTED Fri Nov 30 00:04:14 2012
@@ -242,6 +242,7 @@
 hu_HU/ISO-8859-2 \
 hy_AM/UTF-8 \
 hy_AM.ARMSCII-8/ARMSCII-8 \
+ia_FR/UTF-8 \
 id_ID.UTF-8/UTF-8 \
 id_ID/ISO-8859-1 \
 ig_NG/UTF-8 \

Added: fsf/trunk/libc/localedata/locales/ia_FR
==============================================================================
--- fsf/trunk/libc/localedata/locales/ia_FR (added)
+++ fsf/trunk/libc/localedata/locales/ia_FR Fri Nov 30 00:04:14 2012
@@ -1,0 +1,140 @@
+comment_char %
+escape_char  /
+%
+% Interlingua locale for France
+% Language: ia
+% Territory: FR
+% Revision: 1.0
+% Date: 2012-11-26
+% Application: general
+% Users: general
+% Charset: UTF-8
+
+LC_IDENTIFICATION
+title "Interlingua locale for France"
+source "Fedora Project"
+address ""
+contact "Nik Kalach"
+email "nikka@xxxxxxxxxxxxxxxxx"
+tel ""
+fax ""
+language "Interlingua"
+territory "France"
+revision "1.0"
+date "2012-11-26"
+
+category ia_FR:2000;LC_IDENTIFICATION
+category ia_FR:2000;LC_CTYPE
+category ia_FR:2000;LC_COLLATE
+category ia_FR:2000;LC_TIME
+category ia_FR:2000;LC_NUMERIC
+category ia_FR:2000;LC_MONETARY
+category ia_FR:2000;LC_MESSAGES
+category ia_FR:2000;LC_MEASUREMENT
+category ia_FR:2000;LC_PAPER
+category ia_FR:2000;LC_NAME
+category ia_FR:2000;LC_ADDRESS
+category ia_FR:2000;LC_TELEPHONE
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "fr_FR"
+END LC_CTYPE
+
+LC_COLLATE
+copy "fr_FR"
+END LC_COLLATE
+
+LC_TIME
+abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+        "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
+        "<U006A><U006F><U0076>";"<U0076><U0065><U006E>";/
+        "<U0073><U0061><U0062>"
+day     "<U0064><U006F><U006D><U0069><U006E><U0069><U0063><U0061>";/
+        "<U006C><U0075><U006E><U0065><U0064><U0069>";/
+        "<U006D><U0061><U0072><U0074><U0065><U0064><U0069>";/
+        "<U006D><U0065><U0072><U0063><U0075><U0072><U0069><U0064><U0069>";/
+        "<U006A><U006F><U0076><U0065><U0064><U0069>";/
+        "<U0076><U0065><U006E><U0065><U0072><U0064><U0069>";/
+        "<U0073><U0061><U0062><U0062><U0061><U0074><U006F>"
+abmon   "<U006A><U0061><U006E>";"<U0066><U0065><U0062>";/
+        "<U006D><U0061><U0072>";"<U0061><U0070><U0072>";/
+        "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
+        "<U006A><U0075><U006C>";"<U0061><U0075><U0067>";/
+        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+        "<U006E><U006F><U0076>";"<U0064><U0065><U0063>"
+mon     "<U006A><U0061><U006E><U0075><U0061><U0072><U0069><U006F>";/
+        "<U0066><U0065><U0062><U0072><U0075><U0061><U0072><U0069><U006F>";/
+        "<U006D><U0061><U0072><U0074><U0069><U006F>";/
+        "<U0061><U0070><U0072><U0069><U006C>";/
+        "<U006D><U0061><U0069><U006F>";/
+        "<U006A><U0075><U006E><U0069><U006F>";/
+        "<U006A><U0075><U006C><U0069><U006F>";/
+        "<U0061><U0075><U0067><U0075><U0073><U0074><U006F>";/
+        "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/
+        "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/
+        "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
+        "<U0064><U0065><U0063><U0065><U006D><U0062><U0072><U0065>"
+d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020>/
+<U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+d_fmt   "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
+t_fmt   "<U0025><U0054>"
+am_pm   "<U0041><U004D>";"<U0050><U004D>"
+t_fmt_ampm ""
+date_fmt       "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+<U0025><U005A><U0020><U0025><U0059>"
+week    7;19971130;4
+first_workday 2
+first_weekday 2
+END LC_TIME
+
+LC_NUMERIC
+copy "fr_FR"
+END LC_NUMERIC
+
+LC_MONETARY
+copy "fr_FR"
+END LC_MONETARY
+
+LC_MESSAGES
+yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
+yesstr  "<U0053><U0069>"
+nostr   "<U004E><U006F>"
+END LC_MESSAGES
+
+LC_MEASUREMENT
+copy "fr_FR"
+END LC_MEASUREMENT
+
+LC_PAPER
+copy "fr_FR"
+END LC_PAPER
+
+LC_NAME
+copy "fr_FR"
+END LC_NAME
+
+LC_ADDRESS
+postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+<U0074><U0025><U0068><U0074><U0025><U0065><U0074><U0025><U0072><U0025>/
+<U004E><U0025><U007A><U0074><U0025><U0054><U0025>/
+<U004E><U0025><U0063><U0025><U004E>"
+country_post "<U0046>"
+country_ab2 "<U0046><U0052>"
+country_ab3 "<U0046><U0052><U0041>"
+country_num 250
+country_isbn 2
+country_car "<U0046>"
+lang_name "<U0049><U006E><U0074><U0065><U0072><U006C><U0069><U006E><U0067><U0075><U0061>"
+lang_ab "<U0069><U0061>"
+lang_term "<U0069><U006E><U0061>"
+lang_lib "<U0069><U006E><U0061>"
+END LC_ADDRESS
+
+LC_TELEPHONE
+copy "fr_FR"
+END LC_TELEPHONE

Modified: fsf/trunk/libc/nscd/grpcache.c
==============================================================================
--- fsf/trunk/libc/nscd/grpcache.c (original)
+++ fsf/trunk/libc/nscd/grpcache.c Fri Nov 30 00:04:14 2012
@@ -177,7 +177,8 @@
       char *cp;
       const size_t key_len = strlen (key);
       const size_t buf_len = 3 * sizeof (grp->gr_gid) + key_len + 1;
-      char *buf = alloca (buf_len);
+      size_t alloca_used = 0;
+      char *buf = alloca_account (buf_len, alloca_used);
       ssize_t n;
       size_t cnt;
 
@@ -189,7 +190,7 @@
       /* Determine the length of all members.  */
       while (grp->gr_mem[gr_mem_cnt])
 	++gr_mem_cnt;
-      gr_mem_len = (uint32_t *) alloca (gr_mem_cnt * sizeof (uint32_t));
+      gr_mem_len = alloca_account (gr_mem_cnt * sizeof (uint32_t), alloca_used);
       for (gr_mem_cnt = 0; grp->gr_mem[gr_mem_cnt]; ++gr_mem_cnt)
 	{
 	  gr_mem_len[gr_mem_cnt] = strlen (grp->gr_mem[gr_mem_cnt]) + 1;
@@ -204,7 +205,8 @@
 	 change.  Allocate memory on the cache since it is likely
 	 discarded anyway.  If it turns out to be necessary to have a
 	 new record we can still allocate real memory.  */
-      bool alloca_used = false;
+      bool dataset_temporary = false;
+      bool dataset_malloced = false;
       dataset = NULL;
 
       if (he == NULL)
@@ -215,10 +217,20 @@
 	  /* We cannot permanently add the result in the moment.  But
 	     we can provide the result as is.  Store the data in some
 	     temporary memory.  */
-	  dataset = (struct dataset *) alloca (total + n);
+	  if (! __libc_use_alloca (alloca_used + total + n))
+	    {
+	      dataset = malloc (total + n);
+	      /* Perhaps we should log a message that we were unable
+		 to allocate memory for a large request.  */
+	      if (dataset == NULL)
+		goto out;
+	      dataset_malloced = true;
+	    }
+	  else
+	    dataset = alloca_account (total + n, alloca_used);
 
 	  /* We cannot add this record to the permanent database.  */
-	  alloca_used = true;
+	  dataset_temporary = true;
 	}
 
       dataset->head.allocsize = total + n;
@@ -272,6 +284,11 @@
 		 allocated on the stack and need not be freed.  */
 	      dh->timeout = dataset->head.timeout;
 	      ++dh->nreloads;
+
+	      /* If the new record was allocated via malloc, then we must free
+		 it here.  */
+	      if (dataset_malloced)
+		free (dataset);
 	    }
 	  else
 	    {
@@ -287,7 +304,7 @@
 		  key_copy = (char *) newp + (key_copy - (char *) dataset);
 
 		  dataset = memcpy (newp, dataset, total + n);
-		  alloca_used = false;
+		  dataset_temporary = false;
 		}
 
 	      /* Mark the old record as obsolete.  */
@@ -302,7 +319,7 @@
 	  assert (fd != -1);
 
 #ifdef HAVE_SENDFILE
-	  if (__builtin_expect (db->mmap_used, 1) && !alloca_used)
+	  if (__builtin_expect (db->mmap_used, 1) && ! dataset_temporary)
 	    {
 	      assert (db->wr_fd != -1);
 	      assert ((char *) &dataset->resp > (char *) db->data);
@@ -329,7 +346,7 @@
 
       /* Add the record to the database.  But only if it has not been
 	 stored on the stack.  */
-      if (! alloca_used)
+      if (! dataset_temporary)
 	{
 	  /* If necessary, we also propagate the data to disk.  */
 	  if (db->persistent)

Modified: fsf/trunk/libc/ports/ChangeLog.aarch64
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.aarch64 (original)
+++ fsf/trunk/libc/ports/ChangeLog.aarch64 Fri Nov 30 00:04:14 2012
@@ -1,3 +1,7 @@
+2012-11-29  Steve McIntyre <steve.mcintyre@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/aarch64/dl-cache.h: New file.
+
 2012-11-22  Marcus Shawcroft  <marcus.shawcroft@xxxxxxxxxx>
 
 	* sysdeps/aarch64/libm-test-ulps: Regenerate.

Modified: fsf/trunk/libc/ports/ChangeLog.hppa
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.hppa (original)
+++ fsf/trunk/libc/ports/ChangeLog.hppa Fri Nov 30 00:04:14 2012
@@ -1,3 +1,11 @@
+2012-11-29  Carlos O'Donell  <carlos@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/hppa/bits/socket.h: Delete file.
+	* sysdeps/unix/sysv/linux/hppa/bits/socket_type.h: New file.
+
+	* sysdeps/hppa/fpu/feholdexcpt.c: Cast return to unsigned long long *.
+	* sysdeps/unix/sysv/linux/hppa/mmap.c: Cast return to __ptr_t.
+
 2012-11-19  Mike Frysinger  <vapier@xxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/hppa/nptl/pthread_once.c: Replace _internal
@@ -50,6 +58,7 @@
 
 2012-10-29  Carlos O'Donell  <carlos@xxxxxxxxxxxxxxxx>
 
+	[BZ #14447]
 	* sysdeps/unix/sysv/linux/hppa/sysdep.h (ENTRY): Add cfi_startproc.
 	Use .cfi_offset for rp store.
 	(ENTRY_LEAF): Likewise.
@@ -217,7 +226,7 @@
 
 2012-03-03  Carlos O'Donell  <carlos@xxxxxxxxxxxxxxxx>
 
-	* sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h: Name 
+	* sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h: Name
 	pthread_attr_t union.
 	* sysdeps/unix/sysv/linux/hppa/nptl/pthread.h: Sync from libc copy.
 	* sysdeps/unix/sysv/linux/hppa/bits/socket.h: Likewise.
@@ -239,12 +248,12 @@
 2011-10-21  Carlos O'Donell  <carlos@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/hppa/sys/procfs.h: Update copyright year.
-	Do not include signal.h and sys/ucontext.h. 
+	Do not include signal.h and sys/ucontext.h.
 
 2011-10-20  Carlos O'Donell  <carlos@xxxxxxxxxxxxxxxx>
 
-	* sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h: Update copyright 
-	year. 
+	* sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h: Update copyright
+	year.
 	(PSEUDO): Define __*_nocancel version. Add CFI directives to __*_nocancel
 	and normal version.
 	(PUSHARGS_1): Add CFI directive.

Modified: fsf/trunk/libc/ports/ChangeLog.m68k
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.m68k (original)
+++ fsf/trunk/libc/ports/ChangeLog.m68k Fri Nov 30 00:04:14 2012
@@ -1,3 +1,7 @@
+2012-11-30  Andreas Schwab  <schwab@xxxxxxxxxxxxxx>
+
+	* sysdeps/m68k/m680x0/fpu/libm-test-ulps: Update.
+
 2012-11-23  Andreas Schwab  <schwab@xxxxxxxxxxxxxx>
 
 	* sysdeps/m68k/dl-trampoline.S (_dl_runtime_profile)

Modified: fsf/trunk/libc/ports/ChangeLog.mips
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.mips (original)
+++ fsf/trunk/libc/ports/ChangeLog.mips Fri Nov 30 00:04:14 2012
@@ -1,3 +1,20 @@
+2012-11-29  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	[BZ #14893]
+	* sysdeps/mips/mips64/n32/_itoa.h: New file.
+	* sysdeps/unix/sysv/linux/mips/register-dump.h: Include
+	<sgidefs.h>.
+	(CTX_TYPE): New macro.
+	(CTX_REG): Likewise.
+	(CTX_PC): Likewise.
+	(CTX_MDHI): Likewise.
+	(CTX_MDLO): Likewise.
+	(REG_HEX_SIZE): Likewise.
+	(hexvalue): Take _ITOA_WORD_TYPE argument.
+	(register_dump): Use these macros instead of hardcoding struct
+	sigcontext * type and accesses and 8-byte textual output for
+	registers.
+
 2012-11-22  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	[BZ #14822]

Modified: fsf/trunk/libc/ports/ChangeLog.tile
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.tile (original)
+++ fsf/trunk/libc/ports/ChangeLog.tile Fri Nov 30 00:04:14 2012
@@ -1,3 +1,8 @@
+2012-11-29  Chris Metcalf  <cmetcalf@xxxxxxxxxx>
+
+	* sysdeps/tile/s_fmaf.c: Remove redundant #defines now provided
+	in sysdeps/tile/math_private.h.
+
 2012-11-20  Chris Metcalf  <cmetcalf@xxxxxxxxxx>
 
 	* sysdeps/tile/libm-test-ulps: Account for new tests.

Modified: fsf/trunk/libc/ports/sysdeps/hppa/fpu/feholdexcpt.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/hppa/fpu/feholdexcpt.c (original)
+++ fsf/trunk/libc/ports/sysdeps/hppa/fpu/feholdexcpt.c Fri Nov 30 00:04:14 2012
@@ -1,5 +1,5 @@
 /* Store current floating-point environment and clear exceptions.
-   Copyright (C) 2000 Free Software Foundation, Inc.
+   Copyright (C) 2000-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by David Huggins-Daines <dhd@xxxxxxxxxx>, 2000
 
@@ -42,7 +42,7 @@
 
   /* Load the new environment. Note: fr0 must load last to enable T-bit 
      Thus we start bufptr at the end and work backwards */
-  bufptr = (unsigned int)(clear.buf) + sizeof(unsigned int)*4;
+  bufptr = (unsigned long long *)((unsigned int)(clear.buf) + sizeof(unsigned int)*4);
   __asm__ (
 	   "fldd,mb -8(%0),%%fr0\n"
 	   : : "r" (bufptr), "m" (clear) : "%r0");

Modified: fsf/trunk/libc/ports/sysdeps/m68k/m680x0/fpu/libm-test-ulps
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/m68k/m680x0/fpu/libm-test-ulps (original)
+++ fsf/trunk/libc/ports/sysdeps/m68k/m680x0/fpu/libm-test-ulps Fri Nov 30 00:04:14 2012
@@ -2310,6 +2310,46 @@
 ifloat: 1
 ildouble: 1
 ldouble: 1
+Test "y0 (0x1p-10) == -4.4865150767109739412411806297168793661098":
+float: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "y0 (0x1p-100) == -4.420092432563900590456563035154802121284e+1":
+float: 1
+ifloat: 1
+Test "y0 (0x1p-110) == -4.861363632869203777249475899390797503250e+1":
+float: 1
+ifloat: 1
+Test "y0 (0x1p-20) == -8.8992283012125827603076426611387876938160":
+float: 1
+ifloat: 1
+Test "y0 (0x1p-30) == -1.3311940304267782826037118027401817264906e+1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "y0 (0x1p-40) == -1.7724652307320814696990854700366226762563e+1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "y0 (0x1p-60) == -2.6550076313426878432849115782108205929120e+1":
+double: 1
+idouble: 1
+Test "y0 (0x1p-70) == -3.0962788316479910300778244424468159753887e+1":
+double: 1
+idouble: 1
+Test "y0 (0x1p-80) == -3.5375500319532942168707373066828113573541e+1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+Test "y0 (0x1p-90) == -3.9788212322585974036636501709188067393195e+1":
+float: 1
+ifloat: 1
 Test "y0 (1.0) == 0.0882569642156769579829267660235151628":
 ildouble: 1
 ldouble: 1
@@ -2346,6 +2386,9 @@
 ifloat: 2
 ildouble: 1
 ldouble: 1
+Test "y1 (0x1p-10) == -6.5190099301063115047395187618929589514382e+02":
+float: 1
+ifloat: 1
 Test "y1 (1.0) == -0.781212821300288716547150000047964821":
 double: 1
 idouble: 1

Added: fsf/trunk/libc/ports/sysdeps/mips/mips64/n32/_itoa.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/mips/mips64/n32/_itoa.h (added)
+++ fsf/trunk/libc/ports/sysdeps/mips/mips64/n32/_itoa.h Fri Nov 30 00:04:14 2012
@@ -1,0 +1,4 @@
+/* MIPS n32 uses 64-bit _itoa_word and _itoa is mapped to _itoa_word.  */
+#define _ITOA_NEEDED		0
+#define _ITOA_WORD_TYPE		unsigned long long int
+#include_next <_itoa.h>

Modified: fsf/trunk/libc/ports/sysdeps/tile/s_fmaf.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/tile/s_fmaf.c (original)
+++ fsf/trunk/libc/ports/sysdeps/tile/s_fmaf.c Fri Nov 30 00:04:14 2012
@@ -1,8 +1,4 @@
 /* tile does not support the rounding modes required by the ieee754/dbl-64
    implementation, but it's still better than the generic implementation.  */
 
-#define libc_feholdexcept_setround(e, x) do { (void) (e); } while (0)
-#define libc_feupdateenv_test(e, x) ((void) (e), 0)
-#define libc_fetestexcept(x) 0
-
 #include <sysdeps/ieee754/dbl-64/s_fmaf.c>

Added: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/aarch64/dl-cache.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/aarch64/dl-cache.h (added)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/aarch64/dl-cache.h Fri Nov 30 00:04:14 2012
@@ -1,0 +1,45 @@
+/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
+   Copyright (C) 2003-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/>.  */
+
+#include <ldconfig.h>
+
+#define _DL_CACHE_DEFAULT_ID    (FLAG_AARCH64_LIB64 | FLAG_ELF_LIBC6)
+
+#define _dl_cache_check_flags(flags)                    \
+  ((flags) == _DL_CACHE_DEFAULT_ID)
+
+#define add_system_dir(dir) \
+  do								\
+    {								\
+      size_t len = strlen (dir);				\
+      char path[len + 3];					\
+      memcpy (path, dir, len + 1);				\
+      if (len >= 6 && ! memcmp (path + len - 6, "/lib64", 6))	\
+	{							\
+	  len -= 2;						\
+	  path[len] = '\0';					\
+	}							\
+      add_dir (path);						\
+      if (len >= 4 && ! memcmp (path + len - 4, "/lib", 4))	\
+	{							\
+	  memcpy (path + len, "64", 3);				\
+	  add_dir (path);					\
+	}							\
+    } while (0)
+
+#include_next <dl-cache.h>

Removed: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/bits/socket.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/bits/socket.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/bits/socket.h (removed)
@@ -1,444 +1,0 @@
-/* System-specific socket constants and types.  Linux version.
-   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
-   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_SOCKET_H
-#define __BITS_SOCKET_H
-
-#ifndef _SYS_SOCKET_H
-# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
-#endif
-
-#define	__need_size_t
-#include <stddef.h>
-
-#include <sys/types.h>
-
-/* Type for length arguments in socket calls.  */
-#ifndef __socklen_t_defined
-typedef __socklen_t socklen_t;
-# define __socklen_t_defined
-#endif
-
-/* Types of sockets.  */
-enum __socket_type
-{
-  SOCK_STREAM = 1,		/* Sequenced, reliable, connection-based
-				   byte streams.  */
-#define SOCK_STREAM SOCK_STREAM
-  SOCK_DGRAM = 2,		/* Connectionless, unreliable datagrams
-				   of fixed maximum length.  */
-#define SOCK_DGRAM SOCK_DGRAM
-  SOCK_RAW = 3,			/* Raw protocol interface.  */
-#define SOCK_RAW SOCK_RAW
-  SOCK_RDM = 4,			/* Reliably-delivered messages.  */
-#define SOCK_RDM SOCK_RDM
-  SOCK_SEQPACKET = 5,		/* Sequenced, reliable, connection-based,
-				   datagrams of fixed maximum length.  */
-#define SOCK_SEQPACKET SOCK_SEQPACKET
-  SOCK_DCCP = 6,		/* Datagram Congestion Control Protocol.  */
-#define SOCK_DCCP SOCK_DCCP
-  SOCK_PACKET = 10,		/* Linux specific way of getting packets
-				   at the dev level.  For writing rarp and
-				   other similar things on the user level. */
-#define SOCK_PACKET SOCK_PACKET
-
-  /* Flags to be ORed into the type parameter of socket and socketpair and
-     used for the flags parameter of paccept.  */
-
-  SOCK_CLOEXEC = 010000000,	/* Atomically set close-on-exec flag for the
-				   new descriptor(s).  */
-#define SOCK_CLOEXEC SOCK_CLOEXEC
-  SOCK_NONBLOCK = 0x40000000	/* Atomically mark descriptor(s) as
-				   non-blocking.  */
-#define SOCK_NONBLOCK SOCK_NONBLOCK
-};
-
-/* Protocol families.  */
-#define	PF_UNSPEC	0	/* Unspecified.  */
-#define	PF_LOCAL	1	/* Local to host (pipes and file-domain).  */
-#define	PF_UNIX		PF_LOCAL /* POSIX name for PF_LOCAL.  */
-#define	PF_FILE		PF_LOCAL /* Another non-standard name for PF_LOCAL.  */
-#define	PF_INET		2	/* IP protocol family.  */
-#define	PF_AX25		3	/* Amateur Radio AX.25.  */
-#define	PF_IPX		4	/* Novell Internet Protocol.  */
-#define	PF_APPLETALK	5	/* Appletalk DDP.  */
-#define	PF_NETROM	6	/* Amateur radio NetROM.  */
-#define	PF_BRIDGE	7	/* Multiprotocol bridge.  */
-#define	PF_ATMPVC	8	/* ATM PVCs.  */
-#define	PF_X25		9	/* Reserved for X.25 project.  */
-#define	PF_INET6	10	/* IP version 6.  */
-#define	PF_ROSE		11	/* Amateur Radio X.25 PLP.  */
-#define	PF_DECnet	12	/* Reserved for DECnet project.  */
-#define	PF_NETBEUI	13	/* Reserved for 802.2LLC project.  */
-#define	PF_SECURITY	14	/* Security callback pseudo AF.  */
-#define	PF_KEY		15	/* PF_KEY key management API.  */
-#define	PF_NETLINK	16
-#define	PF_ROUTE	PF_NETLINK /* Alias to emulate 4.4BSD.  */
-#define	PF_PACKET	17	/* Packet family.  */
-#define	PF_ASH		18	/* Ash.  */
-#define	PF_ECONET	19	/* Acorn Econet.  */
-#define	PF_ATMSVC	20	/* ATM SVCs.  */
-#define PF_RDS		21	/* RDS sockets.  */
-#define	PF_SNA		22	/* Linux SNA Project */
-#define	PF_IRDA		23	/* IRDA sockets.  */
-#define	PF_PPPOX	24	/* PPPoX sockets.  */
-#define	PF_WANPIPE	25	/* Wanpipe API sockets.  */
-#define PF_LLC		26	/* Linux LLC.  */
-#define PF_CAN		29	/* Controller Area Network.  */
-#define PF_TIPC		30	/* TIPC sockets.  */
-#define	PF_BLUETOOTH	31	/* Bluetooth sockets.  */
-#define	PF_IUCV		32	/* IUCV sockets.  */
-#define PF_RXRPC	33	/* RxRPC sockets.  */
-#define PF_ISDN		34	/* mISDN sockets.  */
-#define PF_PHONET	35	/* Phonet sockets.  */
-#define PF_IEEE802154	36	/* IEEE 802.15.4 sockets.  */
-#define PF_CAIF		37	/* CAIF sockets.  */
-#define PF_ALG		38	/* Algorithm sockets.  */
-#define PF_NFC		39	/* NFC sockets.  */
-#define	PF_MAX		40	/* For now..  */
-
-/* Address families.  */
-#define	AF_UNSPEC	PF_UNSPEC
-#define	AF_LOCAL	PF_LOCAL
-#define	AF_UNIX		PF_UNIX
-#define	AF_FILE		PF_FILE
-#define	AF_INET		PF_INET
-#define	AF_AX25		PF_AX25
-#define	AF_IPX		PF_IPX
-#define	AF_APPLETALK	PF_APPLETALK
-#define	AF_NETROM	PF_NETROM
-#define	AF_BRIDGE	PF_BRIDGE
-#define	AF_ATMPVC	PF_ATMPVC
-#define	AF_X25		PF_X25
-#define	AF_INET6	PF_INET6
-#define	AF_ROSE		PF_ROSE
-#define	AF_DECnet	PF_DECnet
-#define	AF_NETBEUI	PF_NETBEUI
-#define	AF_SECURITY	PF_SECURITY
-#define	AF_KEY		PF_KEY
-#define	AF_NETLINK	PF_NETLINK
-#define	AF_ROUTE	PF_ROUTE
-#define	AF_PACKET	PF_PACKET
-#define	AF_ASH		PF_ASH
-#define	AF_ECONET	PF_ECONET
-#define	AF_ATMSVC	PF_ATMSVC
-#define AF_RDS		PF_RDS
-#define	AF_SNA		PF_SNA
-#define	AF_IRDA		PF_IRDA
-#define	AF_PPPOX	PF_PPPOX
-#define	AF_WANPIPE	PF_WANPIPE
-#define AF_LLC		PF_LLC
-#define AF_CAN		PF_CAN
-#define AF_TIPC		PF_TIPC
-#define	AF_BLUETOOTH	PF_BLUETOOTH
-#define	AF_IUCV		PF_IUCV
-#define AF_RXRPC	PF_RXRPC
-#define AF_ISDN		PF_ISDN
-#define AF_PHONET	PF_PHONET
-#define AF_IEEE802154	PF_IEEE802154
-#define AF_CAIF		PF_CAIF
-#define AF_ALG		PF_ALG
-#define AF_NFC		PF_NFC
-#define	AF_MAX		PF_MAX
-
-/* Socket level values.  Others are defined in the appropriate headers.
-
-   XXX These definitions also should go into the appropriate headers as
-   far as they are available.  */
-#define SOL_RAW		255
-#define SOL_DECNET      261
-#define SOL_X25         262
-#define SOL_PACKET	263
-#define SOL_ATM		264	/* ATM layer (cell level).  */
-#define SOL_AAL		265	/* ATM Adaption Layer (packet level).  */
-#define SOL_IRDA	266
-
-/* Maximum queue length specifiable by listen.  */
-#define SOMAXCONN	128
-
-/* Get the definition of the macro to define the common sockaddr members.  */
-#include <bits/sockaddr.h>
-
-/* Structure describing a generic socket address.  */
-struct sockaddr
-  {
-    __SOCKADDR_COMMON (sa_);	/* Common data: address family and length.  */
-    char sa_data[14];		/* Address data.  */
-  };
-
-
-/* Structure large enough to hold any socket address (with the historical
-   exception of AF_UNIX).  We reserve 128 bytes.  */
-#define __ss_aligntype	unsigned long int
-#define _SS_SIZE	128
-#define _SS_PADSIZE	(_SS_SIZE - (2 * sizeof (__ss_aligntype)))
-
-struct sockaddr_storage
-  {
-    __SOCKADDR_COMMON (ss_);	/* Address family, etc.  */
-    __ss_aligntype __ss_align;	/* Force desired alignment.  */
-    char __ss_padding[_SS_PADSIZE];
-  };
-
-
-/* Bits in the FLAGS argument to `send', `recv', et al.  */
-enum
-  {
-    MSG_OOB		= 0x01,	/* Process out-of-band data.  */
-#define MSG_OOB		MSG_OOB
-    MSG_PEEK		= 0x02,	/* Peek at incoming messages.  */
-#define MSG_PEEK	MSG_PEEK
-    MSG_DONTROUTE	= 0x04,	/* Don't use local routing.  */
-#define MSG_DONTROUTE	MSG_DONTROUTE
-#ifdef __USE_GNU
-    /* DECnet uses a different name.  */
-    MSG_TRYHARD		= MSG_DONTROUTE,
-# define MSG_TRYHARD	MSG_DONTROUTE
-#endif
-    MSG_CTRUNC		= 0x08,	/* Control data lost before delivery.  */
-#define MSG_CTRUNC	MSG_CTRUNC
-    MSG_PROXY		= 0x10,	/* Supply or ask second address.  */
-#define MSG_PROXY	MSG_PROXY
-    MSG_TRUNC		= 0x20,
-#define	MSG_TRUNC	MSG_TRUNC
-    MSG_DONTWAIT	= 0x40, /* Nonblocking IO.  */
-#define	MSG_DONTWAIT	MSG_DONTWAIT
-    MSG_EOR		= 0x80, /* End of record.  */
-#define	MSG_EOR		MSG_EOR
-    MSG_WAITALL		= 0x100, /* Wait for a full request.  */
-#define	MSG_WAITALL	MSG_WAITALL
-    MSG_FIN		= 0x200,
-#define	MSG_FIN		MSG_FIN
-    MSG_SYN		= 0x400,
-#define	MSG_SYN		MSG_SYN
-    MSG_CONFIRM		= 0x800, /* Confirm path validity.  */
-#define	MSG_CONFIRM	MSG_CONFIRM
-    MSG_RST		= 0x1000,
-#define	MSG_RST		MSG_RST
-    MSG_ERRQUEUE	= 0x2000, /* Fetch message from error queue.  */
-#define	MSG_ERRQUEUE	MSG_ERRQUEUE
-    MSG_NOSIGNAL	= 0x4000, /* Do not generate SIGPIPE.  */
-#define	MSG_NOSIGNAL	MSG_NOSIGNAL
-    MSG_MORE		= 0x8000,  /* Sender will send more.  */
-#define	MSG_MORE	MSG_MORE
-    MSG_WAITFORONE	= 0x10000, /* Wait for at least one packet to return.*/
-#define MSG_WAITFORONE	MSG_WAITFORONE
-
-    MSG_CMSG_CLOEXEC	= 0x40000000	/* Set close_on_exit for file
-					   descriptor received through
-					   SCM_RIGHTS.  */
-#define MSG_CMSG_CLOEXEC MSG_CMSG_CLOEXEC
-  };
-
-
-/* Structure describing messages sent by
-   `sendmsg' and received by `recvmsg'.  */
-struct msghdr
-  {
-    void *msg_name;		/* Address to send to/receive from.  */
-    socklen_t msg_namelen;	/* Length of address data.  */
-
-    struct iovec *msg_iov;	/* Vector of data to send/receive into.  */
-    size_t msg_iovlen;		/* Number of elements in the vector.  */
-
-    void *msg_control;		/* Ancillary data (eg BSD filedesc passing). */
-    size_t msg_controllen;	/* Ancillary data buffer length.
-				   !! The type should be socklen_t but the
-				   definition of the kernel is incompatible
-				   with this.  */
-
-    int msg_flags;		/* Flags on received message.  */
-  };
-
-#ifdef __USE_GNU
-/* For `recvmmsg'.  */
-struct mmsghdr
-  {
-    struct msghdr msg_hdr;	/* Actual message header.  */
-    unsigned int msg_len;	/* Number of received bytes for the entry.  */
-  };
-#endif
-
-/* Structure used for storage of ancillary data object information.  */
-struct cmsghdr
-  {
-    size_t cmsg_len;		/* Length of data in cmsg_data plus length
-				   of cmsghdr structure.
-				   !! The type should be socklen_t but the
-				   definition of the kernel is incompatible
-				   with this.  */
-    int cmsg_level;		/* Originating protocol.  */
-    int cmsg_type;		/* Protocol specific type.  */
-#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
-    __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data.  */
-#endif
-  };
-
-/* Ancillary data object manipulation macros.  */
-#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
-# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
-#else
-# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
-#endif
-#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
-#define CMSG_FIRSTHDR(mhdr) \
-  ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr)		      \
-   ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0)
-#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
-			 & (size_t) ~(sizeof (size_t) - 1))
-#define CMSG_SPACE(len) (CMSG_ALIGN (len) \
-			 + CMSG_ALIGN (sizeof (struct cmsghdr)))
-#define CMSG_LEN(len)   (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
-
-extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
-				      struct cmsghdr *__cmsg) __THROW;
-#ifdef __USE_EXTERN_INLINES
-# ifndef _EXTERN_INLINE
-#  define _EXTERN_INLINE __extern_inline
-# endif
-_EXTERN_INLINE struct cmsghdr *
-__NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
-{
-  if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
-    /* The kernel header does this so there may be a reason.  */
-    return (struct cmsghdr *) 0;
-
-  __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
-			       + CMSG_ALIGN (__cmsg->cmsg_len));
-  if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
-					+ __mhdr->msg_controllen)
-      || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
-	  > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
-    /* No more entries.  */
-    return (struct cmsghdr *) 0;
-  return __cmsg;
-}
-#endif	/* Use `extern inline'.  */
-
-/* Socket level message types.  This must match the definitions in
-   <linux/socket.h>.  */
-enum
-  {
-    SCM_RIGHTS = 0x01		/* Transfer file descriptors.  */
-#define SCM_RIGHTS SCM_RIGHTS
-#ifdef __USE_GNU
-    , SCM_CREDENTIALS = 0x02	/* Credentials passing.  */
-# define SCM_CREDENTIALS SCM_CREDENTIALS
-#endif
-  };
-
-#ifdef __USE_GNU
-/* User visible structure for SCM_CREDENTIALS message */
-struct ucred
-{
-  pid_t pid;			/* PID of sending process.  */
-  uid_t uid;			/* UID of sending process.  */
-  gid_t gid;			/* GID of sending process.  */
-};
-#endif
-
-/* Ugly workaround for unclean kernel headers.  */
-#if !defined __USE_MISC && !defined __USE_GNU
-# ifndef FIOGETOWN
-#  define __SYS_SOCKET_H_undef_FIOGETOWN
-# endif
-# ifndef FIOSETOWN
-#  define __SYS_SOCKET_H_undef_FIOSETOWN
-# endif
-# ifndef SIOCATMARK
-#  define __SYS_SOCKET_H_undef_SIOCATMARK
-# endif
-# ifndef SIOCGPGRP
-#  define __SYS_SOCKET_H_undef_SIOCGPGRP
-# endif
-# ifndef SIOCGSTAMP
-#  define __SYS_SOCKET_H_undef_SIOCGSTAMP
-# endif
-# ifndef SIOCGSTAMPNS
-#  define __SYS_SOCKET_H_undef_SIOCGSTAMPNS
-# endif
-# ifndef SIOCSPGRP
-#  define __SYS_SOCKET_H_undef_SIOCSPGRP
-# endif
-#endif
-
-/* Get socket manipulation related informations from kernel headers.  */
-#include <asm/socket.h>
-
-#if !defined __USE_MISC && !defined __USE_GNU
-# ifdef __SYS_SOCKET_H_undef_FIOGETOWN
-#  undef __SYS_SOCKET_H_undef_FIOGETOWN
-#  undef FIOGETOWN
-# endif
-# ifdef __SYS_SOCKET_H_undef_FIOSETOWN
-#  undef __SYS_SOCKET_H_undef_FIOSETOWN
-#  undef FIOSETOWN
-# endif
-# ifdef __SYS_SOCKET_H_undef_SIOCATMARK
-#  undef __SYS_SOCKET_H_undef_SIOCATMARK
-#  undef SIOCATMARK
-# endif
-# ifdef __SYS_SOCKET_H_undef_SIOCGPGRP
-#  undef __SYS_SOCKET_H_undef_SIOCGPGRP
-#  undef SIOCGPGRP
-# endif
-# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMP
-#  undef __SYS_SOCKET_H_undef_SIOCGSTAMP
-#  undef SIOCGSTAMP
-# endif
-# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMPNS
-#  undef __SYS_SOCKET_H_undef_SIOCGSTAMPNS
-#  undef SIOCGSTAMPNS
-# endif
-# ifdef __SYS_SOCKET_H_undef_SIOCSPGRP
-#  undef __SYS_SOCKET_H_undef_SIOCSPGRP
-#  undef SIOCSPGRP
-# endif
-#endif
-
-/* Structure used to manipulate the SO_LINGER option.  */
-struct linger
-  {
-    int l_onoff;		/* Nonzero to linger on close.  */
-    int l_linger;		/* Time to linger.  */
-  };
-
-
-__BEGIN_DECLS
-
-#ifdef __USE_GNU
-/* Receive up to VLEN messages as described by VMESSAGES from socket FD.
-   Returns the number of bytes read or -1 for errors.
-
-   This function is a cancellation point and therefore not marked with
-   __THROW.  */
-extern int recvmmsg (int __fd, struct mmsghdr *__vmessages,
-		     unsigned int __vlen, int __flags,
-		     const struct timespec *__tmo);
-
-/* Send a VLEN messages as described by VMESSAGES to socket FD.
-   Return the number of datagrams successfully written or -1 for errors.
-This function is a cancellation point and therefore not marked with
-   __THROW.  */
-extern int sendmmsg (int __fd, struct mmsghdr *__vmessages,
-		     unsigned int __vlen, int __flags);
-#endif
-
-__END_DECLS
-
-#endif	/* bits/socket.h */

Added: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h (added)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h Fri Nov 30 00:04:14 2012
@@ -1,0 +1,55 @@
+/* Define enum __socket_type for Linux/HP-PARISC.
+   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 _SYS_SOCKET_H
+# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
+#endif
+
+/* Types of sockets.  */
+enum __socket_type
+{
+  SOCK_STREAM = 1,		/* Sequenced, reliable, connection-based
+				   byte streams.  */
+#define SOCK_STREAM SOCK_STREAM
+  SOCK_DGRAM = 2,		/* Connectionless, unreliable datagrams
+				   of fixed maximum length.  */
+#define SOCK_DGRAM SOCK_DGRAM
+  SOCK_RAW = 3,			/* Raw protocol interface.  */
+#define SOCK_RAW SOCK_RAW
+  SOCK_RDM = 4,			/* Reliably-delivered messages.  */
+#define SOCK_RDM SOCK_RDM
+  SOCK_SEQPACKET = 5,		/* Sequenced, reliable, connection-based,
+				   datagrams of fixed maximum length.  */
+#define SOCK_SEQPACKET SOCK_SEQPACKET
+  SOCK_DCCP = 6,		/* Datagram Congestion Control Protocol.  */
+#define SOCK_DCCP SOCK_DCCP
+  SOCK_PACKET = 10,		/* Linux specific way of getting packets
+				   at the dev level.  For writing rarp and
+				   other similar things on the user level. */
+#define SOCK_PACKET SOCK_PACKET
+
+  /* Flags to be ORed into the type parameter of socket and socketpair and
+     used for the flags parameter of paccept.  */
+
+  SOCK_CLOEXEC = 010000000,	/* Atomically set close-on-exec flag for the
+				   new descriptor(s).  */
+#define SOCK_CLOEXEC SOCK_CLOEXEC
+  SOCK_NONBLOCK = 0x40000000	/* Atomically mark descriptor(s) as
+				   non-blocking.  */
+#define SOCK_NONBLOCK SOCK_NONBLOCK
+};

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/mmap.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/mmap.c (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/mmap.c Fri Nov 30 00:04:14 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1994-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
@@ -36,7 +36,7 @@
 	
 	__ptr_t ret;
 
-	ret = INLINE_SYSCALL(mmap, 6, addr, len, prot, flags, fd, offset);
+	ret = (__ptr_t) INLINE_SYSCALL (mmap, 6, addr, len, prot, flags, fd, offset);
 
 	/* check if it's really a negative number */
 	if(((unsigned long)ret & 0xfffff000) == 0xfffff000)

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/register-dump.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/register-dump.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/register-dump.h Fri Nov 30 00:04:14 2012
@@ -17,8 +17,25 @@
    License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
+#include <sgidefs.h>
 #include <sys/uio.h>
 #include <_itoa.h>
+
+#if _MIPS_SIM == _ABIO32
+# define CTX_TYPE	struct sigcontext *
+# define CTX_REG(ctx, i)	((ctx)->sc_regs[(i)])
+# define CTX_PC(ctx)	((ctx)->sc_pc)
+# define CTX_MDHI(ctx)	((ctx)->sc_mdhi)
+# define CTX_MDLO(ctx)	((ctx)->sc_mdlo)
+# define REG_HEX_SIZE	8
+#else
+# define CTX_TYPE	ucontext_t *
+# define CTX_REG(ctx, i)	((ctx)->uc_mcontext.gregs[(i)])
+# define CTX_PC(ctx)	((ctx)->uc_mcontext.pc)
+# define CTX_MDHI(ctx)	((ctx)->uc_mcontext.mdhi)
+# define CTX_MDLO(ctx)	((ctx)->uc_mcontext.mdhi)
+# define REG_HEX_SIZE	16
+#endif
 
 /* We will print the register dump in this format:
 
@@ -32,7 +49,7 @@
 */
 
 static void
-hexvalue (unsigned long int value, char *buf, size_t len)
+hexvalue (_ITOA_WORD_TYPE value, char *buf, size_t len)
 {
   char *cp = _itoa_word (value, buf + len, 16, 0);
   while (cp > buf)
@@ -40,9 +57,9 @@
 }
 
 static void
-register_dump (int fd, struct sigcontext *ctx)
+register_dump (int fd, CTX_TYPE ctx)
 {
-  char regs[38][8];
+  char regs[38][REG_HEX_SIZE];
   struct iovec iov[38 * 2 + 10];
   size_t nr = 0;
   int i;
@@ -58,40 +75,40 @@
 
   /* Generate strings of register contents.  */
   for (i = 0; i < 32; i++)
-    hexvalue (ctx->sc_regs[i], regs[i], 8);
-  hexvalue (ctx->sc_pc, regs[32], 8);
-  hexvalue (ctx->sc_mdhi, regs[33], 8);
-  hexvalue (ctx->sc_mdlo, regs[34], 8);
+    hexvalue (CTX_REG (ctx, i), regs[i], REG_HEX_SIZE);
+  hexvalue (CTX_PC (ctx), regs[32], REG_HEX_SIZE);
+  hexvalue (CTX_MDHI (ctx), regs[33], REG_HEX_SIZE);
+  hexvalue (CTX_MDLO (ctx), regs[34], REG_HEX_SIZE);
 
   /* Generate the output.  */
   ADD_STRING ("Register dump:\n\n R0   ");
   for (i = 0; i < 8; i++)
     {
-      ADD_MEM (regs[i], 8);
+      ADD_MEM (regs[i], REG_HEX_SIZE);
       ADD_STRING (" ");
     }
   ADD_STRING ("\n R8   ");
   for (i = 8; i < 16; i++)
     {
-      ADD_MEM (regs[i], 8);
+      ADD_MEM (regs[i], REG_HEX_SIZE);
       ADD_STRING (" ");
     }
   ADD_STRING ("\n R16  ");
   for (i = 16; i < 24; i++)
     {
-      ADD_MEM (regs[i], 8);
+      ADD_MEM (regs[i], REG_HEX_SIZE);
       ADD_STRING (" ");
     }
   ADD_STRING ("\n R24  ");
   for (i = 24; i < 32; i++)
     {
-      ADD_MEM (regs[i], 8);
+      ADD_MEM (regs[i], REG_HEX_SIZE);
       ADD_STRING (" ");
     }
   ADD_STRING ("\n            pc       lo       hi\n      ");
   for (i = 32; i < 35; i++)
     {
-      ADD_MEM (regs[i], 8);
+      ADD_MEM (regs[i], REG_HEX_SIZE);
       ADD_STRING (" ");
     }
   ADD_STRING ("\n");

Modified: fsf/trunk/libc/sysdeps/sparc/fpu/libm-test-ulps
==============================================================================
--- fsf/trunk/libc/sysdeps/sparc/fpu/libm-test-ulps (original)
+++ fsf/trunk/libc/sysdeps/sparc/fpu/libm-test-ulps Fri Nov 30 00:04:14 2012
@@ -2546,15 +2546,38 @@
 ldouble: 1
 
 # pow
+Test "pow (0x0.fffffffffffff8p0, -0x1.23456789abcdfp62) == 9.8826311568054561811190162420900667121992e+252":
+ildouble: 1
+ldouble: 1
 Test "pow (0x0.ffffffp0, -0x1p24) == 2.7182819094701610539628664526874952929416":
 float: 1
 ifloat: 1
+ildouble: 1
+ldouble: 1
 Test "pow (0x0.ffffffp0, 0x1p24) == 0.3678794302077803437135155590023422899744":
 float: 1
 ifloat: 1
 Test "pow (0x1.000002p0, 0x1p24) == 7.3890552180866447284268641248075832310141":
 float: 1
 ifloat: 1
+Test "pow (10.0, -4930.0) == 1e-4930":
+ildouble: 1
+ldouble: 1
+Test "pow (10.0, 4929.0) == 1e4929":
+ildouble: 1
+ldouble: 1
+Test "pow (10.0, 4930.0) == 1e4930":
+ildouble: 1
+ldouble: 1
+Test "pow (10.0, 4931.0) == 1e4931":
+ildouble: 1
+ldouble: 1
+Test "pow (10.0, 4932.0) == 1e4932":
+ildouble: 1
+ldouble: 1
+Test "pow (1e4932, 0.75) == 1e3699":
+ildouble: 1
+ldouble: 1
 
 # pow_downward
 Test "pow_downward (1.5, 1.03125) == 1.519127098714743184071644334163037684948":
@@ -3643,6 +3666,8 @@
 Function: "pow":
 float: 1
 ifloat: 1
+ildouble: 1
+ldouble: 1
 
 Function: "pow_downward":
 float: 1

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