diff --git a/SOURCES/glibc-fedora-elf-ORIGIN.patch b/SOURCES/glibc-fedora-elf-ORIGIN.patch
deleted file mode 100644
index 581f2cf..0000000
--- a/SOURCES/glibc-fedora-elf-ORIGIN.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 207e77fd3f0a94acdf0557608dd4f10ce0e0f22f Mon Sep 17 00:00:00 2001
-From: Andreas Schwab <schwab@redhat.com>
-Date: Mon, 9 May 2011 10:55:58 +0200
-Subject: [PATCH] Never leave $ORIGIN unexpanded
-
-* elf/dl-load.c (is_dst): Remove parameter secure, all callers
-changed.  Move check for valid use of $ORIGIN ...
-(_dl_dst_substitute): ... here.  Reset check_for_trusted when a
-path element is skipped.
-
----
- ChangeLog     |    7 +++++++
- elf/dl-load.c |   34 ++++++++++++++++------------------
- 2 files changed, 23 insertions(+), 18 deletions(-)
-
-diff --git glibc-2.17-c758a686/elf/dl-load.c glibc-2.17-c758a686/elf/dl-load.c
-index 18a83d2..6e16a9a 100644
---- glibc-2.17-c758a686/elf/dl-load.c
-+++ glibc-2.17-c758a686/elf/dl-load.c
-@@ -249,8 +249,7 @@ is_trusted_path_normalize (const char *path, size_t len)
- 
- 
- static size_t
--is_dst (const char *start, const char *name, const char *str,
--	int is_path, int secure)
-+is_dst (const char *start, const char *name, const char *str, int is_path)
- {
-   size_t len;
-   bool is_curly = false;
-@@ -279,12 +278,6 @@ is_dst (const char *start, const char *name, const char *str,
- 	   && (!is_path || name[len] != ':'))
-     return 0;
- 
--  if (__builtin_expect (secure, 0)
--      && ((name[len] != '\0' && name[len] != '/'
--	   && (!is_path || name[len] != ':'))
--	  || (name != start + 1 && (!is_path || name[-2] != ':'))))
--    return 0;
--
-   return len;
- }
- 
-@@ -299,13 +292,10 @@ _dl_dst_count (const char *name, int is_path)
-     {
-       size_t len;
- 
--      /* $ORIGIN is not expanded for SUID/GUID programs (except if it
--	 is $ORIGIN alone) and it must always appear first in path.  */
-       ++name;
--      if ((len = is_dst (start, name, "ORIGIN", is_path,
--			 INTUSE(__libc_enable_secure))) != 0
--	  || (len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0
--	  || (len = is_dst (start, name, "LIB", is_path, 0)) != 0)
-+      if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0
-+	  || (len = is_dst (start, name, "PLATFORM", is_path)) != 0
-+	  || (len = is_dst (start, name, "LIB", is_path)) != 0)
- 	++cnt;
- 
-       name = strchr (name + len, '$');
-@@ -338,9 +328,16 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result,
- 	  size_t len;
- 
- 	  ++name;
--	  if ((len = is_dst (start, name, "ORIGIN", is_path,
--			     INTUSE(__libc_enable_secure))) != 0)
-+	  if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0)
- 	    {
-+	      /* For SUID/GUID programs $ORIGIN must always appear
-+		 first in a path element.  */
-+	      if (__builtin_expect (INTUSE(__libc_enable_secure), 0)
-+		  && ((name[len] != '\0' && name[len] != '/'
-+		       && (!is_path || name[len] != ':'))
-+		      || (name != start + 1 && (!is_path || name[-2] != ':'))))
-+		repl = (const char *) -1;
-+	      else
- #ifndef SHARED
- 	      if (l == NULL)
- 		repl = _dl_get_origin ();
-@@ -351,9 +348,9 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result,
- 	      check_for_trusted = (INTUSE(__libc_enable_secure)
- 				   && l->l_type == lt_executable);
- 	    }
--	  else if ((len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0)
-+	  else if ((len = is_dst (start, name, "PLATFORM", is_path)) != 0)
- 	    repl = GLRO(dl_platform);
--	  else if ((len = is_dst (start, name, "LIB", is_path, 0)) != 0)
-+	  else if ((len = is_dst (start, name, "LIB", is_path)) != 0)
- 	    repl = DL_DST_LIB;
- 
- 	  if (repl != NULL && repl != (const char *) -1)
-@@ -373,6 +370,7 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result,
- 		 element, but keep an empty element at the end.  */
- 	      if (wp == result && is_path && *name == ':' && name[1] != '\0')
- 		++name;
-+	      check_for_trusted = false;
- 	    }
- 	  else
- 	    /* No DST we recognize.  */
diff --git a/SOURCES/glibc-rh1307241-1.patch b/SOURCES/glibc-rh1307241-1.patch
new file mode 100644
index 0000000..b33a8e9
--- /dev/null
+++ b/SOURCES/glibc-rh1307241-1.patch
@@ -0,0 +1,455 @@
+The upstream patch is backported by excluding a dependency in
+stdlib/Makefile whose task is to ensure that locales are generated before
+the relevant tests are run. The dependency was added in order to fix
+SWBZ#18969 which is triggered when running `make check' for a specific
+subdirectory (stdlib here). Instead of this, the locales necessary for the
+test are generated via an addition in localedata/Makefile.
+
+commit 985fc132f23dbb83de76c5af9e783ef1b5900148
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Mon Apr 4 15:18:13 2016 +0200
+
+    strfmon_l: Use specified locale for number formatting [BZ #19633]
+
+Index: b/include/printf.h
+===================================================================
+--- a/include/printf.h
++++ b/include/printf.h
+@@ -1,6 +1,7 @@
+ #ifndef	_PRINTF_H
+ 
+ #include <stdio-common/printf.h>
++#include <xlocale.h>
+ 
+ /* Now define the internal interfaces.  */
+ extern int __printf_fphex (FILE *, const struct printf_info *,
+@@ -8,5 +9,8 @@ extern int __printf_fphex (FILE *, const
+ extern int __printf_fp (FILE *, const struct printf_info *,
+ 			const void *const *);
+ libc_hidden_proto (__printf_fp)
++extern int __printf_fp_l (FILE *, locale_t, const struct printf_info *,
++			  const void *const *);
++libc_hidden_proto (__printf_fp_l)
+ 
+ #endif
+Index: b/locale/localeinfo.h
+===================================================================
+--- a/locale/localeinfo.h
++++ b/locale/localeinfo.h
+@@ -290,6 +290,27 @@ extern __thread struct __locale_data *co
+ 
+ #endif
+ 
++/* Extract CATEGORY locale's string for ITEM.  */
++static inline const char *
++_nl_lookup (locale_t l, int category, int item)
++{
++  return l->__locales[category]->values[_NL_ITEM_INDEX (item)].string;
++}
++
++/* Extract CATEGORY locale's wide string for ITEM.  */
++static inline const wchar_t *
++_nl_lookup_wstr (locale_t l, int category, int item)
++{
++  return (wchar_t *) l->__locales[category]
++    ->values[_NL_ITEM_INDEX (item)].wstr;
++}
++
++/* Extract the CATEGORY locale's word for ITEM.  */
++static inline uint32_t
++_nl_lookup_word (locale_t l, int category, int item)
++{
++  return l->__locales[category]->values[_NL_ITEM_INDEX (item)].word;
++}
+ 
+ /* Default search path if no LOCPATH environment variable.  */
+ extern const char _nl_default_locale_path[] attribute_hidden;
+Index: b/stdio-common/printf_fp.c
+===================================================================
+--- a/stdio-common/printf_fp.c
++++ b/stdio-common/printf_fp.c
+@@ -153,9 +153,9 @@ static wchar_t *group_number (wchar_t *b
+ 
+ 
+ int
+-___printf_fp (FILE *fp,
+-	      const struct printf_info *info,
+-	      const void *const *args)
++___printf_fp_l (FILE *fp, locale_t loc,
++		const struct printf_info *info,
++		const void *const *args)
+ {
+   /* The floating-point value to output.  */
+   union
+@@ -263,18 +263,19 @@ ___printf_fp (FILE *fp,
+   /* Figure out the decimal point character.  */
+   if (info->extra == 0)
+     {
+-      decimal = _NL_CURRENT (LC_NUMERIC, DECIMAL_POINT);
+-      decimalwc = _NL_CURRENT_WORD (LC_NUMERIC, _NL_NUMERIC_DECIMAL_POINT_WC);
++      decimal = _nl_lookup (loc, LC_NUMERIC, DECIMAL_POINT);
++      decimalwc = _nl_lookup_word
++	(loc, LC_NUMERIC, _NL_NUMERIC_DECIMAL_POINT_WC);
+     }
+   else
+     {
+-      decimal = _NL_CURRENT (LC_MONETARY, MON_DECIMAL_POINT);
++      decimal = _nl_lookup (loc, LC_MONETARY, MON_DECIMAL_POINT);
+       if (*decimal == '\0')
+-	decimal = _NL_CURRENT (LC_NUMERIC, DECIMAL_POINT);
+-      decimalwc = _NL_CURRENT_WORD (LC_MONETARY,
++	decimal = _nl_lookup (loc, LC_NUMERIC, DECIMAL_POINT);
++      decimalwc = _nl_lookup_word (loc, LC_MONETARY,
+ 				    _NL_MONETARY_DECIMAL_POINT_WC);
+       if (decimalwc == L'\0')
+-	decimalwc = _NL_CURRENT_WORD (LC_NUMERIC,
++	decimalwc = _nl_lookup_word (loc, LC_NUMERIC,
+ 				      _NL_NUMERIC_DECIMAL_POINT_WC);
+     }
+   /* The decimal point character must not be zero.  */
+@@ -284,9 +285,9 @@ ___printf_fp (FILE *fp,
+   if (info->group)
+     {
+       if (info->extra == 0)
+-	grouping = _NL_CURRENT (LC_NUMERIC, GROUPING);
++	grouping = _nl_lookup (loc, LC_NUMERIC, GROUPING);
+       else
+-	grouping = _NL_CURRENT (LC_MONETARY, MON_GROUPING);
++	grouping = _nl_lookup (loc, LC_MONETARY, MON_GROUPING);
+ 
+       if (*grouping <= 0 || *grouping == CHAR_MAX)
+ 	grouping = NULL;
+@@ -296,19 +297,20 @@ ___printf_fp (FILE *fp,
+ 	  if (wide)
+ 	    {
+ 	      if (info->extra == 0)
+-		thousands_sepwc =
+-		  _NL_CURRENT_WORD (LC_NUMERIC, _NL_NUMERIC_THOUSANDS_SEP_WC);
++		thousands_sepwc = _nl_lookup_word
++		  (loc, LC_NUMERIC, _NL_NUMERIC_THOUSANDS_SEP_WC);
+ 	      else
+ 		thousands_sepwc =
+-		  _NL_CURRENT_WORD (LC_MONETARY,
++		  _nl_lookup_word (loc, LC_MONETARY,
+ 				    _NL_MONETARY_THOUSANDS_SEP_WC);
+ 	    }
+ 	  else
+ 	    {
+ 	      if (info->extra == 0)
+-		thousands_sep = _NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP);
++		thousands_sep = _nl_lookup (loc, LC_NUMERIC, THOUSANDS_SEP);
+ 	      else
+-		thousands_sep = _NL_CURRENT (LC_MONETARY, MON_THOUSANDS_SEP);
++		thousands_sep = _nl_lookup
++		  (loc, LC_MONETARY, MON_THOUSANDS_SEP);
+ 	    }
+ 
+ 	  if ((wide && thousands_sepwc == L'\0')
+@@ -1170,9 +1172,11 @@ ___printf_fp (FILE *fp,
+ 	  size_t decimal_len;
+ 	  size_t thousands_sep_len;
+ 	  wchar_t *copywc;
+-	  size_t factor = (info->i18n
+-			   ? _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MB_CUR_MAX)
+-			   : 1);
++	  size_t factor;
++	  if (info->i18n)
++	    factor = _nl_lookup_word (loc, LC_CTYPE, _NL_CTYPE_MB_CUR_MAX);
++	  else
++	    factor = 1;
+ 
+ 	  decimal_len = strlen (decimal);
+ 
+@@ -1243,8 +1247,18 @@ ___printf_fp (FILE *fp,
+   }
+   return done;
+ }
++ldbl_hidden_def (___printf_fp_l, __printf_fp_l)
++ldbl_strong_alias (___printf_fp_l, __printf_fp_l)
++
++int
++___printf_fp (FILE *fp, const struct printf_info *info,
++	      const void *const *args)
++{
++  return ___printf_fp_l (fp, _NL_CURRENT_LOCALE, info, args);
++}
+ ldbl_hidden_def (___printf_fp, __printf_fp)
+ ldbl_strong_alias (___printf_fp, __printf_fp)
++
+ 
+ /* Return the number of extra grouping characters that will be inserted
+    into a number with INTDIG_MAX integer digits.  */
+Index: b/stdlib/Makefile
+===================================================================
+--- a/stdlib/Makefile
++++ b/stdlib/Makefile
+@@ -71,7 +71,7 @@ tests		:= tst-strtol tst-strtod testmb t
+ 		   tst-qsort2 tst-makecontext2 tst-strtod6 tst-unsetenv1    \
+ 		   tst-makecontext3 bug-getcontext bug-fmtmsg1		    \
+ 		   tst-secure-getenv tst-strtod-overflow tst-strtod-round   \
+-		   tst-tininess tst-strtod-underflow
++		   tst-tininess tst-strtod-underflow tst-strfmon_l
+ tests-static	:= tst-secure-getenv
+ 
+ include ../Makeconfig
+Index: b/stdlib/strfmon_l.c
+===================================================================
+--- a/stdlib/strfmon_l.c
++++ b/stdlib/strfmon_l.c
+@@ -68,9 +68,6 @@
+ #define _NL_CURRENT(category, item) \
+   (current->values[_NL_ITEM_INDEX (item)].string)
+ 
+-extern int __printf_fp (FILE *, const struct printf_info *,
+-			const void *const *);
+-libc_hidden_proto (__printf_fp)
+ /* This function determines the number of digit groups in the output.
+    The definition is in printf_fp.c.  */
+ extern unsigned int __guess_grouping (unsigned int intdig_max,
+@@ -532,7 +529,7 @@ __vstrfmon_l (char *s, size_t maxsize, _
+       info.extra = 1;		/* This means use values from LC_MONETARY.  */
+ 
+       ptr = &fpnum;
+-      done = __printf_fp (&f._sbf._f, &info, &ptr);
++      done = __printf_fp_l (&f._sbf._f, loc, &info, &ptr);
+       if (done < 0)
+ 	return -1;
+ 
+Index: b/stdlib/tst-strfmon_l.c
+===================================================================
+--- /dev/null
++++ b/stdlib/tst-strfmon_l.c
+@@ -0,0 +1,220 @@
++/* Test locale dependence of strfmon_l.
++   Copyright (C) 2016 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 <stdbool.h>
++#include <stdio.h>
++#include <monetary.h>
++#include <string.h>
++#include <stdlib.h>
++#include <locale.h>
++
++static const char *const en_us_name = "en_US.ISO-8859-1";
++
++/* Locale value to be used by tests.  */
++static locale_t loc;
++static const char *loc_name;
++
++/* Set the global locale to GLOBAL_NAME, and the locale referenced by
++   the loc variable above to LOCAL_NAME.  */
++static void
++init_loc (const char *global_name, const char *local_name)
++{
++  loc = newlocale (LC_ALL_MASK, local_name, 0);
++  if (loc == 0)
++    {
++      printf ("error: newlocale (%s): %m\n", local_name);
++      abort ();
++    }
++  loc_name = local_name;
++
++  if (setlocale (LC_ALL, global_name) == NULL)
++    {
++      printf ("error: setlocale (%s): %m\n", global_name);
++      abort ();
++    }
++}
++
++/* Expected strings for a positive or negative value.  */
++struct testcase
++{
++  const char *i;                /* %i */
++  const char *n;                /* %n */
++  const char *i_ungrouped;      /* %^i */
++  const char *n_ungrouped;      /* %^n */
++};
++
++/* Collected expected strings for both positive and negative
++   values.  */
++struct testcase_pair
++{
++  struct testcase positive;     /* 1234567.89 */
++  struct testcase negative;     /* -1234567.89 */
++};
++
++static bool errors;
++
++/* Test one value using the locale loc.  */
++static void
++test_one (const char *format, double value, const char *expected)
++{
++  static char actual[64];
++  int result = strfmon_l (actual, sizeof (actual), loc, format, value);
++  if (result < 0)
++    {
++      printf ("error: locale %s, format \"%s\", value %g: strfmon_l: %m\n",
++              loc_name, format, value);
++      errors = true;
++    }
++  else if (strcmp (actual, expected) != 0)
++    {
++      printf ("error: locale %s, format \"%s\", value %g: mismatch\n",
++              loc_name, format, value);
++      printf ("error:   expected: \"%s\"\n", expected);
++      printf ("error:   actual:   \"%s\"\n", actual);
++      errors = true;
++    }
++}
++
++static void
++test_pair (const struct testcase_pair *pair)
++{
++  double positive = 1234567.89;
++  test_one ("%i", positive, pair->positive.i);
++  test_one ("%n", positive, pair->positive.n);
++  test_one ("%^i", positive, pair->positive.i_ungrouped);
++  test_one ("%^n", positive, pair->positive.n_ungrouped);
++  double negative = -1234567.89;
++  test_one ("%i", negative, pair->negative.i);
++  test_one ("%n", negative, pair->negative.n);
++  test_one ("%^i", negative, pair->negative.i_ungrouped);
++  test_one ("%^n", negative, pair->negative.n_ungrouped);
++}
++
++static const struct testcase_pair en_us =
++  {
++    {
++      "USD 1,234,567.89", "$1,234,567.89",
++      "USD 1234567.89", "$1234567.89"
++    },
++    {
++      "-USD 1,234,567.89", "-$1,234,567.89",
++      "-USD 1234567.89", "-$1234567.89"
++    }
++  };
++
++static void
++test_en_us (const char *other_name)
++{
++  init_loc (other_name, en_us_name);
++  test_pair (&en_us);
++  freelocale (loc);
++}
++
++struct locale_pair
++{
++  const char *locale_name;
++  struct testcase_pair pair;
++};
++
++static const struct locale_pair tests[] =
++  {
++    {
++      "de_DE.UTF-8",
++      {
++        {
++         "1.234.567,89 EUR", "1.234.567,89 \u20ac",
++         "1234567,89 EUR", "1234567,89 \u20ac"
++        },
++        {
++         "-1.234.567,89 EUR", "-1.234.567,89 \u20ac",
++         "-1234567,89 EUR", "-1234567,89 \u20ac"
++        }
++      },
++    },
++    {
++      "tg_TJ.UTF-8",
++      {
++        {
++          "1 234 567.89 TJS", "1 234 567.89 \u0440\u0443\u0431",
++          "1234567.89 TJS", "1234567.89 \u0440\u0443\u0431"
++        },
++        {
++          "-1 234 567.89 TJS", "-1 234 567.89 \u0440\u0443\u0431",
++          "-1234567.89 TJS", "-1234567.89 \u0440\u0443\u0431"
++        }
++      }
++    },
++    {
++      "te_IN.UTF-8",
++      {
++        {
++          "INR12,34,567.89", "\u20b912,34,567.89",
++          "INR1234567.89", "\u20b91234567.89"
++        },
++        {
++          "-INR12,34,567.89", "-\u20b912,34,567.89",
++          "-INR1234567.89", "-\u20b91234567.89"
++        }
++      }
++    },
++    {
++      "bn_IN.UTF-8",
++      {
++        {
++          "INR 12,345,67.89", "\u20b9 12,345,67.89",
++          "INR 1234567.89", "\u20b9 1234567.89"
++        },
++        {
++          "-INR 12,345,67.89", "-\u20b9 12,345,67.89",
++          "-INR 1234567.89", "-\u20b9 1234567.89"
++        }
++      }
++    },
++    {
++      "el_GR.UTF-8",
++      {
++        {
++          "1.234.567,89EUR", "1.234.567,89\u20ac",
++          "1234567,89EUR", "1234567,89\u20ac"
++        },
++        {
++          "-EUR1.234.567,89", "-\u20ac1.234.567,89",
++          "-EUR1234567,89", "-\u20ac1234567,89",
++        }
++      }
++    },
++    {}
++  };
++
++static int
++do_test (void)
++{
++  for (const struct locale_pair *test = tests;
++       test->locale_name != NULL; ++test)
++    {
++      init_loc (en_us_name, test->locale_name);
++      test_pair (&test->pair);
++      freelocale (loc);
++      test_en_us (test->locale_name);
++    }
++
++  return errors;
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+Index: b/localedata/Makefile
+===================================================================
+--- a/localedata/Makefile
++++ b/localedata/Makefile
+@@ -120,7 +120,7 @@ LOCALES := de_DE.ISO-8859-1 de_DE.UTF-8
+ 	   hr_HR.ISO-8859-2 sv_SE.ISO-8859-1 ja_JP.SJIS fr_FR.ISO-8859-1 \
+ 	   nb_NO.ISO-8859-1 nn_NO.ISO-8859-1 tr_TR.UTF-8 cs_CZ.UTF-8 \
+ 	   zh_TW.EUC-TW fa_IR.UTF-8 fr_FR.UTF-8 ja_JP.UTF-8 si_LK.UTF-8 \
+-	   tr_TR.ISO-8859-9
++	   tr_TR.ISO-8859-9 tg_TJ.UTF-8 te_IN.UTF-8 bn_IN.UTF-8 el_GR.UTF-8
+ LOCALE_SRCS := $(shell echo "$(LOCALES)"|sed 's/\([^ .]*\)[^ ]*/\1/g')
+ CHARMAPS := $(shell echo "$(LOCALES)" | \
+ 		    sed -e 's/[^ .]*[.]\([^ ]*\)/\1/g' -e s/SJIS/SHIFT_JIS/g)
diff --git a/SOURCES/glibc-rh1307241-2.patch b/SOURCES/glibc-rh1307241-2.patch
new file mode 100644
index 0000000..3a931f0
--- /dev/null
+++ b/SOURCES/glibc-rh1307241-2.patch
@@ -0,0 +1,56 @@
+commit b1b8f5d89d06a994773e22ad4b7fe1036b37f8ab
+Author: Stefan Liebler <stli@linux.vnet.ibm.com>
+Date:   Thu Apr 14 12:21:53 2016 +0200
+
+    Fix strfmon_l: Use specified locale for number formatting [BZ #19633]
+    
+    The commit 985fc132f23dbb83de76c5af9e783ef1b5900148
+    "strfmon_l: Use specified locale for number formatting [BZ #19633]"
+    introduced an elf/check-abi-libc testfailure due to __printf_fp_l
+    on architectures which use sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h.
+    
+    This patch uses libc_hidden_def instead of ldbl_hidden_def.
+    The ldbl_strong_alias is removed due to the rename of ___printf_fp_l
+    to __printf_fp_l.
+    
+    ChangeLog:
+    
+            * stdio-common/printf_fp.c (__printf_fp_l):
+            Rename ___printf_fp_l to __printf_fp_l and
+            remove strong alias. Use libc_hidden_def instead
+            of ldbl_hidden_def macro.
+
+Index: b/stdio-common/printf_fp.c
+===================================================================
+--- a/stdio-common/printf_fp.c
++++ b/stdio-common/printf_fp.c
+@@ -153,9 +153,9 @@ static wchar_t *group_number (wchar_t *b
+ 
+ 
+ int
+-___printf_fp_l (FILE *fp, locale_t loc,
+-		const struct printf_info *info,
+-		const void *const *args)
++__printf_fp_l (FILE *fp, locale_t loc,
++	       const struct printf_info *info,
++	       const void *const *args)
+ {
+   /* The floating-point value to output.  */
+   union
+@@ -1247,14 +1247,13 @@ ___printf_fp_l (FILE *fp, locale_t loc,
+   }
+   return done;
+ }
+-ldbl_hidden_def (___printf_fp_l, __printf_fp_l)
+-ldbl_strong_alias (___printf_fp_l, __printf_fp_l)
++libc_hidden_def (__printf_fp_l)
+ 
+ int
+ ___printf_fp (FILE *fp, const struct printf_info *info,
+ 	      const void *const *args)
+ {
+-  return ___printf_fp_l (fp, _NL_CURRENT_LOCALE, info, args);
++  return __printf_fp_l (fp, _NL_CURRENT_LOCALE, info, args);
+ }
+ ldbl_hidden_def (___printf_fp, __printf_fp)
+ ldbl_strong_alias (___printf_fp, __printf_fp)
diff --git a/SOURCES/glibc-rh1349967.patch b/SOURCES/glibc-rh1349967.patch
new file mode 100644
index 0000000..bb13cfb
--- /dev/null
+++ b/SOURCES/glibc-rh1349967.patch
@@ -0,0 +1,18 @@
+Do not define IN_MODULE.  The IS_IN framework will define it for us.
+This fixes a macro redefinition warning.
+
+rtkaio is not upstream, so there is no upstream patch.
+
+diff --git a/rtkaio/Makefile b/rtkaio/Makefile
+index 066a1232e1bae283..cf42e0cbbdf04134 100644
+--- a/rtkaio/Makefile
++++ b/rtkaio/Makefile
+@@ -69,7 +69,7 @@ CFLAGS-kaio_librt-cancellation.c = -fasynchronous-unwind-tables
+ 
+ LDFLAGS-rtkaio.so = -Wl,-soname=lib$(libprefix)rt.so$(librt.so-version) \
+ 		    -Wl,--enable-new-dtags,-z,nodelete
+-CPPFLAGS-librtkaio += -UIN_MODULE -DIN_MODULE=MODULE_librt \
++CPPFLAGS-librtkaio += \
+ 		      -UMODULE_NAME -DMODULE_NAME=librt \
+ 		      -UIS_IN_librt -DIS_IN_librt=1 \
+ 		      -I$(..)rt
diff --git a/SOURCES/glibc-rh1349982.patch b/SOURCES/glibc-rh1349982.patch
new file mode 100644
index 0000000..c5ee144
--- /dev/null
+++ b/SOURCES/glibc-rh1349982.patch
@@ -0,0 +1,32 @@
+commit 0ce3b29d56632acd1c393714cc8f189496bdeb47
+Author: Carlos O'Donell <carlos@systemhalted.org>
+Date:   Fri Jun 24 13:50:22 2016 -0400
+
+    Resolves: #1349906
+
+    - Properly handle more invalid --install-langs arguments (#1349906).
+
+diff -Nrup a/releng/build-locale-archive.c b/releng/build-locale-archive.c
+--- a/releng/build-locale-archive.c	2018-05-03 11:31:08.474376209 -0400
++++ b/releng/build-locale-archive.c	2018-05-03 11:35:21.001309474 -0400
+@@ -640,7 +640,7 @@ int main (int argc, char *argv[])
+   char *lang;
+   int install_langs_count = 0;
+   char *install_langs_arg, *ila_start;
+-  char **install_langs_list;
++  char **install_langs_list = NULL;
+   unsigned int cnt = 0;
+   struct locarhandle tmpl_ah = {};
+ 
+@@ -713,6 +713,11 @@ int main (int argc, char *argv[])
+                   install_langs_arg = NULL;
+                 }
+ 	      free (ila_start);
++
++              /* Reject an entire string made up of delimiters.  */
++              if (install_langs_count == 0)
++                break;
++
+ 	      /* Copy the list.  */
+ 	      install_langs_list = (char **)xmalloc (sizeof(char *) * install_langs_count);
+ 	      install_langs_arg = ila_start = strdup (optarg);
diff --git a/SOURCES/glibc-rh1372304-1.patch b/SOURCES/glibc-rh1372304-1.patch
new file mode 100644
index 0000000..cef5c2c
--- /dev/null
+++ b/SOURCES/glibc-rh1372304-1.patch
@@ -0,0 +1,506 @@
+While the original upstream commit  adds several error-checked wrappers
+around pthread functions in test-skeleton.c, a later upstream change
+(c23de0aacb, containing the new support/ infrastructure for testing) removed
+these wrappers and replaced them with an include declaration that provides
+these functions (support/xthread.h). This backport does the same, because
+the same change (new support/ infrastructure) is already included in RHEL as
+well.
+
+Also note: The correct sourceware bug number is 19946. The original upstream
+commit message refers to an incorrect one.
+
+commit 7e625f7e85b4e88f10dbde35a0641742af581806
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Fri Aug 26 19:27:16 2016 +0200
+
+    nptl: Avoid expected SIGALRM in most tests [BZ #20432]
+    
+    Before this change, several tests did not detect early deadlocks
+    because they used SIGALRM as the expected signal, and they ran
+    for the full default TIMEOUT seconds.
+    
+    This commit adds a new delayed_exit function to the test skeleton,
+    along with several error-checking wrappers to pthread functions.
+    Additional error checking is introduced into several tests.
+
+Index: b/nptl/tst-cond3.c
+===================================================================
+--- a/nptl/tst-cond3.c
++++ b/nptl/tst-cond3.c
+@@ -22,6 +22,10 @@
+ #include <string.h>
+ #include <unistd.h>
+ 
++static int do_test (void);
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+ 
+ /* Note that this test requires more than the standard.  It is
+    required that there are no spurious wakeups if only more readers
+@@ -50,7 +54,8 @@ tf (void *arg)
+     }
+ 
+   /* This call should never return.  */
+-  pthread_cond_wait (&cond, &mut);
++  xpthread_cond_wait (&cond, &mut);
++  puts ("error: pthread_cond_wait in tf returned");
+ 
+   /* We should never get here.  */
+   exit (1);
+@@ -96,17 +101,11 @@ do_test (void)
+ 	}
+     }
+ 
+-  /* Set an alarm for 1 second.  The wrapper will expect this.  */
+-  alarm (1);
++  delayed_exit (1);
+ 
+   /* This call should never return.  */
+-  pthread_cond_wait (&cond, &mut);
++  xpthread_cond_wait (&cond, &mut);
+ 
+-  puts ("cond_wait returned");
++  puts ("error: pthread_cond_wait in do_test returned");
+   return 1;
+ }
+-
+-
+-#define EXPECTED_SIGNAL SIGALRM
+-#define TEST_FUNCTION do_test ()
+-#include "../test-skeleton.c"
+Index: b/nptl/tst-eintr1.c
+===================================================================
+--- a/nptl/tst-eintr1.c
++++ b/nptl/tst-eintr1.c
+@@ -23,6 +23,11 @@
+ #include <stdlib.h>
+ #include <string.h>
+ 
++static int do_test (void);
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
++
+ #include "eintr.c"
+ 
+ 
+@@ -92,13 +97,8 @@ do_test (void)
+ 	}
+     }
+ 
++  delayed_exit (3);
++  /* This call must never return.  */
+   (void) tf1 (NULL);
+-  /* NOTREACHED */
+-
+-  return 0;
++  return 1;
+ }
+-
+-#define EXPECTED_SIGNAL SIGALRM
+-#define TIMEOUT 3
+-#define TEST_FUNCTION do_test ()
+-#include "../test-skeleton.c"
+Index: b/nptl/tst-eintr2.c
+===================================================================
+--- a/nptl/tst-eintr2.c
++++ b/nptl/tst-eintr2.c
+@@ -24,6 +24,11 @@
+ #include <string.h>
+ #include <sys/time.h>
+ 
++static int do_test (void);
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
++
+ #include "eintr.c"
+ 
+ 
+@@ -103,6 +108,7 @@ do_test (void)
+       exit (1);
+     }
+ 
++  delayed_exit (3);
+   /* This call must never return.  */
+   e = pthread_mutex_lock (&m1);
+   printf ("main: mutex_lock returned: %s\n",
+@@ -110,8 +116,3 @@ do_test (void)
+ 
+   return 1;
+ }
+-
+-#define EXPECTED_SIGNAL SIGALRM
+-#define TIMEOUT 3
+-#define TEST_FUNCTION do_test ()
+-#include "../test-skeleton.c"
+Index: b/nptl/tst-eintr3.c
+===================================================================
+--- a/nptl/tst-eintr3.c
++++ b/nptl/tst-eintr3.c
+@@ -23,6 +23,11 @@
+ #include <stdlib.h>
+ #include <string.h>
+ 
++static int do_test (void);
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
++
+ #include "eintr.c"
+ 
+ 
+@@ -56,16 +61,9 @@ do_test (void)
+       exit (1);
+     }
+ 
++  delayed_exit (1);
+   /* This call must never return.  */
+-  e = pthread_join (th, NULL);
+-
+-  if (e == EINTR)
+-    puts ("pthread_join returned with EINTR");
+-
+-  return 0;
++  xpthread_join (th);
++  puts ("error: pthread_join returned");
++  return 1;
+ }
+-
+-#define EXPECTED_SIGNAL SIGALRM
+-#define TIMEOUT 1
+-#define TEST_FUNCTION do_test ()
+-#include "../test-skeleton.c"
+Index: b/nptl/tst-eintr4.c
+===================================================================
+--- a/nptl/tst-eintr4.c
++++ b/nptl/tst-eintr4.c
+@@ -23,6 +23,11 @@
+ #include <stdlib.h>
+ #include <string.h>
+ 
++static int do_test (void);
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
++
+ #include "eintr.c"
+ 
+ 
+@@ -40,16 +45,9 @@ do_test (void)
+       exit (1);
+     }
+ 
++  delayed_exit (1);
+   /* This call must never return.  */
+-  int e = pthread_barrier_wait (&b);
+-
+-  if (e == EINTR)
+-    puts ("pthread_join returned with EINTR");
+-
+-  return 0;
++  xpthread_barrier_wait (&b);
++  puts ("error: pthread_barrier_wait returned");
++  return 1;
+ }
+-
+-#define EXPECTED_SIGNAL SIGALRM
+-#define TIMEOUT 1
+-#define TEST_FUNCTION do_test ()
+-#include "../test-skeleton.c"
+Index: b/nptl/tst-eintr5.c
+===================================================================
+--- a/nptl/tst-eintr5.c
++++ b/nptl/tst-eintr5.c
+@@ -24,6 +24,11 @@
+ #include <string.h>
+ #include <sys/time.h>
+ 
++static int do_test (void);
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
++
+ #include "eintr.c"
+ 
+ 
+@@ -66,15 +71,9 @@ do_test (void)
+       exit (1);
+     }
+ 
++  delayed_exit (3);
+   /* This call must never return.  */
+-  e = pthread_cond_wait (&c, &m);
+-  printf ("main: cond_wait returned: %s\n",
+-	  strerror_r (e, buf, sizeof (buf)));
+-
+-  return 0;
++  xpthread_cond_wait (&c, &m);
++  puts ("error: pthread_cond_wait returned");
++  return 1;
+ }
+-
+-#define EXPECTED_SIGNAL SIGALRM
+-#define TIMEOUT 3
+-#define TEST_FUNCTION do_test ()
+-#include "../test-skeleton.c"
+Index: b/nptl/tst-exit2.c
+===================================================================
+--- a/nptl/tst-exit2.c
++++ b/nptl/tst-exit2.c
+@@ -4,6 +4,10 @@
+ #include <string.h>
+ #include <unistd.h>
+ 
++static int do_test (void);
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+ 
+ static void *
+ tf (void *arg)
+@@ -28,13 +32,11 @@ do_test (void)
+       return 1;
+     }
+ 
++  delayed_exit (1);
++
+   /* Terminate only this thread.  */
+   pthread_exit (NULL);
+ 
+   /* NOTREACHED */
+   return 1;
+ }
+-
+-#define EXPECTED_SIGNAL SIGALRM
+-#define TEST_FUNCTION do_test ()
+-#include "../test-skeleton.c"
+Index: b/nptl/tst-exit3.c
+===================================================================
+--- a/nptl/tst-exit3.c
++++ b/nptl/tst-exit3.c
+@@ -5,6 +5,10 @@
+ #include <string.h>
+ #include <unistd.h>
+ 
++static int do_test (void);
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+ 
+ static pthread_barrier_t b;
+ 
+@@ -69,13 +73,11 @@ do_test (void)
+       exit (1);
+     }
+ 
++  delayed_exit (3);
++
+   /* Terminate only this thread.  */
+   pthread_exit (NULL);
+ 
+   /* NOTREACHED */
+   return 1;
+ }
+-
+-#define EXPECTED_SIGNAL SIGALRM
+-#define TEST_FUNCTION do_test ()
+-#include "../test-skeleton.c"
+Index: b/nptl/tst-mutex6.c
+===================================================================
+--- a/nptl/tst-mutex6.c
++++ b/nptl/tst-mutex6.c
+@@ -22,6 +22,11 @@
+ #include <unistd.h>
+ #include <errno.h>
+ 
++#ifndef TEST_FUNCTION
++static int do_test (void);
++# define TEST_FUNCTION do_test ()
++#endif
++#include "../test-skeleton.c"
+ 
+ #ifndef ATTR
+ pthread_mutexattr_t *attr;
+@@ -58,18 +63,10 @@ do_test (void)
+       return 1;
+     }
+ 
+-  /* Set an alarm for 1 second.  The wrapper will expect this.  */
+-  alarm (1);
+-
++  delayed_exit (1);
+   /* This call should never return.  */
+-  pthread_mutex_lock (&m);
++  xpthread_mutex_lock (&m);
+ 
+   puts ("2nd mutex_lock returned");
+   return 1;
+ }
+-
+-#define EXPECTED_SIGNAL SIGALRM
+-#ifndef TEST_FUNCTION
+-# define TEST_FUNCTION do_test ()
+-#endif
+-#include "../test-skeleton.c"
+Index: b/nptl/tst-rwlock5.c
+===================================================================
+--- a/nptl/tst-rwlock5.c
++++ b/nptl/tst-rwlock5.c
+@@ -22,6 +22,10 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ 
++static int do_test (void);
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+ 
+ static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
+ static pthread_rwlock_t r;
+@@ -65,22 +69,16 @@ do_test (void)
+       return 1;
+     }
+ 
+-  /* Set an alarm for 1 second.  The wrapper will expect this.  */
+-  alarm (1);
+-
+   if (pthread_create (&th, NULL, tf, NULL) != 0)
+     {
+       puts ("create failed");
+       return 1;
+     }
+ 
++  delayed_exit (1);
+   /* This call should never return.  */
+-  pthread_mutex_lock (&m);
++  xpthread_mutex_lock (&m);
+ 
+   puts ("2nd mutex_lock returned");
+   return 1;
+ }
+-
+-#define EXPECTED_SIGNAL SIGALRM
+-#define TEST_FUNCTION do_test ()
+-#include "../test-skeleton.c"
+Index: b/nptl/tst-sem2.c
+===================================================================
+--- a/nptl/tst-sem2.c
++++ b/nptl/tst-sem2.c
+@@ -17,11 +17,16 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <errno.h>
++#include <pthread.h>
+ #include <semaphore.h>
+ #include <signal.h>
+ #include <stdio.h>
+ #include <unistd.h>
+ 
++static int do_test (void);
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+ 
+ static int
+ do_test (void)
+@@ -34,8 +39,7 @@ do_test (void)
+       return 1;
+     }
+ 
+-  /* Set an alarm for 1 second.  The wrapper will expect this.  */
+-  alarm (1);
++  delayed_exit (1);
+ 
+   if (TEMP_FAILURE_RETRY (sem_wait (&s)) == -1)
+     {
+@@ -47,7 +51,3 @@ do_test (void)
+   puts ("wait succeeded");
+   return 1;
+ }
+-
+-#define EXPECTED_SIGNAL SIGALRM
+-#define TEST_FUNCTION do_test ()
+-#include "../test-skeleton.c"
+Index: b/nptl/tst-spin3.c
+===================================================================
+--- a/nptl/tst-spin3.c
++++ b/nptl/tst-spin3.c
+@@ -21,6 +21,10 @@
+ #include <stdio.h>
+ #include <unistd.h>
+ 
++static int do_test (void);
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+ 
+ static int
+ do_test (void)
+@@ -39,16 +43,11 @@ do_test (void)
+       return 1;
+     }
+ 
+-  /* Set an alarm for 1 second.  The wrapper will expect this.  */
+-  alarm (1);
++  delayed_exit (1);
+ 
+   /* This call should never return.  */
+-  pthread_spin_lock (&s);
++  xpthread_spin_lock (&s);
+ 
+   puts ("2nd spin_lock returned");
+   return 1;
+ }
+-
+-#define EXPECTED_SIGNAL SIGALRM
+-#define TEST_FUNCTION do_test ()
+-#include "../test-skeleton.c"
+Index: b/nptl/tst-stdio1.c
+===================================================================
+--- a/nptl/tst-stdio1.c
++++ b/nptl/tst-stdio1.c
+@@ -21,6 +21,10 @@
+ #include <stdio.h>
+ #include <unistd.h>
+ 
++static int do_test (void);
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+ 
+ static void *tf (void *a)
+ {
+@@ -43,14 +47,10 @@ do_test (void)
+       _exit (1);
+     }
+ 
+-  pthread_join (th, NULL);
++  delayed_exit (1);
++  xpthread_join (th);
+ 
+   puts ("join returned");
+ 
+-  return 0;
++  return 1;
+ }
+-
+-
+-#define EXPECTED_SIGNAL SIGALRM
+-#define TEST_FUNCTION do_test ()
+-#include "../test-skeleton.c"
+Index: b/test-skeleton.c
+===================================================================
+--- a/test-skeleton.c
++++ b/test-skeleton.c
+@@ -427,3 +427,9 @@ main (int argc, char *argv[])
+   return 0;
+ #endif
+ }
++
++/* The following functionality is only available if <pthread.h> was
++   included before this file.  */
++#ifdef _PTHREAD_H
++# include <support/xthread.h>
++#endif	/* _PTHREAD_H */
diff --git a/SOURCES/glibc-rh1372304-2.patch b/SOURCES/glibc-rh1372304-2.patch
new file mode 100644
index 0000000..9660ed7
--- /dev/null
+++ b/SOURCES/glibc-rh1372304-2.patch
@@ -0,0 +1,46 @@
+The commit included in glibc-rh1372304-1.patch removes custom TIMEOUT
+definitions from the tests it changes. Some of those tests are expected to
+run for longer than the current default TIMEOUT (2 sec) set in
+test-skeleton.c and so can time-out and fail when run. This commit avoids
+the spurious failures by increasing the default TIMEOUT to 20 sec. Upstream,
+this commit preceded the one included in glibc-rh1372304-1.patch.
+
+commit a28605b22946c708f0a5c4f06307e1a17650ced8
+Author: Mike Frysinger <vapier@gentoo.org>
+Date:   Tue Jan 19 09:18:00 2016 -0500
+
+    test-skeleton: increase default TIMEOUT to 20 seconds
+    
+    The vast majority of timeouts I've seen w/glibc tests are due to:
+     - slow system (e.g. <1 GHz cpu)
+     - loaded system (e.g. lots of parallelism)
+    Even then, I've seen timeouts on system I don't generally consider
+    slow, or even loaded, and considering TIMEOUT is set to <=10 in ~60
+    tests (and <=20 in ~75 tests), it seems I'm not alone.  I've just
+    gotten in the habit of doing `export TIMEOUTFACTOR=10` on all my
+    setups.
+    
+    In the edge case where there is a bug in the test and the timeout is
+    hit, I think we all agree that's either a problem with the test or a
+    real bug in the library somewhere.  In either case, the incident rate
+    should be low, so catering to that seems like the wrong trade-off.
+    
+    Other developers too usually set large timeout factors.  Increase the
+    default to 20 seconds to match reality.
+
+Index: b/test-skeleton.c
+===================================================================
+--- a/test-skeleton.c
++++ b/test-skeleton.c
+@@ -368,8 +368,9 @@ main (int argc, char *argv[])
+ 
+   /* Set timeout.  */
+ #ifndef TIMEOUT
+-  /* Default timeout is two seconds.  */
+-# define TIMEOUT 2
++  /* Default timeout is twenty seconds.  Tests should normally complete faster
++     than this, but if they don't, that's abnormal (a bug) anyways.  */
++# define TIMEOUT 20
+ #endif
+   signal (SIGALRM, signal_handler);
+   alarm (TIMEOUT * timeoutfactor);
diff --git a/SOURCES/glibc-rh1401665-0.patch b/SOURCES/glibc-rh1401665-0.patch
new file mode 100644
index 0000000..63d33a5
--- /dev/null
+++ b/SOURCES/glibc-rh1401665-0.patch
@@ -0,0 +1,107 @@
+commit 353683a22ed8a493a6bd1d78d63e144bc3e85d2f
+Author: Torvald Riegel <triegel@redhat.com>
+Date:   Thu Dec 15 16:06:28 2016 +0100
+
+    Robust mutexes: Fix lost wake-up.
+    
+    Assume that Thread 1 waits to acquire a robust mutex using futexes to
+    block (and thus sets the FUTEX_WAITERS flag), and is unblocked when this
+    mutex is released.  If Thread 2 concurrently acquires the lock and is
+    killed, Thread 1 can recover from the died owner but fail to restore the
+    FUTEX_WAITERS flag.  This can lead to a Thread 3 that also blocked using
+    futexes at the same time as Thread 1 to not get woken up because
+    FUTEX_WAITERS is not set anymore.
+    
+    The fix for this is to ensure that we continue to preserve the
+    FUTEX_WAITERS flag whenever we may have set it or shared it with another
+    thread.  This is the same requirement as in the algorithm for normal
+    mutexes, only that the robust mutexes need additional handling for died
+    owners and thus preserving the FUTEX_WAITERS flag cannot be done just in
+    the futex slowpath code.
+    
+            [BZ #20973]
+            * nptl/pthread_mutex_lock.c (__pthread_mutex_lock_full): Fix lost
+            wake-up in robust mutexes.
+            * nptl/pthread_mutex_timedlock.c (pthread_mutex_timedlock): Likewise.
+
+Index: glibc-2.17-c758a686/nptl/pthread_mutex_lock.c
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/pthread_mutex_lock.c
++++ glibc-2.17-c758a686/nptl/pthread_mutex_lock.c
+@@ -183,6 +183,11 @@ __pthread_mutex_lock_full (pthread_mutex
+ 		     &mutex->__data.__list.__next);
+ 
+       oldval = mutex->__data.__lock;
++      /* This is set to FUTEX_WAITERS iff we might have shared the
++	 FUTEX_WAITERS flag with other threads, and therefore need to keep it
++	 set to avoid lost wake-ups.  We have the same requirement in the
++	 simple mutex algorithm.  */
++      unsigned int assume_other_futex_waiters = 0;
+       do
+ 	{
+ 	again:
+@@ -191,9 +196,11 @@ __pthread_mutex_lock_full (pthread_mutex
+ 	      /* The previous owner died.  Try locking the mutex.  */
+ 	      int newval = id;
+ #ifdef NO_INCR
++	      /* We are not taking assume_other_futex_waiters into accoount
++		 here simply because we'll set FUTEX_WAITERS anyway.  */
+ 	      newval |= FUTEX_WAITERS;
+ #else
+-	      newval |= (oldval & FUTEX_WAITERS);
++	      newval |= (oldval & FUTEX_WAITERS) | assume_other_futex_waiters;
+ #endif
+ 
+ 	      newval
+@@ -254,7 +261,11 @@ __pthread_mutex_lock_full (pthread_mutex
+ 		}
+ 	    }
+ 
+-	  oldval = LLL_ROBUST_MUTEX_LOCK (mutex, id);
++	  oldval = LLL_ROBUST_MUTEX_LOCK (mutex,
++					  id | assume_other_futex_waiters);
++	  /* See above.  We set FUTEX_WAITERS and might have shared this flag
++	     with other threads; thus, we need to preserve it.  */
++	  assume_other_futex_waiters = FUTEX_WAITERS;
+ 
+ 	  if (__builtin_expect (mutex->__data.__owner
+ 				== PTHREAD_MUTEX_NOTRECOVERABLE, 0))
+Index: glibc-2.17-c758a686/nptl/pthread_mutex_timedlock.c
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/pthread_mutex_timedlock.c
++++ glibc-2.17-c758a686/nptl/pthread_mutex_timedlock.c
+@@ -142,13 +142,19 @@ pthread_mutex_timedlock (pthread_mutex_t
+ 		     &mutex->__data.__list.__next);
+ 
+       oldval = mutex->__data.__lock;
++      /* This is set to FUTEX_WAITERS iff we might have shared the
++	 FUTEX_WAITERS flag with other threads, and therefore need to keep it
++	 set to avoid lost wake-ups.  We have the same requirement in the
++	 simple mutex algorithm.  */
++      unsigned int assume_other_futex_waiters = 0;
+       do
+ 	{
+ 	again:
+ 	  if ((oldval & FUTEX_OWNER_DIED) != 0)
+ 	    {
+ 	      /* The previous owner died.  Try locking the mutex.  */
+-	      int newval = id | (oldval & FUTEX_WAITERS);
++	      int newval = id | (oldval & FUTEX_WAITERS)
++		  | assume_other_futex_waiters;
+ 
+ 	      newval
+ 		= atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
+@@ -203,8 +209,12 @@ pthread_mutex_timedlock (pthread_mutex_t
+ 		}
+ 	    }
+ 
+-	  result = lll_robust_timedlock (mutex->__data.__lock, abstime, id,
++	  result = lll_robust_timedlock (mutex->__data.__lock, abstime,
++					 id | assume_other_futex_waiters,
+ 					 PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
++	  /* See above.  We set FUTEX_WAITERS and might have shared this flag
++	     with other threads; thus, we need to preserve it.  */
++	  assume_other_futex_waiters = FUTEX_WAITERS;
+ 
+ 	  if (__builtin_expect (mutex->__data.__owner
+ 				== PTHREAD_MUTEX_NOTRECOVERABLE, 0))
diff --git a/SOURCES/glibc-rh1401665-1a.patch b/SOURCES/glibc-rh1401665-1a.patch
new file mode 100644
index 0000000..7097ecf
--- /dev/null
+++ b/SOURCES/glibc-rh1401665-1a.patch
@@ -0,0 +1,35 @@
+Upstream x86_64 uses the generic lll_futex_timed_wait_bitset, but for
+rhel-7 we have not yet backported the larger generic futex cleanups.
+To keep x86_64 using the tested code paths we add a generic
+lll_futex_timed_wait_bitset.  We do not do the same for i686, where we
+let the code use the lll_futex_timed_wait fallback.  For i686 it would
+be harder to add lll_futex_timed_wait_bitset because it requires more
+complex 6-argument syscall handling backports, so we do not do that.
+
+Not needed upstream.
+
+Index: glibc-2.17-c758a686/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
++++ glibc-2.17-c758a686/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
+@@ -223,6 +223,20 @@ LLL_STUB_UNWIND_INFO_END
+     __status;								      \
+   })
+ 
++#define lll_futex_timed_wait_bitset(futexp, val, timespec, clockbit, private) \
++  ({									      \
++    INTERNAL_SYSCALL_DECL (__err);					      \
++    long int __ret;							      \
++    int __op = FUTEX_WAIT_BITSET | clockbit;				      \
++									      \
++    __ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp),		      \
++			      __lll_private_flag (__op, private),	      \
++			      (val), (timespec), NULL /* Unused.  */, 	      \
++			      FUTEX_BITSET_MATCH_ANY);			      \
++    (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (__ret, __err))		      \
++	? -INTERNAL_SYSCALL_ERRNO (__ret, __err) : 0);			      \
++  })
++
+ 
+ #define lll_futex_wake(futex, nr, private) \
+   ({									      \
diff --git a/SOURCES/glibc-rh1401665-1b.patch b/SOURCES/glibc-rh1401665-1b.patch
new file mode 100644
index 0000000..455b6c5
--- /dev/null
+++ b/SOURCES/glibc-rh1401665-1b.patch
@@ -0,0 +1,1642 @@
+commit 65810f0ef05e8c9e333f17a44e77808b163ca298
+Author: Torvald Riegel <triegel@redhat.com>
+Date:   Thu Dec 22 10:20:43 2016 +0100
+
+    robust mutexes: Fix broken x86 assembly by removing it
+    
+    lll_robust_unlock on i386 and x86_64 first sets the futex word to
+    FUTEX_WAITERS|0 before calling __lll_unlock_wake, which will set the
+    futex word to 0.  If the thread is killed between these steps, then the
+    futex word will be FUTEX_WAITERS|0, and the kernel (at least current
+    upstream) will not set it to FUTEX_OWNER_DIED|FUTEX_WAITERS because 0 is
+    not equal to the TID of the crashed thread.
+    
+    The lll_robust_lock assembly code on i386 and x86_64 is not prepared to
+    deal with this case because the fastpath tries to only CAS 0 to TID and
+    not FUTEX_WAITERS|0 to TID; the slowpath simply waits until it can CAS 0
+    to TID or the futex_word has the FUTEX_OWNER_DIED bit set.
+    
+    This issue is fixed by removing the custom x86 assembly code and using
+    the generic C code instead.  However, instead of adding more duplicate
+    code to the custom x86 lowlevellock.h, the code of the lll_robust* functions
+    is inlined into the single call sites that exist for each of these functions
+    in the pthread_mutex_* functions.  The robust mutex paths in the latter
+    have been slightly reorganized to make them simpler.
+    
+    This patch is meant to be easy to backport, so C11-style atomics are not
+    used.
+
+Index: glibc-2.17-c758a686/nptl/Makefile
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/Makefile
++++ glibc-2.17-c758a686/nptl/Makefile
+@@ -100,7 +100,7 @@ libpthread-routines = nptl-init vars eve
+ 		      cleanup_defer_compat unwind \
+ 		      pt-longjmp pt-cleanup\
+ 		      cancellation \
+-		      lowlevellock lowlevelrobustlock \
++		      lowlevellock \
+ 		      pt-vfork \
+ 		      ptw-write ptw-read ptw-close ptw-fcntl ptw-accept \
+ 		      ptw-connect ptw-recv ptw-recvfrom ptw-recvmsg ptw-send \
+Index: glibc-2.17-c758a686/nptl/pthread_mutex_lock.c
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/pthread_mutex_lock.c
++++ glibc-2.17-c758a686/nptl/pthread_mutex_lock.c
+@@ -34,14 +34,14 @@
+ #define lll_trylock_elision(a,t) lll_trylock(a)
+ #endif
+ 
++/* Some of the following definitions differ when pthread_mutex_cond_lock.c
++   includes this file.  */
+ #ifndef LLL_MUTEX_LOCK
+ # define LLL_MUTEX_LOCK(mutex) \
+   lll_lock ((mutex)->__data.__lock, PTHREAD_MUTEX_PSHARED (mutex))
+ # define LLL_MUTEX_TRYLOCK(mutex) \
+   lll_trylock ((mutex)->__data.__lock)
+-# define LLL_ROBUST_MUTEX_LOCK(mutex, id) \
+-  lll_robust_lock ((mutex)->__data.__lock, id, \
+-		   PTHREAD_ROBUST_MUTEX_PSHARED (mutex))
++# define LLL_ROBUST_MUTEX_LOCK_MODIFIER 0
+ # define LLL_MUTEX_LOCK_ELISION(mutex) \
+   lll_lock_elision ((mutex)->__data.__lock, (mutex)->__data.__elision, \
+ 		   PTHREAD_MUTEX_PSHARED (mutex))
+@@ -186,11 +186,21 @@ __pthread_mutex_lock_full (pthread_mutex
+       /* This is set to FUTEX_WAITERS iff we might have shared the
+ 	 FUTEX_WAITERS flag with other threads, and therefore need to keep it
+ 	 set to avoid lost wake-ups.  We have the same requirement in the
+-	 simple mutex algorithm.  */
+-      unsigned int assume_other_futex_waiters = 0;
+-      do
++	 simple mutex algorithm.
++	 We start with value zero for a normal mutex, and FUTEX_WAITERS if we
++	 are building the special case mutexes for use from within condition
++	 variables.  */
++      unsigned int assume_other_futex_waiters = LLL_ROBUST_MUTEX_LOCK_MODIFIER;
++      while (1)
+ 	{
+-	again:
++	  /* Try to acquire the lock through a CAS from 0 (not acquired) to
++	     our TID | assume_other_futex_waiters.  */
++	  if (__glibc_likely ((oldval == 0)
++			      && (atomic_compare_and_exchange_bool_acq
++				  (&mutex->__data.__lock,
++				   id | assume_other_futex_waiters, 0) == 0)))
++	      break;
++
+ 	  if ((oldval & FUTEX_OWNER_DIED) != 0)
+ 	    {
+ 	      /* The previous owner died.  Try locking the mutex.  */
+@@ -210,7 +220,7 @@ __pthread_mutex_lock_full (pthread_mutex
+ 	      if (newval != oldval)
+ 		{
+ 		  oldval = newval;
+-		  goto again;
++		  continue;
+ 		}
+ 
+ 	      /* We got the mutex.  */
+@@ -261,24 +271,47 @@ __pthread_mutex_lock_full (pthread_mutex
+ 		}
+ 	    }
+ 
+-	  oldval = LLL_ROBUST_MUTEX_LOCK (mutex,
+-					  id | assume_other_futex_waiters);
+-	  /* See above.  We set FUTEX_WAITERS and might have shared this flag
+-	     with other threads; thus, we need to preserve it.  */
+-	  assume_other_futex_waiters = FUTEX_WAITERS;
+-
+-	  if (__builtin_expect (mutex->__data.__owner
+-				== PTHREAD_MUTEX_NOTRECOVERABLE, 0))
++	  /* We cannot acquire the mutex nor has its owner died.  Thus, try
++	     to block using futexes.  Set FUTEX_WAITERS if necessary so that
++	     other threads are aware that there are potentially threads
++	     blocked on the futex.  Restart if oldval changed in the
++	     meantime.  */
++	  if ((oldval & FUTEX_WAITERS) == 0)
+ 	    {
+-	      /* This mutex is now not recoverable.  */
+-	      mutex->__data.__count = 0;
+-	      lll_unlock (mutex->__data.__lock,
+-			  PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
+-	      THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+-	      return ENOTRECOVERABLE;
++	      if (atomic_compare_and_exchange_bool_acq (&mutex->__data.__lock,
++							oldval | FUTEX_WAITERS,
++							oldval)
++		  != 0)
++		{
++		  oldval = mutex->__data.__lock;
++		  continue;
++		}
++	      oldval |= FUTEX_WAITERS;
+ 	    }
++
++	  /* It is now possible that we share the FUTEX_WAITERS flag with
++	     another thread; therefore, update assume_other_futex_waiters so
++	     that we do not forget about this when handling other cases
++	     above and thus do not cause lost wake-ups.  */
++	  assume_other_futex_waiters |= FUTEX_WAITERS;
++
++	  /* Block using the futex and reload current lock value.  */
++	  lll_futex_wait (&mutex->__data.__lock, oldval,
++			  PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
++	  oldval = mutex->__data.__lock;
++	}
++
++      /* We have acquired the mutex; check if it is still consistent.  */
++      if (__builtin_expect (mutex->__data.__owner
++			    == PTHREAD_MUTEX_NOTRECOVERABLE, 0))
++	{
++	  /* This mutex is now not recoverable.  */
++	  mutex->__data.__count = 0;
++	  int private = PTHREAD_ROBUST_MUTEX_PSHARED (mutex);
++	  lll_unlock (mutex->__data.__lock, private);
++	  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
++	  return ENOTRECOVERABLE;
+ 	}
+-      while ((oldval & FUTEX_OWNER_DIED) != 0);
+ 
+       mutex->__data.__count = 1;
+       ENQUEUE_MUTEX (mutex);
+Index: glibc-2.17-c758a686/nptl/pthread_mutex_timedlock.c
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/pthread_mutex_timedlock.c
++++ glibc-2.17-c758a686/nptl/pthread_mutex_timedlock.c
+@@ -147,9 +147,16 @@ pthread_mutex_timedlock (pthread_mutex_t
+ 	 set to avoid lost wake-ups.  We have the same requirement in the
+ 	 simple mutex algorithm.  */
+       unsigned int assume_other_futex_waiters = 0;
+-      do
++      while (1)
+ 	{
+-	again:
++	  /* Try to acquire the lock through a CAS from 0 (not acquired) to
++	     our TID | assume_other_futex_waiters.  */
++	  if (__glibc_likely ((oldval == 0)
++			      && (atomic_compare_and_exchange_bool_acq
++				  (&mutex->__data.__lock,
++				   id | assume_other_futex_waiters, 0) == 0)))
++	      break;
++
+ 	  if ((oldval & FUTEX_OWNER_DIED) != 0)
+ 	    {
+ 	      /* The previous owner died.  Try locking the mutex.  */
+@@ -162,7 +169,7 @@ pthread_mutex_timedlock (pthread_mutex_t
+ 	      if (newval != oldval)
+ 		{
+ 		  oldval = newval;
+-		  goto again;
++		  continue;
+ 		}
+ 
+ 	      /* We got the mutex.  */
+@@ -209,30 +216,87 @@ pthread_mutex_timedlock (pthread_mutex_t
+ 		}
+ 	    }
+ 
+-	  result = lll_robust_timedlock (mutex->__data.__lock, abstime,
+-					 id | assume_other_futex_waiters,
+-					 PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
+-	  /* See above.  We set FUTEX_WAITERS and might have shared this flag
+-	     with other threads; thus, we need to preserve it.  */
+-	  assume_other_futex_waiters = FUTEX_WAITERS;
++	  /* We are about to block; check whether the timeout is invalid.  */
++	  if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
++	    return EINVAL;
++	  /* Work around the fact that the kernel rejects negative timeout
++	     values despite them being valid.  */
++	  if (__glibc_unlikely (abstime->tv_sec < 0))
++	    return ETIMEDOUT;
++#if (!defined __ASSUME_FUTEX_CLOCK_REALTIME \
++     || !defined lll_futex_timed_wait_bitset)
++	  struct timeval tv;
++	  struct timespec rt;
++
++	  /* Get the current time.  */
++	  (void) __gettimeofday (&tv, NULL);
++
++	  /* Compute relative timeout.  */
++	  rt.tv_sec = abstime->tv_sec - tv.tv_sec;
++	  rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
++	  if (rt.tv_nsec < 0)
++	    {
++	      rt.tv_nsec += 1000000000;
++	      --rt.tv_sec;
++	    }
+ 
+-	  if (__builtin_expect (mutex->__data.__owner
+-				== PTHREAD_MUTEX_NOTRECOVERABLE, 0))
++	  /* Already timed out?  */
++	  if (rt.tv_sec < 0)
++	    return ETIMEDOUT;
++#endif
++
++	  /* We cannot acquire the mutex nor has its owner died.  Thus, try
++	     to block using futexes.  Set FUTEX_WAITERS if necessary so that
++	     other threads are aware that there are potentially threads
++	     blocked on the futex.  Restart if oldval changed in the
++	     meantime.  */
++	  if ((oldval & FUTEX_WAITERS) == 0)
+ 	    {
+-	      /* This mutex is now not recoverable.  */
+-	      mutex->__data.__count = 0;
+-	      lll_unlock (mutex->__data.__lock,
+-			  PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
+-	      THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+-	      return ENOTRECOVERABLE;
++	      if (atomic_compare_and_exchange_bool_acq (&mutex->__data.__lock,
++							oldval | FUTEX_WAITERS,
++							oldval)
++		  != 0)
++		{
++		  oldval = mutex->__data.__lock;
++		  continue;
++		}
++	      oldval |= FUTEX_WAITERS;
+ 	    }
+ 
+-	  if (result == ETIMEDOUT || result == EINVAL)
+-	    goto out;
++	  /* It is now possible that we share the FUTEX_WAITERS flag with
++	     another thread; therefore, update assume_other_futex_waiters so
++	     that we do not forget about this when handling other cases
++	     above and thus do not cause lost wake-ups.  */
++	  assume_other_futex_waiters |= FUTEX_WAITERS;
++
++	  /* Block using the futex.  */
++#if (!defined __ASSUME_FUTEX_CLOCK_REALTIME \
++     || !defined lll_futex_timed_wait_bitset)
++	  lll_futex_timed wait (&mutex->__data.__lock, oldval,
++				&rt, PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
++#else
++	  int err = lll_futex_timed_wait_bitset (&mutex->__data.__lock,
++	      oldval, abstime, FUTEX_CLOCK_REALTIME,
++	      PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
++	  /* The futex call timed out.  */
++	  if (err == -ETIMEDOUT)
++	    return -err;
++#endif
++	  /* Reload current lock value.  */
++	  oldval = mutex->__data.__lock;
++	}
+ 
+-	  oldval = result;
++      /* We have acquired the mutex; check if it is still consistent.  */
++      if (__builtin_expect (mutex->__data.__owner
++			    == PTHREAD_MUTEX_NOTRECOVERABLE, 0))
++	{
++	  /* This mutex is now not recoverable.  */
++	  mutex->__data.__count = 0;
++	  int private = PTHREAD_ROBUST_MUTEX_PSHARED (mutex);
++	  lll_unlock (mutex->__data.__lock, private);
++	  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
++	  return ENOTRECOVERABLE;
+ 	}
+-      while ((oldval & FUTEX_OWNER_DIED) != 0);
+ 
+       mutex->__data.__count = 1;
+       ENQUEUE_MUTEX (mutex);
+Index: glibc-2.17-c758a686/nptl/pthread_mutex_unlock.c
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/pthread_mutex_unlock.c
++++ glibc-2.17-c758a686/nptl/pthread_mutex_unlock.c
+@@ -96,6 +96,7 @@ internal_function
+ __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr)
+ {
+   int newowner = 0;
++  int private;
+ 
+   switch (PTHREAD_MUTEX_TYPE (mutex))
+     {
+@@ -149,9 +150,14 @@ __pthread_mutex_unlock_full (pthread_mut
+ 	/* One less user.  */
+ 	--mutex->__data.__nusers;
+ 
+-      /* Unlock.  */
+-      lll_robust_unlock (mutex->__data.__lock,
+-			 PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
++      /* Unlock by setting the lock to 0 (not acquired); if the lock had
++	 FUTEX_WAITERS set previously, then wake any waiters.
++         The unlock operation must be the last access to the mutex to not
++         violate the mutex destruction requirements (see __lll_unlock).  */
++      private = PTHREAD_ROBUST_MUTEX_PSHARED (mutex);
++      if (__glibc_unlikely ((atomic_exchange_rel (&mutex->__data.__lock, 0)
++			     & FUTEX_WAITERS) != 0))
++	lll_futex_wake (&mutex->__data.__lock, 1, private);
+ 
+       THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+       break;
+@@ -233,9 +239,9 @@ __pthread_mutex_unlock_full (pthread_mut
+ 								  tid)))
+ 	{
+ 	  int robust = mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP;
+-	  int private = (robust
+-			 ? PTHREAD_ROBUST_MUTEX_PSHARED (mutex)
+-			 : PTHREAD_MUTEX_PSHARED (mutex));
++	  private = (robust
++		     ? PTHREAD_ROBUST_MUTEX_PSHARED (mutex)
++		     : PTHREAD_MUTEX_PSHARED (mutex));
+ 	  INTERNAL_SYSCALL_DECL (__err);
+ 	  INTERNAL_SYSCALL (futex, __err, 2, &mutex->__data.__lock,
+ 			    __lll_private_flag (FUTEX_UNLOCK_PI, private));
+Index: glibc-2.17-c758a686/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S
++++ /dev/null
+@@ -1,232 +0,0 @@
+-/* Copyright (C) 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Lesser General Public
+-   License as published by the Free Software Foundation; either
+-   version 2.1 of the License, or (at your option) any later version.
+-
+-   The GNU C Library is distributed in the hope that it will be useful,
+-   but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   Lesser General Public License for more details.
+-
+-   You should have received a copy of the GNU Lesser General Public
+-   License along with the GNU C Library; if not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#include <sysdep.h>
+-#include <pthread-errnos.h>
+-#include <lowlevellock.h>
+-#include <lowlevelrobustlock.h>
+-#include <kernel-features.h>
+-
+-	.text
+-
+-#define FUTEX_WAITERS		0x80000000
+-#define FUTEX_OWNER_DIED	0x40000000
+-
+-#ifdef __ASSUME_PRIVATE_FUTEX
+-# define LOAD_FUTEX_WAIT(reg) \
+-	xorl	$(FUTEX_WAIT | FUTEX_PRIVATE_FLAG), reg
+-#else
+-# if FUTEX_WAIT == 0
+-#  define LOAD_FUTEX_WAIT(reg) \
+-	xorl	$FUTEX_PRIVATE_FLAG, reg ; \
+-	andl	%gs:PRIVATE_FUTEX, reg
+-# else
+-#  define LOAD_FUTEX_WAIT(reg) \
+-	xorl	$FUTEX_PRIVATE_FLAG, reg ; \
+-	andl	%gs:PRIVATE_FUTEX, reg ; \
+-	orl	$FUTEX_WAIT, reg
+-# endif
+-#endif
+-
+-	.globl	__lll_robust_lock_wait
+-	.type	__lll_robust_lock_wait,@function
+-	.hidden	__lll_robust_lock_wait
+-	.align	16
+-__lll_robust_lock_wait:
+-	cfi_startproc
+-	pushl	%edx
+-	cfi_adjust_cfa_offset(4)
+-	pushl	%ebx
+-	cfi_adjust_cfa_offset(4)
+-	pushl	%esi
+-	cfi_adjust_cfa_offset(4)
+-	cfi_offset(%edx, -8)
+-	cfi_offset(%ebx, -12)
+-	cfi_offset(%esi, -16)
+-
+-	movl	%edx, %ebx
+-	xorl	%esi, %esi	/* No timeout.  */
+-	LOAD_FUTEX_WAIT (%ecx)
+-
+-4:	movl	%eax, %edx
+-	orl	$FUTEX_WAITERS, %edx
+-
+-	testl	$FUTEX_OWNER_DIED, %eax
+-	jnz	3f
+-
+-	cmpl	%edx, %eax	/* NB:	 %edx == 2 */
+-	je	1f
+-
+-	LOCK
+-	cmpxchgl %edx, (%ebx)
+-	jnz	2f
+-
+-1:	movl	$SYS_futex, %eax
+-	ENTER_KERNEL
+-
+-	movl	(%ebx), %eax
+-
+-2:	test	%eax, %eax
+-	jne	4b
+-
+-	movl	%gs:TID, %edx
+-	orl	$FUTEX_WAITERS, %edx
+-	LOCK
+-	cmpxchgl %edx, (%ebx)
+-	jnz	4b
+-	/* NB:	 %eax == 0 */
+-
+-3:	popl	%esi
+-	cfi_adjust_cfa_offset(-4)
+-	cfi_restore(%esi)
+-	popl	%ebx
+-	cfi_adjust_cfa_offset(-4)
+-	cfi_restore(%ebx)
+-	popl	%edx
+-	cfi_adjust_cfa_offset(-4)
+-	cfi_restore(%edx)
+-	ret
+-	cfi_endproc
+-	.size	__lll_robust_lock_wait,.-__lll_robust_lock_wait
+-
+-
+-	.globl	__lll_robust_timedlock_wait
+-	.type	__lll_robust_timedlock_wait,@function
+-	.hidden	__lll_robust_timedlock_wait
+-	.align	16
+-__lll_robust_timedlock_wait:
+-	cfi_startproc
+-	/* Check for a valid timeout value.  */
+-	cmpl	$1000000000, 4(%edx)
+-	jae	3f
+-
+-	pushl	%edi
+-	cfi_adjust_cfa_offset(4)
+-	pushl	%esi
+-	cfi_adjust_cfa_offset(4)
+-	pushl	%ebx
+-	cfi_adjust_cfa_offset(4)
+-	pushl	%ebp
+-	cfi_adjust_cfa_offset(4)
+-	cfi_offset(%edi, -8)
+-	cfi_offset(%esi, -12)
+-	cfi_offset(%ebx, -16)
+-	cfi_offset(%ebp, -20)
+-
+-	/* Stack frame for the timespec and timeval structs.  */
+-	subl	$12, %esp
+-	cfi_adjust_cfa_offset(12)
+-
+-	movl	%ecx, %ebp
+-	movl	%edx, %edi
+-
+-1:	movl	%eax, 8(%esp)
+-
+-	/* Get current time.  */
+-	movl	%esp, %ebx
+-	xorl	%ecx, %ecx
+-	movl	$__NR_gettimeofday, %eax
+-	ENTER_KERNEL
+-
+-	/* Compute relative timeout.  */
+-	movl	4(%esp), %eax
+-	movl	$1000, %edx
+-	mul	%edx		/* Milli seconds to nano seconds.  */
+-	movl	(%edi), %ecx
+-	movl	4(%edi), %edx
+-	subl	(%esp), %ecx
+-	subl	%eax, %edx
+-	jns	4f
+-	addl	$1000000000, %edx
+-	subl	$1, %ecx
+-4:	testl	%ecx, %ecx
+-	js	8f		/* Time is already up.  */
+-
+-	/* Store relative timeout.  */
+-	movl	%ecx, (%esp)
+-	movl	%edx, 4(%esp)
+-
+-	movl	%ebp, %ebx
+-
+-	movl	8(%esp), %edx
+-	movl	%edx, %eax
+-	orl	$FUTEX_WAITERS, %edx
+-
+-	testl	$FUTEX_OWNER_DIED, %eax
+-	jnz	6f
+-
+-	cmpl	%eax, %edx
+-	je	2f
+-
+-	LOCK
+-	cmpxchgl %edx, (%ebx)
+-	movl	$0, %ecx	/* Must use mov to avoid changing cc.  */
+-	jnz	5f
+-
+-2:
+-	/* Futex call.  */
+-	movl	%esp, %esi
+-	movl	20(%esp), %ecx
+-	LOAD_FUTEX_WAIT (%ecx)
+-	movl	$SYS_futex, %eax
+-	ENTER_KERNEL
+-	movl	%eax, %ecx
+-
+-	movl	(%ebx), %eax
+-
+-5:	testl	%eax, %eax
+-	jne	7f
+-
+-	movl	%gs:TID, %edx
+-	orl	$FUTEX_WAITERS, %edx
+-	LOCK
+-	cmpxchgl %edx, (%ebx)
+-	jnz	7f
+-
+-6:	addl	$12, %esp
+-	cfi_adjust_cfa_offset(-12)
+-	popl	%ebp
+-	cfi_adjust_cfa_offset(-4)
+-	cfi_restore(%ebp)
+-	popl	%ebx
+-	cfi_adjust_cfa_offset(-4)
+-	cfi_restore(%ebx)
+-	popl	%esi
+-	cfi_adjust_cfa_offset(-4)
+-	cfi_restore(%esi)
+-	popl	%edi
+-	cfi_adjust_cfa_offset(-4)
+-	cfi_restore(%edi)
+-	ret
+-
+-3:	movl	$EINVAL, %eax
+-	ret
+-
+-	cfi_adjust_cfa_offset(28)
+-	cfi_offset(%edi, -8)
+-	cfi_offset(%esi, -12)
+-	cfi_offset(%ebx, -16)
+-	cfi_offset(%ebp, -20)
+-	/* Check whether the time expired.  */
+-7:	cmpl	$-ETIMEDOUT, %ecx
+-	jne	1b
+-
+-8:	movl	$ETIMEDOUT, %eax
+-	jmp	6b
+-	cfi_endproc
+-	.size	__lll_robust_timedlock_wait,.-__lll_robust_timedlock_wait
+Index: glibc-2.17-c758a686/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S
++++ /dev/null
+@@ -1,19 +0,0 @@
+-/* Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+-
+-   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 "../i486/lowlevelrobustlock.S"
+Index: glibc-2.17-c758a686/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S
++++ /dev/null
+@@ -1,19 +0,0 @@
+-/* Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+-
+-   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 "../i486/lowlevelrobustlock.S"
+Index: glibc-2.17-c758a686/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
++++ glibc-2.17-c758a686/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
+@@ -338,27 +338,6 @@ LLL_STUB_UNWIND_INFO_END
+ 	 }								      \
+     })
+ 
+-#define lll_robust_lock(futex, id, private) \
+-  ({ int result, ignore1, ignore2;					      \
+-     __asm __volatile (LOCK_INSTR "cmpxchgl %1, %2\n\t"			      \
+-		       "jnz _L_robust_lock_%=\n\t"			      \
+-		       ".subsection 1\n\t"				      \
+-		       ".type _L_robust_lock_%=,@function\n"		      \
+-		       "_L_robust_lock_%=:\n"				      \
+-		       "1:\tleal %2, %%edx\n"				      \
+-		       "0:\tmovl %7, %%ecx\n"				      \
+-		       "2:\tcall __lll_robust_lock_wait\n"		      \
+-		       "3:\tjmp 18f\n"					      \
+-		       "4:\t.size _L_robust_lock_%=, 4b-1b\n\t"		      \
+-		       ".previous\n"					      \
+-		       LLL_STUB_UNWIND_INFO_4				      \
+-		       "18:"						      \
+-		       : "=a" (result), "=c" (ignore1), "=m" (futex),	      \
+-			 "=&d" (ignore2)				      \
+-		       : "0" (0), "1" (id), "m" (futex), "g" ((int) (private))\
+-		       : "memory");					      \
+-     result; })
+-
+ 
+ /* Special version of lll_lock which causes the unlock function to
+    always wakeup waiters.  */
+@@ -384,30 +363,6 @@ LLL_STUB_UNWIND_INFO_END
+ 			 : "memory");					      \
+     })
+ 
+-
+-#define lll_robust_cond_lock(futex, id, private) \
+-  ({ int result, ignore1, ignore2;					      \
+-     __asm __volatile (LOCK_INSTR "cmpxchgl %1, %2\n\t"			      \
+-		       "jnz _L_robust_cond_lock_%=\n\t"			      \
+-		       ".subsection 1\n\t"				      \
+-		       ".type _L_robust_cond_lock_%=,@function\n"	      \
+-		       "_L_robust_cond_lock_%=:\n"			      \
+-		       "1:\tleal %2, %%edx\n"				      \
+-		       "0:\tmovl %7, %%ecx\n"				      \
+-		       "2:\tcall __lll_robust_lock_wait\n"		      \
+-		       "3:\tjmp 18f\n"					      \
+-		       "4:\t.size _L_robust_cond_lock_%=, 4b-1b\n\t"	      \
+-		       ".previous\n"					      \
+-		       LLL_STUB_UNWIND_INFO_4				      \
+-		       "18:"						      \
+-		       : "=a" (result), "=c" (ignore1), "=m" (futex),	      \
+-			 "=&d" (ignore2)				      \
+-		       : "0" (0), "1" (id | FUTEX_WAITERS), "m" (futex),      \
+-			 "g" ((int) (private))				      \
+-		       : "memory");					      \
+-     result; })
+-
+-
+ #define lll_timedlock(futex, timeout, private) \
+   ({ int result, ignore1, ignore2, ignore3;				      \
+      __asm __volatile (LOCK_INSTR "cmpxchgl %1, %3\n\t"			      \
+@@ -437,28 +392,6 @@ extern int __lll_timedlock_elision (int
+ #define lll_timedlock_elision(futex, adapt_count, timeout, private)	\
+   __lll_timedlock_elision(&(futex), &(adapt_count), timeout, private)
+ 
+-#define lll_robust_timedlock(futex, timeout, id, private) \
+-  ({ int result, ignore1, ignore2, ignore3;				      \
+-     __asm __volatile (LOCK_INSTR "cmpxchgl %1, %3\n\t"			      \
+-		       "jnz _L_robust_timedlock_%=\n\t"			      \
+-		       ".subsection 1\n\t"				      \
+-		       ".type _L_robust_timedlock_%=,@function\n"	      \
+-		       "_L_robust_timedlock_%=:\n"			      \
+-		       "1:\tleal %3, %%ecx\n"				      \
+-		       "0:\tmovl %8, %%edx\n"				      \
+-		       "2:\tcall __lll_robust_timedlock_wait\n"		      \
+-		       "3:\tjmp 18f\n"					      \
+-		       "4:\t.size _L_robust_timedlock_%=, 4b-1b\n\t"	      \
+-		       ".previous\n"					      \
+-		       LLL_STUB_UNWIND_INFO_4				      \
+-		       "18:"						      \
+-		       : "=a" (result), "=c" (ignore1), "=&d" (ignore2),      \
+-			 "=m" (futex), "=S" (ignore3)			      \
+-		       : "0" (0), "1" (id), "m" (futex), "m" (timeout),	      \
+-			 "4" ((int) (private))				      \
+-		       : "memory");					      \
+-     result; })
+-
+ #if !IS_IN (libc) || defined UP
+ # define __lll_unlock_asm LOCK_INSTR "subl $1, %0\n\t"
+ #else
+@@ -510,29 +443,6 @@ extern int __lll_timedlock_elision (int
+ 	 }								      \
+     })
+ 
+-#define lll_robust_unlock(futex, private) \
+-  (void)								      \
+-    ({ int ignore, ignore2;						      \
+-       __asm __volatile (LOCK_INSTR "andl %3, %0\n\t"			      \
+-			 "jne _L_robust_unlock_%=\n\t"			      \
+-			 ".subsection 1\n\t"				      \
+-			 ".type _L_robust_unlock_%=,@function\n"	      \
+-			 "_L_robust_unlock_%=:\n\t"			      \
+-			 "1:\tleal %0, %%eax\n"				      \
+-			 "0:\tmovl %5, %%ecx\n"				      \
+-			 "2:\tcall __lll_unlock_wake\n"			      \
+-			 "3:\tjmp 18f\n"				      \
+-			 "4:\t.size _L_robust_unlock_%=, 4b-1b\n\t"	      \
+-			 ".previous\n"					      \
+-			 LLL_STUB_UNWIND_INFO_4				      \
+-			 "18:"						      \
+-			 : "=m" (futex), "=&a" (ignore), "=&c" (ignore2)      \
+-			 : "i" (FUTEX_WAITERS), "m" (futex),		      \
+-			   "g" ((int) (private))			      \
+-			 : "memory");					      \
+-    })
+-
+-
+ #define lll_robust_dead(futex, private) \
+   (void)								      \
+     ({ int __ignore;							      \
+Index: glibc-2.17-c758a686/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.c
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.c
++++ /dev/null
+@@ -1,127 +0,0 @@
+-/* Copyright (C) 2006-2012 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2006.
+-
+-   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 <errno.h>
+-#include <sysdep.h>
+-#include <lowlevellock.h>
+-#include <sys/time.h>
+-#include <pthreadP.h>
+-
+-
+-int
+-__lll_robust_lock_wait (int *futex, int private)
+-{
+-  int oldval = *futex;
+-  int tid = THREAD_GETMEM (THREAD_SELF, tid);
+-
+-  /* If the futex changed meanwhile try locking again.  */
+-  if (oldval == 0)
+-    goto try;
+-
+-  do
+-    {
+-      if (__builtin_expect (oldval & FUTEX_OWNER_DIED, 0))
+-	return oldval;
+-
+-      int newval = oldval | FUTEX_WAITERS;
+-      if (oldval != newval
+-	  && atomic_compare_and_exchange_bool_acq (futex, newval, oldval))
+-	continue;
+-
+-      lll_futex_wait (futex, newval, private);
+-
+-    try:
+-      ;
+-    }
+-  while ((oldval = atomic_compare_and_exchange_val_acq (futex,
+-							tid | FUTEX_WAITERS,
+-							0)) != 0);
+-  return 0;
+-}
+-
+-
+-int
+-__lll_robust_timedlock_wait (int *futex, const struct timespec *abstime,
+-			     int private)
+-{
+-  /* Reject invalid timeouts.  */
+-  if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
+-    return EINVAL;
+-
+-  int tid = THREAD_GETMEM (THREAD_SELF, tid);
+-  int oldval = *futex;
+-
+-  /* If the futex changed meanwhile try locking again.  */
+-  if (oldval == 0)
+-    goto try;
+-
+-  /* Work around the fact that the kernel rejects negative timeout values
+-     despite them being valid.  */
+-  if (__builtin_expect (abstime->tv_sec < 0, 0))
+-    return ETIMEDOUT;
+-
+-  do
+-    {
+-#if (!defined __ASSUME_FUTEX_CLOCK_REALTIME \
+-     || !defined lll_futex_timed_wait_bitset)
+-      struct timeval tv;
+-      struct timespec rt;
+-
+-      /* Get the current time.  */
+-      (void) __gettimeofday (&tv, NULL);
+-
+-      /* Compute relative timeout.  */
+-      rt.tv_sec = abstime->tv_sec - tv.tv_sec;
+-      rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
+-      if (rt.tv_nsec < 0)
+-	{
+-	  rt.tv_nsec += 1000000000;
+-	  --rt.tv_sec;
+-	}
+-
+-      /* Already timed out?  */
+-      if (rt.tv_sec < 0)
+-	return ETIMEDOUT;
+-#endif
+-
+-      /* Wait.  */
+-      if (__builtin_expect (oldval & FUTEX_OWNER_DIED, 0))
+-	return oldval;
+-
+-      int newval = oldval | FUTEX_WAITERS;
+-      if (oldval != newval
+-	  && atomic_compare_and_exchange_bool_acq (futex, newval, oldval))
+-	continue;
+-
+-#if (!defined __ASSUME_FUTEX_CLOCK_REALTIME \
+-     || !defined lll_futex_timed_wait_bitset)
+-      lll_futex_timed_wait (futex, newval, &rt, private);
+-#else
+-      lll_futex_timed_wait_bitset (futex, newval, abstime,
+-				   FUTEX_CLOCK_REALTIME, private);
+-#endif
+-
+-    try:
+-      ;
+-    }
+-  while ((oldval = atomic_compare_and_exchange_val_acq (futex,
+-							tid | FUTEX_WAITERS,
+-							0)) != 0);
+-
+-  return 0;
+-}
+Index: glibc-2.17-c758a686/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.sym
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.sym
++++ /dev/null
+@@ -1,6 +0,0 @@
+-#include <stddef.h>
+-#include <pthreadP.h>
+-
+---
+-
+-TID		offsetof (struct pthread, tid)
+Index: glibc-2.17-c758a686/nptl/sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c
++++ glibc-2.17-c758a686/nptl/sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c
+@@ -11,9 +11,9 @@
+   lll_cond_trylock ((mutex)->__data.__lock)
+ #define LLL_MUTEX_TRYLOCK_ELISION(mutex) LLL_MUTEX_TRYLOCK(mutex)
+ 
+-#define LLL_ROBUST_MUTEX_LOCK(mutex, id) \
+-  lll_robust_cond_lock ((mutex)->__data.__lock, id, \
+-			PTHREAD_ROBUST_MUTEX_PSHARED (mutex))
++/* We need to assume that there are other threads blocked on the futex.
++   See __pthread_mutex_lock_full for further details.  */
++#define LLL_ROBUST_MUTEX_LOCK_MODIFIER FUTEX_WAITERS
+ #define __pthread_mutex_lock internal_function __pthread_mutex_cond_lock
+ #define __pthread_mutex_lock_full __pthread_mutex_cond_lock_full
+ #define NO_INCR
+Index: glibc-2.17-c758a686/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
++++ glibc-2.17-c758a686/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
+@@ -349,28 +349,6 @@ LLL_STUB_UNWIND_INFO_END
+ 			   : "cx", "r11", "cc", "memory");		      \
+     })									      \
+ 
+-#define lll_robust_lock(futex, id, private) \
+-  ({ int result, ignore1, ignore2;					      \
+-    __asm __volatile (LOCK_INSTR "cmpxchgl %4, %2\n\t"			      \
+-		      "jnz 1f\n\t"					      \
+-		      ".subsection 1\n\t"				      \
+-		      ".type _L_robust_lock_%=, @function\n"		      \
+-		      "_L_robust_lock_%=:\n"				      \
+-		      "1:\tlea %2, %%" RDI_LP "\n"			      \
+-		      "2:\tsub $128, %%" RSP_LP "\n"			      \
+-		      "3:\tcallq __lll_robust_lock_wait\n"		      \
+-		      "4:\tadd $128, %%" RSP_LP "\n"			      \
+-		      "5:\tjmp 24f\n"					      \
+-		      "6:\t.size _L_robust_lock_%=, 6b-1b\n\t"		      \
+-		      ".previous\n"					      \
+-		      LLL_STUB_UNWIND_INFO_5				      \
+-		      "24:"						      \
+-		      : "=S" (ignore1), "=D" (ignore2), "=m" (futex),	      \
+-			"=a" (result)					      \
+-		      : "1" (id), "m" (futex), "3" (0), "0" (private)	      \
+-		      : "cx", "r11", "cc", "memory");			      \
+-    result; })
+-
+ #define lll_cond_lock(futex, private) \
+   (void)								      \
+     ({ int ignore1, ignore2, ignore3;					      \
+@@ -394,29 +372,6 @@ LLL_STUB_UNWIND_INFO_END
+ 			 : "cx", "r11", "cc", "memory");		      \
+     })
+ 
+-#define lll_robust_cond_lock(futex, id, private) \
+-  ({ int result, ignore1, ignore2;					      \
+-    __asm __volatile (LOCK_INSTR "cmpxchgl %4, %2\n\t"			      \
+-		      "jnz 1f\n\t"					      \
+-		      ".subsection 1\n\t"				      \
+-		      ".type _L_robust_cond_lock_%=, @function\n"	      \
+-		      "_L_robust_cond_lock_%=:\n"			      \
+-		      "1:\tlea %2, %%" RDI_LP "\n"			      \
+-		      "2:\tsub $128, %%" RSP_LP "\n"			      \
+-		      "3:\tcallq __lll_robust_lock_wait\n"		      \
+-		      "4:\tadd $128, %%" RSP_LP "\n"			      \
+-		      "5:\tjmp 24f\n"					      \
+-		      "6:\t.size _L_robust_cond_lock_%=, 6b-1b\n\t"	      \
+-		      ".previous\n"					      \
+-		      LLL_STUB_UNWIND_INFO_5				      \
+-		      "24:"						      \
+-		      : "=S" (ignore1), "=D" (ignore2), "=m" (futex),	      \
+-			"=a" (result)					      \
+-		      : "1" (id | FUTEX_WAITERS), "m" (futex), "3" (0),	      \
+-			"0" (private)					      \
+-		      : "cx", "r11", "cc", "memory");			      \
+-    result; })
+-
+ #define lll_timedlock(futex, timeout, private) \
+   ({ int result, ignore1, ignore2, ignore3;				      \
+      __asm __volatile (LOCK_INSTR "cmpxchgl %1, %4\n\t"			      \
+@@ -448,30 +403,6 @@ extern int __lll_timedlock_elision (int
+ #define lll_timedlock_elision(futex, adapt_count, timeout, private)	\
+   __lll_timedlock_elision(&(futex), &(adapt_count), timeout, private)
+ 
+-#define lll_robust_timedlock(futex, timeout, id, private) \
+-  ({ int result, ignore1, ignore2, ignore3;				      \
+-     __asm __volatile (LOCK_INSTR "cmpxchgl %1, %4\n\t"			      \
+-		       "jnz 1f\n\t"					      \
+-		       ".subsection 1\n\t"				      \
+-		       ".type _L_robust_timedlock_%=, @function\n"	      \
+-		       "_L_robust_timedlock_%=:\n"			      \
+-		       "1:\tlea %4, %%" RDI_LP "\n"			      \
+-		       "0:\tmov %8, %%" RDX_LP "\n"			      \
+-		       "2:\tsub $128, %%" RSP_LP "\n"			      \
+-		       "3:\tcallq __lll_robust_timedlock_wait\n"	      \
+-		       "4:\tadd $128, %%" RSP_LP "\n"			      \
+-		       "5:\tjmp 24f\n"					      \
+-		       "6:\t.size _L_robust_timedlock_%=, 6b-1b\n\t"	      \
+-		       ".previous\n"					      \
+-		       LLL_STUB_UNWIND_INFO_6				      \
+-		       "24:"						      \
+-		       : "=a" (result), "=D" (ignore1), "=S" (ignore2),       \
+-			 "=&d" (ignore3), "=m" (futex)			      \
+-		       : "0" (0), "1" (id), "m" (futex), "m" (timeout),	      \
+-			 "2" (private)					      \
+-		       : "memory", "cx", "cc", "r10", "r11");		      \
+-     result; })
+-
+ #if !IS_IN (libc) || defined UP
+ # define __lll_unlock_asm_start LOCK_INSTR "decl %0\n\t"		      \
+ 				"jne 1f\n\t"
+@@ -524,31 +455,6 @@ extern int __lll_timedlock_elision (int
+ 			   : "ax", "cx", "r11", "cc", "memory");	      \
+     })
+ 
+-#define lll_robust_unlock(futex, private) \
+-  do									      \
+-    {									      \
+-      int ignore;							      \
+-      __asm __volatile (LOCK_INSTR "andl %2, %0\n\t"			      \
+-			"jne 1f\n\t"					      \
+-			".subsection 1\n\t"				      \
+-			".type _L_robust_unlock_%=, @function\n"	      \
+-			"_L_robust_unlock_%=:\n"			      \
+-			"1:\tlea %0, %%" RDI_LP "\n"			      \
+-			"2:\tsub $128, %%" RSP_LP "\n"			      \
+-			"3:\tcallq __lll_unlock_wake\n"			      \
+-			"4:\tadd $128, %%" RSP_LP "\n"			      \
+-			"5:\tjmp 24f\n"					      \
+-			"6:\t.size _L_robust_unlock_%=, 6b-1b\n\t"	      \
+-			".previous\n"					      \
+-			LLL_STUB_UNWIND_INFO_5				      \
+-			"24:"						      \
+-			: "=m" (futex), "=&D" (ignore)			      \
+-			: "i" (FUTEX_WAITERS), "m" (futex),		      \
+-			  "S" (private)					      \
+-			: "ax", "cx", "r11", "cc", "memory");		      \
+-    }									      \
+-  while (0)
+-
+ #define lll_robust_dead(futex, private) \
+   do									      \
+     {									      \
+Index: glibc-2.17-c758a686/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
++++ /dev/null
+@@ -1,306 +0,0 @@
+-/* Copyright (C) 2002, 2011=2007, 2009, 2010 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Lesser General Public
+-   License as published by the Free Software Foundation; either
+-   version 2.1 of the License, or (at your option) any later version.
+-
+-   The GNU C Library is distributed in the hope that it will be useful,
+-   but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   Lesser General Public License for more details.
+-
+-   You should have received a copy of the GNU Lesser General Public
+-   License along with the GNU C Library; if not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#include <sysdep.h>
+-#include <pthread-errnos.h>
+-#include <lowlevellock.h>
+-#include <lowlevelrobustlock.h>
+-#include <kernel-features.h>
+-
+-	.text
+-
+-#define FUTEX_WAITERS		0x80000000
+-#define FUTEX_OWNER_DIED	0x40000000
+-
+-#ifdef __ASSUME_PRIVATE_FUTEX
+-# define LOAD_FUTEX_WAIT(reg) \
+-	xorl	$(FUTEX_WAIT | FUTEX_PRIVATE_FLAG), reg
+-# define LOAD_FUTEX_WAIT_ABS(reg) \
+-	xorl	$(FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME), reg
+-#else
+-# if FUTEX_WAIT == 0
+-#  define LOAD_FUTEX_WAIT(reg) \
+-	xorl	$FUTEX_PRIVATE_FLAG, reg ; \
+-	andl	%fs:PRIVATE_FUTEX, reg
+-# else
+-#  define LOAD_FUTEX_WAIT(reg) \
+-	xorl	$FUTEX_PRIVATE_FLAG, reg ; \
+-	andl	%fs:PRIVATE_FUTEX, reg ; \
+-	orl	$FUTEX_WAIT, reg
+-# endif
+-# define LOAD_FUTEX_WAIT_ABS(reg) \
+-	xorl	$FUTEX_PRIVATE_FLAG, reg ; \
+-	andl	%fs:PRIVATE_FUTEX, reg ; \
+-	orl	$FUTEX_WAIT_BITSET | FUTEX_CLOCK_REALTIME, reg
+-#endif
+-
+-
+-	.globl	__lll_robust_lock_wait
+-	.type	__lll_robust_lock_wait,@function
+-	.hidden	__lll_robust_lock_wait
+-	.align	16
+-__lll_robust_lock_wait:
+-	cfi_startproc
+-	pushq	%r10
+-	cfi_adjust_cfa_offset(8)
+-	pushq	%rdx
+-	cfi_adjust_cfa_offset(8)
+-	cfi_offset(%r10, -16)
+-	cfi_offset(%rdx, -24)
+-
+-	xorq	%r10, %r10	/* No timeout.  */
+-	LOAD_FUTEX_WAIT (%esi)
+-
+-4:	movl	%eax, %edx
+-	orl	$FUTEX_WAITERS, %edx
+-
+-	testl	$FUTEX_OWNER_DIED, %eax
+-	jnz	3f
+-
+-	cmpl	%edx, %eax
+-	je	1f
+-
+-	LOCK
+-	cmpxchgl %edx, (%rdi)
+-	jnz	2f
+-
+-1:	movl	$SYS_futex, %eax
+-	syscall
+-
+-	movl	(%rdi), %eax
+-
+-2:	testl	%eax, %eax
+-	jne	4b
+-
+-	movl	%fs:TID, %edx
+-	orl	$FUTEX_WAITERS, %edx
+-	LOCK
+-	cmpxchgl %edx, (%rdi)
+-	jnz	4b
+-	/* NB:	 %rax == 0 */
+-
+-3:	popq	%rdx
+-	cfi_adjust_cfa_offset(-8)
+-	cfi_restore(%rdx)
+-	popq	%r10
+-	cfi_adjust_cfa_offset(-8)
+-	cfi_restore(%r10)
+-	retq
+-	cfi_endproc
+-	.size	__lll_robust_lock_wait,.-__lll_robust_lock_wait
+-
+-
+-	.globl	__lll_robust_timedlock_wait
+-	.type	__lll_robust_timedlock_wait,@function
+-	.hidden	__lll_robust_timedlock_wait
+-	.align	16
+-__lll_robust_timedlock_wait:
+-	cfi_startproc
+-# ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+-#  ifdef PIC
+-	cmpl	$0, __have_futex_clock_realtime(%rip)
+-#  else
+-	cmpl	$0, __have_futex_clock_realtime
+-#  endif
+-	je	.Lreltmo
+-# endif
+-
+-	cmpq	$0, (%rdx)
+-	js	7f
+-
+-	pushq	%r9
+-	cfi_adjust_cfa_offset(8)
+-	cfi_rel_offset(%r9, 0)
+-	movq	%rdx, %r10
+-	movl	$0xffffffff, %r9d
+-	LOAD_FUTEX_WAIT_ABS (%esi)
+-
+-1:	testl	$FUTEX_OWNER_DIED, %eax
+-	jnz	3f
+-
+-	movl	%eax, %edx
+-	orl	$FUTEX_WAITERS, %edx
+-
+-	cmpl	%eax, %edx
+-	je	5f
+-
+-	LOCK
+-	cmpxchgl %edx, (%rdi)
+-	movq	$0, %rcx	/* Must use mov to avoid changing cc.  */
+-	jnz	6f
+-
+-5:	movl	$SYS_futex, %eax
+-	syscall
+-	movl	%eax, %ecx
+-
+-	movl	(%rdi), %eax
+-
+-6:	testl	%eax, %eax
+-	jne	2f
+-
+-	movl	%fs:TID, %edx
+-	orl	$FUTEX_WAITERS, %edx
+-	LOCK
+-	cmpxchgl %edx, (%rdi)
+-	jnz	2f
+-
+-3:	popq	%r9
+-	cfi_adjust_cfa_offset(-8)
+-	cfi_restore(%r9)
+-	retq
+-
+-	cfi_adjust_cfa_offset(8)
+-	cfi_rel_offset(%r9, 0)
+-	/* Check whether the time expired.  */
+-2:	cmpl	$-ETIMEDOUT, %ecx
+-	je	4f
+-	cmpl	$-EINVAL, %ecx
+-	jne	1b
+-
+-4:	movl	%ecx, %eax
+-	negl	%eax
+-	jmp	3b
+-	cfi_adjust_cfa_offset(-8)
+-	cfi_restore(%r9)
+-
+-7:	movl	$ETIMEDOUT, %eax
+-	retq
+-
+-
+-# ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+-.Lreltmo:
+-	/* Check for a valid timeout value.  */
+-	cmpq	$1000000000, 8(%rdx)
+-	jae	3f
+-
+-	pushq	%r8
+-	cfi_adjust_cfa_offset(8)
+-	pushq	%r9
+-	cfi_adjust_cfa_offset(8)
+-	pushq	%r12
+-	cfi_adjust_cfa_offset(8)
+-	pushq	%r13
+-	cfi_adjust_cfa_offset(8)
+-	cfi_offset(%r8, -16)
+-	cfi_offset(%r9, -24)
+-	cfi_offset(%r12, -32)
+-	cfi_offset(%r13, -40)
+-	pushq	%rsi
+-	cfi_adjust_cfa_offset(8)
+-
+-	/* Stack frame for the timespec and timeval structs.  */
+-	subq	$32, %rsp
+-	cfi_adjust_cfa_offset(32)
+-
+-	movq	%rdi, %r12
+-	movq	%rdx, %r13
+-
+-1:	movq	%rax, 16(%rsp)
+-
+-	/* Get current time.  */
+-	movq	%rsp, %rdi
+-	xorl	%esi, %esi
+-	/* This call works because we directly jump to a system call entry
+-	   which preserves all the registers.  */
+-	call	JUMPTARGET(__gettimeofday)
+-
+-	/* Compute relative timeout.  */
+-	movq	8(%rsp), %rax
+-	movl	$1000, %edi
+-	mul	%rdi		/* Milli seconds to nano seconds.  */
+-	movq	(%r13), %rdi
+-	movq	8(%r13), %rsi
+-	subq	(%rsp), %rdi
+-	subq	%rax, %rsi
+-	jns	4f
+-	addq	$1000000000, %rsi
+-	decq	%rdi
+-4:	testq	%rdi, %rdi
+-	js	8f		/* Time is already up.  */
+-
+-	/* Futex call.  */
+-	movq	%rdi, (%rsp)	/* Store relative timeout.  */
+-	movq	%rsi, 8(%rsp)
+-
+-	movq	16(%rsp), %rdx
+-	movl	%edx, %eax
+-	orl	$FUTEX_WAITERS, %edx
+-
+-	testl	$FUTEX_OWNER_DIED, %eax
+-	jnz	6f
+-
+-	cmpl	%eax, %edx
+-	je	2f
+-
+-	LOCK
+-	cmpxchgl %edx, (%r12)
+-	movq	$0, %rcx	/* Must use mov to avoid changing cc.  */
+-	jnz	5f
+-
+-2:	movq	%rsp, %r10
+-	movl	32(%rsp), %esi
+-	LOAD_FUTEX_WAIT (%esi)
+-	movq	%r12, %rdi
+-	movl	$SYS_futex, %eax
+-	syscall
+-	movq	%rax, %rcx
+-
+-	movl	(%r12), %eax
+-
+-5:	testl	%eax, %eax
+-	jne	7f
+-
+-	movl	%fs:TID, %edx
+-	orl	$FUTEX_WAITERS, %edx
+-	LOCK
+-	cmpxchgl %edx, (%r12)
+-	jnz	7f
+-
+-6:	addq	$40, %rsp
+-	cfi_adjust_cfa_offset(-40)
+-	popq	%r13
+-	cfi_adjust_cfa_offset(-8)
+-	cfi_restore(%r13)
+-	popq	%r12
+-	cfi_adjust_cfa_offset(-8)
+-	cfi_restore(%r12)
+-	popq	%r9
+-	cfi_adjust_cfa_offset(-8)
+-	cfi_restore(%r9)
+-	popq	%r8
+-	cfi_adjust_cfa_offset(-8)
+-	cfi_restore(%r8)
+-	retq
+-
+-3:	movl	$EINVAL, %eax
+-	retq
+-
+-	cfi_adjust_cfa_offset(72)
+-	cfi_offset(%r8, -16)
+-	cfi_offset(%r9, -24)
+-	cfi_offset(%r12, -32)
+-	cfi_offset(%r13, -40)
+-	/* Check whether the time expired.  */
+-7:	cmpl	$-ETIMEDOUT, %ecx
+-	jne	1b
+-
+-8:	movl	$ETIMEDOUT, %eax
+-	jmp	6b
+-#endif
+-	cfi_endproc
+-	.size	__lll_robust_timedlock_wait,.-__lll_robust_timedlock_wait
+Index: glibc-2.17-c758a686/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S
++++ /dev/null
+@@ -1,278 +0,0 @@
+-/* 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 <sysdep.h>
+-#include <pthread-errnos.h>
+-#include <lowlevellock.h>
+-#include <lowlevelrobustlock.h>
+-#include <kernel-features.h>
+-#include "lowlevel-atomic.h"
+-
+-	.text
+-
+-#define FUTEX_WAITERS		0x80000000
+-#define FUTEX_OWNER_DIED	0x40000000
+-
+-#ifdef __ASSUME_PRIVATE_FUTEX
+-# define LOAD_FUTEX_WAIT(reg,tmp,tmp2) \
+-	mov	#(FUTEX_WAIT | FUTEX_PRIVATE_FLAG), tmp; \
+-	extu.b	tmp, tmp; \
+-	xor	tmp, reg
+-#else
+-# if FUTEX_WAIT == 0
+-#  define LOAD_FUTEX_WAIT(reg,tmp,tmp2) \
+-	stc	gbr, tmp	; \
+-	mov.w	99f, tmp2	; \
+-	add	tmp2, tmp 	; \
+-	mov.l	@tmp, tmp2	; \
+-	bra	98f		; \
+-	 mov	#FUTEX_PRIVATE_FLAG, tmp ; \
+-99:	.word	PRIVATE_FUTEX - TLS_PRE_TCB_SIZE ; \
+-98:	extu.b	tmp, tmp	; \
+-	xor	tmp, reg	; \
+-	and	tmp2, reg
+-# else
+-#  define LOAD_FUTEX_WAIT(reg,tmp,tmp2) \
+-	stc	gbr, tmp	; \
+-	mov.w	99f, tmp2	; \
+-	add	tmp2, tmp 	; \
+-	mov.l	@tmp, tmp2	; \
+-	bra	98f		; \
+-	 mov	#FUTEX_PRIVATE_FLAG, tmp ; \
+-99:	.word	PRIVATE_FUTEX - TLS_PRE_TCB_SIZE ; \
+-98:	extu.b	tmp, tmp	; \
+-	xor	tmp, reg	; \
+-	and	tmp2, reg	; \
+-	mov	#FUTEX_WAIT, tmp ; \
+-	or	tmp, reg
+-# endif
+-#endif
+-
+-	.globl	__lll_robust_lock_wait
+-	.type	__lll_robust_lock_wait,@function
+-	.hidden	__lll_robust_lock_wait
+-	.align	5
+-	cfi_startproc
+-__lll_robust_lock_wait:
+-	mov.l	r8, @-r15
+-	cfi_adjust_cfa_offset(4)
+-	cfi_rel_offset (r8, 0)
+-	mov	r5, r8
+-	mov	#0, r7		/* No timeout.  */
+-	mov	r6, r5
+-	LOAD_FUTEX_WAIT (r5, r0, r1)
+-
+-4:
+-	mov	r4, r6
+-	mov.l	.L_FUTEX_WAITERS, r0
+-	or	r0, r6
+-	shlr	r0		/* r0 = FUTEX_OWNER_DIED */
+-	tst	r0, r4
+-	bf/s	3f
+-	 cmp/eq	r4, r6
+-	bt	1f
+-
+-	CMPXCHG (r4, @r8, r6, r2)
+-	bf	2f
+-
+-1:
+-	mov	r8, r4
+-	mov	#SYS_futex, r3
+-	extu.b	r3, r3
+-	trapa	#0x14
+-	SYSCALL_INST_PAD
+-
+-	mov.l	@r8, r2
+-
+-2:
+-	tst	r2, r2
+-	bf/s	4b
+-	 mov	r2, r4
+-
+-	stc	gbr, r1
+-	mov.w	.Ltidoff, r2
+-	add	r2, r1
+-	mov.l	@r1, r6
+-	mov	#0, r3
+-	CMPXCHG (r3, @r8, r6, r4)
+-	bf	4b
+-	mov	#0, r4
+-
+-3:
+-	mov.l	@r15+, r8
+-	cfi_adjust_cfa_offset (-4)
+-	cfi_restore (r8)
+-	ret
+-	 mov	r4, r0
+-	cfi_endproc
+-	.align	2
+-.L_FUTEX_WAITERS:
+-	.long	FUTEX_WAITERS
+-.Ltidoff:
+-	.word	TID - TLS_PRE_TCB_SIZE
+-	.size	__lll_robust_lock_wait,.-__lll_robust_lock_wait
+-
+-
+-	.globl	__lll_robust_timedlock_wait
+-	.type	__lll_robust_timedlock_wait,@function
+-	.hidden	__lll_robust_timedlock_wait
+-	.align	5
+-	cfi_startproc
+-__lll_robust_timedlock_wait:
+-	/* Check for a valid timeout value.  */
+-	mov.l	@(4,r6), r1
+-	mov.l	.L1g, r0
+-	cmp/hs	r0, r1
+-	bt	3f
+-
+-	cfi_remember_state
+-
+-	mov.l	r11, @-r15
+-	cfi_adjust_cfa_offset(4)
+-	cfi_rel_offset (r11, 0)
+-	mov.l	r10, @-r15
+-	cfi_adjust_cfa_offset(4)
+-	cfi_rel_offset (r10, 0)
+-	mov.l	r9, @-r15
+-	cfi_adjust_cfa_offset(4)
+-	cfi_rel_offset (r9, 0)
+-	mov.l	r8, @-r15
+-	cfi_adjust_cfa_offset(4)
+-	cfi_rel_offset (r8, 0)
+-	mov	r7, r11
+-	mov	r4, r10
+-	mov	r6, r9
+-	mov	r5, r8
+-
+-	/* Stack frame for the timespec and timeval structs.  */
+-	add	#-8, r15
+-	cfi_adjust_cfa_offset(8)
+-
+-1:
+-	/* Get current time.  */
+-	mov	r15, r4
+-	mov	#0, r5
+-	mov	#__NR_gettimeofday, r3
+-	trapa	#0x12
+-	SYSCALL_INST_PAD
+-
+-	/* Compute relative timeout.  */
+-	mov.l	@(4,r15), r0
+-	mov.w	.L1k, r1
+-	dmulu.l	r0, r1		/* Micro seconds to nano seconds.  */
+-	mov.l	@r9, r2
+-	mov.l	@(4,r9), r3
+-	mov.l	@r15, r0
+-	sts	macl, r1
+-	sub	r0, r2
+-	clrt
+-	subc	r1, r3
+-	bf	4f
+-	mov.l	.L1g, r1
+-	add	r1, r3
+-	add	#-1, r2
+-4:
+-	cmp/pz	r2
+-	bf	8f		/* Time is already up.  */
+-
+-	mov.l	r2, @r15	/* Store relative timeout.  */
+-	mov.l	r3, @(4,r15)
+-
+-	mov	r10, r6
+-	mov.l	.L_FUTEX_WAITERS2, r0
+-	or	r0, r6
+-	shlr	r0		/* r0 = FUTEX_OWNER_DIED */
+-	tst	r0, r4
+-	bf/s	6f
+-	 cmp/eq	r4, r6
+-	bt	2f
+-
+-	CMPXCHG (r4, @r8, r6, r2)
+-	bf/s	5f
+-	 mov	#0, r5
+-
+-2:
+-	mov	r8, r4
+-	mov	r11, r5
+-	LOAD_FUTEX_WAIT (r5, r0, r1)
+-	mov	r10, r6
+-	mov	r15, r7
+-	mov	#SYS_futex, r3
+-	extu.b	r3, r3
+-	trapa	#0x14
+-	SYSCALL_INST_PAD
+-	mov	r0, r5
+-
+-	mov.l	@r8, r2
+-
+-5:
+-	tst	r2, r2
+-	bf/s	7f
+-	 mov	r2, r10
+-
+-	stc	gbr, r1
+-	mov.w	.Ltidoff2, r2
+-	add	r2, r1
+-	mov.l	@r1, r4
+-	mov	#0, r3
+-	CMPXCHG (r3, @r8, r4, r10)
+-	bf	7f
+-	mov	#0, r0
+-
+-6:
+-	cfi_remember_state
+-	add	#8, r15
+-	cfi_adjust_cfa_offset (-8)
+-	mov.l	@r15+, r8
+-	cfi_adjust_cfa_offset (-4)
+-	cfi_restore (r8)
+-	mov.l	@r15+, r9
+-	cfi_adjust_cfa_offset (-4)
+-	cfi_restore (r9)
+-	mov.l	@r15+, r10
+-	cfi_adjust_cfa_offset (-4)
+-	cfi_restore (r10)
+-	rts
+-	 mov.l	@r15+, r11
+-	/* Omit CFI for restore in delay slot.  */
+-	cfi_restore_state
+-
+-7:
+-	/* Check whether the time expired.  */
+-	mov	#-ETIMEDOUT, r1
+-	cmp/eq	r5, r1
+-	bf	1b
+-
+-8:
+-	bra	6b
+-	 mov	#ETIMEDOUT, r0
+-
+-	cfi_restore_state
+-3:
+-	rts
+-	 mov	#EINVAL, r0
+-	cfi_endproc
+-	.align	2
+-.L_FUTEX_WAITERS2:
+-	.long	FUTEX_WAITERS
+-.L1g:
+-	.long	1000000000
+-.Ltidoff2:
+-	.word	TID - TLS_PRE_TCB_SIZE
+-.L1k:
+-	.word	1000
+-	.size	__lll_robust_timedlock_wait,.-__lll_robust_timedlock_wait
+Index: glibc-2.17-c758a686/nptl/sysdeps/unix/sysv/linux/Makefile
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/sysdeps/unix/sysv/linux/Makefile
++++ glibc-2.17-c758a686/nptl/sysdeps/unix/sysv/linux/Makefile
+@@ -24,7 +24,7 @@ libpthread-sysdep_routines += pt-fork pt
+ 
+ gen-as-const-headers += lowlevelcond.sym lowlevelrwlock.sym \
+ 			lowlevelbarrier.sym unwindbuf.sym \
+-			lowlevelrobustlock.sym pthread-pi-defines.sym
++			pthread-pi-defines.sym
+ endif
+ 
+ ifeq ($(subdir),posix)
diff --git a/SOURCES/glibc-rh1401665-1c.patch b/SOURCES/glibc-rh1401665-1c.patch
new file mode 100644
index 0000000..d628c2c
--- /dev/null
+++ b/SOURCES/glibc-rh1401665-1c.patch
@@ -0,0 +1,26 @@
+This is needed for i686 which doesn't have futex_timed_wait_bitset.
+
+commit 35df5a77f3ad2a35761631928440d2994a9e4bc5
+Author: Carlos O'Donell <carlos@redhat.com>
+Date:   Tue Jun 12 16:17:05 2018 -0400
+
+    Fix fallback path in __pthread_mutex_timedlock ().
+    
+    Fix the typo in the fallback path in __pthread_mutex_timedlock ()
+    whic hcalls lll_futex_timed_wait ().  This is only useful for cases
+    where the patch is being backported to older distributions where
+    only lll_futex_timed_wait () is available.
+
+Index: glibc-2.17-c758a686/nptl/pthread_mutex_timedlock.c
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/pthread_mutex_timedlock.c
++++ glibc-2.17-c758a686/nptl/pthread_mutex_timedlock.c
+@@ -272,7 +272,7 @@ pthread_mutex_timedlock (pthread_mutex_t
+ 	  /* Block using the futex.  */
+ #if (!defined __ASSUME_FUTEX_CLOCK_REALTIME \
+      || !defined lll_futex_timed_wait_bitset)
+-	  lll_futex_timed wait (&mutex->__data.__lock, oldval,
++	  lll_futex_timed_wait (&mutex->__data.__lock, oldval,
+ 				&rt, PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
+ #else
+ 	  int err = lll_futex_timed_wait_bitset (&mutex->__data.__lock,
diff --git a/SOURCES/glibc-rh1401665-2.patch b/SOURCES/glibc-rh1401665-2.patch
new file mode 100644
index 0000000..c2a8419
--- /dev/null
+++ b/SOURCES/glibc-rh1401665-2.patch
@@ -0,0 +1,49 @@
+commit 8e31cafb268938729a1314806a924d73fb1991c5
+Author: Torvald Riegel <triegel@redhat.com>
+Date:   Wed Dec 21 13:37:19 2016 +0100
+
+    Clear list of acquired robust mutexes in the child process after forking.
+    
+    Robust mutexes acquired at the time of a call to fork() do not remain
+    acquired by the forked child process.  We have to clear the list of
+    acquired robust mutexes before registering this list with the kernel;
+    otherwise, if some of the robust mutexes are process-shared, the parent
+    process can alter the child's robust mutex list, which can lead to
+    deadlocks or even modification of memory that may not be occupied by a
+    mutex anymore.
+    
+            [BZ #19402]
+            * sysdeps/nptl/fork.c (__libc_fork): Clear list of acquired robust
+            mutexes.
+
+Index: glibc-2.17-c758a686/nptl/sysdeps/unix/sysv/linux/fork.c
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/sysdeps/unix/sysv/linux/fork.c
++++ glibc-2.17-c758a686/nptl/sysdeps/unix/sysv/linux/fork.c
+@@ -161,12 +161,20 @@ __libc_fork (void)
+ #endif
+ 
+ #ifdef __NR_set_robust_list
+-      /* Initialize the robust mutex list which has been reset during
+-	 the fork.  We do not check for errors since if it fails here
+-	 it failed at process start as well and noone could have used
+-	 robust mutexes.  We also do not have to set
+-	 self->robust_head.futex_offset since we inherit the correct
+-	 value from the parent.  */
++      /* Initialize the robust mutex list setting in the kernel which has
++	 been reset during the fork.  We do not check for errors because if
++	 it fails here, it must have failed at process startup as well and
++	 nobody could have used robust mutexes.
++	 Before we do that, we have to clear the list of robust mutexes
++	 because we do not inherit ownership of mutexes from the parent.
++	 We do not have to set self->robust_head.futex_offset since we do
++	 inherit the correct value from the parent.  We do not need to clear
++	 the pending operation because it must have been zero when fork was
++	 called.  */
++# ifdef __PTHREAD_MUTEX_HAVE_PREV
++      self->robust_prev = &self->robust_head;
++# endif
++      self->robust_head.list = &self->robust_head;
+ # ifdef SHARED
+       if (__builtin_expect (__libc_pthread_functions_init, 0))
+ 	PTHFCT_CALL (ptr_set_robust, (self));
diff --git a/SOURCES/glibc-rh1401665-3.patch b/SOURCES/glibc-rh1401665-3.patch
new file mode 100644
index 0000000..5d698d1
--- /dev/null
+++ b/SOURCES/glibc-rh1401665-3.patch
@@ -0,0 +1,406 @@
+commit 8f9450a0b7a9e78267e8ae1ab1000ebca08e473e
+Author: Torvald Riegel <triegel@redhat.com>
+Date:   Sat Dec 24 00:40:46 2016 +0100
+
+    Add compiler barriers around modifications of the robust mutex list.
+    
+    Any changes to the per-thread list of robust mutexes currently acquired as
+    well as the pending-operations entry are not simply sequential code but
+    basically concurrent with any actions taken by the kernel when it tries
+    to clean up after a crash.  This is not quite like multi-thread concurrency
+    but more like signal-handler concurrency.
+    This patch fixes latent bugs by adding compiler barriers where necessary so
+    that it is ensured that the kernel crash handling sees consistent data.
+    
+    This is meant to be easy to backport, so we do not use C11-style signal
+    fences yet.
+    
+            * nptl/descr.h (ENQUEUE_MUTEX_BOTH, DEQUEUE_MUTEX): Add compiler
+            barriers and comments.
+            * nptl/pthread_mutex_lock.c (__pthread_mutex_lock_full): Likewise.
+            * nptl/pthread_mutex_timedlock.c (pthread_mutex_timedlock): Likewise.
+            * nptl/pthread_mutex_unlock.c (__pthread_mutex_unlock_full): Likewise.
+
+Index: glibc-2.17-c758a686/nptl/descr.h
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/descr.h
++++ glibc-2.17-c758a686/nptl/descr.h
+@@ -180,7 +180,16 @@ struct pthread
+      but the pointer to the next/previous element of the list points
+      in the middle of the object, the __next element.  Whenever
+      casting to __pthread_list_t we need to adjust the pointer
+-     first.  */
++     first.
++     These operations are effectively concurrent code in that the thread
++     can get killed at any point in time and the kernel takes over.  Thus,
++     the __next elements are a kind of concurrent list and we need to
++     enforce using compiler barriers that the individual operations happen
++     in such a way that the kernel always sees a consistent list.  The
++     backward links (ie, the __prev elements) are not used by the kernel.
++     FIXME We should use relaxed MO atomic operations here and signal fences
++     because this kind of concurrency is similar to synchronizing with a
++     signal handler.  */
+ # define QUEUE_PTR_ADJUST (offsetof (__pthread_list_t, __next))
+ 
+ # define ENQUEUE_MUTEX_BOTH(mutex, val)					      \
+@@ -192,6 +201,8 @@ struct pthread
+     mutex->__data.__list.__next = THREAD_GETMEM (THREAD_SELF,		      \
+ 						 robust_head.list);	      \
+     mutex->__data.__list.__prev = (void *) &THREAD_SELF->robust_head;	      \
++    /* Ensure that the new list entry is ready before we insert it.  */	      \
++    __asm ("" ::: "memory");						      \
+     THREAD_SETMEM (THREAD_SELF, robust_head.list,			      \
+ 		   (void *) (((uintptr_t) &mutex->__data.__list.__next)	      \
+ 			     | val));					      \
+@@ -206,6 +217,9 @@ struct pthread
+       ((char *) (((uintptr_t) mutex->__data.__list.__prev) & ~1ul)	      \
+        - QUEUE_PTR_ADJUST);						      \
+     prev->__next = mutex->__data.__list.__next;				      \
++    /* Ensure that we remove the entry from the list before we change the     \
++       __next pointer of the entry, which is read by the kernel.  */	      \
++    __asm ("" ::: "memory");						      \
+     mutex->__data.__list.__prev = NULL;					      \
+     mutex->__data.__list.__next = NULL;					      \
+   } while (0)
+@@ -220,6 +234,8 @@ struct pthread
+   do {									      \
+     mutex->__data.__list.__next						      \
+       = THREAD_GETMEM (THREAD_SELF, robust_list.__next);		      \
++    /* Ensure that the new list entry is ready before we insert it.  */	      \
++    __asm ("" ::: "memory");						      \
+     THREAD_SETMEM (THREAD_SELF, robust_list.__next,			      \
+ 		   (void *) (((uintptr_t) &mutex->__data.__list) | val));     \
+   } while (0)
+@@ -240,6 +256,9 @@ struct pthread
+ 	  }								      \
+ 									      \
+ 	runp->__next = next->__next;					      \
++	/* Ensure that we remove the entry from the list before we change the \
++	   __next pointer of the entry, which is read by the kernel.  */      \
++	    __asm ("" ::: "memory");					      \
+ 	mutex->__data.__list.__next = NULL;				      \
+       }									      \
+   } while (0)
+Index: glibc-2.17-c758a686/nptl/pthread_mutex_lock.c
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/pthread_mutex_lock.c
++++ glibc-2.17-c758a686/nptl/pthread_mutex_lock.c
+@@ -181,6 +181,9 @@ __pthread_mutex_lock_full (pthread_mutex
+     case PTHREAD_MUTEX_ROBUST_ADAPTIVE_NP:
+       THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
+ 		     &mutex->__data.__list.__next);
++      /* We need to set op_pending before starting the operation.  Also
++	 see comments at ENQUEUE_MUTEX.  */
++      __asm ("" ::: "memory");
+ 
+       oldval = mutex->__data.__lock;
+       /* This is set to FUTEX_WAITERS iff we might have shared the
+@@ -228,7 +231,12 @@ __pthread_mutex_lock_full (pthread_mutex
+ 	      /* But it is inconsistent unless marked otherwise.  */
+ 	      mutex->__data.__owner = PTHREAD_MUTEX_INCONSISTENT;
+ 
++	      /* We must not enqueue the mutex before we have acquired it.
++		 Also see comments at ENQUEUE_MUTEX.  */
++	      __asm ("" ::: "memory");
+ 	      ENQUEUE_MUTEX (mutex);
++	      /* We need to clear op_pending after we enqueue the mutex.  */
++	      __asm ("" ::: "memory");
+ 	      THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+ 
+ 	      /* Note that we deliberately exit here.  If we fall
+@@ -250,6 +258,8 @@ __pthread_mutex_lock_full (pthread_mutex
+ 	      int kind = PTHREAD_MUTEX_TYPE (mutex);
+ 	      if (kind == PTHREAD_MUTEX_ROBUST_ERRORCHECK_NP)
+ 		{
++		  /* We do not need to ensure ordering wrt another memory
++		     access.  Also see comments at ENQUEUE_MUTEX. */
+ 		  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
+ 				 NULL);
+ 		  return EDEADLK;
+@@ -257,6 +267,8 @@ __pthread_mutex_lock_full (pthread_mutex
+ 
+ 	      if (kind == PTHREAD_MUTEX_ROBUST_RECURSIVE_NP)
+ 		{
++		  /* We do not need to ensure ordering wrt another memory
++		     access.  */
+ 		  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
+ 				 NULL);
+ 
+@@ -309,12 +321,19 @@ __pthread_mutex_lock_full (pthread_mutex
+ 	  mutex->__data.__count = 0;
+ 	  int private = PTHREAD_ROBUST_MUTEX_PSHARED (mutex);
+ 	  lll_unlock (mutex->__data.__lock, private);
++	  /* FIXME This violates the mutex destruction requirements.  See
++	     __pthread_mutex_unlock_full.  */
+ 	  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+ 	  return ENOTRECOVERABLE;
+ 	}
+ 
+       mutex->__data.__count = 1;
++      /* We must not enqueue the mutex before we have acquired it.
++	 Also see comments at ENQUEUE_MUTEX.  */
++      __asm ("" ::: "memory");
+       ENQUEUE_MUTEX (mutex);
++      /* We need to clear op_pending after we enqueue the mutex.  */
++      __asm ("" ::: "memory");
+       THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+       break;
+ 
+@@ -331,10 +350,15 @@ __pthread_mutex_lock_full (pthread_mutex
+ 	int robust = mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP;
+ 
+ 	if (robust)
+-	  /* Note: robust PI futexes are signaled by setting bit 0.  */
+-	  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
+-			 (void *) (((uintptr_t) &mutex->__data.__list.__next)
+-				   | 1));
++	  {
++	    /* Note: robust PI futexes are signaled by setting bit 0.  */
++	    THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
++			   (void *) (((uintptr_t) &mutex->__data.__list.__next)
++				     | 1));
++	    /* We need to set op_pending before starting the operation.  Also
++	       see comments at ENQUEUE_MUTEX.  */
++	    __asm ("" ::: "memory");
++	  }
+ 
+ 	oldval = mutex->__data.__lock;
+ 
+@@ -343,12 +367,16 @@ __pthread_mutex_lock_full (pthread_mutex
+ 	  {
+ 	    if (kind == PTHREAD_MUTEX_ERRORCHECK_NP)
+ 	      {
++		/* We do not need to ensure ordering wrt another memory
++		   access.  */
+ 		THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+ 		return EDEADLK;
+ 	      }
+ 
+ 	    if (kind == PTHREAD_MUTEX_RECURSIVE_NP)
+ 	      {
++		/* We do not need to ensure ordering wrt another memory
++		   access.  */
+ 		THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+ 
+ 		/* Just bump the counter.  */
+@@ -411,7 +439,12 @@ __pthread_mutex_lock_full (pthread_mutex
+ 	    /* But it is inconsistent unless marked otherwise.  */
+ 	    mutex->__data.__owner = PTHREAD_MUTEX_INCONSISTENT;
+ 
++	    /* We must not enqueue the mutex before we have acquired it.
++	       Also see comments at ENQUEUE_MUTEX.  */
++	    __asm ("" ::: "memory");
+ 	    ENQUEUE_MUTEX_PI (mutex);
++	    /* We need to clear op_pending after we enqueue the mutex.  */
++	    __asm ("" ::: "memory");
+ 	    THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+ 
+ 	    /* Note that we deliberately exit here.  If we fall
+@@ -439,6 +472,8 @@ __pthread_mutex_lock_full (pthread_mutex
+ 						  PTHREAD_ROBUST_MUTEX_PSHARED (mutex)),
+ 			      0, 0);
+ 
++	    /* To the kernel, this will be visible after the kernel has
++	       acquired the mutex in the syscall.  */
+ 	    THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+ 	    return ENOTRECOVERABLE;
+ 	  }
+@@ -446,7 +481,12 @@ __pthread_mutex_lock_full (pthread_mutex
+ 	mutex->__data.__count = 1;
+ 	if (robust)
+ 	  {
++	    /* We must not enqueue the mutex before we have acquired it.
++	       Also see comments at ENQUEUE_MUTEX.  */
++	    __asm ("" ::: "memory");
+ 	    ENQUEUE_MUTEX_PI (mutex);
++	    /* We need to clear op_pending after we enqueue the mutex.  */
++	    __asm ("" ::: "memory");
+ 	    THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+ 	  }
+       }
+Index: glibc-2.17-c758a686/nptl/pthread_mutex_timedlock.c
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/pthread_mutex_timedlock.c
++++ glibc-2.17-c758a686/nptl/pthread_mutex_timedlock.c
+@@ -140,6 +140,9 @@ pthread_mutex_timedlock (pthread_mutex_t
+     case PTHREAD_MUTEX_ROBUST_ADAPTIVE_NP:
+       THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
+ 		     &mutex->__data.__list.__next);
++      /* We need to set op_pending before starting the operation.  Also
++	 see comments at ENQUEUE_MUTEX.  */
++      __asm ("" ::: "memory");
+ 
+       oldval = mutex->__data.__lock;
+       /* This is set to FUTEX_WAITERS iff we might have shared the
+@@ -177,7 +180,12 @@ pthread_mutex_timedlock (pthread_mutex_t
+ 	      /* But it is inconsistent unless marked otherwise.  */
+ 	      mutex->__data.__owner = PTHREAD_MUTEX_INCONSISTENT;
+ 
++	      /* We must not enqueue the mutex before we have acquired it.
++		 Also see comments at ENQUEUE_MUTEX.  */
++	      __asm ("" ::: "memory");
+ 	      ENQUEUE_MUTEX (mutex);
++	      /* We need to clear op_pending after we enqueue the mutex.  */
++	      __asm ("" ::: "memory");
+ 	      THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+ 
+ 	      /* Note that we deliberately exit here.  If we fall
+@@ -193,6 +201,8 @@ pthread_mutex_timedlock (pthread_mutex_t
+ 	      int kind = PTHREAD_MUTEX_TYPE (mutex);
+ 	      if (kind == PTHREAD_MUTEX_ROBUST_ERRORCHECK_NP)
+ 		{
++		  /* We do not need to ensure ordering wrt another memory
++		     access.  Also see comments at ENQUEUE_MUTEX. */
+ 		  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
+ 				 NULL);
+ 		  return EDEADLK;
+@@ -200,6 +210,8 @@ pthread_mutex_timedlock (pthread_mutex_t
+ 
+ 	      if (kind == PTHREAD_MUTEX_ROBUST_RECURSIVE_NP)
+ 		{
++		  /* We do not need to ensure ordering wrt another memory
++		     access.  */
+ 		  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
+ 				 NULL);
+ 
+@@ -294,12 +306,19 @@ pthread_mutex_timedlock (pthread_mutex_t
+ 	  mutex->__data.__count = 0;
+ 	  int private = PTHREAD_ROBUST_MUTEX_PSHARED (mutex);
+ 	  lll_unlock (mutex->__data.__lock, private);
++	  /* FIXME This violates the mutex destruction requirements.  See
++	     __pthread_mutex_unlock_full.  */
+ 	  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+ 	  return ENOTRECOVERABLE;
+ 	}
+ 
+       mutex->__data.__count = 1;
++      /* We must not enqueue the mutex before we have acquired it.
++	 Also see comments at ENQUEUE_MUTEX.  */
++      __asm ("" ::: "memory");
+       ENQUEUE_MUTEX (mutex);
++      /* We need to clear op_pending after we enqueue the mutex.  */
++      __asm ("" ::: "memory");
+       THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+       break;
+ 
+@@ -316,10 +335,15 @@ pthread_mutex_timedlock (pthread_mutex_t
+ 	int robust = mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP;
+ 
+ 	if (robust)
+-	  /* Note: robust PI futexes are signaled by setting bit 0.  */
+-	  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
+-			 (void *) (((uintptr_t) &mutex->__data.__list.__next)
+-				   | 1));
++	  {
++	    /* Note: robust PI futexes are signaled by setting bit 0.  */
++	    THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
++			   (void *) (((uintptr_t) &mutex->__data.__list.__next)
++				     | 1));
++	    /* We need to set op_pending before starting the operation.  Also
++	       see comments at ENQUEUE_MUTEX.  */
++	    __asm ("" ::: "memory");
++	  }
+ 
+ 	oldval = mutex->__data.__lock;
+ 
+@@ -328,12 +352,16 @@ pthread_mutex_timedlock (pthread_mutex_t
+ 	  {
+ 	    if (kind == PTHREAD_MUTEX_ERRORCHECK_NP)
+ 	      {
++		/* We do not need to ensure ordering wrt another memory
++		   access.  */
+ 		THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+ 		return EDEADLK;
+ 	      }
+ 
+ 	    if (kind == PTHREAD_MUTEX_RECURSIVE_NP)
+ 	      {
++		/* We do not need to ensure ordering wrt another memory
++		   access.  */
+ 		THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+ 
+ 		/* Just bump the counter.  */
+@@ -420,7 +448,12 @@ pthread_mutex_timedlock (pthread_mutex_t
+ 	    /* But it is inconsistent unless marked otherwise.  */
+ 	    mutex->__data.__owner = PTHREAD_MUTEX_INCONSISTENT;
+ 
++	    /* We must not enqueue the mutex before we have acquired it.
++	       Also see comments at ENQUEUE_MUTEX.  */
++	    __asm ("" ::: "memory");
+ 	    ENQUEUE_MUTEX_PI (mutex);
++	    /* We need to clear op_pending after we enqueue the mutex.  */
++	    __asm ("" ::: "memory");
+ 	    THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+ 
+ 	    /* Note that we deliberately exit here.  If we fall
+@@ -443,6 +476,8 @@ pthread_mutex_timedlock (pthread_mutex_t
+ 						  PTHREAD_ROBUST_MUTEX_PSHARED (mutex)),
+ 			      0, 0);
+ 
++	    /* To the kernel, this will be visible after the kernel has
++	       acquired the mutex in the syscall.  */
+ 	    THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+ 	    return ENOTRECOVERABLE;
+ 	  }
+@@ -450,7 +485,12 @@ pthread_mutex_timedlock (pthread_mutex_t
+ 	mutex->__data.__count = 1;
+ 	if (robust)
+ 	  {
++	    /* We must not enqueue the mutex before we have acquired it.
++	       Also see comments at ENQUEUE_MUTEX.  */
++	    __asm ("" ::: "memory");
+ 	    ENQUEUE_MUTEX_PI (mutex);
++	    /* We need to clear op_pending after we enqueue the mutex.  */
++	    __asm ("" ::: "memory");
+ 	    THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+ 	  }
+ 	}
+Index: glibc-2.17-c758a686/nptl/pthread_mutex_unlock.c
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/pthread_mutex_unlock.c
++++ glibc-2.17-c758a686/nptl/pthread_mutex_unlock.c
+@@ -143,6 +143,9 @@ __pthread_mutex_unlock_full (pthread_mut
+       /* Remove mutex from the list.  */
+       THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
+ 		     &mutex->__data.__list.__next);
++      /* We must set op_pending before we dequeue the mutex.  Also see
++	 comments at ENQUEUE_MUTEX.  */
++      __asm ("" ::: "memory");
+       DEQUEUE_MUTEX (mutex);
+ 
+       mutex->__data.__owner = newowner;
+@@ -159,6 +162,14 @@ __pthread_mutex_unlock_full (pthread_mut
+ 			     & FUTEX_WAITERS) != 0))
+ 	lll_futex_wake (&mutex->__data.__lock, 1, private);
+ 
++      /* We must clear op_pending after we release the mutex.
++	 FIXME However, this violates the mutex destruction requirements
++	 because another thread could acquire the mutex, destroy it, and
++	 reuse the memory for something else; then, if this thread crashes,
++	 and the memory happens to have a value equal to the TID, the kernel
++	 will believe it is still related to the mutex (which has been
++	 destroyed already) and will modify some other random object.  */
++      __asm ("" ::: "memory");
+       THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+       break;
+ 
+@@ -223,6 +234,9 @@ __pthread_mutex_unlock_full (pthread_mut
+ 	  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
+ 			 (void *) (((uintptr_t) &mutex->__data.__list.__next)
+ 				   | 1));
++	  /* We must set op_pending before we dequeue the mutex.  Also see
++	     comments at ENQUEUE_MUTEX.  */
++	  __asm ("" ::: "memory");
+ 	  DEQUEUE_MUTEX (mutex);
+ 	}
+ 
+@@ -247,6 +261,9 @@ __pthread_mutex_unlock_full (pthread_mut
+ 			    __lll_private_flag (FUTEX_UNLOCK_PI, private));
+ 	}
+ 
++      /* This happens after the kernel releases the mutex but violates the
++	 mutex destruction requirements; see comments in the code handling
++	 PTHREAD_MUTEX_ROBUST_NORMAL_NP.  */
+       THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+       break;
+ 
diff --git a/SOURCES/glibc-rh1401665-4.patch b/SOURCES/glibc-rh1401665-4.patch
new file mode 100644
index 0000000..c4bc4ea
--- /dev/null
+++ b/SOURCES/glibc-rh1401665-4.patch
@@ -0,0 +1,208 @@
+commit faf0e9c84119742dd9ebb79060faa22c52ae80a1
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Fri Jan 27 06:53:19 2017 +0100
+
+    nptl: Add tst-robust-fork
+
+Index: glibc-2.17-c758a686/nptl/Makefile
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/Makefile
++++ glibc-2.17-c758a686/nptl/Makefile
+@@ -271,7 +271,7 @@ tests = tst-typesizes \
+ 	tst-initializers1 $(patsubst %,tst-initializers1-%,c89 gnu89 c99 gnu99) \
+ 	tst-mutex-errorcheck \
+ 	tst-minstack-cancel tst-minstack-exit tst-minstack-throw \
+-	tst-thread-exit-clobber
++	tst-thread-exit-clobber tst-robust-fork
+ xtests = tst-setuid1 tst-setuid1-static tst-mutexpp1 tst-mutexpp6 tst-mutexpp10
+ test-srcs = tst-oddstacklimit
+ 
+Index: glibc-2.17-c758a686/nptl/tst-robust-fork.c
+===================================================================
+--- /dev/null
++++ glibc-2.17-c758a686/nptl/tst-robust-fork.c
+@@ -0,0 +1,184 @@
++/* Test the interaction of fork and robust mutexes.
++   Copyright (C) 2017 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 <errno.h>
++#include <stdbool.h>
++#include <stdio.h>
++#include <support/check.h>
++#include <support/test-driver.h>
++#include <support/xthread.h>
++#include <support/xunistd.h>
++#include <sys/mman.h>
++
++/* Data shared between processes. */
++struct shared
++{
++  pthread_mutex_t parent_mutex;
++  pthread_mutex_t child_mutex;
++};
++
++/* These flags control which mutex settings are enabled in the parent
++   and child (separately).  */
++enum mutex_bits
++  {
++    mutex_pshared = 1,
++    mutex_robust = 2,
++    mutex_pi = 4,
++    mutex_check = 8,
++
++    /* All bits combined.  */
++    mutex_all_bits = 15,
++  };
++
++static void
++mutex_init (pthread_mutex_t *mutex, int bits)
++{
++  pthread_mutexattr_t attr;
++  xpthread_mutexattr_init (&attr);
++  if (bits & mutex_pshared)
++    xpthread_mutexattr_setpshared (&attr, PTHREAD_PROCESS_SHARED);
++  if (bits & mutex_robust)
++    xpthread_mutexattr_setrobust (&attr, PTHREAD_MUTEX_ROBUST);
++  if (bits & mutex_pi)
++    xpthread_mutexattr_setprotocol (&attr, PTHREAD_PRIO_INHERIT);
++  if (bits & mutex_check)
++    xpthread_mutexattr_settype (&attr, PTHREAD_MUTEX_ERRORCHECK);
++  xpthread_mutex_init (mutex, &attr);
++  xpthread_mutexattr_destroy (&attr);
++}
++
++static void
++one_test (int parent_bits, int child_bits, int nonshared_bits,
++          bool lock_nonshared, bool lock_child)
++{
++
++  struct shared *shared = xmmap (NULL, sizeof (*shared),
++                                 PROT_READ | PROT_WRITE,
++                                 MAP_ANONYMOUS | MAP_SHARED, -1);
++  mutex_init (&shared->parent_mutex, parent_bits);
++  mutex_init (&shared->child_mutex, child_bits);
++
++  /* Acquire the parent mutex in the parent.  */
++  xpthread_mutex_lock (&shared->parent_mutex);
++
++  pthread_mutex_t nonshared_mutex;
++  mutex_init (&nonshared_mutex, nonshared_bits);
++  if (lock_nonshared)
++    xpthread_mutex_lock (&nonshared_mutex);
++
++  pid_t pid = xfork ();
++  if (pid == 0)
++    {
++      /* Child process.  */
++      if (lock_child)
++        xpthread_mutex_lock (&shared->child_mutex);
++      else
++        xmunmap (shared, sizeof (*shared));
++      if (lock_nonshared)
++        /* Reinitialize the non-shared mutex if it was locked in the
++           parent.  */
++        mutex_init (&nonshared_mutex, nonshared_bits);
++      xpthread_mutex_lock (&nonshared_mutex);
++      /* For robust mutexes, the _exit call will perform the unlock
++         instead.  */
++      if (lock_child && !(child_bits & mutex_robust))
++        xpthread_mutex_unlock (&shared->child_mutex);
++      _exit (0);
++    }
++  /* Parent process. */
++  {
++    int status;
++    xwaitpid (pid, &status, 0);
++    TEST_VERIFY (status == 0);
++  }
++
++  if (parent_bits & mutex_check)
++    /* Test for expected self-deadlock.  This is only possible to
++       detect if the mutex is error-checking.  */
++    TEST_VERIFY_EXIT (pthread_mutex_lock (&shared->parent_mutex) == EDEADLK);
++
++  pid = xfork ();
++  if (pid == 0)
++    {
++      /* Child process.  We can perform some checks only if we are
++         dealing with process-shared mutexes.  */
++      if (parent_bits & mutex_pshared)
++        /* It must not be possible to acquire the parent mutex.
++
++           NB: This check touches a mutex which has been acquired in
++           the parent at fork time, so it might be deemed undefined
++           behavior, pending the resolution of Austin Groups issue
++           1112.  */
++        TEST_VERIFY_EXIT (pthread_mutex_trylock (&shared->parent_mutex)
++                          == EBUSY);
++      if (lock_child && (child_bits & mutex_robust))
++        {
++          if (!(child_bits & mutex_pshared))
++            /* No further tests possible.  */
++            _exit (0);
++          TEST_VERIFY_EXIT (pthread_mutex_lock (&shared->child_mutex)
++                            == EOWNERDEAD);
++          xpthread_mutex_consistent (&shared->child_mutex);
++        }
++      else
++        /* We did not acquire the lock in the first child process, or
++           we unlocked the mutex again because the mutex is not a
++           robust mutex.  */
++        xpthread_mutex_lock (&shared->child_mutex);
++      xpthread_mutex_unlock (&shared->child_mutex);
++      _exit (0);
++    }
++  /* Parent process. */
++  {
++    int status;
++    xwaitpid (pid, &status, 0);
++    TEST_VERIFY (status == 0);
++  }
++
++  if (lock_nonshared)
++    xpthread_mutex_unlock (&nonshared_mutex);
++  xpthread_mutex_unlock (&shared->parent_mutex);
++  xpthread_mutex_destroy (&shared->parent_mutex);
++  xpthread_mutex_destroy (&shared->child_mutex);
++  xpthread_mutex_destroy (&nonshared_mutex);
++  xmunmap (shared, sizeof (*shared));
++}
++
++static int
++do_test (void)
++{
++  for (int parent_bits = 0; parent_bits <= mutex_all_bits; ++parent_bits)
++    for (int child_bits = 0; child_bits <= mutex_all_bits; ++child_bits)
++      for (int nonshared_bits = 0; nonshared_bits <= mutex_all_bits;
++           ++nonshared_bits)
++        for (int lock_nonshared = 0; lock_nonshared < 2; ++lock_nonshared)
++          for (int lock_child = 0; lock_child < 2; ++lock_child)
++            {
++              if (test_verbose)
++                printf ("info: parent_bits=0x%x child_bits=0x%x"
++                        " nonshared_bits=0x%x%s%s\n",
++                        parent_bits, child_bits, nonshared_bits,
++                        lock_nonshared ? " lock_nonshared" : "",
++                        lock_child ? " lock_child" : "");
++              one_test (parent_bits, child_bits, nonshared_bits,
++                        lock_nonshared, lock_child);
++            }
++  return 0;
++}
++
++#include <support/test-driver.c>
diff --git a/SOURCES/glibc-rh1401665-5.patch b/SOURCES/glibc-rh1401665-5.patch
new file mode 100644
index 0000000..c9b5411
--- /dev/null
+++ b/SOURCES/glibc-rh1401665-5.patch
@@ -0,0 +1,176 @@
+commit 5920a4a624b1f4db310d1c44997b640e2a4653e5
+Author: Carlos O'Donell <carlos@redhat.com>
+Date:   Sat Jul 29 00:02:03 2017 -0400
+
+    mutex: Fix robust mutex lock acquire (Bug 21778)
+    
+    65810f0ef05e8c9e333f17a44e77808b163ca298 fixed a robust mutex bug but
+    introduced BZ 21778: if the CAS used to try to acquire a lock fails, the
+    expected value is not updated, which breaks other cases in the loce
+    acquisition loop.  The fix is to simply update the expected value with
+    the value returned by the CAS, which ensures that behavior is as if the
+    first case with the CAS never happened (if the CAS fails).
+    
+    This is a regression introduced in the last release.
+    
+    Tested on x86_64, i686, ppc64, ppc64le, s390x, aarch64, armv7hl.
+
+Index: glibc-2.17-c758a686/nptl/Makefile
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/Makefile
++++ glibc-2.17-c758a686/nptl/Makefile
+@@ -204,7 +204,7 @@ CFLAGS-tst-thread-exit-clobber.o = -std=
+ tests = tst-typesizes \
+ 	tst-attr1 tst-attr2 tst-attr3 tst-default-attr \
+ 	tst-mutex1 tst-mutex2 tst-mutex3 tst-mutex4 tst-mutex5 tst-mutex6 \
+-	tst-mutex7 tst-mutex8 tst-mutex9 tst-mutex5a tst-mutex7a \
++	tst-mutex7 tst-mutex8 tst-mutex9 tst-mutex5a tst-mutex7a tst-mutex7robust \
+ 	tst-mutexpi1 tst-mutexpi2 tst-mutexpi3 tst-mutexpi4 tst-mutexpi5 \
+ 	tst-mutexpi5a tst-mutexpi6 tst-mutexpi7 tst-mutexpi7a tst-mutexpi8 \
+ 	tst-mutexpi9 \
+Index: glibc-2.17-c758a686/nptl/pthread_mutex_lock.c
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/pthread_mutex_lock.c
++++ glibc-2.17-c758a686/nptl/pthread_mutex_lock.c
+@@ -198,11 +198,14 @@ __pthread_mutex_lock_full (pthread_mutex
+ 	{
+ 	  /* Try to acquire the lock through a CAS from 0 (not acquired) to
+ 	     our TID | assume_other_futex_waiters.  */
+-	  if (__glibc_likely ((oldval == 0)
+-			      && (atomic_compare_and_exchange_bool_acq
+-				  (&mutex->__data.__lock,
+-				   id | assume_other_futex_waiters, 0) == 0)))
+-	      break;
++	  if (__glibc_likely (oldval == 0))
++	    {
++	      oldval
++	        = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
++	            id | assume_other_futex_waiters, 0);
++	      if (__glibc_likely (oldval == 0))
++		break;
++	    }
+ 
+ 	  if ((oldval & FUTEX_OWNER_DIED) != 0)
+ 	    {
+Index: glibc-2.17-c758a686/nptl/pthread_mutex_timedlock.c
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/pthread_mutex_timedlock.c
++++ glibc-2.17-c758a686/nptl/pthread_mutex_timedlock.c
+@@ -154,11 +154,14 @@ pthread_mutex_timedlock (pthread_mutex_t
+ 	{
+ 	  /* Try to acquire the lock through a CAS from 0 (not acquired) to
+ 	     our TID | assume_other_futex_waiters.  */
+-	  if (__glibc_likely ((oldval == 0)
+-			      && (atomic_compare_and_exchange_bool_acq
+-				  (&mutex->__data.__lock,
+-				   id | assume_other_futex_waiters, 0) == 0)))
+-	      break;
++	  if (__glibc_likely (oldval == 0))
++	    {
++	      oldval
++	        = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
++	            id | assume_other_futex_waiters, 0);
++	      if (__glibc_likely (oldval == 0))
++		break;
++	    }
+ 
+ 	  if ((oldval & FUTEX_OWNER_DIED) != 0)
+ 	    {
+Index: glibc-2.17-c758a686/nptl/tst-mutex7.c
+===================================================================
+--- glibc-2.17-c758a686.orig/nptl/tst-mutex7.c
++++ glibc-2.17-c758a686/nptl/tst-mutex7.c
+@@ -22,25 +22,41 @@
+ #include <stdlib.h>
+ #include <time.h>
+ 
+-
++/* This test is a template for other tests to use.  Other tests define
++   the following macros to change the behaviour of the template test.
++   The test is very simple, it configures N threads given the parameters
++   below and then proceeds to go through mutex lock and unlock
++   operations in each thread as described before for the thread
++   function.  */
+ #ifndef TYPE
+ # define TYPE PTHREAD_MUTEX_DEFAULT
+ #endif
+-
++#ifndef ROBUST
++# define ROBUST PTHREAD_MUTEX_STALLED
++#endif
++#ifndef DELAY_NSEC
++# define DELAY_NSEC 11000
++#endif
++#ifndef ROUNDS
++# define ROUNDS 1000
++#endif
++#ifndef N
++# define N 100
++#endif
+ 
+ static pthread_mutex_t lock;
+ 
+-
+-#define ROUNDS 1000
+-#define N 100
+-
+-
++/* Each thread locks and the subsequently unlocks the lock, yielding
++   the smallest critical section possible.  After the unlock the thread
++   waits DELAY_NSEC nanoseconds before doing the lock and unlock again.
++   Every thread does this ROUNDS times.  The lock and unlock are
++   checked for errors.  */
+ static void *
+ tf (void *arg)
+ {
+   int nr = (long int) arg;
+   int cnt;
+-  struct timespec ts = { .tv_sec = 0, .tv_nsec = 11000 };
++  struct timespec ts = { .tv_sec = 0, .tv_nsec = DELAY_NSEC };
+ 
+   for (cnt = 0; cnt < ROUNDS; ++cnt)
+     {
+@@ -56,13 +72,16 @@ tf (void *arg)
+ 	  return (void *) 1l;
+ 	}
+ 
+-      nanosleep (&ts, NULL);
++      if ((ts.tv_sec > 0) || (ts.tv_nsec > 0))
++	nanosleep (&ts, NULL);
+     }
+ 
+   return NULL;
+ }
+ 
+-
++/* Setup and run N threads, where each thread does as described
++   in the above thread function.  The threads are given a minimal 1MiB
++   stack since they don't do anything between the lock and unlock.  */
+ static int
+ do_test (void)
+ {
+@@ -80,6 +99,12 @@ do_test (void)
+       exit (1);
+     }
+ 
++  if (pthread_mutexattr_setrobust (&a, ROBUST) != 0)
++    {
++      puts ("mutexattr_setrobust failed");
++      exit (1);
++    }
++
+ #ifdef ENABLE_PI
+   if (pthread_mutexattr_setprotocol (&a, PTHREAD_PRIO_INHERIT) != 0)
+     {
+Index: glibc-2.17-c758a686/nptl/tst-mutex7robust.c
+===================================================================
+--- /dev/null
++++ glibc-2.17-c758a686/nptl/tst-mutex7robust.c
+@@ -0,0 +1,7 @@
++/* Bug 21778: Fix oversight in robust mutex lock acquisition.  */
++#define TYPE PTHREAD_MUTEX_NORMAL
++#define ROBUST PTHREAD_MUTEX_ROBUST
++#define DELAY_NSEC 0
++#define ROUNDS 1000
++#define N 32
++#include "tst-mutex7.c"
diff --git a/SOURCES/glibc-rh1447808-0.patch b/SOURCES/glibc-rh1447808-0.patch
new file mode 100644
index 0000000..3eb8143
--- /dev/null
+++ b/SOURCES/glibc-rh1447808-0.patch
@@ -0,0 +1,28 @@
+Partial backport. Only the i686 piece is needed in glibc 2.17, and
+the x86_64 piece doesn't apply anyway because we lack the multiarch
+implementations present in upstream. Instead the the x86_64 piece
+is fixed by glibc-rh1447808-2.patch. 
+
+commit e826574c985a15a500262f2fbd21c7e9259d3d11 (origin/master, origin/HEAD)
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Tue Jun 12 15:00:33 2018 +0200
+
+    x86: Make strncmp usable from rtld
+    
+    Due to the way the conditions were written, the rtld build of strncmp
+    ended up with no definition of the strncmp symbol at all: The
+    implementations were renamed for use within an IFUNC resolver, but the
+    IFUNC resolver itself was missing (because rtld does not use IFUNCs).
+    
+    Reviewed-by: Carlos O'Donell <carlos@redhat.com>
+
+Index: glibc-2.17-c758a686/sysdeps/i386/i686/multiarch/strncmp-c.c
+===================================================================
+--- glibc-2.17-c758a686.orig/sysdeps/i386/i686/multiarch/strncmp-c.c
++++ glibc-2.17-c758a686/sysdeps/i386/i686/multiarch/strncmp-c.c
+@@ -1,4 +1,4 @@
+-#ifdef SHARED
++#if defined (SHARED) && IS_IN (libc)
+ # define STRNCMP __strncmp_ia32
+ # undef libc_hidden_builtin_def
+ # define libc_hidden_builtin_def(name)  \
diff --git a/SOURCES/glibc-rh1447808-1.patch b/SOURCES/glibc-rh1447808-1.patch
new file mode 100644
index 0000000..e9ef0ff
--- /dev/null
+++ b/SOURCES/glibc-rh1447808-1.patch
@@ -0,0 +1,404 @@
+commit 5aad5f617892e75d91d4c8fb7594ff35b610c042
+Author: Carlos O'Donell <carlos@redhat.com>
+Date:   Tue Jun 5 23:55:17 2018 -0400
+
+    Improve DST handling (Bug 23102, Bug 21942, Bug 18018, Bug 23259).
+    
+    This commit improves DST handling significantly in the following
+    ways: firstly is_dst () is overhauled to correctly process DST
+    sequences that would be accepted given the ELF gABI.  This means that
+    we actually now accept slightly more sequences than before.  Now we
+    accept $ORIGIN$ORIGIN, but in the past we accepted only $ORIGIN\0 or
+    $ORIGIN/..., but this kind of behaviour results in unexpected
+    and uninterpreted DST sequences being used as literal search paths
+    leading to security defects.  Therefore the first step in correcting
+    this defect is making is_dst () properly account for all DSTs
+    and making the function context free in the sense that it counts
+    DSTs without knowledge of path, or AT_SECURE.  Next, _dl_dst_count ()
+    is also simplified to count all DSTs regardless of context.
+    Then in _dl_dst_substitute () we reintroduce context-dependent
+    processing for such things as AT_SECURE handling.  At the level of
+    _dl_dst_substitute we can have access to things like the true start
+    of the string sequence to validate $ORIGIN-based paths rooted in
+    trusted directories.  Lastly, we tighten up the accepted sequences
+    in AT_SECURE, and avoid leaving known unexpanded DSTs, this is
+    noted in the NEWS entry.
+    
+    Verified with a sequence of 68 tests on x86_64 that cover
+    non-AT_SECURE and AT_SECURE testing using a sysroot (requires root
+    to run).  The tests cover cases for bug 23102, bug 21942, bug 18018,
+    and bug 23259.  These tests are not yet appropriate for the glibc
+    regression testsuite, but with the upcoming test-in-container testing
+    framework it should be possible to include these tests upstream soon.
+    
+    See the mailing list for the tests:
+    https://www.sourceware.org/ml/libc-alpha/2018-06/msg00251.html
+
+Index: glibc-2.17-c758a686/elf/dl-deps.c
+===================================================================
+--- glibc-2.17-c758a686.orig/elf/dl-deps.c
++++ glibc-2.17-c758a686/elf/dl-deps.c
+@@ -101,7 +101,7 @@ struct list
+   ({									      \
+     const char *__str = (str);						      \
+     const char *__result = __str;					      \
+-    size_t __dst_cnt = DL_DST_COUNT (__str);				      \
++    size_t __dst_cnt = _dl_dst_count (__str);				      \
+ 									      \
+     if (__dst_cnt != 0)							      \
+       {									      \
+Index: glibc-2.17-c758a686/elf/dl-dst.h
+===================================================================
+--- glibc-2.17-c758a686.orig/elf/dl-dst.h
++++ glibc-2.17-c758a686/elf/dl-dst.h
+@@ -18,19 +18,6 @@
+ 
+ #include "trusted-dirs.h"
+ 
+-/* Determine the number of DST elements in the name.  Only if IS_PATH is
+-   nonzero paths are recognized (i.e., multiple, ':' separated filenames).  */
+-#define DL_DST_COUNT(name) \
+-  ({									      \
+-    size_t __cnt = 0;							      \
+-    const char *__sf = strchr (name, '$');				      \
+-									      \
+-    if (__builtin_expect (__sf != NULL, 0))				      \
+-      __cnt = _dl_dst_count (__sf);					      \
+-									      \
+-    __cnt; })
+-
+-
+ #ifdef SHARED
+ # define IS_RTLD(l) (l) == &GL(dl_rtld_map)
+ #else
+Index: glibc-2.17-c758a686/elf/dl-load.c
+===================================================================
+--- glibc-2.17-c758a686.orig/elf/dl-load.c
++++ glibc-2.17-c758a686/elf/dl-load.c
+@@ -174,12 +174,6 @@ is_trusted_path_normalize (const char *p
+   if (len == 0)
+     return false;
+ 
+-  if (*path == ':')
+-    {
+-      ++path;
+-      --len;
+-    }
+-
+   char *npath = (char *) alloca (len + 2);
+   char *wnp = npath;
+   while (*path != '\0')
+@@ -230,120 +224,172 @@ is_trusted_path_normalize (const char *p
+   return false;
+ }
+ 
++/* Given a substring starting at INPUT, just after the DST '$' start
++   token, determine if INPUT contains DST token REF, following the
++   ELF gABI rules for DSTs:
++
++   * Longest possible sequence using the rules (greedy).
++
++   * Must start with a $ (enforced by caller).
++
++   * Must follow $ with one underscore or ASCII [A-Za-z] (caller
++     follows these rules for REF) or '{' (start curly quoted name).
++
++   * Must follow first two characters with zero or more [A-Za-z0-9_]
++     (enforced by caller) or '}' (end curly quoted name).
+ 
++   If the sequence is a DST matching REF then the length of the DST
++   (excluding the $ sign but including curly braces, if any) is
++   returned, otherwise 0.  */
+ static size_t
+-is_dst (const char *start, const char *name, const char *str, int secure)
++is_dst (const char *input, const char *ref)
+ {
+-  size_t len;
+   bool is_curly = false;
+ 
+-  if (name[0] == '{')
++  /* Is a ${...} input sequence?  */
++  if (input[0] == '{')
+     {
+       is_curly = true;
+-      ++name;
++      ++input;
+     }
+ 
+-  len = 0;
+-  while (name[len] == str[len] && name[len] != '\0')
+-    ++len;
+-
+-  if (is_curly)
+-    {
+-      if (name[len] != '}')
+-	return 0;
+-
+-      /* Point again at the beginning of the name.  */
+-      --name;
+-      /* Skip over closing curly brace and adjust for the --name.  */
+-      len += 2;
+-    }
+-  else if (name[len] != '\0' && name[len] != '/')
+-    return 0;
+-
+-  if (__builtin_expect (secure, 0)
+-      && ((name[len] != '\0' && name[len] != '/')
+-	  || (name != start + 1)))
++  /* Check for matching name, following closing curly brace (if
++     required), or trailing characters which are part of an
++     identifier.  */
++  size_t rlen = strlen (ref);
++  if (strncmp (input, ref, rlen) != 0
++      || (is_curly && input[rlen] != '}')
++      || ((input[rlen] >= 'A' && input[rlen] <= 'Z')
++	  || (input[rlen] >= 'a' && input[rlen] <= 'z')
++	  || (input[rlen] >= '0' && input[rlen] <= '9')
++	  || (input[rlen] == '_')))
+     return 0;
+ 
+-  return len;
++  if (is_curly)
++    /* Count the two curly braces.  */
++    return rlen + 2;
++  else
++    return rlen;
+ }
+ 
+-
++/* INPUT is the start of a DST sequence at the first '$' occurrence.
++   If there is a DST we call into _dl_dst_count to count the number of
++   DSTs.  We count all known DSTs regardless of __libc_enable_secure;
++   the caller is responsible for enforcing the security of the
++   substitution rules (usually _dl_dst_substitute).  */
+ size_t
+-_dl_dst_count (const char *name)
++_dl_dst_count (const char *input)
+ {
+-  const char *const start = name;
+   size_t cnt = 0;
+ 
++  input = strchr (input, '$');
++
++  /* Most likely there is no DST.  */
++  if (__glibc_likely (input == NULL))
++    return 0;
++
+   do
+     {
+       size_t len;
+ 
+-      /* $ORIGIN is not expanded for SUID/GUID programs (except if it
+-	 is $ORIGIN alone) and it must always appear first in path.  */
+-      ++name;
+-      if ((len = is_dst (start, name, "ORIGIN", INTUSE(__libc_enable_secure))) != 0
+-	  || (len = is_dst (start, name, "PLATFORM", 0)) != 0
+-	  || (len = is_dst (start, name, "LIB", 0)) != 0)
++      ++input;
++      /* All DSTs must follow ELF gABI rules, see is_dst ().  */
++      if ((len = is_dst (input, "ORIGIN")) != 0
++	  || (len = is_dst (input, "PLATFORM")) != 0
++	  || (len = is_dst (input, "LIB")) != 0)
+ 	++cnt;
+ 
+-      name = strchr (name + len, '$');
++      /* There may be more than one DST in the input.  */
++      input = strchr (input + len, '$');
+     }
+-  while (name != NULL);
++  while (input != NULL);
+ 
+   return cnt;
+ }
+ 
+-
++/* Process INPUT for DSTs and store in RESULT using the information
++   from link map L to resolve the DSTs. This function only handles one
++   path at a time and does not handle colon-separated path lists (see
++   fillin_rpath ()).  Lastly the size of result in bytes should be at
++   least equal to the value returned by DL_DST_REQUIRED.  Note that it
++   is possible for a DT_NEEDED, DT_AUXILIARY, and DT_FILTER entries to
++   have colons, but we treat those as literal colons here, not as path
++   list delimeters.  */
+ char *
+-_dl_dst_substitute (struct link_map *l, const char *name, char *result)
++_dl_dst_substitute (struct link_map *l, const char *input, char *result)
+ {
+-  const char *const start = name;
+-
+-  /* Now fill the result path.  While copying over the string we keep
+-     track of the start of the last path element.  When we come accross
+-     a DST we copy over the value or (if the value is not available)
+-     leave the entire path element out.  */
++  /* Copy character-by-character from input into the working pointer
++     looking for any DSTs.  We track the start of input and if we are
++     going to check for trusted paths, all of which are part of $ORIGIN
++     handling in SUID/SGID cases (see below).  In some cases, like when
++     a DST cannot be replaced, we may set result to an empty string and
++     return.  */
+   char *wp = result;
+-  char *last_elem = result;
++  const char *start = input;
+   bool check_for_trusted = false;
+ 
+   do
+     {
+-      if (__builtin_expect (*name == '$', 0))
++      if (__glibc_unlikely (*input == '$'))
+ 	{
+ 	  const char *repl = NULL;
+ 	  size_t len;
+ 
+-	  ++name;
+-	  if ((len = is_dst (start, name, "ORIGIN", INTUSE(__libc_enable_secure))) != 0)
++	  ++input;
++	  if ((len = is_dst (input, "ORIGIN")) != 0)
+ 	    {
+-#ifndef SHARED
+-	      if (l == NULL)
+-		repl = _dl_get_origin ();
++	      /* For SUID/GUID programs we normally ignore the path with
++		 $ORIGIN in DT_RUNPATH, or DT_RPATH.  However, there is
++		 one exception to this rule, and it is:
++
++		   * $ORIGIN appears as the first path element, and is
++		     the only string in the path or is immediately
++		     followed by a path separator and the rest of the
++		     path.
++
++		   * The path is rooted in a trusted directory.
++
++		 This exception allows such programs to reference
++		 shared libraries in subdirectories of trusted
++		 directories.  The use case is one of general
++		 organization and deployment flexibility.
++		 Trusted directories are usually such paths as "/lib64"
++		 or "/usr/lib64", and the usual RPATHs take the form of
++		 [$ORIGIN/../$LIB/somedir].  */
++	      if (__glibc_unlikely (__libc_enable_secure)
++		  && !(input == start + 1
++		       && (input[len] == '\0' || input[len] == '/')))
++		repl = (const char *) -1;
+ 	      else
++		{
++#ifndef SHARED
++		  if (l == NULL)
++		    repl = _dl_get_origin ();
++		  else
+ #endif
+-		repl = l->l_origin;
++		    repl = l->l_origin;
++		}
+ 
+ 	      check_for_trusted = (INTUSE(__libc_enable_secure)
+ 				   && l->l_type == lt_executable);
+ 	    }
+-	  else if ((len = is_dst (start, name, "PLATFORM", 0)) != 0)
++	  else if ((len = is_dst (input, "PLATFORM")) != 0)
+ 	    repl = GLRO(dl_platform);
+-	  else if ((len = is_dst (start, name, "LIB", 0)) != 0)
++	  else if ((len = is_dst (input, "LIB")) != 0)
+ 	    repl = DL_DST_LIB;
+ 
+ 	  if (repl != NULL && repl != (const char *) -1)
+ 	    {
+ 	      wp = __stpcpy (wp, repl);
+-	      name += len;
++	      input += len;
+ 	    }
+-	  else if (len > 1)
++	  else if (len != 0)
+ 	    {
+-	      /* We cannot use this path element, the value of the
+-		 replacement is unknown.  */
+-	      wp = last_elem;
+-	      break;
++	      /* We found a valid DST that we know about, but we could
++	         not find a replacement value for it, therefore we
++		 cannot use this path and discard it.  */
++	      *result = '\0';
++	      return result;
+ 	    }
+ 	  else
+ 	    /* No DST we recognize.  */
+@@ -351,16 +397,26 @@ _dl_dst_substitute (struct link_map *l,
+ 	}
+       else
+ 	{
+-	  *wp++ = *name++;
++	  *wp++ = *input++;
+ 	}
+     }
+-  while (*name != '\0');
++  while (*input != '\0');
+ 
+   /* In SUID/SGID programs, after $ORIGIN expansion the normalized
+-     path must be rooted in one of the trusted directories.  */
+-  if (__builtin_expect (check_for_trusted, false)
+-      && !is_trusted_path_normalize (last_elem, wp - last_elem))
+-    wp = last_elem;
++     path must be rooted in one of the trusted directories.  The $LIB
++     and $PLATFORM DST cannot in any way be manipulated by the caller
++     because they are fixed values that are set by the dynamic loader
++     and therefore any paths using just $LIB or $PLATFORM need not be
++     checked for trust, the authors of the binaries themselves are
++     trusted to have designed this correctly.  Only $ORIGIN is tested in
++     this way because it may be manipulated in some ways with hard
++     links.  */
++  if (__glibc_unlikely (check_for_trusted)
++      && !is_trusted_path_normalize (result, wp - result))
++    {
++      *result = '\0';
++      return result;
++    }
+ 
+   *wp = '\0';
+ 
+@@ -368,13 +424,13 @@ _dl_dst_substitute (struct link_map *l,
+ }
+ 
+ 
+-/* Return copy of argument with all recognized dynamic string tokens
+-   ($ORIGIN and $PLATFORM for now) replaced.  On some platforms it
+-   might not be possible to determine the path from which the object
+-   belonging to the map is loaded.  In this case the path element
+-   containing $ORIGIN is left out.  */
++/* Return a malloc allocated copy of INPUT with all recognized DSTs
++   replaced. On some platforms it might not be possible to determine the
++   path from which the object belonging to the map is loaded.  In this
++   case the path containing the DST is left out.  On error NULL
++   is returned.  */
+ static char *
+-expand_dynamic_string_token (struct link_map *l, const char *s)
++expand_dynamic_string_token (struct link_map *l, const char *input)
+ {
+   /* We make two runs over the string.  First we determine how large the
+      resulting string is and then we copy it over.  Since this is no
+@@ -384,22 +440,22 @@ expand_dynamic_string_token (struct link
+   size_t total;
+   char *result;
+ 
+-  /* Determine the number of DST elements.  */
+-  cnt = DL_DST_COUNT (s);
++  /* Determine the number of DSTs.  */
++  cnt = _dl_dst_count (input);
+ 
+   /* If we do not have to replace anything simply copy the string.  */
+   if (__builtin_expect (cnt, 0) == 0)
+-    return local_strdup (s);
++    return local_strdup (input);
+ 
+   /* Determine the length of the substituted string.  */
+-  total = DL_DST_REQUIRED (l, s, strlen (s), cnt);
++  total = DL_DST_REQUIRED (l, input, strlen (input), cnt);
+ 
+   /* Allocate the necessary memory.  */
+   result = (char *) malloc (total + 1);
+   if (result == NULL)
+     return NULL;
+ 
+-  return _dl_dst_substitute (l, s, result);
++  return _dl_dst_substitute (l, input, result);
+ }
+ 
+ 
diff --git a/SOURCES/glibc-rh1447808-2.patch b/SOURCES/glibc-rh1447808-2.patch
new file mode 100644
index 0000000..4265a95
--- /dev/null
+++ b/SOURCES/glibc-rh1447808-2.patch
@@ -0,0 +1,18 @@
+Fix strncmp in rtld for x86-64 by using the generic implementation.  Not
+needed upstream since upstream uses
+d8725b1fba769a89ce2c902a2091d01faa946b66 to enable strncmp from
+strncmp.S, but this introduces SSE registers into rtld for RHEL7 and
+this would be the first instance of such a change. While we have done
+everything we can to save/restore such registers (see the xsave work) it
+isn't clear if everything is fixed, so to play it safe in RHEL we just
+use the C version of strncmp for rtld.
+
+Not needed upstream.
+
+diff --git a/sysdeps/x86_64/multiarch/rtld-strncmp.c b/sysdeps/x86_64/multiarch/rtld-strncmp.c
+new file mode 100644
+index 0000000000000000..5bb3cfb974b9a95d
+--- /dev/null
++++ b/sysdeps/x86_64/multiarch/rtld-strncmp.c
+@@ -0,0 +1 @@
++#include <string/strncmp.c>
diff --git a/SOURCES/glibc-rh1448107.patch b/SOURCES/glibc-rh1448107.patch
new file mode 100644
index 0000000..c9bc107
--- /dev/null
+++ b/SOURCES/glibc-rh1448107.patch
@@ -0,0 +1,418 @@
+This patch adds support for el_GR@euro.  It also updates el_GR,
+ur_IN and wal_ET to i18n:2012.
+These changes are a *subset* of this upstream patch and, therefore, should
+not be pushed upstream.
+
+commit 1a06eee86989d7058d317f3643355f8ec5e87efb
+Author: Mike Frysinger <vapier@gentoo.org>
+Date:   Wed Apr 13 11:22:00 2016 -0400
+
+    localedata: LC_IDENTIFICATION.category: set to ISO 30112 2014 standard
+
+    The ISO 30112 standard defines the valid values for the category
+    keyword as only a few options:
+        posix:1993
+        i18n:2004
+        i18n:2012
+
+    The vast majority of locales had changed the "i18n" string to the
+    name of its own locale (e.g. "ak_GH:2013") as well as tweaking the
+    date (presumably thinking it should be the date of submission).
+
+    Convert all of them to "i18n:2012" for consistency.  A follow up
+    change will update localedef to actually check/validate the field.
+
+
+diff -Nrup a/localedata/locales/el_GR b/localedata/locales/el_GR
+--- a/localedata/locales/el_GR	2012-12-24 22:02:13.000000000 -0500
++++ b/localedata/locales/el_GR	2018-06-10 10:23:23.156283677 -0400
+@@ -1,6 +1,13 @@
+ comment_char %
+-escape_char  /
+-%
++escape_char /
++
++% This file is part of the GNU C Library and contains locale data.
++% The Free Software Foundation does not claim any copyright interest
++% in the locale data contained in this file.  The foregoing does not
++% affect the license of the GNU C Library as a whole.  It does not
++% exempt you from the conditions of the license if your use would
++% otherwise be governed by that license.
++
+ % Greek Language Locale for Greece
+ % Source: RAP
+ % Address: Sankt Jo//rgens Alle 8
+@@ -15,8 +22,6 @@ escape_char  /
+ % Date: 1996-10-15
+ % Users: general
+ % Charset: ISO-8859-7
+-% Distribution and use is free, also
+-% for commercial purposes.
+ 
+ LC_IDENTIFICATION
+ title      "Greek locale for Greece"
+@@ -30,19 +35,19 @@ language   "Greek"
+ territory  "Greece"
+ revision   "1.0"
+ date       "2000-06-29"
+-%
+-category  "el_GR:2000";LC_IDENTIFICATION
+-category  "el_GR:2000";LC_CTYPE
+-category  "el_GR:2000";LC_COLLATE
+-category  "el_GR:2000";LC_TIME
+-category  "el_GR:2000";LC_NUMERIC
+-category  "el_GR:2000";LC_MONETARY
+-category  "el_GR:2000";LC_MESSAGES
+-category  "el_GR:2000";LC_PAPER
+-category  "el_GR:2000";LC_NAME
+-category  "el_GR:2000";LC_ADDRESS
+-category  "el_GR:2000";LC_TELEPHONE
+ 
++category "i18n:2012";LC_IDENTIFICATION
++category "i18n:2012";LC_CTYPE
++category "i18n:2012";LC_COLLATE
++category "i18n:2012";LC_TIME
++category "i18n:2012";LC_NUMERIC
++category "i18n:2012";LC_MONETARY
++category "i18n:2012";LC_MESSAGES
++category "i18n:2012";LC_PAPER
++category "i18n:2012";LC_NAME
++category "i18n:2012";LC_ADDRESS
++category "i18n:2012";LC_TELEPHONE
++category "i18n:2012";LC_MEASUREMENT
+ END LC_IDENTIFICATION
+ 
+ LC_COLLATE
+@@ -58,8 +63,10 @@ translit_end
+ END LC_CTYPE
+ 
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U03BD><U039D><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U03BF><U039F><U006E><U004E><U005D><U002E><U002A>"
++yesexpr "<U005E><U005B><U002B><U0031><U03BD><U039D><U0079><U0059><U005D>"
++noexpr  "<U005E><U005B><U002D><U0030><U03BF><U039F><U006E><U004E><U005D>"
++yesstr  "<U03BD><U03B1><U03B9>"
++nostr   "<U03CC><U03C7><U03B9>"
+ END LC_MESSAGES
+ 
+ LC_MONETARY
+@@ -139,15 +146,12 @@ t_fmt_ampm "<U0025><U0049><U003A><U0025>
+ %
+ % Appropriate date representation (date(1))   "%a %d %b %Y %r %Z"
+ date_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0072><U0020><U0025><U005A>"
+-first_workday 2
++week 7;19971130;4
+ first_weekday 2
+ END LC_TIME
+ 
+ LC_PAPER
+-% FIXME
+-height   297
+-% FIXME
+-width    210
++copy "i18n"
+ END LC_PAPER
+ 
+ LC_TELEPHONE
+@@ -158,8 +162,7 @@ int_select     "<U0030><U0030>"
+ END LC_TELEPHONE
+ 
+ LC_MEASUREMENT
+-% FIXME
+-measurement    1
++copy "i18n"
+ END LC_MEASUREMENT
+ 
+ LC_NAME
+@@ -173,7 +176,18 @@ postal_fmt    "<U0025><U0066><U0025><U00
+ <U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+ <U004E><U0025><U007A><U0020><U0025><U0054><U0025>/
+ <U004E><U0025><U0063><U0025><U004E>"
++country_name "<U0395><U03BB><U03BB><U03AC><U03B4><U03B1>"
+ country_ab2 "<U0047><U0052>"
+ country_ab3 "<U0047><U0052><U0043>"
+ country_num 300
++% GR
++country_car    "<U0047><U0052>"
++% ελληνικά
++lang_name    "<U03B5><U03BB><U03BB><U03B7><U03BD><U03B9><U03BA><U03AC>"
++% el
++lang_ab      "<U0065><U006C>"
++% ell
++lang_term    "<U0065><U006C><U006C>"
++% gre
++lang_lib    "<U0067><U0072><U0065>"
+ END LC_ADDRESS
+diff -Nrup a/localedata/locales/el_GR@euro b/localedata/locales/el_GR@euro
+--- a/localedata/locales/el_GR@euro	2012-12-24 22:02:13.000000000 -0500
++++ b/localedata/locales/el_GR@euro	2018-06-08 14:34:49.809871475 -0400
+@@ -1,5 +1,12 @@
+-escape_char /
+ comment_char %
++escape_char /
++
++% This file is part of the GNU C Library and contains locale data.
++% The Free Software Foundation does not claim any copyright interest
++% in the locale data contained in this file.  The foregoing does not
++% affect the license of the GNU C Library as a whole.  It does not
++% exempt you from the conditions of the license if your use would
++% otherwise be governed by that license.
+ 
+ LC_IDENTIFICATION
+ title      "Greek locale for Greece with Euro"
+@@ -13,19 +20,19 @@ language   "Greek"
+ territory  "Greece"
+ revision   "1.0"
+ date       "2000-06-24"
+-%
+-category  "el_GR@euro:2000";LC_IDENTIFICATION
+-category  "el_GR@euro:2000";LC_CTYPE
+-category  "el_GR@euro:2000";LC_COLLATE
+-category  "el_GR@euro:2000";LC_TIME
+-category  "el_GR@euro:2000";LC_NUMERIC
+-category  "el_GR@euro:2000";LC_MONETARY
+-category  "el_GR@euro:2000";LC_MESSAGES
+-category  "el_GR@euro:2000";LC_PAPER
+-category  "el_GR@euro:2000";LC_NAME
+-category  "el_GR@euro:2000";LC_ADDRESS
+-category  "el_GR@euro:2000";LC_TELEPHONE
+ 
++category "i18n:2012";LC_IDENTIFICATION
++category "i18n:2012";LC_CTYPE
++category "i18n:2012";LC_COLLATE
++category "i18n:2012";LC_TIME
++category "i18n:2012";LC_NUMERIC
++category "i18n:2012";LC_MONETARY
++category "i18n:2012";LC_MESSAGES
++category "i18n:2012";LC_PAPER
++category "i18n:2012";LC_NAME
++category "i18n:2012";LC_ADDRESS
++category "i18n:2012";LC_TELEPHONE
++category "i18n:2012";LC_MEASUREMENT
+ END LC_IDENTIFICATION
+ 
+ LC_CTYPE
+@@ -63,7 +70,6 @@ LC_NAME
+ copy "el_GR"
+ END LC_NAME
+ 
+-
+ LC_ADDRESS
+ copy "el_GR"
+ END LC_ADDRESS
+diff -Nrup a/localedata/locales/ur_IN b/localedata/locales/ur_IN
+--- a/localedata/locales/ur_IN	2018-06-08 14:15:14.876886162 -0400
++++ b/localedata/locales/ur_IN	2018-06-08 15:20:51.893461943 -0400
+@@ -1,5 +1,13 @@
+-comment_char    %
+-escape_char     /
++comment_char %
++escape_char /
++
++% This file is part of the GNU C Library and contains locale data.
++% The Free Software Foundation does not claim any copyright interest
++% in the locale data contained in this file.  The foregoing does not
++% affect the license of the GNU C Library as a whole.  It does not
++% exempt you from the conditions of the license if your use would
++% otherwise be governed by that license.
++
+ % Urdu language locale for India.
+ % Contributed by Pravin Satpute <psatpute@redhat.com> and
+ % Mrs. Nasreen Khan
+@@ -17,20 +25,19 @@ language    "Urdu"
+ territory   "India"
+ revision    "1.0"
+ date        "2009,June,09"
+-%
+-category  "ur_IN:2009";LC_IDENTIFICATION
+-category  "ur_IN:2009";LC_CTYPE
+-category  "ur_IN:2009";LC_COLLATE
+-category  "ur_IN:2009";LC_TIME
+-category  "ur_IN:2009";LC_NUMERIC
+-category  "ur_IN:2009";LC_MONETARY
+-category  "ur_IN:2009";LC_MESSAGES
+-category  "ur_IN:2009";LC_PAPER
+-category  "ur_IN:2009";LC_NAME
+-category  "ur_IN:2009";LC_ADDRESS
+-category  "ur_IN:2009";LC_TELEPHONE
+-
+ 
++category "i18n:2012";LC_IDENTIFICATION
++category "i18n:2012";LC_CTYPE
++category "i18n:2012";LC_COLLATE
++category "i18n:2012";LC_TIME
++category "i18n:2012";LC_NUMERIC
++category "i18n:2012";LC_MONETARY
++category "i18n:2012";LC_MESSAGES
++category "i18n:2012";LC_PAPER
++category "i18n:2012";LC_NAME
++category "i18n:2012";LC_ADDRESS
++category "i18n:2012";LC_TELEPHONE
++category "i18n:2012";LC_MEASUREMENT
+ END LC_IDENTIFICATION
+ 
+ 
+@@ -132,20 +139,15 @@ t_fmt       "<U0025><U0049><U003A><U0025
+ % Appropriate 12 h time representation (%r)
+ t_fmt_ampm  "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
+ <U0020><U0025><U0070><U0020><U0025><U005A>"
+-%
+-% Appropriate date representation (date(1))   "%a %b %e %H:%M:%S %Z %Y"
+-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;1
+ END LC_TIME
+ 
+ 
+ LC_MESSAGES
+-yesexpr     "<U005E><U005B><U06C1><U0079><U0059><U005D><U002E><U002A>"
+-noexpr      "<U005E><U005B><U0646><U006E><U004E><U005D><U002E><U002A>"
+-
+-yesstr      "<U06C1><U0627><U06BA>"
+-nostr       "<U0646><U06C1><U06CC><U06BA>"
++yesexpr "<U005E><U005B><U002B><U0031><U06C1><U0079><U0059><U005D>"
++noexpr  "<U005E><U005B><U002D><U0030><U0646><U006E><U004E><U005D>"
++yesstr  "<U06C1><U0627><U06BA>"
++nostr   "<U0646><U06C1><U06CC><U06BA>"
+ END LC_MESSAGES
+ 
+ 
+@@ -170,7 +172,20 @@ END LC_NAME
+ 
+ 
+ LC_ADDRESS
+-copy "hi_IN"
++postal_fmt  "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
++<U0025><U0062><U0025><U0065><U0025><U0072>"
++country_name "<U0628><U06BE><U0627><U0631><U062A>"
++country_ab2 "<U0049><U004E>"
++country_ab3 "<U0049><U004E><U0044>"
++country_num 356
++% IND
++country_car    "<U0049><U004E><U0044>"
++% ur
++lang_ab      "<U0075><U0072>"
++% urd
++lang_term    "<U0075><U0072><U0064>"
++% urd
++lang_lib    "<U0075><U0072><U0064>"
+ END LC_ADDRESS
+ 
+ 
+diff -Nrup a/localedata/locales/wal_ET b/localedata/locales/wal_ET
+--- a/localedata/locales/wal_ET	2012-12-24 22:02:13.000000000 -0500
++++ b/localedata/locales/wal_ET	2018-06-08 14:34:16.440637977 -0400
+@@ -1,10 +1,16 @@
+-comment_char    %
+-escape_char     /
++comment_char %
++escape_char /
+ 
++% This file is part of the GNU C Library and contains locale data.
++% The Free Software Foundation does not claim any copyright interest
++% in the locale data contained in this file.  The foregoing does not
++% affect the license of the GNU C Library as a whole.  It does not
++% exempt you from the conditions of the license if your use would
++% otherwise be governed by that license.
+ 
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+-% Sidama language locale for Ethiopia.
++% Walaita language locale for Ethiopia.
+ %
+ % Charset: UTF-8
+ %
+@@ -27,24 +33,23 @@ contact    ""
+ email      "locales@geez.org"
+ tel        ""
+ fax        ""
+-language   "wal"
+-territory  "ET"
++language   "Wolaytta"
++territory  "Ethiopia"
+ revision   "0.10"
+ date       "2004-04-25"
+-%
+-category  "i18n:2000";LC_IDENTIFICATION
+-category  "i18n:2000";LC_COLLATE
+-category  "i18n:2000";LC_CTYPE
+-category  "i18n:2000";LC_MEASUREMENT
+-category  "i18n:2000";LC_MONETARY
+-category  "posix:1993";LC_NUMERIC
+-category  "i18n:2000";LC_PAPER
+-category  "i18n:2000";LC_TELEPHONE
+-category  "i18n:2000";LC_ADDRESS
+-category  "i18n:2000";LC_MESSAGES
+-category  "i18n:2000";LC_NAME
+-category  "i18n:2000";LC_TIME
+-%
++
++category "i18n:2012";LC_IDENTIFICATION
++category "i18n:2012";LC_COLLATE
++category "i18n:2012";LC_CTYPE
++category "i18n:2012";LC_MEASUREMENT
++category "i18n:2012";LC_MONETARY
++category "i18n:2012";LC_NUMERIC
++category "i18n:2012";LC_PAPER
++category "i18n:2012";LC_TELEPHONE
++category "i18n:2012";LC_ADDRESS
++category "i18n:2012";LC_MESSAGES
++category "i18n:2012";LC_NAME
++category "i18n:2012";LC_TIME
+ END LC_IDENTIFICATION
+ 
+ 
+@@ -65,7 +70,7 @@ END LC_CTYPE
+ 
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+-%  Ethiopia Specifc and Shared Data:
++%  Ethiopia Specific and Shared Data:
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ 
+@@ -92,7 +97,7 @@ END LC_TELEPHONE
+ 
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+-%  Sidama Specific Data:
++%  Walaita Specific Data:
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ 
+@@ -107,14 +112,12 @@ country_post  "<U0045><U0054><U0048>"
+ country_ab2   "<U0045><U0054>"
+ country_ab3   "<U0045><U0054><U0048>"
+ country_num   231   % 210 found in at least one ISO 3166 doc
+-% country_car   unknown
++% ETH
++country_car    "<U0045><U0054><U0048>"
+ % country_isbn  unknown, Need ISO 2108
+ lang_name     "<U12C8><U120B><U12ED><U1273><U1271>"
+ lang_term     "<U0077><U0061><U006C>"
+ lang_lib      "<U0077><U0061><U006C>"
+-
+-
+-%
+ END LC_ADDRESS
+ 
+ 
+@@ -232,5 +235,5 @@ date_fmt    "<U0025><U0041><U1363><U0020
+ <U0020><U130B><U120B><U1233>/
+ <U0020><U0025><U0072><U0020><U0025><U005A><U0020><U0025><U0059>/
+ <U0020><U130D><U002F><U120B>"
++week 7;19971130;1
+ END LC_TIME
+-%
+diff -Nrup a/localedata/SUPPORTED b/localedata/SUPPORTED
+--- a/localedata/SUPPORTED	2018-06-08 14:15:13.059877630 -0400
++++ b/localedata/SUPPORTED	2018-06-08 16:07:15.349302352 -0400
+@@ -109,6 +109,7 @@ dv_MV/UTF-8 \
+ dz_BT/UTF-8 \
+ el_GR.UTF-8/UTF-8 \
+ el_GR/ISO-8859-7 \
++el_GR@euro/ISO-8859-7 \
+ el_CY.UTF-8/UTF-8 \
+ el_CY/ISO-8859-7 \
+ en_AG/UTF-8 \
diff --git a/SOURCES/glibc-rh1457479-1.patch b/SOURCES/glibc-rh1457479-1.patch
new file mode 100644
index 0000000..ca3d47b
--- /dev/null
+++ b/SOURCES/glibc-rh1457479-1.patch
@@ -0,0 +1,339 @@
+commit 521c6785e1fc94d1f501743e9a40af9e02797df3
+Author: Andreas Jaeger <aj@suse.de>
+Date:   Thu Jul 4 09:45:12 2013 +0200
+
+    Sync sys/ptrace with Linux 3.10
+
+diff -rup a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
+--- a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h	2018-05-08 22:10:50.628796132 -0400
++++ b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h	2018-05-08 22:33:59.528930354 -0400
+@@ -21,6 +21,7 @@
+ #define _SYS_PTRACE_H	1
+ 
+ #include <features.h>
++#include <bits/types.h>
+ 
+ __BEGIN_DECLS
+ 
+@@ -123,7 +124,11 @@ enum __ptrace_request
+ #define PTRACE_INTERRUPT PTRACE_INTERRUPT
+ 
+   /* Wait for next group event.  */
+-  PTRACE_LISTEN = 0x4208
++  PTRACE_LISTEN = 0x4208,
++#define PTRACE_LISTEN PTRACE_LISTEN
++
++  PTRACE_PEEKSIGINFO = 0x4209
++#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
+ };
+ 
+ 
+@@ -159,6 +164,20 @@ enum __ptrace_eventcodes
+   PTRACE_EVENT_SECCOMP  = 7
+ };
+ 
++/* Arguments for PTRACE_PEEKSIGINFO.  */
++struct __ptrace_peeksiginfo_args
++{
++  __uint64_t off;	/* From which siginfo to start.  */
++  __uint32_t flags;	/* Flags for peeksiginfo.  */
++  __int32_t nr;		/* How many siginfos to take.  */
++};
++
++enum __ptrace_peeksiginfo_flags
++{
++  /* Read signals from a shared (process wide) queue.  */
++  PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
++};
++
+ /* Perform process tracing functions.  REQUEST is one of the values
+    above, and determines the action to be taken.
+    For all requests except PTRACE_TRACEME, PID specifies the process to be
+diff -rup a/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h b/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
+--- a/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h	2018-05-08 22:10:51.979794763 -0400
++++ b/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h	2018-05-08 22:33:59.532930337 -0400
+@@ -21,6 +21,7 @@
+ 
+ #include <features.h>
+ #include <sys/ucontext.h>
++#include <bits/types.h>
+ 
+ __BEGIN_DECLS
+ 
+@@ -128,7 +129,11 @@ enum __ptrace_request
+ #define PTRACE_INTERRUPT PTRACE_INTERRUPT
+ 
+   /* Wait for next group event.  */
+-  PTRACE_LISTEN = 0x4208
++  PTRACE_LISTEN = 0x4208,
++#define PTRACE_LISTEN PTRACE_LISTEN
++
++  PTRACE_PEEKSIGINFO = 0x4209
++#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
+ };
+ 
+ 
+@@ -179,6 +184,20 @@ enum __ptrace_eventcodes
+   PTRACE_EVENT_SECCOMP  = 7
+ };
+ 
++/* Arguments for PTRACE_PEEKSIGINFO.  */
++struct __ptrace_peeksiginfo_args
++{
++  __uint64_t off;	/* From which siginfo to start.  */
++  __uint32_t flags;	/* Flags for peeksiginfo.  */
++  __int32_t nr;		/* How many siginfos to take.  */
++};
++
++enum __ptrace_peeksiginfo_flags
++{
++  /* Read signals from a shared (process wide) queue.  */
++  PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
++};
++
+ /* Perform process tracing functions.  REQUEST is one of the values
+    above, and determines the action to be taken.
+    For all requests except PTRACE_TRACEME, PID specifies the process to be
+diff -rup a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
+--- a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h	2012-12-24 22:02:13.000000000 -0500
++++ b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h	2018-05-08 22:33:59.539930307 -0400
+@@ -20,6 +20,7 @@
+ #define _SYS_PTRACE_H	1
+ 
+ #include <features.h>
++#include <bits/types.h>
+ 
+ __BEGIN_DECLS
+ 
+@@ -115,7 +116,11 @@ enum __ptrace_request
+ #define PTRACE_INTERRUPT PTRACE_INTERRUPT
+ 
+   /* Wait for next group event.  */
+-  PTRACE_LISTEN = 0x4208
++  PTRACE_LISTEN = 0x4208,
++#define PTRACE_LISTEN PTRACE_LISTEN
++
++  PTRACE_PEEKSIGINFO = 0x4209
++#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
+ };
+ 
+ 
+@@ -151,6 +156,20 @@ enum __ptrace_eventcodes
+   PTRACE_EVENT_SECCOMP  = 7
+ };
+ 
++/* Arguments for PTRACE_PEEKSIGINFO.  */
++struct __ptrace_peeksiginfo_args
++{
++  __uint64_t off;	/* From which siginfo to start.  */
++  __uint32_t flags;	/* Flags for peeksiginfo.  */
++  __int32_t nr;		/* How many siginfos to take.  */
++};
++
++enum __ptrace_peeksiginfo_flags
++{
++  /* Read signals from a shared (process wide) queue.  */
++  PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
++};
++
+ /* Perform process tracing functions.  REQUEST is one of the values
+    above, and determines the action to be taken.
+    For all requests except PTRACE_TRACEME, PID specifies the process to be
+diff -rup a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
+--- a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h	2012-12-24 22:02:13.000000000 -0500
++++ b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h	2018-05-08 22:33:59.542930293 -0400
+@@ -21,6 +21,7 @@
+ #define _SYS_PTRACE_H	1
+ 
+ #include <features.h>
++#include <bits/types.h>
+ 
+ __BEGIN_DECLS
+ #ifdef _LINUX_PTRACE_H
+@@ -154,7 +155,11 @@ enum __ptrace_request
+ #define PTRACE_INTERRUPT PTRACE_INTERRUPT
+ 
+   /* Wait for next group event.  */
+-  PTRACE_LISTEN = 0x4208
++  PTRACE_LISTEN = 0x4208,
++#define PTRACE_LISTEN PTRACE_LISTEN
++
++  PTRACE_PEEKSIGINFO = 0x4209
++#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
+ };
+ 
+ 
+@@ -190,6 +195,20 @@ enum __ptrace_eventcodes
+   PTRACE_EVENT_SECCOMP  = 7
+ };
+ 
++/* Arguments for PTRACE_PEEKSIGINFO.  */
++struct __ptrace_peeksiginfo_args
++{
++  __uint64_t off;	/* From which siginfo to start.  */
++  __uint32_t flags;	/* Flags for peeksiginfo.  */
++  __int32_t nr;		/* How many siginfos to take.  */
++};
++
++enum __ptrace_peeksiginfo_flags
++{
++  /* Read signals from a shared (process wide) queue.  */
++  PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
++};
++
+ /* Perform process tracing functions.  REQUEST is one of the values
+    above, and determines the action to be taken.
+    For all requests except PTRACE_TRACEME, PID specifies the process to be
+diff -rup a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
+--- a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h	2012-12-24 22:02:13.000000000 -0500
++++ b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h	2018-05-08 22:33:59.546930276 -0400
+@@ -20,7 +20,7 @@
+ #define _SYS_PTRACE_H	1
+ 
+ #include <features.h>
+-
++#include <bits/types.h>
+ #include <bits/wordsize.h>
+ 
+ /* Linux/SPARC kernels up to 2.3.18 do not care much
+@@ -198,7 +198,11 @@ enum __ptrace_request
+ #define PTRACE_INTERRUPT PTRACE_INTERRUPT
+ 
+   /* Wait for next group event.  */
+-  PTRACE_LISTEN = 0x4208
++  PTRACE_LISTEN = 0x4208,
++#define PTRACE_LISTEN PTRACE_LISTEN
++
++  PTRACE_PEEKSIGINFO = 0x4209
++#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
+ };
+ 
+ 
+@@ -234,6 +238,20 @@ enum __ptrace_eventcodes
+   PTRACE_EVENT_SECCOMP  = 7
+ };
+ 
++/* Arguments for PTRACE_PEEKSIGINFO.  */
++struct __ptrace_peeksiginfo_args
++{
++  __uint64_t off;	/* From which siginfo to start.  */
++  __uint32_t flags;	/* Flags for peeksiginfo.  */
++  __int32_t nr;		/* How many siginfos to take.  */
++};
++
++enum __ptrace_peeksiginfo_flags
++{
++  /* Read signals from a shared (process wide) queue.  */
++  PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
++};
++
+ /* Perform process tracing functions.  REQUEST is one of the values
+    above, and determines the action to be taken.
+    For all requests except PTRACE_TRACEME, PID specifies the process to be
+diff -rup a/sysdeps/unix/sysv/linux/sys/ptrace.h b/sysdeps/unix/sysv/linux/sys/ptrace.h
+--- a/sysdeps/unix/sysv/linux/sys/ptrace.h	2012-12-24 22:02:13.000000000 -0500
++++ b/sysdeps/unix/sysv/linux/sys/ptrace.h	2018-05-08 22:33:59.550930259 -0400
+@@ -20,6 +20,7 @@
+ #define _SYS_PTRACE_H	1
+ 
+ #include <features.h>
++#include <bits/types.h>
+ 
+ __BEGIN_DECLS
+ 
+@@ -145,7 +146,11 @@ enum __ptrace_request
+ #define PTRACE_INTERRUPT PTRACE_INTERRUPT
+ 
+   /* Wait for next group event.  */
+-  PTRACE_LISTEN = 0x4208
++  PTRACE_LISTEN = 0x4208,
++#define PTRACE_LISTEN PTRACE_LISTEN
++
++  PTRACE_PEEKSIGINFO = 0x4209
++#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
+ };
+ 
+ 
+@@ -181,6 +186,20 @@ enum __ptrace_eventcodes
+   PTRAVE_EVENT_SECCOMP  = 7
+ };
+ 
++/* Arguments for PTRACE_PEEKSIGINFO.  */
++struct __ptrace_peeksiginfo_args
++{
++  __uint64_t off;	/* From which siginfo to start.  */
++  __uint32_t flags;	/* Flags for peeksiginfo.  */
++  __int32_t nr;		/* How many siginfos to take.  */
++};
++
++enum __ptrace_peeksiginfo_flags
++{
++  /* Read signals from a shared (process wide) queue.  */
++  PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
++};
++
+ /* Perform process tracing functions.  REQUEST is one of the values
+    above, and determines the action to be taken.
+    For all requests except PTRACE_TRACEME, PID specifies the process to be
+diff -rup a/sysdeps/unix/sysv/linux/tile/sys/ptrace.h b/sysdeps/unix/sysv/linux/tile/sys/ptrace.h
+--- a/sysdeps/unix/sysv/linux/tile/sys/ptrace.h	2018-05-08 22:10:48.688798100 -0400
++++ b/sysdeps/unix/sysv/linux/tile/sys/ptrace.h	2018-05-08 22:33:59.535930324 -0400
+@@ -20,6 +20,7 @@
+ #define _SYS_PTRACE_H	1
+ 
+ #include <features.h>
++#include <bits/types.h>
+ 
+ __BEGIN_DECLS
+ 
+@@ -101,8 +102,28 @@ enum __ptrace_request
+ #define PT_GETSIGINFO PTRACE_GETSIGINFO
+ 
+   /* Set new siginfo for process.  */
+-  PTRACE_SETSIGINFO = 0x4203
++  PTRACE_SETSIGINFO = 0x4203,
+ #define PT_SETSIGINFO PTRACE_SETSIGINFO
++
++  /* Set register content.  */
++  PTRACE_SETREGSET = 0x4205,
++#define PTRACE_SETREGSET PTRACE_SETREGSET
++
++  /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect
++     signal or group stop state.  */
++  PTRACE_SEIZE = 0x4206,
++#define PTRACE_SEIZE PTRACE_SEIZE
++
++  /* Trap seized tracee.  */
++  PTRACE_INTERRUPT = 0x4207,
++#define PTRACE_INTERRUPT PTRACE_INTERRUPT
++
++  /* Wait for next group event.  */
++  PTRACE_LISTEN = 0x4208,
++#define PTRACE_LISTEN PTRACE_LISTEN
++
++  PTRACE_PEEKSIGINFO = 0x4209
++#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
+ };
+ 
+ 
+@@ -132,6 +153,20 @@ enum __ptrace_eventcodes
+   PTRACE_EVENT_SECCOMP  = 7
+ };
+ 
++/* Arguments for PTRACE_PEEKSIGINFO.  */
++struct __ptrace_peeksiginfo_args
++{
++  __uint64_t off;	/* From which siginfo to start.  */
++  __uint32_t flags;	/* Flags for peeksiginfo.  */
++  __int32_t nr;		/* How many siginfos to take.  */
++};
++
++enum __ptrace_peeksiginfo_flags
++{
++  /* Read signals from a shared (process wide) queue.  */
++  PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
++}
++
+ /* Perform process tracing functions.  REQUEST is one of the values
+    above, and determines the action to be taken.
+    For all requests except PTRACE_TRACEME, PID specifies the process to be
diff --git a/SOURCES/glibc-rh1457479-2.patch b/SOURCES/glibc-rh1457479-2.patch
new file mode 100644
index 0000000..0b7b3c0
--- /dev/null
+++ b/SOURCES/glibc-rh1457479-2.patch
@@ -0,0 +1,215 @@
+commit fb53a27c57417104069f128963bf6f26dc02b0bd
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Tue Jan 12 12:42:55 2016 +0000
+
+    Add new header definitions from Linux 4.4 (plus older ptrace definitions).
+    
+    This patch adds some new header definitions from Linux 4.4:
+    
+    * MCL_ONFAULT is added to bits/mman.h / bits/mman-linux.h (this was
+      already done for hppa).
+    
+    * PTRACE_SECCOMP_GET_FILTER is added to sys/ptrace.h.  Along with it,
+      the older PTRACE_GETSIGMASK and PTRACE_SETSIGMASK, added in Linux
+      3.11 but missed at the time, are also added.
+    
+    Tested for x86_64 and x86 (testsuite, and that installed stripped
+    shared libraries are unchanged by the patch).
+    
+    	* bits/mman-linux.h [!MCL_CURRENT] (MCL_ONFAULT): New macro.
+    	* sysdeps/unix/sysv/linux/alpha/bits/mman.h (MCL_ONFAULT):
+    	Likewise.
+    	* sysdeps/unix/sysv/linux/powerpc/bits/mman.h (MCL_ONFAULT):
+    	Likewise.
+    	* sysdeps/unix/sysv/linux/sparc/bits/mman.h (MCL_ONFAULT):
+    	Likewise.
+    	* sysdeps/unix/sysv/linux/sys/ptrace.h (PTRACE_GETSIGMASK): New
+    	enum constant and macro.
+    	(PTRACE_SETSIGMASK): Likewise.
+    	(PTRACE_SECCOMP_GET_FILTER): Likewise.
+    	* sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
+    	(PTRACE_GETSIGMASK): Likewise.
+    	(PTRACE_SETSIGMASK): Likewise.
+    	(PTRACE_SECCOMP_GET_FILTER): Likewise.
+    	* sysdeps/unix/sysv/linux/ia64/sys/ptrace.h (PTRACE_GETSIGMASK):
+    	Likewise.
+    	(PTRACE_SETSIGMASK): Likewise.
+    	(PTRACE_SECCOMP_GET_FILTER): Likewise.
+    	* sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
+    	(PTRACE_GETSIGMASK): Likewise.
+    	(PTRACE_SETSIGMASK): Likewise.
+    	(PTRACE_SECCOMP_GET_FILTER): Likewise.
+    	* sysdeps/unix/sysv/linux/s390/sys/ptrace.h (PTRACE_GETSIGMASK):
+    	Likewise.
+    	(PTRACE_SETSIGMASK): Likewise.
+    	(PTRACE_SECCOMP_GET_FILTER): Likewise.
+    	* sysdeps/unix/sysv/linux/sparc/sys/ptrace.h (PTRACE_GETSIGMASK):
+    	Likewise.
+    	(PTRACE_SETSIGMASK): Likewise.
+    	(PTRACE_SECCOMP_GET_FILTER): Likewise.
+    	* sysdeps/unix/sysv/linux/tile/sys/ptrace.h (PTRACE_GETSIGMASK):
+    	Likewise.
+    	(PTRACE_SETSIGMASK): Likewise.
+    	(PTRACE_SECCOMP_GET_FILTER): Likewise.
+
+diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
+index 1ef1c5f..506ecce 100644
+--- a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
++++ b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
+@@ -127,8 +127,17 @@ enum __ptrace_request
+   PTRACE_LISTEN = 0x4208,
+ #define PTRACE_LISTEN PTRACE_LISTEN
+ 
+-  PTRACE_PEEKSIGINFO = 0x4209
++  PTRACE_PEEKSIGINFO = 0x4209,
+ #define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
++
++  PTRACE_GETSIGMASK = 0x420a,
++#define PTRACE_GETSIGMASK PTRACE_GETSIGMASK
++
++  PTRACE_SETSIGMASK = 0x420b,
++#define PTRACE_SETSIGMASK PTRACE_SETSIGMASK
++
++  PTRACE_SECCOMP_GET_FILTER = 0x420c
++#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
+ };
+ 
+ 
+diff --git a/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h b/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
+index d082d05..b568a66 100644
+--- a/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
++++ b/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
+@@ -132,8 +132,17 @@ enum __ptrace_request
+   PTRACE_LISTEN = 0x4208,
+ #define PTRACE_LISTEN PTRACE_LISTEN
+ 
+-  PTRACE_PEEKSIGINFO = 0x4209
++  PTRACE_PEEKSIGINFO = 0x4209,
+ #define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
++
++  PTRACE_GETSIGMASK = 0x420a,
++#define PTRACE_GETSIGMASK PTRACE_GETSIGMASK
++
++  PTRACE_SETSIGMASK = 0x420b,
++#define PTRACE_SETSIGMASK PTRACE_SETSIGMASK
++
++  PTRACE_SECCOMP_GET_FILTER = 0x420c
++#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
+ };
+ 
+ 
+diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
+index 20d60aa..b9ddee0 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
++++ b/sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h
+@@ -119,8 +119,17 @@ enum __ptrace_request
+   PTRACE_LISTEN = 0x4208,
+ #define PTRACE_LISTEN PTRACE_LISTEN
+ 
+-  PTRACE_PEEKSIGINFO = 0x4209
++  PTRACE_PEEKSIGINFO = 0x4209,
+ #define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
++
++  PTRACE_GETSIGMASK = 0x420a,
++#define PTRACE_GETSIGMASK PTRACE_GETSIGMASK
++
++  PTRACE_SETSIGMASK = 0x420b,
++#define PTRACE_SETSIGMASK PTRACE_SETSIGMASK
++
++  PTRACE_SECCOMP_GET_FILTER = 0x420c
++#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
+ };
+ 
+ 
+diff --git a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
+index 07b118d..15991f3 100644
+--- a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
++++ b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
+@@ -158,8 +158,17 @@ enum __ptrace_request
+   PTRACE_LISTEN = 0x4208,
+ #define PTRACE_LISTEN PTRACE_LISTEN
+ 
+-  PTRACE_PEEKSIGINFO = 0x4209
++  PTRACE_PEEKSIGINFO = 0x4209,
+ #define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
++
++  PTRACE_GETSIGMASK = 0x420a,
++#define PTRACE_GETSIGMASK PTRACE_GETSIGMASK
++
++  PTRACE_SETSIGMASK = 0x420b,
++#define PTRACE_SETSIGMASK PTRACE_SETSIGMASK
++
++  PTRACE_SECCOMP_GET_FILTER = 0x420c
++#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
+ };
+ 
+ 
+diff --git a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
+index dd57c7f..4b88152 100644
+--- a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
++++ b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h
+@@ -201,8 +201,17 @@ enum __ptrace_request
+   PTRACE_LISTEN = 0x4208,
+ #define PTRACE_LISTEN PTRACE_LISTEN
+ 
+-  PTRACE_PEEKSIGINFO = 0x4209
++  PTRACE_PEEKSIGINFO = 0x4209,
+ #define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
++
++  PTRACE_GETSIGMASK = 0x420a,
++#define PTRACE_GETSIGMASK PTRACE_GETSIGMASK
++
++  PTRACE_SETSIGMASK = 0x420b,
++#define PTRACE_SETSIGMASK PTRACE_SETSIGMASK
++
++  PTRACE_SECCOMP_GET_FILTER = 0x420c
++#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
+ };
+ 
+ 
+diff --git a/sysdeps/unix/sysv/linux/sys/ptrace.h b/sysdeps/unix/sysv/linux/sys/ptrace.h
+index cb4f6a1..ee88271 100644
+--- a/sysdeps/unix/sysv/linux/sys/ptrace.h
++++ b/sysdeps/unix/sysv/linux/sys/ptrace.h
+@@ -149,8 +149,17 @@ enum __ptrace_request
+   PTRACE_LISTEN = 0x4208,
+ #define PTRACE_LISTEN PTRACE_LISTEN
+ 
+-  PTRACE_PEEKSIGINFO = 0x4209
++  PTRACE_PEEKSIGINFO = 0x4209,
+ #define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
++
++  PTRACE_GETSIGMASK = 0x420a,
++#define PTRACE_GETSIGMASK PTRACE_GETSIGMASK
++
++  PTRACE_SETSIGMASK = 0x420b,
++#define PTRACE_SETSIGMASK PTRACE_SETSIGMASK
++
++  PTRACE_SECCOMP_GET_FILTER = 0x420c
++#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
+ };
+ 
+ 
+diff --git a/sysdeps/unix/sysv/linux/tile/sys/ptrace.h b/sysdeps/unix/sysv/linux/tile/sys/ptrace.h
+index bb921c8..46b5efa 100644
+--- a/sysdeps/unix/sysv/linux/tile/sys/ptrace.h
++++ b/sysdeps/unix/sysv/linux/tile/sys/ptrace.h
+@@ -122,8 +122,17 @@ enum __ptrace_request
+   PTRACE_LISTEN = 0x4208,
+ #define PTRACE_LISTEN PTRACE_LISTEN
+ 
+-  PTRACE_PEEKSIGINFO = 0x4209
++  PTRACE_PEEKSIGINFO = 0x4209,
+ #define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
++
++  PTRACE_GETSIGMASK = 0x420a,
++#define PTRACE_GETSIGMASK PTRACE_GETSIGMASK
++
++  PTRACE_SETSIGMASK = 0x420b,
++#define PTRACE_SETSIGMASK PTRACE_SETSIGMASK
++
++  PTRACE_SECCOMP_GET_FILTER = 0x420c
++#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
+ };
+ 
+ 
diff --git a/SOURCES/glibc-rh1457479-3.patch b/SOURCES/glibc-rh1457479-3.patch
new file mode 100644
index 0000000..bb86e24
--- /dev/null
+++ b/SOURCES/glibc-rh1457479-3.patch
@@ -0,0 +1,128 @@
+commit b08a6a0dea63742313ed3d9577c1e2d83436b196
+Author: Stefan Liebler <stli@linux.vnet.ibm.com>
+Date:   Mon Jun 19 16:27:25 2017 +0200
+
+    S390: Sync ptrace.h with kernel. [BZ #21539]
+    
+    This patch removes PTRACE_GETREGS, PTRACE_SETREGS, PTRACE_GETFPREGS
+    and PTRACE_SETFPREGS as these requests does not exist on s390 kernel.
+    
+    But the kernel has support for PTRACE_SINGLEBLOCK,
+    PTRACE_SECCOMP_GET_FILTER, PTRACE_PEEKUSR_AREA, PTRACE_POKEUSR_AREA,
+    PTRACE_GET_LAST_BREAK, PTRACE_ENABLE_TE, PTRACE_DISABLE_TE and
+    PTRACE_TE_ABORT_RAND.  Thus those are defined now.
+    
+    The current kernel s390 specific ptrace.h file also defines
+    PTRACE_PEEKTEXT_AREA, PTRACE_PEEKDATA_AREA, PTRACE_POKETEXT_AREA,
+    PTRACE_POKEDATA_AREA, PTRACE_PEEK_SYSTEM_CALL, PTRACE_POKE_SYSTEM_CALL
+    and PTRACE_PROT, but those requests are not supported.
+    Thus those defines are skipped in glibc ptrace.h.
+    
+    There were old includes of ptrace.h in sysdeps/s390/fpu/fesetenv.c.
+    The ptrace feature isn't used there anymore, thus I removed the includes.
+    
+    Before this patch, <glibc>/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
+    uses ptrace-request 12 for PTRACE_GETREGS,
+    but <kernel>/include/uapi/linux/ptrace.h uses 12 for PTRACE_SINGLEBLOCK.
+    
+    The s390 kernel has never had support for PTRACE_GETREGS!
+    Thus glibc ptrace.h is adjusted to match kernel ptrace.h.
+    
+    The new s390 specific test ensures, that PTRACE_SINGLEBLOCK defined
+    in glibc works as expected.  If the kernel would interpret it as
+    PTRACE_GETREGS, then the testcase will not make any progress
+    and will time out.
+    
+    ChangeLog:
+    
+    	[BZ #21539]
+    	* NEWS: Mention s390 ptrace request changes.
+    	* sysdeps/unix/sysv/linux/s390/sys/ptrace.h
+    	(PTRACE_GETREGS, PTRACE_SETREGS, PTRACE_GETFPREGS,
+    	PTRACE_SETFPREGS): Remove enum constant.
+    	(PT_GETREGS, PT_SETREGS, PT_GETFPREGS, T_SETFPREGS):
+    	Remove defines.
+    	(PTRACE_SINGLEBLOCK): New enum constant.
+    	(PT_STEPBLOCK): New define.
+    	(PTRACE_PEEKUSR_AREA, PTRACE_POKEUSR_AREA,
+    	PTRACE_GET_LAST_BREAK, PTRACE_ENABLE_TE, PTRACE_DISABLE_TE,
+    	PTRACE_TE_ABORT_RAND): New enum constant and define.
+    	* sysdeps/s390/fpu/fesetenv.c: Remove ptrace.h includes.
+    	* sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c:
+    	New file.
+    	* sysdeps/unix/sysv/linux/s390/Makefile: Add test.
+
+diff --git a/sysdeps/s390/fpu/fesetenv.c b/sysdeps/s390/fpu/fesetenv.c
+index 4c9bcf0..0f64a3f 100644
+--- a/sysdeps/s390/fpu/fesetenv.c
++++ b/sysdeps/s390/fpu/fesetenv.c
+@@ -20,8 +20,6 @@
+ #include <fenv_libc.h>
+ #include <fpu_control.h>
+ #include <stddef.h>
+-#include <asm/ptrace.h>
+-#include <sys/ptrace.h>
+ #include <unistd.h>
+ 
+ int
+diff --git a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
+index 7caf101..88079fc 100644
+--- a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
++++ b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
+@@ -89,25 +89,9 @@ enum __ptrace_request
+   PTRACE_SINGLESTEP = 9,
+ #define PT_STEP PTRACE_SINGLESTEP
+ 
+-  /* Get all general purpose registers used by a processes.
+-     This is not supported on all machines.  */
+-   PTRACE_GETREGS = 12,
+-#define PT_GETREGS PTRACE_GETREGS
+-
+-  /* Set all general purpose registers used by a processes.
+-     This is not supported on all machines.  */
+-   PTRACE_SETREGS = 13,
+-#define PT_SETREGS PTRACE_SETREGS
+-
+-  /* Get all floating point registers used by a processes.
+-     This is not supported on all machines.  */
+-   PTRACE_GETFPREGS = 14,
+-#define PT_GETFPREGS PTRACE_GETFPREGS
+-
+-  /* Set all floating point registers used by a processes.
+-     This is not supported on all machines.  */
+-   PTRACE_SETFPREGS = 15,
+-#define PT_SETFPREGS PTRACE_SETFPREGS
++  /* Execute process until next taken branch.  */
++  PTRACE_SINGLEBLOCK = 12,
++#define PT_STEPBLOCK PTRACE_SINGLEBLOCK
+ 
+   /* Attach to a process that is already running. */
+   PTRACE_ATTACH = 16,
+@@ -167,8 +151,26 @@ enum __ptrace_request
+   PTRACE_SETSIGMASK = 0x420b,
+ #define PTRACE_SETSIGMASK PTRACE_SETSIGMASK
+ 
+-  PTRACE_SECCOMP_GET_FILTER = 0x420c
++  PTRACE_SECCOMP_GET_FILTER = 0x420c,
+ #define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
++
++  PTRACE_PEEKUSR_AREA = 0x5000,
++#define PTRACE_PEEKUSR_AREA PTRACE_PEEKUSR_AREA
++
++  PTRACE_POKEUSR_AREA = 0x5001,
++#define PTRACE_POKEUSR_AREA PTRACE_POKEUSR_AREA
++
++  PTRACE_GET_LAST_BREAK = 0x5006,
++#define PTRACE_GET_LAST_BREAK PTRACE_GET_LAST_BREAK
++
++  PTRACE_ENABLE_TE = 0x5009,
++#define PTRACE_ENABLE_TE PTRACE_ENABLE_TE
++
++  PTRACE_DISABLE_TE = 0x5010,
++#define PTRACE_DISABLE_TE PTRACE_DISABLE_TE
++
++  PTRACE_TE_ABORT_RAND = 0x5011
++#define PTRACE_TE_ABORT_RAND PTRACE_TE_ABORT_RAND
+ };
+ 
+ 
diff --git a/SOURCES/glibc-rh1457479-4.patch b/SOURCES/glibc-rh1457479-4.patch
new file mode 100644
index 0000000..8bc8705
--- /dev/null
+++ b/SOURCES/glibc-rh1457479-4.patch
@@ -0,0 +1,98 @@
+commit cab91f947a6059907a314a91f4c90abcccfb0262
+Author: Dmitry V. Levin <ldv@altlinux.org>
+Date:   Sun Jul 23 23:22:53 2017 +0000
+
+    S390: fix sys/ptrace.h to make it includible again after asm/ptrace.h
+    
+    sys/ptrace.h on S390 used to be includible both before and after
+    asm/ptrace.h, until commit b08a6a0dea63742313ed3d9577c1e2d83436b196
+    among other changes introduced PTRACE_SINGLEBLOCK enum constant which
+    is also defined in asm/ptrace.h as a macro, making sys/ptrace.h fail
+    to compile when included after asm/ptrace.h.
+    
+    * sysdeps/unix/sysv/linux/s390/sys/ptrace.h [_LINUX_PTRACE_H ||
+    _S390_PTRACE_H]: Undefine all PTRACE_* macro constants defined
+    later as enum constants, except PTRACE_PEEKUSER, PTRACE_POKEUSER,
+    and PTRACE_SEIZE_DEVEL that are not defined by Linux headers.
+
+diff --git a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
+index 88079fc..e913647 100644
+--- a/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
++++ b/sysdeps/unix/sysv/linux/s390/sys/ptrace.h
+@@ -24,24 +24,60 @@
+ #include <bits/types.h>
+ 
+ __BEGIN_DECLS
+-#ifdef _LINUX_PTRACE_H
++#if defined _LINUX_PTRACE_H || defined _S390_PTRACE_H
+ /* Kludge to stop stuff gdb & strace compiles from getting upset
+  */
+-#undef PTRACE_TRACEME
+-#undef PTRACE_PEEKTEXT
+-#undef PTRACE_PEEKDATA
+-#undef PTRACE_PEEKUSR
+-#undef PTRACE_POKETEXT
+-#undef PTRACE_POKEDATA
+-#undef PTRACE_POKEUSR
+-#undef PTRACE_CONT
+-#undef PTRACE_KILL
+-#undef PTRACE_SINGLESTEP
+-
+-#undef PTRACE_ATTACH
+-#undef PTRACE_DETACH
+-
+-#undef PTRACE_SYSCALL
++# undef PTRACE_TRACEME
++# undef PTRACE_PEEKTEXT
++# undef PTRACE_PEEKDATA
++# undef PTRACE_POKETEXT
++# undef PTRACE_POKEDATA
++# undef PTRACE_CONT
++# undef PTRACE_KILL
++# undef PTRACE_SINGLESTEP
++# undef PTRACE_SINGLEBLOCK
++# undef PTRACE_ATTACH
++# undef PTRACE_DETACH
++# undef PTRACE_SYSCALL
++# undef PTRACE_SETOPTIONS
++# undef PTRACE_GETEVENTMSG
++# undef PTRACE_GETSIGINFO
++# undef PTRACE_SETSIGINFO
++# undef PTRACE_GETREGSET
++# undef PTRACE_SETREGSET
++# undef PTRACE_SEIZE
++# undef PTRACE_INTERRUPT
++# undef PTRACE_LISTEN
++# undef PTRACE_PEEKSIGINFO
++# undef PTRACE_GETSIGMASK
++# undef PTRACE_SETSIGMASK
++# undef PTRACE_SECCOMP_GET_FILTER
++# undef PTRACE_PEEKUSR_AREA
++# undef PTRACE_POKEUSR_AREA
++# undef PTRACE_GET_LAST_BREAK
++# undef PTRACE_ENABLE_TE
++# undef PTRACE_DISABLE_TE
++# undef PTRACE_TE_ABORT_RAND
++# undef PTRACE_O_TRACESYSGOOD
++# undef PTRACE_O_TRACEFORK
++# undef PTRACE_O_TRACEVFORK
++# undef PTRACE_O_TRACECLONE
++# undef PTRACE_O_TRACEEXEC
++# undef PTRACE_O_TRACEVFORKDONE
++# undef PTRACE_O_TRACEEXIT
++# undef PTRACE_O_TRACESECCOMP
++# undef PTRACE_O_EXITKILL
++# undef PTRACE_O_SUSPEND_SECCOMP
++# undef PTRACE_O_MASK
++# undef PTRACE_EVENT_FORK
++# undef PTRACE_EVENT_VFORK
++# undef PTRACE_EVENT_CLONE
++# undef PTRACE_EVENT_EXEC
++# undef PTRACE_EVENT_VFORK_DONE
++# undef PTRACE_EVENT_EXIT
++# undef PTRACE_EVENT_SECCOMP
++# undef PTRACE_EVENT_STOP
++# undef PTRACE_PEEKSIGINFO_SHARED
+ #endif
+ /* Type of the REQUEST argument to `ptrace.'  */
+ enum __ptrace_request
diff --git a/SOURCES/glibc-rh1461231.patch b/SOURCES/glibc-rh1461231.patch
new file mode 100644
index 0000000..b7773b8
--- /dev/null
+++ b/SOURCES/glibc-rh1461231.patch
@@ -0,0 +1,43 @@
+commit 0961f7e1e300ef633b0c1ad95d0999fb5c169f4e
+Author: Jeff Layton <jlayton@poochiereds.net>
+Date:   Wed Jul 23 14:21:05 2014 -0400
+
+    fcntl-linux.h: add new definitions and manual updates for open file description locks
+    
+    Open file description locks have been merged into the Linux kernel for
+    v3.15.  Add the appropriate command-value definitions and an update to
+    the manual that describes their usage.
+
+Note by DJ: the implementation doesn't work correctly for 32-bit file
+offsets.  Upstream changed the ABI to compensate but RHEL can't, so we
+enable these only for when file offsets are 64 bits.
+
+diff -rup a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
+--- a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h	2018-04-13 18:38:24.000000000 -0400
++++ b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h	2018-04-13 20:05:21.743234360 -0400
+@@ -117,6 +117,25 @@
+ # define F_SETLKW64	14	/* Set record locking info (blocking).	*/
+ #endif
+ 
++#ifdef __USE_FILE_OFFSET64
++/* open file description locks.
++
++   Usually record locks held by a process are released on *any* close and are
++   not inherited across a fork.
++
++   These cmd values will set locks that conflict with process-associated record
++   locks, but are "owned" by the opened file description, not the process.
++   This means that they are inherited across fork or clone with CLONE_FILES
++   like BSD (flock) locks, and they are only released automatically when the
++   last reference to the the file description against which they were acquired
++   is put. */
++#ifdef __USE_GNU
++# define F_OFD_GETLK	36
++# define F_OFD_SETLK	37
++# define F_OFD_SETLKW	38
++#endif
++#endif
++
+ #ifdef __USE_LARGEFILE64
+ # define O_LARGEFILE __O_LARGEFILE
+ #endif
diff --git a/SOURCES/glibc-rh1471405.patch b/SOURCES/glibc-rh1471405.patch
new file mode 100644
index 0000000..f177ef4
--- /dev/null
+++ b/SOURCES/glibc-rh1471405.patch
@@ -0,0 +1,12 @@
+diff -rup a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
+--- a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h	2018-04-13 17:49:11.000000000 -0400
++++ b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h	2018-04-13 17:58:48.234289426 -0400
+@@ -131,6 +131,7 @@
+ # define O_DIRECT	__O_DIRECT	/* Direct disk access.	*/
+ # define O_NOATIME	__O_NOATIME	/* Do not set atime.  */
+ # define O_PATH		__O_PATH	/* Resolve pathname but do not open file.  */
++# define O_TMPFILE	__O_TMPFILE	/* Atomically create nameless file.  */
+ #endif
+ 
+ /* For now, Linux has no separate synchronicitiy options for read
+Only in b/sysdeps/unix/sysv/linux/bits: fcntl-linux.h~
diff --git a/SOURCES/glibc-rh1476120.patch b/SOURCES/glibc-rh1476120.patch
new file mode 100644
index 0000000..4207f6e
--- /dev/null
+++ b/SOURCES/glibc-rh1476120.patch
@@ -0,0 +1,33 @@
+commit 257dabc059447934a90be6fce4b5d2a5f4b63dfd
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Wed Dec 14 18:23:15 2016 +0000
+
+    Include <linux/falloc.h> in bits/fcntl-linux.h.
+    
+    This patch makes bits/fcntl-linux.h include <linux/falloc.h> to define
+    the FALLOC_* flags under __USE_GNU (linux/falloc.h defines only those
+    bits, nothing else).
+    
+    Tested for x86_64 and x86.
+    
+    	* sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU]: Include
+    	<linux/falloc.h>.
+    	(FALLOC_FL_KEEP_SIZE): Remove.
+    	(FALLOC_FL_PUNCH_HOLE): Likewise.
+    	(FALLOC_FL_COLLAPSE_RANGE): Likewise.
+    	(FALLOC_FL_ZERO_RANGE): Likewise.
+
+diff -rup a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
+--- a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h	2018-04-13 18:27:53.000000000 -0400
++++ b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h	2018-04-13 18:29:27.108482182 -0400
+@@ -300,6 +300,10 @@ struct f_owner_ex
+ # define SPLICE_F_GIFT		8	/* Pages passed in are a gift.  */
+ 
+ 
++/* Flags for fallocate.  */
++# include <linux/falloc.h>
++
++
+ /* File handle structure.  */
+ struct file_handle
+ {
diff --git a/SOURCES/glibc-rh1505451.patch b/SOURCES/glibc-rh1505451.patch
new file mode 100644
index 0000000..b08fb6d
--- /dev/null
+++ b/SOURCES/glibc-rh1505451.patch
@@ -0,0 +1,21 @@
+commit 12c3bb770dd3ea11215baf23b385dbf297a2a85c
+Author: Torvald Riegel <triegel@redhat.com>
+Date:   Fri Jan 15 22:40:50 2016 +0100
+
+    Fix pthread_barrier_init typo.
+    
+    Applies Paul Eggert's fix for BZ 18868.
+
+Index: b/nptl/pthread_barrier_init.c
+===================================================================
+--- a/nptl/pthread_barrier_init.c
++++ b/nptl/pthread_barrier_init.c
+@@ -39,7 +39,7 @@ pthread_barrier_init (pthread_barrier_t
+ 
+   const struct pthread_barrierattr *iattr
+     = (attr != NULL
+-       ? iattr = (struct pthread_barrierattr *) attr
++       ? (struct pthread_barrierattr *) attr
+        : &default_barrierattr);
+ 
+   if (iattr->pshared != PTHREAD_PROCESS_PRIVATE
diff --git a/SOURCES/glibc-rh1505477.patch b/SOURCES/glibc-rh1505477.patch
new file mode 100644
index 0000000..76a2c9e
--- /dev/null
+++ b/SOURCES/glibc-rh1505477.patch
@@ -0,0 +1,71 @@
+commit e4043b84c49e1cf9bcf1e8320233343ecc34f8eb
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Tue Jun 27 17:12:13 2017 +0000
+
+    Fix strftime build with GCC 8.
+    
+    Building with current GCC mainline fails with:
+    
+    strftime_l.c: In function '__strftime_internal':
+    strftime_l.c:719:4: error: macro expands to multiple statements [-Werror=multistatement-macros]
+        digits = d > width ? d : width;          \
+        ^
+    strftime_l.c:1260:6: note: in expansion of macro 'DO_NUMBER'
+          DO_NUMBER (1, tp->tm_year + TM_YEAR_BASE);
+          ^~~~~~~~~
+    strftime_l.c:1259:4: note: some parts of macro expansion are not guarded by this 'else' clause
+        else
+        ^~~~
+    
+    In fact this particular instance is harmless; the code looks like:
+    
+              if (modifier == L_('O'))
+                goto bad_format;
+              else
+                DO_NUMBER (1, tp->tm_year + TM_YEAR_BASE);
+    
+    and because of the goto, it doesn't matter that part of the expansion
+    isn't under the "else" conditional.  But it's also clearly bad style
+    to rely on that.  This patch changes DO_NUMBER and DO_NUMBER_SPACEPAD
+    to use do { } while (0) to avoid such problems.
+    
+    Tested (full testsuite) for x86_64 (GCC 6), and with
+    build-many-glibcs.py with GCC mainline, in conjunction with my libgcc
+    patch <https://gcc.gnu.org/ml/gcc-patches/2017-06/msg02032.html>.
+    
+            * time/strftime_l.c (DO_NUMBER): Define using do { } while (0).
+            (DO_NUMBER_SPACEPAD): Likewise.
+
+Index: b/time/strftime_l.c
+===================================================================
+--- a/time/strftime_l.c
++++ b/time/strftime_l.c
+@@ -715,12 +715,22 @@ __strftime_internal (CHAR_T *s, size_t m
+       format_char = *f;
+       switch (format_char)
+ 	{
+-#define DO_NUMBER(d, v) \
+-	  digits = d > width ? d : width;				      \
+-	  number_value = v; goto do_number
+-#define DO_NUMBER_SPACEPAD(d, v) \
+-	  digits = d > width ? d : width;				      \
+-	  number_value = v; goto do_number_spacepad
++#define DO_NUMBER(d, v)				\
++	  do					\
++	    {					\
++	      digits = d > width ? d : width;	\
++	      number_value = v;			\
++	      goto do_number;			\
++	    }					\
++	  while (0)
++#define DO_NUMBER_SPACEPAD(d, v)		\
++	  do					\
++	    {					\
++	      digits = d > width ? d : width;	\
++	      number_value = v;			\
++	      goto do_number_spacepad;		\
++	    }					\
++	  while (0)
+ 
+ 	case L_('%'):
+ 	  if (modifier != 0)
diff --git a/SOURCES/glibc-rh1505492-address.patch b/SOURCES/glibc-rh1505492-address.patch
new file mode 100644
index 0000000..26afcf9
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-address.patch
@@ -0,0 +1,75 @@
+commit 4e0b901601038c863b97e68b18ae50a82e10a157
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Tue Dec 2 22:33:57 2014 +0000
+
+    Fix -Waddress warnings in nptl/tst-mutex1.c.
+    
+    This patch fixes -Waddress warnings in nptl/tst-mutex1.c from
+    comparing the address of an object with NULL (ATTR may either be NULL,
+    or the address of an object when included from other tests, and the
+    warning arises in the latter case).  A macro ATTR_NULL is defined
+    alongside ATTR and used for the tests.
+    
+    Tested for x86_64.
+    
+            * nptl/tst-mutex1.c: Include <stdbool.h>.
+            [!ATTR] (ATTR_NULL): New macro.
+            (do_test): Test !ATTR_NULL instead of ATTR != NULL.
+            * nptl/tst-mutexpi1.c (ATTR_NULL): New macro.
+            * nptl/tst-mutexpp1.c (ATTR_NULL): New macro.
+
+diff --git a/nptl/tst-mutex1.c b/nptl/tst-mutex1.c
+index 830c9d1f74076c5d..0f2ae0bf67cfa414 100644
+--- a/nptl/tst-mutex1.c
++++ b/nptl/tst-mutex1.c
+@@ -19,10 +19,12 @@
+ #include <pthread.h>
+ #include <stdio.h>
+ #include <errno.h>
++#include <stdbool.h>
+ 
+ 
+ #ifndef ATTR
+ # define ATTR NULL
++# define ATTR_NULL true
+ #endif
+ 
+ 
+@@ -32,7 +34,7 @@ do_test (void)
+   pthread_mutex_t m;
+ 
+   int e = pthread_mutex_init (&m, ATTR);
+-  if (ATTR != NULL && e == ENOTSUP)
++  if (!ATTR_NULL && e == ENOTSUP)
+     {
+       puts ("cannot support selected type of mutexes");
+       return 0;
+@@ -43,7 +45,7 @@ do_test (void)
+       return 1;
+     }
+ 
+-  if (ATTR != NULL && pthread_mutexattr_destroy (ATTR) != 0)
++  if (!ATTR_NULL && pthread_mutexattr_destroy (ATTR) != 0)
+     {
+       puts ("mutexattr_destroy failed");
+       return 1;
+diff --git a/nptl/tst-mutexpi1.c b/nptl/tst-mutexpi1.c
+index 623ede9fa5a2f1ca..d768664d026b047f 100644
+--- a/nptl/tst-mutexpi1.c
++++ b/nptl/tst-mutexpi1.c
+@@ -24,4 +24,5 @@ prepare (void)
+ 
+ 
+ #define ATTR &a
++#define ATTR_NULL false
+ #include "tst-mutex1.c"
+diff --git a/nptl/tst-mutexpp1.c b/nptl/tst-mutexpp1.c
+index 9b7d7fe2634a8337..8ec4673f1a8c81fe 100644
+--- a/nptl/tst-mutexpp1.c
++++ b/nptl/tst-mutexpp1.c
+@@ -42,4 +42,5 @@ do_test_wrapper (void)
+ #define TEST_FUNCTION do_test_wrapper ()
+ 
+ #define ATTR &a
++#define ATTR_NULL false
+ #include "tst-mutex1.c"
diff --git a/SOURCES/glibc-rh1505492-bounded-1.patch b/SOURCES/glibc-rh1505492-bounded-1.patch
new file mode 100644
index 0000000..2cf7bca
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-bounded-1.patch
@@ -0,0 +1,304 @@
+commit c2d549290d24aeae30a328a6b4061f60f095dea2
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Thu Jan 31 22:57:06 2013 +0000
+
+    Remove bp-thunks code.
+
+Conflicts:
+	sysdeps/generic/bp-thunks.h
+
+Copyright header change; file removed manually.
+
+diff --git a/Makerules b/Makerules
+index 9e572f48728b0f56..9bd7d603fc28a4de 100644
+--- a/Makerules
++++ b/Makerules
+@@ -419,19 +419,15 @@ static-only-routines =
+ endif
+ endif
+ 
+-# Bounded pointer thunks are only built for *.ob
+-elide-bp-thunks = $(addprefix $(bppfx),$(bp-thunks))
+-
+ elide-routines.oS += $(filter-out $(static-only-routines),\
+-				  $(routines) $(aux) $(sysdep_routines)) \
+-		     $(elide-bp-thunks)
+-elide-routines.os += $(static-only-routines) $(elide-bp-thunks)
++				  $(routines) $(aux) $(sysdep_routines))
++elide-routines.os += $(static-only-routines)
+ 
+ # If we have versioned code we don't need the old versions in any of the
+ # static libraries.
+-elide-routines.o  += $(shared-only-routines) $(elide-bp-thunks)
+-elide-routines.op += $(shared-only-routines) $(elide-bp-thunks)
+-elide-routines.og += $(shared-only-routines) $(elide-bp-thunks)
++elide-routines.o  += $(shared-only-routines)
++elide-routines.op += $(shared-only-routines)
++elide-routines.og += $(shared-only-routines)
+ elide-routines.ob += $(shared-only-routines)
+ 
+ # Shared library building.
+@@ -639,11 +635,7 @@ headers := $(headers) $(sysdep_headers)
+ 
+ # This is the list of all object files, gotten by
+ # replacing every ".c" in `sources' with a ".o".
+-# We also add bounded-pointer thunks, which are later
+-# elided for all suffixes except for `.ob'.
+-override objects := $(addprefix $(objpfx),$(sources:.c=.o) \
+-		      $(patsubst %,$(bppfx)%.o,\
+-			$(filter $(routines) $(sysdep_routines),$(bp-thunks))))
++override objects := $(addprefix $(objpfx),$(sources:.c=.o))
+ 
+ 
+ # The makefile may define $(extra-libs) with `libfoo libbar'
+diff --git a/sysdeps/generic/bp-thunks.h b/sysdeps/generic/bp-thunks.h
+deleted file mode 100644
+index 1c9bba21c80387a5..0000000000000000
+--- a/sysdeps/generic/bp-thunks.h
++++ /dev/null
+@@ -1,69 +0,0 @@
+-/* Bounded-pointer syscall thunk support.
+-   Copyright (C) 2000, 2003 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Greg McGary <greg@mcgary.org>
+-
+-   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 _bpthunks_h_
+-#define _bpthunks_h_
+-
+-#ifndef __ASSEMBLER__
+-
+-/* This header is included by the syscall BP thunks defined in
+-   sysd-syscalls, as created by sysdeps/unix/make-syscalls.sh.  It
+-   includes all headers that contain prototype declarations for system
+-   call functions.  */
+-
+-#include <libc-symbols.h>
+-#include <bp-sym.h>
+-#include <bp-checks.h>
+-
+-/* Get `struct timeval' definition for select.  */
+-#define __need_timeval
+-#include <bits/time.h>
+-
+-#include <stddef.h>
+-#include <unistd.h>
+-#include <sched.h>
+-#include <signal.h>
+-#include <fcntl.h>
+-#include <time.h>
+-#include <utime.h>
+-#include <stdio.h>
+-
+-#include <sys/types.h>
+-#include <sys/ioctl.h>
+-#include <sys/klog.h>
+-#include <sys/mman.h>
+-#include <sys/mount.h>
+-#include <sys/quota.h>
+-#include <sys/resource.h>
+-#include <sys/select.h>
+-#include <io/sys/sendfile.h>
+-#include <sys/socket.h>
+-#include <sys/stat.h>
+-#include <sys/statfs.h>
+-#include <sys/swap.h>
+-#include <sys/sysinfo.h>
+-#include <sys/time.h>
+-#include <sys/times.h>
+-#include <sys/timex.h>
+-#include <sys/utsname.h>
+-#include <sys/wait.h>
+-
+-#endif /* Not __ASSEMBLER__.  */
+-
+-#endif /* _bpthunks_h_ */
+diff --git a/sysdeps/unix/Makefile b/sysdeps/unix/Makefile
+index 0ba5dcbcac323bb0..b369128d0cb6c2e7 100644
+--- a/sysdeps/unix/Makefile
++++ b/sysdeps/unix/Makefile
+@@ -89,21 +89,10 @@ $(common-objpfx)sysd-syscalls: $(..)sysdeps/unix/make-syscalls.sh \
+ 	mv -f $@T $@
+ endif
+ 
+-# The $(bppfx)syscall.ob objects depend on s-proto-bp.d, which are
+-# generated to specify dependencies generated BP stubs have on headers.
+-# These deps use file names relative to a subdir, so don't
+-# include them in the parent directory.
+-ifneq (,$(filter $(unix-syscalls),$(routines) $(sysdep_routines) $(aux)))
+-ifndef no_deps
+--include $(common-objpfx)s-proto-bp.d
+-endif
+-endif
+-
+ $(common-objpfx)s-%.d: $(..)sysdeps/unix/s-%.S \
+ 		       $(wildcard $(+sysdep_dirs:%=%/syscalls.list))
+ 	$(+make-deps)
+ 
+-common-generated += s-proto-bp.d
+ postclean-generated += sysd-syscalls
+ 
+ endif
+diff --git a/sysdeps/unix/make-syscalls.sh b/sysdeps/unix/make-syscalls.sh
+index 2c701a2bf59183b2..4ec17c99bc16eaee 100644
+--- a/sysdeps/unix/make-syscalls.sh
++++ b/sysdeps/unix/make-syscalls.sh
+@@ -36,10 +36,6 @@
+ # W: wait status, optionally-NULL pointer to int (e.g., 2nd arg of wait4)
+ #
+ 
+-ptr='[abBfFINpPsSWV]'	# all pointer keyletters
+-int='[inv]'		# all scalar keyletters
+-typ='[ifnNpP]'		# typed-arg keyletters: we capture type for use in thunk
+-
+ ##############################################################################
+ 
+ thisdir=$1; shift
+@@ -313,114 +309,4 @@ while read file srcfile caller syscall args strong weak; do
+  ;;
+  esac
+ 
+-  case x"$callnum",$srcfile,$args in
+-  x[_-],-,* | x*,*.[sS],*V*) ;;
+-  x*,-,*$ptr* | x*,*.[sS],*$ptr*)
+-
+-    nv_weak=`for name in $weak; do
+-		case $name in
+-		*@*) ;;
+-		*) echo $name;;
+-	        esac; done`
+-
+-    # choose the name with the fewest leading underscores, preferably none
+-    set `echo $strong $nv_weak |tr '@ \t' ' \n\n' |sort -r`
+-    callname=$1
+-
+-    # convert signature string to individual numbered arg names
+-    # e.g., i:ipbN -> i0 i1 p2 b3 N4
+-    set `echo $args |
+-	sed -e 's/^\(.\):\(.*\)/\2 <\10>/' \
+-	    -e 's/^\([^ ]\)\(.*\)/\2 <\11>/' \
+-	    -e 's/^\([^ ]\)\(.*\)/\2 <\12>/' \
+-	    -e 's/^\([^ ]\)\(.*\)/\2 <\13>/' \
+-	    -e 's/^\([^ ]\)\(.*\)/\2 <\14>/' \
+-	    -e 's/^\([^ ]\)\(.*\)/\2 <\15>/' \
+-	    -e 's/^\([^ ]\)\(.*\)/\2 <\16>/' \
+-	    -e 's/^\([^ ]\)\(.*\)/\2 <\17>/' \
+-	    -e 's/^\([^ ]\)\(.*\)/\2 <\18>/' \
+-	    -e 's/^\([^ ]\)\(.*\)/\2 <\19>/'`
+-    rtn=$1; shift
+-    args=$*
+-    arglist=`echo $* |sed 's/ /, /g'`
+-
+-    # The best way to understand what's going on here is to examine
+-    # the output in BUILDDIR/sysd-syscalls.
+-
+-    # generate makefile envelope & rule head
+-    echo "ifeq (,\$(filter $file,\$(bp-thunks)))"
+-    echo "bp-thunks += $file"
+-    echo "\$(objpfx)\$(bppfx)$file.ob: \$(common-objpfx)s-proto-bp.d"
+-
+-    # generate macro head
+-    echo "	(echo '#define $callname(`echo $arglist | \
+-	    sed -e 's/[<>]//g'`) `echo $rtn | \
+-	    sed -e 's/<\('$typ'0\)>/\1v;/g' \
+-		-e 's/<\(b0\)>/x0; extern char \1v;/g'` \\'; \\"
+-
+-    # generate extern decls of dummy variables for each arg
+-    echo "	 echo '`echo $args | \
+-	    sed -e 's/<\('$typ'[1-9]\)>/extern \1, \1v;/g' \
+-		-e 's/<\([abBFIsSV][1-9]\)>/extern char \1v;/g' \
+-		-e 's/<\([Wv][1-9]\)>/extern int \1v;/g'` \\'; \\"
+-
+-    # generate bounded-pointer thunk declarator
+-    echo "	 echo '`echo $rtn | \
+-	    sed -e 's/<\('$ptr'0\)>/__typeof (\1v) *__bounded/g' \
+-		-e 's/<\('$int'0\)>/__typeof (\1v)/g'` BP_SYM ($strong) (`echo $arglist | \
+-	    sed -e 's/<\('$ptr'[1-9]\)>/__typeof (\1v) *__bounded \1a/g' \
+-		-e 's/<\('$int'[1-9]\)>/__typeof (\1v) \1a/g'`) { \\'; \\"
+-
+-    # generate extern primitive syscall declaration
+-    echo "	 echo '  extern `echo $rtn | \
+-	    sed -e 's/<\('$ptr'0\)>/__typeof (\1v) *__unbounded/g' \
+-		-e 's/<\('$int'0\)>/__typeof (\1v)/g'` ($callname) (`echo $arglist | \
+-	    sed -e 's/<\('$ptr'[1-9]\)>/__typeof (\1v) *__unbounded/g' \
+-		-e 's/<\('$int'[1-9]\)>/__typeof (\1v)/g'`); \\'; \\"
+-
+-    # generate call the primtive system call, optionally wrapping bounds
+-    # around the result if the signature's return keyletter is `b'.
+-    echo "	 echo '  return `echo $rtn |
+-	    sed -e 's/<b0>/BOUNDED_N (/' \
+-		-e 's/<.0>//'`($callname) (`echo $arglist | \
+-	    sed -e 's/<\(a[1-9]\)>/__ptrvalue (\1a)/g' \
+-		-e 's/<\(n[1-9]\)>, <\(V[1-9]\)>/\1a, CHECK_N_PAGES (\2a, \1a)/g' \
+-		-e 's/<\(b[1-9]\)>, <\(n[1-9]\)>/CHECK_N (\1a, \2a), \2a/g' \
+-		-e 's/<\(b[1-9]\)>, <\(N[1-9]\)>/CHECK_N (\1a, *CHECK_1 (\2a)), __ptrvalue (\2a)/g' \
+-		-e 's/<\(B[1-9]\)>, <\(n[1-9]\)>/CHECK_N_NULL_OK (\1a, \2a), \2a/g' \
+-		-e 's/<\(B[1-9]\)>, <\(N[1-9]\)>/CHECK_N_NULL_OK (\1a, *CHECK_1 (\2a)), __ptrvalue (\2a)/g' \
+-		-e 's/<\(f[1-9]\)>/CHECK_N (\1a, 2)/g' \
+-		-e 's/<\(i[1-9]\)>, <\(F[1-9]\)>/\1a, CHECK_FCNTL (\2a, \1a)/g' \
+-		-e 's/<\(i[1-9]\)>, <\(I[1-9]\)>/\1a, CHECK_IOCTL (\2a, \1a)/g' \
+-		-e 's/<\(p[1-9]\)>/CHECK_1 (\1a)/g' \
+-		-e 's/<\([PW][1-9]\)>/CHECK_1_NULL_OK (\1a)/g' \
+-		-e 's/<\(s[1-9]\)>/CHECK_STRING (\1a)/g' \
+-		-e 's/<\(S[1-9]\)>/CHECK_STRING_NULL_OK (\1a)/g' \
+-		-e 's/<\([ivn][1-9]\)>/\1a/g'`)`echo $rtn $args |
+-	    sed -e 's/<b0>.*<\(n[1-9]\)>.*/, \1a)/' \
+-		-e 's/<.0>.*//'`; \\'; \\"
+-
+-    echo "	 echo '} \\'; \\"
+-
+-    echo "	 echo 'libc_hidden_def (BP_SYM ($strong)) \\'; \\"
+-
+-    # generate thunk aliases
+-    for name in $nv_weak; do
+-      echo "	 echo 'weak_alias (BP_SYM ($strong), BP_SYM ($name)) \\'; \\"
+-      echo "	 echo 'libc_hidden_weak (BP_SYM ($name)) \\'; \\"
+-    done
+-
+-    # wrap up
+-    echo "\
+-	 echo ''; \\
+-	 echo '#include <bp-thunks.h>'; \\
+-	) | \$(COMPILE.c) -x c -o \$@ -"
+-### Use this for debugging intermediate output:
+-### 	) >\$(@:.ob=.c)
+-### 	\$(subst -c,-E,\$(COMPILE.c)) -o \$(@:.ob=.ib) \$(@:.ob=.c)
+-### 	\$(COMPILE.c) -x cpp-output -o \$@ \$(@:.ob=.ib)"
+-    echo endif
+-    ;;
+-  esac
+-
+ done
+diff --git a/sysdeps/unix/s-proto-bp.S b/sysdeps/unix/s-proto-bp.S
+deleted file mode 100644
+index ba0363e16ffc4bd8..0000000000000000
+--- a/sysdeps/unix/s-proto-bp.S
++++ /dev/null
+@@ -1,4 +0,0 @@
+-/* This file exists just to have its dependencies determined.
+-   Those dependencies are then used for the bp thunk objects.  */
+-
+-#include <bp-thunks.h>
+diff --git a/sysdeps/unix/sysv/linux/i386/bp-thunks.h b/sysdeps/unix/sysv/linux/i386/bp-thunks.h
+deleted file mode 100644
+index 59a42ddefe8ed33e..0000000000000000
+--- a/sysdeps/unix/sysv/linux/i386/bp-thunks.h
++++ /dev/null
+@@ -1,4 +0,0 @@
+-#ifndef __ASSEMBLER__
+-# include <sysdeps/generic/bp-thunks.h>
+-# include <sys/vm86.h>
+-#endif
diff --git a/SOURCES/glibc-rh1505492-bounded-10.patch b/SOURCES/glibc-rh1505492-bounded-10.patch
new file mode 100644
index 0000000..f628551
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-bounded-10.patch
@@ -0,0 +1,985 @@
+commit 70d9946a44ba381f81eb08c71cc150315cc112ad
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Wed Feb 13 23:30:40 2013 +0000
+
+    Remove __ptrvalue, __bounded and __unbounded.
+
+Conflicts:
+	sysdeps/sparc/backtrace.c
+
+The changes to that file have been applied to
+sysdeps/sparc/sparc64/backtrace.c instead.
+
+The installed header <sys/cdefs.h> is not changed, so the
+misc/sys/cdefs.h change is excluded from the backport.
+
+diff --git a/csu/libc-start.c b/csu/libc-start.c
+index 2fab8556a5e2cb26..63757062c730c81a 100644
+--- a/csu/libc-start.c
++++ b/csu/libc-start.c
+@@ -107,14 +107,14 @@ apply_irel (void)
+ STATIC int LIBC_START_MAIN (int (*main) (int, char **, char **
+ 					 MAIN_AUXVEC_DECL),
+ 			    int argc,
+-			    char *__unbounded *__unbounded ubp_av,
++			    char **argv,
+ #ifdef LIBC_START_MAIN_AUXVEC_ARG
+-			    ElfW(auxv_t) *__unbounded auxvec,
++			    ElfW(auxv_t) *auxvec,
+ #endif
+ 			    __typeof (main) init,
+ 			    void (*fini) (void),
+ 			    void (*rtld_fini) (void),
+-			    void *__unbounded stack_end)
++			    void *stack_end)
+      __attribute__ ((noreturn));
+ 
+ 
+@@ -123,29 +123,23 @@ STATIC int LIBC_START_MAIN (int (*main) (int, char **, char **
+    finalizers were called in more than one place.  */
+ STATIC int
+ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
+-		 int argc, char *__unbounded *__unbounded ubp_av,
++		 int argc, char **argv,
+ #ifdef LIBC_START_MAIN_AUXVEC_ARG
+-		 ElfW(auxv_t) *__unbounded auxvec,
++		 ElfW(auxv_t) *auxvec,
+ #endif
+ 		 __typeof (main) init,
+ 		 void (*fini) (void),
+-		 void (*rtld_fini) (void), void *__unbounded stack_end)
++		 void (*rtld_fini) (void), void *stack_end)
+ {
+-#if __BOUNDED_POINTERS__
+-  char **argv;
+-#else
+-# define argv ubp_av
+-#endif
+-
+   /* Result of the 'main' function.  */
+   int result;
+ 
+   __libc_multiple_libcs = &_dl_starting_up && !_dl_starting_up;
+ 
+ #ifndef SHARED
+-  char *__unbounded *__unbounded ubp_ev = &ubp_av[argc + 1];
++  char **ev = &argv[argc + 1];
+ 
+-  __environ = ubp_ev;
++  __environ = ev;
+ 
+   /* Store the lowest stack address.  This is done in ld.so if this is
+      the code for the DSO.  */
+@@ -155,12 +149,12 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
+   /* First process the auxiliary vector since we need to find the
+      program header to locate an eventually present PT_TLS entry.  */
+ #  ifndef LIBC_START_MAIN_AUXVEC_ARG
+-  ElfW(auxv_t) *__unbounded auxvec;
++  ElfW(auxv_t) *auxvec;
+   {
+-    char *__unbounded *__unbounded evp = ubp_ev;
++    char **evp = ev;
+     while (*evp++ != NULL)
+       ;
+-    auxvec = (ElfW(auxv_t) *__unbounded) evp;
++    auxvec = (ElfW(auxv_t) *) evp;
+   }
+ #  endif
+   _dl_aux_init (auxvec);
+diff --git a/debug/backtrace.c b/debug/backtrace.c
+index d0785329a2514e20..0537f6655e62be49 100644
+--- a/debug/backtrace.c
++++ b/debug/backtrace.c
+@@ -63,8 +63,8 @@ __backtrace (array, size)
+      int size;
+ {
+   struct layout *current;
+-  void *__unbounded top_frame;
+-  void *__unbounded top_stack;
++  void *top_frame;
++  void *top_stack;
+   int cnt = 0;
+ 
+   top_frame = FIRST_FRAME_POINTER;
+diff --git a/elf/dl-runtime.c b/elf/dl-runtime.c
+index 19543aa44b84cac2..de55b2676fc80645 100644
+--- a/elf/dl-runtime.c
++++ b/elf/dl-runtime.c
+@@ -62,9 +62,7 @@ _dl_fixup (
+ # ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
+ 	   ELF_MACHINE_RUNTIME_FIXUP_ARGS,
+ # endif
+-	   /* GKM FIXME: Fix trampoline to pass bounds so we can do
+-	      without the `__unbounded' qualifier.  */
+-	   struct link_map *__unbounded l, ElfW(Word) reloc_arg)
++	   struct link_map *l, ElfW(Word) reloc_arg)
+ {
+   const ElfW(Sym) *const symtab
+     = (const void *) D_PTR (l, l_info[DT_SYMTAB]);
+diff --git a/include/set-hooks.h b/include/set-hooks.h
+index 74c03acb0d81acdc..8c902fa18195fa46 100644
+--- a/include/set-hooks.h
++++ b/include/set-hooks.h
+@@ -41,7 +41,7 @@
+ 
+ # define RUN_HOOK(NAME, ARGS)						      \
+ do {									      \
+-  void *const *__unbounded ptr;						      \
++  void *const *ptr;						      \
+   for (ptr = (void *const *) symbol_set_first_element (NAME);		      \
+        ! symbol_set_end_p (NAME, ptr); ++ptr)				      \
+     (*(__##NAME##_hook_function_t *) *ptr) ARGS;			      \
+diff --git a/ports/sysdeps/am33/dl-machine.h b/ports/sysdeps/am33/dl-machine.h
+index 52278c0a4e006563..90083c7dc45fc602 100644
+--- a/ports/sysdeps/am33/dl-machine.h
++++ b/ports/sysdeps/am33/dl-machine.h
+@@ -63,9 +63,7 @@ elf_machine_load_address (void)
+ 
+    We cannot use this scheme for profiling because the _mcount call
+    destroys the passed register information.  */
+-/* GKM FIXME: Fix trampoline to pass bounds so we can do
+-   without the `__unbounded' qualifier.  */
+-static ElfW(Addr) fixup (struct link_map *__unbounded l, ElfW(Word) reloc_offset)
++static ElfW(Addr) fixup (struct link_map *l, ElfW(Word) reloc_offset)
+      __attribute__ ((unused));
+ static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset,
+ 				 ElfW(Addr) retaddr)
+diff --git a/ports/sysdeps/arm/frame.h b/ports/sysdeps/arm/frame.h
+index a98729b6887722ed..268f8b250f033f0f 100644
+--- a/ports/sysdeps/arm/frame.h
++++ b/ports/sysdeps/arm/frame.h
+@@ -19,9 +19,9 @@
+ /* This is the APCS stack backtrace structure.  */
+ struct layout
+ {
+-  struct layout *__unbounded next;
+-  void *__unbounded sp;
+-  void *__unbounded return_address;
++  struct layout *next;
++  void *sp;
++  void *return_address;
+ };
+ 
+ #define FIRST_FRAME_POINTER ADVANCE_STACK_FRAME (__builtin_frame_address (0))
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/sigaction.c b/ports/sysdeps/unix/sysv/linux/aarch64/sigaction.c
+index 811230a1fdec983f..1db848f06e9fb072 100644
+--- a/ports/sysdeps/unix/sysv/linux/aarch64/sigaction.c
++++ b/ports/sysdeps/unix/sysv/linux/aarch64/sigaction.c
+@@ -51,8 +51,8 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+     }
+ 
+   result = INLINE_SYSCALL (rt_sigaction, 4, sig,
+-			   act ? __ptrvalue (&kact) : NULL,
+-			   oact ? __ptrvalue (&koact) : NULL, _NSIG / 8);
++			   act ? &kact : NULL,
++			   oact ? &koact : NULL, _NSIG / 8);
+   if (result >= 0 || errno != ENOSYS)
+     {
+       if (oact && result >= 0)
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/sigaction.c b/ports/sysdeps/unix/sysv/linux/alpha/sigaction.c
+index 2dcb133442a4636a..14b47feee06c43b0 100644
+--- a/ports/sysdeps/unix/sysv/linux/alpha/sigaction.c
++++ b/ports/sysdeps/unix/sysv/linux/alpha/sigaction.c
+@@ -32,7 +32,7 @@
+          : INLINE_SYSCALL1(name, nr, args))
+ 
+ struct kernel_sigaction;
+-extern int __syscall_rt_sigaction (int, const struct kernel_sigaction *__unbounded,
+-				   struct kernel_sigaction *__unbounded, size_t);
++extern int __syscall_rt_sigaction (int, const struct kernel_sigaction *,
++				   struct kernel_sigaction *, size_t);
+ 
+ #include <sysdeps/unix/sysv/linux/sigaction.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/brk.c b/ports/sysdeps/unix/sysv/linux/am33/brk.c
+index a06495cf29d5d67b..dc7ec639b3a558c0 100644
+--- a/ports/sysdeps/unix/sysv/linux/am33/brk.c
++++ b/ports/sysdeps/unix/sysv/linux/am33/brk.c
+@@ -30,7 +30,7 @@ __brk (void *addr)
+ {
+   void *newbrk;
+ 
+-  newbrk = INLINE_SYSCALL (brk, 1, __ptrvalue (addr));
++  newbrk = INLINE_SYSCALL (brk, 1, addr);
+ 
+   __curbrk = newbrk;
+ 
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/sigaction.c b/ports/sysdeps/unix/sysv/linux/arm/sigaction.c
+index fe036c1bdc6660b0..02b47e79e2139e0e 100644
+--- a/ports/sysdeps/unix/sysv/linux/arm/sigaction.c
++++ b/ports/sysdeps/unix/sysv/linux/arm/sigaction.c
+@@ -83,8 +83,8 @@ __libc_sigaction (sig, act, oact)
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+   result = INLINE_SYSCALL (rt_sigaction, 4, sig,
+-			   act ? __ptrvalue (&kact) : NULL,
+-			   oact ? __ptrvalue (&koact) : NULL, _NSIG / 8);
++			   act ? &kact : NULL,
++			   oact ? &koact : NULL, _NSIG / 8);
+ 
+   if (oact && result >= 0)
+     {
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c b/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
+index dda02b14442d5cb5..2006bc69d80720ba 100644
+--- a/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
++++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
+@@ -34,7 +34,7 @@ __fxstat64 (int vers, int fd, struct stat64 *buf)
+   int result;
+   struct kernel_stat kbuf;
+ 
+-  result = INLINE_SYSCALL (fstat, 2, fd, __ptrvalue (&kbuf));
++  result = INLINE_SYSCALL (fstat, 2, fd, &kbuf);
+   if (result == 0)
+     result = __xstat64_conv (vers, &kbuf, buf);
+ 
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c b/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
+index 645ffa122ea62de6..5c795e47a977baaa 100644
+--- a/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
++++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
+@@ -95,9 +95,9 @@ __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
+     }
+ 
+   if (flag & AT_SYMLINK_NOFOLLOW)
+-    result = INTERNAL_SYSCALL (lstat, err, 2, file, __ptrvalue (&kst));
++    result = INTERNAL_SYSCALL (lstat, err, 2, file, &kst);
+   else
+-    result = INTERNAL_SYSCALL (stat, err, 2, file, __ptrvalue (&kst));
++    result = INTERNAL_SYSCALL (stat, err, 2, file, &kst);
+ 
+   if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+     return __xstat64_conv (vers, &kst, st);
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c b/ports/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
+index f698d9298a3855e6..a59e2bb389238751 100644
+--- a/ports/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
++++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
+@@ -33,7 +33,7 @@ __lxstat64 (int vers, const char *name, struct stat64 *buf)
+   int result;
+   struct kernel_stat kbuf;
+ 
+-  result = INLINE_SYSCALL (lstat, 2, name, __ptrvalue (&kbuf));
++  result = INLINE_SYSCALL (lstat, 2, name, &kbuf);
+   if (result == 0)
+     result = __xstat64_conv (vers, &kbuf, buf);
+ 
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c b/ports/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
+index 623299c6b8db85c4..e08c177d256108a0 100644
+--- a/ports/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
++++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
+@@ -34,7 +34,7 @@ __xstat64 (int vers, const char *name, struct stat64 *buf)
+   int result;
+   struct kernel_stat kbuf;
+ 
+-  result = INLINE_SYSCALL (stat, 2, name, __ptrvalue (&kbuf));
++  result = INLINE_SYSCALL (stat, 2, name, &kbuf);
+   if (result == 0)
+     result = __xstat64_conv (vers, &kbuf, buf);
+ 
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/sigaction.c b/ports/sysdeps/unix/sysv/linux/mips/sigaction.c
+index d646af3f22928ef7..b6e6811a271344a3 100644
+--- a/ports/sysdeps/unix/sysv/linux/mips/sigaction.c
++++ b/ports/sysdeps/unix/sysv/linux/mips/sigaction.c
+@@ -71,8 +71,8 @@ __libc_sigaction (sig, act, oact)
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.	*/
+   result = INLINE_SYSCALL (rt_sigaction, 4, sig,
+-			   act ? __ptrvalue (&kact) : NULL,
+-			   oact ? __ptrvalue (&koact) : NULL,
++			   act ? &kact : NULL,
++			   oact ? &koact : NULL,
+ 			   sizeof (kernel_sigset_t));
+ 
+   if (oact && result >= 0)
+diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
+index 3e88b2c4dd513909..97805989f6db70bf 100644
+--- a/stdio-common/vfprintf.c
++++ b/stdio-common/vfprintf.c
+@@ -308,7 +308,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
+       do								      \
+ 	{								      \
+ 	  int offset;							      \
+-	  void *__unbounded ptr;					      \
++	  void *ptr;							      \
+ 	  spec = (ChExpr);						      \
+ 	  offset = NOT_IN_JUMP_RANGE (spec) ? REF (form_unknown)	      \
+ 	    : table[CHAR_CLASS (spec)];					      \
+@@ -321,7 +321,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
+ # define JUMP(ChExpr, table)						      \
+       do								      \
+ 	{								      \
+-	  const void *__unbounded ptr;					      \
++	  const void *ptr;						      \
+ 	  spec = (ChExpr);						      \
+ 	  ptr = NOT_IN_JUMP_RANGE (spec) ? REF (form_unknown)		      \
+ 	    : table[CHAR_CLASS (spec)];					      \
+diff --git a/string/strcpy.c b/string/strcpy.c
+index bf624947cc780328..22467bb88dc8cef8 100644
+--- a/string/strcpy.c
++++ b/string/strcpy.c
+@@ -28,7 +28,7 @@ strcpy (dest, src)
+      const char *src;
+ {
+   char c;
+-  char *__unbounded s = (char *__unbounded) src;
++  char *s = (char *) src;
+   const ptrdiff_t off = dest - s - 1;
+ 
+   do
+diff --git a/sysdeps/generic/frame.h b/sysdeps/generic/frame.h
+index 0f24b85913aa9694..1772f8c05b6f0fa9 100644
+--- a/sysdeps/generic/frame.h
++++ b/sysdeps/generic/frame.h
+@@ -18,6 +18,6 @@
+ 
+ struct layout
+ {
+-  void *__unbounded next;
+-  void *__unbounded return_address;
++  void *next;
++  void *return_address;
+ };
+diff --git a/sysdeps/gnu/bits/msq.h b/sysdeps/gnu/bits/msq.h
+index 6cfc7d76e54a3742..ee9812ae111db277 100644
+--- a/sysdeps/gnu/bits/msq.h
++++ b/sysdeps/gnu/bits/msq.h
+@@ -38,13 +38,13 @@ typedef unsigned short int msglen_t;
+ struct msqid_ds
+ {
+   struct ipc_perm msg_perm;	/* structure describing operation permission */
+-  struct msg *__unbounded __msg_first; /* pointer to first message on queue */
+-  struct msg *__unbounded __msg_last; /* pointer to last message on queue */
++  struct msg *__msg_first;	/* pointer to first message on queue */
++  struct msg *__msg_last;	/* pointer to last message on queue */
+   __time_t msg_stime;		/* time of last msgsnd command */
+   __time_t msg_rtime;		/* time of last msgrcv command */
+   __time_t msg_ctime;		/* time of last change */
+-  struct wait_queue *__unbounded __wwait; /* ??? */
+-  struct wait_queue *__unbounded __rwait; /* ??? */
++  struct wait_queue *__wwait;	/* ??? */
++  struct wait_queue *__rwait;	/* ??? */
+   unsigned short int __msg_cbytes;/* current number of bytes on queue */
+   msgqnum_t msg_qnum;		/* number of messages currently on queue */
+   msglen_t msg_qbytes;		/* max number of bytes allowed on queue */
+diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h
+index 2f6dd4fae200c016..fc2b976651e20ca7 100644
+--- a/sysdeps/i386/dl-machine.h
++++ b/sysdeps/i386/dl-machine.h
+@@ -152,11 +152,9 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
+ 
+    We cannot use this scheme for profiling because the _mcount call
+    destroys the passed register information.  */
+-/* GKM FIXME: Fix trampoline to pass bounds so we can do
+-   without the `__unbounded' qualifier.  */
+ #define ARCH_FIXUP_ATTRIBUTE __attribute__ ((regparm (3), stdcall, unused))
+ 
+-extern ElfW(Addr) _dl_fixup (struct link_map *__unbounded l,
++extern ElfW(Addr) _dl_fixup (struct link_map *l,
+ 			     ElfW(Word) reloc_offset)
+      ARCH_FIXUP_ATTRIBUTE;
+ extern ElfW(Addr) _dl_profile_fixup (struct link_map *l,
+diff --git a/sysdeps/powerpc/powerpc32/backtrace.c b/sysdeps/powerpc/powerpc32/backtrace.c
+index 0e2e5c296876444e..6fab3b586aee06d5 100644
+--- a/sysdeps/powerpc/powerpc32/backtrace.c
++++ b/sysdeps/powerpc/powerpc32/backtrace.c
+@@ -31,8 +31,8 @@
+ */
+ struct layout
+ {
+-  struct layout *__unbounded next;
+-  void *__unbounded return_address;
++  struct layout *next;
++  void *return_address;
+ };
+ 
+ int
+diff --git a/sysdeps/powerpc/powerpc64/backtrace.c b/sysdeps/powerpc/powerpc64/backtrace.c
+index 08e535585ef2a104..dcdd51cb454e8fa2 100644
+--- a/sysdeps/powerpc/powerpc64/backtrace.c
++++ b/sysdeps/powerpc/powerpc64/backtrace.c
+@@ -33,9 +33,9 @@
+ */
+ struct layout
+ {
+-  struct layout *__unbounded next;
++  struct layout *next;
+   long condition_register;
+-  void *__unbounded return_address;
++  void *return_address;
+ };
+ 
+ int
+diff --git a/sysdeps/sparc/sparc64/backtrace.c b/sysdeps/sparc/sparc64/backtrace.c
+index d5a1ebec000ce91e..f45e2b8b63ad00ed 100644
+--- a/sysdeps/sparc/sparc64/backtrace.c
++++ b/sysdeps/sparc/sparc64/backtrace.c
+@@ -26,7 +26,7 @@ struct layout
+   unsigned long locals[8];
+   unsigned long ins[6];
+   unsigned long next;
+-  void *__unbounded return_address;
++  void *return_address;
+ };
+ 
+ int
+@@ -38,14 +38,14 @@ __backtrace (void **array, int size)
+ 
+   asm volatile ("flushw");
+   asm volatile ("mov %%fp, %0" : "=r"(fp));
+-  current = (struct layout *__unbounded) (fp + STACK_BIAS);
++  current = (struct layout *) (fp + STACK_BIAS);
+ 
+   for (count = 0; count < size; count++)
+     {
+       array[count] = current->return_address;
+       if (!current->next)
+ 	break;
+-      current = (struct layout *__unbounded) (current->next + STACK_BIAS);
++      current = (struct layout *) (current->next + STACK_BIAS);
+     }
+ 
+   return count;
+diff --git a/sysdeps/unix/sysv/linux/aio_sigqueue.c b/sysdeps/unix/sysv/linux/aio_sigqueue.c
+index 91785e545f18c843..9ad149fe32fb214b 100644
+--- a/sysdeps/unix/sysv/linux/aio_sigqueue.c
++++ b/sysdeps/unix/sysv/linux/aio_sigqueue.c
+@@ -48,8 +48,7 @@ __aio_sigqueue (sig, val, caller_pid)
+   info.si_uid = getuid ();
+   info.si_value = val;
+ 
+-  return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid,
+-			 sig, __ptrvalue (&info));
++  return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid, sig, &info);
+ }
+ #else
+ # include <rt/aio_sigqueue.c>
+diff --git a/sysdeps/unix/sysv/linux/fxstat.c b/sysdeps/unix/sysv/linux/fxstat.c
+index 369ceb818267086c..e3cf3d8e284beb65 100644
+--- a/sysdeps/unix/sysv/linux/fxstat.c
++++ b/sysdeps/unix/sysv/linux/fxstat.c
+@@ -45,7 +45,7 @@ __fxstat (int vers, int fd, struct stat *buf)
+   struct kernel_stat kbuf;
+   int result;
+ 
+-  result = INLINE_SYSCALL (fstat, 2, fd, __ptrvalue (&kbuf));
++  result = INLINE_SYSCALL (fstat, 2, fd, &kbuf);
+   if (result == 0)
+     result = __xstat_conv (vers, &kbuf, buf);
+ 
+diff --git a/sysdeps/unix/sysv/linux/fxstatat.c b/sysdeps/unix/sysv/linux/fxstatat.c
+index 127f979adf050b45..b4397b54ada455f0 100644
+--- a/sysdeps/unix/sysv/linux/fxstatat.c
++++ b/sysdeps/unix/sysv/linux/fxstatat.c
+@@ -125,9 +125,9 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
+     }
+ #else
+   if (flag & AT_SYMLINK_NOFOLLOW)
+-    result = INTERNAL_SYSCALL (lstat, err, 2, file, __ptrvalue (&kst));
++    result = INTERNAL_SYSCALL (lstat, err, 2, file, &kst);
+   else
+-    result = INTERNAL_SYSCALL (stat, err, 2, file, __ptrvalue (&kst));
++    result = INTERNAL_SYSCALL (stat, err, 2, file, &kst);
+ 
+   if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+     return __xstat_conv (vers, &kst, st);
+diff --git a/sysdeps/unix/sysv/linux/gai_sigqueue.c b/sysdeps/unix/sysv/linux/gai_sigqueue.c
+index f517f9c850069cab..3896df0cd345bc8b 100644
+--- a/sysdeps/unix/sysv/linux/gai_sigqueue.c
++++ b/sysdeps/unix/sysv/linux/gai_sigqueue.c
+@@ -47,8 +47,7 @@ __gai_sigqueue (sig, val, caller_pid)
+   info.si_uid = __getuid ();
+   info.si_value = val;
+ 
+-  return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid,
+-			 sig, __ptrvalue (&info));
++  return INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid, sig, &info);
+ }
+ #else
+ # include <resolv/gai_sigqueue.c>
+diff --git a/sysdeps/unix/sysv/linux/i386/brk.c b/sysdeps/unix/sysv/linux/i386/brk.c
+index 0b367096f47007ce..c785b68b5fc2c6b5 100644
+--- a/sysdeps/unix/sysv/linux/i386/brk.c
++++ b/sysdeps/unix/sysv/linux/i386/brk.c
+@@ -31,11 +31,10 @@ weak_alias (__curbrk, ___brk_addr)
+ int
+ __brk (void *addr)
+ {
+-  void *__unbounded newbrk;
++  void *newbrk;
+ 
+   INTERNAL_SYSCALL_DECL (err);
+-  newbrk = (void *__unbounded) INTERNAL_SYSCALL (brk, err, 1,
+-						 __ptrvalue (addr));
++  newbrk = (void *) INTERNAL_SYSCALL (brk, err, 1, addr);
+ 
+   __curbrk = newbrk;
+ 
+diff --git a/sysdeps/unix/sysv/linux/i386/fxstat.c b/sysdeps/unix/sysv/linux/i386/fxstat.c
+index 323039927e1687a3..64cf4c0f75c3bd8b 100644
+--- a/sysdeps/unix/sysv/linux/i386/fxstat.c
++++ b/sysdeps/unix/sysv/linux/i386/fxstat.c
+@@ -44,7 +44,7 @@ __fxstat (int vers, int fd, struct stat *buf)
+   {
+     struct stat64 buf64;
+ 
+-    result = INLINE_SYSCALL (fstat64, 2, fd, __ptrvalue (&buf64));
++    result = INLINE_SYSCALL (fstat64, 2, fd, &buf64);
+     if (result == 0)
+       result = __xstat32_conv (vers, &buf64, buf);
+     return result;
+diff --git a/sysdeps/unix/sysv/linux/i386/fxstatat.c b/sysdeps/unix/sysv/linux/i386/fxstatat.c
+index ad3a386864f8b04b..2125ce7d7673c841 100644
+--- a/sysdeps/unix/sysv/linux/i386/fxstatat.c
++++ b/sysdeps/unix/sysv/linux/i386/fxstatat.c
+@@ -110,9 +110,9 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
+     }
+ 
+   if (flag & AT_SYMLINK_NOFOLLOW)
+-    result = INTERNAL_SYSCALL (lstat64, err, 2, file, __ptrvalue (&st64));
++    result = INTERNAL_SYSCALL (lstat64, err, 2, file, &st64);
+   else
+-    result = INTERNAL_SYSCALL (stat64, err, 2, file, __ptrvalue (&st64));
++    result = INTERNAL_SYSCALL (stat64, err, 2, file, &st64);
+   if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+     return __xstat32_conv (vers, &st64, st);
+ 
+diff --git a/sysdeps/unix/sysv/linux/i386/lxstat.c b/sysdeps/unix/sysv/linux/i386/lxstat.c
+index 97b237404f8c8822..bc2d27a1739ca3c2 100644
+--- a/sysdeps/unix/sysv/linux/i386/lxstat.c
++++ b/sysdeps/unix/sysv/linux/i386/lxstat.c
+@@ -45,7 +45,7 @@ __lxstat (int vers, const char *name, struct stat *buf)
+   {
+     struct stat64 buf64;
+ 
+-    result = INLINE_SYSCALL (lstat64, 2, name, __ptrvalue (&buf64));
++    result = INLINE_SYSCALL (lstat64, 2, name, &buf64);
+     if (result == 0)
+       result = __xstat32_conv (vers, &buf64, buf);
+     return result;
+diff --git a/sysdeps/unix/sysv/linux/i386/msgctl.c b/sysdeps/unix/sysv/linux/i386/msgctl.c
+index 7d009801b16fbdba..d63b0b4b46134185 100644
+--- a/sysdeps/unix/sysv/linux/i386/msgctl.c
++++ b/sysdeps/unix/sysv/linux/i386/msgctl.c
+@@ -29,13 +29,13 @@
+ struct __old_msqid_ds
+ {
+   struct __old_ipc_perm msg_perm;	/* structure describing operation permission */
+-  struct msg *__unbounded __msg_first;	/* pointer to first message on queue */
+-  struct msg *__unbounded __msg_last;	/* pointer to last message on queue */
++  struct msg *__msg_first;		/* pointer to first message on queue */
++  struct msg *__msg_last;		/* pointer to last message on queue */
+   __time_t msg_stime;			/* time of last msgsnd command */
+   __time_t msg_rtime;			/* time of last msgrcv command */
+   __time_t msg_ctime;			/* time of last change */
+-  struct wait_queue *__unbounded __wwait; /* ??? */
+-  struct wait_queue *__unbounded __rwait; /* ??? */
++  struct wait_queue *__wwait;		/* ??? */
++  struct wait_queue *__rwait;		/* ??? */
+   unsigned short int __msg_cbytes;	/* current number of bytes on queue */
+   unsigned short int msg_qnum;		/* number of messages currently on queue */
+   unsigned short int msg_qbytes;	/* max number of bytes allowed on queue */
+diff --git a/sysdeps/unix/sysv/linux/i386/setrlimit.c b/sysdeps/unix/sysv/linux/i386/setrlimit.c
+index 7d0840ded5fe3c70..9c6f5dd64ddf27cf 100644
+--- a/sysdeps/unix/sysv/linux/i386/setrlimit.c
++++ b/sysdeps/unix/sysv/linux/i386/setrlimit.c
+@@ -24,7 +24,7 @@
+ #include <shlib-compat.h>
+ 
+ extern int __new_setrlimit (enum __rlimit_resource resource,
+-			    const struct rlimit *__unboundedrlimits);
++			    const struct rlimit *rlimits);
+ 
+ /* Consider moving to syscalls.list.  */
+ 
+diff --git a/sysdeps/unix/sysv/linux/i386/shmctl.c b/sysdeps/unix/sysv/linux/i386/shmctl.c
+index a1f4feb3fe1c815c..59d07d7ee09579ef 100644
+--- a/sysdeps/unix/sysv/linux/i386/shmctl.c
++++ b/sysdeps/unix/sysv/linux/i386/shmctl.c
+@@ -38,8 +38,8 @@ struct __old_shmid_ds
+   __ipc_pid_t shm_lpid;			/* pid of last shmop */
+   unsigned short int shm_nattch;	/* number of current attaches */
+   unsigned short int __shm_npages;	/* size of segment (pages) */
+-  unsigned long int *__unbounded __shm_pages; /* array of ptrs to frames -> SHMMAX */
+-  struct vm_area_struct *__unbounded __attaches; /* descriptors for attaches */
++  unsigned long int *__shm_pages;	/* array of ptrs to frames -> SHMMAX */
++  struct vm_area_struct *__attaches;	/* descriptors for attaches */
+ };
+ 
+ struct __old_shminfo
+diff --git a/sysdeps/unix/sysv/linux/i386/sigaction.c b/sysdeps/unix/sysv/linux/i386/sigaction.c
+index df5c235e5ac271dc..414ef759a97363c4 100644
+--- a/sysdeps/unix/sysv/linux/i386/sigaction.c
++++ b/sysdeps/unix/sysv/linux/i386/sigaction.c
+@@ -72,8 +72,8 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+   result = INLINE_SYSCALL (rt_sigaction, 4,
+-			   sig, act ? __ptrvalue (&kact) : NULL,
+-			   oact ? __ptrvalue (&koact) : NULL, _NSIG / 8);
++			   sig, act ? &kact : NULL,
++			   oact ? &koact : NULL, _NSIG / 8);
+ 
+   if (oact && result >= 0)
+     {
+diff --git a/sysdeps/unix/sysv/linux/i386/xstat.c b/sysdeps/unix/sysv/linux/i386/xstat.c
+index f063ac98d849ed7b..049e70fa7f007896 100644
+--- a/sysdeps/unix/sysv/linux/i386/xstat.c
++++ b/sysdeps/unix/sysv/linux/i386/xstat.c
+@@ -45,7 +45,7 @@ __xstat (int vers, const char *name, struct stat *buf)
+   {
+     struct stat64 buf64;
+ 
+-    result = INLINE_SYSCALL (stat64, 2, name, __ptrvalue (&buf64));
++    result = INLINE_SYSCALL (stat64, 2, name, &buf64);
+     if (result == 0)
+       result = __xstat32_conv (vers, &buf64, buf);
+     return result;
+diff --git a/sysdeps/unix/sysv/linux/llseek.c b/sysdeps/unix/sysv/linux/llseek.c
+index feef9aaaf9dcf853..6608a2145c680cb9 100644
+--- a/sysdeps/unix/sysv/linux/llseek.c
++++ b/sysdeps/unix/sysv/linux/llseek.c
+@@ -32,7 +32,7 @@ __llseek (int fd, loff_t offset, int whence)
+ 
+   return (loff_t) (INLINE_SYSCALL (_llseek, 5, fd, (off_t) (offset >> 32),
+ 				   (off_t) (offset & 0xffffffff),
+-				   __ptrvalue (&retval), whence) ?: retval);
++				   &retval, whence) ?: retval);
+ }
+ weak_alias (__llseek, llseek)
+ strong_alias (__llseek, __libc_lseek64)
+diff --git a/sysdeps/unix/sysv/linux/lxstat.c b/sysdeps/unix/sysv/linux/lxstat.c
+index 15f93b09ec1661f1..1096b981f5560eb8 100644
+--- a/sysdeps/unix/sysv/linux/lxstat.c
++++ b/sysdeps/unix/sysv/linux/lxstat.c
+@@ -44,7 +44,7 @@ __lxstat (int vers, const char *name, struct stat *buf)
+   struct kernel_stat kbuf;
+   int result;
+ 
+-  result = INLINE_SYSCALL (lstat, 2, name, __ptrvalue (&kbuf));
++  result = INLINE_SYSCALL (lstat, 2, name, &kbuf);
+   if (result == 0)
+     result = __xstat_conv (vers, &kbuf, buf);
+ 
+diff --git a/sysdeps/unix/sysv/linux/mmap64.c b/sysdeps/unix/sysv/linux/mmap64.c
+index 87bd532c5e350c56..2c8304d860f19d58 100644
+--- a/sysdeps/unix/sysv/linux/mmap64.c
++++ b/sysdeps/unix/sysv/linux/mmap64.c
+@@ -53,14 +53,10 @@ __mmap64 (void *addr, size_t len, int prot, int flags, int fd, off64_t offset)
+       return MAP_FAILED;
+     }
+   void *result;
+-  __ptrvalue (result) = (void *__unbounded)
+-    INLINE_SYSCALL (mmap2, 6, __ptrvalue (addr),
++  result = (void *)
++    INLINE_SYSCALL (mmap2, 6, addr,
+ 		    len, prot, flags, fd,
+ 		    (off_t) (offset >> MMAP2_PAGE_SHIFT));
+-#if __BOUNDED_POINTERS__
+-  __ptrlow (result) = __ptrvalue (result);
+-  __ptrhigh (result) = __ptrvalue (result) + len;
+-#endif
+   return result;
+ }
+ weak_alias (__mmap64, mmap64)
+diff --git a/sysdeps/unix/sysv/linux/msgctl.c b/sysdeps/unix/sysv/linux/msgctl.c
+index 00285a7103d70cea..09d4dc11f779a63f 100644
+--- a/sysdeps/unix/sysv/linux/msgctl.c
++++ b/sysdeps/unix/sysv/linux/msgctl.c
+@@ -31,13 +31,13 @@
+ struct __old_msqid_ds
+ {
+   struct __old_ipc_perm msg_perm;	/* structure describing operation permission */
+-  struct msg *__unbounded __msg_first;	/* pointer to first message on queue */
+-  struct msg *__unbounded __msg_last;	/* pointer to last message on queue */
++  struct msg *__msg_first;		/* pointer to first message on queue */
++  struct msg *__msg_last;		/* pointer to last message on queue */
+   __time_t msg_stime;			/* time of last msgsnd command */
+   __time_t msg_rtime;			/* time of last msgrcv command */
+   __time_t msg_ctime;			/* time of last change */
+-  struct wait_queue *__unbounded __wwait; /* ??? */
+-  struct wait_queue *__unbounded __rwait; /* ??? */
++  struct wait_queue *__wwait;		/* ??? */
++  struct wait_queue *__rwait;		/* ??? */
+   unsigned short int __msg_cbytes;	/* current number of bytes on queue */
+   unsigned short int msg_qnum;		/* number of messages currently on queue */
+   unsigned short int msg_qbytes;	/* max number of bytes allowed on queue */
+@@ -104,8 +104,7 @@ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
+ 	    return -1;
+ 	  }
+       }
+-    result = INLINE_SYSCALL (ipc, 5, IPCOP_msgctl,
+-			     msqid, cmd, 0, __ptrvalue (&old));
++    result = INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, &old);
+     if (result != -1 && cmd != IPC_SET)
+       {
+ 	memset(buf, 0, sizeof(*buf));
+diff --git a/sysdeps/unix/sysv/linux/msgrcv.c b/sysdeps/unix/sysv/linux/msgrcv.c
+index dc0e34fe3d7f2ffd..a3085abda24d4512 100644
+--- a/sysdeps/unix/sysv/linux/msgrcv.c
++++ b/sysdeps/unix/sysv/linux/msgrcv.c
+@@ -27,7 +27,7 @@
+    arguments to a system call.  */
+ struct ipc_kludge
+   {
+-    void *__unbounded msgp;
++    void *msgp;
+     long int msgtyp;
+   };
+ 
+@@ -48,13 +48,12 @@ __libc_msgrcv (msqid, msgp, msgsz, msgtyp, msgflg)
+   tmp.msgtyp = msgtyp;
+ 
+   if (SINGLE_THREAD_P)
+-    return INLINE_SYSCALL (ipc, 5, IPCOP_msgrcv, msqid, msgsz, msgflg,
+-			   __ptrvalue (&tmp));
++    return INLINE_SYSCALL (ipc, 5, IPCOP_msgrcv, msqid, msgsz, msgflg, &tmp);
+ 
+   int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+   ssize_t result = INLINE_SYSCALL (ipc, 5, IPCOP_msgrcv, msqid, msgsz, msgflg,
+-				   __ptrvalue (&tmp));
++				   &tmp);
+ 
+    LIBC_CANCEL_RESET (oldtype);
+ 
+diff --git a/sysdeps/unix/sysv/linux/powerpc/libc-start.c b/sysdeps/unix/sysv/linux/powerpc/libc-start.c
+index 89de1aa7e6e1df59..078d6c7ca99c7203 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/libc-start.c
++++ b/sysdeps/unix/sysv/linux/powerpc/libc-start.c
+@@ -34,7 +34,7 @@ int __cache_line_size attribute_hidden;
+ 
+ struct startup_info
+   {
+-    void *__unbounded sda_base;
++    void *sda_base;
+     int (*main) (int, char **, char **, void *);
+     int (*init) (int, char **, char **, void *);
+     void (*fini) (void);
+@@ -43,34 +43,28 @@ struct startup_info
+ int
+ /* GKM FIXME: GCC: this should get __BP_ prefix by virtue of the
+    BPs in the arglist of startup_info.main and startup_info.init. */
+-  BP_SYM (__libc_start_main) (int argc, char *__unbounded *__unbounded ubp_av,
+-			      char *__unbounded *__unbounded ubp_ev,
+-			      ElfW (auxv_t) * __unbounded auxvec,
++  BP_SYM (__libc_start_main) (int argc, char **argv,
++			      char **ev,
++			      ElfW (auxv_t) * auxvec,
+ 			      void (*rtld_fini) (void),
+-			      struct startup_info *__unbounded stinfo,
+-			      char *__unbounded *__unbounded stack_on_entry)
++			      struct startup_info *stinfo,
++			      char **stack_on_entry)
+ {
+-#if __BOUNDED_POINTERS__
+-  char **argv;
+-#else
+-# define argv ubp_av
+-#endif
+-
+   /* the PPC SVR4 ABI says that the top thing on the stack will
+      be a NULL pointer, so if not we assume that we're being called
+      as a statically-linked program by Linux...  */
+   if (*stack_on_entry != NULL)
+     {
+-      char *__unbounded * __unbounded temp;
++      char **temp;
+       /* ...in which case, we have argc as the top thing on the
+          stack, followed by argv (NULL-terminated), envp (likewise),
+          and the auxilary vector.  */
+       /* 32/64-bit agnostic load from stack */
+-      argc = *(long int *__unbounded) stack_on_entry;
+-      ubp_av = stack_on_entry + 1;
+-      ubp_ev = ubp_av + argc + 1;
++      argc = *(long int *) stack_on_entry;
++      argv = stack_on_entry + 1;
++      ev = argv + argc + 1;
+ #ifdef HAVE_AUX_VECTOR
+-      temp = ubp_ev;
++      temp = ev;
+       while (*temp != NULL)
+ 	++temp;
+       auxvec = (ElfW (auxv_t) *)++ temp;
+@@ -87,7 +81,7 @@ int
+ 	break;
+       }
+ 
+-  return generic_start_main (stinfo->main, argc, ubp_av, auxvec,
++  return generic_start_main (stinfo->main, argc, argv, auxvec,
+ 			     stinfo->init, stinfo->fini, rtld_fini,
+ 			     stack_on_entry);
+ }
+diff --git a/sysdeps/unix/sysv/linux/ptrace.c b/sysdeps/unix/sysv/linux/ptrace.c
+index a75e5ba0a8ab6b53..b06a42ace08e38fa 100644
+--- a/sysdeps/unix/sysv/linux/ptrace.c
++++ b/sysdeps/unix/sysv/linux/ptrace.c
+@@ -42,8 +42,7 @@ ptrace (enum __ptrace_request request, ...)
+   if (request > 0 && request < 4)
+     data = &ret;
+ 
+-  res = INLINE_SYSCALL (ptrace, 4, request, pid,
+-			__ptrvalue (addr), __ptrvalue (data));
++  res = INLINE_SYSCALL (ptrace, 4, request, pid, addr, data);
+   if (res >= 0 && request > 0 && request < 4)
+     {
+       __set_errno (0);
+diff --git a/sysdeps/unix/sysv/linux/semctl.c b/sysdeps/unix/sysv/linux/semctl.c
+index bae5a8d28306e653..3a2f1b39cea657e5 100644
+--- a/sysdeps/unix/sysv/linux/semctl.c
++++ b/sysdeps/unix/sysv/linux/semctl.c
+@@ -34,10 +34,10 @@ struct __old_semid_ds
+   struct __old_ipc_perm sem_perm;	/* operation permission struct */
+   __time_t sem_otime;			/* last semop() time */
+   __time_t sem_ctime;			/* last time changed by semctl() */
+-  struct sem *__unbounded __sembase;	/* ptr to first semaphore in array */
+-  struct sem_queue *__unbounded __sem_pending; /* pending operations */
+-  struct sem_queue *__unbounded __sem_pending_last; /* last pending operation */
+-  struct sem_undo *__unbounded __undo;	/* ondo requests on this array */
++  struct sem *__sembase;		/* ptr to first semaphore in array */
++  struct sem_queue *__sem_pending;	/* pending operations */
++  struct sem_queue *__sem_pending_last; /* last pending operation */
++  struct sem_undo *__undo;		/* ondo requests on this array */
+   unsigned short int sem_nsems;		/* number of semaphores in set */
+ };
+ 
+diff --git a/sysdeps/unix/sysv/linux/shmat.c b/sysdeps/unix/sysv/linux/shmat.c
+index 21417f4ced70e778..5ac515bc023e6783 100644
+--- a/sysdeps/unix/sysv/linux/shmat.c
++++ b/sysdeps/unix/sysv/linux/shmat.c
+@@ -36,7 +36,7 @@ shmat (shmid, shmaddr, shmflg)
+ {
+   INTERNAL_SYSCALL_DECL(err);
+   unsigned long resultvar;
+-  void *__unbounded raddr;
++  void *raddr;
+ 
+ #if __BOUNDED_POINTERS__
+   size_t length = ~0;
+@@ -49,8 +49,8 @@ shmat (shmid, shmaddr, shmflg)
+ 
+   resultvar = INTERNAL_SYSCALL (ipc, err, 5, IPCOP_shmat,
+ 				shmid, shmflg,
+-				(long int) __ptrvalue (&raddr),
+-				__ptrvalue ((void *) shmaddr));
++				(long int) &raddr,
++				(void *) shmaddr);
+   if (INTERNAL_SYSCALL_ERROR_P (resultvar, err))
+     {
+       __set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, err));
+diff --git a/sysdeps/unix/sysv/linux/shmctl.c b/sysdeps/unix/sysv/linux/shmctl.c
+index 3fb6b0c0f203db08..f99ee77f92878b1b 100644
+--- a/sysdeps/unix/sysv/linux/shmctl.c
++++ b/sysdeps/unix/sysv/linux/shmctl.c
+@@ -40,8 +40,8 @@ struct __old_shmid_ds
+   __ipc_pid_t shm_lpid;			/* pid of last shmop */
+   unsigned short int shm_nattch;	/* number of current attaches */
+   unsigned short int __shm_npages;	/* size of segment (pages) */
+-  unsigned long int *__unbounded __shm_pages; /* array of ptrs to frames -> SHMMAX */
+-  struct vm_area_struct *__unbounded __attaches; /* descriptors for attaches */
++  unsigned long int *__shm_pages;	/* array of ptrs to frames -> SHMMAX */
++  struct vm_area_struct *__attaches;	/* descriptors for attaches */
+ };
+ 
+ struct __old_shminfo
+@@ -116,8 +116,7 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
+ 	    return -1;
+ 	  }
+       }
+-    result = INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0,
+-			     __ptrvalue (&old.ds));
++    result = INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, &old.ds);
+     if (result != -1 && (cmd == SHM_STAT || cmd == IPC_STAT))
+       {
+ 	memset(buf, 0, sizeof(*buf));
+diff --git a/sysdeps/unix/sysv/linux/shmdt.c b/sysdeps/unix/sysv/linux/shmdt.c
+index 0791b37e1982eaa3..c7fd62d3c1c82ffb 100644
+--- a/sysdeps/unix/sysv/linux/shmdt.c
++++ b/sysdeps/unix/sysv/linux/shmdt.c
+@@ -30,5 +30,5 @@ int
+ shmdt (shmaddr)
+      const void *shmaddr;
+ {
+-  return INLINE_SYSCALL (ipc, 5, IPCOP_shmdt, 0, 0, 0, __ptrvalue ((void *) shmaddr));
++  return INLINE_SYSCALL (ipc, 5, IPCOP_shmdt, 0, 0, 0, (void *) shmaddr);
+ }
+diff --git a/sysdeps/unix/sysv/linux/sigaction.c b/sysdeps/unix/sysv/linux/sigaction.c
+index 01fb16e5573491c5..0eee8e6b0322399a 100644
+--- a/sysdeps/unix/sysv/linux/sigaction.c
++++ b/sysdeps/unix/sysv/linux/sigaction.c
+@@ -55,8 +55,8 @@ __libc_sigaction (sig, act, oact)
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+   result = INLINE_SYSCALL (rt_sigaction, 4, sig,
+-			   act ? __ptrvalue (&kact) : NULL,
+-			   oact ? __ptrvalue (&koact) : NULL, _NSIG / 8);
++			   act ? &kact : NULL,
++			   oact ? &koact : NULL, _NSIG / 8);
+ 
+   if (oact && result >= 0)
+     {
+diff --git a/sysdeps/unix/sysv/linux/sigqueue.c b/sysdeps/unix/sysv/linux/sigqueue.c
+index d87c0da3af1a5070..e4470d4ca660f9b8 100644
+--- a/sysdeps/unix/sysv/linux/sigqueue.c
++++ b/sysdeps/unix/sysv/linux/sigqueue.c
+@@ -43,7 +43,7 @@ __sigqueue (pid, sig, val)
+   info.si_uid = __getuid ();
+   info.si_value = val;
+ 
+-  return INLINE_SYSCALL (rt_sigqueueinfo, 3, pid, sig, __ptrvalue (&info));
++  return INLINE_SYSCALL (rt_sigqueueinfo, 3, pid, sig, &info);
+ }
+ weak_alias (__sigqueue, sigqueue)
+ #else
+diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c b/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c
+index a7eb88afa4fc5309..33715e54aa5837f2 100644
+--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c
++++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c
+@@ -48,8 +48,8 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+   ret = INLINE_SYSCALL (rt_sigaction, 5, sig,
+-			act ? __ptrvalue (&kact) : 0,
+-			oact ? __ptrvalue (&koact) : 0, stub, _NSIG / 8);
++			act ? &kact : 0,
++			oact ? &koact : 0, stub, _NSIG / 8);
+ 
+   if (oact && ret >= 0)
+     {
+diff --git a/sysdeps/unix/sysv/linux/sysctl.c b/sysdeps/unix/sysv/linux/sysctl.c
+index e00ecfe85cfc0281..bcec384cb55f33ac 100644
+--- a/sysdeps/unix/sysv/linux/sysctl.c
++++ b/sysdeps/unix/sysv/linux/sysctl.c
+@@ -37,7 +37,7 @@ __sysctl (int *name, int nlen, void *oldval, size_t *oldlenp,
+     .newlen = newlen
+   };
+ 
+-  return INLINE_SYSCALL (_sysctl, 1, __ptrvalue (&args));
++  return INLINE_SYSCALL (_sysctl, 1, &args);
+ }
+ libc_hidden_def (__sysctl)
+ weak_alias (__sysctl, sysctl)
+diff --git a/sysdeps/unix/sysv/linux/x86_64/sigaction.c b/sysdeps/unix/sysv/linux/x86_64/sigaction.c
+index 5a3ad1830e67e38b..6e171dae6c429367 100644
+--- a/sysdeps/unix/sysv/linux/x86_64/sigaction.c
++++ b/sysdeps/unix/sysv/linux/x86_64/sigaction.c
+@@ -62,8 +62,8 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+   result = INLINE_SYSCALL (rt_sigaction, 4,
+-			   sig, act ? __ptrvalue (&kact) : NULL,
+-			   oact ? __ptrvalue (&koact) : NULL, _NSIG / 8);
++			   sig, act ? &kact : NULL,
++			   oact ? &koact : NULL, _NSIG / 8);
+   if (oact && result >= 0)
+     {
+       oact->sa_handler = koact.k_sa_handler;
+diff --git a/sysdeps/unix/sysv/linux/xstat.c b/sysdeps/unix/sysv/linux/xstat.c
+index a3c0c1ca42424830..bb4477bb89f65fb7 100644
+--- a/sysdeps/unix/sysv/linux/xstat.c
++++ b/sysdeps/unix/sysv/linux/xstat.c
+@@ -44,7 +44,7 @@ __xstat (int vers, const char *name, struct stat *buf)
+   struct kernel_stat kbuf;
+   int result;
+ 
+-  result = INLINE_SYSCALL (stat, 2, name, __ptrvalue (&kbuf));
++  result = INLINE_SYSCALL (stat, 2, name, &kbuf);
+   if (result == 0)
+     result = __xstat_conv (vers, &kbuf, buf);
+ 
diff --git a/SOURCES/glibc-rh1505492-bounded-11.patch b/SOURCES/glibc-rh1505492-bounded-11.patch
new file mode 100644
index 0000000..8a6feed
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-bounded-11.patch
@@ -0,0 +1,592 @@
+commit e97ed6ddbe0d53d616d93669826db225b12c3235
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Thu Feb 14 13:12:02 2013 +0000
+
+    Remove bp-sym.h and BP_SYM uses from C code.
+
+diff --git a/csu/libc-start.c b/csu/libc-start.c
+index 63757062c730c81a..b0e62da6f6ea0708 100644
+--- a/csu/libc-start.c
++++ b/csu/libc-start.c
+@@ -19,7 +19,6 @@
+ #include <stdio.h>
+ #include <unistd.h>
+ #include <ldsodefs.h>
+-#include <bp-sym.h>
+ 
+ extern void __libc_init_first (int argc, char **argv, char **envp);
+ #ifndef SHARED
+@@ -92,7 +91,7 @@ apply_irel (void)
+ # endif
+ #else
+ # define STATIC
+-# define LIBC_START_MAIN BP_SYM (__libc_start_main)
++# define LIBC_START_MAIN __libc_start_main
+ #endif
+ 
+ #ifdef MAIN_AUXVEC_ARG
+diff --git a/elf/dl-open.c b/elf/dl-open.c
+index d48c963f779f44d8..41caade36d35d015 100644
+--- a/elf/dl-open.c
++++ b/elf/dl-open.c
+@@ -28,7 +28,6 @@
+ #include <sys/param.h>
+ #include <bits/libc-lock.h>
+ #include <ldsodefs.h>
+-#include <bp-sym.h>
+ #include <caller.h>
+ #include <sysdep-cancel.h>
+ #include <tls.h>
+@@ -43,7 +42,7 @@ extern ElfW(Addr) _dl_sysdep_start (void **start_argptr,
+ 						     ElfW(Word) phnum,
+ 						     ElfW(Addr) *user_entry,
+ 						     ElfW(auxv_t) *auxv));
+-weak_extern (BP_SYM (_dl_sysdep_start))
++weak_extern (_dl_sysdep_start)
+ 
+ extern int __libc_multiple_libcs;	/* Defined in init-first.c.  */
+ 
+diff --git a/math/fegetenv.c b/math/fegetenv.c
+index f8fbdffdb35a913c..0741407f125172a3 100644
+--- a/math/fegetenv.c
++++ b/math/fegetenv.c
+@@ -19,7 +19,6 @@
+ 
+ #include <fenv.h>
+ #include <shlib-compat.h>
+-#include <bp-sym.h>
+ 
+ int
+ __fegetenv (fenv_t *envp)
+@@ -29,9 +28,9 @@ __fegetenv (fenv_t *envp)
+ }
+ #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+ strong_alias (__fegetenv, __old_fegetenv)
+-compat_symbol (libm, BP_SYM (__old_fegetenv), BP_SYM (fegetenv), GLIBC_2_1);
++compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
+ #endif
+ libm_hidden_ver (__fegetenv, fegetenv)
+-versioned_symbol (libm, BP_SYM (__fegetenv), BP_SYM (fegetenv), GLIBC_2_2);
++versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);
+ 
+ stub_warning (fegetenv)
+diff --git a/nptl/sysdeps/pthread/bits/libc-lockP.h b/nptl/sysdeps/pthread/bits/libc-lockP.h
+index 7a1107207a1e0ffb..962a292308f92267 100644
+--- a/nptl/sysdeps/pthread/bits/libc-lockP.h
++++ b/nptl/sysdeps/pthread/bits/libc-lockP.h
+@@ -375,31 +375,30 @@ extern int __pthread_atfork (void (*__prepare) (void),
+    single-threaded processes.  */
+ #ifndef __NO_WEAK_PTHREAD_ALIASES
+ # ifdef weak_extern
+-#  include <bp-sym.h>
+-weak_extern (BP_SYM (__pthread_mutex_init))
+-weak_extern (BP_SYM (__pthread_mutex_destroy))
+-weak_extern (BP_SYM (__pthread_mutex_lock))
+-weak_extern (BP_SYM (__pthread_mutex_trylock))
+-weak_extern (BP_SYM (__pthread_mutex_unlock))
+-weak_extern (BP_SYM (__pthread_mutexattr_init))
+-weak_extern (BP_SYM (__pthread_mutexattr_destroy))
+-weak_extern (BP_SYM (__pthread_mutexattr_settype))
+-weak_extern (BP_SYM (__pthread_rwlock_init))
+-weak_extern (BP_SYM (__pthread_rwlock_destroy))
+-weak_extern (BP_SYM (__pthread_rwlock_rdlock))
+-weak_extern (BP_SYM (__pthread_rwlock_tryrdlock))
+-weak_extern (BP_SYM (__pthread_rwlock_wrlock))
+-weak_extern (BP_SYM (__pthread_rwlock_trywrlock))
+-weak_extern (BP_SYM (__pthread_rwlock_unlock))
+-weak_extern (BP_SYM (__pthread_key_create))
+-weak_extern (BP_SYM (__pthread_setspecific))
+-weak_extern (BP_SYM (__pthread_getspecific))
+-weak_extern (BP_SYM (__pthread_once))
++weak_extern (__pthread_mutex_init)
++weak_extern (__pthread_mutex_destroy)
++weak_extern (__pthread_mutex_lock)
++weak_extern (__pthread_mutex_trylock)
++weak_extern (__pthread_mutex_unlock)
++weak_extern (__pthread_mutexattr_init)
++weak_extern (__pthread_mutexattr_destroy)
++weak_extern (__pthread_mutexattr_settype)
++weak_extern (__pthread_rwlock_init)
++weak_extern (__pthread_rwlock_destroy)
++weak_extern (__pthread_rwlock_rdlock)
++weak_extern (__pthread_rwlock_tryrdlock)
++weak_extern (__pthread_rwlock_wrlock)
++weak_extern (__pthread_rwlock_trywrlock)
++weak_extern (__pthread_rwlock_unlock)
++weak_extern (__pthread_key_create)
++weak_extern (__pthread_setspecific)
++weak_extern (__pthread_getspecific)
++weak_extern (__pthread_once)
+ weak_extern (__pthread_initialize)
+ weak_extern (__pthread_atfork)
+-weak_extern (BP_SYM (_pthread_cleanup_push_defer))
+-weak_extern (BP_SYM (_pthread_cleanup_pop_restore))
+-weak_extern (BP_SYM (pthread_setcancelstate))
++weak_extern (_pthread_cleanup_push_defer)
++weak_extern (_pthread_cleanup_pop_restore)
++weak_extern (pthread_setcancelstate)
+ # else
+ #  pragma weak __pthread_mutex_init
+ #  pragma weak __pthread_mutex_destroy
+diff --git a/ports/sysdeps/alpha/memchr.c b/ports/sysdeps/alpha/memchr.c
+index b19d8200c60ffd71..86785756fc680d03 100644
+--- a/ports/sysdeps/alpha/memchr.c
++++ b/ports/sysdeps/alpha/memchr.c
+@@ -16,7 +16,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <string.h>
+-#include <bp-sym.h>
+ 
+ typedef unsigned long word;
+ 
+@@ -170,6 +169,6 @@ __memchr (const void *s, int xc, size_t n)
+ }
+ 
+ #ifdef weak_alias
+-weak_alias (__memchr, BP_SYM (memchr))
++weak_alias (__memchr, memchr)
+ #endif
+ libc_hidden_builtin_def (memchr)
+diff --git a/ports/sysdeps/powerpc/nofpu/fegetenv.c b/ports/sysdeps/powerpc/nofpu/fegetenv.c
+index dd88fb3490c92309..95c7475a7d138e75 100644
+--- a/ports/sysdeps/powerpc/nofpu/fegetenv.c
++++ b/ports/sysdeps/powerpc/nofpu/fegetenv.c
+@@ -19,7 +19,6 @@
+ 
+ #include "soft-fp.h"
+ #include "soft-supp.h"
+-#include <bp-sym.h>
+ 
+ extern int __sim_exceptions;
+ extern int __sim_disabled_exceptions;
+@@ -42,8 +41,8 @@ __fegetenv (fenv_t *envp)
+ #include <shlib-compat.h>
+ #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+ strong_alias (__fegetenv, __old_fegetenv)
+-compat_symbol (libm, BP_SYM (__old_fegetenv), BP_SYM (fegetenv), GLIBC_2_1);
++compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
+ #endif
+ 
+ libm_hidden_ver (__fegetenv, fegetenv)
+-versioned_symbol (libm, BP_SYM (__fegetenv), BP_SYM (fegetenv), GLIBC_2_2);
++versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);
+diff --git a/ports/sysdeps/powerpc/nofpu/fesetenv.c b/ports/sysdeps/powerpc/nofpu/fesetenv.c
+index dc49017c0dc68454..2e3946106460eea5 100644
+--- a/ports/sysdeps/powerpc/nofpu/fesetenv.c
++++ b/ports/sysdeps/powerpc/nofpu/fesetenv.c
+@@ -19,7 +19,6 @@
+ 
+ #include "soft-fp.h"
+ #include "soft-supp.h"
+-#include <bp-sym.h>
+ 
+ int
+ __fesetenv (const fenv_t *envp)
+@@ -36,8 +35,8 @@ __fesetenv (const fenv_t *envp)
+ #include <shlib-compat.h>
+ #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+ strong_alias (__fesetenv, __old_fesetenv)
+-compat_symbol (libm, BP_SYM (__old_fesetenv), BP_SYM (fesetenv), GLIBC_2_1);
++compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1);
+ #endif
+ 
+ libm_hidden_ver (__fesetenv, fesetenv)
+-versioned_symbol (libm, BP_SYM (__fesetenv), BP_SYM (fesetenv), GLIBC_2_2);
++versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2);
+diff --git a/ports/sysdeps/powerpc/nofpu/feupdateenv.c b/ports/sysdeps/powerpc/nofpu/feupdateenv.c
+index f5153d366968d11c..20f552135a5cca26 100644
+--- a/ports/sysdeps/powerpc/nofpu/feupdateenv.c
++++ b/ports/sysdeps/powerpc/nofpu/feupdateenv.c
+@@ -21,7 +21,6 @@
+ #include "soft-fp.h"
+ #include "soft-supp.h"
+ #include <signal.h>
+-#include <bp-sym.h>
+ 
+ int
+ __feupdateenv (const fenv_t *envp)
+@@ -45,8 +44,8 @@ __feupdateenv (const fenv_t *envp)
+ #include <shlib-compat.h>
+ #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+ strong_alias (__feupdateenv, __old_feupdateenv)
+-compat_symbol (libm, BP_SYM (__old_feupdateenv), BP_SYM (feupdateenv), GLIBC_2_1);
++compat_symbol (libm, __old_feupdateenv, feupdateenv, GLIBC_2_1);
+ #endif
+ 
+ libm_hidden_ver (__feupdateenv, feupdateenv)
+-versioned_symbol (libm, BP_SYM (__feupdateenv), BP_SYM (feupdateenv), GLIBC_2_2);
++versioned_symbol (libm, __feupdateenv, feupdateenv, GLIBC_2_2);
+diff --git a/ports/sysdeps/powerpc/nofpu/fgetexcptflg.c b/ports/sysdeps/powerpc/nofpu/fgetexcptflg.c
+index 6b00ee0dcd4ca037..e0582d61aee6eed6 100644
+--- a/ports/sysdeps/powerpc/nofpu/fgetexcptflg.c
++++ b/ports/sysdeps/powerpc/nofpu/fgetexcptflg.c
+@@ -19,7 +19,6 @@
+ 
+ #include "soft-fp.h"
+ #include "soft-supp.h"
+-#include <bp-sym.h>
+ 
+ int
+ __fegetexceptflag (fexcept_t *flagp, int excepts)
+@@ -32,7 +31,7 @@ __fegetexceptflag (fexcept_t *flagp, int excepts)
+ #include <shlib-compat.h>
+ #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+ strong_alias (__fegetexceptflag, __old_fegetexceptflag)
+-compat_symbol (libm, BP_SYM (__old_fegetexceptflag), BP_SYM (fegetexceptflag), GLIBC_2_1);
++compat_symbol (libm, __old_fegetexceptflag, fegetexceptflag, GLIBC_2_1);
+ #endif
+ 
+-versioned_symbol (libm, BP_SYM (__fegetexceptflag), BP_SYM (fegetexceptflag), GLIBC_2_2);
++versioned_symbol (libm, __fegetexceptflag, fegetexceptflag, GLIBC_2_2);
+diff --git a/ports/sysdeps/powerpc/nofpu/fraiseexcpt.c b/ports/sysdeps/powerpc/nofpu/fraiseexcpt.c
+index dcfbcc48b2cd54c3..e1dde26ef964cb81 100644
+--- a/ports/sysdeps/powerpc/nofpu/fraiseexcpt.c
++++ b/ports/sysdeps/powerpc/nofpu/fraiseexcpt.c
+@@ -20,7 +20,6 @@
+ #include "soft-fp.h"
+ #include "soft-supp.h"
+ #include <signal.h>
+-#include <bp-sym.h>
+ 
+ #undef feraiseexcept
+ int
+@@ -35,8 +34,8 @@ __feraiseexcept (int x)
+ #include <shlib-compat.h>
+ #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+ strong_alias (__feraiseexcept, __old_feraiseexcept)
+-compat_symbol (libm, BP_SYM (__old_feraiseexcept), BP_SYM (feraiseexcept), GLIBC_2_1);
++compat_symbol (libm, __old_feraiseexcept, feraiseexcept, GLIBC_2_1);
+ #endif
+ 
+ libm_hidden_ver (__feraiseexcept, feraiseexcept)
+-versioned_symbol (libm, BP_SYM (__feraiseexcept), BP_SYM (feraiseexcept), GLIBC_2_2);
++versioned_symbol (libm, __feraiseexcept, feraiseexcept, GLIBC_2_2);
+diff --git a/ports/sysdeps/powerpc/nofpu/fsetexcptflg.c b/ports/sysdeps/powerpc/nofpu/fsetexcptflg.c
+index f98da1a6177d81da..53215f49141ac5a2 100644
+--- a/ports/sysdeps/powerpc/nofpu/fsetexcptflg.c
++++ b/ports/sysdeps/powerpc/nofpu/fsetexcptflg.c
+@@ -19,7 +19,6 @@
+ 
+ #include "soft-fp.h"
+ #include "soft-supp.h"
+-#include <bp-sym.h>
+ 
+ int
+ __fesetexceptflag(const fexcept_t *flagp, int excepts)
+@@ -33,7 +32,7 @@ __fesetexceptflag(const fexcept_t *flagp, int excepts)
+ #include <shlib-compat.h>
+ #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+ strong_alias (__fesetexceptflag, __old_fesetexceptflag)
+-compat_symbol (libm, BP_SYM (__old_fesetexceptflag), BP_SYM (fesetexceptflag), GLIBC_2_1);
++compat_symbol (libm, __old_fesetexceptflag, fesetexceptflag, GLIBC_2_1);
+ #endif
+ 
+-versioned_symbol (libm, BP_SYM (__fesetexceptflag), BP_SYM (fesetexceptflag), GLIBC_2_2);
++versioned_symbol (libm, __fesetexceptflag, fesetexceptflag, GLIBC_2_2);
+diff --git a/string/memchr.c b/string/memchr.c
+index 822c0a4d49a0e538..1684bfa56885e883 100644
+--- a/string/memchr.c
++++ b/string/memchr.c
+@@ -47,11 +47,6 @@
+ #endif
+ 
+ #include <sys/types.h>
+-#if HAVE_BP_SYM_H || defined _LIBC
+-#include <bp-sym.h>
+-#else
+-# define BP_SYM(sym) sym
+-#endif
+ 
+ #undef memchr
+ #undef __memchr
+@@ -207,6 +202,6 @@ MEMCHR (s, c_in, n)
+   return 0;
+ }
+ #ifdef weak_alias
+-weak_alias (__memchr, BP_SYM (memchr))
++weak_alias (__memchr, memchr)
+ #endif
+ libc_hidden_builtin_def (memchr)
+diff --git a/sysdeps/i386/fpu/fegetenv.c b/sysdeps/i386/fpu/fegetenv.c
+index 7cdb90e04464fc77..a4cc5d1f0ed1c796 100644
+--- a/sysdeps/i386/fpu/fegetenv.c
++++ b/sysdeps/i386/fpu/fegetenv.c
+@@ -18,7 +18,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <fenv.h>
+-#include <bp-sym.h>
+ 
+ int
+ __fegetenv (fenv_t *envp)
+@@ -36,8 +35,8 @@ __fegetenv (fenv_t *envp)
+ #include <shlib-compat.h>
+ #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+ strong_alias (__fegetenv, __old_fegetenv)
+-compat_symbol (libm, BP_SYM (__old_fegetenv), BP_SYM (fegetenv), GLIBC_2_1);
++compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
+ #endif
+ 
+ libm_hidden_ver (__fegetenv, fegetenv)
+-versioned_symbol (libm, BP_SYM (__fegetenv), BP_SYM (fegetenv), GLIBC_2_2);
++versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);
+diff --git a/sysdeps/i386/fpu/fesetenv.c b/sysdeps/i386/fpu/fesetenv.c
+index e2f9eb8178c39ed8..ee92d5c36d1e5cde 100644
+--- a/sysdeps/i386/fpu/fesetenv.c
++++ b/sysdeps/i386/fpu/fesetenv.c
+@@ -19,7 +19,6 @@
+ 
+ #include <fenv.h>
+ #include <assert.h>
+-#include <bp-sym.h>
+ 
+ 
+ int
+@@ -80,8 +79,8 @@ __fesetenv (const fenv_t *envp)
+ #include <shlib-compat.h>
+ #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+ strong_alias (__fesetenv, __old_fesetenv)
+-compat_symbol (libm, BP_SYM (__old_fesetenv), BP_SYM (fesetenv), GLIBC_2_1);
++compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1);
+ #endif
+ 
+ libm_hidden_ver (__fesetenv, fesetenv)
+-versioned_symbol (libm, BP_SYM (__fesetenv), BP_SYM (fesetenv), GLIBC_2_2);
++versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2);
+diff --git a/sysdeps/i386/fpu/feupdateenv.c b/sysdeps/i386/fpu/feupdateenv.c
+index 6e2ce35b531cd348..86a43f024372987f 100644
+--- a/sysdeps/i386/fpu/feupdateenv.c
++++ b/sysdeps/i386/fpu/feupdateenv.c
+@@ -18,7 +18,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <fenv.h>
+-#include <bp-sym.h>
+ #include <unistd.h>
+ #include <dl-procinfo.h>
+ #include <ldsodefs.h>
+@@ -53,8 +52,8 @@ __feupdateenv (const fenv_t *envp)
+ #include <shlib-compat.h>
+ #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+ strong_alias (__feupdateenv, __old_feupdateenv)
+-compat_symbol (libm, BP_SYM (__old_feupdateenv), BP_SYM (feupdateenv), GLIBC_2_1);
++compat_symbol (libm, __old_feupdateenv, feupdateenv, GLIBC_2_1);
+ #endif
+ 
+ libm_hidden_ver (__feupdateenv, feupdateenv)
+-versioned_symbol (libm, BP_SYM (__feupdateenv), BP_SYM (feupdateenv), GLIBC_2_2);
++versioned_symbol (libm, __feupdateenv, feupdateenv, GLIBC_2_2);
+diff --git a/sysdeps/i386/fpu/fsetexcptflg.c b/sysdeps/i386/fpu/fsetexcptflg.c
+index 2daec71d112839c3..8751f10b23b1c690 100644
+--- a/sysdeps/i386/fpu/fsetexcptflg.c
++++ b/sysdeps/i386/fpu/fsetexcptflg.c
+@@ -19,7 +19,6 @@
+ 
+ #include <fenv.h>
+ #include <math.h>
+-#include <bp-sym.h>
+ #include <unistd.h>
+ #include <ldsodefs.h>
+ #include <dl-procinfo.h>
+@@ -64,7 +63,7 @@ __fesetexceptflag (const fexcept_t *flagp, int excepts)
+ #include <shlib-compat.h>
+ #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+ strong_alias (__fesetexceptflag, __old_fesetexceptflag)
+-compat_symbol (libm, BP_SYM (__old_fesetexceptflag), BP_SYM (fesetexceptflag), GLIBC_2_1);
++compat_symbol (libm, __old_fesetexceptflag, fesetexceptflag, GLIBC_2_1);
+ #endif
+ 
+-versioned_symbol (libm, BP_SYM (__fesetexceptflag), BP_SYM (fesetexceptflag), GLIBC_2_2);
++versioned_symbol (libm, __fesetexceptflag, fesetexceptflag, GLIBC_2_2);
+diff --git a/sysdeps/posix/open64.c b/sysdeps/posix/open64.c
+index 1aa0a57007792f36..8392e17773739a5f 100644
+--- a/sysdeps/posix/open64.c
++++ b/sysdeps/posix/open64.c
+@@ -17,7 +17,6 @@
+ 
+ #include <fcntl.h>
+ #include <stdarg.h>
+-#include <bp-sym.h>
+ #include <sysdep-cancel.h>
+ 
+ /* Open FILE with access OFLAG.  If O_CREAT or O_TMPFILE is in OFLAG,
+@@ -46,6 +45,6 @@ __libc_open64 (const char *file, int oflag, ...)
+ 
+   return result;
+ }
+-weak_alias (__libc_open64, BP_SYM (__open64))
+-libc_hidden_weak (BP_SYM (__open64))
+-weak_alias (__libc_open64, BP_SYM (open64))
++weak_alias (__libc_open64, __open64)
++libc_hidden_weak (__open64)
++weak_alias (__libc_open64, open64)
+diff --git a/sysdeps/powerpc/fpu/fegetenv.c b/sysdeps/powerpc/fpu/fegetenv.c
+index 77a8b2aa7a51d99a..d4fc41c5ae2702e6 100644
+--- a/sysdeps/powerpc/fpu/fegetenv.c
++++ b/sysdeps/powerpc/fpu/fegetenv.c
+@@ -17,7 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <fenv_libc.h>
+-#include <bp-sym.h>
+ 
+ int
+ __fegetenv (fenv_t *envp)
+@@ -31,8 +30,8 @@ __fegetenv (fenv_t *envp)
+ #include <shlib-compat.h>
+ #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+ strong_alias (__fegetenv, __old_fegetenv)
+-compat_symbol (libm, BP_SYM (__old_fegetenv), BP_SYM (fegetenv), GLIBC_2_1);
++compat_symbol (libm, __old_fegetenv, fegetenv, GLIBC_2_1);
+ #endif
+ 
+ libm_hidden_ver (__fegetenv, fegetenv)
+-versioned_symbol (libm, BP_SYM (__fegetenv), BP_SYM (fegetenv), GLIBC_2_2);
++versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);
+diff --git a/sysdeps/powerpc/fpu/fesetenv.c b/sysdeps/powerpc/fpu/fesetenv.c
+index e73da91101ed691e..63f653e827cbe4e5 100644
+--- a/sysdeps/powerpc/fpu/fesetenv.c
++++ b/sysdeps/powerpc/fpu/fesetenv.c
+@@ -19,7 +19,6 @@
+ 
+ #include <fenv_libc.h>
+ #include <fpu_control.h>
+-#include <bp-sym.h>
+ 
+ #define _FPU_MASK_ALL (_FPU_MASK_ZM | _FPU_MASK_OM | _FPU_MASK_UM | _FPU_MASK_XM | _FPU_MASK_IM)
+ 
+@@ -55,8 +54,8 @@ __fesetenv (const fenv_t *envp)
+ #include <shlib-compat.h>
+ #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+ strong_alias (__fesetenv, __old_fesetenv)
+-compat_symbol (libm, BP_SYM (__old_fesetenv), BP_SYM (fesetenv), GLIBC_2_1);
++compat_symbol (libm, __old_fesetenv, fesetenv, GLIBC_2_1);
+ #endif
+ 
+ libm_hidden_ver (__fesetenv, fesetenv)
+-versioned_symbol (libm, BP_SYM (__fesetenv), BP_SYM (fesetenv), GLIBC_2_2);
++versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2);
+diff --git a/sysdeps/powerpc/fpu/feupdateenv.c b/sysdeps/powerpc/fpu/feupdateenv.c
+index d24da9435294cd47..8a3491293c871a08 100644
+--- a/sysdeps/powerpc/fpu/feupdateenv.c
++++ b/sysdeps/powerpc/fpu/feupdateenv.c
+@@ -20,7 +20,6 @@
+ 
+ #include <fenv_libc.h>
+ #include <fpu_control.h>
+-#include <bp-sym.h>
+ 
+ #define _FPU_MASK_ALL (_FPU_MASK_ZM | _FPU_MASK_OM | _FPU_MASK_UM | _FPU_MASK_XM | _FPU_MASK_IM)
+ 
+@@ -62,8 +61,8 @@ __feupdateenv (const fenv_t *envp)
+ #include <shlib-compat.h>
+ #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+ strong_alias (__feupdateenv, __old_feupdateenv)
+-compat_symbol (libm, BP_SYM (__old_feupdateenv), BP_SYM (feupdateenv), GLIBC_2_1);
++compat_symbol (libm, __old_feupdateenv, feupdateenv, GLIBC_2_1);
+ #endif
+ 
+ libm_hidden_ver (__feupdateenv, feupdateenv)
+-versioned_symbol (libm, BP_SYM (__feupdateenv), BP_SYM (feupdateenv), GLIBC_2_2);
++versioned_symbol (libm, __feupdateenv, feupdateenv, GLIBC_2_2);
+diff --git a/sysdeps/powerpc/fpu/fgetexcptflg.c b/sysdeps/powerpc/fpu/fgetexcptflg.c
+index 3f9887a024387a21..9c59fc050feb97ba 100644
+--- a/sysdeps/powerpc/fpu/fgetexcptflg.c
++++ b/sysdeps/powerpc/fpu/fgetexcptflg.c
+@@ -17,7 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <fenv_libc.h>
+-#include <bp-sym.h>
+ 
+ int
+ __fegetexceptflag (fexcept_t *flagp, int excepts)
+@@ -37,7 +36,7 @@ __fegetexceptflag (fexcept_t *flagp, int excepts)
+ #include <shlib-compat.h>
+ #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+ strong_alias (__fegetexceptflag, __old_fegetexceptflag)
+-compat_symbol (libm, BP_SYM (__old_fegetexceptflag), BP_SYM (fegetexceptflag), GLIBC_2_1);
++compat_symbol (libm, __old_fegetexceptflag, fegetexceptflag, GLIBC_2_1);
+ #endif
+ 
+-versioned_symbol (libm, BP_SYM (__fegetexceptflag), BP_SYM (fegetexceptflag), GLIBC_2_2);
++versioned_symbol (libm, __fegetexceptflag, fegetexceptflag, GLIBC_2_2);
+diff --git a/sysdeps/powerpc/fpu/fraiseexcpt.c b/sysdeps/powerpc/fpu/fraiseexcpt.c
+index 86a89e744ed4e5d8..900d01186051a2fd 100644
+--- a/sysdeps/powerpc/fpu/fraiseexcpt.c
++++ b/sysdeps/powerpc/fpu/fraiseexcpt.c
+@@ -17,7 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <fenv_libc.h>
+-#include <bp-sym.h>
+ 
+ #undef feraiseexcept
+ int
+@@ -61,8 +60,8 @@ __feraiseexcept (int excepts)
+ #include <shlib-compat.h>
+ #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+ strong_alias (__feraiseexcept, __old_feraiseexcept)
+-compat_symbol (libm, BP_SYM (__old_feraiseexcept), BP_SYM (feraiseexcept), GLIBC_2_1);
++compat_symbol (libm, __old_feraiseexcept, feraiseexcept, GLIBC_2_1);
+ #endif
+ 
+ libm_hidden_ver (__feraiseexcept, feraiseexcept)
+-versioned_symbol (libm, BP_SYM (__feraiseexcept), BP_SYM (feraiseexcept), GLIBC_2_2);
++versioned_symbol (libm, __feraiseexcept, feraiseexcept, GLIBC_2_2);
+diff --git a/sysdeps/powerpc/fpu/fsetexcptflg.c b/sysdeps/powerpc/fpu/fsetexcptflg.c
+index 1140c8eb70489086..aadec2e8df1d5975 100644
+--- a/sysdeps/powerpc/fpu/fsetexcptflg.c
++++ b/sysdeps/powerpc/fpu/fsetexcptflg.c
+@@ -17,7 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <fenv_libc.h>
+-#include <bp-sym.h>
+ 
+ int
+ __fesetexceptflag (const fexcept_t *flagp, int excepts)
+@@ -53,7 +52,7 @@ __fesetexceptflag (const fexcept_t *flagp, int excepts)
+ #include <shlib-compat.h>
+ #if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+ strong_alias (__fesetexceptflag, __old_fesetexceptflag)
+-compat_symbol (libm, BP_SYM (__old_fesetexceptflag), BP_SYM (fesetexceptflag), GLIBC_2_1);
++compat_symbol (libm, __old_fesetexceptflag, fesetexceptflag, GLIBC_2_1);
+ #endif
+ 
+-versioned_symbol (libm, BP_SYM (__fesetexceptflag), BP_SYM (fesetexceptflag), GLIBC_2_2);
++versioned_symbol (libm, __fesetexceptflag, fesetexceptflag, GLIBC_2_2);
+diff --git a/sysdeps/unix/sysv/linux/powerpc/libc-start.c b/sysdeps/unix/sysv/linux/powerpc/libc-start.c
+index 078d6c7ca99c7203..7cdabe9085ef6118 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/libc-start.c
++++ b/sysdeps/unix/sysv/linux/powerpc/libc-start.c
+@@ -20,7 +20,6 @@
+ #include <unistd.h>
+ #include <ldsodefs.h>
+ #include <sysdep.h>
+-#include <bp-sym.h>
+ 
+ 
+ int __cache_line_size attribute_hidden;
+@@ -41,14 +40,12 @@ struct startup_info
+   };
+ 
+ int
+-/* GKM FIXME: GCC: this should get __BP_ prefix by virtue of the
+-   BPs in the arglist of startup_info.main and startup_info.init. */
+-  BP_SYM (__libc_start_main) (int argc, char **argv,
+-			      char **ev,
+-			      ElfW (auxv_t) * auxvec,
+-			      void (*rtld_fini) (void),
+-			      struct startup_info *stinfo,
+-			      char **stack_on_entry)
++__libc_start_main (int argc, char **argv,
++		   char **ev,
++		   ElfW (auxv_t) * auxvec,
++		   void (*rtld_fini) (void),
++		   struct startup_info *stinfo,
++		   char **stack_on_entry)
+ {
+   /* the PPC SVR4 ABI says that the top thing on the stack will
+      be a NULL pointer, so if not we assume that we're being called
diff --git a/SOURCES/glibc-rh1505492-bounded-12.patch b/SOURCES/glibc-rh1505492-bounded-12.patch
new file mode 100644
index 0000000..b350909
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-bounded-12.patch
@@ -0,0 +1,113 @@
+commit 2bdd4ca6b6c38367e301042c2247395568c63ebd
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Fri Feb 15 00:51:53 2013 +0000
+
+    Remove miscellaneous bounded-pointers relics in C code.
+
+diff --git a/config.h.in b/config.h.in
+index 07bc713e23f89e46..ef33c23c75ad2220 100644
+--- a/config.h.in
++++ b/config.h.in
+@@ -137,7 +137,7 @@
+ 
+ /* Defined to some form of __attribute__ ((...)) if the compiler supports
+    a different, more efficient calling convention.  */
+-#if defined USE_REGPARMS && !defined PROF && !defined __BOUNDED_POINTERS__
++#if defined USE_REGPARMS && !defined PROF
+ # define internal_function __attribute__ ((regparm (3), stdcall))
+ #endif
+ 
+diff --git a/elf/dl-runtime.c b/elf/dl-runtime.c
+index de55b2676fc80645..1ad2e4da7a654633 100644
+--- a/elf/dl-runtime.c
++++ b/elf/dl-runtime.c
+@@ -148,7 +148,7 @@ _dl_fixup (
+   return elf_machine_fixup_plt (l, result, reloc, rel_addr, value);
+ }
+ 
+-#if !defined PROF && !__BOUNDED_POINTERS__
++#ifndef PROF
+ DL_FIXUP_VALUE_TYPE
+ __attribute ((noinline)) ARCH_FIXUP_ATTRIBUTE
+ _dl_profile_fixup (
+diff --git a/ports/sysdeps/am33/dl-machine.h b/ports/sysdeps/am33/dl-machine.h
+index 90083c7dc45fc602..d4b321aca094863e 100644
+--- a/ports/sysdeps/am33/dl-machine.h
++++ b/ports/sysdeps/am33/dl-machine.h
+@@ -56,7 +56,7 @@ elf_machine_load_address (void)
+   return off + gotaddr - gotval;
+ }
+ 
+-#if !defined PROF && !__BOUNDED_POINTERS__
++#ifndef PROF
+ /* We add a declaration of this function here so that in dl-runtime.c
+    the ELF_MACHINE_RUNTIME_TRAMPOLINE macro really can pass the parameters
+    in registers.
+@@ -115,7 +115,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
+ 
+ /* This code is used in dl-runtime.c to call the `fixup' function
+    and then redirect to the address it returns.  */
+-#if !defined PROF && !__BOUNDED_POINTERS__
++#ifndef PROF
+ # define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\
+ 	.text\n\
+ 	.globl _dl_runtime_resolve\n\
+diff --git a/string/bits/string2.h b/string/bits/string2.h
+index bbf05a3df620d655..acd0679e72b10fbf 100644
+--- a/string/bits/string2.h
++++ b/string/bits/string2.h
+@@ -21,7 +21,7 @@
+ # error "Never use <bits/string2.h> directly; include <string.h> instead."
+ #endif
+ 
+-#if !defined __NO_STRING_INLINES && !defined __BOUNDED_POINTERS__
++#ifndef __NO_STRING_INLINES
+ 
+ /* Unlike the definitions in the header <bits/string.h> the
+    definitions contained here are not optimized down to assembler
+diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h
+index fc2b976651e20ca7..67d23228782d39c9 100644
+--- a/sysdeps/i386/dl-machine.h
++++ b/sysdeps/i386/dl-machine.h
+@@ -145,7 +145,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
+ 
+ #ifdef IN_DL_RUNTIME
+ 
+-# if !defined PROF && !__BOUNDED_POINTERS__
++# ifndef PROF
+ /* We add a declaration of this function here so that in dl-runtime.c
+    the ELF_MACHINE_RUNTIME_TRAMPOLINE macro really can pass the parameters
+    in registers.
+diff --git a/sysdeps/unix/sysv/linux/shmat.c b/sysdeps/unix/sysv/linux/shmat.c
+index 5ac515bc023e6783..401f00b7c01a6a14 100644
+--- a/sysdeps/unix/sysv/linux/shmat.c
++++ b/sysdeps/unix/sysv/linux/shmat.c
+@@ -38,15 +38,6 @@ shmat (shmid, shmaddr, shmflg)
+   unsigned long resultvar;
+   void *raddr;
+ 
+-#if __BOUNDED_POINTERS__
+-  size_t length = ~0;
+-  struct shmid_ds shmds;
+-  /* It's unfortunate that we need to make another system call to get
+-     the shared memory segment length...  */
+-  if (shmctl (shmid, IPC_STAT, &shmds) == 0)
+-    length = shmds.shm_segsz;
+-#endif
+-
+   resultvar = INTERNAL_SYSCALL (ipc, err, 5, IPCOP_shmat,
+ 				shmid, shmflg,
+ 				(long int) &raddr,
+diff --git a/sysdeps/x86/bits/string.h b/sysdeps/x86/bits/string.h
+index 14793029638ac613..bfa43cca72a92229 100644
+--- a/sysdeps/x86/bits/string.h
++++ b/sysdeps/x86/bits/string.h
+@@ -36,7 +36,7 @@
+ /* We only provide optimizations if the user selects them and if
+    GNU CC is used.  */
+ # if !defined __NO_STRING_INLINES && defined __USE_STRING_INLINES \
+-    && defined __GNUC__ && __GNUC__ >= 2 && !__BOUNDED_POINTERS__
++    && defined __GNUC__ && __GNUC__ >= 2
+ 
+ # ifndef __STRING_INLINE
+ #  ifndef __extern_inline
diff --git a/SOURCES/glibc-rh1505492-bounded-13.patch b/SOURCES/glibc-rh1505492-bounded-13.patch
new file mode 100644
index 0000000..8e860df
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-bounded-13.patch
@@ -0,0 +1,520 @@
+commit 2969121014b150036551c93a09da7686ffcac817
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Sun Feb 17 21:57:26 2013 +0000
+
+    Remove bounded-pointers handling from x86_64 assembly sources.
+
+Conflicts:
+	sysdeps/x86_64/bp-asm.h
+	  (Copyright header change, file removed manually.)
+	sysdeps/x86_64/strcmp.S
+	  (Context change due to earlier IS_IN backport.)
+
+diff --git a/sysdeps/unix/sysv/linux/x86_64/clone.S b/sysdeps/unix/sysv/linux/x86_64/clone.S
+index 53f9fbd782848988..9a88bbc94e3f14e9 100644
+--- a/sysdeps/unix/sysv/linux/x86_64/clone.S
++++ b/sysdeps/unix/sysv/linux/x86_64/clone.S
+@@ -22,8 +22,6 @@
+ #define _ERRNO_H	1
+ #include <bits/errno.h>
+ #include <asm-syntax.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ #define CLONE_VM	0x00000100
+ #define CLONE_THREAD	0x00010000
+@@ -52,7 +50,7 @@
+ 
+ 
+         .text
+-ENTRY (BP_SYM (__clone))
++ENTRY (__clone)
+ 	/* Sanity check arguments.  */
+ 	movq	$-EINVAL,%rax
+ 	testq	%rdi,%rdi		/* no NULL function pointers */
+@@ -117,6 +115,6 @@ L(thread_start):
+ 	cfi_endproc;
+ 
+ 	cfi_startproc;
+-PSEUDO_END (BP_SYM (__clone))
++PSEUDO_END (__clone)
+ 
+-weak_alias (BP_SYM (__clone), BP_SYM (clone))
++weak_alias (__clone, clone)
+diff --git a/sysdeps/unix/sysv/linux/x86_64/sysdep.h b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
+index 3e91c38dcf83bd8b..4b5105dbfde763d2 100644
+--- a/sysdeps/unix/sysv/linux/x86_64/sysdep.h
++++ b/sysdeps/unix/sysv/linux/x86_64/sysdep.h
+@@ -20,8 +20,6 @@
+ 
+ /* There is some commonality.  */
+ #include <sysdeps/unix/x86_64/sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ #include <tls.h>
+ 
+ #if IS_IN (rtld)
+diff --git a/sysdeps/unix/x86_64/sysdep.S b/sysdeps/unix/x86_64/sysdep.S
+index db13ac49d7e19f4e..f8f66ed03ef5fb0d 100644
+--- a/sysdeps/unix/x86_64/sysdep.S
++++ b/sysdeps/unix/x86_64/sysdep.S
+@@ -18,8 +18,6 @@
+ #include <sysdep.h>
+ #define _ERRNO_H
+ #include <bits/errno.h>
+-#include <bp-asm.h>
+-#include <bp-sym.h>
+ #include <tls.h>
+ 
+ #if IS_IN (rtld)
+diff --git a/sysdeps/x86_64/bp-asm.h b/sysdeps/x86_64/bp-asm.h
+deleted file mode 100644
+index 355ec8f634bc8e8e..0000000000000000
+--- a/sysdeps/x86_64/bp-asm.h
++++ /dev/null
+@@ -1,140 +0,0 @@
+-/* Bounded-pointer definitions for x86-64 assembler.
+-   Copyright (C) 2001 Free Software Foundation, Inc.
+-
+-   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 _bp_asm_h_
+-# define _bp_asm_h_ 1
+-
+-# if __ASSEMBLER__
+-
+-#  if __BOUNDED_POINTERS__
+-
+-/* Bounded pointers occupy three words.  */
+-#   define PTR_SIZE 24
+-/* Bounded pointer return values are passed back through a hidden
+-   argument that points to caller-allocate space.  The hidden arg
+-   occupies one word on the stack.  */
+-#   define RTN_SIZE 6
+-/* Although the caller pushes the hidden arg, the callee is
+-   responsible for popping it.  */
+-#   define RET_PTR ret $RTN_SIZE
+-/* Maintain frame pointer chain in leaf assembler functions for the benefit
+-   of debugging stack traces when bounds violations occur.  */
+-#   define ENTER pushq %rbp; movq %rsp, %rbp
+-#   define LEAVE movq %rbp, %rsp; popq %rbp
+-/* Stack space overhead of procedure-call linkage: return address and
+-   frame pointer.  */
+-#   define LINKAGE 16
+-/* Stack offset of return address after calling ENTER.  */
+-#   define PCOFF 8
+-
+-/* Int 5 is the "bound range" exception also raised by the "bound"
+-   instruction.  */
+-#   define BOUNDS_VIOLATED int $5
+-
+-#   define CHECK_BOUNDS_LOW(VAL_REG, BP_MEM)	\
+-	cmpq 8+BP_MEM, VAL_REG;			\
+-	jae 0f; /* continue if value >= low */	\
+-	BOUNDS_VIOLATED;			\
+-    0:
+-
+-#   define CHECK_BOUNDS_HIGH(VAL_REG, BP_MEM, Jcc)	\
+-	cmpq 16+BP_MEM, VAL_REG;			\
+-	Jcc 0f; /* continue if value < high */		\
+-	BOUNDS_VIOLATED;				\
+-    0:
+-
+-#   define CHECK_BOUNDS_BOTH(VAL_REG, BP_MEM)	\
+-	cmpq 8+BP_MEM, VAL_REG;			\
+-	jb 1f; /* die if value < low */		\
+-	cmpq 16+BP_MEM, VAL_REG;		\
+-	jb 0f; /* continue if value < high */	\
+-    1:	BOUNDS_VIOLATED;			\
+-    0:
+-
+-#   define CHECK_BOUNDS_BOTH_WIDE(VAL_REG, BP_MEM, LENGTH)	\
+-	CHECK_BOUNDS_LOW(VAL_REG, BP_MEM);			\
+-	addl LENGTH, VAL_REG;					\
+-	cmpq 16+BP_MEM, VAL_REG;					\
+-	jbe 0f; /* continue if value <= high */			\
+-	BOUNDS_VIOLATED;					\
+-    0:	subq LENGTH, VAL_REG /* restore value */
+-
+-/* Take bounds from BP_MEM and affix them to the pointer
+-   value in %rax, stuffing all into memory at RTN(%esp).
+-   Use %rdx as a scratch register.  */
+-
+-#   define RETURN_BOUNDED_POINTER(BP_MEM)	\
+-	movq RTN(%rsp), %rdx;			\
+-	movq %rax, 0(%rdx);			\
+-	movq 8+BP_MEM, %rax;			\
+-	movq %rax, 4(%rdx);			\
+-	movq 16+BP_MEM, %rax;			\
+-	movq %rax, 8(%rdx)
+-
+-#   define RETURN_NULL_BOUNDED_POINTER		\
+-	movl RTN(%rsp), %rdx;			\
+-	movl %rax, 0(%rdx);			\
+-	movl %rax, 4(%rdx);			\
+-	movl %rax, 8(%rdx)
+-
+-/* The caller of __errno_location is responsible for allocating space
+-   for the three-word BP return-value and passing pushing its address
+-   as an implicit first argument.  */
+-#   define PUSH_ERRNO_LOCATION_RETURN		\
+-	subl $16, %esp;				\
+-	subl $8, %esp;				\
+-	pushq %rsp
+-
+-/* __errno_location is responsible for popping the implicit first
+-   argument, but we must pop the space for the BP itself.  We also
+-   dereference the return value in order to dig out the pointer value.  */
+-#   define POP_ERRNO_LOCATION_RETURN		\
+-	popq %rax;				\
+-	addq $16, %rsp
+-
+-#  else /* !__BOUNDED_POINTERS__ */
+-
+-/* Unbounded pointers occupy one word.  */
+-#   define PTR_SIZE 8
+-/* Unbounded pointer return values are passed back in the register %rax.  */
+-#   define RTN_SIZE 0
+-/* Use simple return instruction for unbounded pointer values.  */
+-#   define RET_PTR ret
+-/* Don't maintain frame pointer chain for leaf assembler functions.  */
+-#   define ENTER
+-#   define LEAVE
+-/* Stack space overhead of procedure-call linkage: return address only.  */
+-#   define LINKAGE 8
+-/* Stack offset of return address after calling ENTER.  */
+-#   define PCOFF 0
+-
+-#   define CHECK_BOUNDS_LOW(VAL_REG, BP_MEM)
+-#   define CHECK_BOUNDS_HIGH(VAL_REG, BP_MEM, Jcc)
+-#   define CHECK_BOUNDS_BOTH(VAL_REG, BP_MEM)
+-#   define CHECK_BOUNDS_BOTH_WIDE(VAL_REG, BP_MEM, LENGTH)
+-#   define RETURN_BOUNDED_POINTER(BP_MEM)
+-
+-#   define RETURN_NULL_BOUNDED_POINTER
+-
+-#   define PUSH_ERRNO_LOCATION_RETURN
+-#   define POP_ERRNO_LOCATION_RETURN
+-
+-#  endif /* !__BOUNDED_POINTERS__ */
+-
+-# endif /* __ASSEMBLER__ */
+-
+-#endif /* _bp_asm_h_ */
+diff --git a/sysdeps/x86_64/bsd-_setjmp.S b/sysdeps/x86_64/bsd-_setjmp.S
+index 434e342aec5699c7..5591dd67562506bb 100644
+--- a/sysdeps/x86_64/bsd-_setjmp.S
++++ b/sysdeps/x86_64/bsd-_setjmp.S
+@@ -25,16 +25,14 @@
+ #define _ASM
+ #define _SETJMP_H
+ #include <bits/setjmp.h>
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-ENTRY (BP_SYM (_setjmp))
++ENTRY (_setjmp)
+ 	/* Set up arguments, we only need to set the second arg.  */
+ 	xorl %esi, %esi
+ #ifdef PIC
+ 	jmp HIDDEN_JUMPTARGET (__sigsetjmp)
+ #else
+-	jmp BP_SYM (__sigsetjmp)
++	jmp __sigsetjmp
+ #endif
+-END (BP_SYM (_setjmp))
++END (_setjmp)
+ libc_hidden_def (_setjmp)
+diff --git a/sysdeps/x86_64/bsd-setjmp.S b/sysdeps/x86_64/bsd-setjmp.S
+index 17717f703b3aa360..87e8bc07495d68d1 100644
+--- a/sysdeps/x86_64/bsd-setjmp.S
++++ b/sysdeps/x86_64/bsd-setjmp.S
+@@ -25,15 +25,13 @@
+ #define _ASM
+ #define _SETJMP_H
+ #include <bits/setjmp.h>
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-ENTRY (BP_SYM (setjmp))
++ENTRY (setjmp)
+ 	/* Set up arguments, we only need to set the 2nd arg.  */
+ 	movl $1, %esi
+ #ifdef	PIC
+ 	jmp HIDDEN_JUMPTARGET (__sigsetjmp)
+ #else
+-	jmp BP_SYM (__sigsetjmp)
++	jmp __sigsetjmp
+ #endif
+-END (BP_SYM (setjmp))
++END (setjmp)
+diff --git a/sysdeps/x86_64/mempcpy.S b/sysdeps/x86_64/mempcpy.S
+index 5cb256e65bdffd77..acee5e56b174c8bb 100644
+--- a/sysdeps/x86_64/mempcpy.S
++++ b/sysdeps/x86_64/mempcpy.S
+@@ -3,6 +3,6 @@
+ #define __memcpy_chk __mempcpy_chk
+ #include <sysdeps/x86_64/memcpy.S>
+ 
+-libc_hidden_def (BP_SYM (__mempcpy))
+-weak_alias (BP_SYM (__mempcpy), BP_SYM (mempcpy))
++libc_hidden_def (__mempcpy)
++weak_alias (__mempcpy, mempcpy)
+ libc_hidden_builtin_def (mempcpy)
+diff --git a/sysdeps/x86_64/rtld-strchr.S b/sysdeps/x86_64/rtld-strchr.S
+index dcd26da84009c6f3..2148190dc1312411 100644
+--- a/sysdeps/x86_64/rtld-strchr.S
++++ b/sysdeps/x86_64/rtld-strchr.S
+@@ -19,12 +19,10 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+ 
+ 	.text
+-ENTRY (BP_SYM (strchr))
++ENTRY (strchr)
+ 
+ 	/* Before we start with the main loop we process single bytes
+ 	   until the source pointer is aligned.  This has two reasons:
+@@ -284,7 +282,7 @@ ENTRY (BP_SYM (strchr))
+ 6:
+ 	nop
+ 	retq
+-END (BP_SYM (strchr))
++END (strchr)
+ 
+-weak_alias (BP_SYM (strchr), BP_SYM (index))
++weak_alias (strchr, index)
+ libc_hidden_builtin_def (strchr)
+diff --git a/sysdeps/x86_64/rtld-strlen.S b/sysdeps/x86_64/rtld-strlen.S
+index 7293f875513ce3e5..0d4f5b3c474b42a6 100644
+--- a/sysdeps/x86_64/rtld-strlen.S
++++ b/sysdeps/x86_64/rtld-strlen.S
+@@ -19,8 +19,6 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+ 
+ 	.text
+diff --git a/sysdeps/x86_64/setjmp.S b/sysdeps/x86_64/setjmp.S
+index dd87c484f9dac4ce..0d3865a7efd78ac4 100644
+--- a/sysdeps/x86_64/setjmp.S
++++ b/sysdeps/x86_64/setjmp.S
+@@ -61,10 +61,10 @@ ENTRY (__sigsetjmp)
+ #else
+ 	/* Make a tail call to __sigjmp_save; it takes the same args.  */
+ # ifdef	PIC
+-	jmp C_SYMBOL_NAME (BP_SYM (__sigjmp_save))@PLT
++	jmp C_SYMBOL_NAME (__sigjmp_save)@PLT
+ # else
+-	jmp BP_SYM (__sigjmp_save)
++	jmp __sigjmp_save
+ # endif
+ #endif
+-END (BP_SYM (__sigsetjmp))
++END (__sigsetjmp)
+ hidden_def (__sigsetjmp)
+diff --git a/sysdeps/x86_64/start.S b/sysdeps/x86_64/start.S
+index e603463044eee26f..a288aa3265679fac 100644
+--- a/sysdeps/x86_64/start.S
++++ b/sysdeps/x86_64/start.S
+@@ -54,7 +54,6 @@
+ */
+ 
+ #include <sysdep.h>
+-#include "bp-sym.h"
+ 
+ 	.text
+ 	.globl _start
+@@ -106,21 +105,21 @@ _start:
+ 	mov __libc_csu_fini@GOTPCREL(%rip), %R8_LP
+ 	mov __libc_csu_init@GOTPCREL(%rip), %RCX_LP
+ 
+-	mov BP_SYM (main)@GOTPCREL(%rip), %RDI_LP
++	mov main@GOTPCREL(%rip), %RDI_LP
+ 
+ 	/* Call the user's main function, and exit with its value.
+ 	   But let the libc call main.	  */
+-	call BP_SYM (__libc_start_main)@PLT
++	call __libc_start_main@PLT
+ #else
+ 	/* Pass address of our own entry points to .fini and .init.  */
+ 	mov $__libc_csu_fini, %R8_LP
+ 	mov $__libc_csu_init, %RCX_LP
+ 
+-	mov $BP_SYM (main), %RDI_LP
++	mov $main, %RDI_LP
+ 
+ 	/* Call the user's main function, and exit with its value.
+ 	   But let the libc call main.	  */
+-	call BP_SYM (__libc_start_main)
++	call __libc_start_main
+ #endif
+ 
+ 	hlt			/* Crash if somehow `exit' does return.	 */
+diff --git a/sysdeps/x86_64/strcat.S b/sysdeps/x86_64/strcat.S
+index 535a18dd3f82cf8c..bd0ebda1ce806234 100644
+--- a/sysdeps/x86_64/strcat.S
++++ b/sysdeps/x86_64/strcat.S
+@@ -20,12 +20,10 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+ 
+ 	.text
+-ENTRY (BP_SYM (strcat))
++ENTRY (strcat)
+ 	movq %rdi, %rcx		/* Dest. register. */
+ 	andl $7, %ecx		/* mask alignment bits */
+ 	movq %rdi, %rax		/* Duplicate destination pointer.  */
+@@ -255,5 +253,5 @@ ENTRY (BP_SYM (strcat))
+ 24:
+ 	movq	%rdi, %rax	/* Source is return value.  */
+ 	retq
+-END (BP_SYM (strcat))
++END (strcat)
+ libc_hidden_builtin_def (strcat)
+diff --git a/sysdeps/x86_64/strcmp.S b/sysdeps/x86_64/strcmp.S
+index ac10cc70d10f84cf..6d5aa19f87afca00 100644
+--- a/sysdeps/x86_64/strcmp.S
++++ b/sysdeps/x86_64/strcmp.S
+@@ -22,8 +22,6 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+ #undef UPDATE_STRNCMP_COUNTER
+ 
+@@ -128,7 +126,7 @@ libc_hidden_def (__strncasecmp)
+ 	/* FALLTHROUGH to strncasecmp_l.  */
+ #endif
+ 
+-ENTRY (BP_SYM (STRCMP))
++ENTRY (STRCMP)
+ #if !IS_IN (libc)
+ /* Simple version since we can't use SSE registers in ld.so.  */
+ L(oop):	movb	(%rdi), %al
+@@ -146,7 +144,7 @@ L(neq):	movl	$1, %eax
+ 	movl	$-1, %ecx
+ 	cmovbl	%ecx, %eax
+ 	ret
+-END (BP_SYM (STRCMP))
++END (STRCMP)
+ #else	/* !IS_IN (libc) */
+ # ifdef USE_AS_STRCASECMP_L
+ 	/* We have to fall back on the C implementation for locales
+@@ -2282,7 +2280,7 @@ LABEL(Byte0):
+ 
+ 	sub	%ecx, %eax
+ 	ret
+-END (BP_SYM (STRCMP))
++END (STRCMP)
+ 
+ 	.section .rodata,"a",@progbits
+ 	.p2align 3
+diff --git a/sysdeps/x86_64/strcpy.S b/sysdeps/x86_64/strcpy.S
+index 65216d26e1475489..5444658236bcb668 100644
+--- a/sysdeps/x86_64/strcpy.S
++++ b/sysdeps/x86_64/strcpy.S
+@@ -19,15 +19,13 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+ #ifndef USE_AS_STPCPY
+ # define STRCPY strcpy
+ #endif
+ 
+ 	.text
+-ENTRY (BP_SYM (STRCPY))
++ENTRY (STRCPY)
+ 	movq %rsi, %rcx		/* Source register. */
+ 	andl $7, %ecx		/* mask alignment bits */
+ 	movq %rdi, %rdx		/* Duplicate destination pointer.  */
+@@ -152,7 +150,7 @@ ENTRY (BP_SYM (STRCPY))
+ 	movq	%rdi, %rax	/* Source is return value.  */
+ #endif
+ 	retq
+-END (BP_SYM (STRCPY))
++END (STRCPY)
+ #ifndef USE_AS_STPCPY
+ libc_hidden_builtin_def (strcpy)
+ #endif
+diff --git a/sysdeps/x86_64/strcpy_chk.S b/sysdeps/x86_64/strcpy_chk.S
+index 1640e69235bf6808..ad8f594fa5b9f2db 100644
+--- a/sysdeps/x86_64/strcpy_chk.S
++++ b/sysdeps/x86_64/strcpy_chk.S
+@@ -20,8 +20,6 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+ #ifndef USE_AS_STPCPY_CHK
+ # define STRCPY_CHK __strcpy_chk
+diff --git a/sysdeps/x86_64/strtok.S b/sysdeps/x86_64/strtok.S
+index 4028a47f243d9a54..b221e4cd724f7234 100644
+--- a/sysdeps/x86_64/strtok.S
++++ b/sysdeps/x86_64/strtok.S
+@@ -21,8 +21,6 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+ /* This file can be used for the strtok and strtok_r functions:
+ 
+@@ -59,7 +57,7 @@ save_ptr:
+ #endif
+ 
+ 	.text
+-ENTRY (BP_SYM (FUNCTION))
++ENTRY (FUNCTION)
+ 	/* First we create a table with flags for all possible characters.
+ 	   For the ASCII (7bit/8bit) or ISO-8859-X character sets which are
+ 	   supported by the C string functions we have 256 characters.
+@@ -207,4 +205,4 @@ L(returnNULL):
+ 	mov %RDX_LP, SAVE_PTR
+ 	jmp L(epilogue)
+ 
+-END (BP_SYM (FUNCTION))
++END (FUNCTION)
+diff --git a/sysdeps/x86_64/strtok_r.S b/sysdeps/x86_64/strtok_r.S
+index 8ce0089c7b72390d..f0db78c67a8ef6a4 100644
+--- a/sysdeps/x86_64/strtok_r.S
++++ b/sysdeps/x86_64/strtok_r.S
+@@ -1,5 +1,5 @@
+ #define FUNCTION __strtok_r
+ #define USE_AS_STRTOK_R	1
+ #include <sysdeps/x86_64/strtok.S>
+-weak_alias (BP_SYM (__strtok_r), BP_SYM (strtok_r))
+-strong_alias (BP_SYM (__strtok_r), BP_SYM (__GI___strtok_r))
++weak_alias (__strtok_r, strtok_r)
++strong_alias (__strtok_r, __GI___strtok_r)
diff --git a/SOURCES/glibc-rh1505492-bounded-14.patch b/SOURCES/glibc-rh1505492-bounded-14.patch
new file mode 100644
index 0000000..adf4a52
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-bounded-14.patch
@@ -0,0 +1,1991 @@
+commit 92945b5261c412eb590b2b34c7ec9a035f0693a1
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Tue Feb 19 21:58:08 2013 +0000
+
+    Remove some bounded-pointers support from i386 .S files.
+
+diff --git a/sysdeps/i386/add_n.S b/sysdeps/i386/add_n.S
+index 5223d685952d6093..df3ea2362c76247a 100644
+--- a/sysdeps/i386/add_n.S
++++ b/sysdeps/i386/add_n.S
+@@ -30,7 +30,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__mpn_add_n))
+-	ENTER
+ 
+ 	pushl %edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -43,13 +42,6 @@ ENTRY (BP_SYM (__mpn_add_n))
+ 	cfi_rel_offset (esi, 0)
+ 	movl S2(%esp),%edx
+ 	movl SIZE(%esp),%ecx
+-#if __BOUNDED_POINTERS__
+-	shll	$2, %ecx	/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (%edi, RES(%esp), %ecx)
+-	CHECK_BOUNDS_BOTH_WIDE (%esi, S1(%esp), %ecx)
+-	CHECK_BOUNDS_BOTH_WIDE (%edx, S2(%esp), %ecx)
+-	shrl	$2, %ecx
+-#endif
+ 	movl	%ecx,%eax
+ 	shrl	$3,%ecx			/* compute count for unrolled loop */
+ 	negl	%eax
+@@ -117,6 +109,5 @@ L(oop):	movl	(%esi),%eax
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	ret
+ END (BP_SYM (__mpn_add_n))
+diff --git a/sysdeps/i386/addmul_1.S b/sysdeps/i386/addmul_1.S
+index 02acb436d9833033..006c08a92de4e303 100644
+--- a/sysdeps/i386/addmul_1.S
++++ b/sysdeps/i386/addmul_1.S
+@@ -35,7 +35,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__mpn_addmul_1))
+-	ENTER
+ 
+ 	pushl	%res_ptr
+ 	cfi_adjust_cfa_offset (4)
+@@ -53,12 +52,6 @@ ENTRY (BP_SYM (__mpn_addmul_1))
+ 	movl	SIZE(%esp), %sizeP
+ 	movl	S2LIMB(%esp), %s2_limb
+ 	cfi_rel_offset (s2_limb, 0)
+-#if __BOUNDED_POINTERS__
+-	shll	$2, %sizeP	/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %sizeP)
+-	CHECK_BOUNDS_BOTH_WIDE (%s1_ptr, S1(%esp), %sizeP)
+-	shrl	$2, %sizeP
+-#endif
+ 	leal	(%res_ptr,%sizeP,4), %res_ptr
+ 	leal	(%s1_ptr,%sizeP,4), %s1_ptr
+ 	negl	%sizeP
+@@ -91,6 +84,5 @@ L(oop):
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (res_ptr)
+ 
+-	LEAVE
+ 	ret
+ END (BP_SYM (__mpn_addmul_1))
+diff --git a/sysdeps/i386/bp-asm.h b/sysdeps/i386/bp-asm.h
+index 5e66e90b450846ed..75e1a007cb3eca71 100644
+--- a/sysdeps/i386/bp-asm.h
++++ b/sysdeps/i386/bp-asm.h
+@@ -34,81 +34,12 @@
+ /* Although the caller pushes the hidden arg, the callee is
+    responsible for popping it.  */
+ #   define RET_PTR ret $RTN_SIZE
+-/* Maintain frame pointer chain in leaf assembler functions for the benefit
+-   of debugging stack traces when bounds violations occur.  */
+-#   define ENTER pushl %ebp; movl %esp, %ebp
+-#   define LEAVE movl %ebp, %esp; popl %ebp
+ /* Stack space overhead of procedure-call linkage: return address and
+    frame pointer.  */
+ #   define LINKAGE 8
+ /* Stack offset of return address after calling ENTER.  */
+ #   define PCOFF 4
+ 
+-/* Int 5 is the "bound range" exception also raised by the "bound"
+-   instruction.  */
+-#   define BOUNDS_VIOLATED int $5
+-
+-#   define CHECK_BOUNDS_LOW(VAL_REG, BP_MEM)	\
+-	cmpl 4+BP_MEM, VAL_REG;			\
+-	jae 0f; /* continue if value >= low */	\
+-	BOUNDS_VIOLATED;			\
+-    0:
+-
+-#   define CHECK_BOUNDS_HIGH(VAL_REG, BP_MEM, Jcc)	\
+-	cmpl 8+BP_MEM, VAL_REG;				\
+-	Jcc 0f; /* continue if value < high */		\
+-	BOUNDS_VIOLATED;				\
+-    0:
+-
+-#   define CHECK_BOUNDS_BOTH(VAL_REG, BP_MEM)	\
+-	cmpl 4+BP_MEM, VAL_REG;			\
+-	jb 1f; /* die if value < low */		\
+-    	cmpl 8+BP_MEM, VAL_REG;			\
+-	jb 0f; /* continue if value < high */	\
+-    1:	BOUNDS_VIOLATED;			\
+-    0:
+-
+-#   define CHECK_BOUNDS_BOTH_WIDE(VAL_REG, BP_MEM, LENGTH)	\
+-	CHECK_BOUNDS_LOW(VAL_REG, BP_MEM);			\
+-	addl LENGTH, VAL_REG;					\
+-    	cmpl 8+BP_MEM, VAL_REG;					\
+-	jbe 0f; /* continue if value <= high */			\
+-	BOUNDS_VIOLATED;					\
+-    0:	subl LENGTH, VAL_REG /* restore value */
+-
+-/* Take bounds from BP_MEM and affix them to the pointer
+-   value in %eax, stuffing all into memory at RTN(%esp).
+-   Use %edx as a scratch register.  */
+-
+-#   define RETURN_BOUNDED_POINTER(BP_MEM)	\
+-	movl RTN(%esp), %edx;			\
+-	movl %eax, 0(%edx);			\
+-	movl 4+BP_MEM, %eax;			\
+-	movl %eax, 4(%edx);			\
+-	movl 8+BP_MEM, %eax;			\
+-	movl %eax, 8(%edx)
+-
+-#   define RETURN_NULL_BOUNDED_POINTER		\
+-	movl RTN(%esp), %edx;			\
+-	movl %eax, 0(%edx);			\
+-	movl %eax, 4(%edx);			\
+-	movl %eax, 8(%edx)
+-
+-/* The caller of __errno_location is responsible for allocating space
+-   for the three-word BP return-value and passing pushing its address
+-   as an implicit first argument.  */
+-#   define PUSH_ERRNO_LOCATION_RETURN		\
+-	subl $8, %esp;				\
+-	subl $4, %esp;				\
+-	pushl %esp
+-
+-/* __errno_location is responsible for popping the implicit first
+-   argument, but we must pop the space for the BP itself.  We also
+-   dereference the return value in order to dig out the pointer value.  */
+-#   define POP_ERRNO_LOCATION_RETURN		\
+-	popl %eax;				\
+-	addl $8, %esp
+-
+ #  else /* !__BOUNDED_POINTERS__ */
+ 
+ /* Unbounded pointers occupy one word.  */
+@@ -117,25 +48,11 @@
+ #   define RTN_SIZE 0
+ /* Use simple return instruction for unbounded pointer values.  */
+ #   define RET_PTR ret
+-/* Don't maintain frame pointer chain for leaf assembler functions.  */
+-#   define ENTER
+-#   define LEAVE
+ /* Stack space overhead of procedure-call linkage: return address only.  */
+ #   define LINKAGE 4
+ /* Stack offset of return address after calling ENTER.  */
+ #   define PCOFF 0
+ 
+-#   define CHECK_BOUNDS_LOW(VAL_REG, BP_MEM)
+-#   define CHECK_BOUNDS_HIGH(VAL_REG, BP_MEM, Jcc)
+-#   define CHECK_BOUNDS_BOTH(VAL_REG, BP_MEM)
+-#   define CHECK_BOUNDS_BOTH_WIDE(VAL_REG, BP_MEM, LENGTH)
+-#   define RETURN_BOUNDED_POINTER(BP_MEM)
+-
+-#   define RETURN_NULL_BOUNDED_POINTER
+-
+-#   define PUSH_ERRNO_LOCATION_RETURN
+-#   define POP_ERRNO_LOCATION_RETURN
+-
+ #  endif /* !__BOUNDED_POINTERS__ */
+ 
+ # endif /* __ASSEMBLER__ */
+diff --git a/sysdeps/i386/bsd-_setjmp.S b/sysdeps/i386/bsd-_setjmp.S
+index 8a5d0d8624c0e17d..fe0224145643ea0b 100644
+--- a/sysdeps/i386/bsd-_setjmp.S
++++ b/sysdeps/i386/bsd-_setjmp.S
+@@ -31,11 +31,9 @@
+ #define SIGMSK	JMPBUF+PTR_SIZE
+ 
+ ENTRY (BP_SYM (_setjmp))
+-	ENTER
+ 
+ 	xorl %eax, %eax
+ 	movl JMPBUF(%esp), %edx
+-	CHECK_BOUNDS_BOTH_WIDE (%edx, JMPBUF(%esp), $(JB_SIZE+4))
+ 
+      	/* Save registers.  */
+ 	movl %ebx, (JB_BX*4)(%edx)
+@@ -52,7 +50,6 @@ ENTRY (BP_SYM (_setjmp))
+ 	PTR_MANGLE (%ecx)
+ #endif
+      	movl %ecx, (JB_PC*4)(%edx)
+-	LEAVE
+ 	movl %ebp, (JB_BP*4)(%edx) /* Save caller's frame pointer.  */
+ 
+ 	movl %eax, JB_SIZE(%edx) /* No signal mask set.  */
+diff --git a/sysdeps/i386/bsd-setjmp.S b/sysdeps/i386/bsd-setjmp.S
+index d3a284ef28196c29..25470f3904a8ca73 100644
+--- a/sysdeps/i386/bsd-setjmp.S
++++ b/sysdeps/i386/bsd-setjmp.S
+@@ -34,10 +34,8 @@ ENTRY (BP_SYM (setjmp))
+ 	/* Note that we have to use a non-exported symbol in the next
+ 	   jump since otherwise gas will emit it as a jump through the
+ 	   PLT which is what we cannot use here.  */
+-	ENTER
+ 
+ 	movl JMPBUF(%esp), %eax
+-	CHECK_BOUNDS_BOTH_WIDE (%eax, JMPBUF(%esp), $JB_SIZE)
+ 
+      	/* Save registers.  */
+ 	movl %ebx, (JB_BX*4)(%eax)
+@@ -54,7 +52,6 @@ ENTRY (BP_SYM (setjmp))
+ 	PTR_MANGLE (%ecx)
+ #endif
+      	movl %ecx, (JB_PC*4)(%eax)
+-	LEAVE /* pop frame pointer to prepare for tail-call.  */
+ 	movl %ebp, (JB_BP*4)(%eax) /* Save caller's frame pointer.  */
+ 
+ 	/* Call __sigjmp_save.  */
+diff --git a/sysdeps/i386/fpu/s_frexp.S b/sysdeps/i386/fpu/s_frexp.S
+index e76732dc8bc2a091..6c5cd8fdfd9f825b 100644
+--- a/sysdeps/i386/fpu/s_frexp.S
++++ b/sysdeps/i386/fpu/s_frexp.S
+@@ -41,7 +41,6 @@ two54:	.byte 0, 0, 0, 0, 0, 0, 0x50, 0x43
+ 
+ 	.text
+ ENTRY (BP_SYM (__frexp))
+-	ENTER
+ 
+ 	movl	VAL0(%esp), %ecx
+ 	movl	VAL1(%esp), %eax
+@@ -78,11 +77,9 @@ ENTRY (BP_SYM (__frexp))
+ 	/* Store %ecx in the variable pointed to by the second argument,
+ 	   get the factor from the stack and return.  */
+ 1:	movl	EXPP(%esp), %eax
+-	CHECK_BOUNDS_BOTH_WIDE (%eax, EXPP(%esp), $4)
+ 	fldl	VAL0(%esp)
+ 	movl	%ecx, (%eax)
+ 
+-	LEAVE
+ 	ret
+ END (BP_SYM (__frexp))
+ weak_alias (BP_SYM (__frexp), BP_SYM (frexp))
+diff --git a/sysdeps/i386/fpu/s_frexpf.S b/sysdeps/i386/fpu/s_frexpf.S
+index af0dc8ee3d58c1a6..4fe2181873de7302 100644
+--- a/sysdeps/i386/fpu/s_frexpf.S
++++ b/sysdeps/i386/fpu/s_frexpf.S
+@@ -40,7 +40,6 @@ two25:	.byte 0, 0, 0, 0x4c
+ 
+ 	.text
+ ENTRY (BP_SYM (__frexpf))
+-	ENTER
+ 
+ 	movl	VAL(%esp), %eax
+ 	xorl	%ecx, %ecx
+@@ -75,11 +74,9 @@ ENTRY (BP_SYM (__frexpf))
+ 	/* Store %ecx in the variable pointed to by the second argument,
+ 	   get the factor from the stack and return.  */
+ 1:	movl	EXPP(%esp), %eax
+-	CHECK_BOUNDS_BOTH_WIDE (%eax, EXPP(%esp), $4)
+ 	flds	VAL(%esp)
+ 	movl	%ecx, (%eax)
+ 
+-	LEAVE
+ 	ret
+ END (BP_SYM (__frexpf))
+ weak_alias (BP_SYM (__frexpf), BP_SYM (frexpf))
+diff --git a/sysdeps/i386/fpu/s_frexpl.S b/sysdeps/i386/fpu/s_frexpl.S
+index 6f464a89d6a2e75d..54d5010185792bd9 100644
+--- a/sysdeps/i386/fpu/s_frexpl.S
++++ b/sysdeps/i386/fpu/s_frexpl.S
+@@ -42,7 +42,6 @@ two64:	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
+ 
+ 	.text
+ ENTRY (BP_SYM (__frexpl))
+-	ENTER
+ 
+ 	movl	VAL0(%esp), %ecx
+ 	movl	VAL2(%esp), %eax
+@@ -80,11 +79,9 @@ ENTRY (BP_SYM (__frexpl))
+ 	/* Store %ecx in the variable pointed to by the second argument,
+ 	   get the factor from the stack and return.  */
+ 1:	movl	EXPP(%esp), %eax
+-	CHECK_BOUNDS_BOTH_WIDE (%eax, EXPP(%esp), $4)
+ 	fldt	VAL0(%esp)
+ 	movl	%ecx, (%eax)
+ 
+-	LEAVE
+ 	ret
+ END (BP_SYM (__frexpl))
+ weak_alias (BP_SYM (__frexpl), BP_SYM (frexpl))
+diff --git a/sysdeps/i386/fpu/s_remquo.S b/sysdeps/i386/fpu/s_remquo.S
+index 5056593214e66f3c..e61ff5be7bc826df 100644
+--- a/sysdeps/i386/fpu/s_remquo.S
++++ b/sysdeps/i386/fpu/s_remquo.S
+@@ -15,7 +15,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__remquo))
+-	ENTER
+ 
+ 	fldl	DVSOR(%esp)
+ 	fldl	DVDND(%esp)
+@@ -36,7 +35,6 @@ ENTRY (BP_SYM (__remquo))
+ 	shrl	%cl, %eax
+ 	andl	$7, %eax
+ 	movl	QUOP(%esp), %ecx
+-	CHECK_BOUNDS_BOTH_WIDE (%ecx, QUOP(%esp), $4)
+ 	movl	DVDND+4(%esp), %edx
+ 	xorl	DVSOR+4(%esp), %edx
+ 	testl	$0x80000000, %edx
+@@ -44,7 +42,6 @@ ENTRY (BP_SYM (__remquo))
+ 	negl	%eax
+ 1:	movl	%eax, (%ecx)
+ 
+-	LEAVE
+ 	ret
+ END (BP_SYM (__remquo))
+ weak_alias (BP_SYM (__remquo), BP_SYM (remquo))
+diff --git a/sysdeps/i386/fpu/s_remquof.S b/sysdeps/i386/fpu/s_remquof.S
+index d3c5965be455e42d..c2b351b859c28e7c 100644
+--- a/sysdeps/i386/fpu/s_remquof.S
++++ b/sysdeps/i386/fpu/s_remquof.S
+@@ -15,7 +15,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__remquof))
+-	ENTER
+ 
+ 	flds	DVSOR(%esp)
+ 	flds	DVDND(%esp)
+@@ -36,7 +35,6 @@ ENTRY (BP_SYM (__remquof))
+ 	shrl	%cl, %eax
+ 	andl	$7, %eax
+ 	movl	QUOP(%esp), %ecx
+-	CHECK_BOUNDS_BOTH_WIDE (%ecx, QUOP(%esp), $4)
+ 	movl	DVDND(%esp), %edx
+ 	xorl	DVSOR(%esp), %edx
+ 	testl	$0x80000000, %edx
+@@ -44,7 +42,6 @@ ENTRY (BP_SYM (__remquof))
+ 	negl	%eax
+ 1:	movl	%eax, (%ecx)
+ 
+-	LEAVE
+ 	ret
+ END (BP_SYM (__remquof))
+ weak_alias (BP_SYM (__remquof), BP_SYM (remquof))
+diff --git a/sysdeps/i386/fpu/s_remquol.S b/sysdeps/i386/fpu/s_remquol.S
+index 65240adbe47f6014..2cbe43589609a2b8 100644
+--- a/sysdeps/i386/fpu/s_remquol.S
++++ b/sysdeps/i386/fpu/s_remquol.S
+@@ -15,7 +15,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__remquol))
+-	ENTER
+ 
+ 	fldt	DVSOR(%esp)
+ 	fldt	DVDND(%esp)
+@@ -36,7 +35,6 @@ ENTRY (BP_SYM (__remquol))
+ 	shrl	%cl, %eax
+ 	andl	$7, %eax
+ 	movl	QUOP(%esp), %ecx
+-	CHECK_BOUNDS_BOTH_WIDE (%ecx, QUOP(%esp), $4)
+ 	movl	DVDND+8(%esp), %edx
+ 	xorl	DVSOR+8(%esp), %edx
+ 	testl	$0x8000, %edx
+@@ -44,7 +42,6 @@ ENTRY (BP_SYM (__remquol))
+ 	negl	%eax
+ 1:	movl	%eax, (%ecx)
+ 
+-	LEAVE
+ 	ret
+ END (BP_SYM (__remquol))
+ weak_alias (BP_SYM (__remquol), BP_SYM (remquol))
+diff --git a/sysdeps/i386/i486/strcat.S b/sysdeps/i386/i486/strcat.S
+index 7596a0dcdbff6fcc..b3212c8beb948411 100644
+--- a/sysdeps/i386/i486/strcat.S
++++ b/sysdeps/i386/i486/strcat.S
+@@ -31,15 +31,12 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (strcat))
+-	ENTER
+ 
+ 	pushl %edi		/* Save callee-safe register.  */
+ 	cfi_adjust_cfa_offset (4)
+ 
+ 	movl DEST(%esp), %edx
+ 	movl SRC(%esp), %ecx
+-	CHECK_BOUNDS_LOW (%edx, DEST(%esp))
+-	CHECK_BOUNDS_LOW (%ecx, SRC(%esp))
+ 
+ 	testb $0xff, (%ecx)	/* Is source string empty? */
+ 	jz L(8)			/* yes => return */
+@@ -262,12 +259,10 @@ L(9):	movb %al, (%ecx,%edx)	/* store first byte of last word */
+ 
+ L(8):	/* GKM FIXME: check high bounds */
+ 	movl DEST(%esp), %eax	/* start address of destination is result */
+-	RETURN_BOUNDED_POINTER (DEST(%esp))
+ 	popl %edi		/* restore saved register */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	RET_PTR
+ END (BP_SYM (strcat))
+ libc_hidden_builtin_def (strcat)
+diff --git a/sysdeps/i386/i486/strlen.S b/sysdeps/i386/i486/strlen.S
+index 3ba4df92d9a40d91..76c31098e84a1c93 100644
+--- a/sysdeps/i386/i486/strlen.S
++++ b/sysdeps/i386/i486/strlen.S
+@@ -28,10 +28,8 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (strlen))
+-	ENTER
+ 
+ 	movl STR(%esp), %ecx
+-	CHECK_BOUNDS_LOW (%ecx, STR(%esp))
+ 	movl %ecx, %eax		/* duplicate it */
+ 
+ 	andl $3, %ecx		/* mask alignment bits */
+@@ -129,10 +127,8 @@ L(3):	testb %cl, %cl		/* is first byte NUL? */
+ 	jz L(2)			/* yes => return pointer */
+ 	incl %eax		/* increment pointer */
+ 
+-L(2):	CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
+-	subl STR(%esp), %eax	/* compute difference to string start */
++L(2):	subl STR(%esp), %eax	/* compute difference to string start */
+ 
+-	LEAVE
+ 	ret
+ END (BP_SYM (strlen))
+ libc_hidden_builtin_def (strlen)
+diff --git a/sysdeps/i386/i586/add_n.S b/sysdeps/i386/i586/add_n.S
+index d6ed224035868645..a2b502d0d21bf9f5 100644
+--- a/sysdeps/i386/i586/add_n.S
++++ b/sysdeps/i386/i586/add_n.S
+@@ -30,7 +30,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__mpn_add_n))
+-	ENTER
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -48,13 +47,6 @@ ENTRY (BP_SYM (__mpn_add_n))
+ 	movl	S2(%esp),%ebx
+ 	cfi_rel_offset (ebx, 0)
+ 	movl	SIZE(%esp),%ecx
+-#if __BOUNDED_POINTERS__
+-	shll	$2, %ecx		/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (%edi, RES(%esp), %ecx)
+-	CHECK_BOUNDS_BOTH_WIDE (%esi, S1(%esp), %ecx)
+-	CHECK_BOUNDS_BOTH_WIDE (%ebx, S2(%esp), %ecx)
+-	shrl	$2, %ecx
+-#endif
+ 	movl	(%ebx),%ebp
+ 	cfi_rel_offset (ebp, 4)
+ 
+@@ -149,6 +141,5 @@ L(end2):
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	ret
+ END (BP_SYM (__mpn_add_n))
+diff --git a/sysdeps/i386/i586/addmul_1.S b/sysdeps/i386/i586/addmul_1.S
+index 89bf87c4ea2a87af..a9d0b08b5e8072ab 100644
+--- a/sysdeps/i386/i586/addmul_1.S
++++ b/sysdeps/i386/i586/addmul_1.S
+@@ -35,7 +35,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__mpn_addmul_1))
+-	ENTER
+ 
+ 	pushl	%res_ptr
+ 	cfi_adjust_cfa_offset (4)
+@@ -53,12 +52,6 @@ ENTRY (BP_SYM (__mpn_addmul_1))
+ 	movl	SIZE(%esp), %size
+ 	movl	S2LIMB(%esp), %s2_limb
+ 	cfi_rel_offset (s2_limb, 0)
+-#if __BOUNDED_POINTERS__
+-	shll	$2, %size	/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %size)
+-	CHECK_BOUNDS_BOTH_WIDE (%s1_ptr, S1(%esp), %size)
+-	shrl	$2, %size
+-#endif
+ 	leal	(%res_ptr,%size,4), %res_ptr
+ 	leal	(%s1_ptr,%size,4), %s1_ptr
+ 	negl	%size
+@@ -98,7 +91,6 @@ L(oop):	adcl	$0, %ebp
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (res_ptr)
+ 
+-	LEAVE
+ 	ret
+ #undef size
+ END (BP_SYM (__mpn_addmul_1))
+diff --git a/sysdeps/i386/i586/lshift.S b/sysdeps/i386/i586/lshift.S
+index d619c58d2dda212d..23c5002d69f50f8f 100644
+--- a/sysdeps/i386/i586/lshift.S
++++ b/sysdeps/i386/i586/lshift.S
+@@ -29,7 +29,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__mpn_lshift))
+-	ENTER
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -48,12 +47,6 @@ ENTRY (BP_SYM (__mpn_lshift))
+ 	movl	SIZE(%esp),%ebx
+ 	cfi_rel_offset (ebx, 0)
+ 	movl	CNT(%esp),%ecx
+-#if __BOUNDED_POINTERS__
+-	shll	$2, %ebx		/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (%edi, RES(%esp), %ebx)
+-	CHECK_BOUNDS_BOTH_WIDE (%esi, S(%esp), %ebx)
+-	shrl	$2, %ebx
+-#endif
+ 
+ /* We can use faster code for shift-by-1 under certain conditions.  */
+ 	cmp	$1,%ecx
+@@ -155,7 +148,6 @@ L(end2):
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	ret
+ 
+ /* We loop from least significant end of the arrays, which is only
+@@ -261,6 +253,5 @@ L(L1):	movl	%edx,(%edi)		/* store last limb */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	ret
+ END (BP_SYM (__mpn_lshift))
+diff --git a/sysdeps/i386/i586/memcpy.S b/sysdeps/i386/i586/memcpy.S
+index a3f3524ad03509c1..07f5432d761c453d 100644
+--- a/sysdeps/i386/i586/memcpy.S
++++ b/sysdeps/i386/i586/memcpy.S
+@@ -42,7 +42,6 @@ ENTRY (__memcpy_chk)
+ END (__memcpy_chk)
+ #endif
+ ENTRY (BP_SYM (memcpy))
+-	ENTER
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -54,8 +53,6 @@ ENTRY (BP_SYM (memcpy))
+ 	movl	SRC(%esp), %esi
+ 	cfi_rel_offset (esi, 0)
+ 	movl	LEN(%esp), %ecx
+-	CHECK_BOUNDS_BOTH_WIDE (%edi, DEST(%esp), %ecx)
+-	CHECK_BOUNDS_BOTH_WIDE (%esi, SRC(%esp), %ecx)
+ 	movl	%edi, %eax
+ 
+ 	/* We need this in any case.  */
+@@ -127,7 +124,6 @@ L(1):	rep; movsb
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	RET_PTR
+ END (BP_SYM (memcpy))
+ #if !MEMPCPY_P
+diff --git a/sysdeps/i386/i586/memset.S b/sysdeps/i386/i586/memset.S
+index d7a4b73a72b1abce..8234b99d734b24b0 100644
+--- a/sysdeps/i386/i586/memset.S
++++ b/sysdeps/i386/i586/memset.S
+@@ -45,7 +45,6 @@ ENTRY (__memset_chk)
+ END (__memset_chk)
+ #endif
+ ENTRY (BP_SYM (memset))
+-	ENTER
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -53,7 +52,6 @@ ENTRY (BP_SYM (memset))
+ 	movl	DEST(%esp), %edi
+ 	cfi_rel_offset (edi, 0)
+ 	movl	LEN(%esp), %edx
+-	CHECK_BOUNDS_BOTH_WIDE (%edi, DEST(%esp), %edx)
+ #if BZERO_P
+ 	xorl	%eax, %eax	/* we fill with 0 */
+ #else
+@@ -111,13 +109,11 @@ L(2):	shrl	$2, %ecx	/* convert byte count to longword count */
+ #if !BZERO_P
+ 	/* Load result (only if used as memset).  */
+ 	movl DEST(%esp), %eax	/* start address of destination is result */
+-	RETURN_BOUNDED_POINTER (DEST(%esp))
+ #endif
+ 	popl	%edi
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ #if BZERO_P
+ 	ret
+ #else
+diff --git a/sysdeps/i386/i586/mul_1.S b/sysdeps/i386/i586/mul_1.S
+index 28670a24679d0e7e..c694afb42141b16f 100644
+--- a/sysdeps/i386/i586/mul_1.S
++++ b/sysdeps/i386/i586/mul_1.S
+@@ -35,7 +35,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__mpn_mul_1))
+-	ENTER
+ 
+ 	pushl	%res_ptr
+ 	cfi_adjust_cfa_offset (4)
+@@ -53,12 +52,6 @@ ENTRY (BP_SYM (__mpn_mul_1))
+ 	movl	SIZE(%esp), %size
+ 	movl	S2LIMB(%esp), %s2_limb
+ 	cfi_rel_offset (s2_limb, 0)
+-#if __BOUNDED_POINTERS__
+-	shll	$2, %size	/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %size)
+-	CHECK_BOUNDS_BOTH_WIDE (%s1_ptr, S1(%esp), %size)
+-	shrl	$2, %size
+-#endif
+ 	leal	(%res_ptr,%size,4), %res_ptr
+ 	leal	(%s1_ptr,%size,4), %s1_ptr
+ 	negl	%size
+@@ -94,7 +87,6 @@ L(oop):	adcl	$0, %ebp
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (res_ptr)
+ 
+-	LEAVE
+ 	ret
+ #undef size
+ END (BP_SYM (__mpn_mul_1))
+diff --git a/sysdeps/i386/i586/rshift.S b/sysdeps/i386/i586/rshift.S
+index caf0986d2f473c74..ce3710391193dbac 100644
+--- a/sysdeps/i386/i586/rshift.S
++++ b/sysdeps/i386/i586/rshift.S
+@@ -29,7 +29,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__mpn_rshift))
+-	ENTER
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -48,12 +47,6 @@ ENTRY (BP_SYM (__mpn_rshift))
+ 	movl	SIZE(%esp),%ebx
+ 	cfi_rel_offset (ebx, 0)
+ 	movl	CNT(%esp),%ecx
+-#if __BOUNDED_POINTERS__
+-	shll	$2, %ebx		/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (%edi, RES(%esp), %ebx)
+-	CHECK_BOUNDS_BOTH_WIDE (%esi, S(%esp), %ebx)
+-	shrl	$2, %ebx
+-#endif
+ 
+ /* We can use faster code for shift-by-1 under certain conditions.  */
+ 	cmp	$1,%ecx
+@@ -152,7 +145,6 @@ L(end2):
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	ret
+ 
+ /* We loop from least significant end of the arrays, which is only
+@@ -261,6 +253,5 @@ L(L1):	movl	%edx,(%edi)		/* store last limb */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	ret
+ END (BP_SYM (__mpn_rshift))
+diff --git a/sysdeps/i386/i586/strchr.S b/sysdeps/i386/i586/strchr.S
+index 4c424763224ca839..35259fb085840180 100644
+--- a/sysdeps/i386/i586/strchr.S
++++ b/sysdeps/i386/i586/strchr.S
+@@ -43,7 +43,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (strchr))
+-	ENTER
+ 
+ 	pushl %edi		/* Save callee-safe registers.  */
+ 	cfi_adjust_cfa_offset (-4)
+@@ -57,7 +56,6 @@ ENTRY (BP_SYM (strchr))
+ 
+ 	movl STR(%esp), %eax
+ 	movl CHR(%esp), %edx
+-	CHECK_BOUNDS_LOW (%eax, STR(%esp))
+ 
+ 	movl %eax, %edi		/* duplicate string pointer for later */
+ 	cfi_rel_offset (edi, 12)
+@@ -82,7 +80,7 @@ ENTRY (BP_SYM (strchr))
+ 	jp L(0)			/* exactly two bits set */
+ 
+ 	xorb (%eax), %cl	/* is byte the one we are looking for? */
+-	jz L(2)			/* yes => return pointer */
++	jz L(out)		/* yes => return pointer */
+ 
+ 	xorb %dl, %cl		/* load single byte and test for NUL */
+ 	je L(3)			/* yes => return NULL */
+@@ -91,7 +89,7 @@ ENTRY (BP_SYM (strchr))
+ 	incl %eax
+ 
+ 	cmpb %cl, %dl		/* is byte == C? */
+-	je L(2)			/* aligned => return pointer */
++	je L(out)		/* aligned => return pointer */
+ 
+ 	cmpb $0, %cl		/* is byte NUL? */
+ 	je L(3)			/* yes => return NULL */
+@@ -104,7 +102,7 @@ ENTRY (BP_SYM (strchr))
+ L(0):	movb (%eax), %cl	/* load single byte */
+ 
+ 	cmpb %cl, %dl		/* is byte == C? */
+-	je L(2)			/* aligned => return pointer */
++	je L(out)		/* aligned => return pointer */
+ 
+ 	cmpb $0, %cl		/* is byte NUL? */
+ 	je L(3)			/* yes => return NULL */
+@@ -274,23 +272,21 @@ L(1):	xorl %ecx, %ebp			/* (word^magic) */
+ L(5):	subl $4, %eax		/* adjust pointer */
+ 	testb %bl, %bl		/* first byte == C? */
+ 
+-	jz L(2)			/* yes => return pointer */
++	jz L(out)		/* yes => return pointer */
+ 
+ 	incl %eax		/* increment pointer */
+ 	testb %bh, %bh		/* second byte == C? */
+ 
+-	jz L(2)			/* yes => return pointer */
++	jz L(out)		/* yes => return pointer */
+ 
+ 	shrl $16, %ebx		/* make upper bytes accessible */
+ 	incl %eax		/* increment pointer */
+ 
+ 	cmp $0, %bl		/* third byte == C */
+-	je L(2)			/* yes => return pointer */
++	je L(out)		/* yes => return pointer */
+ 
+ 	incl %eax		/* increment pointer */
+ 
+-L(2):	CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
+-	RETURN_BOUNDED_POINTER (STR(%esp))
+ L(out):	popl %ebp		/* restore saved registers */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (ebp)
+@@ -305,7 +301,6 @@ L(out):	popl %ebp		/* restore saved registers */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	RET_PTR
+ 
+ 	cfi_adjust_cfa_offset (16)
+@@ -318,7 +313,7 @@ L(out):	popl %ebp		/* restore saved registers */
+ L(4):	subl $4, %eax		/* adjust pointer */
+ 	cmpb %dl, %cl		/* first byte == C? */
+ 
+-	je L(2)			/* yes => return pointer */
++	je L(out)		/* yes => return pointer */
+ 
+ 	cmpb $0, %cl		/* first byte == NUL? */
+ 	je L(3)			/* yes => return NULL */
+@@ -326,7 +321,7 @@ L(4):	subl $4, %eax		/* adjust pointer */
+ 	incl %eax		/* increment pointer */
+ 
+ 	cmpb %dl, %ch		/* second byte == C? */
+-	je L(2)			/* yes => return pointer */
++	je L(out)		/* yes => return pointer */
+ 
+ 	cmpb $0, %ch		/* second byte == NUL? */
+ 	je L(3)			/* yes => return NULL */
+@@ -335,7 +330,7 @@ L(4):	subl $4, %eax		/* adjust pointer */
+ 	incl %eax		/* increment pointer */
+ 
+ 	cmpb %dl, %cl		/* third byte == C? */
+-	je L(2)			/* yes => return pointer */
++	je L(out)		/* yes => return pointer */
+ 
+ 	cmpb $0, %cl		/* third byte == NUL? */
+ 	je L(3)			/* yes => return NULL */
+@@ -344,10 +339,9 @@ L(4):	subl $4, %eax		/* adjust pointer */
+ 
+ 	/* The test four the fourth byte is necessary!  */
+ 	cmpb %dl, %ch		/* fourth byte == C? */
+-	je L(2)			/* yes => return pointer */
++	je L(out)		/* yes => return pointer */
+ 
+ L(3):	xorl %eax, %eax
+-	RETURN_NULL_BOUNDED_POINTER
+ 	jmp L(out)
+ END (BP_SYM (strchr))
+ 
+diff --git a/sysdeps/i386/i586/strcpy.S b/sysdeps/i386/i586/strcpy.S
+index 50fc521dd2e28c17..edd21f135d46a732 100644
+--- a/sysdeps/i386/i586/strcpy.S
++++ b/sysdeps/i386/i586/strcpy.S
+@@ -35,7 +35,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (STRCPY))
+-	ENTER
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -48,8 +47,6 @@ ENTRY (BP_SYM (STRCPY))
+ 	cfi_rel_offset (edi, 8)
+ 	movl	SRC(%esp), %esi
+ 	cfi_rel_offset (esi, 4)
+-	CHECK_BOUNDS_LOW (%edi, DEST(%esp))
+-	CHECK_BOUNDS_LOW (%esi, SRC(%esp))
+ 
+ 	xorl	%eax, %eax
+ 	leal	-1(%esi), %ecx
+@@ -158,7 +155,6 @@ L(end2):
+ #else
+ 	movl	DEST(%esp), %eax
+ #endif
+-	RETURN_BOUNDED_POINTER (DEST(%esp))
+ 	popl	%ebx
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (ebx)
+@@ -169,7 +165,6 @@ L(end2):
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	RET_PTR
+ END (BP_SYM (STRCPY))
+ #ifndef USE_AS_STPCPY
+diff --git a/sysdeps/i386/i586/strlen.S b/sysdeps/i386/i586/strlen.S
+index 29d81d6b8de51b87..323cb950790174e6 100644
+--- a/sysdeps/i386/i586/strlen.S
++++ b/sysdeps/i386/i586/strlen.S
+@@ -41,10 +41,8 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (strlen))
+-	ENTER
+ 
+ 	movl STR(%esp), %eax
+-	CHECK_BOUNDS_LOW (%eax, STR(%esp))
+ 	movl $3, %edx		/* load mask (= 3) */
+ 
+ 	andl %eax, %edx		/* separate last two bits of address */
+@@ -178,11 +176,9 @@ L(3):	subl $4, %eax		/* correct too early pointer increment */
+ 
+ 	incl %eax		/* increment pointer */
+ 
+-L(2):	CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
+-	subl STR(%esp), %eax	/* now compute the length as difference
++L(2):	subl STR(%esp), %eax	/* now compute the length as difference
+ 				   between start and terminating NUL
+ 				   character */
+-	LEAVE
+ 	ret
+ END (BP_SYM (strlen))
+ libc_hidden_builtin_def (strlen)
+diff --git a/sysdeps/i386/i586/sub_n.S b/sysdeps/i386/i586/sub_n.S
+index 6ac1447be31f84f0..07bddca9a8ce7fe8 100644
+--- a/sysdeps/i386/i586/sub_n.S
++++ b/sysdeps/i386/i586/sub_n.S
+@@ -30,7 +30,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__mpn_sub_n))
+-	ENTER
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -48,13 +47,6 @@ ENTRY (BP_SYM (__mpn_sub_n))
+ 	movl	S2(%esp),%ebx
+ 	cfi_rel_offset (ebx, 0)
+ 	movl	SIZE(%esp),%ecx
+-#if __BOUNDED_POINTERS__
+-	shll	$2, %ecx	/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (%edi, RES(%esp), %ecx)
+-	CHECK_BOUNDS_BOTH_WIDE (%esi, S1(%esp), %ecx)
+-	CHECK_BOUNDS_BOTH_WIDE (%ebx, S2(%esp), %ecx)
+-	shrl	$2, %ecx
+-#endif
+ 	movl	(%ebx),%ebp
+ 	cfi_rel_offset (ebp, 4)
+ 
+@@ -149,6 +141,5 @@ L(end2):
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	ret
+ END (BP_SYM (__mpn_sub_n))
+diff --git a/sysdeps/i386/i586/submul_1.S b/sysdeps/i386/i586/submul_1.S
+index b08902562fbc8807..a028d7089798ceb7 100644
+--- a/sysdeps/i386/i586/submul_1.S
++++ b/sysdeps/i386/i586/submul_1.S
+@@ -35,7 +35,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__mpn_submul_1))
+-	ENTER
+ 
+ 	pushl	%res_ptr
+ 	cfi_adjust_cfa_offset (4)
+@@ -53,12 +52,6 @@ ENTRY (BP_SYM (__mpn_submul_1))
+ 	movl	SIZE(%esp), %size
+ 	movl	S2LIMB(%esp), %s2_limb
+ 	cfi_rel_offset (s2_limb, 0)
+-#if __BOUNDED_POINTERS__
+-	shll	$2, %sizeP	/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %sizeP)
+-	CHECK_BOUNDS_BOTH_WIDE (%s1_ptr, S1(%esp), %sizeP)
+-	shrl	$2, %sizeP
+-#endif
+ 	leal	(%res_ptr,%size,4), %res_ptr
+ 	leal	(%s1_ptr,%size,4), %s1_ptr
+ 	negl	%size
+@@ -98,7 +91,6 @@ L(oop):	adcl	$0, %ebp
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (res_ptr)
+ 
+-	LEAVE
+ 	ret
+ #undef size
+ END (BP_SYM (__mpn_submul_1))
+diff --git a/sysdeps/i386/i686/add_n.S b/sysdeps/i386/i686/add_n.S
+index ff4c66db354d6100..f645a21c1cad52ab 100644
+--- a/sysdeps/i386/i686/add_n.S
++++ b/sysdeps/i386/i686/add_n.S
+@@ -34,7 +34,6 @@ L(1):	addl    (%esp), %eax
+ 	ret
+ #endif
+ ENTRY (BP_SYM (__mpn_add_n))
+-	ENTER
+ 
+ 	pushl %edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -47,13 +46,6 @@ ENTRY (BP_SYM (__mpn_add_n))
+ 	cfi_rel_offset (esi, 0)
+ 	movl	S2(%esp),%edx
+ 	movl	SIZE(%esp),%ecx
+-#if __BOUNDED_POINTERS__
+-	shll	$2, %ecx	/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (%edi, RES(%esp), %ecx)
+-	CHECK_BOUNDS_BOTH_WIDE (%esi, S1(%esp), %ecx)
+-	CHECK_BOUNDS_BOTH_WIDE (%edx, S2(%esp), %ecx)
+-	shrl	$2, %ecx
+-#endif
+ 	movl	%ecx,%eax
+ 	shrl	$3,%ecx			/* compute count for unrolled loop */
+ 	negl	%eax
+@@ -116,6 +108,5 @@ L(oop):	movl	(%esi),%eax
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	ret
+ END (BP_SYM (__mpn_add_n))
+diff --git a/sysdeps/i386/i686/memcmp.S b/sysdeps/i386/i686/memcmp.S
+index 9eab978983695f20..f45a22400242cb02 100644
+--- a/sysdeps/i386/i686/memcmp.S
++++ b/sysdeps/i386/i686/memcmp.S
+@@ -26,9 +26,9 @@
+ #define BLK2		BLK1+PTR_SIZE
+ #define LEN		BLK2+PTR_SIZE
+ #define ENTRANCE	pushl %ebx; cfi_adjust_cfa_offset (4); \
+-			cfi_rel_offset (ebx, 0); ENTER
++			cfi_rel_offset (ebx, 0)
+ #define RETURN		popl %ebx; cfi_adjust_cfa_offset (-4); \
+-			cfi_restore (ebx); LEAVE; ret
++			cfi_restore (ebx); ret
+ 
+ /* Load an entry in a jump table into EBX.  TABLE is a jump table
+    with relative offsets.  INDEX is a register contains the index
+diff --git a/sysdeps/i386/i686/memcpy.S b/sysdeps/i386/i686/memcpy.S
+index a720b02c3b2d5ed8..68f7e40031b1b4db 100644
+--- a/sysdeps/i386/i686/memcpy.S
++++ b/sysdeps/i386/i686/memcpy.S
+@@ -38,7 +38,6 @@ ENTRY_CHK (__memcpy_chk)
+ END_CHK (__memcpy_chk)
+ #endif
+ ENTRY (BP_SYM (memcpy))
+-	ENTER
+ 
+ 	movl	%edi, %eax
+ 	movl	DEST(%esp), %edi
+@@ -81,9 +80,7 @@ ENTRY (BP_SYM (memcpy))
+ .Lend:	movl	%eax, %edi
+ 	movl	%edx, %esi
+ 	movl	DEST(%esp), %eax
+-	RETURN_BOUNDED_POINTER (DEST(%esp))
+ 
+-	LEAVE
+ 	RET_PTR
+ 
+ 	/* When we come here the pointers do not have the same
+diff --git a/sysdeps/i386/i686/memmove.S b/sysdeps/i386/i686/memmove.S
+index 2de2a193eab59da7..683f45fc44fc4f4f 100644
+--- a/sysdeps/i386/i686/memmove.S
++++ b/sysdeps/i386/i686/memmove.S
+@@ -47,7 +47,6 @@ END_CHK (__memmove_chk)
+ #endif
+ 
+ ENTRY (BP_SYM (memmove))
+-	ENTER
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -58,8 +57,6 @@ ENTRY (BP_SYM (memmove))
+ 	movl	%esi, %edx
+ 	movl	SRC(%esp), %esi
+ 	cfi_register (esi, edx)
+-	CHECK_BOUNDS_BOTH_WIDE (%edi, DEST(%esp), %ecx)
+-	CHECK_BOUNDS_BOTH_WIDE (%esi, SRC(%esp), %ecx)
+ 
+ 	movl	%edi, %eax
+ 	subl	%esi, %eax
+@@ -79,14 +76,12 @@ ENTRY (BP_SYM (memmove))
+ 	cfi_restore (esi)
+ #ifndef USE_AS_BCOPY
+ 	movl	DEST(%esp), %eax
+-	RETURN_BOUNDED_POINTER (DEST(%esp))
+ #endif
+ 
+ 	popl	%edi
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	RET_PTR
+ 
+ 	cfi_adjust_cfa_offset (4)
+@@ -113,7 +108,6 @@ ENTRY (BP_SYM (memmove))
+ 	cfi_restore (esi)
+ #ifndef USE_AS_BCOPY
+ 	movl	DEST(%esp), %eax
+-	RETURN_BOUNDED_POINTER (DEST(%esp))
+ #endif
+ 
+ 	cld
+@@ -121,7 +115,6 @@ ENTRY (BP_SYM (memmove))
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	RET_PTR
+ END (BP_SYM (memmove))
+ #ifndef USE_AS_BCOPY
+diff --git a/sysdeps/i386/i686/mempcpy.S b/sysdeps/i386/i686/mempcpy.S
+index 402c415e06b3c80f..facff870e3f8f9de 100644
+--- a/sysdeps/i386/i686/mempcpy.S
++++ b/sysdeps/i386/i686/mempcpy.S
+@@ -38,17 +38,14 @@ ENTRY_CHK (__mempcpy_chk)
+ END_CHK (__mempcpy_chk)
+ #endif
+ ENTRY (BP_SYM (__mempcpy))
+-	ENTER
+ 
+ 	movl	LEN(%esp), %ecx
+ 	movl	%edi, %eax
+ 	cfi_register (edi, eax)
+ 	movl	DEST(%esp), %edi
+-	CHECK_BOUNDS_BOTH_WIDE (%edi, DEST(%esp), %ecx)
+ 	movl	%esi, %edx
+ 	cfi_register (esi, edx)
+ 	movl	SRC(%esp), %esi
+-	CHECK_BOUNDS_BOTH_WIDE (%esi, SRC(%esp), %ecx)
+ 	cld
+ 	shrl	$1, %ecx
+ 	jnc	1f
+@@ -62,9 +59,7 @@ ENTRY (BP_SYM (__mempcpy))
+ 	cfi_restore (edi)
+ 	movl	%edx, %esi
+ 	cfi_restore (esi)
+-	RETURN_BOUNDED_POINTER (DEST(%esp))
+ 
+-	LEAVE
+ 	RET_PTR
+ END (BP_SYM (__mempcpy))
+ libc_hidden_def (BP_SYM (__mempcpy))
+diff --git a/sysdeps/i386/i686/memset.S b/sysdeps/i386/i686/memset.S
+index 429c5386ec0a395b..7db25497117b6258 100644
+--- a/sysdeps/i386/i686/memset.S
++++ b/sysdeps/i386/i686/memset.S
+@@ -46,14 +46,12 @@ ENTRY_CHK (__memset_chk)
+ END_CHK (__memset_chk)
+ #endif
+ ENTRY (BP_SYM (memset))
+-	ENTER
+ 
+ 	cld
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+ 	movl	DEST(%esp), %edx
+ 	movl	LEN(%esp), %ecx
+-	CHECK_BOUNDS_BOTH_WIDE (%edx, DEST(%esp), %ecx)
+ #if BZERO_P
+ 	xorl	%eax, %eax	/* fill with 0 */
+ #else
+@@ -90,13 +88,11 @@ ENTRY (BP_SYM (memset))
+ 1:
+ #if !BZERO_P
+ 	movl DEST(%esp), %eax	/* start address of destination is result */
+-	RETURN_BOUNDED_POINTER (DEST(%esp))
+ #endif
+ 	popl	%edi
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ #if BZERO_P
+ 	ret
+ #else
+diff --git a/sysdeps/i386/i686/strcmp.S b/sysdeps/i386/i686/strcmp.S
+index 3dcc289bfc172db5..0423aac297358c77 100644
+--- a/sysdeps/i386/i686/strcmp.S
++++ b/sysdeps/i386/i686/strcmp.S
+@@ -28,12 +28,9 @@
+ 
+         .text
+ ENTRY (BP_SYM (strcmp))
+-	ENTER
+ 
+ 	movl	STR1(%esp), %ecx
+ 	movl	STR2(%esp), %edx
+-	CHECK_BOUNDS_LOW (%ecx, STR1(%esp))
+-	CHECK_BOUNDS_LOW (%edx, STR2(%esp))
+ 
+ L(oop):	movb	(%ecx), %al
+ 	cmpb	(%edx), %al
+@@ -46,26 +43,12 @@ L(oop):	movb	(%ecx), %al
+ 	xorl	%eax, %eax
+ 	/* when strings are equal, pointers rest one beyond
+ 	   the end of the NUL terminators.  */
+-	CHECK_BOUNDS_HIGH (%ecx, STR1(%esp), jbe)
+-	CHECK_BOUNDS_HIGH (%edx, STR2(%esp), jbe)
+-	LEAVE
+ 	ret
+ 
+-#ifndef __BOUNDED_POINTERS__
+ L(neq):	movl	$1, %eax
+ 	movl	$-1, %ecx
+ 	cmovbl	%ecx, %eax
+-#else
+-L(neq):	movl	$1, %eax
+-	ja	L(chk)
+-	negl	%eax
+-	/* When strings differ, pointers rest on
+-	   the unequal characters.  */
+-L(chk):	CHECK_BOUNDS_HIGH (%ecx, STR1(%esp), jb)
+-	CHECK_BOUNDS_HIGH (%edx, STR2(%esp), jb)
+-#endif
+ 
+-	LEAVE
+ 	ret
+ END (BP_SYM (strcmp))
+ libc_hidden_builtin_def (strcmp)
+diff --git a/sysdeps/i386/i686/strtok.S b/sysdeps/i386/i686/strtok.S
+index 5589ae5360918944..372352e32a84f81d 100644
+--- a/sysdeps/i386/i686/strtok.S
++++ b/sysdeps/i386/i686/strtok.S
+@@ -46,11 +46,7 @@
+ 	.type save_ptr, @object
+ 	.size save_ptr, 4
+ save_ptr:
+-# if __BOUNDED_POINTERS__
+-	.space 12
+-# else
+ 	.space 4
+-# endif
+ 
+ # ifdef PIC
+ #  define SAVE_PTR save_ptr@GOTOFF(%ebx)
+@@ -81,7 +77,6 @@ save_ptr:
+ #endif
+ 
+ ENTRY (BP_SYM (FUNCTION))
+-	ENTER
+ 
+ #if !defined USE_AS_STRTOK_R && defined PIC
+ 	pushl %ebx			/* Save PIC register.  */
+@@ -127,23 +122,7 @@ ENTRY (BP_SYM (FUNCTION))
+ 	cmove %eax, %edx
+ 	testl %edx, %edx
+ 	jz L(returnNULL)
+-#if __BOUNDED_POINTERS__
+-# ifdef USE_AS_STRTOK_R
+-	movl SAVE(%esp), %ecx	/* borrow %ecx for a moment */
+-# endif
+-	je L(0)
+-	/* Save bounds of incoming non-NULL STR into save area.  */
+-	movl 4+STR(%esp), %eax
+-	movl %eax, 4+SAVE_PTR
+-	movl 8+STR(%esp), %eax
+-	movl %eax, 8+SAVE_PTR
+-L(0):	CHECK_BOUNDS_LOW (%edx, SAVE_PTR)
+-# ifdef USE_AS_STRTOK_R
+-	xorl %ecx, %ecx		/* restore %ecx to zero */
+-# endif
+-#endif
+ 	movl DELIM(%esp), %eax		/* Get start of delimiter set.  */
+-	CHECK_BOUNDS_LOW (%eax, DELIM(%esp))
+ 
+ /* For understanding the following code remember that %ecx == 0 now.
+    Although all the following instruction only modify %cl we always
+@@ -151,17 +130,17 @@ L(0):	CHECK_BOUNDS_LOW (%edx, SAVE_PTR)
+ 
+ L(2):	movb (%eax), %cl	/* get byte from stopset */
+ 	testb %cl, %cl		/* is NUL char? */
+-	jz L(1_1)		/* yes => start compare loop */
++	jz L(1)			/* yes => start compare loop */
+ 	movb %cl, (%esp,%ecx)	/* set corresponding byte in stopset table */
+ 
+ 	movb 1(%eax), %cl	/* get byte from stopset */
+ 	testb $0xff, %cl	/* is NUL char? */
+-	jz L(1_2)		/* yes => start compare loop */
++	jz L(1)			/* yes => start compare loop */
+ 	movb %cl, (%esp,%ecx)	/* set corresponding byte in stopset table */
+ 
+ 	movb 2(%eax), %cl	/* get byte from stopset */
+ 	testb $0xff, %cl	/* is NUL char? */
+-	jz L(1_3)		/* yes => start compare loop */
++	jz L(1)			/* yes => start compare loop */
+ 	movb %cl, (%esp,%ecx)	/* set corresponding byte in stopset table */
+ 
+ 	movb 3(%eax), %cl	/* get byte from stopset */
+@@ -170,16 +149,7 @@ L(2):	movb (%eax), %cl	/* get byte from stopset */
+ 	testb $0xff, %cl	/* is NUL char? */
+ 	jnz L(2)		/* no => process next dword from stopset */
+ 
+-#if __BOUNDED_POINTERS__
+-	jmp L(1_0)		/* pointer is correct for bounds check */
+-L(1_3):	incl %eax		/* adjust pointer for bounds check */
+-L(1_2):	incl %eax		/* ditto */
+-L(1_1):	incl %eax		/* ditto */
+-L(1_0):	CHECK_BOUNDS_HIGH (%eax, DELIM(%esp), jbe)
+-#else
+-L(1_3):; L(1_2):; L(1_1):	/* fall through */
+-#endif
+-	leal -4(%edx), %eax	/* prepare loop */
++L(1):	leal -4(%edx), %eax	/* prepare loop */
+ 
+ 	/* We use a neat trick for the following loop.  Normally we would
+ 	   have to test for two termination conditions
+@@ -253,8 +223,6 @@ L(8):	cmpl %eax, %edx
+ 	movl SAVE(%esp), %ecx
+ #endif
+ 	movl %edx, SAVE_PTR
+-	CHECK_BOUNDS_HIGH (%edx, SAVE_PTR, jb)
+-	RETURN_BOUNDED_POINTER (SAVE_PTR)
+ 
+ L(epilogue):
+ 	/* Remove the stopset table.  */
+@@ -265,7 +233,6 @@ L(epilogue):
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (ebx)
+ #endif
+-	LEAVE
+ 	RET_PTR
+ 
+ L(returnNULL):
+@@ -274,7 +241,6 @@ L(returnNULL):
+ 	movl SAVE(%esp), %ecx
+ #endif
+ 	movl %edx, SAVE_PTR
+-	RETURN_NULL_BOUNDED_POINTER
+ 	jmp L(epilogue)
+ 
+ END (BP_SYM (FUNCTION))
+diff --git a/sysdeps/i386/lshift.S b/sysdeps/i386/lshift.S
+index eb2e6ffd3b92ba97..b40d4ddd3a0e7fd7 100644
+--- a/sysdeps/i386/lshift.S
++++ b/sysdeps/i386/lshift.S
+@@ -29,7 +29,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__mpn_lshift))
+-	ENTER
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -44,12 +43,6 @@ ENTRY (BP_SYM (__mpn_lshift))
+ 	cfi_rel_offset (esi, 4)
+ 	movl	SIZE(%esp),%edx
+ 	movl	CNT(%esp),%ecx
+-#if __BOUNDED_POINTERS__
+-	shll	$2, %edx		/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (%edi, RES(%esp), %edx)
+-	CHECK_BOUNDS_BOTH_WIDE (%esi, S(%esp), %edx)
+-	shrl	$2, %edx
+-#endif
+ 	subl	$4,%esi			/* adjust s_ptr */
+ 
+ 	movl	(%esi,%edx,4),%ebx	/* read most significant limb */
+@@ -92,7 +85,6 @@ L(1):	movl	(%esi,%edx,4),%eax
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	ret
+ 
+ 	cfi_restore_state
+@@ -109,6 +101,5 @@ L(end):	shll	%cl,%ebx		/* compute least significant limb */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	ret
+ END (BP_SYM (__mpn_lshift))
+diff --git a/sysdeps/i386/memchr.S b/sysdeps/i386/memchr.S
+index a3427c17dafd0cbf..88651e527650b26b 100644
+--- a/sysdeps/i386/memchr.S
++++ b/sysdeps/i386/memchr.S
+@@ -39,7 +39,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__memchr))
+-	ENTER
+ 
+ 	/* Save callee-safe registers used in this function.  */
+ 	pushl %esi
+@@ -53,7 +52,6 @@ ENTRY (BP_SYM (__memchr))
+ 	movl CHR(%esp), %edx	/* c: byte we are looking for.  */
+ 	movl LEN(%esp), %esi	/* len: length of memory block.  */
+ 	cfi_rel_offset (esi, 4)
+-	CHECK_BOUNDS_LOW (%eax, STR(%esp))
+ 
+ 	/* If my must not test more than three characters test
+ 	   them one by one.  This is especially true for 0.  */
+@@ -312,23 +310,13 @@ L(8):	testb %cl, %cl		/* test first byte in dword */
+ 	incl %eax		/* increment source pointer */
+ 
+ 	/* No further test needed we we know it is one of the four bytes.  */
+-L(9):
+-#if __BOUNDED_POINTERS__
+-	CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
+-	/* If RTN pointer is phony, don't copy return value into it.  */
+-	movl RTN(%esp), %ecx
+-	testl %ecx, %ecx
+-	jz L(pop)
+-	RETURN_BOUNDED_POINTER (STR(%esp))
+-#endif
+-L(pop):	popl %edi		/* pop saved registers */
++L(9):	popl %edi		/* pop saved registers */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 	popl %esi
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (esi)
+ 
+-	LEAVE
+ 	RET_PTR
+ END (BP_SYM (__memchr))
+ 
+diff --git a/sysdeps/i386/memcmp.S b/sysdeps/i386/memcmp.S
+index e21e4916e6151c28..1d5535a29dd12b33 100644
+--- a/sysdeps/i386/memcmp.S
++++ b/sysdeps/i386/memcmp.S
+@@ -28,7 +28,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (memcmp))
+-	ENTER
+ 
+ 	pushl %esi		/* Save callee-safe registers.  */
+ 	cfi_adjust_cfa_offset (4)
+@@ -40,8 +39,6 @@ ENTRY (BP_SYM (memcmp))
+ 	cfi_rel_offset (esi, 0)
+ 	movl BLK2(%esp), %edi
+ 	movl LEN(%esp), %ecx
+-	CHECK_BOUNDS_LOW (%esi, BLK1(%esp))
+-	CHECK_BOUNDS_LOW (%edi, BLK2(%esp))
+ 
+ 	cld			/* Set direction of comparison.  */
+ 
+@@ -64,15 +61,12 @@ ENTRY (BP_SYM (memcmp))
+ 	   Note that the following operation does not change 0xffffffff.  */
+ 	orb $1, %al		/* Change 0 to 1.  */
+ 
+-L(1):	CHECK_BOUNDS_HIGH (%esi, BLK1(%esp), jbe)
+-	CHECK_BOUNDS_HIGH (%edi, BLK2(%esp), jbe)
+-	popl %esi		/* Restore registers.  */
++L(1):	popl %esi		/* Restore registers.  */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (esi)
+ 	movl %edx, %edi
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	ret
+ END (BP_SYM (memcmp))
+ 
+diff --git a/sysdeps/i386/mul_1.S b/sysdeps/i386/mul_1.S
+index c599a96eade313e4..71f8dceb188057d9 100644
+--- a/sysdeps/i386/mul_1.S
++++ b/sysdeps/i386/mul_1.S
+@@ -35,7 +35,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__mpn_mul_1))
+-	ENTER
+ 
+ 	pushl	%res_ptr
+ 	cfi_adjust_cfa_offset (4)
+@@ -53,12 +52,6 @@ ENTRY (BP_SYM (__mpn_mul_1))
+ 	movl	SIZE(%esp), %size
+ 	movl	S2LIMB(%esp), %s2_limb
+ 	cfi_rel_offset (s2_limb, 0)
+-#if __BOUNDED_POINTERS__
+-	shll	$2, %size	/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %size)
+-	CHECK_BOUNDS_BOTH_WIDE (%s1_ptr, S1(%esp), %size)
+-	shrl	$2, %size
+-#endif
+ 	leal	(%res_ptr,%size,4), %res_ptr
+ 	leal	(%s1_ptr,%size,4), %s1_ptr
+ 	negl	%size
+@@ -90,7 +83,6 @@ L(oop):
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (res_ptr)
+ 
+-	LEAVE
+ 	ret
+ #undef size
+ END (BP_SYM (__mpn_mul_1))
+diff --git a/sysdeps/i386/rawmemchr.S b/sysdeps/i386/rawmemchr.S
+index 7479e3bd75b9d4a0..3ce497485e439c02 100644
+--- a/sysdeps/i386/rawmemchr.S
++++ b/sysdeps/i386/rawmemchr.S
+@@ -38,7 +38,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__rawmemchr))
+-	ENTER
+ 
+ 	/* Save callee-safe register used in this function.  */
+ 	pushl %edi
+@@ -48,7 +47,6 @@ ENTRY (BP_SYM (__rawmemchr))
+ 	/* Load parameters into registers.  */
+ 	movl STR(%esp), %eax
+ 	movl CHR(%esp), %edx
+-	CHECK_BOUNDS_LOW (%eax, STR(%esp))
+ 
+ 	/* At the moment %edx contains C.  What we need for the
+ 	   algorithm is C in all bytes of the dword.  Avoid
+@@ -215,13 +213,10 @@ L(8):	testb %cl, %cl		/* test first byte in dword */
+ 	/* No further test needed we we know it is one of the four bytes.  */
+ 
+ L(9):
+-	CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
+-	RETURN_BOUNDED_POINTER (STR(%esp))
+ 	popl %edi		/* pop saved register */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	RET_PTR
+ END (BP_SYM (__rawmemchr))
+ 
+diff --git a/sysdeps/i386/rshift.S b/sysdeps/i386/rshift.S
+index c9ec570979f5b555..48f7c4f89dc408d3 100644
+--- a/sysdeps/i386/rshift.S
++++ b/sysdeps/i386/rshift.S
+@@ -29,7 +29,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__mpn_rshift))
+-	ENTER
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -44,12 +43,6 @@ ENTRY (BP_SYM (__mpn_rshift))
+ 	cfi_rel_offset (esi, 4)
+ 	movl	SIZE(%esp),%edx
+ 	movl	CNT(%esp),%ecx
+-#if __BOUNDED_POINTERS__
+-	shll	$2, %edx		/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (%edi, RES(%esp), %edx)
+-	CHECK_BOUNDS_BOTH_WIDE (%esi, S(%esp), %edx)
+-	shrl	$2, %edx
+-#endif
+ 	leal	-4(%edi,%edx,4),%edi
+ 	leal	(%esi,%edx,4),%esi
+ 	negl	%edx
+@@ -94,7 +87,6 @@ L(1):	movl	(%esi,%edx,4),%eax
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	ret
+ 
+ 	cfi_restore_state
+@@ -111,6 +103,5 @@ L(end):	shrl	%cl,%ebx		/* compute most significant limb */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	ret
+ END (BP_SYM (__mpn_rshift))
+diff --git a/sysdeps/i386/setjmp.S b/sysdeps/i386/setjmp.S
+index 518f3c30c01893b5..8e7a4df25bd2ff8d 100644
+--- a/sysdeps/i386/setjmp.S
++++ b/sysdeps/i386/setjmp.S
+@@ -28,10 +28,8 @@
+ #define SIGMSK	JMPBUF+PTR_SIZE
+ 
+ ENTRY (BP_SYM (__sigsetjmp))
+-	ENTER
+ 
+ 	movl JMPBUF(%esp), %eax
+-	CHECK_BOUNDS_BOTH_WIDE (%eax, JMPBUF(%esp), $JB_SIZE)
+ 
+      	/* Save registers.  */
+ 	movl %ebx, (JB_BX*4)(%eax)
+@@ -48,7 +46,6 @@ ENTRY (BP_SYM (__sigsetjmp))
+ 	PTR_MANGLE (%ecx)
+ #endif
+      	movl %ecx, (JB_PC*4)(%eax)
+-	LEAVE /* pop frame pointer to prepare for tail-call.  */
+ 	movl %ebp, (JB_BP*4)(%eax) /* Save caller's frame pointer.  */
+ 
+ #if IS_IN (rtld)
+diff --git a/sysdeps/i386/stpcpy.S b/sysdeps/i386/stpcpy.S
+index 472c315ce7a1ad00..3a01be3174ef0863 100644
+--- a/sysdeps/i386/stpcpy.S
++++ b/sysdeps/i386/stpcpy.S
+@@ -34,12 +34,9 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__stpcpy))
+-	ENTER
+ 
+ 	movl DEST(%esp), %eax
+ 	movl SRC(%esp), %ecx
+-	CHECK_BOUNDS_LOW (%eax, DEST(%esp))
+-	CHECK_BOUNDS_LOW (%ecx, SRC(%esp))
+ 	subl %eax, %ecx		/* magic: reduce number of loop variants
+ 				   to one using addressing mode */
+ 
+@@ -85,10 +82,7 @@ L(1):	addl $4, %eax		/* increment loop counter */
+ L(4):	incl %eax
+ L(3):	incl %eax
+ L(2):
+-	CHECK_BOUNDS_HIGH (%eax, DEST(%esp), jb)
+-	RETURN_BOUNDED_POINTER (DEST(%esp))
+ 
+-	LEAVE
+ 	RET_PTR
+ END (BP_SYM (__stpcpy))
+ 
+diff --git a/sysdeps/i386/stpncpy.S b/sysdeps/i386/stpncpy.S
+index d74a42f188d8d849..7f3ca8c3b775b42f 100644
+--- a/sysdeps/i386/stpncpy.S
++++ b/sysdeps/i386/stpncpy.S
+@@ -36,7 +36,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__stpncpy))
+-	ENTER
+ 
+ 	pushl %esi
+ 	cfi_adjust_cfa_offset (4)
+@@ -45,8 +44,6 @@ ENTRY (BP_SYM (__stpncpy))
+ 	movl SRC(%esp), %esi
+ 	cfi_rel_offset (esi, 0)
+ 	movl LEN(%esp), %ecx
+-	CHECK_BOUNDS_LOW (%eax, DEST(%esp))
+-	CHECK_BOUNDS_LOW (%esi, SRC(%esp))
+ 
+ 	subl %eax, %esi		/* magic: reduce number of loop variants
+ 				   to one using addressing mode */
+@@ -141,18 +138,10 @@ L(8):
+ L(3):	decl %ecx		/* all bytes written? */
+ 	jnz L(8)		/* no, then again */
+ 
+-L(9):
+-#if __BOUNDED_POINTERS__
+-	addl %eax, %esi		/* undo magic: %esi now points beyond end of SRC */
+-	CHECK_BOUNDS_HIGH (%esi, SRC(%esp), jbe)
+-	CHECK_BOUNDS_HIGH (%eax, DEST(%esp), jbe)
+-	RETURN_BOUNDED_POINTER (DEST(%esp))
+-#endif
+-	popl %esi		/* restore saved register content */
++L(9):	popl %esi		/* restore saved register content */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (esi)
+ 
+-	LEAVE
+ 	RET_PTR
+ END (BP_SYM (__stpncpy))
+ 
+diff --git a/sysdeps/i386/strchr.S b/sysdeps/i386/strchr.S
+index 80a7bd825df55e87..aff95b9b7ee4c35c 100644
+--- a/sysdeps/i386/strchr.S
++++ b/sysdeps/i386/strchr.S
+@@ -32,14 +32,12 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (strchr))
+-	ENTER
+ 
+ 	pushl %edi		/* Save callee-safe registers used here.  */
+ 	cfi_adjust_cfa_offset (4)
+ 	cfi_rel_offset (edi, 0)
+ 	movl STR(%esp), %eax
+ 	movl CHR(%esp), %edx
+-	CHECK_BOUNDS_LOW (%eax, STR(%esp))
+ 
+ 	/* At the moment %edx contains C.  What we need for the
+ 	   algorithm is C in all bytes of the dword.  Avoid
+@@ -244,12 +242,10 @@ L(11):	movl (%eax), %ecx	/* get word (= 4 bytes) in question */
+ 
+ L(2):	/* Return NULL.  */
+ 	xorl %eax, %eax
+-	RETURN_NULL_BOUNDED_POINTER
+ 	popl %edi		/* restore saved register content */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	RET_PTR
+ 
+ 	cfi_adjust_cfa_offset (4)
+@@ -286,13 +282,10 @@ L(7):	testb %cl, %cl		/* is first byte C? */
+ 	incl %eax
+ 
+ L(6):
+-	CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
+-	RETURN_BOUNDED_POINTER (STR(%esp))
+ 	popl %edi		/* restore saved register content */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	RET_PTR
+ END (BP_SYM (strchr))
+ 
+diff --git a/sysdeps/i386/strchrnul.S b/sysdeps/i386/strchrnul.S
+index 65b950008f970a12..2aa7d82cc8af1dfc 100644
+--- a/sysdeps/i386/strchrnul.S
++++ b/sysdeps/i386/strchrnul.S
+@@ -32,7 +32,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__strchrnul))
+-	ENTER
+ 
+ 	pushl %edi		/* Save callee-safe registers used here.  */
+ 	cfi_adjust_cfa_offset (4)
+@@ -40,7 +39,6 @@ ENTRY (BP_SYM (__strchrnul))
+ 
+ 	movl STR(%esp), %eax
+ 	movl CHR(%esp), %edx
+-	CHECK_BOUNDS_LOW (%eax, STR(%esp))
+ 
+ 	/* At the moment %edx contains CHR.  What we need for the
+ 	   algorithm is CHR in all bytes of the dword.  Avoid
+@@ -272,13 +270,10 @@ L(7):	testb %cl, %cl		/* is first byte CHR? */
+ 	/* It must be in the fourth byte and it cannot be NUL.  */
+ 	incl %eax
+ 
+-L(6):	CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
+-	RETURN_BOUNDED_POINTER (STR(%esp))
+-	popl %edi		/* restore saved register content */
++L(6):	popl %edi		/* restore saved register content */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	RET_PTR
+ END (BP_SYM (__strchrnul))
+ 
+diff --git a/sysdeps/i386/strcspn.S b/sysdeps/i386/strcspn.S
+index 1934daffb0ec41d1..40b5207809f74530 100644
+--- a/sysdeps/i386/strcspn.S
++++ b/sysdeps/i386/strcspn.S
+@@ -31,11 +31,9 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (strcspn))
+-	ENTER
+ 
+ 	movl STR(%esp), %edx
+ 	movl STOP(%esp), %eax
+-	CHECK_BOUNDS_LOW (%edx, STR(%esp))
+ 
+ 	/* First we create a table with flags for all possible characters.
+ 	   For the ASCII (7bit/8bit) or ISO-8859-X character sets which are
+@@ -236,11 +234,9 @@ L(5):	incl %eax
+ 
+ L(4):	addl $256, %esp		/* remove stopset */
+ 	cfi_adjust_cfa_offset (-256)
+-	CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
+ 	subl %edx, %eax		/* we have to return the number of valid
+ 				   characters, so compute distance to first
+ 				   non-valid character */
+-	LEAVE
+ 	ret
+ END (BP_SYM (strcspn))
+ libc_hidden_builtin_def (strcspn)
+diff --git a/sysdeps/i386/strpbrk.S b/sysdeps/i386/strpbrk.S
+index 9696b9acd50b4885..ae35ba44f6a624a7 100644
+--- a/sysdeps/i386/strpbrk.S
++++ b/sysdeps/i386/strpbrk.S
+@@ -32,11 +32,9 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (strpbrk))
+-	ENTER
+ 
+ 	movl STR(%esp), %edx
+ 	movl STOP(%esp), %eax
+-	CHECK_BOUNDS_LOW (%edx, STR(%esp))
+ 
+ 	/* First we create a table with flags for all possible characters.
+ 	   For the ASCII (7bit/8bit) or ISO-8859-X character sets which are
+@@ -238,18 +236,10 @@ L(5):	incl %eax
+ L(4):	addl $256, %esp		/* remove stopset */
+ 	cfi_adjust_cfa_offset (-256)
+ 
+-	CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
+ 	orb %cl, %cl		/* was last character NUL? */
+ 	jnz L(7)		/* no => return pointer */
+ 	xorl %eax, %eax
+-	RETURN_NULL_BOUNDED_POINTER
+ 
+-	LEAVE
+-	RET_PTR
+-
+-L(7):	RETURN_BOUNDED_POINTER (STR(%esp))
+-
+-	LEAVE
+-	RET_PTR
++L(7):	RET_PTR
+ END (BP_SYM (strpbrk))
+ libc_hidden_builtin_def (strpbrk)
+diff --git a/sysdeps/i386/strrchr.S b/sysdeps/i386/strrchr.S
+index f3fe8b75540c58e1..57931c165831aa55 100644
+--- a/sysdeps/i386/strrchr.S
++++ b/sysdeps/i386/strrchr.S
+@@ -31,7 +31,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (strrchr))
+-	ENTER
+ 
+ 	pushl %edi		/* Save callee-safe registers used here.  */
+ 	cfi_adjust_cfa_offset (4)
+@@ -43,7 +42,6 @@ ENTRY (BP_SYM (strrchr))
+ 	movl STR(%esp), %esi
+ 	cfi_rel_offset (esi, 0)
+ 	movl CHR(%esp), %ecx
+-	CHECK_BOUNDS_LOW (%esi, STR(%esp))
+ 
+ 	/* At the moment %ecx contains C.  What we need for the
+ 	   algorithm is C in all bytes of the dword.  Avoid
+@@ -324,16 +322,13 @@ L(26):	testb %dl, %dl		/* is third byte == NUL */
+ 	jne L(2)		/* no => skip */
+ 	leal 3(%esi), %eax	/* store address as result */
+ 
+-L(2):	CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
+-	RETURN_BOUNDED_POINTER (STR(%esp))
+-	popl %esi		/* restore saved register content */
++L(2):	popl %esi		/* restore saved register content */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (esi)
+ 	popl %edi
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	RET_PTR
+ END (BP_SYM (strrchr))
+ 
+diff --git a/sysdeps/i386/strspn.S b/sysdeps/i386/strspn.S
+index 4193f376590fa48c..2b5c2a4c670bdfa2 100644
+--- a/sysdeps/i386/strspn.S
++++ b/sysdeps/i386/strspn.S
+@@ -31,11 +31,9 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (strspn))
+-	ENTER
+ 
+ 	movl STR(%esp), %edx
+ 	movl SKIP(%esp), %eax
+-	CHECK_BOUNDS_LOW (%edx, STR(%esp))
+ 
+ 	/* First we create a table with flags for all possible characters.
+ 	   For the ASCII (7bit/8bit) or ISO-8859-X character sets which are
+@@ -236,11 +234,9 @@ L(5):	incl %eax
+ 
+ L(4):	addl $256, %esp		/* remove stopset */
+ 	cfi_adjust_cfa_offset (-256)
+-	CHECK_BOUNDS_HIGH (%eax, STR(%esp), jb)
+ 	subl %edx, %eax		/* we have to return the number of valid
+ 				   characters, so compute distance to first
+ 				   non-valid character */
+-	LEAVE
+ 	ret
+ END (BP_SYM (strspn))
+ libc_hidden_builtin_def (strspn)
+diff --git a/sysdeps/i386/strtok.S b/sysdeps/i386/strtok.S
+index 3b222aff3dd7d237..eb586928eb19bf21 100644
+--- a/sysdeps/i386/strtok.S
++++ b/sysdeps/i386/strtok.S
+@@ -46,11 +46,7 @@
+ 	.type save_ptr, @object
+ 	.size save_ptr, 4
+ save_ptr:
+-# if __BOUNDED_POINTERS__
+-	.space 12
+-# else
+ 	.space 4
+-# endif
+ 
+ # ifdef PIC
+ #  define SAVE_PTR save_ptr@GOTOFF(%ebx)
+@@ -69,11 +65,9 @@ save_ptr:
+ 
+ 	.text
+ ENTRY (BP_SYM (FUNCTION))
+-	ENTER
+ 
+ 	movl STR(%esp), %edx
+ 	movl DELIM(%esp), %eax
+-	CHECK_BOUNDS_LOW (%eax, DELIM(%esp))
+ 
+ #if !defined USE_AS_STRTOK_R && defined PIC
+ 	pushl %ebx			/* Save PIC register.  */
+@@ -90,22 +84,7 @@ L(here):
+ 	/* If the pointer is NULL we have to use the stored value of
+ 	   the last run.  */
+ 	cmpl $0, %edx
+-#if __BOUNDED_POINTERS__
+-	movl SAVE(%esp), %ecx
+-	je L(0)
+-	/* Save bounds of incoming non-NULL STR into save area.  */
+-	movl 4+STR(%esp), %eax
+-	movl %eax, 4+SAVE_PTR
+-	movl 8+STR(%esp), %eax
+-	movl %eax, 8+SAVE_PTR
+-	CHECK_BOUNDS_LOW (%edx, SAVE_PTR)
+-	jmp L(1)
+-L(0):	movl SAVE_PTR, %edx
+-	CHECK_BOUNDS_LOW (%edx, SAVE_PTR)
+-	jmp L(1)
+-#else
+ 	jne L(1)
+-#endif
+ 
+ #ifdef USE_AS_STRTOK_R
+ 	/* The value is stored in the third argument.  */
+@@ -267,12 +246,12 @@ L(2):	movb (%eax), %cl	/* get byte from stopset */
+ 
+ 	movb 1(%eax), %cl	/* get byte from stopset */
+ 	testb $0xff, %cl	/* is NUL char? */
+-	jz L(1_2)		/* yes => start compare loop */
++	jz L(1_1)		/* yes => start compare loop */
+ 	movb %cl, (%esp,%ecx)	/* set corresponding byte in stopset table */
+ 
+ 	movb 2(%eax), %cl	/* get byte from stopset */
+ 	testb $0xff, %cl	/* is NUL char? */
+-	jz L(1_3)		/* yes => start compare loop */
++	jz L(1_1)		/* yes => start compare loop */
+ 	movb %cl, (%esp,%ecx)	/* set corresponding byte in stopset table */
+ 
+ 	movb 3(%eax), %cl	/* get byte from stopset */
+@@ -281,16 +260,7 @@ L(2):	movb (%eax), %cl	/* get byte from stopset */
+ 	testb $0xff, %cl	/* is NUL char? */
+ 	jnz L(2)		/* no => process next dword from stopset */
+ 
+-#if __BOUNDED_POINTERS__
+-	jmp L(1_0)		/* pointer is correct for bounds check */
+-L(1_3):	incl %eax		/* adjust pointer for bounds check */
+-L(1_2):	incl %eax		/* ditto */
+-L(1_1):	incl %eax		/* ditto */
+-L(1_0):	CHECK_BOUNDS_HIGH (%eax, DELIM(%esp), jbe)
+-#else
+-L(1_3):; L(1_2):; L(1_1):	/* fall through */
+-#endif
+-	leal -4(%edx), %eax	/* prepare loop */
++L(1_1):	leal -4(%edx), %eax	/* prepare loop */
+ 
+ 	/* We use a neat trick for the following loop.  Normally we would
+ 	   have to test for two termination conditions
+@@ -370,8 +340,6 @@ L(11):
+ 	movl SAVE(%esp), %ecx
+ #endif
+ 	movl %edx, SAVE_PTR
+-	CHECK_BOUNDS_HIGH (%edx, SAVE_PTR, jb)
+-	RETURN_BOUNDED_POINTER (SAVE_PTR)
+ 
+ L(epilogue):
+ #if !defined USE_AS_STRTOK_R && defined PIC
+@@ -379,7 +347,6 @@ L(epilogue):
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (ebx)
+ #endif
+-	LEAVE
+ 	RET_PTR
+ 
+ L(returnNULL):
+@@ -388,7 +355,6 @@ L(returnNULL):
+ 	movl SAVE(%esp), %ecx
+ #endif
+ 	movl %edx, SAVE_PTR
+-	RETURN_NULL_BOUNDED_POINTER
+ 	jmp L(epilogue)
+ 
+ END (BP_SYM (FUNCTION))
+diff --git a/sysdeps/i386/sub_n.S b/sysdeps/i386/sub_n.S
+index dbda4d4d4e7180f4..2a09256f9c71f93a 100644
+--- a/sysdeps/i386/sub_n.S
++++ b/sysdeps/i386/sub_n.S
+@@ -31,7 +31,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__mpn_sub_n))
+-	ENTER
+ 
+ 	pushl %edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -44,13 +43,6 @@ ENTRY (BP_SYM (__mpn_sub_n))
+ 	cfi_rel_offset (esi, 0)
+ 	movl	S2(%esp),%edx
+ 	movl	SIZE(%esp),%ecx
+-#if __BOUNDED_POINTERS__
+-	shll	$2, %ecx	/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (%edi, RES(%esp), %ecx)
+-	CHECK_BOUNDS_BOTH_WIDE (%esi, S1(%esp), %ecx)
+-	CHECK_BOUNDS_BOTH_WIDE (%edx, S2(%esp), %ecx)
+-	shrl	$2, %ecx
+-#endif
+ 	movl	%ecx,%eax
+ 	shrl	$3,%ecx			/* compute count for unrolled loop */
+ 	negl	%eax
+@@ -118,6 +110,5 @@ L(oop):	movl	(%esi),%eax
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	ret
+ END (BP_SYM (__mpn_sub_n))
+diff --git a/sysdeps/i386/submul_1.S b/sysdeps/i386/submul_1.S
+index beb0eb5f07f31a06..c7054e0f6bd48a5e 100644
+--- a/sysdeps/i386/submul_1.S
++++ b/sysdeps/i386/submul_1.S
+@@ -35,7 +35,6 @@
+ 
+ 	.text
+ ENTRY (BP_SYM (__mpn_submul_1))
+-	ENTER
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -54,12 +53,6 @@ ENTRY (BP_SYM (__mpn_submul_1))
+ 	movl	S1(%esp), %s1_ptr
+ 	movl	SIZE(%esp), %sizeP
+ 	movl	S2LIMB(%esp), %s2_limb
+-#if __BOUNDED_POINTERS__
+-	shll	$2, %sizeP	/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (%res_ptr, RES(%esp), %sizeP)
+-	CHECK_BOUNDS_BOTH_WIDE (%s1_ptr, S1(%esp), %sizeP)
+-	shrl	$2, %sizeP
+-#endif
+ 	leal	(%res_ptr,%sizeP,4), %res_ptr
+ 	leal	(%s1_ptr,%sizeP,4), %s1_ptr
+ 	negl	%sizeP
+@@ -91,6 +84,5 @@ L(oop):
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	LEAVE
+ 	ret
+ END (BP_SYM (__mpn_submul_1))
diff --git a/SOURCES/glibc-rh1505492-bounded-15.patch b/SOURCES/glibc-rh1505492-bounded-15.patch
new file mode 100644
index 0000000..0f47ca9
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-bounded-15.patch
@@ -0,0 +1,2287 @@
+commit 2366713d874342c94f9362b0d6b2461e1c68dbc3
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Thu Feb 21 22:21:52 2013 +0000
+
+    Remove remaining bounded-pointers support from i386 .S files.
+
+Conflicts:
+	sysdeps/i386/bp-asm.h
+
+Copyright header change; file removed manually.
+
+diff --git a/sysdeps/i386/add_n.S b/sysdeps/i386/add_n.S
+index df3ea2362c76247a..55e454f2091c67eb 100644
+--- a/sysdeps/i386/add_n.S
++++ b/sysdeps/i386/add_n.S
+@@ -19,17 +19,15 @@
+ 
+ #include "sysdep.h"
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+8	/* space for 2 saved regs */
++#define PARMS	4+8	/* space for 2 saved regs */
+ #define RES	PARMS
+-#define S1	RES+PTR_SIZE
+-#define S2	S1+PTR_SIZE
+-#define SIZE	S2+PTR_SIZE
++#define S1	RES+4
++#define S2	S1+4
++#define SIZE	S2+4
+ 
+ 	.text
+-ENTRY (BP_SYM (__mpn_add_n))
++ENTRY (__mpn_add_n)
+ 
+ 	pushl %edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -110,4 +108,4 @@ L(oop):	movl	(%esi),%eax
+ 	cfi_restore (edi)
+ 
+ 	ret
+-END (BP_SYM (__mpn_add_n))
++END (__mpn_add_n)
+diff --git a/sysdeps/i386/addmul_1.S b/sysdeps/i386/addmul_1.S
+index 006c08a92de4e303..286781efdb37d304 100644
+--- a/sysdeps/i386/addmul_1.S
++++ b/sysdeps/i386/addmul_1.S
+@@ -19,13 +19,11 @@
+ 
+ #include "sysdep.h"
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+16	/* space for 4 saved regs */
++#define PARMS	4+16	/* space for 4 saved regs */
+ #define RES	PARMS
+-#define S1	RES+PTR_SIZE
+-#define SIZE	S1+PTR_SIZE
++#define S1	RES+4
++#define SIZE	S1+4
+ #define S2LIMB	SIZE+4
+ 
+ #define res_ptr edi
+@@ -34,7 +32,7 @@
+ #define s2_limb ebx
+ 
+ 	.text
+-ENTRY (BP_SYM (__mpn_addmul_1))
++ENTRY (__mpn_addmul_1)
+ 
+ 	pushl	%res_ptr
+ 	cfi_adjust_cfa_offset (4)
+@@ -85,4 +83,4 @@ L(oop):
+ 	cfi_restore (res_ptr)
+ 
+ 	ret
+-END (BP_SYM (__mpn_addmul_1))
++END (__mpn_addmul_1)
+diff --git a/sysdeps/i386/bp-asm.h b/sysdeps/i386/bp-asm.h
+deleted file mode 100644
+index 75e1a007cb3eca71..0000000000000000
+--- a/sysdeps/i386/bp-asm.h
++++ /dev/null
+@@ -1,60 +0,0 @@
+-/* Bounded-pointer definitions for x86 assembler.
+-   Copyright (C) 2000 Free Software Foundation, Inc.
+-   Contributed by Greg McGary <greg@mcgary.org>
+-   This file is part of the GNU C Library.  Its master source is NOT part of
+-   the C library, however.  The master source lives in the GNU MP 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 _bp_asm_h_
+-# define _bp_asm_h_ 1
+-
+-# if __ASSEMBLER__
+-
+-#  if __BOUNDED_POINTERS__
+-
+-/* Bounded pointers occupy three words.  */
+-#   define PTR_SIZE 12
+-/* Bounded pointer return values are passed back through a hidden
+-   argument that points to caller-allocate space.  The hidden arg
+-   occupies one word on the stack.  */
+-#   define RTN_SIZE 4
+-/* Although the caller pushes the hidden arg, the callee is
+-   responsible for popping it.  */
+-#   define RET_PTR ret $RTN_SIZE
+-/* Stack space overhead of procedure-call linkage: return address and
+-   frame pointer.  */
+-#   define LINKAGE 8
+-/* Stack offset of return address after calling ENTER.  */
+-#   define PCOFF 4
+-
+-#  else /* !__BOUNDED_POINTERS__ */
+-
+-/* Unbounded pointers occupy one word.  */
+-#   define PTR_SIZE 4
+-/* Unbounded pointer return values are passed back in the register %eax.  */
+-#   define RTN_SIZE 0
+-/* Use simple return instruction for unbounded pointer values.  */
+-#   define RET_PTR ret
+-/* Stack space overhead of procedure-call linkage: return address only.  */
+-#   define LINKAGE 4
+-/* Stack offset of return address after calling ENTER.  */
+-#   define PCOFF 0
+-
+-#  endif /* !__BOUNDED_POINTERS__ */
+-
+-# endif /* __ASSEMBLER__ */
+-
+-#endif /* _bp_asm_h_ */
+diff --git a/sysdeps/i386/bsd-_setjmp.S b/sysdeps/i386/bsd-_setjmp.S
+index fe0224145643ea0b..3a57995fa9811274 100644
+--- a/sysdeps/i386/bsd-_setjmp.S
++++ b/sysdeps/i386/bsd-_setjmp.S
+@@ -22,15 +22,13 @@
+ 
+ #include <sysdep.h>
+ #include <jmpbuf-offsets.h>
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ #include <stap-probe.h>
+ 
+-#define PARMS	LINKAGE		/* no space for saved regs */
++#define PARMS	4		/* no space for saved regs */
+ #define JMPBUF	PARMS
+-#define SIGMSK	JMPBUF+PTR_SIZE
++#define SIGMSK	JMPBUF+4
+ 
+-ENTRY (BP_SYM (_setjmp))
++ENTRY (_setjmp)
+ 
+ 	xorl %eax, %eax
+ 	movl JMPBUF(%esp), %edx
+@@ -44,7 +42,7 @@ ENTRY (BP_SYM (_setjmp))
+ 	PTR_MANGLE (%ecx)
+ #endif
+      	movl %ecx, (JB_SP*4)(%edx)
+-	movl PCOFF(%esp), %ecx	/* Save PC we are returning to now.  */
++	movl 0(%esp), %ecx	/* Save PC we are returning to now.  */
+ 	LIBC_PROBE (setjmp, 3, 4@%edx, -4@$0, 4@%ecx)
+ #ifdef PTR_MANGLE
+ 	PTR_MANGLE (%ecx)
+@@ -54,5 +52,5 @@ ENTRY (BP_SYM (_setjmp))
+ 
+ 	movl %eax, JB_SIZE(%edx) /* No signal mask set.  */
+ 	ret
+-END (BP_SYM (_setjmp))
++END (_setjmp)
+ libc_hidden_def (_setjmp)
+diff --git a/sysdeps/i386/bsd-setjmp.S b/sysdeps/i386/bsd-setjmp.S
+index 25470f3904a8ca73..9f2eb9d99c0807d2 100644
+--- a/sysdeps/i386/bsd-setjmp.S
++++ b/sysdeps/i386/bsd-setjmp.S
+@@ -22,15 +22,13 @@
+ 
+ #include <sysdep.h>
+ #include <jmpbuf-offsets.h>
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ #include <stap-probe.h>
+ 
+-#define PARMS  LINKAGE		/* no space for saved regs */
++#define PARMS  4		/* no space for saved regs */
+ #define JMPBUF PARMS
+-#define SIGMSK JMPBUF+PTR_SIZE
++#define SIGMSK JMPBUF+4
+ 
+-ENTRY (BP_SYM (setjmp))
++ENTRY (setjmp)
+ 	/* Note that we have to use a non-exported symbol in the next
+ 	   jump since otherwise gas will emit it as a jump through the
+ 	   PLT which is what we cannot use here.  */
+@@ -46,7 +44,7 @@ ENTRY (BP_SYM (setjmp))
+ 	PTR_MANGLE (%ecx)
+ #endif
+      	movl %ecx, (JB_SP*4)(%eax)
+-	movl PCOFF(%esp), %ecx	/* Save PC we are returning to now.  */
++	movl 0(%esp), %ecx	/* Save PC we are returning to now.  */
+ 	LIBC_PROBE (setjmp, 3, 4@%eax, -4@$1, 4@%ecx)
+ #ifdef PTR_MANGLE
+ 	PTR_MANGLE (%ecx)
+@@ -59,10 +57,10 @@ ENTRY (BP_SYM (setjmp))
+ 	cfi_adjust_cfa_offset (4)
+ 	pushl 8(%esp)
+ 	cfi_adjust_cfa_offset (4)
+-	call BP_SYM (__sigjmp_save)
++	call __sigjmp_save
+ 	popl %ecx
+ 	cfi_adjust_cfa_offset (-4)
+ 	popl %edx
+ 	cfi_adjust_cfa_offset (-4)
+ 	ret
+-END (BP_SYM (setjmp))
++END (setjmp)
+diff --git a/sysdeps/i386/fpu/s_frexp.S b/sysdeps/i386/fpu/s_frexp.S
+index 6c5cd8fdfd9f825b..220eb3cb4bdedc0a 100644
+--- a/sysdeps/i386/fpu/s_frexp.S
++++ b/sysdeps/i386/fpu/s_frexp.S
+@@ -18,8 +18,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <machine/asm.h>
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+ 	.section .rodata
+ 
+@@ -34,13 +32,13 @@ two54:	.byte 0, 0, 0, 0, 0, 0, 0x50, 0x43
+ #define MO(op) op
+ #endif
+ 
+-#define PARMS	LINKAGE		/* no space for saved regs */
++#define PARMS	4		/* no space for saved regs */
+ #define VAL0	PARMS
+ #define VAL1	VAL0+4
+ #define EXPP	VAL1+4
+ 
+ 	.text
+-ENTRY (BP_SYM (__frexp))
++ENTRY (__frexp)
+ 
+ 	movl	VAL0(%esp), %ecx
+ 	movl	VAL1(%esp), %eax
+@@ -81,5 +79,5 @@ ENTRY (BP_SYM (__frexp))
+ 	movl	%ecx, (%eax)
+ 
+ 	ret
+-END (BP_SYM (__frexp))
+-weak_alias (BP_SYM (__frexp), BP_SYM (frexp))
++END (__frexp)
++weak_alias (__frexp, frexp)
+diff --git a/sysdeps/i386/fpu/s_frexpf.S b/sysdeps/i386/fpu/s_frexpf.S
+index 4fe2181873de7302..1515ec3d5d08fe5e 100644
+--- a/sysdeps/i386/fpu/s_frexpf.S
++++ b/sysdeps/i386/fpu/s_frexpf.S
+@@ -18,8 +18,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <machine/asm.h>
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+ 	.section .rodata
+ 
+@@ -34,12 +32,12 @@ two25:	.byte 0, 0, 0, 0x4c
+ #define MO(op) op
+ #endif
+ 
+-#define PARMS	LINKAGE		/* no space for saved regs */
++#define PARMS	4		/* no space for saved regs */
+ #define VAL	PARMS
+ #define EXPP	VAL+4
+ 
+ 	.text
+-ENTRY (BP_SYM (__frexpf))
++ENTRY (__frexpf)
+ 
+ 	movl	VAL(%esp), %eax
+ 	xorl	%ecx, %ecx
+@@ -78,5 +76,5 @@ ENTRY (BP_SYM (__frexpf))
+ 	movl	%ecx, (%eax)
+ 
+ 	ret
+-END (BP_SYM (__frexpf))
+-weak_alias (BP_SYM (__frexpf), BP_SYM (frexpf))
++END (__frexpf)
++weak_alias (__frexpf, frexpf)
+diff --git a/sysdeps/i386/fpu/s_frexpl.S b/sysdeps/i386/fpu/s_frexpl.S
+index 54d5010185792bd9..bd8064ac46104921 100644
+--- a/sysdeps/i386/fpu/s_frexpl.S
++++ b/sysdeps/i386/fpu/s_frexpl.S
+@@ -18,8 +18,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <machine/asm.h>
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+ 	.section .rodata
+ 
+@@ -34,14 +32,14 @@ two64:	.byte 0, 0, 0, 0, 0, 0, 0xf0, 0x43
+ #define MO(op) op
+ #endif
+ 
+-#define PARMS	LINKAGE		/* no space for saved regs */
++#define PARMS	4		/* no space for saved regs */
+ #define VAL0	PARMS
+ #define VAL1	VAL0+4
+ #define VAL2	VAL1+4
+ #define EXPP	VAL2+4
+ 
+ 	.text
+-ENTRY (BP_SYM (__frexpl))
++ENTRY (__frexpl)
+ 
+ 	movl	VAL0(%esp), %ecx
+ 	movl	VAL2(%esp), %eax
+@@ -83,5 +81,5 @@ ENTRY (BP_SYM (__frexpl))
+ 	movl	%ecx, (%eax)
+ 
+ 	ret
+-END (BP_SYM (__frexpl))
+-weak_alias (BP_SYM (__frexpl), BP_SYM (frexpl))
++END (__frexpl)
++weak_alias (__frexpl, frexpl)
+diff --git a/sysdeps/i386/fpu/s_remquo.S b/sysdeps/i386/fpu/s_remquo.S
+index e61ff5be7bc826df..341285db30448710 100644
+--- a/sysdeps/i386/fpu/s_remquo.S
++++ b/sysdeps/i386/fpu/s_remquo.S
+@@ -5,16 +5,14 @@
+  */
+ 
+ #include <machine/asm.h>
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE		/* no space for saved regs */
++#define PARMS	4		/* no space for saved regs */
+ #define DVDND	PARMS
+ #define DVSOR	DVDND+8
+ #define QUOP	DVSOR+8
+ 
+ 	.text
+-ENTRY (BP_SYM (__remquo))
++ENTRY (__remquo)
+ 
+ 	fldl	DVSOR(%esp)
+ 	fldl	DVDND(%esp)
+@@ -43,5 +41,5 @@ ENTRY (BP_SYM (__remquo))
+ 1:	movl	%eax, (%ecx)
+ 
+ 	ret
+-END (BP_SYM (__remquo))
+-weak_alias (BP_SYM (__remquo), BP_SYM (remquo))
++END (__remquo)
++weak_alias (__remquo, remquo)
+diff --git a/sysdeps/i386/fpu/s_remquof.S b/sysdeps/i386/fpu/s_remquof.S
+index c2b351b859c28e7c..62063f068f59220a 100644
+--- a/sysdeps/i386/fpu/s_remquof.S
++++ b/sysdeps/i386/fpu/s_remquof.S
+@@ -5,16 +5,14 @@
+  */
+ 
+ #include <machine/asm.h>
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE		/* no space for saved regs */
++#define PARMS	4		/* no space for saved regs */
+ #define DVDND	PARMS
+ #define DVSOR	DVDND+4
+ #define QUOP	DVSOR+4
+ 
+ 	.text
+-ENTRY (BP_SYM (__remquof))
++ENTRY (__remquof)
+ 
+ 	flds	DVSOR(%esp)
+ 	flds	DVDND(%esp)
+@@ -43,5 +41,5 @@ ENTRY (BP_SYM (__remquof))
+ 1:	movl	%eax, (%ecx)
+ 
+ 	ret
+-END (BP_SYM (__remquof))
+-weak_alias (BP_SYM (__remquof), BP_SYM (remquof))
++END (__remquof)
++weak_alias (__remquof, remquof)
+diff --git a/sysdeps/i386/fpu/s_remquol.S b/sysdeps/i386/fpu/s_remquol.S
+index 2cbe43589609a2b8..f3d84fc7c2c22d73 100644
+--- a/sysdeps/i386/fpu/s_remquol.S
++++ b/sysdeps/i386/fpu/s_remquol.S
+@@ -5,16 +5,14 @@
+  */
+ 
+ #include <machine/asm.h>
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE		/* no space for saved regs */
++#define PARMS	4		/* no space for saved regs */
+ #define DVDND	PARMS
+ #define DVSOR	DVDND+12
+ #define QUOP	DVSOR+12
+ 
+ 	.text
+-ENTRY (BP_SYM (__remquol))
++ENTRY (__remquol)
+ 
+ 	fldt	DVSOR(%esp)
+ 	fldt	DVDND(%esp)
+@@ -43,5 +41,5 @@ ENTRY (BP_SYM (__remquol))
+ 1:	movl	%eax, (%ecx)
+ 
+ 	ret
+-END (BP_SYM (__remquol))
+-weak_alias (BP_SYM (__remquol), BP_SYM (remquol))
++END (__remquol)
++weak_alias (__remquol, remquol)
+diff --git a/sysdeps/i386/i486/strcat.S b/sysdeps/i386/i486/strcat.S
+index b3212c8beb948411..d772b108d1c45e2d 100644
+--- a/sysdeps/i386/i486/strcat.S
++++ b/sysdeps/i386/i486/strcat.S
+@@ -21,16 +21,14 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+4	/* space for 1 saved reg */
++#define PARMS	4+4	/* space for 1 saved reg */
+ #define RTN	PARMS
+-#define DEST	RTN+RTN_SIZE
+-#define SRC	DEST+PTR_SIZE
++#define DEST	RTN
++#define SRC	DEST+4
+ 
+ 	.text
+-ENTRY (BP_SYM (strcat))
++ENTRY (strcat)
+ 
+ 	pushl %edi		/* Save callee-safe register.  */
+ 	cfi_adjust_cfa_offset (4)
+@@ -257,12 +255,11 @@ L(9):	movb %al, (%ecx,%edx)	/* store first byte of last word */
+ 
+ 	movb %ah, 3(%ecx,%edx)	/* store fourth byte of last word */
+ 
+-L(8):	/* GKM FIXME: check high bounds */
+-	movl DEST(%esp), %eax	/* start address of destination is result */
++L(8):	movl DEST(%esp), %eax	/* start address of destination is result */
+ 	popl %edi		/* restore saved register */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	RET_PTR
+-END (BP_SYM (strcat))
++	ret
++END (strcat)
+ libc_hidden_builtin_def (strcat)
+diff --git a/sysdeps/i386/i486/strlen.S b/sysdeps/i386/i486/strlen.S
+index 76c31098e84a1c93..371e202902603639 100644
+--- a/sysdeps/i386/i486/strlen.S
++++ b/sysdeps/i386/i486/strlen.S
+@@ -20,14 +20,12 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE		/* no space for saved regs */
++#define PARMS	4		/* no space for saved regs */
+ #define STR	PARMS
+ 
+ 	.text
+-ENTRY (BP_SYM (strlen))
++ENTRY (strlen)
+ 
+ 	movl STR(%esp), %ecx
+ 	movl %ecx, %eax		/* duplicate it */
+@@ -130,5 +128,5 @@ L(3):	testb %cl, %cl		/* is first byte NUL? */
+ L(2):	subl STR(%esp), %eax	/* compute difference to string start */
+ 
+ 	ret
+-END (BP_SYM (strlen))
++END (strlen)
+ libc_hidden_builtin_def (strlen)
+diff --git a/sysdeps/i386/i586/add_n.S b/sysdeps/i386/i586/add_n.S
+index a2b502d0d21bf9f5..e3f439412f7d4061 100644
+--- a/sysdeps/i386/i586/add_n.S
++++ b/sysdeps/i386/i586/add_n.S
+@@ -19,17 +19,15 @@
+ 
+ #include "sysdep.h"
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+16		/* space for 4 saved regs */
++#define PARMS	4+16		/* space for 4 saved regs */
+ #define RES	PARMS
+-#define S1	RES+PTR_SIZE
+-#define S2	S1+PTR_SIZE
+-#define SIZE	S2+PTR_SIZE
++#define S1	RES+4
++#define S2	S1+4
++#define SIZE	S2+4
+ 
+ 	.text
+-ENTRY (BP_SYM (__mpn_add_n))
++ENTRY (__mpn_add_n)
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -142,4 +140,4 @@ L(end2):
+ 	cfi_restore (edi)
+ 
+ 	ret
+-END (BP_SYM (__mpn_add_n))
++END (__mpn_add_n)
+diff --git a/sysdeps/i386/i586/addmul_1.S b/sysdeps/i386/i586/addmul_1.S
+index a9d0b08b5e8072ab..333951f8e5d6d3ec 100644
+--- a/sysdeps/i386/i586/addmul_1.S
++++ b/sysdeps/i386/i586/addmul_1.S
+@@ -19,13 +19,11 @@
+ 
+ #include "sysdep.h"
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+16	/* space for 4 saved regs */
++#define PARMS	4+16	/* space for 4 saved regs */
+ #define RES	PARMS
+-#define S1	RES+PTR_SIZE
+-#define SIZE	S1+PTR_SIZE
++#define S1	RES+4
++#define SIZE	S1+4
+ #define S2LIMB	SIZE+4
+ 
+ #define res_ptr edi
+@@ -34,7 +32,7 @@
+ #define s2_limb ebx
+ 
+ 	.text
+-ENTRY (BP_SYM (__mpn_addmul_1))
++ENTRY (__mpn_addmul_1)
+ 
+ 	pushl	%res_ptr
+ 	cfi_adjust_cfa_offset (4)
+@@ -93,4 +91,4 @@ L(oop):	adcl	$0, %ebp
+ 
+ 	ret
+ #undef size
+-END (BP_SYM (__mpn_addmul_1))
++END (__mpn_addmul_1)
+diff --git a/sysdeps/i386/i586/bzero.S b/sysdeps/i386/i586/bzero.S
+index 220aa47c3f9c6d5c..84d2f709c16d0b46 100644
+--- a/sysdeps/i386/i586/bzero.S
++++ b/sysdeps/i386/i586/bzero.S
+@@ -1,3 +1,3 @@
+ #define memset __bzero
+ #include <sysdeps/i386/i586/memset.S>
+-weak_alias (BP_SYM (__bzero), BP_SYM (bzero))
++weak_alias (__bzero, bzero)
+diff --git a/sysdeps/i386/i586/lshift.S b/sysdeps/i386/i586/lshift.S
+index 23c5002d69f50f8f..2f25ed1d854e90c2 100644
+--- a/sysdeps/i386/i586/lshift.S
++++ b/sysdeps/i386/i586/lshift.S
+@@ -18,17 +18,15 @@
+ 
+ #include "sysdep.h"
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+16		/* space for 4 saved regs */
++#define PARMS	4+16		/* space for 4 saved regs */
+ #define RES	PARMS
+-#define S	RES+PTR_SIZE
+-#define SIZE	S+PTR_SIZE
++#define S	RES+4
++#define SIZE	S+4
+ #define CNT	SIZE+4
+ 
+ 	.text
+-ENTRY (BP_SYM (__mpn_lshift))
++ENTRY (__mpn_lshift)
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -254,4 +252,4 @@ L(L1):	movl	%edx,(%edi)		/* store last limb */
+ 	cfi_restore (edi)
+ 
+ 	ret
+-END (BP_SYM (__mpn_lshift))
++END (__mpn_lshift)
+diff --git a/sysdeps/i386/i586/memcpy.S b/sysdeps/i386/i586/memcpy.S
+index 07f5432d761c453d..baa8d11c44ccfd67 100644
+--- a/sysdeps/i386/i586/memcpy.S
++++ b/sysdeps/i386/i586/memcpy.S
+@@ -19,19 +19,17 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+ /* BEWARE: `#ifdef memcpy' means that memcpy is redefined as `mempcpy',
+    and the return value is the byte after the last one copied in
+    the destination. */
+ #define MEMPCPY_P (defined memcpy)
+ 
+-#define PARMS	LINKAGE+8	/* space for 2 saved regs */
++#define PARMS	4+8	/* space for 2 saved regs */
+ #define RTN	PARMS
+-#define DEST	RTN+RTN_SIZE
+-#define SRC	DEST+PTR_SIZE
+-#define LEN	SRC+PTR_SIZE
++#define DEST	RTN
++#define SRC	DEST+4
++#define LEN	SRC+4
+ 
+         .text
+ #if defined PIC && IS_IN (libc)
+@@ -41,7 +39,7 @@ ENTRY (__memcpy_chk)
+ 	jb	HIDDEN_JUMPTARGET (__chk_fail)
+ END (__memcpy_chk)
+ #endif
+-ENTRY (BP_SYM (memcpy))
++ENTRY (memcpy)
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -124,8 +122,8 @@ L(1):	rep; movsb
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	RET_PTR
+-END (BP_SYM (memcpy))
++	ret
++END (memcpy)
+ #if !MEMPCPY_P
+ libc_hidden_builtin_def (memcpy)
+ #endif
+diff --git a/sysdeps/i386/i586/mempcpy.S b/sysdeps/i386/i586/mempcpy.S
+index f492be7ca0722839..afc112d9d7986697 100644
+--- a/sysdeps/i386/i586/mempcpy.S
++++ b/sysdeps/i386/i586/mempcpy.S
+@@ -2,6 +2,6 @@
+ #define __memcpy_chk __mempcpy_chk
+ #include <sysdeps/i386/i586/memcpy.S>
+ 
+-libc_hidden_def (BP_SYM (__mempcpy))
+-weak_alias (BP_SYM (__mempcpy), BP_SYM (mempcpy))
++libc_hidden_def (__mempcpy)
++weak_alias (__mempcpy, mempcpy)
+ libc_hidden_builtin_def (mempcpy)
+diff --git a/sysdeps/i386/i586/memset.S b/sysdeps/i386/i586/memset.S
+index 8234b99d734b24b0..c1b08e0f7357cc00 100644
+--- a/sysdeps/i386/i586/memset.S
++++ b/sysdeps/i386/i586/memset.S
+@@ -20,19 +20,17 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+ /* BEWARE: `#ifdef memset' means that memset is redefined as `bzero' */
+ #define BZERO_P (defined memset)
+ 
+-#define PARMS	LINKAGE+4	/* space for 1 saved reg */
++#define PARMS	4+4	/* space for 1 saved reg */
+ #define RTN	PARMS
+-#define DEST	RTN+RTN_SIZE
++#define DEST	RTN
+ #if BZERO_P
+-# define LEN	DEST+PTR_SIZE
++# define LEN	DEST+4
+ #else
+-# define CHR	DEST+PTR_SIZE
++# define CHR	DEST+4
+ # define LEN	CHR+4
+ #endif
+ 
+@@ -44,7 +42,7 @@ ENTRY (__memset_chk)
+ 	jb	HIDDEN_JUMPTARGET (__chk_fail)
+ END (__memset_chk)
+ #endif
+-ENTRY (BP_SYM (memset))
++ENTRY (memset)
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -117,7 +115,7 @@ L(2):	shrl	$2, %ecx	/* convert byte count to longword count */
+ #if BZERO_P
+ 	ret
+ #else
+-	RET_PTR
++	ret
+ #endif
+-END (BP_SYM (memset))
++END (memset)
+ libc_hidden_builtin_def (memset)
+diff --git a/sysdeps/i386/i586/mul_1.S b/sysdeps/i386/i586/mul_1.S
+index c694afb42141b16f..f5f119c9a9125ba6 100644
+--- a/sysdeps/i386/i586/mul_1.S
++++ b/sysdeps/i386/i586/mul_1.S
+@@ -19,13 +19,11 @@
+ 
+ #include "sysdep.h"
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+16	/* space for 4 saved regs */
++#define PARMS	4+16	/* space for 4 saved regs */
+ #define RES	PARMS
+-#define S1	RES+PTR_SIZE
+-#define SIZE	S1+PTR_SIZE
++#define S1	RES+4
++#define SIZE	S1+4
+ #define S2LIMB	SIZE+4
+ 
+ #define res_ptr edi
+@@ -34,7 +32,7 @@
+ #define s2_limb ebx
+ 
+ 	.text
+-ENTRY (BP_SYM (__mpn_mul_1))
++ENTRY (__mpn_mul_1)
+ 
+ 	pushl	%res_ptr
+ 	cfi_adjust_cfa_offset (4)
+@@ -89,4 +87,4 @@ L(oop):	adcl	$0, %ebp
+ 
+ 	ret
+ #undef size
+-END (BP_SYM (__mpn_mul_1))
++END (__mpn_mul_1)
+diff --git a/sysdeps/i386/i586/rshift.S b/sysdeps/i386/i586/rshift.S
+index ce3710391193dbac..2625cf9e04122d45 100644
+--- a/sysdeps/i386/i586/rshift.S
++++ b/sysdeps/i386/i586/rshift.S
+@@ -18,17 +18,15 @@
+ 
+ #include "sysdep.h"
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+16		/* space for 4 saved regs */
++#define PARMS	4+16		/* space for 4 saved regs */
+ #define RES	PARMS
+-#define S	RES+PTR_SIZE
+-#define SIZE	S+PTR_SIZE
++#define S	RES+4
++#define SIZE	S+4
+ #define CNT	SIZE+4
+ 
+ 	.text
+-ENTRY (BP_SYM (__mpn_rshift))
++ENTRY (__mpn_rshift)
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -254,4 +252,4 @@ L(L1):	movl	%edx,(%edi)		/* store last limb */
+ 	cfi_restore (edi)
+ 
+ 	ret
+-END (BP_SYM (__mpn_rshift))
++END (__mpn_rshift)
+diff --git a/sysdeps/i386/i586/strchr.S b/sysdeps/i386/i586/strchr.S
+index 35259fb085840180..3821331851bf843d 100644
+--- a/sysdeps/i386/i586/strchr.S
++++ b/sysdeps/i386/i586/strchr.S
+@@ -20,8 +20,6 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+ /* This version is especially optimized for the i586 (and following?)
+    processors.  This is mainly done by using the two pipelines.  The
+@@ -36,13 +34,13 @@
+ /* The magic value which is used throughout in the whole code.  */
+ #define magic 0xfefefeff
+ 
+-#define PARMS	LINKAGE+16	/* space for 4 saved regs */
++#define PARMS	4+16	/* space for 4 saved regs */
+ #define RTN	PARMS
+-#define STR	RTN+RTN_SIZE
+-#define CHR	STR+PTR_SIZE
++#define STR	RTN
++#define CHR	STR+4
+ 
+ 	.text
+-ENTRY (BP_SYM (strchr))
++ENTRY (strchr)
+ 
+ 	pushl %edi		/* Save callee-safe registers.  */
+ 	cfi_adjust_cfa_offset (-4)
+@@ -301,7 +299,7 @@ L(out):	popl %ebp		/* restore saved registers */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	RET_PTR
++	ret
+ 
+ 	cfi_adjust_cfa_offset (16)
+ 	cfi_rel_offset (edi, 12)
+@@ -343,8 +341,8 @@ L(4):	subl $4, %eax		/* adjust pointer */
+ 
+ L(3):	xorl %eax, %eax
+ 	jmp L(out)
+-END (BP_SYM (strchr))
++END (strchr)
+ 
+ #undef index
+-weak_alias (BP_SYM (strchr), BP_SYM (index))
++weak_alias (strchr, index)
+ libc_hidden_builtin_def (strchr)
+diff --git a/sysdeps/i386/i586/strcpy.S b/sysdeps/i386/i586/strcpy.S
+index edd21f135d46a732..56659182a784bb44 100644
+--- a/sysdeps/i386/i586/strcpy.S
++++ b/sysdeps/i386/i586/strcpy.S
+@@ -19,13 +19,11 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+12	/* space for 3 saved regs */
++#define PARMS	4+12	/* space for 3 saved regs */
+ #define RTN	PARMS
+-#define DEST	RTN+RTN_SIZE
+-#define SRC	DEST+PTR_SIZE
++#define DEST	RTN
++#define SRC	DEST+4
+ 
+ #ifndef USE_AS_STPCPY
+ # define STRCPY strcpy
+@@ -34,7 +32,7 @@
+ #define magic 0xfefefeff
+ 
+ 	.text
+-ENTRY (BP_SYM (STRCPY))
++ENTRY (STRCPY)
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -149,7 +147,6 @@ L(4):	movb	%dl, (%edi)
+ L(end):	movb	%ah, (%edi)
+ 
+ L(end2):
+-	/* GKM FIXME: check high bounds  */
+ #ifdef USE_AS_STPCPY
+ 	movl	%edi, %eax
+ #else
+@@ -165,8 +162,8 @@ L(end2):
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	RET_PTR
+-END (BP_SYM (STRCPY))
++	ret
++END (STRCPY)
+ #ifndef USE_AS_STPCPY
+ libc_hidden_builtin_def (strcpy)
+ #endif
+diff --git a/sysdeps/i386/i586/strlen.S b/sysdeps/i386/i586/strlen.S
+index 323cb950790174e6..6b5fee3acf360bc4 100644
+--- a/sysdeps/i386/i586/strlen.S
++++ b/sysdeps/i386/i586/strlen.S
+@@ -20,8 +20,6 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+ /* This version is especially optimized for the i586 (and following?)
+    processors.  This is mainly done by using the two pipelines.  The
+@@ -36,11 +34,11 @@
+ /* The magic value which is used throughout in the whole code.  */
+ #define magic 0xfefefeff
+ 
+-#define PARMS	LINKAGE		/* no space for saved regs */
++#define PARMS	4		/* no space for saved regs */
+ #define STR	PARMS
+ 
+ 	.text
+-ENTRY (BP_SYM (strlen))
++ENTRY (strlen)
+ 
+ 	movl STR(%esp), %eax
+ 	movl $3, %edx		/* load mask (= 3) */
+@@ -180,5 +178,5 @@ L(2):	subl STR(%esp), %eax	/* now compute the length as difference
+ 				   between start and terminating NUL
+ 				   character */
+ 	ret
+-END (BP_SYM (strlen))
++END (strlen)
+ libc_hidden_builtin_def (strlen)
+diff --git a/sysdeps/i386/i586/sub_n.S b/sysdeps/i386/i586/sub_n.S
+index 07bddca9a8ce7fe8..68442a688ac796a3 100644
+--- a/sysdeps/i386/i586/sub_n.S
++++ b/sysdeps/i386/i586/sub_n.S
+@@ -19,17 +19,15 @@
+ 
+ #include "sysdep.h"
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+16		/* space for 4 saved regs */
++#define PARMS	4+16		/* space for 4 saved regs */
+ #define RES	PARMS
+-#define S1	RES+PTR_SIZE
+-#define S2	S1+PTR_SIZE
+-#define SIZE	S2+PTR_SIZE
++#define S1	RES+4
++#define S2	S1+4
++#define SIZE	S2+4
+ 
+ 	.text
+-ENTRY (BP_SYM (__mpn_sub_n))
++ENTRY (__mpn_sub_n)
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -142,4 +140,4 @@ L(end2):
+ 	cfi_restore (edi)
+ 
+ 	ret
+-END (BP_SYM (__mpn_sub_n))
++END (__mpn_sub_n)
+diff --git a/sysdeps/i386/i586/submul_1.S b/sysdeps/i386/i586/submul_1.S
+index a028d7089798ceb7..b553d25804bc5091 100644
+--- a/sysdeps/i386/i586/submul_1.S
++++ b/sysdeps/i386/i586/submul_1.S
+@@ -19,13 +19,11 @@
+ 
+ #include "sysdep.h"
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+16	/* space for 4 saved regs */
++#define PARMS	4+16	/* space for 4 saved regs */
+ #define RES	PARMS
+-#define S1	RES+PTR_SIZE
+-#define SIZE	S1+PTR_SIZE
++#define S1	RES+4
++#define SIZE	S1+4
+ #define S2LIMB	SIZE+4
+ 
+ #define res_ptr edi
+@@ -34,7 +32,7 @@
+ #define s2_limb ebx
+ 
+ 	.text
+-ENTRY (BP_SYM (__mpn_submul_1))
++ENTRY (__mpn_submul_1)
+ 
+ 	pushl	%res_ptr
+ 	cfi_adjust_cfa_offset (4)
+@@ -93,4 +91,4 @@ L(oop):	adcl	$0, %ebp
+ 
+ 	ret
+ #undef size
+-END (BP_SYM (__mpn_submul_1))
++END (__mpn_submul_1)
+diff --git a/sysdeps/i386/i686/add_n.S b/sysdeps/i386/i686/add_n.S
+index f645a21c1cad52ab..2ccf0215549cda2b 100644
+--- a/sysdeps/i386/i686/add_n.S
++++ b/sysdeps/i386/i686/add_n.S
+@@ -19,21 +19,19 @@
+ 
+ #include "sysdep.h"
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+8		/* space for 2 saved regs */
++#define PARMS	4+8		/* space for 2 saved regs */
+ #define RES	PARMS
+-#define S1	RES+PTR_SIZE
+-#define S2	S1+PTR_SIZE
+-#define SIZE	S2+PTR_SIZE
++#define S1	RES+4
++#define S2	S1+4
++#define SIZE	S2+4
+ 
+ 	.text
+ #ifdef PIC
+ L(1):	addl    (%esp), %eax
+ 	ret
+ #endif
+-ENTRY (BP_SYM (__mpn_add_n))
++ENTRY (__mpn_add_n)
+ 
+ 	pushl %edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -109,4 +107,4 @@ L(oop):	movl	(%esi),%eax
+ 	cfi_restore (edi)
+ 
+ 	ret
+-END (BP_SYM (__mpn_add_n))
++END (__mpn_add_n)
+diff --git a/sysdeps/i386/i686/bzero.S b/sysdeps/i386/i686/bzero.S
+index c1e4a6d50e5e8d99..34b0faa91b964303 100644
+--- a/sysdeps/i386/i686/bzero.S
++++ b/sysdeps/i386/i686/bzero.S
+@@ -1,3 +1,3 @@
+ #define memset __bzero
+ #include <sysdeps/i386/i686/memset.S>
+-weak_alias (BP_SYM (__bzero), BP_SYM (bzero))
++weak_alias (__bzero, bzero)
+diff --git a/sysdeps/i386/i686/memcmp.S b/sysdeps/i386/i686/memcmp.S
+index f45a22400242cb02..77cfb42b821fee78 100644
+--- a/sysdeps/i386/i686/memcmp.S
++++ b/sysdeps/i386/i686/memcmp.S
+@@ -18,13 +18,11 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS		LINKAGE+4	/* Preserve EBX.  */
++#define PARMS		4+4	/* Preserve EBX.  */
+ #define BLK1		PARMS
+-#define BLK2		BLK1+PTR_SIZE
+-#define LEN		BLK2+PTR_SIZE
++#define BLK2		BLK1+4
++#define LEN		BLK2+4
+ #define ENTRANCE	pushl %ebx; cfi_adjust_cfa_offset (4); \
+ 			cfi_rel_offset (ebx, 0)
+ #define RETURN		popl %ebx; cfi_adjust_cfa_offset (-4); \
+@@ -44,7 +42,7 @@
+ 
+         .text
+ 	ALIGN (4)
+-ENTRY (BP_SYM (memcmp))
++ENTRY (memcmp)
+ 	ENTRANCE
+ 
+ 	movl	BLK1(%esp), %eax
+@@ -366,7 +364,7 @@ L(set):
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (esi)
+ 	RETURN
+-END (BP_SYM (memcmp))
++END (memcmp)
+ 
+ 	.section	.rodata
+ 	ALIGN (2)
+@@ -406,5 +404,5 @@ L(table_32bytes) :
+ 
+ 
+ #undef bcmp
+-weak_alias (BP_SYM (memcmp), BP_SYM (bcmp))
+-libc_hidden_builtin_def (BP_SYM (memcmp))
++weak_alias (memcmp, bcmp)
++libc_hidden_builtin_def (memcmp)
+diff --git a/sysdeps/i386/i686/memcpy.S b/sysdeps/i386/i686/memcpy.S
+index 68f7e40031b1b4db..fae614e682c50995 100644
+--- a/sysdeps/i386/i686/memcpy.S
++++ b/sysdeps/i386/i686/memcpy.S
+@@ -20,14 +20,12 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE		/* no space for saved regs */
++#define PARMS	4		/* no space for saved regs */
+ #define RTN	PARMS
+-#define DEST	RTN+RTN_SIZE
+-#define SRC	DEST+PTR_SIZE
+-#define LEN	SRC+PTR_SIZE
++#define DEST	RTN
++#define SRC	DEST+4
++#define LEN	SRC+4
+ 
+ 	.text
+ #if defined PIC && IS_IN (libc)
+@@ -37,7 +35,7 @@ ENTRY_CHK (__memcpy_chk)
+ 	jb	HIDDEN_JUMPTARGET (__chk_fail)
+ END_CHK (__memcpy_chk)
+ #endif
+-ENTRY (BP_SYM (memcpy))
++ENTRY (memcpy)
+ 
+ 	movl	%edi, %eax
+ 	movl	DEST(%esp), %edi
+@@ -81,7 +79,7 @@ ENTRY (BP_SYM (memcpy))
+ 	movl	%edx, %esi
+ 	movl	DEST(%esp), %eax
+ 
+-	RET_PTR
++	ret
+ 
+ 	/* When we come here the pointers do not have the same
+ 	   alignment or the length is too short.  No need to optimize for
+@@ -96,5 +94,5 @@ ENTRY (BP_SYM (memcpy))
+ 2:	rep
+ 	movsl
+ 	jmp	.Lend
+-END (BP_SYM (memcpy))
++END (memcpy)
+ libc_hidden_builtin_def (memcpy)
+diff --git a/sysdeps/i386/i686/memmove.S b/sysdeps/i386/i686/memmove.S
+index 683f45fc44fc4f4f..50cf1cf222b922e3 100644
+--- a/sysdeps/i386/i686/memmove.S
++++ b/sysdeps/i386/i686/memmove.S
+@@ -20,22 +20,20 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+4	/* one spilled register */
++#define PARMS	4+4	/* one spilled register */
+ #define RTN	PARMS
+ 
+ 	.text
+ 
+ #ifdef USE_AS_BCOPY
+-# define SRC	RTN+RTN_SIZE
+-# define DEST	SRC+PTR_SIZE
+-# define LEN	DEST+PTR_SIZE
++# define SRC	RTN
++# define DEST	SRC+4
++# define LEN	DEST+4
+ #else
+-# define DEST	RTN+RTN_SIZE
+-# define SRC	DEST+PTR_SIZE
+-# define LEN	SRC+PTR_SIZE
++# define DEST	RTN
++# define SRC	DEST+4
++# define LEN	SRC+4
+ 
+ # if defined PIC && IS_IN (libc)
+ ENTRY_CHK (__memmove_chk)
+@@ -46,7 +44,7 @@ END_CHK (__memmove_chk)
+ # endif
+ #endif
+ 
+-ENTRY (BP_SYM (memmove))
++ENTRY (memmove)
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -82,7 +80,7 @@ ENTRY (BP_SYM (memmove))
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	RET_PTR
++	ret
+ 
+ 	cfi_adjust_cfa_offset (4)
+ 	cfi_rel_offset (edi, 0)
+@@ -115,8 +113,8 @@ ENTRY (BP_SYM (memmove))
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	RET_PTR
+-END (BP_SYM (memmove))
++	ret
++END (memmove)
+ #ifndef USE_AS_BCOPY
+ libc_hidden_builtin_def (memmove)
+ #endif
+diff --git a/sysdeps/i386/i686/mempcpy.S b/sysdeps/i386/i686/mempcpy.S
+index facff870e3f8f9de..c4b9d9dce361d0f0 100644
+--- a/sysdeps/i386/i686/mempcpy.S
++++ b/sysdeps/i386/i686/mempcpy.S
+@@ -20,14 +20,12 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE		/* no space for saved regs */
++#define PARMS	4		/* no space for saved regs */
+ #define RTN	PARMS
+-#define DEST	RTN+RTN_SIZE
+-#define SRC	DEST+PTR_SIZE
+-#define LEN	SRC+PTR_SIZE
++#define DEST	RTN
++#define SRC	DEST+4
++#define LEN	SRC+4
+ 
+ 	.text
+ #if defined PIC && IS_IN (libc)
+@@ -37,7 +35,7 @@ ENTRY_CHK (__mempcpy_chk)
+ 	jb	HIDDEN_JUMPTARGET (__chk_fail)
+ END_CHK (__mempcpy_chk)
+ #endif
+-ENTRY (BP_SYM (__mempcpy))
++ENTRY (__mempcpy)
+ 
+ 	movl	LEN(%esp), %ecx
+ 	movl	%edi, %eax
+@@ -60,8 +58,8 @@ ENTRY (BP_SYM (__mempcpy))
+ 	movl	%edx, %esi
+ 	cfi_restore (esi)
+ 
+-	RET_PTR
+-END (BP_SYM (__mempcpy))
+-libc_hidden_def (BP_SYM (__mempcpy))
+-weak_alias (BP_SYM (__mempcpy), BP_SYM (mempcpy))
++	ret
++END (__mempcpy)
++libc_hidden_def (__mempcpy)
++weak_alias (__mempcpy, mempcpy)
+ libc_hidden_builtin_def (mempcpy)
+diff --git a/sysdeps/i386/i686/memset.S b/sysdeps/i386/i686/memset.S
+index 7db25497117b6258..b9cb50d1bbf12f3d 100644
+--- a/sysdeps/i386/i686/memset.S
++++ b/sysdeps/i386/i686/memset.S
+@@ -20,20 +20,18 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+ /* BEWARE: `#ifdef memset' means that memset is redefined as `bzero' */
+ #define BZERO_P (defined memset)
+ 
+-#define PARMS	LINKAGE+4	/* space for 1 saved reg */
++#define PARMS	4+4	/* space for 1 saved reg */
+ #if BZERO_P
+ # define DEST	PARMS
+-# define LEN	DEST+PTR_SIZE
++# define LEN	DEST+4
+ #else
+ # define RTN	PARMS
+-# define DEST	RTN+RTN_SIZE
+-# define CHR	DEST+PTR_SIZE
++# define DEST	RTN
++# define CHR	DEST+4
+ # define LEN	CHR+4
+ #endif
+ 
+@@ -45,7 +43,7 @@ ENTRY_CHK (__memset_chk)
+ 	jb	HIDDEN_JUMPTARGET (__chk_fail)
+ END_CHK (__memset_chk)
+ #endif
+-ENTRY (BP_SYM (memset))
++ENTRY (memset)
+ 
+ 	cld
+ 	pushl	%edi
+@@ -96,9 +94,9 @@ ENTRY (BP_SYM (memset))
+ #if BZERO_P
+ 	ret
+ #else
+-	RET_PTR
++	ret
+ #endif
+-END (BP_SYM (memset))
++END (memset)
+ libc_hidden_builtin_def (memset)
+ 
+ #if defined PIC && IS_IN (libc) && !BZERO_P
+diff --git a/sysdeps/i386/i686/strcmp.S b/sysdeps/i386/i686/strcmp.S
+index 0423aac297358c77..70c356e721c6c8b8 100644
+--- a/sysdeps/i386/i686/strcmp.S
++++ b/sysdeps/i386/i686/strcmp.S
+@@ -19,15 +19,13 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE		/* no space for saved regs */
++#define PARMS	4		/* no space for saved regs */
+ #define STR1	PARMS
+-#define STR2	STR1+PTR_SIZE
++#define STR2	STR1+4
+ 
+         .text
+-ENTRY (BP_SYM (strcmp))
++ENTRY (strcmp)
+ 
+ 	movl	STR1(%esp), %ecx
+ 	movl	STR2(%esp), %edx
+@@ -50,5 +48,5 @@ L(neq):	movl	$1, %eax
+ 	cmovbl	%ecx, %eax
+ 
+ 	ret
+-END (BP_SYM (strcmp))
++END (strcmp)
+ libc_hidden_builtin_def (strcmp)
+diff --git a/sysdeps/i386/i686/strtok.S b/sysdeps/i386/i686/strtok.S
+index 372352e32a84f81d..cc5df557113b44c1 100644
+--- a/sysdeps/i386/i686/strtok.S
++++ b/sysdeps/i386/i686/strtok.S
+@@ -20,8 +20,6 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+ /* This file can be used for three variants of the strtok function:
+ 
+@@ -58,15 +56,15 @@ save_ptr:
+ #endif
+ 
+ #if !defined USE_AS_STRTOK_R && defined PIC
+-# define PARMS	LINKAGE+256+4	/* space for table and saved PIC register */
++# define PARMS	4+256+4	/* space for table and saved PIC register */
+ #else
+-# define PARMS	LINKAGE+256	/* space for table */
++# define PARMS	4+256	/* space for table */
+ #endif
+ #define RTN	PARMS
+-#define STR	RTN+RTN_SIZE
+-#define DELIM	STR+PTR_SIZE
++#define STR	RTN
++#define DELIM	STR+4
+ #ifdef USE_AS_STRTOK_R
+-# define SAVE	DELIM+PTR_SIZE
++# define SAVE	DELIM+4
+ #endif
+ 
+ 	.text
+@@ -76,7 +74,7 @@ save_ptr:
+ 	ret
+ #endif
+ 
+-ENTRY (BP_SYM (FUNCTION))
++ENTRY (FUNCTION)
+ 
+ #if !defined USE_AS_STRTOK_R && defined PIC
+ 	pushl %ebx			/* Save PIC register.  */
+@@ -233,7 +231,7 @@ L(epilogue):
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (ebx)
+ #endif
+-	RET_PTR
++	ret
+ 
+ L(returnNULL):
+ 	xorl %eax, %eax
+@@ -243,4 +241,4 @@ L(returnNULL):
+ 	movl %edx, SAVE_PTR
+ 	jmp L(epilogue)
+ 
+-END (BP_SYM (FUNCTION))
++END (FUNCTION)
+diff --git a/sysdeps/i386/i686/strtok_r.S b/sysdeps/i386/i686/strtok_r.S
+index 1c24ca85f5f084d7..353e076ba7bfe5d7 100644
+--- a/sysdeps/i386/i686/strtok_r.S
++++ b/sysdeps/i386/i686/strtok_r.S
+@@ -1,5 +1,5 @@
+ #define FUNCTION __strtok_r
+ #define USE_AS_STRTOK_R	1
+ #include <sysdeps/i386/i686/strtok.S>
+-weak_alias (BP_SYM (__strtok_r), BP_SYM (strtok_r))
+-strong_alias (BP_SYM (__strtok_r), BP_SYM (__GI___strtok_r))
++weak_alias (__strtok_r, strtok_r)
++strong_alias (__strtok_r, __GI___strtok_r)
+diff --git a/sysdeps/i386/lshift.S b/sysdeps/i386/lshift.S
+index b40d4ddd3a0e7fd7..7f70a85d6836b816 100644
+--- a/sysdeps/i386/lshift.S
++++ b/sysdeps/i386/lshift.S
+@@ -18,17 +18,15 @@
+ 
+ #include "sysdep.h"
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+12		/* space for 3 saved regs */
++#define PARMS	4+12		/* space for 3 saved regs */
+ #define RES	PARMS
+-#define S	RES+PTR_SIZE
+-#define SIZE	S+PTR_SIZE
++#define S	RES+4
++#define SIZE	S+4
+ #define CNT	SIZE+4
+ 
+ 	.text
+-ENTRY (BP_SYM (__mpn_lshift))
++ENTRY (__mpn_lshift)
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -102,4 +100,4 @@ L(end):	shll	%cl,%ebx		/* compute least significant limb */
+ 	cfi_restore (edi)
+ 
+ 	ret
+-END (BP_SYM (__mpn_lshift))
++END (__mpn_lshift)
+diff --git a/sysdeps/i386/memchr.S b/sysdeps/i386/memchr.S
+index 88651e527650b26b..c8ba5f0e9eb76d09 100644
+--- a/sysdeps/i386/memchr.S
++++ b/sysdeps/i386/memchr.S
+@@ -28,17 +28,15 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+8		/* space for 2 saved regs */
++#define PARMS	4+8		/* space for 2 saved regs */
+ #define RTN	PARMS
+-#define STR	RTN+RTN_SIZE
+-#define CHR	STR+PTR_SIZE
++#define STR	RTN
++#define CHR	STR+4
+ #define LEN	CHR+4
+ 
+ 	.text
+-ENTRY (BP_SYM (__memchr))
++ENTRY (__memchr)
+ 
+ 	/* Save callee-safe registers used in this function.  */
+ 	pushl %esi
+@@ -317,8 +315,8 @@ L(9):	popl %edi		/* pop saved registers */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (esi)
+ 
+-	RET_PTR
+-END (BP_SYM (__memchr))
++	ret
++END (__memchr)
+ 
+-weak_alias (BP_SYM (__memchr), BP_SYM (memchr))
++weak_alias (__memchr, memchr)
+ libc_hidden_builtin_def (memchr)
+diff --git a/sysdeps/i386/memcmp.S b/sysdeps/i386/memcmp.S
+index 1d5535a29dd12b33..89512f0ed139f22e 100644
+--- a/sysdeps/i386/memcmp.S
++++ b/sysdeps/i386/memcmp.S
+@@ -18,16 +18,14 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+4	/* space for 1 saved reg */
++#define PARMS	4+4	/* space for 1 saved reg */
+ #define BLK1	PARMS
+-#define BLK2	BLK1+PTR_SIZE
+-#define LEN	BLK2+PTR_SIZE
++#define BLK2	BLK1+4
++#define LEN	BLK2+4
+ 
+ 	.text
+-ENTRY (BP_SYM (memcmp))
++ENTRY (memcmp)
+ 
+ 	pushl %esi		/* Save callee-safe registers.  */
+ 	cfi_adjust_cfa_offset (4)
+@@ -68,8 +66,8 @@ L(1):	popl %esi		/* Restore registers.  */
+ 	cfi_restore (edi)
+ 
+ 	ret
+-END (BP_SYM (memcmp))
++END (memcmp)
+ 
+ #undef bcmp
+-weak_alias (BP_SYM (memcmp), BP_SYM (bcmp))
+-libc_hidden_builtin_def (BP_SYM (memcmp))
++weak_alias (memcmp, bcmp)
++libc_hidden_builtin_def (memcmp)
+diff --git a/sysdeps/i386/mul_1.S b/sysdeps/i386/mul_1.S
+index 71f8dceb188057d9..6ed3a3a5a4ade481 100644
+--- a/sysdeps/i386/mul_1.S
++++ b/sysdeps/i386/mul_1.S
+@@ -19,13 +19,11 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+16	/* space for 4 saved regs */
++#define PARMS	4+16	/* space for 4 saved regs */
+ #define RES	PARMS
+-#define S1	RES+PTR_SIZE
+-#define SIZE	S1+PTR_SIZE
++#define S1	RES+4
++#define SIZE	S1+4
+ #define S2LIMB	SIZE+4
+ 
+ #define res_ptr edi
+@@ -34,7 +32,7 @@
+ #define s2_limb ebx
+ 
+ 	.text
+-ENTRY (BP_SYM (__mpn_mul_1))
++ENTRY (__mpn_mul_1)
+ 
+ 	pushl	%res_ptr
+ 	cfi_adjust_cfa_offset (4)
+@@ -85,4 +83,4 @@ L(oop):
+ 
+ 	ret
+ #undef size
+-END (BP_SYM (__mpn_mul_1))
++END (__mpn_mul_1)
+diff --git a/sysdeps/i386/rawmemchr.S b/sysdeps/i386/rawmemchr.S
+index 3ce497485e439c02..4988df295c212cd3 100644
+--- a/sysdeps/i386/rawmemchr.S
++++ b/sysdeps/i386/rawmemchr.S
+@@ -28,16 +28,14 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+4	/* space for 1 saved reg */
++#define PARMS	4+4	/* space for 1 saved reg */
+ #define RTN	PARMS
+-#define STR	RTN+RTN_SIZE
+-#define CHR	STR+PTR_SIZE
++#define STR	RTN
++#define CHR	STR+4
+ 
+ 	.text
+-ENTRY (BP_SYM (__rawmemchr))
++ENTRY (__rawmemchr)
+ 
+ 	/* Save callee-safe register used in this function.  */
+ 	pushl %edi
+@@ -217,8 +215,8 @@ L(9):
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	RET_PTR
+-END (BP_SYM (__rawmemchr))
++	ret
++END (__rawmemchr)
+ 
+-libc_hidden_def (BP_SYM (__rawmemchr))
+-weak_alias (BP_SYM (__rawmemchr), BP_SYM (rawmemchr))
++libc_hidden_def (__rawmemchr)
++weak_alias (__rawmemchr, rawmemchr)
+diff --git a/sysdeps/i386/rshift.S b/sysdeps/i386/rshift.S
+index 48f7c4f89dc408d3..eba15a2b7acf089d 100644
+--- a/sysdeps/i386/rshift.S
++++ b/sysdeps/i386/rshift.S
+@@ -18,17 +18,15 @@
+ 
+ #include "sysdep.h"
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+12		/* space for 3 saved regs */
++#define PARMS	4+12		/* space for 3 saved regs */
+ #define RES	PARMS
+-#define S	RES+PTR_SIZE
+-#define SIZE	S+PTR_SIZE
++#define S	RES+4
++#define SIZE	S+4
+ #define CNT	SIZE+4
+ 
+ 	.text
+-ENTRY (BP_SYM (__mpn_rshift))
++ENTRY (__mpn_rshift)
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -104,4 +102,4 @@ L(end):	shrl	%cl,%ebx		/* compute most significant limb */
+ 	cfi_restore (edi)
+ 
+ 	ret
+-END (BP_SYM (__mpn_rshift))
++END (__mpn_rshift)
+diff --git a/sysdeps/i386/setjmp.S b/sysdeps/i386/setjmp.S
+index 8e7a4df25bd2ff8d..56e6631c489362fb 100644
+--- a/sysdeps/i386/setjmp.S
++++ b/sysdeps/i386/setjmp.S
+@@ -19,15 +19,13 @@
+ #include <sysdep.h>
+ #include <jmpbuf-offsets.h>
+ #include <asm-syntax.h>
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ #include <stap-probe.h>
+ 
+-#define PARMS	LINKAGE		/* no space for saved regs */
++#define PARMS	4		/* no space for saved regs */
+ #define JMPBUF	PARMS
+-#define SIGMSK	JMPBUF+PTR_SIZE
++#define SIGMSK	JMPBUF+4
+ 
+-ENTRY (BP_SYM (__sigsetjmp))
++ENTRY (__sigsetjmp)
+ 
+ 	movl JMPBUF(%esp), %eax
+ 
+@@ -40,7 +38,7 @@ ENTRY (BP_SYM (__sigsetjmp))
+ 	PTR_MANGLE (%ecx)
+ #endif
+      	movl %ecx, (JB_SP*4)(%eax)
+-	movl PCOFF(%esp), %ecx	/* Save PC we are returning to now.  */
++	movl 0(%esp), %ecx	/* Save PC we are returning to now.  */
+ 	LIBC_PROBE (setjmp, 3, 4@%eax, -4@SIGMSK(%esp), 4@%ecx)
+ #ifdef PTR_MANGLE
+ 	PTR_MANGLE (%ecx)
+@@ -56,4 +54,4 @@ ENTRY (BP_SYM (__sigsetjmp))
+ 	/* Make a tail call to __sigjmp_save; it takes the same args.  */
+ 	jmp __sigjmp_save
+ #endif
+-END (BP_SYM (__sigsetjmp))
++END (__sigsetjmp)
+diff --git a/sysdeps/i386/start.S b/sysdeps/i386/start.S
+index 990f3715d59fd6ea..4afb95205181e3f2 100644
+--- a/sysdeps/i386/start.S
++++ b/sysdeps/i386/start.S
+@@ -52,8 +52,6 @@
+ 					NULL
+ */
+ 
+-#include "bp-sym.h"
+-
+ 	.text
+ 	.globl _start
+ 	.type _start,@function
+@@ -97,11 +95,11 @@ _start:
+ 	pushl %ecx		/* Push second argument: argv.  */
+ 	pushl %esi		/* Push first argument: argc.  */
+ 
+-	pushl BP_SYM (main)@GOT(%ebx)
++	pushl main@GOT(%ebx)
+ 
+ 	/* Call the user's main function, and exit with its value.
+ 	   But let the libc call main.    */
+-	call BP_SYM (__libc_start_main)@PLT
++	call __libc_start_main@PLT
+ #else
+ 	/* Push address of our own entry points to .fini and .init.  */
+ 	pushl $__libc_csu_fini
+@@ -110,11 +108,11 @@ _start:
+ 	pushl %ecx		/* Push second argument: argv.  */
+ 	pushl %esi		/* Push first argument: argc.  */
+ 
+-	pushl $BP_SYM (main)
++	pushl $main
+ 
+ 	/* Call the user's main function, and exit with its value.
+ 	   But let the libc call main.    */
+-	call BP_SYM (__libc_start_main)
++	call __libc_start_main
+ #endif
+ 
+ 	hlt			/* Crash if somehow `exit' does return.  */
+diff --git a/sysdeps/i386/stpcpy.S b/sysdeps/i386/stpcpy.S
+index 3a01be3174ef0863..14573416254865c1 100644
+--- a/sysdeps/i386/stpcpy.S
++++ b/sysdeps/i386/stpcpy.S
+@@ -24,16 +24,14 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE		/* no space for saved regs */
++#define PARMS	4		/* no space for saved regs */
+ #define RTN	PARMS
+-#define DEST	RTN+RTN_SIZE
+-#define SRC	DEST+PTR_SIZE
++#define DEST	RTN
++#define SRC	DEST+4
+ 
+ 	.text
+-ENTRY (BP_SYM (__stpcpy))
++ENTRY (__stpcpy)
+ 
+ 	movl DEST(%esp), %eax
+ 	movl SRC(%esp), %ecx
+@@ -83,9 +81,9 @@ L(4):	incl %eax
+ L(3):	incl %eax
+ L(2):
+ 
+-	RET_PTR
+-END (BP_SYM (__stpcpy))
++	ret
++END (__stpcpy)
+ 
+-weak_alias (BP_SYM (__stpcpy), BP_SYM (stpcpy))
++weak_alias (__stpcpy, stpcpy)
+ libc_hidden_def (__stpcpy)
+ libc_hidden_builtin_def (stpcpy)
+diff --git a/sysdeps/i386/stpncpy.S b/sysdeps/i386/stpncpy.S
+index 7f3ca8c3b775b42f..870176640450258c 100644
+--- a/sysdeps/i386/stpncpy.S
++++ b/sysdeps/i386/stpncpy.S
+@@ -25,17 +25,15 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+4	/* space for 1 saved reg */
++#define PARMS	4+4	/* space for 1 saved reg */
+ #define RTN	PARMS
+-#define DEST	RTN+RTN_SIZE
+-#define SRC	DEST+PTR_SIZE
+-#define LEN	SRC+PTR_SIZE
++#define DEST	RTN
++#define SRC	DEST+4
++#define LEN	SRC+4
+ 
+ 	.text
+-ENTRY (BP_SYM (__stpncpy))
++ENTRY (__stpncpy)
+ 
+ 	pushl %esi
+ 	cfi_adjust_cfa_offset (4)
+@@ -142,8 +140,8 @@ L(9):	popl %esi		/* restore saved register content */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (esi)
+ 
+-	RET_PTR
+-END (BP_SYM (__stpncpy))
++	ret
++END (__stpncpy)
+ 
+-libc_hidden_def (BP_SYM (__stpncpy))
+-weak_alias (BP_SYM (__stpncpy), BP_SYM (stpncpy))
++libc_hidden_def (__stpncpy)
++weak_alias (__stpncpy, stpncpy)
+diff --git a/sysdeps/i386/strchr.S b/sysdeps/i386/strchr.S
+index aff95b9b7ee4c35c..0def0d2e8c4549ee 100644
+--- a/sysdeps/i386/strchr.S
++++ b/sysdeps/i386/strchr.S
+@@ -22,16 +22,14 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+4		/* space for 1 saved reg */
++#define PARMS	4+4		/* space for 1 saved reg */
+ #define RTN	PARMS
+-#define STR	RTN+RTN_SIZE
+-#define CHR	STR+PTR_SIZE
++#define STR	RTN
++#define CHR	STR+4
+ 
+ 	.text
+-ENTRY (BP_SYM (strchr))
++ENTRY (strchr)
+ 
+ 	pushl %edi		/* Save callee-safe registers used here.  */
+ 	cfi_adjust_cfa_offset (4)
+@@ -246,7 +244,7 @@ L(2):	/* Return NULL.  */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	RET_PTR
++	ret
+ 
+ 	cfi_adjust_cfa_offset (4)
+ 	cfi_rel_offset (edi, 0)
+@@ -286,8 +284,8 @@ L(6):
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	RET_PTR
+-END (BP_SYM (strchr))
++	ret
++END (strchr)
+ 
+-weak_alias (BP_SYM (strchr), BP_SYM (index))
++weak_alias (strchr, index)
+ libc_hidden_builtin_def (strchr)
+diff --git a/sysdeps/i386/strchrnul.S b/sysdeps/i386/strchrnul.S
+index 2aa7d82cc8af1dfc..6d2da6d6b1f1d306 100644
+--- a/sysdeps/i386/strchrnul.S
++++ b/sysdeps/i386/strchrnul.S
+@@ -22,16 +22,14 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+4	/* space for 1 saved reg */
++#define PARMS	4+4	/* space for 1 saved reg */
+ #define RTN	PARMS
+-#define STR	RTN+RTN_SIZE
+-#define CHR	STR+PTR_SIZE
++#define STR	RTN
++#define CHR	STR+4
+ 
+ 	.text
+-ENTRY (BP_SYM (__strchrnul))
++ENTRY (__strchrnul)
+ 
+ 	pushl %edi		/* Save callee-safe registers used here.  */
+ 	cfi_adjust_cfa_offset (4)
+@@ -274,7 +272,7 @@ L(6):	popl %edi		/* restore saved register content */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	RET_PTR
+-END (BP_SYM (__strchrnul))
++	ret
++END (__strchrnul)
+ 
+-weak_alias (BP_SYM (__strchrnul), BP_SYM (strchrnul))
++weak_alias (__strchrnul, strchrnul)
+diff --git a/sysdeps/i386/strcspn.S b/sysdeps/i386/strcspn.S
+index 40b5207809f74530..78becc3862d0cf15 100644
+--- a/sysdeps/i386/strcspn.S
++++ b/sysdeps/i386/strcspn.S
+@@ -22,15 +22,13 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE		/* no space for saved regs */
++#define PARMS	4		/* no space for saved regs */
+ #define STR	PARMS
+-#define STOP	STR+PTR_SIZE
++#define STOP	STR+4
+ 
+ 	.text
+-ENTRY (BP_SYM (strcspn))
++ENTRY (strcspn)
+ 
+ 	movl STR(%esp), %edx
+ 	movl STOP(%esp), %eax
+@@ -238,5 +236,5 @@ L(4):	addl $256, %esp		/* remove stopset */
+ 				   characters, so compute distance to first
+ 				   non-valid character */
+ 	ret
+-END (BP_SYM (strcspn))
++END (strcspn)
+ libc_hidden_builtin_def (strcspn)
+diff --git a/sysdeps/i386/strpbrk.S b/sysdeps/i386/strpbrk.S
+index ae35ba44f6a624a7..0ecd6dae9fcaa701 100644
+--- a/sysdeps/i386/strpbrk.S
++++ b/sysdeps/i386/strpbrk.S
+@@ -22,16 +22,14 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE		/* no space for saved regs */
++#define PARMS	4		/* no space for saved regs */
+ #define RTN	PARMS
+-#define STR	RTN+RTN_SIZE
+-#define STOP	STR+PTR_SIZE
++#define STR	RTN
++#define STOP	STR+4
+ 
+ 	.text
+-ENTRY (BP_SYM (strpbrk))
++ENTRY (strpbrk)
+ 
+ 	movl STR(%esp), %edx
+ 	movl STOP(%esp), %eax
+@@ -240,6 +238,6 @@ L(4):	addl $256, %esp		/* remove stopset */
+ 	jnz L(7)		/* no => return pointer */
+ 	xorl %eax, %eax
+ 
+-L(7):	RET_PTR
+-END (BP_SYM (strpbrk))
++L(7):	ret
++END (strpbrk)
+ libc_hidden_builtin_def (strpbrk)
+diff --git a/sysdeps/i386/strrchr.S b/sysdeps/i386/strrchr.S
+index 57931c165831aa55..1fed985db81f6da2 100644
+--- a/sysdeps/i386/strrchr.S
++++ b/sysdeps/i386/strrchr.S
+@@ -21,16 +21,14 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+8	/* space for 2 saved regs */
++#define PARMS	4+8	/* space for 2 saved regs */
+ #define RTN	PARMS
+-#define STR	RTN+RTN_SIZE
+-#define CHR	STR+PTR_SIZE
++#define STR	RTN
++#define CHR	STR+4
+ 
+ 	.text
+-ENTRY (BP_SYM (strrchr))
++ENTRY (strrchr)
+ 
+ 	pushl %edi		/* Save callee-safe registers used here.  */
+ 	cfi_adjust_cfa_offset (4)
+@@ -329,8 +327,8 @@ L(2):	popl %esi		/* restore saved register content */
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (edi)
+ 
+-	RET_PTR
+-END (BP_SYM (strrchr))
++	ret
++END (strrchr)
+ 
+-weak_alias (BP_SYM (strrchr), BP_SYM (rindex))
++weak_alias (strrchr, rindex)
+ libc_hidden_builtin_def (strrchr)
+diff --git a/sysdeps/i386/strspn.S b/sysdeps/i386/strspn.S
+index 2b5c2a4c670bdfa2..aec4f290a332b2cf 100644
+--- a/sysdeps/i386/strspn.S
++++ b/sysdeps/i386/strspn.S
+@@ -22,15 +22,13 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE		/* no space for saved regs */
++#define PARMS	4		/* no space for saved regs */
+ #define STR	PARMS
+-#define SKIP	STR+PTR_SIZE
++#define SKIP	STR+4
+ 
+ 	.text
+-ENTRY (BP_SYM (strspn))
++ENTRY (strspn)
+ 
+ 	movl STR(%esp), %edx
+ 	movl SKIP(%esp), %eax
+@@ -238,5 +236,5 @@ L(4):	addl $256, %esp		/* remove stopset */
+ 				   characters, so compute distance to first
+ 				   non-valid character */
+ 	ret
+-END (BP_SYM (strspn))
++END (strspn)
+ libc_hidden_builtin_def (strspn)
+diff --git a/sysdeps/i386/strtok.S b/sysdeps/i386/strtok.S
+index eb586928eb19bf21..d852027b870b0530 100644
+--- a/sysdeps/i386/strtok.S
++++ b/sysdeps/i386/strtok.S
+@@ -20,8 +20,6 @@
+ 
+ #include <sysdep.h>
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+ /* This file can be used for three variants of the strtok function:
+ 
+@@ -57,14 +55,14 @@ save_ptr:
+ # define FUNCTION strtok
+ #endif
+ 
+-#define PARMS	LINKAGE		/* no space for saved regs */
++#define PARMS	4		/* no space for saved regs */
+ #define RTN	PARMS
+-#define STR	RTN+RTN_SIZE
+-#define DELIM	STR+PTR_SIZE
+-#define SAVE	DELIM+PTR_SIZE
++#define STR	RTN
++#define DELIM	STR+4
++#define SAVE	DELIM+4
+ 
+ 	.text
+-ENTRY (BP_SYM (FUNCTION))
++ENTRY (FUNCTION)
+ 
+ 	movl STR(%esp), %edx
+ 	movl DELIM(%esp), %eax
+@@ -347,7 +345,7 @@ L(epilogue):
+ 	cfi_adjust_cfa_offset (-4)
+ 	cfi_restore (ebx)
+ #endif
+-	RET_PTR
++	ret
+ 
+ L(returnNULL):
+ 	xorl %eax, %eax
+@@ -357,4 +355,4 @@ L(returnNULL):
+ 	movl %edx, SAVE_PTR
+ 	jmp L(epilogue)
+ 
+-END (BP_SYM (FUNCTION))
++END (FUNCTION)
+diff --git a/sysdeps/i386/strtok_r.S b/sysdeps/i386/strtok_r.S
+index f4a6a2c409ed1e22..508729370a17069b 100644
+--- a/sysdeps/i386/strtok_r.S
++++ b/sysdeps/i386/strtok_r.S
+@@ -1,5 +1,5 @@
+ #define FUNCTION __strtok_r
+ #define USE_AS_STRTOK_R	1
+ #include <sysdeps/i386/strtok.S>
+-weak_alias (BP_SYM (__strtok_r), BP_SYM (strtok_r))
+-strong_alias (BP_SYM (__strtok_r), BP_SYM (__GI___strtok_r))
++weak_alias (__strtok_r, strtok_r)
++strong_alias (__strtok_r, __GI___strtok_r)
+diff --git a/sysdeps/i386/sub_n.S b/sysdeps/i386/sub_n.S
+index 2a09256f9c71f93a..1c6592db037cf19e 100644
+--- a/sysdeps/i386/sub_n.S
++++ b/sysdeps/i386/sub_n.S
+@@ -20,17 +20,15 @@
+ 
+ #include "sysdep.h"
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+8		/* space for 2 saved regs */
++#define PARMS	4+8		/* space for 2 saved regs */
+ #define RES	PARMS
+-#define S1	RES+PTR_SIZE
+-#define S2	S1+PTR_SIZE
+-#define SIZE	S2+PTR_SIZE
++#define S1	RES+4
++#define S2	S1+4
++#define SIZE	S2+4
+ 
+ 	.text
+-ENTRY (BP_SYM (__mpn_sub_n))
++ENTRY (__mpn_sub_n)
+ 
+ 	pushl %edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -111,4 +109,4 @@ L(oop):	movl	(%esi),%eax
+ 	cfi_restore (edi)
+ 
+ 	ret
+-END (BP_SYM (__mpn_sub_n))
++END (__mpn_sub_n)
+diff --git a/sysdeps/i386/submul_1.S b/sysdeps/i386/submul_1.S
+index c7054e0f6bd48a5e..9e03f504cf5070cd 100644
+--- a/sysdeps/i386/submul_1.S
++++ b/sysdeps/i386/submul_1.S
+@@ -19,13 +19,11 @@
+ 
+ #include "sysdep.h"
+ #include "asm-syntax.h"
+-#include "bp-sym.h"
+-#include "bp-asm.h"
+ 
+-#define PARMS	LINKAGE+16	/* space for 4 saved regs */
++#define PARMS	4+16	/* space for 4 saved regs */
+ #define RES	PARMS
+-#define S1	RES+PTR_SIZE
+-#define SIZE	S1+PTR_SIZE
++#define S1	RES+4
++#define SIZE	S1+4
+ #define S2LIMB	SIZE+4
+ 
+ #define res_ptr edi
+@@ -34,7 +32,7 @@
+ #define s2_limb ebx
+ 
+ 	.text
+-ENTRY (BP_SYM (__mpn_submul_1))
++ENTRY (__mpn_submul_1)
+ 
+ 	pushl	%edi
+ 	cfi_adjust_cfa_offset (4)
+@@ -85,4 +83,4 @@ L(oop):
+ 	cfi_restore (edi)
+ 
+ 	ret
+-END (BP_SYM (__mpn_submul_1))
++END (__mpn_submul_1)
+diff --git a/sysdeps/unix/i386/sysdep.S b/sysdeps/unix/i386/sysdep.S
+index 1795ace4136abdde..aee9655fe9497f9f 100644
+--- a/sysdeps/unix/i386/sysdep.S
++++ b/sysdeps/unix/i386/sysdep.S
+@@ -19,8 +19,6 @@
+ #include <sysdep.h>
+ #define _ERRNO_H
+ #include <bits/errno.h>
+-#include <bp-asm.h>
+-#include <bp-sym.h>
+ 
+ #if IS_IN (rtld)
+ # include <dl-sysdep.h>		/* Defines RTLD_PRIVATE_ERRNO.  */
+diff --git a/sysdeps/unix/sysv/linux/i386/clone.S b/sysdeps/unix/sysv/linux/i386/clone.S
+index 1aa2a1f828b944a6..da57c8e5df43ab54 100644
+--- a/sysdeps/unix/sysv/linux/i386/clone.S
++++ b/sysdeps/unix/sysv/linux/i386/clone.S
+@@ -23,20 +23,18 @@
+ #define _ERRNO_H	1
+ #include <bits/errno.h>
+ #include <asm-syntax.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
+ 	     pid_t *ptid, struct user_desc *tls, pid_t *ctid); */
+ 
+-#define PARMS	LINKAGE		/* no space for saved regs */
++#define PARMS	4		/* no space for saved regs */
+ #define FUNC	PARMS
+ #define STACK	FUNC+4
+-#define FLAGS	STACK+PTR_SIZE
++#define FLAGS	STACK+4
+ #define ARG	FLAGS+4
+-#define PTID	ARG+PTR_SIZE
+-#define TLS	PTID+PTR_SIZE
+-#define CTID	TLS+PTR_SIZE
++#define PTID	ARG+4
++#define TLS	PTID+4
++#define CTID	TLS+4
+ 
+ #define __NR_clone 120
+ #define SYS_clone 120
+@@ -45,7 +43,7 @@
+ #define CLONE_THREAD	0x00010000
+ 
+         .text
+-ENTRY (BP_SYM (__clone))
++ENTRY (__clone)
+ 	/* Sanity check arguments.  */
+ 	movl	$-EINVAL,%eax
+ 	movl	FUNC(%esp),%ecx		/* no NULL function pointers */
+@@ -156,6 +154,6 @@ L(nomoregetpid):
+ 	cfi_endproc;
+ 
+ 	cfi_startproc
+-PSEUDO_END (BP_SYM (__clone))
++PSEUDO_END (__clone)
+ 
+-weak_alias (BP_SYM (__clone), BP_SYM (clone))
++weak_alias (__clone, clone)
+diff --git a/sysdeps/unix/sysv/linux/i386/mmap64.S b/sysdeps/unix/sysv/linux/i386/mmap64.S
+index 8855109ff935a666..6765cd87000e27b8 100644
+--- a/sysdeps/unix/sysv/linux/i386/mmap64.S
++++ b/sysdeps/unix/sysv/linux/i386/mmap64.S
+@@ -16,8 +16,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -25,9 +23,9 @@
+ #define ENOSYS	38
+ 
+ #define SVRSP	16		/* saved register space */
+-#define PARMS	LINKAGE+SVRSP	/* space for 4 saved regs */
++#define PARMS	4+SVRSP	/* space for 4 saved regs */
+ #define ADDR	PARMS
+-#define LEN	ADDR+PTR_SIZE
++#define LEN	ADDR+4
+ #define PROT	LEN+4
+ #define FLAGS	PROT+4
+ #define FD	FLAGS+4
+@@ -35,7 +33,7 @@
+ #define OFFHI	OFFLO+4
+ 
+ 	.text
+-ENTRY (BP_SYM (__mmap64))
++ENTRY (__mmap64)
+ 
+ 	/* Save registers.  */
+ 	pushl %ebp
+@@ -115,6 +113,6 @@ L(einval):
+ 	movl $-EINVAL, %eax
+ 	jmp SYSCALL_ERROR_LABEL
+ 
+-PSEUDO_END (BP_SYM (__mmap64))
++PSEUDO_END (__mmap64)
+ 
+-weak_alias (BP_SYM (__mmap64), BP_SYM (mmap64))
++weak_alias (__mmap64, mmap64)
+diff --git a/sysdeps/unix/sysv/linux/i386/posix_fadvise64.S b/sysdeps/unix/sysv/linux/i386/posix_fadvise64.S
+index 00e6a4194d557645..1f29d8c37f61abd6 100644
+--- a/sysdeps/unix/sysv/linux/i386/posix_fadvise64.S
++++ b/sysdeps/unix/sysv/linux/i386/posix_fadvise64.S
+@@ -16,15 +16,13 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ #define EINVAL	22
+ #define ENOSYS	38
+ #define EOVERFLOW 75
+ 
+ #define SVRSP	16		/* saved register space */
+-#define PARMS	LINKAGE+SVRSP	/* space for 4 saved regs */
++#define PARMS	4+SVRSP	/* space for 4 saved regs */
+ #define FD	PARMS
+ #define OFFLO	FD+4
+ #define OFFHI	OFFLO+4
+@@ -33,7 +31,7 @@
+ #define FLAGS	LENHI+4
+ 
+ 	.text
+-ENTRY (BP_SYM (__posix_fadvise64_l64))
++ENTRY (__posix_fadvise64_l64)
+ 
+ 	/* Save registers.  */
+ 	pushl	%ebp
+@@ -81,7 +79,7 @@ ENTRY (BP_SYM (__posix_fadvise64_l64))
+ 	/* Successful; return the syscall's value.  */
+ 	ret
+ 
+-END (BP_SYM (__posix_fadvise64_l64))
++END (__posix_fadvise64_l64)
+ 
+ 	.section	.text.compat, "ax"
+ ENTRY (__posix_fadvise64_l32)
+diff --git a/sysdeps/unix/sysv/linux/i386/semtimedop.S b/sysdeps/unix/sysv/linux/i386/semtimedop.S
+index 785be2efc9dd93c5..1acf775b80a20b53 100644
+--- a/sysdeps/unix/sysv/linux/i386/semtimedop.S
++++ b/sysdeps/unix/sysv/linux/i386/semtimedop.S
+@@ -21,14 +21,14 @@
+ #define SYSOP_semtimedop 4
+ 
+ #define SVRSP	12		/* saved register space */
+-#define PARMS	LINKAGE+SVRSP	/* space for 3 saved regs */
++#define PARMS	4+SVRSP	/* space for 3 saved regs */
+ #define SEMID	PARMS
+ #define SOPS	SEMID+4
+-#define NSOPS	SOPS+PTR_SIZE
++#define NSOPS	SOPS+4
+ #define TIMEOUT	NSOPS+4
+ 
+ 	.text
+-ENTRY (BP_SYM (semtimedop))
++ENTRY (semtimedop)
+ 
+ 	pushl	%ebp
+ 	cfi_adjust_cfa_offset (4)
+@@ -70,4 +70,4 @@ ENTRY (BP_SYM (semtimedop))
+ #ifdef PIC
+ 	.align	4
+ #endif
+-PSEUDO_END (BP_SYM (semtimedop))
++PSEUDO_END (semtimedop)
+diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h
+index b99b67c830184e95..dfbdb2084491af90 100644
+--- a/sysdeps/unix/sysv/linux/i386/sysdep.h
++++ b/sysdeps/unix/sysv/linux/i386/sysdep.h
+@@ -21,8 +21,6 @@
+ 
+ /* There is some commonality.  */
+ #include <sysdeps/unix/i386/sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ /* Defines RTLD_PRIVATE_ERRNO and USE_DL_SYSINFO.  */
+ #include <dl-sysdep.h>
+ #include <tls.h>
diff --git a/SOURCES/glibc-rh1505492-bounded-16.patch b/SOURCES/glibc-rh1505492-bounded-16.patch
new file mode 100644
index 0000000..4bbea5c
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-bounded-16.patch
@@ -0,0 +1,1837 @@
+commit b5510883226aede4e54f9271bbfa9d5585038bde
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Thu Feb 28 21:23:47 2013 +0000
+
+    Remove powerpc32 bounded-pointers code.
+
+Conflicts:
+	sysdeps/powerpc/powerpc32/bp-asm.h
+	  (Copyright header change; file removed manually.)
+	sysdeps/powerpc/powerpc32/power7/memcmp.S
+	sysdeps/powerpc/powerpc32/power7/strnlen.S
+	sysdeps/powerpc/powerpc32/strlen.S
+	  (Conflicts due to earlier string function backports.)
+
+diff --git a/ports/sysdeps/powerpc/powerpc32/405/memcmp.S b/ports/sysdeps/powerpc/powerpc32/405/memcmp.S
+index b9628b194160caae..b28877e211fa2b26 100644
+--- a/ports/sysdeps/powerpc/powerpc32/405/memcmp.S
++++ b/ports/sysdeps/powerpc/powerpc32/405/memcmp.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* memcmp
+ 
+@@ -32,7 +30,7 @@
+        return src1 > src2, src1 < src2 or src1 = src2.
+        If src1 = src2 and no null, repeat. */
+ 
+-EALIGN (BP_SYM (memcmp), 5, 0)
++EALIGN (memcmp, 5, 0)
+        srwi.   r6,r5,5
+        beq     L(preword2_count_loop)
+        mtctr   r6
+@@ -125,6 +123,6 @@ L(st2):
+        blt     cr5,L(l_r)
+        addi    r3,r0,-1
+        blr
+-END (BP_SYM (memcmp))
++END (memcmp)
+ libc_hidden_builtin_def (memcmp)
+ weak_alias (memcmp,bcmp)
+diff --git a/ports/sysdeps/powerpc/powerpc32/405/memcpy.S b/ports/sysdeps/powerpc/powerpc32/405/memcpy.S
+index 61025cf818093f37..56fc3a8139feda9b 100644
+--- a/ports/sysdeps/powerpc/powerpc32/405/memcpy.S
++++ b/ports/sysdeps/powerpc/powerpc32/405/memcpy.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* memcpy
+ 
+@@ -33,7 +31,7 @@
+        If 32 or more bytes to copy we use 32 byte copy loop.
+        Finaly we copy 0-31 extra bytes. */
+ 
+-EALIGN (BP_SYM (memcpy), 5, 0)
++EALIGN (memcpy, 5, 0)
+ /* Check if bytes to copy are greater than 256 and if
+        source and destination are unaligned */
+        cmpwi   r5,0x0100
+@@ -128,5 +126,5 @@ L(word4_count_loop_no_dcbt): /* Copy 32 bytes at a time */
+ L(end_memcpy):
+        mr       r3,r0
+        blr
+-END (BP_SYM (memcpy))
++END (memcpy)
+ libc_hidden_builtin_def (memcpy)
+diff --git a/ports/sysdeps/powerpc/powerpc32/405/memset.S b/ports/sysdeps/powerpc/powerpc32/405/memset.S
+index c2ee6c593cf9e80f..bf3edaa92df78928 100644
+--- a/ports/sysdeps/powerpc/powerpc32/405/memset.S
++++ b/ports/sysdeps/powerpc/powerpc32/405/memset.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* memset
+ 
+@@ -37,7 +35,7 @@
+        If 16 or more words to set we use 16 word copy loop.
+        Finaly we set 0-15 extra bytes with string store. */
+ 
+-EALIGN (BP_SYM (memset), 5, 0)
++EALIGN (memset, 5, 0)
+        rlwinm  r11,r4,0,24,31
+        rlwimi  r11,r4,8,16,23
+        rlwimi  r11,r11,16,0,15
+@@ -150,5 +148,5 @@ L(postword2_count_loop):
+        mtxer   r7
+        stswx   r8,0,r3
+        b       L(end_memset)
+-END (BP_SYM (memset))
++END (memset)
+ libc_hidden_builtin_def (memset)
+diff --git a/ports/sysdeps/powerpc/powerpc32/405/strcmp.S b/ports/sysdeps/powerpc/powerpc32/405/strcmp.S
+index 9cd0e24f24604d4a..be536b50f4c56149 100644
+--- a/ports/sysdeps/powerpc/powerpc32/405/strcmp.S
++++ b/ports/sysdeps/powerpc/powerpc32/405/strcmp.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* strcmp
+ 
+@@ -34,7 +32,7 @@
+        return src1 > src2, src1 < src2 or src1 = src2.
+        If src1 = src2 and no null, repeat. */
+ 
+-EALIGN (BP_SYM(strcmp),5,0)
++EALIGN (strcmp,5,0)
+        neg     r7,r3
+        clrlwi  r7,r7,20
+        neg     r8,r4
+@@ -132,5 +130,5 @@ L(byte_loop):
+        cmpwi   r5,0
+        beq     L(end_strcmp)
+        b       L(byte_loop)
+-END (BP_SYM (strcmp))
++END (strcmp)
+ libc_hidden_builtin_def (strcmp)
+diff --git a/ports/sysdeps/powerpc/powerpc32/405/strcpy.S b/ports/sysdeps/powerpc/powerpc32/405/strcpy.S
+index 8e6c396e5d3b0e7c..17f3d020f3914ca4 100644
+--- a/ports/sysdeps/powerpc/powerpc32/405/strcpy.S
++++ b/ports/sysdeps/powerpc/powerpc32/405/strcpy.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* strcpy
+ 
+@@ -33,7 +31,7 @@
+        where in the last 8 bytes it is. Copy the appropriate bytes of the last
+        8 according to the null position. */
+ 
+-EALIGN (BP_SYM (strcpy), 5, 0)
++EALIGN (strcpy, 5, 0)
+        neg     r7,r4
+        subi    r4,r4,1
+        clrlwi. r8,r7,29
+@@ -105,5 +103,5 @@ L(last_bytes_copy_loop2):
+ 
+ L(end_strcpy):
+        blr
+-END (BP_SYM (strcpy))
++END (strcpy)
+ libc_hidden_builtin_def (strcpy)
+diff --git a/ports/sysdeps/powerpc/powerpc32/405/strlen.S b/ports/sysdeps/powerpc/powerpc32/405/strlen.S
+index 210a3afd92460378..f53951d99bc7e13c 100644
+--- a/ports/sysdeps/powerpc/powerpc32/405/strlen.S
++++ b/ports/sysdeps/powerpc/powerpc32/405/strlen.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* strlen
+ 
+@@ -31,7 +29,7 @@
+        the count and return the count value. We need to subtract one because
+        we don't count the null character as a byte. */
+ 
+-EALIGN (BP_SYM (strlen),5,0)
++EALIGN (strlen,5,0)
+        neg     r7,r3
+        clrlwi. r8,r7,29
+        addi    r4,0,0
+@@ -73,5 +71,5 @@ L(byte_count_loop):
+ L(end_strlen):
+        addi    r3,r4,-1
+        blr
+-END (BP_SYM (strlen))
++END (strlen)
+ libc_hidden_builtin_def (strlen)
+diff --git a/ports/sysdeps/powerpc/powerpc32/405/strncmp.S b/ports/sysdeps/powerpc/powerpc32/405/strncmp.S
+index af374c9068796a4f..68079091273e0293 100644
+--- a/ports/sysdeps/powerpc/powerpc32/405/strncmp.S
++++ b/ports/sysdeps/powerpc/powerpc32/405/strncmp.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* strncmp
+ 
+@@ -39,7 +37,7 @@
+        return src1 > src2, src1 < src2 or src1 = src2.
+        If src1 = src2 and no null, repeat. */
+ 
+-EALIGN (BP_SYM(strncmp),5,0)
++EALIGN (strncmp,5,0)
+        neg     r7,r3
+        clrlwi  r7,r7,20
+        neg     r8,r4
+@@ -126,5 +124,5 @@ L(end_strncmp):
+ L(st1):
+        mfcr    r3
+        blr
+-END (BP_SYM (strncmp))
++END (strncmp)
+ libc_hidden_builtin_def (strncmp)
+diff --git a/ports/sysdeps/powerpc/powerpc32/476/memset.S b/ports/sysdeps/powerpc/powerpc32/476/memset.S
+index 8b5750442b785769..17b933430a99d41b 100644
+--- a/ports/sysdeps/powerpc/powerpc32/476/memset.S
++++ b/ports/sysdeps/powerpc/powerpc32/476/memset.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* memset
+ 
+@@ -37,7 +35,7 @@
+        If 16 or more words to set we use 16 word copy loop.
+        Finaly we set 0-15 extra bytes with string store. */
+ 
+-EALIGN (BP_SYM (memset), 5, 0)
++EALIGN (memset, 5, 0)
+        rlwinm  r11,r4,0,24,31
+        rlwimi  r11,r4,8,16,23
+        rlwimi  r11,r11,16,0,15
+@@ -150,5 +148,5 @@ L(postword2_count_loop):
+        mtxer   r7
+        stswx   r8,0,r3
+        b       L(end_memset)
+-END (BP_SYM (memset))
++END (memset)
+ libc_hidden_builtin_def (memset)
+diff --git a/sysdeps/powerpc/powerpc32/__longjmp-common.S b/sysdeps/powerpc/powerpc32/__longjmp-common.S
+index fa46b6dcf4db352b..dc464e499d538ab1 100644
+--- a/sysdeps/powerpc/powerpc32/__longjmp-common.S
++++ b/sysdeps/powerpc/powerpc32/__longjmp-common.S
+@@ -24,11 +24,8 @@
+ #else
+ # include <jmpbuf-offsets.h>
+ #endif
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+-ENTRY (BP_SYM (__longjmp))
+-	CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
++ENTRY (__longjmp)
+ 
+ #if defined PTR_DEMANGLE || defined CHECK_SP
+ 	lwz r24,(JB_GPR1*4)(r3)
+@@ -72,4 +69,4 @@ ENTRY (BP_SYM (__longjmp))
+ 	lwz r31,((JB_GPRS+17)*4)(r3)
+ 	mr r3,r4
+ 	blr
+-END (BP_SYM (__longjmp))
++END (__longjmp)
+diff --git a/sysdeps/powerpc/powerpc32/a2/memcpy.S b/sysdeps/powerpc/powerpc32/a2/memcpy.S
+index f88e2dcd43b32319..257113d1a356924c 100644
+--- a/sysdeps/powerpc/powerpc32/a2/memcpy.S
++++ b/sysdeps/powerpc/powerpc32/a2/memcpy.S
+@@ -18,14 +18,12 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ #define PREFETCH_AHEAD 4        /* no cache lines SRC prefetching ahead  */
+ #define ZERO_AHEAD 2            /* no cache lines DST zeroing ahead  */
+ 
+ 	.machine  a2
+-EALIGN (BP_SYM (memcpy), 5, 0)
++EALIGN (memcpy, 5, 0)
+ 	CALL_MCOUNT
+ 
+ 	dcbt    0,r4            /* Prefetch ONE SRC cacheline  */
+@@ -525,5 +523,5 @@ L(endloop2_128):
+ 	b       L(lessthancacheline)
+ 
+ 
+-END (BP_SYM (memcpy))
++END (memcpy)
+ libc_hidden_builtin_def (memcpy)
+diff --git a/sysdeps/powerpc/powerpc32/add_n.S b/sysdeps/powerpc/powerpc32/add_n.S
+index 4ff7c87675080fd1..fa9d35f7bf269811 100644
+--- a/sysdeps/powerpc/powerpc32/add_n.S
++++ b/sysdeps/powerpc/powerpc32/add_n.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* mp_limb_t mpn_add_n (mp_ptr res_ptr, mp_srcptr s1_ptr, mp_srcptr s2_ptr,
+                         mp_size_t size)
+@@ -28,14 +26,8 @@
+    possible 2-unrolled inner loop will not be.  Also, watch out for the
+    alignment...  */
+ 
+-EALIGN (BP_SYM (__mpn_add_n), 3, 0)
++EALIGN (__mpn_add_n, 3, 0)
+ 
+-#if __BOUNDED_POINTERS__
+-	slwi r10,r6,2		/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (r3, r8, r9, r10)
+-	CHECK_BOUNDS_BOTH_WIDE (r4, r8, r9, r10)
+-	CHECK_BOUNDS_BOTH_WIDE (r5, r8, r9, r10)
+-#endif
+ /* Set up for loop below.  */
+ 	mtcrf 0x01,r6
+ 	srwi. r7,r6,1
+@@ -73,4 +65,4 @@ L(0):	lwz  r9,4(r4)
+ /* Return the carry.  */
+ L(1):	addze r3,r10
+ 	blr
+-END (BP_SYM (__mpn_add_n))
++END (__mpn_add_n)
+diff --git a/sysdeps/powerpc/powerpc32/addmul_1.S b/sysdeps/powerpc/powerpc32/addmul_1.S
+index 3f23833bcbba023a..8cf3001b3f5140c3 100644
+--- a/sysdeps/powerpc/powerpc32/addmul_1.S
++++ b/sysdeps/powerpc/powerpc32/addmul_1.S
+@@ -17,18 +17,11 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* mp_limb_t mpn_addmul_1 (mp_ptr res_ptr, mp_srcptr s1_ptr,
+                            mp_size_t s1_size, mp_limb_t s2_limb)
+    Calculate res+s1*s2 and put result back in res; return carry.  */
+-ENTRY (BP_SYM (__mpn_addmul_1))
+-#if __BOUNDED_POINTERS__
+-	slwi r10,r5,2		/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (r3, r8, r9, r10)
+-	CHECK_BOUNDS_BOTH_WIDE (r4, r8, r9, r10)
+-#endif
++ENTRY (__mpn_addmul_1)
+ 	mtctr	r5
+ 
+ 	lwz	r0,0(r4)
+@@ -52,4 +45,4 @@ L(0):	lwzu	r0,4(r4)
+ L(1):	stw	r8,4(r3)
+ 	addze	r3,r10
+ 	blr
+-END (BP_SYM (__mpn_addmul_1))
++END (__mpn_addmul_1)
+diff --git a/sysdeps/powerpc/powerpc32/bp-asm.h b/sysdeps/powerpc/powerpc32/bp-asm.h
+deleted file mode 100644
+index 16afbb22510e257b..0000000000000000
+--- a/sysdeps/powerpc/powerpc32/bp-asm.h
++++ /dev/null
+@@ -1,112 +0,0 @@
+-/* Bounded-pointer definitions for PowerPC assembler.
+-   Copyright (C) 2000 Free Software Foundation, Inc.
+-   Contributed by Greg McGary <greg@mcgary.org>
+-   This file is part of the GNU C Library.  Its master source is NOT part of
+-   the C library, however.  The master source lives in the GNU MP 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 __BOUNDED_POINTERS__
+-
+-/* Byte offsets of BP components.  */
+-# define oVALUE	0
+-# define oLOW	4
+-# define oHIGH	8
+-
+-/* Don't check bounds, just convert the BP register to its simple
+-   pointer value.  */
+-
+-# define DISCARD_BOUNDS(rBP)			\
+-	lwz	rBP, oVALUE(rBP)
+-
+-/* Check low bound, with the side effect that the BP register is converted
+-   its simple pointer value.  Move the high bound into a register for
+-   later use.  */
+-
+-# define CHECK_BOUNDS_LOW(rBP, rLOW, rHIGH)	\
+-	lwz	rHIGH, oHIGH(rBP);		\
+-	lwz	rLOW, oLOW(rBP);		\
+-	lwz	rBP, oVALUE(rBP);		\
+-	twllt	rBP, rLOW
+-
+-/* Check the high bound, which is in a register, using the given
+-   conditional trap instruction.  */
+-
+-# define CHECK_BOUNDS_HIGH(rVALUE, rHIGH, TWLcc) \
+-	TWLcc	rVALUE, rHIGH
+-
+-/* Check the high bound, which is stored at the return-value's high
+-   bound slot, using the given conditional trap instruction.  */
+-
+-# define CHECK_BOUNDS_HIGH_RTN(rVALUE, rHIGH, TWLcc)	\
+-	lwz	rHIGH, oHIGH(rRTN);			\
+-	TWLcc	rVALUE, rHIGH
+-
+-/* Check both bounds, with the side effect that the BP register is
+-   converted to its simple pointer value.  */
+-
+-# define CHECK_BOUNDS_BOTH(rBP, rLOW, rHIGH)	\
+-	CHECK_BOUNDS_LOW(rBP, rLOW, rHIGH);	\
+-	twlge	rBP, rHIGH
+-
+-/* Check bounds on a memory region of given length, with the side
+-   effect that the BP register is converted to its simple pointer
+-   value.  */
+-
+-# define CHECK_BOUNDS_BOTH_WIDE(rBP, rLOW, rHIGH, rLENGTH)	\
+-	CHECK_BOUNDS_LOW (rBP, rLOW, rHIGH);			\
+-	sub	rHIGH, rHIGH, rLENGTH;				\
+-	twlgt	rBP, rHIGH
+-
+-# define CHECK_BOUNDS_BOTH_WIDE_LIT(rBP, rLOW, rHIGH, LENGTH)	\
+-	CHECK_BOUNDS_LOW (rBP, rLOW, rHIGH);			\
+-	subi	rHIGH, rHIGH, LENGTH;				\
+-	twlgt	rBP, rHIGH
+-
+-/* Store a pointer value register into the return-value's pointer
+-   value slot.  */
+-
+-# define STORE_RETURN_VALUE(rVALUE)		\
+-	stw	rVALUE, oVALUE(rRTN)
+-
+-/* Store a low and high bounds into the return-value's pointer bounds
+-   slots.  */
+-
+-# define STORE_RETURN_BOUNDS(rLOW, rHIGH)	\
+-	stw	rLOW, oLOW(rRTN);		\
+-	stw	rHIGH, oHIGH(rRTN)
+-
+-/* Stuff zero value/low/high into the BP addressed by rRTN.  */
+-
+-# define RETURN_NULL_BOUNDED_POINTER		\
+-	li	r4, 0;				\
+-	STORE_RETURN_VALUE (r4);		\
+-	STORE_RETURN_BOUNDS (r4, r4)
+-
+-#else
+-
+-# define DISCARD_BOUNDS(rBP)
+-# define CHECK_BOUNDS_LOW(rBP, rLOW, rHIGH)
+-# define CHECK_BOUNDS_HIGH(rVALUE, rHIGH, TWLcc)
+-# define CHECK_BOUNDS_HIGH_RTN(rVALUE, rHIGH, TWLcc)
+-# define CHECK_BOUNDS_BOTH(rBP, rLOW, rHIGH)
+-# define CHECK_BOUNDS_BOTH_WIDE(rBP, rLOW, rHIGH, rLENGTH)
+-# define CHECK_BOUNDS_BOTH_WIDE_LIT(rBP, rLOW, rHIGH, LENGTH)
+-# define STORE_RETURN_VALUE(rVALUE)
+-# define STORE_RETURN_BOUNDS(rLOW, rHIGH)
+-
+-# define RETURN_NULL_BOUNDED_POINTER li rRTN, 0
+-
+-#endif
+diff --git a/sysdeps/powerpc/powerpc32/bsd-_setjmp.S b/sysdeps/powerpc/powerpc32/bsd-_setjmp.S
+index 79b0aa4746f653a8..b5232e634e00ed32 100644
+--- a/sysdeps/powerpc/powerpc32/bsd-_setjmp.S
++++ b/sysdeps/powerpc/powerpc32/bsd-_setjmp.S
+@@ -19,14 +19,13 @@
+ #include <shlib-compat.h>
+ #include <libc-symbols.h>
+ #include <sysdep.h>
+-#include <bp-sym.h>
+ 
+ #if !IS_IN (libc)
+ /* Build a non-versioned object for rtld-*.  */
+-ENTRY (BP_SYM (_setjmp))
++ENTRY (_setjmp)
+ 	li r4,0			/* Set second argument to 0.  */
+-	b BP_SYM (__sigsetjmp@local)
+-END (BP_SYM (_setjmp))
++	b __sigsetjmp@local
++END (_setjmp)
+ libc_hidden_def (_setjmp)
+ #else
+ /* Build a versioned object for libc.  */
+@@ -34,10 +33,10 @@ libc_hidden_def (_setjmp)
+ # if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)
+ compat_symbol (libc, __novmx_setjmp, _setjmp, GLIBC_2_0);
+ 
+-ENTRY (BP_SYM (__novmx_setjmp))
++ENTRY (__novmx_setjmp)
+ 	li r4,0			/* Set second argument to 0.  */
+-	b BP_SYM (__novmx__sigsetjmp@local)
+-END (BP_SYM (__novmx_setjmp))
++	b __novmx__sigsetjmp@local
++END (__novmx_setjmp)
+ libc_hidden_def (__novmx_setjmp)
+ # endif /* defined SHARED  && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4) */
+ 
+@@ -45,14 +44,14 @@ versioned_symbol (libc, __vmx_setjmp, _setjmp, GLIBC_2_3_4)
+ /* __GI__setjmp prototype is needed for ntpl i.e. _setjmp is defined
+    as a libc_hidden_proto & is used in sysdeps/generic/libc-start.c
+    if HAVE_CLEANUP_JMP_BUF is defined */
+-ENTRY (BP_SYM (__GI__setjmp))
++ENTRY (__GI__setjmp)
+ 	li r4,0			/* Set second argument to 0.  */
+-	b BP_SYM (__vmx__sigsetjmp@local)
+-END (BP_SYM (__GI__setjmp))
++	b __vmx__sigsetjmp@local
++END (__GI__setjmp)
+ 
+-ENTRY (BP_SYM (__vmx_setjmp))
++ENTRY (__vmx_setjmp)
+ 	li r4,0			/* Set second argument to 0.  */
+-	b BP_SYM (__vmx__sigsetjmp@local)
+-END (BP_SYM (__vmx_setjmp))
++	b __vmx__sigsetjmp@local
++END (__vmx_setjmp)
+ libc_hidden_def (__vmx_setjmp)
+ #endif /* !IS_IN (libc) */
+diff --git a/sysdeps/powerpc/powerpc32/bsd-setjmp.S b/sysdeps/powerpc/powerpc32/bsd-setjmp.S
+index 78248c0108c695ed..0a6beb6459db8fea 100644
+--- a/sysdeps/powerpc/powerpc32/bsd-setjmp.S
++++ b/sysdeps/powerpc/powerpc32/bsd-setjmp.S
+@@ -18,7 +18,6 @@
+ #include <shlib-compat.h>
+ #include <libc-symbols.h>
+ #include <sysdep.h>
+-#include <bp-sym.h>
+ 
+ #if defined SHARED && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)
+ 
+diff --git a/sysdeps/powerpc/powerpc32/bzero.S b/sysdeps/powerpc/powerpc32/bzero.S
+index aa5a237a6ac60c30..3080945afe359efe 100644
+--- a/sysdeps/powerpc/powerpc32/bzero.S
++++ b/sysdeps/powerpc/powerpc32/bzero.S
+@@ -17,20 +17,11 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+ 
+-ENTRY (BP_SYM (__bzero))
++ENTRY (__bzero)
+ 
+-#if __BOUNDED_POINTERS__
+-	mr	r6,r4
+-	li	r5,0
+-	mr	r4,r3
+-	/* Tell memset that we don't want a return value.  */
+-	li	r3,0
+-#else
+ 	mr	r5,r4
+ 	li	r4,0
+-#endif
+-	b	BP_SYM (memset)@local
+-END (BP_SYM (__bzero))
+-weak_alias (BP_SYM (__bzero), BP_SYM (bzero))
++	b	memset@local
++END (__bzero)
++weak_alias (__bzero, bzero)
+diff --git a/sysdeps/powerpc/powerpc32/cell/memcpy.S b/sysdeps/powerpc/powerpc32/cell/memcpy.S
+index a25547feb4e8425b..2cf6a505d060e72b 100644
+--- a/sysdeps/powerpc/powerpc32/cell/memcpy.S
++++ b/sysdeps/powerpc/powerpc32/cell/memcpy.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ #define PREFETCH_AHEAD 6	/* no cache lines SRC prefetching ahead  */
+ #define ZERO_AHEAD 4		/* no cache lines DST zeroing ahead  */
+@@ -41,7 +39,7 @@
+ 
+ .align  7
+ 
+-EALIGN (BP_SYM (memcpy), 5, 0)
++EALIGN (memcpy, 5, 0)
+ 	CALL_MCOUNT
+ 
+ 	dcbt	0,r4		/* Prefetch ONE SRC cacheline  */
+@@ -240,5 +238,5 @@ EALIGN (BP_SYM (memcpy), 5, 0)
+ 	stb	r0,0(r6)
+ 1:	blr
+ 
+-END (BP_SYM (memcpy))
++END (memcpy)
+ libc_hidden_builtin_def (memcpy)
+diff --git a/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S b/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S
+index adc69a5c57327a31..862d4b837f2ca7f6 100644
+--- a/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S
++++ b/sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S
+@@ -23,12 +23,9 @@
+ #else
+ # include <jmpbuf-offsets.h>
+ #endif
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ 	.machine	"altivec"
+-ENTRY (BP_SYM (__longjmp))
+-	CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
++ENTRY (__longjmp)
+ #ifndef __NO_VMX__
+ # ifdef PIC
+ 	mflr    r6
+@@ -173,4 +170,4 @@ L(no_vmx):
+ 	lfd fp31,((JB_FPRS+17*2)*4)(r3)
+ 	mr r3,r4
+ 	blr
+-END (BP_SYM (__longjmp))
++END (__longjmp)
+diff --git a/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S b/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S
+index 0ce05f7bdfbfbfc1..b6a1ce062de2e7a0 100644
+--- a/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S
++++ b/sysdeps/powerpc/powerpc32/fpu/setjmp-common.S
+@@ -23,12 +23,9 @@
+ #else
+ # include <jmpbuf-offsets.h>
+ #endif
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ 	.machine	"altivec"
+-ENTRY (BP_SYM (__sigsetjmp))
+-	CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
++ENTRY (__sigsetjmp)
+ 
+ #ifdef PTR_MANGLE
+ 	mr   r5,r1
+@@ -178,5 +175,5 @@ L(aligned_save_vmx):
+ 	stvx	31,0,r6
+ L(no_vmx):
+ #endif
+-	b BP_SYM (__sigjmp_save@local)
+-END (BP_SYM (__sigsetjmp))
++	b __sigjmp_save@local
++END (__sigsetjmp)
+diff --git a/sysdeps/powerpc/powerpc32/lshift.S b/sysdeps/powerpc/powerpc32/lshift.S
+index d376266710056d58..83e2747b2a9a482f 100644
+--- a/sysdeps/powerpc/powerpc32/lshift.S
++++ b/sysdeps/powerpc/powerpc32/lshift.S
+@@ -17,19 +17,12 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* mp_limb_t mpn_lshift (mp_ptr wp, mp_srcptr up, mp_size_t usize,
+   			 unsigned int cnt)  */
+ 
+-EALIGN (BP_SYM (__mpn_lshift), 3, 0)
++EALIGN (__mpn_lshift, 3, 0)
+ 
+-#if __BOUNDED_POINTERS__
+-	slwi r10,r5,2		/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (r3, r8, r9, r10)
+-	CHECK_BOUNDS_BOTH_WIDE (r4, r8, r9, r10)
+-#endif
+ 	mtctr	r5		# copy size into CTR
+ 	cmplwi	cr0,r5,16	# is size < 16
+ 	slwi	r0,r5,2
+@@ -129,4 +122,4 @@ L(n):	lwzu	r10,-4(r4);						\
+ 	DO_LSHIFT(30)
+ 	DO_LSHIFT(31)
+ 
+-END (BP_SYM (__mpn_lshift))
++END (__mpn_lshift)
+diff --git a/sysdeps/powerpc/powerpc32/memset.S b/sysdeps/powerpc/powerpc32/memset.S
+index 8459b926ee9b1543..416434a554031914 100644
+--- a/sysdeps/powerpc/powerpc32/memset.S
++++ b/sysdeps/powerpc/powerpc32/memset.S
+@@ -18,8 +18,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* __ptr_t [r3] memset (__ptr_t s [r3], int c [r4], size_t n [r5]));
+    Returns 's'.
+@@ -30,21 +28,14 @@
+    takes advantage of the dcbz instruction.  */
+ 
+ 	.section	".text"
+-EALIGN (BP_SYM (memset), 5, 1)
++EALIGN (memset, 5, 1)
+ 
+ #define rTMP	r0
+ #define rRTN	r3	/* initial value of 1st argument */
+-#if __BOUNDED_POINTERS__
+-# define rMEMP0	r4	/* original value of 1st arg */
+-# define rCHR	r5	/* char to set in each byte */
+-# define rLEN	r6	/* length of region to set */
+-# define rMEMP	r10	/* address at which we are storing */
+-#else
+-# define rMEMP0	r3	/* original value of 1st arg */
+-# define rCHR	r4	/* char to set in each byte */
+-# define rLEN	r5	/* length of region to set */
+-# define rMEMP	r6	/* address at which we are storing */
+-#endif
++#define rMEMP0	r3	/* original value of 1st arg */
++#define rCHR	r4	/* char to set in each byte */
++#define rLEN	r5	/* length of region to set */
++#define rMEMP	r6	/* address at which we are storing */
+ #define rALIGN	r7	/* number of bytes we are setting now (when aligning) */
+ #define rMEMP2	r8
+ 
+@@ -56,15 +47,6 @@ EALIGN (BP_SYM (memset), 5, 1)
+ #define rCLS	r8	/* Cache line size obtained from static.  */
+ #define rCLM	r9	/* Cache line size mask to check for cache alignment.  */
+ 
+-#if __BOUNDED_POINTERS__
+-	cmplwi	cr1, rRTN, 0
+-	CHECK_BOUNDS_BOTH_WIDE (rMEMP0, rTMP, rTMP2, rLEN)
+-	beq	cr1, L(b0)
+-	STORE_RETURN_VALUE (rMEMP0)
+-	STORE_RETURN_BOUNDS (rTMP, rTMP2)
+-L(b0):
+-#endif
+-
+ /* take care of case for size <= 4  */
+ 	cmplwi	cr1, rLEN, 4
+ 	andi.	rALIGN, rMEMP0, 3
+@@ -322,5 +304,5 @@ L(handletail32):
+ 	clrrwi.	rALIGN, rLEN, 5
+ 	b	L(nondcbz)
+ 
+-END (BP_SYM (memset))
++END (memset)
+ libc_hidden_builtin_def (memset)
+diff --git a/sysdeps/powerpc/powerpc32/mul_1.S b/sysdeps/powerpc/powerpc32/mul_1.S
+index 32a33f296ec3b463..6b6286a0f1fabc45 100644
+--- a/sysdeps/powerpc/powerpc32/mul_1.S
++++ b/sysdeps/powerpc/powerpc32/mul_1.S
+@@ -17,19 +17,12 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* mp_limb_t mpn_mul_1 (mp_ptr res_ptr, mp_srcptr s1_ptr,
+                         mp_size_t s1_size, mp_limb_t s2_limb)
+    Calculate s1*s2 and put result in res_ptr; return carry.  */
+ 
+-ENTRY (BP_SYM (__mpn_mul_1))
+-#if __BOUNDED_POINTERS__
+-	slwi r10,r5,2		/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (r3, r8, r9, r10)
+-	CHECK_BOUNDS_BOTH_WIDE (r4, r8, r9, r10)
+-#endif
++ENTRY (__mpn_mul_1)
+ 	mtctr	r5
+ 
+ 	lwz	r0,0(r4)
+@@ -49,4 +42,4 @@ L(0):	lwzu	r0,4(r4)
+ L(1):	stw	r7,4(r3)
+ 	addze	r3,r10
+ 	blr
+-END (BP_SYM (__mpn_mul_1))
++END (__mpn_mul_1)
+diff --git a/sysdeps/powerpc/powerpc32/power4/memcmp.S b/sysdeps/powerpc/powerpc32/power4/memcmp.S
+index c726520d6a6f373d..6c42dcd94cff2b47 100644
+--- a/sysdeps/powerpc/powerpc32/power4/memcmp.S
++++ b/sysdeps/powerpc/powerpc32/power4/memcmp.S
+@@ -17,15 +17,13 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* int [r3] memcmp (const char *s1 [r3],
+ 		    const char *s2 [r4],
+ 		    size_t size [r5])  */
+  
+ 	.machine power4
+-EALIGN (BP_SYM(memcmp), 4, 0)
++EALIGN (memcmp, 4, 0)
+ 	CALL_MCOUNT
+ 
+ #define rRTN	r3
+@@ -1371,7 +1369,7 @@ L(dureturn25):
+ 	addi	1, 1, 64
+ 	cfi_adjust_cfa_offset(-64)
+ 	blr
+-END (BP_SYM (memcmp))
++END (memcmp)
+ 
+ libc_hidden_builtin_def (memcmp)
+ weak_alias (memcmp, bcmp)
+diff --git a/sysdeps/powerpc/powerpc32/power4/memcpy.S b/sysdeps/powerpc/powerpc32/power4/memcpy.S
+index 20ed28b2abeaf092..363b6bf0b5cbb809 100644
+--- a/sysdeps/powerpc/powerpc32/power4/memcpy.S
++++ b/sysdeps/powerpc/powerpc32/power4/memcpy.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* __ptr_t [r3] memcpy (__ptr_t dst [r3], __ptr_t src [r4], size_t len [r5]);
+    Returns 'dst'.
+@@ -34,7 +32,7 @@
+    Each case has an optimized unrolled loop.   */
+ 
+ 	.machine power4
+-EALIGN (BP_SYM (memcpy), 5, 0)
++EALIGN (memcpy, 5, 0)
+ 	CALL_MCOUNT
+ 
+     stwu  1,-32(1)
+@@ -478,6 +476,6 @@ EALIGN (BP_SYM (memcpy), 5, 0)
+     lwz  31,24(1)
+     addi 1,1,32
+     blr
+-END (BP_SYM (memcpy))
++END (memcpy)
+ 
+ libc_hidden_builtin_def (memcpy)
+diff --git a/sysdeps/powerpc/powerpc32/power4/memset.S b/sysdeps/powerpc/powerpc32/power4/memset.S
+index f3da588e10ad639d..faefc70258c2c211 100644
+--- a/sysdeps/powerpc/powerpc32/power4/memset.S
++++ b/sysdeps/powerpc/powerpc32/power4/memset.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* __ptr_t [r3] memset (__ptr_t s [r3], int c [r4], size_t n [r5]));
+    Returns 's'.
+@@ -28,7 +26,7 @@
+    to 0, to take advantage of the dcbz instruction.  */
+ 
+ 	.machine power4
+-EALIGN (BP_SYM (memset), 5, 0)
++EALIGN (memset, 5, 0)
+ 	CALL_MCOUNT
+ 
+ #define rTMP	r0
+@@ -224,5 +222,5 @@ L(medium_28t):
+         stw     rCHR, -4(rMEMP)
+ 	stw	rCHR, -8(rMEMP)
+ 	blr
+-END (BP_SYM (memset))
++END (memset)
+ libc_hidden_builtin_def (memset)
+diff --git a/sysdeps/powerpc/powerpc32/power4/strncmp.S b/sysdeps/powerpc/powerpc32/power4/strncmp.S
+index c74b690aa8929ccb..54ab0ad42acaeb14 100644
+--- a/sysdeps/powerpc/powerpc32/power4/strncmp.S
++++ b/sysdeps/powerpc/powerpc32/power4/strncmp.S
+@@ -17,14 +17,12 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* See strlen.s for comments on how the end-of-string testing works.  */
+ 
+ /* int [r3] strncmp (const char *s1 [r3], const char *s2 [r4], size_t size [r5])  */
+ 
+-EALIGN (BP_SYM(strncmp), 4, 0)
++EALIGN (strncmp, 4, 0)
+ 
+ #define rTMP2	r0
+ #define rRTN	r3
+@@ -197,5 +195,5 @@ L(u4):	sub	rRTN, rWORD1, rWORD2
+ L(ux):
+ 	li	rRTN, 0
+ 	blr
+-END (BP_SYM (strncmp))
++END (strncmp)
+ libc_hidden_builtin_def (strncmp)
+diff --git a/sysdeps/powerpc/powerpc32/power6/memcpy.S b/sysdeps/powerpc/powerpc32/power6/memcpy.S
+index 78cbd30795a5a866..89ac4ff8517e2368 100644
+--- a/sysdeps/powerpc/powerpc32/power6/memcpy.S
++++ b/sysdeps/powerpc/powerpc32/power6/memcpy.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* __ptr_t [r3] memcpy (__ptr_t dst [r3], __ptr_t src [r4], size_t len [r5]);
+    Returns 'dst'.
+@@ -34,7 +32,7 @@
+    Each case has an optimized unrolled loop.   */
+ 
+ 	.machine power6
+-EALIGN (BP_SYM (memcpy), 5, 0)
++EALIGN (memcpy, 5, 0)
+ 	CALL_MCOUNT
+ 
+     stwu   1,-32(1)
+@@ -904,6 +902,6 @@ L(wdus_0):
+     lwz  31,24(1)
+     addi 1,1,32
+     blr
+-END (BP_SYM (memcpy))
++END (memcpy)
+ 
+ libc_hidden_builtin_def (memcpy)
+diff --git a/sysdeps/powerpc/powerpc32/power6/memset.S b/sysdeps/powerpc/powerpc32/power6/memset.S
+index e4966f5e597f34f3..29095b73cb05d7ac 100644
+--- a/sysdeps/powerpc/powerpc32/power6/memset.S
++++ b/sysdeps/powerpc/powerpc32/power6/memset.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* __ptr_t [r3] memset (__ptr_t s [r3], int c [r4], size_t n [r5]));
+    Returns 's'.
+@@ -28,7 +26,7 @@
+    to 0, to take advantage of the dcbz instruction.  */
+ 
+ 	.machine power6
+-EALIGN (BP_SYM (memset), 7, 0)
++EALIGN (memset, 7, 0)
+ 	CALL_MCOUNT
+ 
+ #define rTMP	r0
+@@ -537,5 +535,5 @@ L(medium_28t):
+         stw     rCHR, -4(rMEMP)
+ 	stw	rCHR, -8(rMEMP)
+ 	blr
+-END (BP_SYM (memset))
++END (memset)
+ libc_hidden_builtin_def (memset)
+diff --git a/sysdeps/powerpc/powerpc32/power7/memcmp.S b/sysdeps/powerpc/powerpc32/power7/memcmp.S
+index 59833b9e5efae1dc..12ad5dbc28c5c37b 100644
+--- a/sysdeps/powerpc/powerpc32/power7/memcmp.S
++++ b/sysdeps/powerpc/powerpc32/power7/memcmp.S
+@@ -17,15 +17,13 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* int [r3] memcmp (const char *s1 [r3],
+ 		    const char *s2 [r4],
+ 		    size_t size [r5])  */
+ 
+ 	.machine power7
+-EALIGN (BP_SYM(memcmp), 4, 0)
++EALIGN (memcmp, 4, 0)
+ 	CALL_MCOUNT
+ 
+ #define rRTN	r3
+@@ -1371,7 +1369,7 @@ L(dureturn25):
+ 	addi	r1, r1, 64
+ 	cfi_adjust_cfa_offset(-64)
+ 	blr
+-END (BP_SYM (memcmp))
++END (memcmp)
+ 
+ libc_hidden_builtin_def (memcmp)
+ weak_alias (memcmp,bcmp)
+diff --git a/sysdeps/powerpc/powerpc32/power7/memcpy.S b/sysdeps/powerpc/powerpc32/power7/memcpy.S
+index 795d9626790f5e00..5821b1e40b14a038 100644
+--- a/sysdeps/powerpc/powerpc32/power7/memcpy.S
++++ b/sysdeps/powerpc/powerpc32/power7/memcpy.S
+@@ -18,14 +18,12 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* __ptr_t [r3] memcpy (__ptr_t dst [r3], __ptr_t src [r4], size_t len [r5]);
+    Returns 'dst'.  */
+ 
+ 	.machine  power7
+-EALIGN (BP_SYM (memcpy), 5, 0)
++EALIGN (memcpy, 5, 0)
+ 	CALL_MCOUNT
+ 
+ 	stwu    1,-32(1)
+@@ -536,5 +534,5 @@ L(end_unaligned_loop):
+ 	addi    1,1,32
+ 	blr
+ 
+-END (BP_SYM (memcpy))
++END (memcpy)
+ libc_hidden_builtin_def (memcpy)
+diff --git a/sysdeps/powerpc/powerpc32/power7/mempcpy.S b/sysdeps/powerpc/powerpc32/power7/mempcpy.S
+index ede20304057a1009..a29bdbb5ad302d55 100644
+--- a/sysdeps/powerpc/powerpc32/power7/mempcpy.S
++++ b/sysdeps/powerpc/powerpc32/power7/mempcpy.S
+@@ -18,14 +18,12 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* __ptr_t [r3] __mempcpy (__ptr_t dst [r3], __ptr_t src [r4], size_t len [r5]);
+ 	Returns 'dst' + 'len'.  */
+ 
+ 	.machine  power7
+-EALIGN (BP_SYM (__mempcpy), 5, 0)
++EALIGN (__mempcpy, 5, 0)
+ 	CALL_MCOUNT
+ 
+ 	stwu	1,-32(1)
+@@ -478,7 +476,7 @@ L(end_unaligned_loop):
+ 	addi	1,1,32
+ 	blr
+ 
+-END (BP_SYM (__mempcpy))
+-libc_hidden_def (BP_SYM (__mempcpy))
+-weak_alias (BP_SYM (__mempcpy), BP_SYM (mempcpy))
++END (__mempcpy)
++libc_hidden_def (__mempcpy)
++weak_alias (__mempcpy, mempcpy)
+ libc_hidden_builtin_def (mempcpy)
+diff --git a/sysdeps/powerpc/powerpc32/power7/memset.S b/sysdeps/powerpc/powerpc32/power7/memset.S
+index fa2e0b7e56f0f636..9944ebcaa2f79317 100644
+--- a/sysdeps/powerpc/powerpc32/power7/memset.S
++++ b/sysdeps/powerpc/powerpc32/power7/memset.S
+@@ -18,14 +18,12 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* __ptr_t [r3] memset (__ptr_t s [r3], int c [r4], size_t n [r5]));
+    Returns 's'.  */
+ 
+ 	.machine  power7
+-EALIGN (BP_SYM (memset), 5, 0)
++EALIGN (memset, 5, 0)
+ 	CALL_MCOUNT
+ 
+ 	.align	4
+@@ -429,5 +427,5 @@ L(small):
+ 	stw	4,4(10)
+ 	blr
+ 
+-END (BP_SYM (memset))
++END (memset)
+ libc_hidden_builtin_def (memset)
+diff --git a/sysdeps/powerpc/powerpc32/power7/rawmemchr.S b/sysdeps/powerpc/powerpc32/power7/rawmemchr.S
+index 403a6c4421aff854..30de892046542ec5 100644
+--- a/sysdeps/powerpc/powerpc32/power7/rawmemchr.S
++++ b/sysdeps/powerpc/powerpc32/power7/rawmemchr.S
+@@ -18,12 +18,10 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* int [r3] rawmemchr (void *s [r3], int c [r4])  */
+ 	.machine  power7
+-ENTRY (BP_SYM(__rawmemchr))
++ENTRY (__rawmemchr)
+ 	CALL_MCOUNT
+ 	dcbt	0,r3
+ 	clrrwi	r8,r3,2	      /* Align the address to word boundary.  */
+@@ -107,6 +105,6 @@ L(done):
+ 	srwi	r0,r0,3	      /* Convert leading zeros to bytes.  */
+ 	add	r3,r8,r0      /* Return address of the matching char.  */
+ 	blr
+-END (BP_SYM (__rawmemchr))
++END (__rawmemchr)
+ weak_alias (__rawmemchr,rawmemchr)
+ libc_hidden_builtin_def (__rawmemchr)
+diff --git a/sysdeps/powerpc/powerpc32/power7/strcasecmp.S b/sysdeps/powerpc/powerpc32/power7/strcasecmp.S
+index 7162142b29933894..3b92ec3b1f135b6f 100644
+--- a/sysdeps/powerpc/powerpc32/power7/strcasecmp.S
++++ b/sysdeps/powerpc/powerpc32/power7/strcasecmp.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ #include <locale-defines.h>
+ 
+ /* int [r3] strcasecmp (const char *s1 [r3], const char *s2 [r4] )
+@@ -33,7 +31,7 @@
+ # define STRCMP   strcasecmp
+ #endif
+ 
+-ENTRY (BP_SYM (__STRCMP))
++ENTRY (__STRCMP)
+ 
+ #define rRTN	r3	/* Return value */
+ #define rSTR1	r5	/* 1st string */
+@@ -125,7 +123,7 @@ L(loop):
+ 	bnelr
+ 	bne	cr7,L(loop)
+ 	blr
+-END (BP_SYM (__STRCMP))
++END (__STRCMP)
+ 
+-weak_alias (BP_SYM (__STRCMP), BP_SYM (STRCMP))
++weak_alias (__STRCMP, STRCMP)
+ libc_hidden_builtin_def (__STRCMP)
+diff --git a/sysdeps/powerpc/powerpc32/power7/strchr.S b/sysdeps/powerpc/powerpc32/power7/strchr.S
+index a6fbafe9a8824ba3..c1ddfec9fc4aa3f8 100644
+--- a/sysdeps/powerpc/powerpc32/power7/strchr.S
++++ b/sysdeps/powerpc/powerpc32/power7/strchr.S
+@@ -18,12 +18,10 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* int [r3] strchr (char *s [r3], int c [r4])  */
+ 	.machine  power7
+-ENTRY (BP_SYM(strchr))
++ENTRY (strchr)
+ 	CALL_MCOUNT
+ 	dcbt	0,r3
+ 	clrrwi	r8,r3,2	      /* Align the address to word boundary.  */
+@@ -222,6 +220,6 @@ L(done_null):
+ 	srwi	r0,r0,3	      /* Convert leading zeros to bytes.  */
+ 	add	r3,r8,r0      /* Return address of the matching null byte.  */
+ 	blr
+-END (BP_SYM (strchr))
+-weak_alias (BP_SYM (strchr), BP_SYM (index))
++END (strchr)
++weak_alias (strchr, index)
+ libc_hidden_builtin_def (strchr)
+diff --git a/sysdeps/powerpc/powerpc32/power7/strchrnul.S b/sysdeps/powerpc/powerpc32/power7/strchrnul.S
+index 3bf11c992500cc7c..31fd2339fb896ad6 100644
+--- a/sysdeps/powerpc/powerpc32/power7/strchrnul.S
++++ b/sysdeps/powerpc/powerpc32/power7/strchrnul.S
+@@ -18,12 +18,10 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* int [r3] strchrnul (char *s [r3], int c [r4])  */
+ 	.machine  power7
+-ENTRY (BP_SYM(__strchrnul))
++ENTRY (__strchrnul)
+ 	CALL_MCOUNT
+ 	dcbt	0,r3
+ 	clrrwi	r8,r3,2	      /* Align the address to word boundary.  */
+@@ -124,6 +122,6 @@ L(done):
+ 	srwi	r0,r0,3	      /* Convert leading zeros to bytes.  */
+ 	add	r3,r8,r0      /* Return address of matching c/null byte.  */
+ 	blr
+-END (BP_SYM (__strchrnul))
++END (__strchrnul)
+ weak_alias (__strchrnul,strchrnul)
+ libc_hidden_builtin_def (__strchrnul)
+diff --git a/sysdeps/powerpc/powerpc32/power7/strlen.S b/sysdeps/powerpc/powerpc32/power7/strlen.S
+index 950f621cfe7da807..6d603e7d708eeac1 100644
+--- a/sysdeps/powerpc/powerpc32/power7/strlen.S
++++ b/sysdeps/powerpc/powerpc32/power7/strlen.S
+@@ -18,12 +18,10 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* int [r3] strlen (char *s [r3])  */
+ 	.machine  power7
+-ENTRY (BP_SYM (strlen))
++ENTRY (strlen)
+ 	CALL_MCOUNT
+ 	dcbt	0,r3
+ 	clrrwi	r4,r3,2	      /* Align the address to word boundary.  */
+@@ -100,5 +98,5 @@ L(done):
+ 	srwi	r0,r0,3	      /* Convert leading zeros to bytes.  */
+ 	add	r3,r5,r0      /* Compute final length.  */
+ 	blr
+-END (BP_SYM (strlen))
++END (strlen)
+ libc_hidden_builtin_def (strlen)
+diff --git a/sysdeps/powerpc/powerpc32/power7/strncmp.S b/sysdeps/powerpc/powerpc32/power7/strncmp.S
+index 555f588a2e2d0860..4dde199fdf692225 100644
+--- a/sysdeps/powerpc/powerpc32/power7/strncmp.S
++++ b/sysdeps/powerpc/powerpc32/power7/strncmp.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* See strlen.s for comments on how the end-of-string testing works.  */
+ 
+@@ -26,7 +24,7 @@
+ 		     const char *s2 [r4],
+ 		     size_t size [r5])  */
+ 
+-EALIGN (BP_SYM(strncmp),5,0)
++EALIGN (strncmp,5,0)
+ 
+ #define rTMP2	r0
+ #define rRTN	r3
+@@ -200,5 +198,5 @@ L(u4):	sub	rRTN,rWORD1,rWORD2
+ L(ux):
+ 	li	rRTN,0
+ 	blr
+-END (BP_SYM (strncmp))
++END (strncmp)
+ libc_hidden_builtin_def (strncmp)
+diff --git a/sysdeps/powerpc/powerpc32/power7/strnlen.S b/sysdeps/powerpc/powerpc32/power7/strnlen.S
+index 513e418329704647..74dbec80fa5bf32d 100644
+--- a/sysdeps/powerpc/powerpc32/power7/strnlen.S
++++ b/sysdeps/powerpc/powerpc32/power7/strnlen.S
+@@ -18,12 +18,10 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* int [r3] strnlen (char *s [r3], int size [r4])  */
+ 	.machine  power7
+-ENTRY (BP_SYM (__strnlen))
++ENTRY (__strnlen)
+ 	CALL_MCOUNT
+ 	dcbt	0,r3
+ 	clrrwi	r8,r3,2	      /* Align the address to word boundary.  */
+@@ -172,6 +170,6 @@ L(loop_small):
+ 	mr	r3,r4
+ 	blr
+ 
+-END (BP_SYM (__strnlen))
+-weak_alias (BP_SYM (__strnlen), BP_SYM(strnlen))
++END (__strnlen)
++weak_alias (__strnlen, strnlen)
+ libc_hidden_builtin_def (strnlen)
+diff --git a/sysdeps/powerpc/powerpc32/rshift.S b/sysdeps/powerpc/powerpc32/rshift.S
+index bc99bf129c402229..b6016c1a741cdb3e 100644
+--- a/sysdeps/powerpc/powerpc32/rshift.S
++++ b/sysdeps/powerpc/powerpc32/rshift.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* INPUT PARAMETERS
+    res_ptr	r3
+@@ -26,12 +24,7 @@
+    size		r5
+    cnt		r6  */
+ 
+-ENTRY (BP_SYM (__mpn_rshift))
+-#if __BOUNDED_POINTERS__
+-	slwi r10,r5,2		/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (r3, r8, r9, r10)
+-	CHECK_BOUNDS_BOTH_WIDE (r4, r8, r9, r10)
+-#endif
++ENTRY (__mpn_rshift)
+ 	mtctr	r5		# copy size into CTR
+ 	addi	r7,r3,-4	# move adjusted res_ptr to free return reg
+ 	subfic	r8,r6,32
+@@ -59,4 +52,4 @@ L(1):	srw	r0,r11,r6
+ L(2):	srw	r0,r10,r6
+ 	stw	r0,4(r7)
+ 	blr
+-END (BP_SYM (__mpn_rshift))
++END (__mpn_rshift)
+diff --git a/sysdeps/powerpc/powerpc32/setjmp-common.S b/sysdeps/powerpc/powerpc32/setjmp-common.S
+index 8f2b36cfb1901ba7..2ccf9df166b51b5c 100644
+--- a/sysdeps/powerpc/powerpc32/setjmp-common.S
++++ b/sysdeps/powerpc/powerpc32/setjmp-common.S
+@@ -24,12 +24,9 @@
+ #else
+ # include <jmpbuf-offsets.h>
+ #endif
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ 
+-ENTRY (BP_SYM (__sigsetjmp))
+-	CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
++ENTRY (__sigsetjmp)
+ 
+ #ifdef PTR_MANGLE
+ 	mr   r5,r1
+@@ -68,6 +65,6 @@ ENTRY (BP_SYM (__sigsetjmp))
+ 	li   r3,0
+ 	blr
+ #else
+-	b BP_SYM (__sigjmp_save@local)
++	b __sigjmp_save@local
+ #endif
+-END (BP_SYM (__sigsetjmp))
++END (__sigsetjmp)
+diff --git a/sysdeps/powerpc/powerpc32/start.S b/sysdeps/powerpc/powerpc32/start.S
+index 2e454c0722e28129..1d3fea305f8c02cc 100644
+--- a/sysdeps/powerpc/powerpc32/start.S
++++ b/sysdeps/powerpc/powerpc32/start.S
+@@ -35,7 +35,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include "bp-sym.h"
+ 
+ /* We do not want .eh_frame info for crt1.o since crt1.o is linked
+    before crtbegin.o, the file defining __EH_FRAME_BEGIN__.  */
+@@ -53,7 +52,7 @@
+ 	.align	2
+ L(start_addresses):
+ 	.long	_SDA_BASE_
+-	.long	BP_SYM (main)
++	.long	main
+ 	.long 	__libc_csu_init
+ 	.long 	__libc_csu_fini
+ 	ASM_SIZE_DIRECTIVE(L(start_addresses))
+@@ -86,7 +85,7 @@ ENTRY(_start)
+ 	lwzu	r13,L(start_addresses)@l(r8)
+ #endif
+  /* and continue in libc-start, in glibc.  */
+-	b	JUMPTARGET(BP_SYM (__libc_start_main))
++	b	JUMPTARGET(__libc_start_main)
+ END(_start)
+ 
+ /* Define a symbol for the first piece of initialized data.  */
+diff --git a/sysdeps/powerpc/powerpc32/stpcpy.S b/sysdeps/powerpc/powerpc32/stpcpy.S
+index 4ae8c71e753e77c8..9e99e86c51471a7e 100644
+--- a/sysdeps/powerpc/powerpc32/stpcpy.S
++++ b/sysdeps/powerpc/powerpc32/stpcpy.S
+@@ -17,35 +17,23 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* See strlen.s for comments on how the end-of-string testing works.  */
+ 
+ /* char * [r3] stpcpy (char *dest [r3], const char *src [r4])  */
+ 
+-EALIGN (BP_SYM (__stpcpy), 4, 0)
++EALIGN (__stpcpy, 4, 0)
+ 
+ #define rTMP	r0
+ #define rRTN	r3
+-#if __BOUNDED_POINTERS__
+-# define rDEST	r4		/* pointer to previous word in dest */
+-# define rSRC	r5		/* pointer to previous word in src */
+-# define rLOW	r11
+-# define rHIGH	r12
+-#else
+-# define rDEST	r3		/* pointer to previous word in dest */
+-# define rSRC	r4		/* pointer to previous word in src */
+-#endif
++#define rDEST	r3		/* pointer to previous word in dest */
++#define rSRC	r4		/* pointer to previous word in src */
+ #define rWORD	r6		/* current word from src */
+ #define rFEFE	r7		/* 0xfefefeff */
+ #define r7F7F	r8		/* 0x7f7f7f7f */
+ #define rNEG	r9		/* ~(word in src | 0x7f7f7f7f) */
+ #define rALT	r10		/* alternate word from src */
+ 
+-	CHECK_BOUNDS_LOW (rSRC, rLOW, rHIGH)
+-	CHECK_BOUNDS_LOW (rDEST, rLOW, rHIGH)
+-	STORE_RETURN_BOUNDS (rLOW, rHIGH)
+ 
+ 	or	rTMP, rSRC, rDEST
+ 	clrlwi.	rTMP, rTMP, 30
+@@ -99,8 +87,6 @@ L(g1):
+ 	stbu	rTMP, 1(rDEST)
+ 	beqlr-
+ 	stbu	rALT, 1(rDEST)
+-	CHECK_BOUNDS_HIGH (rDEST, rHIGH, twlgt)
+-	STORE_RETURN_VALUE (rDEST)
+ 	blr
+ #endif
+ 
+@@ -123,15 +109,11 @@ L(u0):	lbzu	rALT, 1(rSRC)
+ 	cmpwi	rWORD, 0
+ 	bne+	L(u0)
+ L(u2):	stbu	rWORD, 1(rDEST)
+-	CHECK_BOUNDS_HIGH (rDEST, rHIGH, twlgt)
+-	STORE_RETURN_VALUE (rDEST)
+ 	blr
+ L(u1):	stbu	rALT, 1(rDEST)
+-	CHECK_BOUNDS_HIGH (rDEST, rHIGH, twlgt)
+-	STORE_RETURN_VALUE (rDEST)
+ 	blr
+-END (BP_SYM (__stpcpy))
++END (__stpcpy)
+ 
+-weak_alias (BP_SYM (__stpcpy), BP_SYM (stpcpy))
++weak_alias (__stpcpy, stpcpy)
+ libc_hidden_def (__stpcpy)
+ libc_hidden_builtin_def (stpcpy)
+diff --git a/sysdeps/powerpc/powerpc32/strchr.S b/sysdeps/powerpc/powerpc32/strchr.S
+index c8a2c2bbbc11036b..a045675f07646646 100644
+--- a/sysdeps/powerpc/powerpc32/strchr.S
++++ b/sysdeps/powerpc/powerpc32/strchr.S
+@@ -17,26 +17,18 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* See strlen.s for comments on how this works.  */
+ 
+ /* char * [r3] strchr (const char *s [r3] , int c [r4] )  */
+ 
+-ENTRY (BP_SYM (strchr))
++ENTRY (strchr)
+ 
+ #define rTMP1	r0
+ #define rRTN	r3	/* outgoing result */
+-#if __BOUNDED_POINTERS__
+-# define rSTR	r4
+-# define rCHR	r5	/* byte we're looking for, spread over the whole word */
+-# define rWORD	r8	/* the current word */
+-#else
+-# define rSTR	r8	/* current word pointer */
+-# define rCHR	r4	/* byte we're looking for, spread over the whole word */
+-# define rWORD	r5	/* the current word */
+-#endif
++#define rSTR	r8	/* current word pointer */
++#define rCHR	r4	/* byte we're looking for, spread over the whole word */
++#define rWORD	r5	/* the current word */
+ #define rCLZB	rCHR	/* leading zero byte count */
+ #define rFEFE	r6	/* constant 0xfefefeff (-0x01010101) */
+ #define r7F7F	r7	/* constant 0x7f7f7f7f */
+@@ -47,8 +39,6 @@ ENTRY (BP_SYM (strchr))
+ #define rTMP4	rIGN
+ #define rTMP5	rMASK
+ 
+-	CHECK_BOUNDS_LOW (rSTR, rTMP1, rTMP2)
+-	STORE_RETURN_BOUNDS (rTMP1, rTMP2)
+ 
+ 	rlwimi	rCHR, rCHR, 8, 16, 23
+ 	li	rMASK, -1
+@@ -96,7 +86,6 @@ L(loopentry):
+    zero byte, in which case we return a match.  */
+ 	and.	rTMP5, rTMP1, rTMP2
+ 	li	rRTN, 0
+-	STORE_RETURN_VALUE (rSTR)
+ 	beqlr
+ /* At this point:
+    rTMP5 bytes are 0x80 for each match of c, 0 otherwise.
+@@ -131,8 +120,6 @@ L(loopentry):
+ #endif
+ 	srwi	rCLZB, rCLZB, 3
+ 	add	rRTN, rSTR, rCLZB
+-	CHECK_BOUNDS_HIGH_RTN (rSTR, rTMP2, twlge)
+-	STORE_RETURN_VALUE (rSTR)
+ 	blr
+ 
+ L(foundit):
+@@ -152,10 +139,8 @@ L(foundit):
+ 	srwi	rCLZB, rCLZB, 3
+ #endif
+ 	add	rRTN, rSTR, rCLZB
+-	CHECK_BOUNDS_HIGH_RTN (rSTR, rTMP2, twlge)
+-	STORE_RETURN_VALUE (rSTR)
+ 	blr
+-END (BP_SYM (strchr))
++END (strchr)
+ 
+-weak_alias (BP_SYM (strchr), BP_SYM (index))
++weak_alias (strchr, index)
+ libc_hidden_builtin_def (strchr)
+diff --git a/sysdeps/powerpc/powerpc32/strcmp.S b/sysdeps/powerpc/powerpc32/strcmp.S
+index 041aa2988d2248e1..6fc6878677c139a4 100644
+--- a/sysdeps/powerpc/powerpc32/strcmp.S
++++ b/sysdeps/powerpc/powerpc32/strcmp.S
+@@ -17,23 +17,17 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* See strlen.s for comments on how the end-of-string testing works.  */
+ 
+ /* int [r3] strcmp (const char *s1 [r3], const char *s2 [r4])  */
+ 
+-EALIGN (BP_SYM (strcmp), 4, 0)
++EALIGN (strcmp, 4, 0)
+ 
+ #define rTMP2	r0
+ #define rRTN	r3
+ #define rSTR1	r3	/* first string arg */
+ #define rSTR2	r4	/* second string arg */
+-#if __BOUNDED_POINTERS__
+-# define rHIGH1	r11
+-# define rHIGH2 r12
+-#endif
+ #define rWORD1	r5	/* current word in s1 */
+ #define rWORD2	r6	/* current word in s2 */
+ #define rFEFE	r7	/* constant 0xfefefeff (-0x01010101) */
+@@ -42,8 +36,6 @@ EALIGN (BP_SYM (strcmp), 4, 0)
+ #define rBITDIF	r10	/* bits that differ in s1 & s2 words */
+ #define rTMP	r11
+ 
+-	CHECK_BOUNDS_LOW (rSTR1, rTMP, rHIGH1)
+-	CHECK_BOUNDS_LOW (rSTR2, rTMP, rHIGH2)
+ 
+ 	or	rTMP, rSTR2, rSTR1
+ 	clrlwi.	rTMP, rTMP, 30
+@@ -118,7 +110,6 @@ L(endstring):
+ 	bgelr+	cr1
+ L(equal):
+ 	li	rRTN, 0
+-	/* GKM FIXME: check high bounds.  */
+ 	blr
+ 
+ L(different):
+@@ -128,7 +119,6 @@ L(different):
+ 	bgelr+
+ L(highbit):
+ 	ori	rRTN, rWORD2, 1
+-	/* GKM FIXME: check high bounds.  */
+ 	blr
+ #endif
+ 
+@@ -152,11 +142,9 @@ L(u1):	cmpwi	cr1, rWORD1, 0
+ 	cmpw	rWORD1, rWORD2
+ 	bne+	cr1, L(u0)
+ L(u3):	sub	rRTN, rWORD1, rWORD2
+-	/* GKM FIXME: check high bounds.  */
+ 	blr
+ L(u4):	lbz	rWORD1, -1(rSTR1)
+ 	sub	rRTN, rWORD1, rWORD2
+-	/* GKM FIXME: check high bounds.  */
+ 	blr
+-END (BP_SYM (strcmp))
++END (strcmp)
+ libc_hidden_builtin_def (strcmp)
+diff --git a/sysdeps/powerpc/powerpc32/strcpy.S b/sysdeps/powerpc/powerpc32/strcpy.S
+index 2bc50155da0b486c..4e21f9b17c332cc8 100644
+--- a/sysdeps/powerpc/powerpc32/strcpy.S
++++ b/sysdeps/powerpc/powerpc32/strcpy.S
+@@ -17,43 +17,27 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* See strlen.s for comments on how the end-of-string testing works.  */
+ 
+ /* char * [r3] strcpy (char *dest [r3], const char *src [r4])  */
+ 
+-EALIGN (BP_SYM (strcpy), 4, 0)
++EALIGN (strcpy, 4, 0)
+ 
+ #define rTMP	r0
+ #define rRTN	r3	/* incoming DEST arg preserved as result */
+-#if __BOUNDED_POINTERS__
+-# define rDEST	r4	/* pointer to previous word in dest */
+-# define rSRC	r5	/* pointer to previous word in src */
+-# define rLOW	r11
+-# define rHIGH	r12
+-#else
+-# define rSRC	r4	/* pointer to previous word in src */
+-# define rDEST	r5	/* pointer to previous word in dest */
+-#endif
++#define rSRC	r4	/* pointer to previous word in src */
++#define rDEST	r5	/* pointer to previous word in dest */
+ #define rWORD	r6	/* current word from src */
+ #define rFEFE	r7	/* constant 0xfefefeff (-0x01010101) */
+ #define r7F7F	r8	/* constant 0x7f7f7f7f */
+ #define rNEG	r9	/* ~(word in s1 | 0x7f7f7f7f) */
+ #define rALT	r10	/* alternate word from src */
+ 
+-	CHECK_BOUNDS_LOW (rSRC, rLOW, rHIGH)
+-	CHECK_BOUNDS_LOW (rDEST, rLOW, rHIGH)
+-	STORE_RETURN_BOUNDS (rLOW, rHIGH)
+ 
+ 	or	rTMP, rSRC, rRTN
+ 	clrlwi.	rTMP, rTMP, 30
+-#if __BOUNDED_POINTERS__
+-	addi	rDEST, rDEST, -4
+-#else
+ 	addi	rDEST, rRTN, -4
+-#endif
+ 	bne	L(unaligned)
+ 
+ 	lis	rFEFE, -0x101
+@@ -103,7 +87,6 @@ L(g1):
+ 	stb	rTMP, 6(rDEST)
+ 	beqlr-
+ 	stb	rALT, 7(rDEST)
+-	/* GKM FIXME: check high bound.  */
+ 	blr
+ #endif
+ 
+@@ -126,11 +109,9 @@ L(u0):	lbzu	rALT, 1(rSRC)
+ 	cmpwi	rWORD, 0
+ 	bne+	L(u0)
+ L(u2):	stb	rWORD, 1(rDEST)
+-	/* GKM FIXME: check high bound.  */
+ 	blr
+ L(u1):	stb	rALT, 1(rDEST)
+-	/* GKM FIXME: check high bound.  */
+ 	blr
+ 
+-END (BP_SYM (strcpy))
++END (strcpy)
+ libc_hidden_builtin_def (strcpy)
+diff --git a/sysdeps/powerpc/powerpc32/strlen.S b/sysdeps/powerpc/powerpc32/strlen.S
+index eef1114d5de0dd66..65637a976751fd68 100644
+--- a/sysdeps/powerpc/powerpc32/strlen.S
++++ b/sysdeps/powerpc/powerpc32/strlen.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* The algorithm here uses the following techniques:
+ 
+@@ -77,7 +75,7 @@
+ 
+ /* int [r3] strlen (char *s [r3])  */
+ 
+-ENTRY (BP_SYM (strlen))
++ENTRY (strlen)
+ 
+ #define rTMP4	r0
+ #define rRTN	r3	/* incoming STR arg, outgoing result */
+@@ -93,7 +91,6 @@ ENTRY (BP_SYM (strlen))
+ #define rTMP2	r11
+ #define rTMP3	r12
+ 
+-	CHECK_BOUNDS_LOW (rRTN, rTMP1, rTMP2)
+ 
+ 	clrrwi	rSTR, rRTN, 2
+ 	lis	r7F7F, 0x7f7f
+@@ -165,7 +162,6 @@ L(done0):
+ 	subf	rTMP1, rRTN, rSTR
+ 	srwi	rTMP3, rTMP3, 3
+ 	add	rRTN, rTMP1, rTMP3
+-	/* GKM FIXME: check high bound.  */
+ 	blr
+ #else
+ 
+@@ -190,5 +186,5 @@ L(done1):
+ 	blr
+ #endif
+ 
+-END (BP_SYM (strlen))
++END (strlen)
+ libc_hidden_builtin_def (strlen)
+diff --git a/sysdeps/powerpc/powerpc32/strncmp.S b/sysdeps/powerpc/powerpc32/strncmp.S
+index 1e2f47bf533fe25a..f48964a4c45a67fa 100644
+--- a/sysdeps/powerpc/powerpc32/strncmp.S
++++ b/sysdeps/powerpc/powerpc32/strncmp.S
+@@ -17,14 +17,12 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* See strlen.s for comments on how the end-of-string testing works.  */
+ 
+ /* int [r3] strncmp (const char *s1 [r3], const char *s2 [r4], size_t size [r5])  */
+ 
+-EALIGN (BP_SYM(strncmp), 4, 0)
++EALIGN (strncmp, 4, 0)
+ 
+ #define rTMP2	r0
+ #define rRTN	r3
+@@ -182,5 +180,5 @@ L(u1):
+ L(u2):	lbzu	rWORD1, -1(rSTR1)
+ L(u3):	sub	rRTN, rWORD1, rWORD2
+ 	blr
+-END (BP_SYM (strncmp))
++END (strncmp)
+ libc_hidden_builtin_def (strncmp)
+diff --git a/sysdeps/powerpc/powerpc32/sub_n.S b/sysdeps/powerpc/powerpc32/sub_n.S
+index fdce132811e0945c..7181ecd494d810c0 100644
+--- a/sysdeps/powerpc/powerpc32/sub_n.S
++++ b/sysdeps/powerpc/powerpc32/sub_n.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* mp_limb_t mpn_sub_n (mp_ptr res_ptr, mp_srcptr s1_ptr, mp_srcptr s2_ptr,
+                         mp_size_t size)
+@@ -28,14 +26,7 @@
+    possible 2-unrolled inner loop will not be.  Also, watch out for the
+    alignment...  */
+ 
+-EALIGN (BP_SYM (__mpn_sub_n), 3, 1)
+-
+-#if __BOUNDED_POINTERS__
+-	slwi r10,r6,2		/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (r3, r8, r9, r10)
+-	CHECK_BOUNDS_BOTH_WIDE (r4, r8, r9, r10)
+-	CHECK_BOUNDS_BOTH_WIDE (r5, r8, r9, r10)
+-#endif
++EALIGN (__mpn_sub_n, 3, 1)
+ 
+ /* Set up for loop below.  */
+ 	mtcrf 0x01,r6
+@@ -74,4 +65,4 @@ L(0):
+ L(1):	subfe r3,r3,r3
+ 	neg   r3,r3
+ 	blr
+-END (BP_SYM (__mpn_sub_n))
++END (__mpn_sub_n)
+diff --git a/sysdeps/powerpc/powerpc32/submul_1.S b/sysdeps/powerpc/powerpc32/submul_1.S
+index 35ee0d76d399f67f..4bb06c010f341df8 100644
+--- a/sysdeps/powerpc/powerpc32/submul_1.S
++++ b/sysdeps/powerpc/powerpc32/submul_1.S
+@@ -17,19 +17,12 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* mp_limb_t mpn_submul_1 (mp_ptr res_ptr, mp_srcptr s1_ptr,
+                            mp_size_t s1_size, mp_limb_t s2_limb)
+    Calculate res-s1*s2 and put result back in res; return carry.  */
+ 
+-ENTRY (BP_SYM (__mpn_submul_1))
+-#if __BOUNDED_POINTERS__
+-	slwi r10,r5,2		/* convert limbs to bytes */
+-	CHECK_BOUNDS_BOTH_WIDE (r3, r8, r9, r10)
+-	CHECK_BOUNDS_BOTH_WIDE (r4, r8, r9, r10)
+-#endif
++ENTRY (__mpn_submul_1)
+ 	mtctr	r5
+ 
+ 	lwz	r0,0(r4)
+@@ -55,4 +48,4 @@ L(0):	lwzu	r0,4(r4)
+ L(1):	stw	r8,4(r3)
+ 	addze	r3,r10
+ 	blr
+-END (BP_SYM (__mpn_submul_1))
++END (__mpn_submul_1)
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S
+index 9f0390e6f813ada5..cca8768bf71e971a 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S
+@@ -19,13 +19,10 @@
+ #include <sysdep.h>
+ #define _ERRNO_H	1
+ #include <bits/errno.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ 	.comm	__curbrk,4,4
+ 	.section ".text"
+-ENTRY (BP_SYM (__brk))
+-	DISCARD_BOUNDS (r3)	/* the bounds are meaningless, so toss 'em */
++ENTRY (__brk)
+ 	mflr	r0
+ 	stwu    r1,-16(r1)
+ 	cfi_adjust_cfa_offset (16)
+@@ -50,6 +47,6 @@ ENTRY (BP_SYM (__brk))
+ 	blelr+
+ 	li      r3,ENOMEM
+ 	b	__syscall_error@local
+-END (BP_SYM (__brk))
++END (__brk)
+ 
+-weak_alias (BP_SYM (__brk), BP_SYM (brk))
++weak_alias (__brk, brk)
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
+index fb16519efa455985..d088a16824085236 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
+@@ -20,8 +20,6 @@
+ #define _ERRNO_H	1
+ #include <bits/errno.h>
+ #include <kernel-features.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ #define CLONE_VM	0x00000100
+ #define CLONE_THREAD	0x00010000
+@@ -35,10 +33,7 @@
+    		  int flags [r5], void *arg [r6], void *parent_tid [r7],
+ 		  void *tls [r8], void *child_tid [r9]); */
+ 
+-ENTRY (BP_SYM (__clone))
+-	/* GKM FIXME: add bounds checks, where sensible.  */
+-	DISCARD_BOUNDS (r4)
+-	DISCARD_BOUNDS (r6)
++ENTRY (__clone)
+ 
+ 	/* Check for child_stack == NULL || fn == NULL.  */
+ 	cmpwi	cr0,r4,0
+@@ -124,6 +119,6 @@ L(badargs):
+ 	b	__syscall_error@local
+ 
+ 	cfi_startproc
+-END (BP_SYM (__clone))
++END (__clone)
+ 
+-weak_alias (BP_SYM (__clone), BP_SYM (clone))
++weak_alias (__clone, clone)
diff --git a/SOURCES/glibc-rh1505492-bounded-17.patch b/SOURCES/glibc-rh1505492-bounded-17.patch
new file mode 100644
index 0000000..68bb578
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-bounded-17.patch
@@ -0,0 +1,1220 @@
+commit 2d67d91ac08aa2f793d220ad8712541fefa0ba79
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Wed Mar 6 00:10:21 2013 +0000
+
+    Remove powerpc64 bounded-pointers code.
+
+Conflicts:
+	sysdeps/generic/bp-sym.h
+	  (Copyright header change; file deleted manually.)
+	sysdeps/powerpc/powerpc64/bp-asm.h
+	sysdeps/powerpc/powerpc64/memset.S
+	sysdeps/powerpc/powerpc64/power4/memset.S
+	sysdeps/powerpc/powerpc64/power6/memset.S
+	sysdeps/powerpc/powerpc64/power7/memchr.S
+	sysdeps/powerpc/powerpc64/power7/memcmp.S
+	sysdeps/powerpc/powerpc64/power7/memrchr.S
+	sysdeps/powerpc/powerpc64/power7/memset.S
+	sysdeps/powerpc/powerpc64/power7/strnlen.S
+	sysdeps/powerpc/powerpc64/setjmp-common.S
+	sysdeps/powerpc/powerpc64/stpcpy.S
+	sysdeps/powerpc/powerpc64/strcmp.S
+	sysdeps/powerpc/powerpc64/strcpy.S
+	sysdeps/powerpc/powerpc64/strlen.S
+	  (Resolved textual conflicts due to previous backports.)
+
+diff --git a/sysdeps/generic/bp-sym.h b/sysdeps/generic/bp-sym.h
+deleted file mode 100644
+index f581e5fc59dfedd9..0000000000000000
+--- a/sysdeps/generic/bp-sym.h
++++ /dev/null
+@@ -1,25 +0,0 @@
+-/* Bounded-pointer symbol modifier.
+-   Copyright (C) 2000 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Greg McGary <greg@mcgary.org>
+-
+-   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 BP_SYM(name) _BP_SYM (name)
+-#if __BOUNDED_POINTERS__
+-# define _BP_SYM(name) __BP_##name
+-#else
+-# define _BP_SYM(name) name
+-#endif
+diff --git a/sysdeps/powerpc/powerpc64/__longjmp-common.S b/sysdeps/powerpc/powerpc64/__longjmp-common.S
+index 95caaa77c322562a..da65c6f1bbdb6dc3 100644
+--- a/sysdeps/powerpc/powerpc64/__longjmp-common.S
++++ b/sysdeps/powerpc/powerpc64/__longjmp-common.S
+@@ -24,8 +24,6 @@
+ #else
+ # include <jmpbuf-offsets.h>
+ #endif
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ #ifndef __NO_VMX__
+ 	.section	".toc","aw"
+@@ -45,9 +43,8 @@
+ #endif
+ 
+ 	.machine	"altivec"
+-ENTRY (BP_SYM (__longjmp))
++ENTRY (__longjmp)
+ 	CALL_MCOUNT 2
+-	CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
+ #ifndef __NO_VMX__
+ 	ld    r5,.LC__dl_hwcap@toc(r2)
+ # ifdef SHARED
+@@ -178,4 +175,4 @@ L(no_vmx):
+ 	lfd fp31,((JB_FPRS+17)*8)(r3)
+ 	mr r3,r4
+ 	blr
+-END (BP_SYM (__longjmp))
++END (__longjmp)
+diff --git a/sysdeps/powerpc/powerpc64/a2/memcpy.S b/sysdeps/powerpc/powerpc64/a2/memcpy.S
+index 4ffe19a0e6b04d2f..f640feb45ce306c6 100644
+--- a/sysdeps/powerpc/powerpc64/a2/memcpy.S
++++ b/sysdeps/powerpc/powerpc64/a2/memcpy.S
+@@ -18,8 +18,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ #define PREFETCH_AHEAD 4        /* no cache lines SRC prefetching ahead  */
+ #define ZERO_AHEAD 2            /* no cache lines DST zeroing ahead  */
+@@ -32,7 +30,7 @@
+ 
+ 
+ 	.machine  a2
+-EALIGN (BP_SYM (memcpy), 5, 0)
++EALIGN (memcpy, 5, 0)
+ 	CALL_MCOUNT 3
+ 
+ 	dcbt    0,r4            /* Prefetch ONE SRC cacheline  */
+@@ -522,5 +520,5 @@ L(endloop2_128):
+ 	b       L(lessthancacheline)
+ 
+ 
+-END_GEN_TB (BP_SYM (memcpy),TB_TOCLESS)
++END_GEN_TB (memcpy,TB_TOCLESS)
+ libc_hidden_builtin_def (memcpy)
+diff --git a/sysdeps/powerpc/powerpc64/bp-asm.h b/sysdeps/powerpc/powerpc64/bp-asm.h
+deleted file mode 100644
+index f1ec72204b685801..0000000000000000
+--- a/sysdeps/powerpc/powerpc64/bp-asm.h
++++ /dev/null
+@@ -1,113 +0,0 @@
+-/* Bounded-pointer definitions for PowerPC64 assembler.
+-   Copyright (C) 2000, 2002 Free Software Foundation, Inc.
+-   Contributed by Greg McGary <greg@mcgary.org>
+-
+-   This file is part of the GNU C Library.  Its master source is NOT part of
+-   the C library, however.  The master source lives in the GNU MP Library.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Library General Public License as
+-   published by the Free Software Foundation; either version 2 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
+-   Library General Public License for more details.
+-
+-   You should have received a copy of the GNU Library General Public
+-   License along with the GNU C Library; see the file COPYING.LIB.  If
+-   not, see <http://www.gnu.org/licenses/>.  */
+-
+-#if __BOUNDED_POINTERS__
+-
+-/* Byte offsets of BP components.  */
+-# define oVALUE	0
+-# define oLOW	4
+-# define oHIGH	8
+-
+-/* Don't check bounds, just convert the BP register to its simple
+-   pointer value.  */
+-
+-# define DISCARD_BOUNDS(rBP)			\
+-	ld	rBP, oVALUE(rBP)
+-
+-/* Check low bound, with the side effect that the BP register is converted
+-   its simple pointer value.  Move the high bound into a register for
+-   later use.  */
+-
+-# define CHECK_BOUNDS_LOW(rBP, rLOW, rHIGH)	\
+-	ld	rHIGH, oHIGH(rBP);		\
+-	ld	rLOW, oLOW(rBP);		\
+-	ld	rBP, oVALUE(rBP);		\
+-	tdllt	rBP, rLOW
+-
+-/* Check the high bound, which is in a register, using the given
+-   conditional trap instruction.  */
+-
+-# define CHECK_BOUNDS_HIGH(rVALUE, rHIGH, TWLcc) \
+-	TWLcc	rVALUE, rHIGH
+-
+-/* Check the high bound, which is stored at the return-value's high
+-   bound slot, using the given conditional trap instruction.  */
+-
+-# define CHECK_BOUNDS_HIGH_RTN(rVALUE, rHIGH, TWLcc)	\
+-	ld	rHIGH, oHIGH(rRTN);			\
+-	TWLcc	rVALUE, rHIGH
+-
+-/* Check both bounds, with the side effect that the BP register is
+-   converted to its simple pointer value.  */
+-
+-# define CHECK_BOUNDS_BOTH(rBP, rLOW, rHIGH)	\
+-	CHECK_BOUNDS_LOW(rBP, rLOW, rHIGH);	\
+-	tdlge	rBP, rHIGH
+-
+-/* Check bounds on a memory region of given length, with the side
+-   effect that the BP register is converted to its simple pointer
+-   value.  */
+-
+-# define CHECK_BOUNDS_BOTH_WIDE(rBP, rLOW, rHIGH, rLENGTH)	\
+-	CHECK_BOUNDS_LOW (rBP, rLOW, rHIGH);			\
+-	sub	rHIGH, rHIGH, rLENGTH;				\
+-	tdlgt	rBP, rHIGH
+-
+-# define CHECK_BOUNDS_BOTH_WIDE_LIT(rBP, rLOW, rHIGH, LENGTH)	\
+-	CHECK_BOUNDS_LOW (rBP, rLOW, rHIGH);			\
+-	subi	rHIGH, rHIGH, LENGTH;				\
+-	tdlgt	rBP, rHIGH
+-
+-/* Store a pointer value register into the return-value's pointer
+-   value slot.  */
+-
+-# define STORE_RETURN_VALUE(rVALUE)		\
+-	std	rVALUE, oVALUE(rRTN)
+-
+-/* Store a low and high bounds into the return-value's pointer bounds
+-   slots.  */
+-
+-# define STORE_RETURN_BOUNDS(rLOW, rHIGH)	\
+-	std	rLOW, oLOW(rRTN);		\
+-	std	rHIGH, oHIGH(rRTN)
+-
+-/* Stuff zero value/low/high into the BP addressed by rRTN.  */
+-
+-# define RETURN_NULL_BOUNDED_POINTER		\
+-	li	r4, 0;				\
+-	STORE_RETURN_VALUE (r4);		\
+-	STORE_RETURN_BOUNDS (r4, r4)
+-
+-#else
+-
+-# define DISCARD_BOUNDS(rBP)
+-# define CHECK_BOUNDS_LOW(rBP, rLOW, rHIGH)
+-# define CHECK_BOUNDS_HIGH(rVALUE, rHIGH, TWLcc)
+-# define CHECK_BOUNDS_HIGH_RTN(rVALUE, rHIGH, TWLcc)
+-# define CHECK_BOUNDS_BOTH(rBP, rLOW, rHIGH)
+-# define CHECK_BOUNDS_BOTH_WIDE(rBP, rLOW, rHIGH, rLENGTH)
+-# define CHECK_BOUNDS_BOTH_WIDE_LIT(rBP, rLOW, rHIGH, LENGTH)
+-# define STORE_RETURN_VALUE(rVALUE)
+-# define STORE_RETURN_BOUNDS(rLOW, rHIGH)
+-
+-# define RETURN_NULL_BOUNDED_POINTER li rRTN, 0
+-
+-#endif
+diff --git a/sysdeps/powerpc/powerpc64/cell/memcpy.S b/sysdeps/powerpc/powerpc64/cell/memcpy.S
+index 5c2019498af23df0..ad2b506f1e5fba74 100644
+--- a/sysdeps/powerpc/powerpc64/cell/memcpy.S
++++ b/sysdeps/powerpc/powerpc64/cell/memcpy.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ #define PREFETCH_AHEAD 6	/* no cache lines SRC prefetching ahead  */
+ #define ZERO_AHEAD 4		/* no cache lines DST zeroing ahead  */
+@@ -41,7 +39,7 @@
+ 
+ .align  7
+ 
+-EALIGN (BP_SYM (memcpy), 5, 0)
++EALIGN (memcpy, 5, 0)
+ 	CALL_MCOUNT 3
+ 
+ 	dcbt	0,r4		/* Prefetch ONE SRC cacheline  */
+@@ -240,5 +238,5 @@ EALIGN (BP_SYM (memcpy), 5, 0)
+ 	stb	r0,0(r6)
+ 1:	blr
+ 
+-END_GEN_TB (BP_SYM (memcpy),TB_TOCLESS)
++END_GEN_TB (memcpy,TB_TOCLESS)
+ libc_hidden_builtin_def (memcpy)
+diff --git a/sysdeps/powerpc/powerpc64/memcpy.S b/sysdeps/powerpc/powerpc64/memcpy.S
+index 680560e3513be8e0..7652fe380d62d45c 100644
+--- a/sysdeps/powerpc/powerpc64/memcpy.S
++++ b/sysdeps/powerpc/powerpc64/memcpy.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* __ptr_t [r3] memcpy (__ptr_t dst [r3], __ptr_t src [r4], size_t len [r5]);
+    Returns 'dst'.
+@@ -35,7 +33,7 @@
+    posible when both source and destination are doubleword aligned.
+    Each case has a optimized unrolled loop.   */
+ 
+-EALIGN (BP_SYM (memcpy), 5, 0)
++EALIGN (memcpy, 5, 0)
+ 	CALL_MCOUNT 3
+ 
+     cmpldi cr1,5,31
+@@ -391,5 +389,5 @@ EALIGN (BP_SYM (memcpy), 5, 0)
+     ld 31,-8(1)
+     ld 3,-16(1)
+     blr
+-END_GEN_TB (BP_SYM (memcpy),TB_TOCLESS)
++END_GEN_TB (memcpy,TB_TOCLESS)
+ libc_hidden_builtin_def (memcpy)
+diff --git a/sysdeps/powerpc/powerpc64/memset.S b/sysdeps/powerpc/powerpc64/memset.S
+index caba3564a136c9b1..9177dfc71800487f 100644
+--- a/sysdeps/powerpc/powerpc64/memset.S
++++ b/sysdeps/powerpc/powerpc64/memset.S
+@@ -18,8 +18,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ 	.section	".toc","aw"
+ .LC0:
+@@ -34,22 +32,15 @@
+    cache line (256 bits). There is a special case for setting cache lines
+    to 0, to take advantage of the dcbz instruction.  */
+ 
+-EALIGN (BP_SYM (memset), 5, 0)
++EALIGN (memset, 5, 0)
+ 	CALL_MCOUNT 3
+ 
+ #define rTMP	r0
+ #define rRTN	r3	/* Initial value of 1st argument.  */
+-#if __BOUNDED_POINTERS__
+-# define rMEMP0	r4	/* Original value of 1st arg.  */
+-# define rCHR	r5	/* Char to set in each byte.  */
+-# define rLEN	r6	/* Length of region to set.  */
+-# define rMEMP	r10	/* Address at which we are storing.  */
+-#else
+-# define rMEMP0	r3	/* Original value of 1st arg.  */
+-# define rCHR	r4	/* Char to set in each byte.  */
+-# define rLEN	r5	/* Length of region to set.  */
+-# define rMEMP	r6	/* Address at which we are storing.  */
+-#endif
++#define rMEMP0	r3	/* Original value of 1st arg.  */
++#define rCHR	r4	/* Char to set in each byte.  */
++#define rLEN	r5	/* Length of region to set.  */
++#define rMEMP	r6	/* Address at which we are storing.  */
+ #define rALIGN	r7	/* Number of bytes we are setting now (when aligning). */
+ #define rMEMP2	r8
+ 
+@@ -57,14 +48,6 @@ EALIGN (BP_SYM (memset), 5, 0)
+ #define rCLS	r8	/* Cache line size obtained from static.  */
+ #define rCLM	r9	/* Cache line size mask to check for cache alignment.  */
+ L(_memset):
+-#if __BOUNDED_POINTERS__
+-	cmpldi	cr1, rRTN, 0
+-	CHECK_BOUNDS_BOTH_WIDE (rMEMP0, rTMP, rTMP2, rLEN)
+-	beq	cr1, L(b0)
+-	STORE_RETURN_VALUE (rMEMP0)
+-	STORE_RETURN_BOUNDS (rTMP, rTMP2)
+-L(b0):
+-#endif
+ /* Take care of case for size <= 4.  */
+ 	cmpldi	cr1, rLEN, 8
+ 	andi.	rALIGN, rMEMP0, 7
+@@ -262,27 +245,18 @@ L(medium_27f):
+ L(medium_28t):
+ 	std	rCHR, -8(rMEMP)
+ 	blr
+-END_GEN_TB (BP_SYM (memset),TB_TOCLESS)
++END_GEN_TB (memset,TB_TOCLESS)
+ libc_hidden_builtin_def (memset)
+ 
+ #ifndef NO_BZERO_IMPL
+ /* Copied from bzero.S to prevent the linker from inserting a stub
+    between bzero and memset.  */
+-ENTRY (BP_SYM (__bzero))
++ENTRY (__bzero)
+ 	CALL_MCOUNT 3
+-#if __BOUNDED_POINTERS__
+-	mr	r6,r4
+-	li	r5,0
+-	mr	r4,r3
+-	/* Tell memset that we don't want a return value.  */
+-	li	r3,0
+-	b	L(_memset)
+-#else
+ 	mr	r5,r4
+ 	li	r4,0
+ 	b	L(_memset)
+-#endif
+-END_GEN_TB (BP_SYM (__bzero),TB_TOCLESS)
++END_GEN_TB (__bzero,TB_TOCLESS)
+ 
+-weak_alias (BP_SYM (__bzero), BP_SYM (bzero))
++weak_alias (__bzero, bzero)
+ #endif
+diff --git a/sysdeps/powerpc/powerpc64/power4/memset.S b/sysdeps/powerpc/powerpc64/power4/memset.S
+index 55e4013f1c7062c6..cfb731ddf49b64f4 100644
+--- a/sysdeps/powerpc/powerpc64/power4/memset.S
++++ b/sysdeps/powerpc/powerpc64/power4/memset.S
+@@ -18,8 +18,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* __ptr_t [r3] memset (__ptr_t s [r3], int c [r4], size_t n [r5]));
+    Returns 's'.
+@@ -29,22 +27,15 @@
+    to 0, to take advantage of the dcbz instruction.  */
+ 
+ 	.machine power4
+-EALIGN (BP_SYM (memset), 5, 0)
++EALIGN (memset, 5, 0)
+ 	CALL_MCOUNT 3
+ 
+ #define rTMP	r0
+ #define rRTN	r3	/* Initial value of 1st argument.  */
+-#if __BOUNDED_POINTERS__
+-# define rMEMP0	r4	/* Original value of 1st arg.  */
+-# define rCHR	r5	/* Char to set in each byte.  */
+-# define rLEN	r6	/* Length of region to set.  */
+-# define rMEMP	r10	/* Address at which we are storing.  */
+-#else
+-# define rMEMP0	r3	/* Original value of 1st arg.  */
+-# define rCHR	r4	/* Char to set in each byte.  */
+-# define rLEN	r5	/* Length of region to set.  */
+-# define rMEMP	r6	/* Address at which we are storing.  */
+-#endif
++#define rMEMP0	r3	/* Original value of 1st arg.  */
++#define rCHR	r4	/* Char to set in each byte.  */
++#define rLEN	r5	/* Length of region to set.  */
++#define rMEMP	r6	/* Address at which we are storing.  */
+ #define rALIGN	r7	/* Number of bytes we are setting now (when aligning). */
+ #define rMEMP2	r8
+ 
+@@ -52,14 +43,6 @@ EALIGN (BP_SYM (memset), 5, 0)
+ #define rCLS	r8	/* Cache line size obtained from static.  */
+ #define rCLM	r9	/* Cache line size mask to check for cache alignment.  */
+ L(_memset):
+-#if __BOUNDED_POINTERS__
+-	cmpldi	cr1, rRTN, 0
+-	CHECK_BOUNDS_BOTH_WIDE (rMEMP0, rTMP, rTMP2, rLEN)
+-	beq	cr1, L(b0)
+-	STORE_RETURN_VALUE (rMEMP0)
+-	STORE_RETURN_BOUNDS (rTMP, rTMP2)
+-L(b0):
+-#endif
+ /* Take care of case for size <= 4.  */
+ 	cmpldi	cr1, rLEN, 8
+ 	andi.	rALIGN, rMEMP0, 7
+@@ -250,27 +233,18 @@ L(medium_27f):
+ L(medium_28t):
+ 	std	rCHR, -8(rMEMP)
+ 	blr
+-END_GEN_TB (BP_SYM (memset),TB_TOCLESS)
++END_GEN_TB (memset,TB_TOCLESS)
+ libc_hidden_builtin_def (memset)
+ 
+ #ifndef NO_BZERO_IMPL
+ /* Copied from bzero.S to prevent the linker from inserting a stub
+    between bzero and memset.  */
+-ENTRY (BP_SYM (__bzero))
++ENTRY (__bzero)
+ 	CALL_MCOUNT 3
+-#if __BOUNDED_POINTERS__
+-	mr	r6,r4
+-	li	r5,0
+-	mr	r4,r3
+-	/* Tell memset that we don't want a return value.  */
+-	li	r3,0
+-	b	L(_memset)
+-#else
+ 	mr	r5,r4
+ 	li	r4,0
+ 	b	L(_memset)
+-#endif
+-END_GEN_TB (BP_SYM (__bzero),TB_TOCLESS)
++END_GEN_TB (__bzero,TB_TOCLESS)
+ 
+-weak_alias (BP_SYM (__bzero), BP_SYM (bzero))
++weak_alias (__bzero, bzero)
+ #endif
+diff --git a/sysdeps/powerpc/powerpc64/power4/strncmp.S b/sysdeps/powerpc/powerpc64/power4/strncmp.S
+index 2ce93040765b2321..412b92e585000f44 100644
+--- a/sysdeps/powerpc/powerpc64/power4/strncmp.S
++++ b/sysdeps/powerpc/powerpc64/power4/strncmp.S
+@@ -17,14 +17,12 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* See strlen.s for comments on how the end-of-string testing works.  */
+ 
+ /* int [r3] strncmp (const char *s1 [r3], const char *s2 [r4], size_t size [r5])  */
+ 
+-EALIGN (BP_SYM(strncmp), 4, 0)
++EALIGN (strncmp, 4, 0)
+ 	CALL_MCOUNT 3
+ 
+ #define rTMP2	r0
+@@ -32,9 +30,6 @@ EALIGN (BP_SYM(strncmp), 4, 0)
+ #define rSTR1	r3	/* first string arg */
+ #define rSTR2	r4	/* second string arg */
+ #define rN	r5	/* max string length */
+-/* Note:  The Bounded pointer support in this code is broken.  This code
+-   was inherited from PPC32 and that support was never completed.
+-   Current PPC gcc does not support -fbounds-check or -fbounded-pointers.  */
+ #define rWORD1	r6	/* current word in s1 */
+ #define rWORD2	r7	/* current word in s2 */
+ #define rWORD3  r10
+@@ -222,5 +217,5 @@ L(u4):	sub	rRTN, rWORD1, rWORD2
+ L(ux):
+ 	li	rRTN, 0
+ 	blr
+-END (BP_SYM (strncmp))
++END (strncmp)
+ libc_hidden_builtin_def (strncmp)
+diff --git a/sysdeps/powerpc/powerpc64/power6/memset.S b/sysdeps/powerpc/powerpc64/power6/memset.S
+index d2a8d3403f6058ce..b28d285232bbd595 100644
+--- a/sysdeps/powerpc/powerpc64/power6/memset.S
++++ b/sysdeps/powerpc/powerpc64/power6/memset.S
+@@ -18,8 +18,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* __ptr_t [r3] memset (__ptr_t s [r3], int c [r4], size_t n [r5]));
+    Returns 's'.
+@@ -29,34 +27,19 @@
+    to 0, to take advantage of the dcbz instruction.  */
+ 
+ 	.machine power6
+-EALIGN (BP_SYM (memset), 7, 0)
++EALIGN (memset, 7, 0)
+ 	CALL_MCOUNT 3
+ 
+ #define rTMP	r0
+ #define rRTN	r3	/* Initial value of 1st argument.  */
+-#if __BOUNDED_POINTERS__
+-# define rMEMP0	r4	/* Original value of 1st arg.  */
+-# define rCHR	r5	/* Char to set in each byte.  */
+-# define rLEN	r6	/* Length of region to set.  */
+-# define rMEMP	r10	/* Address at which we are storing.  */
+-#else
+-# define rMEMP0	r3	/* Original value of 1st arg.  */
+-# define rCHR	r4	/* Char to set in each byte.  */
+-# define rLEN	r5	/* Length of region to set.  */
+-# define rMEMP	r6	/* Address at which we are storing.  */
+-#endif
++#define rMEMP0	r3	/* Original value of 1st arg.  */
++#define rCHR	r4	/* Char to set in each byte.  */
++#define rLEN	r5	/* Length of region to set.  */
++#define rMEMP	r6	/* Address at which we are storing.  */
+ #define rALIGN	r7	/* Number of bytes we are setting now (when aligning). */
+ #define rMEMP2	r8
+ #define rMEMP3	r9	/* Alt mem pointer.  */
+ L(_memset):
+-#if __BOUNDED_POINTERS__
+-	cmpldi	cr1, rRTN, 0
+-	CHECK_BOUNDS_BOTH_WIDE (rMEMP0, rTMP, rTMP2, rLEN)
+-	beq	cr1, L(b0)
+-	STORE_RETURN_VALUE (rMEMP0)
+-	STORE_RETURN_BOUNDS (rTMP, rTMP2)
+-L(b0):
+-#endif
+ /* Take care of case for size <= 4.  */
+ 	cmpldi	cr1, rLEN, 8
+ 	andi.	rALIGN, rMEMP0, 7
+@@ -394,27 +377,18 @@ L(medium_27f):
+ L(medium_28t):
+ 	std	rCHR, -8(rMEMP)
+ 	blr
+-END_GEN_TB (BP_SYM (memset),TB_TOCLESS)
++END_GEN_TB (memset,TB_TOCLESS)
+ libc_hidden_builtin_def (memset)
+ 
+ #ifndef NO_BZERO_IMPL
+ /* Copied from bzero.S to prevent the linker from inserting a stub
+    between bzero and memset.  */
+-ENTRY (BP_SYM (__bzero))
++ENTRY (__bzero)
+ 	CALL_MCOUNT 3
+-#if __BOUNDED_POINTERS__
+-	mr	r6,r4
+-	li	r5,0
+-	mr	r4,r3
+-	/* Tell memset that we don't want a return value.  */
+-	li	r3,0
+-	b	L(_memset)
+-#else
+ 	mr	r5,r4
+ 	li	r4,0
+ 	b	L(_memset)
+-#endif
+-END_GEN_TB (BP_SYM (__bzero),TB_TOCLESS)
++END_GEN_TB (__bzero,TB_TOCLESS)
+ 
+-weak_alias (BP_SYM (__bzero), BP_SYM (bzero))
++weak_alias (__bzero, bzero)
+ #endif
+diff --git a/sysdeps/powerpc/powerpc64/power7/mempcpy.S b/sysdeps/powerpc/powerpc64/power7/mempcpy.S
+index ca524b584f1bcf92..17db88f65a87a198 100644
+--- a/sysdeps/powerpc/powerpc64/power7/mempcpy.S
++++ b/sysdeps/powerpc/powerpc64/power7/mempcpy.S
+@@ -18,15 +18,13 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ 
+ /* __ptr_t [r3] __mempcpy (__ptr_t dst [r3], __ptr_t src [r4], size_t len [r5]);
+     Returns 'dst' + 'len'.  */
+ 
+ 	.machine  power7
+-EALIGN (BP_SYM (__mempcpy), 5, 0)
++EALIGN (__mempcpy, 5, 0)
+ 	CALL_MCOUNT 3
+ 
+ 	cmpldi	cr1,5,31
+@@ -465,7 +463,7 @@ L(end_unaligned_loop):
+ 	add	3,3,5
+ 	blr
+ 
+-END_GEN_TB (BP_SYM (__mempcpy),TB_TOCLESS)
+-libc_hidden_def (BP_SYM (__mempcpy))
+-weak_alias (BP_SYM (__mempcpy), BP_SYM (mempcpy))
++END_GEN_TB (__mempcpy,TB_TOCLESS)
++libc_hidden_def (__mempcpy)
++weak_alias (__mempcpy, mempcpy)
+ libc_hidden_builtin_def (mempcpy)
+diff --git a/sysdeps/powerpc/powerpc64/power7/memset.S b/sysdeps/powerpc/powerpc64/power7/memset.S
+index 0f7d03e19dd5d2b8..73c129a4c1f64dcd 100644
+--- a/sysdeps/powerpc/powerpc64/power7/memset.S
++++ b/sysdeps/powerpc/powerpc64/power7/memset.S
+@@ -18,14 +18,12 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* __ptr_t [r3] memset (__ptr_t s [r3], int c [r4], size_t n [r5]));
+    Returns 's'.  */
+ 
+ 	.machine power7
+-EALIGN (BP_SYM (memset), 5, 0)
++EALIGN (memset, 5, 0)
+ 	CALL_MCOUNT 3
+ 
+ L(_memset):
+@@ -382,18 +380,18 @@ L(small):
+ 	stw	4,4(10)
+ 	blr
+ 
+-END_GEN_TB (BP_SYM (memset),TB_TOCLESS)
++END_GEN_TB (memset,TB_TOCLESS)
+ libc_hidden_builtin_def (memset)
+ 
+ #ifndef NO_BZERO_IMPL
+ /* Copied from bzero.S to prevent the linker from inserting a stub
+    between bzero and memset.  */
+-ENTRY (BP_SYM (__bzero))
++ENTRY (__bzero)
+ 	CALL_MCOUNT 3
+ 	mr	r5,r4
+ 	li	r4,0
+ 	b	L(_memset)
+-END_GEN_TB (BP_SYM (__bzero),TB_TOCLESS)
++END_GEN_TB (__bzero,TB_TOCLESS)
+ 
+-weak_alias (BP_SYM (__bzero), BP_SYM (bzero))
++weak_alias (__bzero, bzero)
+ #endif
+diff --git a/sysdeps/powerpc/powerpc64/power7/rawmemchr.S b/sysdeps/powerpc/powerpc64/power7/rawmemchr.S
+index 2eaaf2fc13004acc..17d79a10240dcd26 100644
+--- a/sysdeps/powerpc/powerpc64/power7/rawmemchr.S
++++ b/sysdeps/powerpc/powerpc64/power7/rawmemchr.S
+@@ -18,12 +18,10 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* int [r3] rawmemchr (void *s [r3], int c [r4])  */
+ 	.machine  power7
+-ENTRY (BP_SYM(__rawmemchr))
++ENTRY (__rawmemchr)
+ 	CALL_MCOUNT 2
+ 	dcbt	0,r3
+ 	clrrdi	r8,r3,3	      /* Align the address to doubleword boundary.  */
+@@ -108,6 +106,6 @@ L(done):
+ 	srdi	r0,r0,3	      /* Convert leading zeros to bytes.  */
+ 	add	r3,r8,r0      /* Return address of the matching char.  */
+ 	blr
+-END (BP_SYM (__rawmemchr))
++END (__rawmemchr)
+ weak_alias (__rawmemchr,rawmemchr)
+ libc_hidden_builtin_def (__rawmemchr)
+diff --git a/sysdeps/powerpc/powerpc64/power7/strcasecmp.S b/sysdeps/powerpc/powerpc64/power7/strcasecmp.S
+index 47e2fefe59c59900..65c343e52493440c 100644
+--- a/sysdeps/powerpc/powerpc64/power7/strcasecmp.S
++++ b/sysdeps/powerpc/powerpc64/power7/strcasecmp.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ #include <locale-defines.h>
+ 
+ /* int [r3] strcasecmp (const char *s1 [r3], const char *s2 [r4] )
+@@ -33,7 +31,7 @@
+ # define STRCMP   strcasecmp
+ #endif
+ 
+-ENTRY (BP_SYM (__STRCMP))
++ENTRY (__STRCMP)
+ 	CALL_MCOUNT 2
+ 
+ #define rRTN	r3	/* Return value */
+@@ -118,7 +116,7 @@ L(done):
+ 	subf	r0, rLWR2, rLWR1
+ 	extsw	rRTN, r0
+ 	blr
+-END (BP_SYM (__STRCMP))
++END (__STRCMP)
+ 
+-weak_alias (BP_SYM (__STRCMP), BP_SYM (STRCMP))
++weak_alias (__STRCMP, STRCMP)
+ libc_hidden_builtin_def (__STRCMP)
+diff --git a/sysdeps/powerpc/powerpc64/power7/strchr.S b/sysdeps/powerpc/powerpc64/power7/strchr.S
+index f840dfc8384b65db..ebba8ecad0045a75 100644
+--- a/sysdeps/powerpc/powerpc64/power7/strchr.S
++++ b/sysdeps/powerpc/powerpc64/power7/strchr.S
+@@ -18,12 +18,10 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* int [r3] strchr (char *s [r3], int c [r4])  */
+ 	.machine  power7
+-ENTRY (BP_SYM(strchr))
++ENTRY (strchr)
+ 	CALL_MCOUNT 2
+ 	dcbt	0,r3
+ 	clrrdi	r8,r3,3	      /* Align the address to doubleword boundary.  */
+@@ -223,6 +221,6 @@ L(done_null):
+ 	srdi	r0,r0,3	      /* Convert leading zeros to bytes.  */
+ 	add	r3,r8,r0      /* Return address of the matching null byte.  */
+ 	blr
+-END (BP_SYM (strchr))
+-weak_alias (BP_SYM (strchr), BP_SYM (index))
++END (strchr)
++weak_alias (strchr, index)
+ libc_hidden_builtin_def (strchr)
+diff --git a/sysdeps/powerpc/powerpc64/power7/strchrnul.S b/sysdeps/powerpc/powerpc64/power7/strchrnul.S
+index 388d4e91a70dbf7a..8d34dc7d8d8450ae 100644
+--- a/sysdeps/powerpc/powerpc64/power7/strchrnul.S
++++ b/sysdeps/powerpc/powerpc64/power7/strchrnul.S
+@@ -18,12 +18,10 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* int [r3] strchrnul (char *s [r3], int c [r4])  */
+ 	.machine  power7
+-ENTRY (BP_SYM(__strchrnul))
++ENTRY (__strchrnul)
+ 	CALL_MCOUNT 2
+ 	dcbt	0,r3
+ 	clrrdi	r8,r3,3	      /* Align the address to doubleword boundary.  */
+@@ -125,6 +123,6 @@ L(done):
+ 	srdi	r0,r0,3	      /* Convert leading zeros to bytes.  */
+ 	add	r3,r8,r0      /* Return address of matching c/null byte.  */
+ 	blr
+-END (BP_SYM (__strchrnul))
++END (__strchrnul)
+ weak_alias (__strchrnul,strchrnul)
+ libc_hidden_builtin_def (__strchrnul)
+diff --git a/sysdeps/powerpc/powerpc64/power7/strlen.S b/sysdeps/powerpc/powerpc64/power7/strlen.S
+index 39bca5ae288bc098..88b9d921ccbaf403 100644
+--- a/sysdeps/powerpc/powerpc64/power7/strlen.S
++++ b/sysdeps/powerpc/powerpc64/power7/strlen.S
+@@ -18,12 +18,10 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* int [r3] strlen (char *s [r3])  */
+ 	.machine  power7
+-ENTRY (BP_SYM (strlen))
++ENTRY (strlen)
+ 	CALL_MCOUNT 1
+ 	dcbt	0,r3
+ 	clrrdi	r4,r3,3	      /* Align the address to doubleword boundary.  */
+@@ -101,5 +99,5 @@ L(done):
+ 	srdi	r0,r0,3	      /* Convert leading/trailing zeros to bytes.  */
+ 	add	r3,r5,r0      /* Compute final length.  */
+ 	blr
+-END (BP_SYM (strlen))
++END (strlen)
+ libc_hidden_builtin_def (strlen)
+diff --git a/sysdeps/powerpc/powerpc64/power7/strncmp.S b/sysdeps/powerpc/powerpc64/power7/strncmp.S
+index d356bffab448a80e..349f5c6e4182f364 100644
+--- a/sysdeps/powerpc/powerpc64/power7/strncmp.S
++++ b/sysdeps/powerpc/powerpc64/power7/strncmp.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* See strlen.s for comments on how the end-of-string testing works.  */
+ 
+@@ -26,7 +24,7 @@
+ 		     const char *s2 [r4],
+ 		     size_t size [r5])  */
+ 
+-EALIGN (BP_SYM(strncmp),5,0)
++EALIGN (strncmp,5,0)
+ 	CALL_MCOUNT 3
+ 
+ #define rTMP2	r0
+@@ -34,9 +32,6 @@ EALIGN (BP_SYM(strncmp),5,0)
+ #define rSTR1	r3	/* first string arg */
+ #define rSTR2	r4	/* second string arg */
+ #define rN	r5	/* max string length */
+-/* Note:  The Bounded pointer support in this code is broken.  This code
+-   was inherited from PPC32 and that support was never completed.
+-   Current PPC gcc does not support -fbounds-check or -fbounded-pointers.  */
+ #define rWORD1	r6	/* current word in s1 */
+ #define rWORD2	r7	/* current word in s2 */
+ #define rWORD3  r10
+@@ -224,5 +219,5 @@ L(u4):	sub	rRTN,rWORD1,rWORD2
+ L(ux):
+ 	li	rRTN,0
+ 	blr
+-END (BP_SYM (strncmp))
++END (strncmp)
+ libc_hidden_builtin_def (strncmp)
+diff --git a/sysdeps/powerpc/powerpc64/power7/strnlen.S b/sysdeps/powerpc/powerpc64/power7/strnlen.S
+index 0a440258fa67fccb..a68a839a032db21e 100644
+--- a/sysdeps/powerpc/powerpc64/power7/strnlen.S
++++ b/sysdeps/powerpc/powerpc64/power7/strnlen.S
+@@ -18,12 +18,10 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* int [r3] strnlen (char *s [r3], int size [r4])  */
+ 	.machine  power7
+-ENTRY (BP_SYM (__strnlen))
++ENTRY (__strnlen)
+ 	CALL_MCOUNT 2
+ 	dcbt	0,r3
+ 	clrrdi	r8,r3,3
+@@ -174,6 +172,6 @@ L(loop_small):
+ 	mr	r3,r4
+ 	blr
+ 
+-END (BP_SYM (__strnlen))
+-weak_alias (BP_SYM (__strnlen), BP_SYM(strnlen))
++END (__strnlen)
++weak_alias (__strnlen, strnlen)
+ libc_hidden_builtin_def (strnlen)
+diff --git a/sysdeps/powerpc/powerpc64/setjmp-common.S b/sysdeps/powerpc/powerpc64/setjmp-common.S
+index e8c6e0adfdc88f93..5b1fdcdedd6963c1 100644
+--- a/sysdeps/powerpc/powerpc64/setjmp-common.S
++++ b/sysdeps/powerpc/powerpc64/setjmp-common.S
+@@ -23,8 +23,6 @@
+ #else
+ #include <jmpbuf-offsets.h>
+ #endif
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ #ifndef __NO_VMX__
+ 	.section	".toc","aw"
+@@ -73,7 +71,6 @@ libc_hidden_def (_setjmp)
+ ENTRY (__sigsetjmp)
+ 	CALL_MCOUNT 2
+ JUMPTARGET(GLUE(__sigsetjmp,_ent)):
+-	CHECK_BOUNDS_BOTH_WIDE_LIT (r3, r8, r9, JB_SIZE)
+ #ifdef PTR_MANGLE
+ 	mr   r5, r1
+ 	PTR_MANGLE (r5, r6)
+diff --git a/sysdeps/powerpc/powerpc64/start.S b/sysdeps/powerpc/powerpc64/start.S
+index aadaf0fae862b017..d69896f7ebb43bb9 100644
+--- a/sysdeps/powerpc/powerpc64/start.S
++++ b/sysdeps/powerpc/powerpc64/start.S
+@@ -35,7 +35,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include "bp-sym.h"
+ 
+ /* We do not want .eh_frame info for crt1.o since crt1.o is linked
+    before crtbegin.o, the file defining __EH_FRAME_BEGIN__.  */
+@@ -54,7 +53,7 @@
+ L(start_addresses):
+ 	.quad	0 /* was _SDA_BASE_  but not in 64-bit ABI*/
+ /*     function descriptors so don't need JUMPTARGET */
+-	.quad	BP_SYM(main)
++	.quad	main
+ 	.quad 	__libc_csu_init
+ 	.quad 	__libc_csu_fini
+ 
+@@ -79,7 +78,7 @@ ENTRY(_start)
+ 	ld	r8,.L01(r2)
+ 
+  /* and continue in libc-start, in glibc.  */
+-	b	JUMPTARGET(BP_SYM(__libc_start_main))
++	b	JUMPTARGET(__libc_start_main)
+ /* The linker needs this nop to recognize that it's OK to call via a
+    TOC adjusting stub.  */
+ 	nop
+diff --git a/sysdeps/powerpc/powerpc64/strchr.S b/sysdeps/powerpc/powerpc64/strchr.S
+index 0df4c3d8a303167c..72858903342d35ec 100644
+--- a/sysdeps/powerpc/powerpc64/strchr.S
++++ b/sysdeps/powerpc/powerpc64/strchr.S
+@@ -17,32 +17,19 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* See strlen.s for comments on how this works.  */
+ 
+ /* char * [r3] strchr (const char *s [r3] , int c [r4] )  */
+ 
+-ENTRY (BP_SYM (strchr))
++ENTRY (strchr)
+ 	CALL_MCOUNT 2
+ 
+ #define rTMP1	r0
+ #define rRTN	r3	/* outgoing result */
+-/* Note:  The Bounded pointer support in this code is broken.  This code
+-   was inherited from PPC32 and that support was never completed.
+-   Currently PPC gcc does not support -fbounds-check or -fbounded-pointers.
+-   These artifacts are left in the code as a reminder in case we need
+-   bounded pointer support in the future.  */
+-#if __BOUNDED_POINTERS__
+-# define rSTR	r4
+-# define rCHR	r5	/* byte we're looking for, spread over the whole word */
+-# define rWORD	r8	/* the current word */
+-#else
+-# define rSTR	r8	/* current word pointer */
+-# define rCHR	r4	/* byte we're looking for, spread over the whole word */
+-# define rWORD	r5	/* the current word */
+-#endif
++#define rSTR	r8	/* current word pointer */
++#define rCHR	r4	/* byte we're looking for, spread over the whole word */
++#define rWORD	r5	/* the current word */
+ #define rCLZB	rCHR	/* leading zero byte count */
+ #define rFEFE	r6	/* constant 0xfefefefefefefeff (-0x0101010101010101) */
+ #define r7F7F	r7	/* constant 0x7f7f7f7f7f7f7f7f */
+@@ -53,9 +40,6 @@ ENTRY (BP_SYM (strchr))
+ #define rTMP4	rIGN
+ #define rTMP5	rMASK
+ 
+-	CHECK_BOUNDS_LOW (rSTR, rTMP1, rTMP2)
+-	STORE_RETURN_BOUNDS (rTMP1, rTMP2)
+-
+ 	dcbt	0,rRTN
+ 	insrdi	rCHR, rCHR, 8, 48
+ 	li	rMASK, -1
+@@ -107,7 +91,6 @@ L(loopentry):
+    zero byte, in which case we return a match.  */
+ 	and.	rTMP5, rTMP1, rTMP2
+ 	li	rRTN, 0
+-	STORE_RETURN_VALUE (rSTR)
+ 	beqlr
+ /* At this point:
+    rTMP5 bytes are 0x80 for each match of c, 0 otherwise.
+@@ -142,8 +125,6 @@ L(loopentry):
+ #endif
+ 	srdi	rCLZB, rCLZB, 3
+ 	add	rRTN, rSTR, rCLZB
+-	CHECK_BOUNDS_HIGH_RTN (rSTR, rTMP2, tdlge)
+-	STORE_RETURN_VALUE (rSTR)
+ 	blr
+ 
+ L(foundit):
+@@ -163,10 +144,8 @@ L(foundit):
+ 	srdi	rCLZB, rCLZB, 3
+ #endif
+ 	add	rRTN, rSTR, rCLZB
+-	CHECK_BOUNDS_HIGH_RTN (rSTR, rTMP2, tdlge)
+-	STORE_RETURN_VALUE (rSTR)
+ 	blr
+-END (BP_SYM (strchr))
++END (strchr)
+ 
+-weak_alias (BP_SYM (strchr), BP_SYM (index))
++weak_alias (strchr, index)
+ libc_hidden_builtin_def (strchr)
+diff --git a/sysdeps/powerpc/powerpc64/strcmp.S b/sysdeps/powerpc/powerpc64/strcmp.S
+index c00774d5fb432ce8..6cfe53630b034622 100644
+--- a/sysdeps/powerpc/powerpc64/strcmp.S
++++ b/sysdeps/powerpc/powerpc64/strcmp.S
+@@ -17,29 +17,18 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* See strlen.s for comments on how the end-of-string testing works.  */
+ 
+ /* int [r3] strcmp (const char *s1 [r3], const char *s2 [r4])  */
+ 
+-EALIGN (BP_SYM(strcmp), 4, 0)
++EALIGN (strcmp, 4, 0)
+ 	CALL_MCOUNT 2
+ 
+ #define rTMP2	r0
+ #define rRTN	r3
+ #define rSTR1	r3	/* first string arg */
+ #define rSTR2	r4	/* second string arg */
+-/* Note:  The Bounded pointer support in this code is broken.  This code
+-   was inherited from PPC32 and that support was never completed.
+-   Current PPC gcc does not support -fbounds-check or -fbounded-pointers.
+-   These artifacts are left in the code as a reminder in case we need
+-   bounded pointer support in the future.  */
+-#if __BOUNDED_POINTERS__
+-# define rHIGH1	r11
+-# define rHIGH2 r12
+-#endif
+ #define rWORD1	r5	/* current word in s1 */
+ #define rWORD2	r6	/* current word in s2 */
+ #define rFEFE	r7	/* constant 0xfefefefefefefeff (-0x0101010101010101) */
+@@ -48,9 +37,6 @@ EALIGN (BP_SYM(strcmp), 4, 0)
+ #define rBITDIF	r10	/* bits that differ in s1 & s2 words */
+ #define rTMP	r11
+ 
+-	CHECK_BOUNDS_LOW (rSTR1, rTMP, rHIGH1)
+-	CHECK_BOUNDS_LOW (rSTR2, rTMP, rHIGH2)
+-
+ 	dcbt	0,rSTR1
+ 	or	rTMP, rSTR2, rSTR1
+ 	dcbt	0,rSTR2
+@@ -146,7 +132,6 @@ L(endstring):
+ 	blr
+ L(equal):
+ 	li	rRTN, 0
+-	/* GKM FIXME: check high bounds.  */
+ 	blr
+ 
+ L(different):
+@@ -184,11 +169,9 @@ L(u1):	cmpwi	cr1, rWORD1, 0
+ 	cmpd	rWORD1, rWORD2
+ 	bne+	cr1, L(u0)
+ L(u3):	sub	rRTN, rWORD1, rWORD2
+-	/* GKM FIXME: check high bounds.  */
+ 	blr
+ L(u4):	lbz	rWORD1, -1(rSTR1)
+ 	sub	rRTN, rWORD1, rWORD2
+-	/* GKM FIXME: check high bounds.  */
+ 	blr
+-END (BP_SYM (strcmp))
++END (strcmp)
+ libc_hidden_builtin_def (strcmp)
+diff --git a/sysdeps/powerpc/powerpc64/strlen.S b/sysdeps/powerpc/powerpc64/strlen.S
+index 47032aa1b6d457f1..ab1e60cff1a2ec47 100644
+--- a/sysdeps/powerpc/powerpc64/strlen.S
++++ b/sysdeps/powerpc/powerpc64/strlen.S
+@@ -17,8 +17,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* The algorithm here uses the following techniques:
+ 
+@@ -82,7 +80,7 @@
+ 
+ /* int [r3] strlen (char *s [r3])  */
+ 
+-ENTRY (BP_SYM (strlen))
++ENTRY (strlen)
+ 	CALL_MCOUNT 1
+ 
+ #define rTMP4	r0
+@@ -99,13 +97,6 @@ ENTRY (BP_SYM (strlen))
+ #define rTMP2	r11
+ #define rTMP3	r12
+ 
+-/* Note:  The Bounded pointer support in this code is broken.  This code
+-   was inherited from PPC32 and that support was never completed.
+-   Current PPC gcc does not support -fbounds-check or -fbounded-pointers.
+-   These artifacts are left in the code as a reminder in case we need
+-   bounded pointer support in the future.  */
+-	CHECK_BOUNDS_LOW (rRTN, rTMP1, rTMP2)
+-
+ 	dcbt	0,rRTN
+ 	clrrdi	rSTR, rRTN, 3
+ 	lis	r7F7F, 0x7f7f
+@@ -180,7 +171,6 @@ L(done0):
+ 	subf	rTMP1, rRTN, rSTR
+ 	srdi	rTMP3, rTMP3, 3
+ 	add	rRTN, rTMP1, rTMP3
+-	/* GKM FIXME: check high bound.  */
+ 	blr
+ #else
+ 
+@@ -205,5 +195,5 @@ L(done1):
+ 	blr
+ #endif
+ 
+-END (BP_SYM (strlen))
++END (strlen)
+ libc_hidden_builtin_def (strlen)
+diff --git a/sysdeps/powerpc/powerpc64/strncmp.S b/sysdeps/powerpc/powerpc64/strncmp.S
+index 18c73f4f64f6d98f..89a7d6f3ea6c138c 100644
+--- a/sysdeps/powerpc/powerpc64/strncmp.S
++++ b/sysdeps/powerpc/powerpc64/strncmp.S
+@@ -17,14 +17,12 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ /* See strlen.s for comments on how the end-of-string testing works.  */
+ 
+ /* int [r3] strncmp (const char *s1 [r3], const char *s2 [r4], size_t size [r5])  */
+ 
+-EALIGN (BP_SYM(strncmp), 4, 0)
++EALIGN (strncmp, 4, 0)
+ 	CALL_MCOUNT 3
+ 
+ #define rTMP2	r0
+@@ -32,9 +30,6 @@ EALIGN (BP_SYM(strncmp), 4, 0)
+ #define rSTR1	r3	/* first string arg */
+ #define rSTR2	r4	/* second string arg */
+ #define rN	r5	/* max string length */
+-/* Note:  The Bounded pointer support in this code is broken.  This code
+-   was inherited from PPC32 and that support was never completed.
+-   Current PPC gcc does not support -fbounds-check or -fbounded-pointers.  */
+ #define rWORD1	r6	/* current word in s1 */
+ #define rWORD2	r7	/* current word in s2 */
+ #define rFEFE	r8	/* constant 0xfefefefefefefeff (-0x0101010101010101) */
+@@ -207,5 +202,5 @@ L(u1):
+ L(u2):	lbzu	rWORD1, -1(rSTR1)	
+ L(u3):	sub	rRTN, rWORD1, rWORD2
+ 	blr
+-END (BP_SYM (strncmp))
++END (strncmp)
+ libc_hidden_builtin_def (strncmp)
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S
+index 3ea61af161584a58..562f74702b7dfbd8 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S
+@@ -19,17 +19,14 @@
+ #include <sysdep.h>
+ #define _ERRNO_H	1
+ #include <bits/errno.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ 	.comm	__curbrk,8,8
+ 	.section	".toc","aw"
+ .LC__curbrk:
+ 	.tc __curbrk[TC],__curbrk
+ 	.section ".text"
+-ENTRY (BP_SYM (__brk))
++ENTRY (__brk)
+ 	CALL_MCOUNT 1
+-	DISCARD_BOUNDS (r3)	/* the bounds are meaningless, so toss 'em.  */
+ 
+ 	std	r3,-8(r1)
+ 	DO_CALL(SYS_ify(brk))
+@@ -41,6 +38,6 @@ ENTRY (BP_SYM (__brk))
+ 	blelr+
+ 	li      r3,ENOMEM
+ 	TAIL_CALL_SYSCALL_ERROR
+-END (BP_SYM (__brk))
++END (__brk)
+ 
+-weak_alias (BP_SYM (__brk), BP_SYM (brk))
++weak_alias (__brk, brk)
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
+index e3fa5f55b92834b9..87c0797058558288 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S
+@@ -19,8 +19,6 @@
+ #include <sysdep.h>
+ #define _ERRNO_H	1
+ #include <bits/errno.h>
+-#include <bp-sym.h>
+-#include <bp-asm.h>
+ 
+ #define CLONE_VM	0x00000100
+ #define CLONE_THREAD	0x00010000
+@@ -33,11 +31,8 @@
+                   int flags [r5], void *arg [r6], void *parent_tid [r7],
+                   void *tls [r8], void *child_tid [r9]); */
+ 
+-ENTRY (BP_SYM (__clone))
++ENTRY (__clone)
+ 	CALL_MCOUNT 7
+-	/* GKM FIXME: add bounds checks, where sensible.  */
+-	DISCARD_BOUNDS (r4)
+-	DISCARD_BOUNDS (r6)
+ 
+ 	/* Check for child_stack == NULL || fn == NULL.  */
+ 	cmpdi	cr0,r4,0
+@@ -142,6 +137,6 @@ L(parent):
+ 	cfi_restore(r31)
+ 	PSEUDO_RET
+ 
+-END (BP_SYM (__clone))
++END (__clone)
+ 
+-weak_alias (BP_SYM (__clone), BP_SYM (clone))
++weak_alias (__clone, clone)
diff --git a/SOURCES/glibc-rh1505492-bounded-2.patch b/SOURCES/glibc-rh1505492-bounded-2.patch
new file mode 100644
index 0000000..2bc6829
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-bounded-2.patch
@@ -0,0 +1,274 @@
+commit 2e8a5c8c46f0a897a2629131eb86d1cae8321234
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Thu Jan 31 22:59:04 2013 +0000
+
+    Remove bp-semctl.h and CHECK_SEMCTL.
+
+Conflicts:
+	sysdeps/generic/bp-semctl.h
+
+Copyright header change; file removed manually.
+
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/semctl.c b/ports/sysdeps/unix/sysv/linux/alpha/semctl.c
+index 0e59ee27af5d25cd..0d28667bf84b57bc 100644
+--- a/ports/sysdeps/unix/sysv/linux/alpha/semctl.c
++++ b/ports/sysdeps/unix/sysv/linux/alpha/semctl.c
+@@ -33,10 +33,6 @@ union semun
+   struct seminfo *__buf;	/* buffer for IPC_INFO */
+ };
+ 
+-#include <bp-checks.h>
+-#include <bp-semctl.h>
+-
+-
+ int
+ __new_semctl (int semid, int semnum, int cmd, ...)
+ {
+@@ -51,7 +47,7 @@ __new_semctl (int semid, int semnum, int cmd, ...)
+   va_end (ap);
+ 
+   return INLINE_SYSCALL (semctl, 4, semid, semnum, cmd | __IPC_64,
+-			 CHECK_SEMCTL (&arg, semid, cmd | __IPC_64)->array);
++			 arg.array);
+ }
+ 
+ #include <shlib-compat.h>
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/semctl.c b/ports/sysdeps/unix/sysv/linux/mips/mips64/semctl.c
+index 3c1c9106420bd67b..7c7d7caafe5db9bf 100644
+--- a/ports/sysdeps/unix/sysv/linux/mips/mips64/semctl.c
++++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/semctl.c
+@@ -30,9 +30,6 @@ union semun
+   struct seminfo *__buf;	/* buffer for IPC_INFO */
+ };
+ 
+-#include <bp-checks.h>
+-#include <bp-semctl.h>		/* definition of CHECK_SEMCTL needs union semum */
+-
+ int __semctl (int semid, int semnum, int cmd, ...);
+ 
+ int
+@@ -49,7 +46,7 @@ __semctl (int semid, int semnum, int cmd, ...)
+   va_end (ap);
+ 
+   return INLINE_SYSCALL (semctl, 4, semid, semnum, cmd | __IPC_64,
+-			 CHECK_SEMCTL (&arg, semid, cmd | __IPC_64)->array);
++			 arg.array);
+ }
+ 
+ #include <shlib-compat.h>
+diff --git a/sysdeps/generic/bp-semctl.h b/sysdeps/generic/bp-semctl.h
+deleted file mode 100644
+index af132837cc40bcc9..0000000000000000
+--- a/sysdeps/generic/bp-semctl.h
++++ /dev/null
+@@ -1,66 +0,0 @@
+-/* Bounded-pointer checking macros for C.
+-   Copyright (C) 2000 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Greg McGary <greg@mcgary.org>
+-
+-   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 _bp_semctl_h_
+-#define _bp_semctl_h_ 1
+-
+-#if __BOUNDED_POINTERS__
+-
+-# define CHECK_SEMCTL(ARGP, SEMID, CMD) check_semctl (ARGP, SEMID, CMD)
+-
+-union semun *__unbounded
+-check_semctl (union semun *arg, int semid, int cmd)
+-{
+-  int ipc64 = (cmd & __IPC_64);
+-
+-  switch (cmd & ~__IPC_64)
+-    {
+-    case IPC_STAT:
+-    case IPC_SET:
+-      (void) CHECK_1 (arg->buf);
+-      break;
+-
+-    case GETALL:
+-    case SETALL:
+-      {
+-	struct semid_ds ds;
+-	union semun un = { .buf = &ds };
+-	unsigned int length = ~0;
+-
+-	/* It's unfortunate that we need to make a recursive
+-	   system call to get the size of the semaphore set...  */
+-	if (semctl (semid, 0, IPC_STAT | ipc64, un) == 0)
+-	  length = ds.sem_nsems;
+-	(void) CHECK_N (arg->array, length);
+-	break;
+-      }
+-
+-    case IPC_INFO:
+-      (void) CHECK_1 (arg->__buf);
+-      break;
+-    }
+-
+-  return __ptrvalue (arg);
+-}
+-
+-#else
+-# define CHECK_SEMCTL(ARGP, SEMID, CMD) (ARGP)
+-#endif
+-
+-#endif /* _bp_semctl_h_ */
+diff --git a/sysdeps/unix/sysv/linux/i386/semctl.c b/sysdeps/unix/sysv/linux/i386/semctl.c
+index 5e2d9480598e56c4..c340e57f0e6899c0 100644
+--- a/sysdeps/unix/sysv/linux/i386/semctl.c
++++ b/sysdeps/unix/sysv/linux/i386/semctl.c
+@@ -49,9 +49,6 @@ union semun
+   struct __old_semid_ds *__old_buf;
+ };
+ 
+-#include <bp-checks.h>
+-#include <bp-semctl.h>		/* definition of CHECK_SEMCTL needs union semum */
+-
+ /* Return identifier for array of NSEMS semaphores associated with
+    KEY.  */
+ #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
+@@ -75,7 +72,7 @@ __old_semctl (int semid, int semnum, int cmd, ...)
+   va_end (ap);
+ 
+   return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd,
+-			 CHECK_SEMCTL (&arg, semid, cmd));
++			 &arg);
+ }
+ compat_symbol (libc, __old_semctl, semctl, GLIBC_2_0);
+ #endif
+@@ -94,7 +91,7 @@ __new_semctl (int semid, int semnum, int cmd, ...)
+   va_end (ap);
+ 
+   return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd | __IPC_64,
+-			 CHECK_SEMCTL (&arg, semid, cmd | __IPC_64));
++			 &arg);
+ }
+ 
+ versioned_symbol (libc, __new_semctl, semctl, GLIBC_2_2);
+diff --git a/sysdeps/unix/sysv/linux/semctl.c b/sysdeps/unix/sysv/linux/semctl.c
+index 2d28cf661e9b3ad0..bae5a8d28306e653 100644
+--- a/sysdeps/unix/sysv/linux/semctl.c
++++ b/sysdeps/unix/sysv/linux/semctl.c
+@@ -51,9 +51,6 @@ union semun
+   struct __old_semid_ds *__old_buf;
+ };
+ 
+-#include <bp-checks.h>
+-#include <bp-semctl.h>		/* definition of CHECK_SEMCTL needs union semum */
+-
+ /* Return identifier for array of NSEMS semaphores associated with
+    KEY.  */
+ #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
+@@ -92,7 +89,7 @@ __old_semctl (int semid, int semnum, int cmd, ...)
+   va_end (ap);
+ 
+   return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd,
+-			 CHECK_SEMCTL (&arg, semid, cmd));
++			 &arg);
+ }
+ compat_symbol (libc, __old_semctl, semctl, GLIBC_2_0);
+ #endif
+@@ -127,7 +124,7 @@ __new_semctl (int semid, int semnum, int cmd, ...)
+ 
+ #if __ASSUME_IPC64 > 0
+   return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd | __IPC_64,
+-			 CHECK_SEMCTL (&arg, semid, cmd | __IPC_64));
++			 &arg);
+ #else
+   switch (cmd)
+     {
+@@ -137,7 +134,7 @@ __new_semctl (int semid, int semnum, int cmd, ...)
+       break;
+     default:
+       return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd,
+-			     CHECK_SEMCTL (&arg, semid, cmd));
++			     &arg);
+     }
+ 
+   {
+@@ -148,7 +145,7 @@ __new_semctl (int semid, int semnum, int cmd, ...)
+     /* Unfortunately there is no way how to find out for sure whether
+        we should use old or new semctl.  */
+     result = INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd | __IPC_64,
+-			     CHECK_SEMCTL (&arg, semid, cmd | __IPC_64));
++			     &arg);
+     if (result != -1 || errno != EINVAL)
+       return result;
+ 
+@@ -168,7 +165,7 @@ __new_semctl (int semid, int semnum, int cmd, ...)
+ 	  }
+       }
+     result = INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd,
+-			     CHECK_SEMCTL (&arg, semid, cmd));
++			     &arg);
+     if (result != -1 && cmd != IPC_SET)
+       {
+ 	memset(buf, 0, sizeof(*buf));
+diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/semctl.c b/sysdeps/unix/sysv/linux/sparc/sparc32/semctl.c
+index 464f0b502d65c52a..9dac28c4f1cb4657 100644
+--- a/sysdeps/unix/sysv/linux/sparc/sparc32/semctl.c
++++ b/sysdeps/unix/sysv/linux/sparc/sparc32/semctl.c
+@@ -50,9 +50,6 @@ union semun
+   struct __old_semid_ds *__old_buf;
+ };
+ 
+-#include <bp-checks.h>
+-#include <bp-semctl.h>		/* definition of CHECK_SEMCTL needs union semum */
+-
+ /* Return identifier for array of NSEMS semaphores associated with
+    KEY.  */
+ #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
+@@ -87,7 +84,7 @@ __old_semctl (int semid, int semnum, int cmd, ...)
+     }
+ 
+   return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd,
+-			 CHECK_SEMCTL (&arg, semid, cmd));
++			 &arg);
+ }
+ compat_symbol (libc, __old_semctl, semctl, GLIBC_2_0);
+ #endif
+@@ -117,7 +114,7 @@ __new_semctl (int semid, int semnum, int cmd, ...)
+     }
+ 
+   return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd | __IPC_64,
+-			 CHECK_SEMCTL (&arg, semid, cmd | __IPC_64));
++			 &arg);
+ }
+ 
+ versioned_symbol (libc, __new_semctl, semctl, GLIBC_2_2);
+diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c b/sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c
+index 3ac389e5b178a01d..658db0e8d91afa88 100644
+--- a/sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c
++++ b/sysdeps/unix/sysv/linux/sparc/sparc64/semctl.c
+@@ -33,9 +33,6 @@ union semun
+   struct seminfo *__buf;	/* buffer for IPC_INFO */
+ };
+ 
+-#include <bp-checks.h>
+-#include <bp-semctl.h>		/* definition of CHECK_SEMCTL needs union semum */
+-
+ /* Return identifier for array of NSEMS semaphores associated with
+    KEY.  */
+ 
+@@ -53,5 +50,5 @@ semctl (int semid, int semnum, int cmd, ...)
+   va_end (ap);
+ 
+   return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd,
+-			 CHECK_SEMCTL (&arg, semid, cmd)->array);
++			 arg.array);
+ }
diff --git a/SOURCES/glibc-rh1505492-bounded-3.patch b/SOURCES/glibc-rh1505492-bounded-3.patch
new file mode 100644
index 0000000..477fbfa
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-bounded-3.patch
@@ -0,0 +1,269 @@
+commit 32a45bea390b39e3be3cfa81c68a5892eaa539d2
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Thu Jan 31 23:00:15 2013 +0000
+
+    Remove CHECK_SIGSET and CHECK_SIGSET_NULL_OK.
+
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/sigpending.c b/ports/sysdeps/unix/sysv/linux/ia64/sigpending.c
+index 8d02643a151cb18c..c56147c97802108b 100644
+--- a/ports/sysdeps/unix/sysv/linux/ia64/sigpending.c
++++ b/ports/sysdeps/unix/sysv/linux/ia64/sigpending.c
+@@ -24,7 +24,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Change the set of blocked signals to SET,
+    wait until a signal arrives, and restore the set of blocked signals.  */
+@@ -34,5 +33,5 @@ sigpending (set)
+ {
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+-  return INLINE_SYSCALL (rt_sigpending, 2, CHECK_SIGSET (set), _NSIG / 8);
++  return INLINE_SYSCALL (rt_sigpending, 2, set, _NSIG / 8);
+ }
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/sigprocmask.c b/ports/sysdeps/unix/sysv/linux/ia64/sigprocmask.c
+index 8776c2000aca1945..97fd364073bfd4f4 100644
+--- a/ports/sysdeps/unix/sysv/linux/ia64/sigprocmask.c
++++ b/ports/sysdeps/unix/sysv/linux/ia64/sigprocmask.c
+@@ -26,7 +26,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Get and/or change the set of blocked signals.  */
+ int
+@@ -38,7 +37,6 @@ __sigprocmask (how, set, oset)
+ 
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+-  return INLINE_SYSCALL (rt_sigprocmask, 4, how, CHECK_SIGSET (set),
+-			 CHECK_SIGSET_NULL_OK (oset), _NSIG / 8);
++  return INLINE_SYSCALL (rt_sigprocmask, 4, how, set, oset, _NSIG / 8);
+ }
+ weak_alias (__sigprocmask, sigprocmask)
+diff --git a/sysdeps/generic/bp-checks.h b/sysdeps/generic/bp-checks.h
+index f007eee12db8543c..86f998ae69feb81f 100644
+--- a/sysdeps/generic/bp-checks.h
++++ b/sysdeps/generic/bp-checks.h
+@@ -66,11 +66,6 @@ extern void *__unbounded __ubp_memchr (const void *__unbounded, int, unsigned);
+ /* Same as CHECK_STRING, but tolerate ARG == NULL.  */
+ # define CHECK_STRING_NULL_OK(ARG) _CHECK_STRING ((ARG), __ptrvalue (ARG))
+ 
+-/* Check bounds of signal syscall args with type sigset_t.  */
+-# define CHECK_SIGSET(SET) CHECK_N ((SET), _NSIG / (8 * sizeof *(SET)))
+-/* Same as CHECK_SIGSET, but tolerate SET == NULL.  */
+-# define CHECK_SIGSET_NULL_OK(SET) CHECK_N_NULL_OK ((SET), _NSIG / (8 * sizeof *(SET)))
+-
+ # if defined (_IOC_SIZESHIFT) && defined (_IOC_SIZEBITS)
+ /* Extract the size of the ioctl data and check its bounds.  */
+ #  define CHECK_IOCTL(ARG, CMD)						\
+@@ -114,8 +109,6 @@ extern void *__unbounded __ubp_memchr (const void *__unbounded, int, unsigned);
+ # define CHECK_N(ARG, N) (ARG)
+ # define CHECK_N_NULL_OK(ARG, N) (ARG)
+ # define CHECK_STRING(ARG) (ARG)
+-# define CHECK_SIGSET(SET) (SET)
+-# define CHECK_SIGSET_NULL_OK(SET) (SET)
+ # define CHECK_IOCTL(ARG, CMD) (ARG)
+ # define CHECK_FCNTL(ARG, CMD) (ARG)
+ # define CHECK_N_PAGES(ARG, NBYTES) (ARG)
+diff --git a/sysdeps/unix/sysv/linux/sigpending.c b/sysdeps/unix/sysv/linux/sigpending.c
+index 7174b4ae3a791f86..bd6126143923ab8e 100644
+--- a/sysdeps/unix/sysv/linux/sigpending.c
++++ b/sysdeps/unix/sysv/linux/sigpending.c
+@@ -21,7 +21,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -32,5 +31,5 @@ int
+ sigpending (set)
+      sigset_t *set;
+ {
+-  return INLINE_SYSCALL (rt_sigpending, 2, CHECK_SIGSET (set), _NSIG / 8);
++  return INLINE_SYSCALL (rt_sigpending, 2, set, _NSIG / 8);
+ }
+diff --git a/sysdeps/unix/sysv/linux/sigprocmask.c b/sysdeps/unix/sysv/linux/sigprocmask.c
+index a5ac4dd501964dff..8d69613049c9629c 100644
+--- a/sysdeps/unix/sysv/linux/sigprocmask.c
++++ b/sysdeps/unix/sysv/linux/sigprocmask.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -55,7 +54,6 @@ __sigprocmask (how, set, oset)
+     }
+ #endif
+ 
+-  return INLINE_SYSCALL (rt_sigprocmask, 4, how, CHECK_SIGSET_NULL_OK (set),
+-			 CHECK_SIGSET_NULL_OK (oset), _NSIG / 8);
++  return INLINE_SYSCALL (rt_sigprocmask, 4, how, set, oset, _NSIG / 8);
+ }
+ weak_alias (__sigprocmask, sigprocmask)
+diff --git a/sysdeps/unix/sysv/linux/sigsuspend.c b/sysdeps/unix/sysv/linux/sigsuspend.c
+index e1ee87b29fa258ee..c673cf2b65cfe7ea 100644
+--- a/sysdeps/unix/sysv/linux/sigsuspend.c
++++ b/sysdeps/unix/sysv/linux/sigsuspend.c
+@@ -21,7 +21,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -29,7 +28,7 @@
+ static inline int __attribute__ ((always_inline))
+ do_sigsuspend (const sigset_t *set)
+ {
+-  return INLINE_SYSCALL (rt_sigsuspend, 2, CHECK_SIGSET (set), _NSIG / 8);
++  return INLINE_SYSCALL (rt_sigsuspend, 2, set, _NSIG / 8);
+ }
+ 
+ /* Change the set of blocked signals to SET,
+diff --git a/sysdeps/unix/sysv/linux/sigtimedwait.c b/sysdeps/unix/sysv/linux/sigtimedwait.c
+index 8686b9a66bd99738..34834c0cb1f9e362 100644
+--- a/sysdeps/unix/sysv/linux/sigtimedwait.c
++++ b/sysdeps/unix/sysv/linux/sigtimedwait.c
+@@ -51,7 +51,7 @@ do_sigtimedwait (const sigset_t *set, siginfo_t *info,
+ 
+     /* XXX The size argument hopefully will have to be changed to the
+        real size of the user-level sigset_t.  */
+-  int result = INLINE_SYSCALL (rt_sigtimedwait, 4, CHECK_SIGSET (set),
++  int result = INLINE_SYSCALL (rt_sigtimedwait, 4, set,
+ 			       CHECK_1 (info), timeout, _NSIG / 8);
+ 
+   /* The kernel generates a SI_TKILL code in si_code in case tkill is
+diff --git a/sysdeps/unix/sysv/linux/sigwait.c b/sysdeps/unix/sysv/linux/sigwait.c
+index a304ed978bcdbd1d..5e7d8ca8c8a62f19 100644
+--- a/sysdeps/unix/sysv/linux/sigwait.c
++++ b/sysdeps/unix/sysv/linux/sigwait.c
+@@ -23,7 +23,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #ifdef __NR_rt_sigtimedwait
+ 
+@@ -58,7 +57,7 @@ do_sigwait (const sigset_t *set, int *sig)
+ #ifdef INTERNAL_SYSCALL
+   INTERNAL_SYSCALL_DECL (err);
+   do
+-    ret = INTERNAL_SYSCALL (rt_sigtimedwait, err, 4, CHECK_SIGSET (set),
++    ret = INTERNAL_SYSCALL (rt_sigtimedwait, err, 4, set,
+ 			    NULL, NULL, _NSIG / 8);
+   while (INTERNAL_SYSCALL_ERROR_P (ret, err)
+ 	 && INTERNAL_SYSCALL_ERRNO (ret, err) == EINTR);
+@@ -71,8 +70,7 @@ do_sigwait (const sigset_t *set, int *sig)
+     ret = INTERNAL_SYSCALL_ERRNO (ret, err);
+ #else
+   do
+-    ret = INLINE_SYSCALL (rt_sigtimedwait, 4, CHECK_SIGSET (set),
+-			  NULL, NULL, _NSIG / 8);
++    ret = INLINE_SYSCALL (rt_sigtimedwait, 4, set, NULL, NULL, _NSIG / 8);
+   while (ret == -1 && errno == EINTR);
+   if (ret != -1)
+     {
+diff --git a/sysdeps/unix/sysv/linux/sigwaitinfo.c b/sysdeps/unix/sysv/linux/sigwaitinfo.c
+index 9f2b1d40c941bbfc..f70386a31bce66bd 100644
+--- a/sysdeps/unix/sysv/linux/sigwaitinfo.c
++++ b/sysdeps/unix/sysv/linux/sigwaitinfo.c
+@@ -52,7 +52,7 @@ do_sigwaitinfo (const sigset_t *set, siginfo_t *info)
+ 
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+-  int result = INLINE_SYSCALL (rt_sigtimedwait, 4, CHECK_SIGSET (set),
++  int result = INLINE_SYSCALL (rt_sigtimedwait, 4, set,
+ 			       CHECK_1 (info), NULL, _NSIG / 8);
+ 
+   /* The kernel generates a SI_TKILL code in si_code in case tkill is
+diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c b/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c
+index 011aa2ab3964b887..7548435ca29ae294 100644
+--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c
++++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c
+@@ -21,7 +21,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Change the set of blocked signals to SET,
+    wait until a signal arrives, and restore the set of blocked signals.  */
+@@ -31,5 +30,5 @@ sigpending (set)
+ {
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+-  return INLINE_SYSCALL (rt_sigpending, 2, CHECK_SIGSET (set), _NSIG / 8);
++  return INLINE_SYSCALL (rt_sigpending, 2, set, _NSIG / 8);
+ }
+diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c b/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
+index 7622c0a28ca0d04a..60f95b4f554d7966 100644
+--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
++++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
+@@ -21,7 +21,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Get and/or change the set of blocked signals.  */
+ int
+@@ -32,7 +31,6 @@ __sigprocmask (how, set, oset)
+ {
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+-  return INLINE_SYSCALL (rt_sigprocmask, 4, how, CHECK_SIGSET (set),
+-			 CHECK_SIGSET_NULL_OK (oset), _NSIG / 8);
++  return INLINE_SYSCALL (rt_sigprocmask, 4, how, set, oset, _NSIG / 8);
+ }
+ weak_alias (__sigprocmask, sigprocmask)
+diff --git a/sysdeps/unix/sysv/linux/x86_64/sigpending.c b/sysdeps/unix/sysv/linux/x86_64/sigpending.c
+index b3f2547b137847d3..7e448c0327cbcd19 100644
+--- a/sysdeps/unix/sysv/linux/x86_64/sigpending.c
++++ b/sysdeps/unix/sysv/linux/x86_64/sigpending.c
+@@ -24,7 +24,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Change the set of blocked signals to SET,
+    wait until a signal arrives, and restore the set of blocked signals.  */
+@@ -34,5 +33,5 @@ sigpending (set)
+ {
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+-  return INLINE_SYSCALL (rt_sigpending, 2, CHECK_SIGSET (set), _NSIG / 8);
++  return INLINE_SYSCALL (rt_sigpending, 2, set, _NSIG / 8);
+ }
+diff --git a/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c b/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c
+index 9f05e4a5d306839f..210fd97f9f33521e 100644
+--- a/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c
++++ b/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c
+@@ -25,7 +25,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Get and/or change the set of blocked signals.  */
+ int
+@@ -37,7 +36,6 @@ __sigprocmask (how, set, oset)
+ 
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+-  return INLINE_SYSCALL (rt_sigprocmask, 4, how, CHECK_SIGSET (set),
+-			CHECK_SIGSET_NULL_OK (oset), _NSIG / 8);
++  return INLINE_SYSCALL (rt_sigprocmask, 4, how, set, oset, _NSIG / 8);
+ }
+ weak_alias (__sigprocmask, sigprocmask)
diff --git a/SOURCES/glibc-rh1505492-bounded-4.patch b/SOURCES/glibc-rh1505492-bounded-4.patch
new file mode 100644
index 0000000..ffc8ef9
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-bounded-4.patch
@@ -0,0 +1,121 @@
+commit 3a7ac8a0f596bb73093212cd1109c1413777e1f8
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Fri Feb 1 00:06:18 2013 +0000
+
+    Remove bp-start.h and INIT_ARGV_and_ENVIRON.
+
+Conflicts:
+	sysdeps/generic/bp-start.h
+
+Copyright header change; file removed manually.
+
+diff --git a/csu/libc-start.c b/csu/libc-start.c
+index ebf9f4ec7335f992..2fab8556a5e2cb26 100644
+--- a/csu/libc-start.c
++++ b/csu/libc-start.c
+@@ -19,7 +19,6 @@
+ #include <stdio.h>
+ #include <unistd.h>
+ #include <ldsodefs.h>
+-#include <bp-start.h>
+ #include <bp-sym.h>
+ 
+ extern void __libc_init_first (int argc, char **argv, char **envp);
+@@ -146,7 +145,7 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL),
+ #ifndef SHARED
+   char *__unbounded *__unbounded ubp_ev = &ubp_av[argc + 1];
+ 
+-  INIT_ARGV_and_ENVIRON;
++  __environ = ubp_ev;
+ 
+   /* Store the lowest stack address.  This is done in ld.so if this is
+      the code for the DSO.  */
+diff --git a/sysdeps/generic/bp-start.h b/sysdeps/generic/bp-start.h
+deleted file mode 100644
+index 0f0339f54cba4aa8..0000000000000000
+--- a/sysdeps/generic/bp-start.h
++++ /dev/null
+@@ -1,71 +0,0 @@
+-/* Bounded-pointer checking macros for C.
+-   Copyright (C) 2000 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Greg McGary <greg@mcgary.org>
+-
+-   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 __BOUNDED_POINTERS__
+-
+-  /* The command-line arg vector and environment vector come to us from
+-     the OS as an unbounded pointer to an array of unbounded strings.
+-     The user's main expects argv and __environ to be bounded pointers
+-     to arrays of bounded strings.  */
+-# define INIT_ARGV_and_ENVIRON \
+-  do {									      \
+-    int envc;								      \
+-    for (envc = 0; *ubp_ev; ubp_ev++, envc++)				      \
+-      ;									      \
+-    ubp_ev -= envc;							      \
+-									      \
+-    /* GKM FIXME: we could save some space by allocating only enough for      \
+-       the additional low & high words, and destructively rewriting	      \
+-       argv in place.  */						      \
+-    __ptrvalue (argv) = __ptrlow (argv)					      \
+-      = alloca ((argc + envc + 2) * sizeof (*argv));			      \
+-    __ptrhigh (argv) = __ptrvalue (argv) + argc + 1;			      \
+-    __ptrvalue (__environ) = __ptrlow (__environ) = __ptrhigh (argv);	      \
+-    __ptrhigh (__environ) = __ptrvalue (__environ) + envc + 1;		      \
+-    boundify_vector (__environ, ubp_ev);				      \
+-    boundify_vector (argv, ubp_av);					      \
+-  } while (0)
+-
+-
+-/* Copy an unbounded vector of unbounded strings into a bounded
+-   counterpart.  */
+-
+-static void
+-boundify_vector (char **dest, char *__unbounded *__unbounded src)
+-{
+-  char *__unbounded s;
+-  for (; *src; src++, dest++)
+-    {
+-      __ptrvalue (*dest) = __ptrlow (*dest) = *src;
+-      __ptrhigh (*dest) = src[1];
+-    }
+-  *dest = 0;
+-  /* The OS lays out strings contiguously in vector order,
+-     so  */
+-  for (s = __ptrvalue (dest[-1]); *s; s++)
+-    ;
+-  __ptrhigh (dest[-1]) = ++s;
+-}
+-
+-#else
+-
+-# define INIT_ARGV_and_ENVIRON __environ = ubp_ev
+-
+-#endif
+diff --git a/sysdeps/unix/sysv/linux/powerpc/libc-start.c b/sysdeps/unix/sysv/linux/powerpc/libc-start.c
+index 98a793e0894f6936..89de1aa7e6e1df59 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/libc-start.c
++++ b/sysdeps/unix/sysv/linux/powerpc/libc-start.c
+@@ -20,7 +20,6 @@
+ #include <unistd.h>
+ #include <ldsodefs.h>
+ #include <sysdep.h>
+-#include <bp-start.h>
+ #include <bp-sym.h>
+ 
+ 
diff --git a/SOURCES/glibc-rh1505492-bounded-5.patch b/SOURCES/glibc-rh1505492-bounded-5.patch
new file mode 100644
index 0000000..3e27f1d
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-bounded-5.patch
@@ -0,0 +1,168 @@
+commit e782a927c24430100bf2008c96cd421a70285a7e
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Fri Feb 1 06:35:29 2013 +0000
+
+    Remove BOUNDED_N and BOUNDED_1.
+
+Conflicts:
+	sysdeps/sparc/backtrace.c
+
+The changes to that file have been applied to
+sysdeps/sparc/sparc64/backtrace.c instead.
+
+diff --git a/debug/backtrace.c b/debug/backtrace.c
+index a3fd81c32d176089..d0785329a2514e20 100644
+--- a/debug/backtrace.c
++++ b/debug/backtrace.c
+@@ -21,7 +21,6 @@
+ #include <signal.h>
+ #include <frame.h>
+ #include <sigcontextinfo.h>
+-#include <bp-checks.h>
+ #include <ldsodefs.h>
+ 
+ /* This implementation assumes a stack layout that matches the defaults
+@@ -50,7 +49,7 @@
+ /* By default assume the `next' pointer in struct layout points to the
+    next struct layout.  */
+ #ifndef ADVANCE_STACK_FRAME
+-# define ADVANCE_STACK_FRAME(next) BOUNDED_1 ((struct layout *) (next))
++# define ADVANCE_STACK_FRAME(next) ((struct layout *) (next))
+ #endif
+ 
+ /* By default, the frame pointer is just what we get from gcc.  */
+@@ -72,7 +71,7 @@ __backtrace (array, size)
+   top_stack = CURRENT_STACK_FRAME;
+ 
+   /* We skip the call to this function, it makes no sense to record it.  */
+-  current = BOUNDED_1 ((struct layout *) top_frame);
++  current = ((struct layout *) top_frame);
+   while (cnt < size)
+     {
+       if ((void *) current INNER_THAN top_stack
+diff --git a/sysdeps/generic/bp-checks.h b/sysdeps/generic/bp-checks.h
+index d43e299d4dc06b6b..f2610786aed0cc85 100644
+--- a/sysdeps/generic/bp-checks.h
++++ b/sysdeps/generic/bp-checks.h
+@@ -66,13 +66,6 @@ extern void *__unbounded __ubp_memchr (const void *__unbounded, int, unsigned);
+ /* Same as CHECK_STRING, but tolerate ARG == NULL.  */
+ # define CHECK_STRING_NULL_OK(ARG) _CHECK_STRING ((ARG), __ptrvalue (ARG))
+ 
+-/* Return a bounded pointer with value PTR that satisfies CHECK_N (PTR, N).  */
+-# define BOUNDED_N(PTR, N) 				\
+-  ({ __typeof (PTR) __bounded _p_;			\
+-     __ptrvalue _p_ = __ptrlow _p_ = __ptrvalue (PTR);	\
+-     __ptrhigh _p_ = __ptrvalue _p_ + (N);		\
+-     _p_; })
+-
+ #else /* !__BOUNDED_POINTERS__ */
+ 
+ /* Do nothing if not compiling with -fbounded-pointers.  */
+@@ -85,10 +78,7 @@ extern void *__unbounded __ubp_memchr (const void *__unbounded, int, unsigned);
+ # define CHECK_N(ARG, N) (ARG)
+ # define CHECK_N_NULL_OK(ARG, N) (ARG)
+ # define CHECK_STRING(ARG) (ARG)
+-# define BOUNDED_N(PTR, N) (PTR)
+ 
+ #endif /* !__BOUNDED_POINTERS__ */
+ 
+-#define BOUNDED_1(PTR) BOUNDED_N (PTR, 1)
+-
+ #endif /* _bp_checks_h_ */
+diff --git a/sysdeps/powerpc/powerpc32/backtrace.c b/sysdeps/powerpc/powerpc32/backtrace.c
+index 942951f2bc0ce45d..0e2e5c296876444e 100644
+--- a/sysdeps/powerpc/powerpc32/backtrace.c
++++ b/sysdeps/powerpc/powerpc32/backtrace.c
+@@ -18,7 +18,6 @@
+ 
+ #include <execinfo.h>
+ #include <stddef.h>
+-#include <bp-checks.h>
+ 
+ /* This is the stack layout we see with every stack frame.
+    Note that every routine is required by the ABI to lay out the stack
+@@ -47,11 +46,10 @@ __backtrace (void **array, int size)
+ 
+   /* Get the address on top-of-stack.  */
+   asm volatile ("lwz %0,0(1)" : "=r"(current));
+-  current = BOUNDED_1 (current);
+ 
+   for (				count = 0;
+        current != NULL && 	count < size;
+-       current = BOUNDED_1 (current->next), count++)
++       current = current->next, count++)
+     array[count] = current->return_address;
+ 
+   /* It's possible the second-last stack frame can't return
+diff --git a/sysdeps/powerpc/powerpc64/backtrace.c b/sysdeps/powerpc/powerpc64/backtrace.c
+index 89957a5f4e1efb95..08e535585ef2a104 100644
+--- a/sysdeps/powerpc/powerpc64/backtrace.c
++++ b/sysdeps/powerpc/powerpc64/backtrace.c
+@@ -18,7 +18,6 @@
+ 
+ #include <execinfo.h>
+ #include <stddef.h>
+-#include <bp-checks.h>
+ 
+ /* This is the stack layout we see with every stack frame.
+    Note that every routine is required by the ABI to lay out the stack
+@@ -50,11 +49,10 @@ __backtrace (void **array, int size)
+ 
+   /* Get the address on top-of-stack.  */
+   asm volatile ("ld %0,0(1)" : "=r"(current));
+-  current = BOUNDED_1 (current);
+ 
+   for (				count = 0;
+        current != NULL && 	count < size;
+-       current = BOUNDED_1 (current->next), count++)
++       current = current->next, count++)
+     array[count] = current->return_address;
+ 
+   /* It's possible the second-last stack frame can't return
+diff --git a/sysdeps/sparc/sparc64/backtrace.c b/sysdeps/sparc/sparc64/backtrace.c
+index e9a72a69a0c64d75..d5a1ebec000ce91e 100644
+--- a/sysdeps/sparc/sparc64/backtrace.c
++++ b/sysdeps/sparc/sparc64/backtrace.c
+@@ -19,7 +19,6 @@
+ 
+ #include <execinfo.h>
+ #include <stddef.h>
+-#include <bp-checks.h>
+ #include <sysdep.h>
+ 
+ struct layout
+@@ -40,7 +39,6 @@ __backtrace (void **array, int size)
+   asm volatile ("flushw");
+   asm volatile ("mov %%fp, %0" : "=r"(fp));
+   current = (struct layout *__unbounded) (fp + STACK_BIAS);
+-  current = BOUNDED_1 (current);
+ 
+   for (count = 0; count < size; count++)
+     {
+@@ -48,7 +46,6 @@ __backtrace (void **array, int size)
+       if (!current->next)
+ 	break;
+       current = (struct layout *__unbounded) (current->next + STACK_BIAS);
+-      current = BOUNDED_1 (current);
+     }
+ 
+   return count;
+diff --git a/sysdeps/unix/sysv/linux/shmat.c b/sysdeps/unix/sysv/linux/shmat.c
+index d01bb1bdb779fb0d..21417f4ced70e778 100644
+--- a/sysdeps/unix/sysv/linux/shmat.c
++++ b/sysdeps/unix/sysv/linux/shmat.c
+@@ -23,7 +23,6 @@
+ #include <sysdep.h>
+ #include <unistd.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Attach the shared memory segment associated with SHMID to the data
+    segment of the calling process.  SHMADDR and SHMFLG determine how
+@@ -58,5 +57,5 @@ shmat (shmid, shmaddr, shmflg)
+       return (void *) -1l;
+     }
+ 
+-  return BOUNDED_N (raddr, length);
++  return raddr;
+ }
diff --git a/SOURCES/glibc-rh1505492-bounded-6.patch b/SOURCES/glibc-rh1505492-bounded-6.patch
new file mode 100644
index 0000000..0228646
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-bounded-6.patch
@@ -0,0 +1,726 @@
+commit 6277fdabc074afa76ad5883a4b99cdf8e75de31a
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Mon Feb 4 16:29:39 2013 +0000
+
+    Remove CHECK_STRING, CHECK_STRING_NULL_OK and __ubp_memchr.
+
+Conflicts:
+	sysdeps/unix/sysv/linux/getcwd.c
+
+Conflict due to context change in glibc-rh1534635.patch.
+
+diff --git a/ports/sysdeps/ia64/memchr.S b/ports/sysdeps/ia64/memchr.S
+index 6836571599c0a0af..a6f2451b9a3698a5 100644
+--- a/ports/sysdeps/ia64/memchr.S
++++ b/ports/sysdeps/ia64/memchr.S
+@@ -154,7 +154,4 @@ ENTRY(__memchr)
+ END(__memchr)
+ 
+ weak_alias (__memchr, memchr)
+-#if !__BOUNDED_POINTERS__
+-weak_alias (__memchr, __ubp_memchr)
+-#endif
+ libc_hidden_builtin_def (memchr)
+diff --git a/ports/sysdeps/m68k/memchr.S b/ports/sysdeps/m68k/memchr.S
+index 9e7aff816d84c6e6..5f2478f5d150e787 100644
+--- a/ports/sysdeps/m68k/memchr.S
++++ b/ports/sysdeps/m68k/memchr.S
+@@ -304,7 +304,4 @@ L(L9:)
+ END(__memchr)
+ 
+ weak_alias (__memchr, memchr)
+-#if !__BOUNDED_POINTERS__
+-weak_alias (__memchr, __ubp_memchr)
+-#endif
+ libc_hidden_builtin_def (memchr)
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/truncate64.c b/ports/sysdeps/unix/sysv/linux/arm/truncate64.c
+index 3fad93f50e745396..a9a8059379fdbba5 100644
+--- a/ports/sysdeps/unix/sysv/linux/arm/truncate64.c
++++ b/ports/sysdeps/unix/sysv/linux/arm/truncate64.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Truncate the file FD refers to to LENGTH bytes.  */
+ int
+@@ -30,7 +29,7 @@ truncate64 (const char *path, off64_t length)
+ {
+   unsigned int low = length & 0xffffffff;
+   unsigned int high = length >> 32;
+-  int result = INLINE_SYSCALL (truncate64, 4, CHECK_STRING (path), 0,
++  int result = INLINE_SYSCALL (truncate64, 4, path, 0,
+ 			       __LONG_LONG_PAIR (high, low));
+   return result;
+ }
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/umount.c b/ports/sysdeps/unix/sysv/linux/ia64/umount.c
+index ae0c03659f0fef9b..86b1acc9c634e55c 100644
+--- a/ports/sysdeps/unix/sysv/linux/ia64/umount.c
++++ b/ports/sysdeps/unix/sysv/linux/ia64/umount.c
+@@ -20,11 +20,10 @@
+ #include <errno.h>
+ 
+ #include <sysdep.h>
+-#include <bp-checks.h>
+ 
+ /* Unmount a filesystem.  */
+ int
+ umount (const char *special_file)
+ {
+-  return INLINE_SYSCALL (umount, 2, CHECK_STRING (special_file), 0);
++  return INLINE_SYSCALL (umount, 2, special_file, 0);
+ }
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/truncate64.c b/ports/sysdeps/unix/sysv/linux/mips/mips32/truncate64.c
+index 3fad93f50e745396..a9a8059379fdbba5 100644
+--- a/ports/sysdeps/unix/sysv/linux/mips/mips32/truncate64.c
++++ b/ports/sysdeps/unix/sysv/linux/mips/mips32/truncate64.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Truncate the file FD refers to to LENGTH bytes.  */
+ int
+@@ -30,7 +29,7 @@ truncate64 (const char *path, off64_t length)
+ {
+   unsigned int low = length & 0xffffffff;
+   unsigned int high = length >> 32;
+-  int result = INLINE_SYSCALL (truncate64, 4, CHECK_STRING (path), 0,
++  int result = INLINE_SYSCALL (truncate64, 4, path, 0,
+ 			       __LONG_LONG_PAIR (high, low));
+   return result;
+ }
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c b/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
+index 1078cc35ac0cc129..645ffa122ea62de6 100644
+--- a/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
++++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
+@@ -25,7 +25,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -96,11 +95,9 @@ __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
+     }
+ 
+   if (flag & AT_SYMLINK_NOFOLLOW)
+-    result = INTERNAL_SYSCALL (lstat, err, 2, CHECK_STRING (file),
+-			       __ptrvalue (&kst));
++    result = INTERNAL_SYSCALL (lstat, err, 2, file, __ptrvalue (&kst));
+   else
+-    result = INTERNAL_SYSCALL (stat, err, 2, CHECK_STRING (file),
+-			       __ptrvalue (&kst));
++    result = INTERNAL_SYSCALL (stat, err, 2, file, __ptrvalue (&kst));
+ 
+   if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+     return __xstat64_conv (vers, &kst, st);
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c b/ports/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
+index 71123f2bf9094c0f..f698d9298a3855e6 100644
+--- a/ports/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
++++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
+@@ -23,7 +23,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <xstatconv.h>
+ 
+@@ -34,7 +33,7 @@ __lxstat64 (int vers, const char *name, struct stat64 *buf)
+   int result;
+   struct kernel_stat kbuf;
+ 
+-  result = INLINE_SYSCALL (lstat, 2, CHECK_STRING (name), __ptrvalue (&kbuf));
++  result = INLINE_SYSCALL (lstat, 2, name, __ptrvalue (&kbuf));
+   if (result == 0)
+     result = __xstat64_conv (vers, &kbuf, buf);
+ 
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c b/ports/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
+index b5bb93614340c02a..623299c6b8db85c4 100644
+--- a/ports/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
++++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
+@@ -23,7 +23,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <xstatconv.h>
+ 
+@@ -35,7 +34,7 @@ __xstat64 (int vers, const char *name, struct stat64 *buf)
+   int result;
+   struct kernel_stat kbuf;
+ 
+-  result = INLINE_SYSCALL (stat, 2, CHECK_STRING (name), __ptrvalue (&kbuf));
++  result = INLINE_SYSCALL (stat, 2, name, __ptrvalue (&kbuf));
+   if (result == 0)
+     result = __xstat64_conv (vers, &kbuf, buf);
+ 
+diff --git a/sysdeps/generic/bp-checks.h b/sysdeps/generic/bp-checks.h
+index f2610786aed0cc85..bf10617a3f6b8474 100644
+--- a/sysdeps/generic/bp-checks.h
++++ b/sysdeps/generic/bp-checks.h
+@@ -41,16 +41,6 @@
+     && BOUNDS_VIOLATED),				\
+    __ptrvalue (ARG))
+ 
+-extern void *__unbounded __ubp_memchr (const void *__unbounded, int, unsigned);
+-
+-# define _CHECK_STRING(ARG, COND)				\
+-  (((COND)							\
+-    && (__ptrvalue (ARG) < __ptrlow (ARG)			\
+-	|| !__ubp_memchr (__ptrvalue (ARG), '\0',			\
+-		      (__ptrhigh (ARG) - __ptrvalue (ARG))))	\
+-    && BOUNDS_VIOLATED),					\
+-   __ptrvalue (ARG))
+-
+ /* Check bounds of a pointer seated to an array of N objects.  */
+ # define CHECK_N(ARG, N) _CHECK_N ((ARG), (N), 1)
+ /* Same as CHECK_N, but tolerate ARG == NULL.  */
+@@ -61,11 +51,6 @@ extern void *__unbounded __ubp_memchr (const void *__unbounded, int, unsigned);
+ /* Same as CHECK_1, but tolerate ARG == NULL.  */
+ # define CHECK_1_NULL_OK(ARG) CHECK_N_NULL_OK ((ARG), 1)
+ 
+-/* Check for NUL-terminator within string's bounds.  */
+-# define CHECK_STRING(ARG) _CHECK_STRING ((ARG), 1)
+-/* Same as CHECK_STRING, but tolerate ARG == NULL.  */
+-# define CHECK_STRING_NULL_OK(ARG) _CHECK_STRING ((ARG), __ptrvalue (ARG))
+-
+ #else /* !__BOUNDED_POINTERS__ */
+ 
+ /* Do nothing if not compiling with -fbounded-pointers.  */
+@@ -77,7 +62,6 @@ extern void *__unbounded __ubp_memchr (const void *__unbounded, int, unsigned);
+ # define CHECK_1_NULL_OK(ARG) (ARG)
+ # define CHECK_N(ARG, N) (ARG)
+ # define CHECK_N_NULL_OK(ARG, N) (ARG)
+-# define CHECK_STRING(ARG) (ARG)
+ 
+ #endif /* !__BOUNDED_POINTERS__ */
+ 
+diff --git a/sysdeps/i386/memchr.S b/sysdeps/i386/memchr.S
+index 191641207efb9076..a3427c17dafd0cbf 100644
+--- a/sysdeps/i386/memchr.S
++++ b/sysdeps/i386/memchr.S
+@@ -333,7 +333,4 @@ L(pop):	popl %edi		/* pop saved registers */
+ END (BP_SYM (__memchr))
+ 
+ weak_alias (BP_SYM (__memchr), BP_SYM (memchr))
+-#if !__BOUNDED_POINTERS__
+-weak_alias (__memchr, __ubp_memchr)
+-#endif
+ libc_hidden_builtin_def (memchr)
+diff --git a/sysdeps/sparc/sparc32/memchr.S b/sysdeps/sparc/sparc32/memchr.S
+index b7a77298ab916ee0..e22b3d8c1adf4322 100644
+--- a/sysdeps/sparc/sparc32/memchr.S
++++ b/sysdeps/sparc/sparc32/memchr.S
+@@ -139,7 +139,4 @@ ENTRY(__memchr)
+ END(__memchr)
+ 
+ weak_alias (__memchr, memchr)
+-#if !__BOUNDED_POINTERS__
+-weak_alias (__memchr, __ubp_memchr)
+-#endif
+ libc_hidden_builtin_def (memchr)
+diff --git a/sysdeps/sparc/sparc64/memchr.S b/sysdeps/sparc/sparc64/memchr.S
+index 03423b93f5bd81e1..cf38e6a10329e37f 100644
+--- a/sysdeps/sparc/sparc64/memchr.S
++++ b/sysdeps/sparc/sparc64/memchr.S
+@@ -256,7 +256,4 @@ ENTRY(__memchr)
+ END(__memchr)
+ 
+ weak_alias (__memchr, memchr)
+-#if !__BOUNDED_POINTERS__
+-weak_alias (__memchr, __ubp_memchr)
+-#endif
+ libc_hidden_builtin_def (memchr)
+diff --git a/sysdeps/unix/sysv/linux/execve.c b/sysdeps/unix/sysv/linux/execve.c
+index f29615980c531bc2..34fd14bf6afc5417 100644
+--- a/sysdeps/unix/sysv/linux/execve.c
++++ b/sysdeps/unix/sysv/linux/execve.c
+@@ -21,7 +21,8 @@
+ #include <sysdep.h>
+ #include <alloca.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
++
++/* Consider moving to syscalls.list.  */
+ 
+ int
+ __execve (file, argv, envp)
+@@ -29,34 +30,6 @@ __execve (file, argv, envp)
+      char *const argv[];
+      char *const envp[];
+ {
+-#if __BOUNDED_POINTERS__
+-  {
+-    char *const *v;
+-    int i;
+-    char *__unbounded *__unbounded ubp_argv;
+-    char *__unbounded *__unbounded ubp_envp;
+-    char *__unbounded *__unbounded ubp_v;
+-
+-    for (v = argv; *v; v++)
+-      ;
+-    i = v - argv + 1;
+-    ubp_argv = (char *__unbounded *__unbounded) alloca (sizeof (*ubp_argv) * i);
+-    for (v = argv, ubp_v = ubp_argv; --i; v++, ubp_v++)
+-      *ubp_v = CHECK_STRING (*v);
+-    *ubp_v = 0;
+-
+-    for (v = envp; *v; v++)
+-      ;
+-    i = v - envp + 1;
+-    ubp_envp = (char *__unbounded *__unbounded) alloca (sizeof (*ubp_envp) * i);
+-    for (v = envp, ubp_v = ubp_envp; --i; v++, ubp_v++)
+-      *ubp_v = CHECK_STRING (*v);
+-    *ubp_v = 0;
+-
+-    return INLINE_SYSCALL (execve, 3, CHECK_STRING (file), ubp_argv, ubp_envp);
+-  }
+-#else
+   return INLINE_SYSCALL (execve, 3, file, argv, envp);
+-#endif
+ }
+ weak_alias (__execve, execve)
+diff --git a/sysdeps/unix/sysv/linux/fxstatat.c b/sysdeps/unix/sysv/linux/fxstatat.c
+index 9bb608957ac98c9d..de98e667c76f9b3e 100644
+--- a/sysdeps/unix/sysv/linux/fxstatat.c
++++ b/sysdeps/unix/sysv/linux/fxstatat.c
+@@ -109,10 +109,10 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
+   if (vers == _STAT_VER_KERNEL)
+     {
+       if (flag & AT_SYMLINK_NOFOLLOW)
+-	result = INTERNAL_SYSCALL (lstat, err, 2, CHECK_STRING (file),
++	result = INTERNAL_SYSCALL (lstat, err, 2, file,
+ 				   CHECK_1 ((struct kernel_stat *) st));
+       else
+-	result = INTERNAL_SYSCALL (stat, err, 2, CHECK_STRING (file),
++	result = INTERNAL_SYSCALL (stat, err, 2, file,
+ 				   CHECK_1 ((struct kernel_stat *) st));
+ 
+       if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+@@ -126,11 +126,9 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
+     }
+ #else
+   if (flag & AT_SYMLINK_NOFOLLOW)
+-    result = INTERNAL_SYSCALL (lstat, err, 2, CHECK_STRING (file),
+-			       __ptrvalue (&kst));
++    result = INTERNAL_SYSCALL (lstat, err, 2, file, __ptrvalue (&kst));
+   else
+-    result = INTERNAL_SYSCALL (stat, err, 2, CHECK_STRING (file),
+-			       __ptrvalue (&kst));
++    result = INTERNAL_SYSCALL (stat, err, 2, file, __ptrvalue (&kst));
+ 
+   if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+     return __xstat_conv (vers, &kst, st);
+diff --git a/sysdeps/unix/sysv/linux/fxstatat64.c b/sysdeps/unix/sysv/linux/fxstatat64.c
+index 4aa60df7abc9d929..10488b6c1daa210e 100644
+--- a/sysdeps/unix/sysv/linux/fxstatat64.c
++++ b/sysdeps/unix/sysv/linux/fxstatat64.c
+@@ -99,11 +99,9 @@ __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
+     }
+ 
+   if (flag & AT_SYMLINK_NOFOLLOW)
+-    result = INTERNAL_SYSCALL (lstat64, err, 2, CHECK_STRING (file),
+-			       CHECK_1 (st));
++    result = INTERNAL_SYSCALL (lstat64, err, 2, file, CHECK_1 (st));
+   else
+-    result = INTERNAL_SYSCALL (stat64, err, 2, CHECK_STRING (file),
+-			       CHECK_1 (st));
++    result = INTERNAL_SYSCALL (stat64, err, 2, file, CHECK_1 (st));
+   if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+     {
+ # if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
+diff --git a/sysdeps/unix/sysv/linux/getcwd.c b/sysdeps/unix/sysv/linux/getcwd.c
+index 6a5e6262d997fc53..ab665ac9c6f6ac4d 100644
+--- a/sysdeps/unix/sysv/linux/getcwd.c
++++ b/sysdeps/unix/sysv/linux/getcwd.c
+@@ -26,7 +26,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -78,7 +77,7 @@ __getcwd (char *buf, size_t size)
+ 
+   int retval;
+ 
+-  retval = INLINE_SYSCALL (getcwd, 2, CHECK_STRING (path), alloc_size);
++  retval = INLINE_SYSCALL (getcwd, 2, path, alloc_size);
+   if (retval >= 0 && path[0] == '/')
+     {
+ #ifndef NO_ALLOCATION
+diff --git a/sysdeps/unix/sysv/linux/i386/chown.c b/sysdeps/unix/sysv/linux/i386/chown.c
+index 5ea3cfd8692f3bf5..0ddf0651ae2e03f3 100644
+--- a/sysdeps/unix/sysv/linux/i386/chown.c
++++ b/sysdeps/unix/sysv/linux/i386/chown.c
+@@ -21,7 +21,6 @@
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+ #include <shlib-compat.h>
+-#include <bp-checks.h>
+ 
+ #include <linux/posix_types.h>
+ 
+@@ -45,7 +44,7 @@ extern int __real_chown (const char *__file, uid_t __owner, gid_t __group);
+ int
+ __real_chown (const char *file, uid_t owner, gid_t group)
+ {
+-  return INLINE_SYSCALL (chown32, 3, CHECK_STRING (file), owner, group);
++  return INLINE_SYSCALL (chown32, 3, file, owner, group);
+ }
+ 
+ 
+diff --git a/sysdeps/unix/sysv/linux/i386/fchownat.c b/sysdeps/unix/sysv/linux/i386/fchownat.c
+index 18c8f0b317213b0f..116a24a07458e87c 100644
+--- a/sysdeps/unix/sysv/linux/i386/fchownat.c
++++ b/sysdeps/unix/sysv/linux/i386/fchownat.c
+@@ -24,7 +24,6 @@
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+ #include <shlib-compat.h>
+-#include <bp-checks.h>
+ 
+ #include <linux/posix_types.h>
+ #include <kernel-features.h>
+@@ -86,11 +85,9 @@ fchownat (int fd, const char *file, uid_t owner, gid_t group, int flag)
+   INTERNAL_SYSCALL_DECL (err);
+ 
+   if (flag & AT_SYMLINK_NOFOLLOW)
+-    result = INTERNAL_SYSCALL (lchown32, err, 3, CHECK_STRING (file), owner,
+-			       group);
++    result = INTERNAL_SYSCALL (lchown32, err, 3, file, owner, group);
+   else
+-    result = INTERNAL_SYSCALL (chown32, err, 3, CHECK_STRING (file), owner,
+-			       group);
++    result = INTERNAL_SYSCALL (chown32, err, 3, file, owner, group);
+ 
+   if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 0))
+     {
+diff --git a/sysdeps/unix/sysv/linux/i386/fxstatat.c b/sysdeps/unix/sysv/linux/i386/fxstatat.c
+index d1e81e081b7e91bf..010f637155d35d76 100644
+--- a/sysdeps/unix/sysv/linux/i386/fxstatat.c
++++ b/sysdeps/unix/sysv/linux/i386/fxstatat.c
+@@ -102,20 +102,18 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
+   if (vers == _STAT_VER_KERNEL)
+     {
+       if (flag & AT_SYMLINK_NOFOLLOW)
+-	result = INTERNAL_SYSCALL (lstat, err, 2, CHECK_STRING (file),
++	result = INTERNAL_SYSCALL (lstat, err, 2, file,
+ 				   CHECK_1 ((struct kernel_stat *) st));
+       else
+-	result = INTERNAL_SYSCALL (stat, err, 2, CHECK_STRING (file),
++	result = INTERNAL_SYSCALL (stat, err, 2, file,
+ 				   CHECK_1 ((struct kernel_stat *) st));
+       goto out;
+     }
+ 
+   if (flag & AT_SYMLINK_NOFOLLOW)
+-    result = INTERNAL_SYSCALL (lstat64, err, 2, CHECK_STRING (file),
+-			       __ptrvalue (&st64));
++    result = INTERNAL_SYSCALL (lstat64, err, 2, file, __ptrvalue (&st64));
+   else
+-    result = INTERNAL_SYSCALL (stat64, err, 2, CHECK_STRING (file),
+-			       __ptrvalue (&st64));
++    result = INTERNAL_SYSCALL (stat64, err, 2, file, __ptrvalue (&st64));
+   if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+     return __xstat32_conv (vers, &st64, st);
+ 
+diff --git a/sysdeps/unix/sysv/linux/i386/lchown.c b/sysdeps/unix/sysv/linux/i386/lchown.c
+index 6190d02a6f068c5b..d90a0b5e350221ab 100644
+--- a/sysdeps/unix/sysv/linux/i386/lchown.c
++++ b/sysdeps/unix/sysv/linux/i386/lchown.c
+@@ -20,7 +20,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <linux/posix_types.h>
+ 
+@@ -29,7 +28,7 @@
+ int
+ __lchown (const char *file, uid_t owner, gid_t group)
+ {
+-  return INLINE_SYSCALL (lchown32, 3, CHECK_STRING (file), owner, group);
++  return INLINE_SYSCALL (lchown32, 3, file, owner, group);
+ }
+ 
+ weak_alias (__lchown, lchown)
+diff --git a/sysdeps/unix/sysv/linux/i386/lxstat.c b/sysdeps/unix/sysv/linux/i386/lxstat.c
+index 2b1ecaa0d94d86fc..9be5ff0f0e382c7e 100644
+--- a/sysdeps/unix/sysv/linux/i386/lxstat.c
++++ b/sysdeps/unix/sysv/linux/i386/lxstat.c
+@@ -41,12 +41,12 @@ __lxstat (int vers, const char *name, struct stat *buf)
+   int result;
+ 
+   if (vers == _STAT_VER_KERNEL)
+-    return INLINE_SYSCALL (lstat, 2, CHECK_STRING (name), CHECK_1 ((struct kernel_stat *) buf));
++    return INLINE_SYSCALL (lstat, 2, name, CHECK_1 ((struct kernel_stat *) buf));
+ 
+   {
+     struct stat64 buf64;
+ 
+-    result = INLINE_SYSCALL (lstat64, 2, CHECK_STRING (name), __ptrvalue (&buf64));
++    result = INLINE_SYSCALL (lstat64, 2, name, __ptrvalue (&buf64));
+     if (result == 0)
+       result = __xstat32_conv (vers, &buf64, buf);
+     return result;
+diff --git a/sysdeps/unix/sysv/linux/i386/xstat.c b/sysdeps/unix/sysv/linux/i386/xstat.c
+index 0fe7a9dcdf028541..e44599c85a836419 100644
+--- a/sysdeps/unix/sysv/linux/i386/xstat.c
++++ b/sysdeps/unix/sysv/linux/i386/xstat.c
+@@ -41,12 +41,12 @@ __xstat (int vers, const char *name, struct stat *buf)
+   int result;
+ 
+   if (vers == _STAT_VER_KERNEL)
+-    return INLINE_SYSCALL (stat, 2, CHECK_STRING (name), CHECK_1 ((struct kernel_stat *) buf));
++    return INLINE_SYSCALL (stat, 2, name, CHECK_1 ((struct kernel_stat *) buf));
+ 
+   {
+     struct stat64 buf64;
+ 
+-    result = INLINE_SYSCALL (stat64, 2, CHECK_STRING (name), __ptrvalue (&buf64));
++    result = INLINE_SYSCALL (stat64, 2, name, __ptrvalue (&buf64));
+     if (result == 0)
+       result = __xstat32_conv (vers, &buf64, buf);
+     return result;
+diff --git a/sysdeps/unix/sysv/linux/lxstat.c b/sysdeps/unix/sysv/linux/lxstat.c
+index c7359647b67ee461..62b4650d8f771854 100644
+--- a/sysdeps/unix/sysv/linux/lxstat.c
++++ b/sysdeps/unix/sysv/linux/lxstat.c
+@@ -36,7 +36,7 @@ int
+ __lxstat (int vers, const char *name, struct stat *buf)
+ {
+   if (vers == _STAT_VER_KERNEL)
+-    return INLINE_SYSCALL (lstat, 2, CHECK_STRING (name),
++    return INLINE_SYSCALL (lstat, 2, name,
+ 			   CHECK_1 ((struct kernel_stat *) buf));
+ 
+ #ifdef STAT_IS_KERNEL_STAT
+@@ -46,7 +46,7 @@ __lxstat (int vers, const char *name, struct stat *buf)
+   struct kernel_stat kbuf;
+   int result;
+ 
+-  result = INLINE_SYSCALL (lstat, 2, CHECK_STRING (name), __ptrvalue (&kbuf));
++  result = INLINE_SYSCALL (lstat, 2, name, __ptrvalue (&kbuf));
+   if (result == 0)
+     result = __xstat_conv (vers, &kbuf, buf);
+ 
+diff --git a/sysdeps/unix/sysv/linux/lxstat64.c b/sysdeps/unix/sysv/linux/lxstat64.c
+index 765b195c6ceb6554..d5d9f93f782d0221 100644
+--- a/sysdeps/unix/sysv/linux/lxstat64.c
++++ b/sysdeps/unix/sysv/linux/lxstat64.c
+@@ -32,7 +32,7 @@ int
+ ___lxstat64 (int vers, const char *name, struct stat64 *buf)
+ {
+   int result;
+-  result = INLINE_SYSCALL (lstat64, 2, CHECK_STRING (name), CHECK_1 (buf));
++  result = INLINE_SYSCALL (lstat64, 2, name, CHECK_1 (buf));
+ #if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
+   if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
+     buf->st_ino = buf->__st_ino;
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c
+index c9f66164ce2397c9..6f416599e9ebdd1d 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c
+@@ -21,7 +21,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Truncate the file referenced by FD to LENGTH bytes.  */
+ int
+@@ -30,7 +29,7 @@ truncate64 (path, length)
+      off64_t length;
+ {
+   /* On PPC32 64bit values are aligned in odd/even register pairs.  */
+-  int result = INLINE_SYSCALL (truncate64, 4, CHECK_STRING (path), 0,
++  int result = INLINE_SYSCALL (truncate64, 4, path, 0,
+ 			       (long) (length >> 32),
+ 			       (long) length);
+   return result;
+diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/chown.c b/sysdeps/unix/sysv/linux/s390/s390-32/chown.c
+index cc0503cbca14e822..f6a533d2b3fbe74e 100644
+--- a/sysdeps/unix/sysv/linux/s390/s390-32/chown.c
++++ b/sysdeps/unix/sysv/linux/s390/s390-32/chown.c
+@@ -21,7 +21,6 @@
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+ #include <shlib-compat.h>
+-#include <bp-checks.h>
+ 
+ #include <linux/posix_types.h>
+ 
+@@ -42,7 +41,7 @@
+ int
+ __real_chown (const char *file, uid_t owner, gid_t group)
+ {
+-  return INLINE_SYSCALL (chown32, 3, CHECK_STRING (file), owner, group);
++  return INLINE_SYSCALL (chown32, 3, file, owner, group);
+ }
+ 
+ 
+diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/lchown.c b/sysdeps/unix/sysv/linux/s390/s390-32/lchown.c
+index 6190d02a6f068c5b..d90a0b5e350221ab 100644
+--- a/sysdeps/unix/sysv/linux/s390/s390-32/lchown.c
++++ b/sysdeps/unix/sysv/linux/s390/s390-32/lchown.c
+@@ -20,7 +20,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <linux/posix_types.h>
+ 
+@@ -29,7 +28,7 @@
+ int
+ __lchown (const char *file, uid_t owner, gid_t group)
+ {
+-  return INLINE_SYSCALL (lchown32, 3, CHECK_STRING (file), owner, group);
++  return INLINE_SYSCALL (lchown32, 3, file, owner, group);
+ }
+ 
+ weak_alias (__lchown, lchown)
+diff --git a/sysdeps/unix/sysv/linux/sh/chown.c b/sysdeps/unix/sysv/linux/sh/chown.c
+index 5ae94b6b25b84e85..9ff0453d0ceb52ee 100644
+--- a/sysdeps/unix/sysv/linux/sh/chown.c
++++ b/sysdeps/unix/sysv/linux/sh/chown.c
+@@ -20,7 +20,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <linux/posix_types.h>
+ 
+@@ -29,7 +28,7 @@
+ int
+ __chown (const char *file, uid_t owner, gid_t group)
+ {
+-  return INLINE_SYSCALL (chown32, 3, CHECK_STRING (file), owner, group);
++  return INLINE_SYSCALL (chown32, 3, file, owner, group);
+ }
+ libc_hidden_def (__chown)
+ weak_alias (__chown, chown)
+diff --git a/sysdeps/unix/sysv/linux/truncate64.c b/sysdeps/unix/sysv/linux/truncate64.c
+index b31b74d1dee485b4..98f8ec2691bad3a5 100644
+--- a/sysdeps/unix/sysv/linux/truncate64.c
++++ b/sysdeps/unix/sysv/linux/truncate64.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Truncate the file referenced by FD to LENGTH bytes.  */
+ int
+@@ -30,7 +29,7 @@ truncate64 (const char *path, off64_t length)
+ {
+   unsigned int low = length & 0xffffffff;
+   unsigned int high = length >> 32;
+-  int result = INLINE_SYSCALL (truncate64, 3, CHECK_STRING (path),
++  int result = INLINE_SYSCALL (truncate64, 3, path,
+ 			       __LONG_LONG_PAIR (high, low));
+   return result;
+ }
+diff --git a/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c b/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c
+index cec71518524c2bc2..f44778e787e5ad80 100644
+--- a/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c
++++ b/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c
+@@ -34,7 +34,7 @@ int
+ __lxstat (int vers, const char *name, struct stat *buf)
+ {
+   if (vers == _STAT_VER_KERNEL || vers == _STAT_VER_LINUX)
+-    return INLINE_SYSCALL (lstat, 2, CHECK_STRING (name), CHECK_1 (buf));
++    return INLINE_SYSCALL (lstat, 2, name, CHECK_1 (buf));
+ 
+   __set_errno (EINVAL);
+   return -1;
+diff --git a/sysdeps/unix/sysv/linux/xmknod.c b/sysdeps/unix/sysv/linux/xmknod.c
+index 9bd8b6b0d46bee4b..5b782b7af070f2ce 100644
+--- a/sysdeps/unix/sysv/linux/xmknod.c
++++ b/sysdeps/unix/sysv/linux/xmknod.c
+@@ -24,7 +24,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Create a device file named PATH, with permission and special bits MODE
+    and device number DEV (which can be constructed from major and minor
+@@ -48,8 +47,7 @@ __xmknod (int vers, const char *path, mode_t mode, dev_t *dev)
+       return -1;
+     }
+ 
+-  return INLINE_SYSCALL (mknod, 3, CHECK_STRING (path), mode,
+-			 (unsigned int) k_dev);
++  return INLINE_SYSCALL (mknod, 3, path, mode, (unsigned int) k_dev);
+ }
+ 
+ weak_alias (__xmknod, _xmknod)
+diff --git a/sysdeps/unix/sysv/linux/xmknodat.c b/sysdeps/unix/sysv/linux/xmknodat.c
+index bf91d25329a0193a..a0fa0a7984d0aa51 100644
+--- a/sysdeps/unix/sysv/linux/xmknodat.c
++++ b/sysdeps/unix/sysv/linux/xmknodat.c
+@@ -26,7 +26,6 @@
+ #include <sysdep.h>
+ #include <kernel-features.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ 
+ /* Create a device file named PATH relative to FD, with permission and
+@@ -92,8 +91,7 @@ __xmknodat (int vers, int fd, const char *file, mode_t mode, dev_t *dev)
+       file = buf;
+     }
+ 
+-  return INLINE_SYSCALL (mknod, 3, CHECK_STRING (file), mode,
+-			 (unsigned int) k_dev);
++  return INLINE_SYSCALL (mknod, 3, file, mode, (unsigned int) k_dev);
+ #endif
+ }
+ 
+diff --git a/sysdeps/unix/sysv/linux/xstat.c b/sysdeps/unix/sysv/linux/xstat.c
+index d62feaf9fe5ee1df..179ea9e30123fb81 100644
+--- a/sysdeps/unix/sysv/linux/xstat.c
++++ b/sysdeps/unix/sysv/linux/xstat.c
+@@ -36,7 +36,7 @@ int
+ __xstat (int vers, const char *name, struct stat *buf)
+ {
+   if (vers == _STAT_VER_KERNEL)
+-    return INLINE_SYSCALL (stat, 2, CHECK_STRING (name),
++    return INLINE_SYSCALL (stat, 2, name,
+ 			   CHECK_1 ((struct kernel_stat *) buf));
+ 
+ #ifdef STAT_IS_KERNEL_STAT
+@@ -46,8 +46,7 @@ __xstat (int vers, const char *name, struct stat *buf)
+   struct kernel_stat kbuf;
+   int result;
+ 
+-  result = INLINE_SYSCALL (stat, 2, CHECK_STRING (name),
+-			   __ptrvalue (&kbuf));
++  result = INLINE_SYSCALL (stat, 2, name, __ptrvalue (&kbuf));
+   if (result == 0)
+     result = __xstat_conv (vers, &kbuf, buf);
+ 
+diff --git a/sysdeps/unix/sysv/linux/xstat64.c b/sysdeps/unix/sysv/linux/xstat64.c
+index dd0f996760502423..89976a68e9d86699 100644
+--- a/sysdeps/unix/sysv/linux/xstat64.c
++++ b/sysdeps/unix/sysv/linux/xstat64.c
+@@ -33,7 +33,7 @@ int
+ ___xstat64 (int vers, const char *name, struct stat64 *buf)
+ {
+   int result;
+-  result = INLINE_SYSCALL (stat64, 2, CHECK_STRING (name), CHECK_1 (buf));
++  result = INLINE_SYSCALL (stat64, 2, name, CHECK_1 (buf));
+ #if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
+   if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
+     buf->st_ino = buf->__st_ino;
diff --git a/SOURCES/glibc-rh1505492-bounded-7.patch b/SOURCES/glibc-rh1505492-bounded-7.patch
new file mode 100644
index 0000000..117c302
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-bounded-7.patch
@@ -0,0 +1,68 @@
+commit b2c9eff43c49d528c7ad3d0d91d03ccf0ae5ae0f
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Fri Feb 8 01:10:40 2013 +0000
+
+    Remove CHECK_BOUNDS_LOW and CHECK_BOUNDS_HIGH for C code.
+
+diff --git a/string/strcpy.c b/string/strcpy.c
+index acc580ba3edb3073..812de20a3732cce5 100644
+--- a/string/strcpy.c
++++ b/string/strcpy.c
+@@ -18,7 +18,6 @@
+ #include <stddef.h>
+ #include <string.h>
+ #include <memcopy.h>
+-#include <bp-checks.h>
+ 
+ #undef strcpy
+ 
+@@ -29,8 +28,8 @@ strcpy (dest, src)
+      const char *src;
+ {
+   char c;
+-  char *__unbounded s = (char *__unbounded) CHECK_BOUNDS_LOW (src);
+-  const ptrdiff_t off = CHECK_BOUNDS_LOW (dest) - s - 1;
++  char *__unbounded s = (char *__unbounded) src;
++  const ptrdiff_t off = dest - s - 1;
+   size_t n;
+ 
+   do
+@@ -41,8 +40,6 @@ strcpy (dest, src)
+   while (c != '\0');
+ 
+   n = s - src;
+-  (void) CHECK_BOUNDS_HIGH (src + n);
+-  (void) CHECK_BOUNDS_HIGH (dest + n);
+ 
+   return dest;
+ }
+diff --git a/sysdeps/generic/bp-checks.h b/sysdeps/generic/bp-checks.h
+index bf10617a3f6b8474..980f3b68a84df8cf 100644
+--- a/sysdeps/generic/bp-checks.h
++++ b/sysdeps/generic/bp-checks.h
+@@ -24,16 +24,6 @@
+ 
+ # define BOUNDS_VIOLATED (__builtin_trap (), 0)
+ 
+-/* Verify that pointer's value >= low.  Return pointer value.  */
+-# define CHECK_BOUNDS_LOW(ARG)					\
+-  (((__ptrvalue (ARG) < __ptrlow (ARG)) && BOUNDS_VIOLATED),	\
+-   __ptrvalue (ARG))
+-
+-/* Verify that pointer's value < high.  Return pointer value.  */
+-# define CHECK_BOUNDS_HIGH(ARG)				\
+-  (((__ptrvalue (ARG) > __ptrhigh (ARG)) && BOUNDS_VIOLATED),	\
+-   __ptrvalue (ARG))
+-
+ # define _CHECK_N(ARG, N, COND)				\
+   (((COND)						\
+     && (__ptrvalue (ARG) < __ptrlow (ARG)		\
+@@ -56,8 +46,6 @@
+ /* Do nothing if not compiling with -fbounded-pointers.  */
+ 
+ # define BOUNDS_VIOLATED
+-# define CHECK_BOUNDS_LOW(ARG) (ARG)
+-# define CHECK_BOUNDS_HIGH(ARG) (ARG)
+ # define CHECK_1(ARG) (ARG)
+ # define CHECK_1_NULL_OK(ARG) (ARG)
+ # define CHECK_N(ARG, N) (ARG)
diff --git a/SOURCES/glibc-rh1505492-bounded-8.patch b/SOURCES/glibc-rh1505492-bounded-8.patch
new file mode 100644
index 0000000..8ff71f5
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-bounded-8.patch
@@ -0,0 +1,956 @@
+commit f3aae3f3eb4e4345413dc238e941cdb52f747d16
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Fri Feb 8 01:12:11 2013 +0000
+
+    Remove CHECK_1 and CHECK_1_NULL_OK.
+
+Conflicts:
+	sysdeps/unix/sysv/linux/powerpc/gettimeofday.c
+
+Change was already part of glibc-rh977110-2.patch.
+
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c b/ports/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c
+index 11194f6da7e56429..90d115577bad42ec 100644
+--- a/ports/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c
++++ b/ports/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c
+@@ -22,7 +22,6 @@
+ #undef __gettimeofday
+ 
+ #include <bits/libc-vdso.h>
+-#include <bp-checks.h>
+ 
+ /* Get the current time of day and timezone information,
+    putting it into *tv and *tz.  If tz is null, *tz is not filled.
+@@ -32,7 +31,7 @@ __gettimeofday (tv, tz)
+      struct timeval *tv;
+      struct timezone *tz;
+ {
+-  return INLINE_VSYSCALL (gettimeofday, 2, CHECK_1 (tv), CHECK_1 (tz));
++  return INLINE_VSYSCALL (gettimeofday, 2, tv, tz);
+ }
+ libc_hidden_def (__gettimeofday)
+ weak_alias (__gettimeofday, gettimeofday)
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/msgctl.c b/ports/sysdeps/unix/sysv/linux/alpha/msgctl.c
+index 82c734b9a06081e7..690efb470c784de8 100644
+--- a/ports/sysdeps/unix/sysv/linux/alpha/msgctl.c
++++ b/ports/sysdeps/unix/sysv/linux/alpha/msgctl.c
+@@ -21,13 +21,12 @@
+ #include <ipc_priv.h>
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ 
+ int
+ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
+ {
+-  return INLINE_SYSCALL (msgctl, 3, msqid, cmd | __IPC_64, CHECK_1 (buf));
++  return INLINE_SYSCALL (msgctl, 3, msqid, cmd | __IPC_64, buf);
+ }
+ 
+ #include <shlib-compat.h>
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/shmctl.c b/ports/sysdeps/unix/sysv/linux/alpha/shmctl.c
+index fb825a80deb2a9be..009ef651cd2ffdb5 100644
+--- a/ports/sysdeps/unix/sysv/linux/alpha/shmctl.c
++++ b/ports/sysdeps/unix/sysv/linux/alpha/shmctl.c
+@@ -22,13 +22,12 @@
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+ #include <bits/wordsize.h>
+-#include <bp-checks.h>
+ 
+ 
+ int
+ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
+ {
+-  return INLINE_SYSCALL (shmctl, 3, shmid, cmd | __IPC_64, CHECK_1 (buf));
++  return INLINE_SYSCALL (shmctl, 3, shmid, cmd | __IPC_64, buf);
+ }
+ 
+ #include <shlib-compat.h>
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/sigaction.c b/ports/sysdeps/unix/sysv/linux/ia64/sigaction.c
+index bb0d53d54cdcf133..403b6d8fd0c9b92f 100644
+--- a/ports/sysdeps/unix/sysv/linux/ia64/sigaction.c
++++ b/ports/sysdeps/unix/sysv/linux/ia64/sigaction.c
+@@ -26,7 +26,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* The variable is shared between all wrappers around signal handling
+    functions which have RT equivalents.  This is the definition.  */
+@@ -42,8 +41,7 @@ __libc_sigaction (sig, act, oact)
+ {
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+-  return INLINE_SYSCALL (rt_sigaction, 4, sig,
+-			 CHECK_1_NULL_OK (act), CHECK_1_NULL_OK (oact), _NSIG / 8);
++  return INLINE_SYSCALL (rt_sigaction, 4, sig, act, oact, _NSIG / 8);
+ }
+ libc_hidden_def (__libc_sigaction)
+ 
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c b/ports/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c
+index 91c6f1ab28774288..327e951808509c31 100644
+--- a/ports/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c
++++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c
+@@ -20,14 +20,12 @@
+ #include <ipc_priv.h>
+ #include <sysdep.h>
+ 
+-#include <bp-checks.h>
+-
+ int __msgctl (int msqid, int cmd, struct msqid_ds *buf);
+ 
+ int
+ __msgctl (int msqid, int cmd, struct msqid_ds *buf)
+ {
+-  return INLINE_SYSCALL (msgctl, 3, msqid, cmd | __IPC_64, CHECK_1 (buf));
++  return INLINE_SYSCALL (msgctl, 3, msqid, cmd | __IPC_64, buf);
+ }
+ 
+ #include <shlib-compat.h>
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c b/ports/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c
+index da07427c3aa6049d..911de66ccd45610f 100644
+--- a/ports/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c
++++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c
+@@ -20,14 +20,12 @@
+ #include <ipc_priv.h>
+ #include <sysdep.h>
+ 
+-#include <bp-checks.h>
+-
+ int __shmctl (int shmid, int cmd, struct shmid_ds *buf);
+ 
+ int
+ __shmctl (int shmid, int cmd, struct shmid_ds *buf)
+ {
+-  return INLINE_SYSCALL (shmctl, 3, shmid, cmd | __IPC_64, CHECK_1 (buf));
++  return INLINE_SYSCALL (shmctl, 3, shmid, cmd | __IPC_64, buf);
+ }
+ 
+ #include <shlib-compat.h>
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/ustat.c b/ports/sysdeps/unix/sysv/linux/mips/ustat.c
+index aa84b536245bbef3..d070403faa9143c9 100644
+--- a/ports/sysdeps/unix/sysv/linux/mips/ustat.c
++++ b/ports/sysdeps/unix/sysv/linux/mips/ustat.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ int
+ ustat (dev_t dev, struct ustat *ubuf)
+@@ -32,5 +31,5 @@ ustat (dev_t dev, struct ustat *ubuf)
+   /* We must convert the value to dev_t type used by the kernel.  */
+   k_dev = ((major (dev) & 0xff) << 8) | (minor (dev) & 0xff);
+ 
+-  return INLINE_SYSCALL (ustat, 2, k_dev, CHECK_1 (ubuf));
++  return INLINE_SYSCALL (ustat, 2, k_dev, ubuf);
+ }
+diff --git a/sysdeps/generic/bp-checks.h b/sysdeps/generic/bp-checks.h
+index 980f3b68a84df8cf..90a07fc10fde3a84 100644
+--- a/sysdeps/generic/bp-checks.h
++++ b/sysdeps/generic/bp-checks.h
+@@ -36,18 +36,11 @@
+ /* Same as CHECK_N, but tolerate ARG == NULL.  */
+ # define CHECK_N_NULL_OK(ARG, N) _CHECK_N ((ARG), (N), __ptrvalue (ARG))
+ 
+-/* Check bounds of a pointer seated to a single object.  */
+-# define CHECK_1(ARG) CHECK_N ((ARG), 1)
+-/* Same as CHECK_1, but tolerate ARG == NULL.  */
+-# define CHECK_1_NULL_OK(ARG) CHECK_N_NULL_OK ((ARG), 1)
+-
+ #else /* !__BOUNDED_POINTERS__ */
+ 
+ /* Do nothing if not compiling with -fbounded-pointers.  */
+ 
+ # define BOUNDS_VIOLATED
+-# define CHECK_1(ARG) (ARG)
+-# define CHECK_1_NULL_OK(ARG) (ARG)
+ # define CHECK_N(ARG, N) (ARG)
+ # define CHECK_N_NULL_OK(ARG, N) (ARG)
+ 
+diff --git a/sysdeps/unix/sysv/linux/fxstat.c b/sysdeps/unix/sysv/linux/fxstat.c
+index e6ec9dee7fc044ea..369ceb818267086c 100644
+--- a/sysdeps/unix/sysv/linux/fxstat.c
++++ b/sysdeps/unix/sysv/linux/fxstat.c
+@@ -28,7 +28,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <xstatconv.h>
+ 
+@@ -37,7 +36,7 @@ int
+ __fxstat (int vers, int fd, struct stat *buf)
+ {
+   if (vers == _STAT_VER_KERNEL)
+-    return INLINE_SYSCALL (fstat, 2, fd, CHECK_1 ((struct kernel_stat *) buf));
++    return INLINE_SYSCALL (fstat, 2, fd, (struct kernel_stat *) buf);
+ 
+ #ifdef STAT_IS_KERNEL_STAT
+   errno = EINVAL;
+diff --git a/sysdeps/unix/sysv/linux/fxstat64.c b/sysdeps/unix/sysv/linux/fxstat64.c
+index b2ad48bdb76e0b39..ca948c64c247dc22 100644
+--- a/sysdeps/unix/sysv/linux/fxstat64.c
++++ b/sysdeps/unix/sysv/linux/fxstat64.c
+@@ -23,7 +23,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -33,7 +32,7 @@ int
+ ___fxstat64 (int vers, int fd, struct stat64 *buf)
+ {
+   int result;
+-  result = INLINE_SYSCALL (fstat64, 2, fd, CHECK_1 (buf));
++  result = INLINE_SYSCALL (fstat64, 2, fd, buf);
+ #if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
+   if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
+     buf->st_ino = buf->__st_ino;
+diff --git a/sysdeps/unix/sysv/linux/fxstatat.c b/sysdeps/unix/sysv/linux/fxstatat.c
+index de98e667c76f9b3e..127f979adf050b45 100644
+--- a/sysdeps/unix/sysv/linux/fxstatat.c
++++ b/sysdeps/unix/sysv/linux/fxstatat.c
+@@ -29,7 +29,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ #include <kernel-features.h>
+ 
+ #include <xstatconv.h>
+@@ -110,10 +109,10 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
+     {
+       if (flag & AT_SYMLINK_NOFOLLOW)
+ 	result = INTERNAL_SYSCALL (lstat, err, 2, file,
+-				   CHECK_1 ((struct kernel_stat *) st));
++				   (struct kernel_stat *) st);
+       else
+ 	result = INTERNAL_SYSCALL (stat, err, 2, file,
+-				   CHECK_1 ((struct kernel_stat *) st));
++				   (struct kernel_stat *) st);
+ 
+       if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+ 	return result;
+diff --git a/sysdeps/unix/sysv/linux/fxstatat64.c b/sysdeps/unix/sysv/linux/fxstatat64.c
+index 10488b6c1daa210e..a14fd78c1cbaca19 100644
+--- a/sysdeps/unix/sysv/linux/fxstatat64.c
++++ b/sysdeps/unix/sysv/linux/fxstatat64.c
+@@ -25,7 +25,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -99,9 +98,9 @@ __fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)
+     }
+ 
+   if (flag & AT_SYMLINK_NOFOLLOW)
+-    result = INTERNAL_SYSCALL (lstat64, err, 2, file, CHECK_1 (st));
++    result = INTERNAL_SYSCALL (lstat64, err, 2, file, st);
+   else
+-    result = INTERNAL_SYSCALL (stat64, err, 2, file, CHECK_1 (st));
++    result = INTERNAL_SYSCALL (stat64, err, 2, file, st);
+   if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+     {
+ # if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
+diff --git a/sysdeps/unix/sysv/linux/i386/fxstat.c b/sysdeps/unix/sysv/linux/i386/fxstat.c
+index a1a950ee7aff64f9..323039927e1687a3 100644
+--- a/sysdeps/unix/sysv/linux/i386/fxstat.c
++++ b/sysdeps/unix/sysv/linux/i386/fxstat.c
+@@ -27,7 +27,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -40,7 +39,7 @@ __fxstat (int vers, int fd, struct stat *buf)
+   int result;
+ 
+   if (vers == _STAT_VER_KERNEL)
+-    return INLINE_SYSCALL (fstat, 2, fd, CHECK_1 ((struct kernel_stat *) buf));
++    return INLINE_SYSCALL (fstat, 2, fd, (struct kernel_stat *) buf);
+ 
+   {
+     struct stat64 buf64;
+diff --git a/sysdeps/unix/sysv/linux/i386/fxstatat.c b/sysdeps/unix/sysv/linux/i386/fxstatat.c
+index 010f637155d35d76..ad3a386864f8b04b 100644
+--- a/sysdeps/unix/sysv/linux/i386/fxstatat.c
++++ b/sysdeps/unix/sysv/linux/i386/fxstatat.c
+@@ -29,7 +29,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -103,10 +102,10 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
+     {
+       if (flag & AT_SYMLINK_NOFOLLOW)
+ 	result = INTERNAL_SYSCALL (lstat, err, 2, file,
+-				   CHECK_1 ((struct kernel_stat *) st));
++				   (struct kernel_stat *) st);
+       else
+ 	result = INTERNAL_SYSCALL (stat, err, 2, file,
+-				   CHECK_1 ((struct kernel_stat *) st));
++				   (struct kernel_stat *) st);
+       goto out;
+     }
+ 
+diff --git a/sysdeps/unix/sysv/linux/i386/getresgid.c b/sysdeps/unix/sysv/linux/i386/getresgid.c
+index d9ce513b1d80387d..46a3cccacb520602 100644
+--- a/sysdeps/unix/sysv/linux/i386/getresgid.c
++++ b/sysdeps/unix/sysv/linux/i386/getresgid.c
+@@ -23,15 +23,13 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Consider moving to syscalls.list.  */
+ 
+ int
+ __getresgid (gid_t *rgid, gid_t *egid, gid_t *sgid)
+ {
+-  return INLINE_SYSCALL (getresgid32, 3, CHECK_1 (rgid),
+-			 CHECK_1 (egid), CHECK_1 (sgid));
++  return INLINE_SYSCALL (getresgid32, 3, rgid, egid, sgid);
+ }
+ libc_hidden_def (__getresgid)
+ weak_alias (__getresgid, getresgid)
+diff --git a/sysdeps/unix/sysv/linux/i386/getresuid.c b/sysdeps/unix/sysv/linux/i386/getresuid.c
+index f9c3180fb1eb846e..42e68384da26b5db 100644
+--- a/sysdeps/unix/sysv/linux/i386/getresuid.c
++++ b/sysdeps/unix/sysv/linux/i386/getresuid.c
+@@ -23,15 +23,13 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Consider moving to syscalls.list.  */
+ 
+ int
+ __getresuid (uid_t *ruid, uid_t *euid, uid_t *suid)
+ {
+-  return INLINE_SYSCALL (getresuid32, 3, CHECK_1 (ruid),
+-			 CHECK_1 (euid), CHECK_1 (suid));
++  return INLINE_SYSCALL (getresuid32, 3, ruid, euid, suid);
+ }
+ libc_hidden_def (__getresuid)
+ weak_alias (__getresuid, getresuid)
+diff --git a/sysdeps/unix/sysv/linux/i386/lxstat.c b/sysdeps/unix/sysv/linux/i386/lxstat.c
+index 9be5ff0f0e382c7e..97b237404f8c8822 100644
+--- a/sysdeps/unix/sysv/linux/i386/lxstat.c
++++ b/sysdeps/unix/sysv/linux/i386/lxstat.c
+@@ -27,7 +27,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -41,7 +40,7 @@ __lxstat (int vers, const char *name, struct stat *buf)
+   int result;
+ 
+   if (vers == _STAT_VER_KERNEL)
+-    return INLINE_SYSCALL (lstat, 2, name, CHECK_1 ((struct kernel_stat *) buf));
++    return INLINE_SYSCALL (lstat, 2, name, (struct kernel_stat *) buf);
+ 
+   {
+     struct stat64 buf64;
+diff --git a/sysdeps/unix/sysv/linux/i386/msgctl.c b/sysdeps/unix/sysv/linux/i386/msgctl.c
+index 2125ae192c12af99..7d009801b16fbdba 100644
+--- a/sysdeps/unix/sysv/linux/i386/msgctl.c
++++ b/sysdeps/unix/sysv/linux/i386/msgctl.c
+@@ -23,7 +23,6 @@
+ #include <sysdep.h>
+ #include <string.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <shlib-compat.h>
+ 
+@@ -56,8 +55,7 @@ int
+ attribute_compat_text_section
+ __old_msgctl (int msqid, int cmd, struct __old_msqid_ds *buf)
+ {
+-  return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl,
+-			 msqid, cmd, 0, CHECK_1 (buf));
++  return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, buf);
+ }
+ compat_symbol (libc, __old_msgctl, msgctl, GLIBC_2_0);
+ #endif
+@@ -66,7 +64,7 @@ int
+ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
+ {
+   return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl,
+-			 msqid, cmd | __IPC_64, 0, CHECK_1 (buf));
++			 msqid, cmd | __IPC_64, 0, buf);
+ }
+ 
+ versioned_symbol (libc, __new_msgctl, msgctl, GLIBC_2_2);
+diff --git a/sysdeps/unix/sysv/linux/i386/setrlimit.c b/sysdeps/unix/sysv/linux/i386/setrlimit.c
+index 7683b858f7c9bb05..7d0840ded5fe3c70 100644
+--- a/sysdeps/unix/sysv/linux/i386/setrlimit.c
++++ b/sysdeps/unix/sysv/linux/i386/setrlimit.c
+@@ -22,7 +22,6 @@
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+ #include <shlib-compat.h>
+-#include <bp-checks.h>
+ 
+ extern int __new_setrlimit (enum __rlimit_resource resource,
+ 			    const struct rlimit *__unboundedrlimits);
+@@ -32,7 +31,7 @@ extern int __new_setrlimit (enum __rlimit_resource resource,
+ int
+ __new_setrlimit (enum __rlimit_resource resource, const struct rlimit *rlimits)
+ {
+-  return INLINE_SYSCALL (setrlimit, 2, resource, CHECK_1 (rlimits));
++  return INLINE_SYSCALL (setrlimit, 2, resource, rlimits);
+ }
+ 
+ weak_alias (__new_setrlimit, __setrlimit);
+diff --git a/sysdeps/unix/sysv/linux/i386/shmctl.c b/sysdeps/unix/sysv/linux/i386/shmctl.c
+index dd2167d9a78d524f..a1f4feb3fe1c815c 100644
+--- a/sysdeps/unix/sysv/linux/i386/shmctl.c
++++ b/sysdeps/unix/sysv/linux/i386/shmctl.c
+@@ -24,7 +24,6 @@
+ #include <string.h>
+ #include <sys/syscall.h>
+ #include <bits/wordsize.h>
+-#include <bp-checks.h>
+ 
+ #include <shlib-compat.h>
+ 
+@@ -63,8 +62,7 @@ int
+ attribute_compat_text_section
+ __old_shmctl (int shmid, int cmd, struct __old_shmid_ds *buf)
+ {
+-  return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl,
+-			 shmid, cmd, 0, CHECK_1 (buf));
++  return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, buf);
+ }
+ compat_symbol (libc, __old_shmctl, shmctl, GLIBC_2_0);
+ #endif
+@@ -73,7 +71,7 @@ int
+ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
+ {
+   return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl,
+-			 shmid, cmd | __IPC_64, 0, CHECK_1 (buf));
++			 shmid, cmd | __IPC_64, 0, buf);
+ }
+ 
+ versioned_symbol (libc, __new_shmctl, shmctl, GLIBC_2_2);
+diff --git a/sysdeps/unix/sysv/linux/i386/xstat.c b/sysdeps/unix/sysv/linux/i386/xstat.c
+index e44599c85a836419..f063ac98d849ed7b 100644
+--- a/sysdeps/unix/sysv/linux/i386/xstat.c
++++ b/sysdeps/unix/sysv/linux/i386/xstat.c
+@@ -27,7 +27,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -41,7 +40,7 @@ __xstat (int vers, const char *name, struct stat *buf)
+   int result;
+ 
+   if (vers == _STAT_VER_KERNEL)
+-    return INLINE_SYSCALL (stat, 2, name, CHECK_1 ((struct kernel_stat *) buf));
++    return INLINE_SYSCALL (stat, 2, name, (struct kernel_stat *) buf);
+ 
+   {
+     struct stat64 buf64;
+diff --git a/sysdeps/unix/sysv/linux/lxstat.c b/sysdeps/unix/sysv/linux/lxstat.c
+index 62b4650d8f771854..15f93b09ec1661f1 100644
+--- a/sysdeps/unix/sysv/linux/lxstat.c
++++ b/sysdeps/unix/sysv/linux/lxstat.c
+@@ -27,7 +27,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <xstatconv.h>
+ 
+@@ -36,8 +35,7 @@ int
+ __lxstat (int vers, const char *name, struct stat *buf)
+ {
+   if (vers == _STAT_VER_KERNEL)
+-    return INLINE_SYSCALL (lstat, 2, name,
+-			   CHECK_1 ((struct kernel_stat *) buf));
++    return INLINE_SYSCALL (lstat, 2, name, (struct kernel_stat *) buf);
+ 
+ #ifdef STAT_IS_KERNEL_STAT
+   errno = EINVAL;
+diff --git a/sysdeps/unix/sysv/linux/lxstat64.c b/sysdeps/unix/sysv/linux/lxstat64.c
+index d5d9f93f782d0221..c4420904f936ec93 100644
+--- a/sysdeps/unix/sysv/linux/lxstat64.c
++++ b/sysdeps/unix/sysv/linux/lxstat64.c
+@@ -23,7 +23,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -32,7 +31,7 @@ int
+ ___lxstat64 (int vers, const char *name, struct stat64 *buf)
+ {
+   int result;
+-  result = INLINE_SYSCALL (lstat64, 2, name, CHECK_1 (buf));
++  result = INLINE_SYSCALL (lstat64, 2, name, buf);
+ #if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
+   if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
+     buf->st_ino = buf->__st_ino;
+diff --git a/sysdeps/unix/sysv/linux/msgctl.c b/sysdeps/unix/sysv/linux/msgctl.c
+index 7819f3fbf76af81f..00285a7103d70cea 100644
+--- a/sysdeps/unix/sysv/linux/msgctl.c
++++ b/sysdeps/unix/sysv/linux/msgctl.c
+@@ -25,7 +25,6 @@
+ #include <string.h>
+ #include <sys/syscall.h>
+ #include <shlib-compat.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -58,7 +57,7 @@ int
+ attribute_compat_text_section
+ __old_msgctl (int msqid, int cmd, struct __old_msqid_ds *buf)
+ {
+-  return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, CHECK_1 (buf));
++  return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, buf);
+ }
+ compat_symbol (libc, __old_msgctl, msgctl, GLIBC_2_0);
+ #endif
+@@ -68,7 +67,7 @@ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
+ {
+ #if __ASSUME_IPC64 > 0
+   return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl,
+-			 msqid, cmd | __IPC_64, 0, CHECK_1 (buf));
++			 msqid, cmd | __IPC_64, 0, buf);
+ #else
+   switch (cmd) {
+     case MSG_STAT:
+@@ -77,7 +76,7 @@ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
+       break;
+     default:
+       return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl,
+-			     msqid, cmd, 0, CHECK_1 (buf));
++			     msqid, cmd, 0, buf);
+   }
+ 
+   {
+@@ -87,7 +86,7 @@ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
+     /* Unfortunately there is no way how to find out for sure whether
+        we should use old or new msgctl.  */
+     result = INLINE_SYSCALL (ipc, 5, IPCOP_msgctl,
+-			     msqid, cmd | __IPC_64, 0, CHECK_1 (buf));
++			     msqid, cmd | __IPC_64, 0, buf);
+     if (result != -1 || errno != EINVAL)
+       return result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/ptrace.c b/sysdeps/unix/sysv/linux/ptrace.c
+index c18590d1cf27e88d..a75e5ba0a8ab6b53 100644
+--- a/sysdeps/unix/sysv/linux/ptrace.c
++++ b/sysdeps/unix/sysv/linux/ptrace.c
+@@ -24,7 +24,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ long int
+ ptrace (enum __ptrace_request request, ...)
+@@ -43,77 +42,6 @@ ptrace (enum __ptrace_request request, ...)
+   if (request > 0 && request < 4)
+     data = &ret;
+ 
+-#if __BOUNDED_POINTERS__
+-  switch (request)
+-    {
+-    case PTRACE_PEEKTEXT:
+-    case PTRACE_PEEKDATA:
+-    case PTRACE_PEEKUSER:
+-    case PTRACE_POKETEXT:
+-    case PTRACE_POKEDATA:
+-    case PTRACE_POKEUSER:
+-      (void) CHECK_1 ((int *) addr);
+-      (void) CHECK_1 ((int *) data);
+-      break;
+-
+-    case PTRACE_GETREGS:
+-    case PTRACE_SETREGS:
+-#ifdef __i386__
+-      (void) CHECK_1 ((struct user_regs_struct *) data);
+-#else
+-      /* We don't know the size of data, so the best we can do is ensure
+-	 that `data' is valid for at least one word.  */
+-      (void) CHECK_1 ((int *) data);
+-#endif
+-      break;
+-
+-    case PTRACE_GETFPREGS:
+-    case PTRACE_SETFPREGS:
+-#ifdef __i386__
+-      (void) CHECK_1 ((struct user_fpregs_struct *) data);
+-#else
+-      /* We don't know the size of data, so the best we can do is ensure
+-	 that `data' is valid for at least one word.  */
+-      (void) CHECK_1 ((int *) data);
+-#endif
+-      break;
+-
+-    case PTRACE_GETFPXREGS:
+-    case PTRACE_SETFPXREGS:
+-#ifdef __i386__
+-      (void) CHECK_1 ((struct user_fpxregs_struct *) data);
+-#else
+-      /* We don't know the size of data, so the best we can do is ensure
+-	 that `data' is valid for at least one word.  */
+-      (void) CHECK_1 ((int *) data);
+-#endif
+-      break;
+-
+-    case PTRACE_GETSIGINFO:
+-    case PTRACE_SETSIGINFO:
+-      (void) CHECK_1 ((siginfo_t *) data);
+-      break;
+-
+-    case PTRACE_GETEVENTMSG:
+-      (void) CHECK_1 ((unsigned long *) data);
+-      break;
+-
+-    case PTRACE_SETOPTIONS:
+-      (void) CHECK_1 ((long *) data);
+-      break;
+-
+-    case PTRACE_TRACEME:
+-    case PTRACE_CONT:
+-    case PTRACE_KILL:
+-    case PTRACE_SINGLESTEP:
+-    case PTRACE_ATTACH:
+-    case PTRACE_DETACH:
+-    case PTRACE_SYSCALL:
+-      /* Neither `data' nor `addr' needs any checks.  */
+-      break;
+-    };
+-#endif
+-
+   res = INLINE_SYSCALL (ptrace, 4, request, pid,
+ 			__ptrvalue (addr), __ptrvalue (data));
+   if (res >= 0 && request > 0 && request < 4)
+diff --git a/sysdeps/unix/sysv/linux/s390/gettimeofday.c b/sysdeps/unix/sysv/linux/s390/gettimeofday.c
+index efbf1e8110f71cdb..d897e1a6b68c069a 100644
+--- a/sysdeps/unix/sysv/linux/s390/gettimeofday.c
++++ b/sysdeps/unix/sysv/linux/s390/gettimeofday.c
+@@ -16,7 +16,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <sysdep.h>
+-#include <bp-checks.h>
+ #include <stddef.h>
+ #include <sys/time.h>
+ #include <time.h>
+@@ -33,7 +32,7 @@ __gettimeofday (tv, tz)
+      struct timeval *tv;
+      struct timezone *tz;
+ {
+-  return INLINE_VSYSCALL (gettimeofday, 2, CHECK_1 (tv), CHECK_1 (tz));
++  return INLINE_VSYSCALL (gettimeofday, 2, tv, tz);
+ }
+ libc_hidden_def (__gettimeofday)
+ weak_alias (__gettimeofday, gettimeofday)
+diff --git a/sysdeps/unix/sysv/linux/shmctl.c b/sysdeps/unix/sysv/linux/shmctl.c
+index dbc965e29ca9c701..3fb6b0c0f203db08 100644
+--- a/sysdeps/unix/sysv/linux/shmctl.c
++++ b/sysdeps/unix/sysv/linux/shmctl.c
+@@ -26,7 +26,6 @@
+ #include <sys/syscall.h>
+ #include <bits/wordsize.h>
+ #include <shlib-compat.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -65,8 +64,7 @@ int
+ attribute_compat_text_section
+ __old_shmctl (int shmid, int cmd, struct __old_shmid_ds *buf)
+ {
+-  return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid,
+-			 cmd, 0, CHECK_1_NULL_OK (buf));
++  return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, buf);
+ }
+ compat_symbol (libc, __old_shmctl, shmctl, GLIBC_2_0);
+ #endif
+@@ -76,7 +74,7 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
+ {
+ #if __ASSUME_IPC64 > 0
+   return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd | __IPC_64, 0,
+-			 CHECK_1 (buf));
++			 buf);
+ #else
+   switch (cmd) {
+     case SHM_STAT:
+@@ -87,8 +85,7 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
+ #endif
+       break;
+     default:
+-      return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0,
+-			     CHECK_1 (buf));
++      return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, buf);
+   }
+ 
+   {
+@@ -102,7 +99,7 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
+     /* Unfortunately there is no way how to find out for sure whether
+        we should use old or new shmctl.  */
+     result = INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd | __IPC_64, 0,
+-			     CHECK_1 (buf));
++			     buf);
+     if (result != -1 || errno != EINVAL)
+       return result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/sigtimedwait.c b/sysdeps/unix/sysv/linux/sigtimedwait.c
+index 34834c0cb1f9e362..1cf24d0e47330b8a 100644
+--- a/sysdeps/unix/sysv/linux/sigtimedwait.c
++++ b/sysdeps/unix/sysv/linux/sigtimedwait.c
+@@ -21,7 +21,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #ifdef __NR_rt_sigtimedwait
+ 
+@@ -52,7 +51,7 @@ do_sigtimedwait (const sigset_t *set, siginfo_t *info,
+     /* XXX The size argument hopefully will have to be changed to the
+        real size of the user-level sigset_t.  */
+   int result = INLINE_SYSCALL (rt_sigtimedwait, 4, set,
+-			       CHECK_1 (info), timeout, _NSIG / 8);
++			       info, timeout, _NSIG / 8);
+ 
+   /* The kernel generates a SI_TKILL code in si_code in case tkill is
+      used.  tkill is transparently used in raise().  Since having
+diff --git a/sysdeps/unix/sysv/linux/sigwaitinfo.c b/sysdeps/unix/sysv/linux/sigwaitinfo.c
+index f70386a31bce66bd..0e38dff1be6cc21a 100644
+--- a/sysdeps/unix/sysv/linux/sigwaitinfo.c
++++ b/sysdeps/unix/sysv/linux/sigwaitinfo.c
+@@ -23,7 +23,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #ifdef __NR_rt_sigtimedwait
+ 
+@@ -53,7 +52,7 @@ do_sigwaitinfo (const sigset_t *set, siginfo_t *info)
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+   int result = INLINE_SYSCALL (rt_sigtimedwait, 4, set,
+-			       CHECK_1 (info), NULL, _NSIG / 8);
++			       info, NULL, _NSIG / 8);
+ 
+   /* The kernel generates a SI_TKILL code in si_code in case tkill is
+      used.  tkill is transparently used in raise().  Since having
+diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c b/sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c
+index 98e06e3d0e7d0f46..3655426350652a7d 100644
+--- a/sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c
++++ b/sysdeps/unix/sysv/linux/sparc/sparc64/msgctl.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Allows to control internal state and destruction of message queue
+    objects.  */
+@@ -33,5 +32,5 @@ msgctl (msqid, cmd, buf)
+      int cmd;
+      struct msqid_ds *buf;
+ {
+-  return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, CHECK_1 (buf));
++  return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, msqid, cmd, 0, buf);
+ }
+diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c b/sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c
+index eb3b4f3bab2a22a7..89f755a984044fa7 100644
+--- a/sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c
++++ b/sysdeps/unix/sysv/linux/sparc/sparc64/shmctl.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Provide operations to control over shared memory segments.  */
+ 
+@@ -32,5 +31,5 @@ shmctl (shmid, cmd, buf)
+      int cmd;
+      struct shmid_ds *buf;
+ {
+-  return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, CHECK_1 (buf));
++  return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd, 0, buf);
+ }
+diff --git a/sysdeps/unix/sysv/linux/ustat.c b/sysdeps/unix/sysv/linux/ustat.c
+index 70d6e89ba8f6cadf..007ae35997d9c3d6 100644
+--- a/sysdeps/unix/sysv/linux/ustat.c
++++ b/sysdeps/unix/sysv/linux/ustat.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ int
+ ustat (dev_t dev, struct ustat *ubuf)
+@@ -37,5 +36,5 @@ ustat (dev_t dev, struct ustat *ubuf)
+       return -1;
+     }
+ 
+-  return INLINE_SYSCALL (ustat, 2, (unsigned int) k_dev, CHECK_1 (ubuf));
++  return INLINE_SYSCALL (ustat, 2, (unsigned int) k_dev, ubuf);
+ }
+diff --git a/sysdeps/unix/sysv/linux/wordsize-64/fxstat.c b/sysdeps/unix/sysv/linux/wordsize-64/fxstat.c
+index e6366c9edbe31bcc..401db59272eb91cb 100644
+--- a/sysdeps/unix/sysv/linux/wordsize-64/fxstat.c
++++ b/sysdeps/unix/sysv/linux/wordsize-64/fxstat.c
+@@ -27,14 +27,13 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Get information about the file FD in BUF.  */
+ int
+ __fxstat (int vers, int fd, struct stat *buf)
+ {
+   if (vers == _STAT_VER_KERNEL || vers == _STAT_VER_LINUX)
+-    return INLINE_SYSCALL (fstat, 2, fd, CHECK_1 (buf));
++    return INLINE_SYSCALL (fstat, 2, fd, buf);
+ 
+   __set_errno (EINVAL);
+   return -1;
+diff --git a/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c b/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c
+index 3891e858af998003..f9289f4526e47fc6 100644
+--- a/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c
++++ b/sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c
+@@ -29,7 +29,6 @@
+ #include <sysdep.h>
+ #include <kernel-features.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ 
+ /* Get information about the file NAME relative to FD in ST.  */
+@@ -95,9 +94,9 @@ __fxstatat (int vers, int fd, const char *file, struct stat *st, int flag)
+   INTERNAL_SYSCALL_DECL (err);
+ 
+   if (flag & AT_SYMLINK_NOFOLLOW)
+-    res = INTERNAL_SYSCALL (lstat, err, 2, file, CHECK_1 (st));
++    res = INTERNAL_SYSCALL (lstat, err, 2, file, st);
+   else
+-    res = INTERNAL_SYSCALL (stat, err, 2, file, CHECK_1 (st));
++    res = INTERNAL_SYSCALL (stat, err, 2, file, st);
+ 
+   if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (res, err), 0))
+     {
+diff --git a/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c b/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c
+index f44778e787e5ad80..6830d567b5727875 100644
+--- a/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c
++++ b/sysdeps/unix/sysv/linux/wordsize-64/lxstat.c
+@@ -27,14 +27,13 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Get information about the file FD in BUF.  */
+ int
+ __lxstat (int vers, const char *name, struct stat *buf)
+ {
+   if (vers == _STAT_VER_KERNEL || vers == _STAT_VER_LINUX)
+-    return INLINE_SYSCALL (lstat, 2, name, CHECK_1 (buf));
++    return INLINE_SYSCALL (lstat, 2, name, buf);
+ 
+   __set_errno (EINVAL);
+   return -1;
+diff --git a/sysdeps/unix/sysv/linux/wordsize-64/xstat.c b/sysdeps/unix/sysv/linux/wordsize-64/xstat.c
+index b4ab7b8fe9ebf2a8..3bee7a3fc88cd03a 100644
+--- a/sysdeps/unix/sysv/linux/wordsize-64/xstat.c
++++ b/sysdeps/unix/sysv/linux/wordsize-64/xstat.c
+@@ -27,14 +27,13 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Get information about the file NAME in BUF.  */
+ int
+ __xstat (int vers, const char *name, struct stat *buf)
+ {
+   if (vers == _STAT_VER_KERNEL || vers == _STAT_VER_LINUX)
+-    return INLINE_SYSCALL (stat, 2, name, CHECK_1 (buf));
++    return INLINE_SYSCALL (stat, 2, name, buf);
+ 
+   __set_errno (EINVAL);
+   return -1;
+diff --git a/sysdeps/unix/sysv/linux/xstat.c b/sysdeps/unix/sysv/linux/xstat.c
+index 179ea9e30123fb81..a3c0c1ca42424830 100644
+--- a/sysdeps/unix/sysv/linux/xstat.c
++++ b/sysdeps/unix/sysv/linux/xstat.c
+@@ -27,7 +27,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <xstatconv.h>
+ 
+@@ -36,8 +35,7 @@ int
+ __xstat (int vers, const char *name, struct stat *buf)
+ {
+   if (vers == _STAT_VER_KERNEL)
+-    return INLINE_SYSCALL (stat, 2, name,
+-			   CHECK_1 ((struct kernel_stat *) buf));
++    return INLINE_SYSCALL (stat, 2, name, (struct kernel_stat *) buf);
+ 
+ #ifdef STAT_IS_KERNEL_STAT
+   errno = EINVAL;
+diff --git a/sysdeps/unix/sysv/linux/xstat64.c b/sysdeps/unix/sysv/linux/xstat64.c
+index 89976a68e9d86699..5c31a919828d311b 100644
+--- a/sysdeps/unix/sysv/linux/xstat64.c
++++ b/sysdeps/unix/sysv/linux/xstat64.c
+@@ -23,7 +23,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -33,7 +32,7 @@ int
+ ___xstat64 (int vers, const char *name, struct stat64 *buf)
+ {
+   int result;
+-  result = INLINE_SYSCALL (stat64, 2, name, CHECK_1 (buf));
++  result = INLINE_SYSCALL (stat64, 2, name, buf);
+ #if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
+   if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
+     buf->st_ino = buf->__st_ino;
diff --git a/SOURCES/glibc-rh1505492-bounded-9.patch b/SOURCES/glibc-rh1505492-bounded-9.patch
new file mode 100644
index 0000000..93e9e35
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-bounded-9.patch
@@ -0,0 +1,1144 @@
+commit a2da1673fe32540799c801e8aec374dc1c0e0596
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Fri Feb 8 20:06:30 2013 +0000
+
+    Remove CHECK_N and bp-checks.h.
+
+Conflicts:
+	sysdeps/generic/bp-checks.h
+
+Copyright header change; file removed manually.
+
+diff --git a/debug/segfault.c b/debug/segfault.c
+index 98886dbf152f6ea3..67435b305b84089b 100644
+--- a/debug/segfault.c
++++ b/debug/segfault.c
+@@ -32,8 +32,6 @@
+ #include <_itoa.h>
+ #include <ldsodefs.h>
+ 
+-#include <bp-checks.h>
+-
+ /* This file defines macros to access the content of the sigcontext element
+    passed up by the signal handler.  */
+ #include <sigcontextinfo.h>
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/fdatasync.c b/ports/sysdeps/unix/sysv/linux/alpha/fdatasync.c
+index 10f5035787aace19..ecb4a669d37b40c0 100644
+--- a/ports/sysdeps/unix/sysv/linux/alpha/fdatasync.c
++++ b/ports/sysdeps/unix/sysv/linux/alpha/fdatasync.c
+@@ -23,7 +23,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/gethostname.c b/ports/sysdeps/unix/sysv/linux/alpha/gethostname.c
+index cec26d9815dfc2c8..0bfdd399ba0d4767 100644
+--- a/ports/sysdeps/unix/sysv/linux/alpha/gethostname.c
++++ b/ports/sysdeps/unix/sysv/linux/alpha/gethostname.c
+@@ -22,14 +22,13 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ int
+ __gethostname (char *name, size_t len)
+ {
+   int result;
+ 
+-  result = INLINE_SYSCALL (gethostname, 2, CHECK_N (name, len), len);
++  result = INLINE_SYSCALL (gethostname, 2, name, len);
+ 
+   if (result == 0
+       /* See whether the string is terminated.  If not we will return
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/pread.c b/ports/sysdeps/unix/sysv/linux/arm/pread.c
+index 4efe349e930b778c..ed7be7394307892c 100644
+--- a/ports/sysdeps/unix/sysv/linux/arm/pread.c
++++ b/ports/sysdeps/unix/sysv/linux/arm/pread.c
+@@ -23,7 +23,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ ssize_t
+ __libc_pread (fd, buf, count, offset)
+@@ -38,7 +37,7 @@ __libc_pread (fd, buf, count, offset)
+     {
+       /* In the ARM EABI, 64-bit values are aligned to even/odd register
+ 	 pairs for syscalls.  */
+-      result = INLINE_SYSCALL (pread64, 6, fd, CHECK_N (buf, count), count, 0,
++      result = INLINE_SYSCALL (pread64, 6, fd, buf, count, 0,
+ 			       __LONG_LONG_PAIR (offset >> 31, offset));
+ 
+       return result;
+@@ -48,7 +47,7 @@ __libc_pread (fd, buf, count, offset)
+ 
+   /* In the ARM EABI, 64-bit values are aligned to even/odd register
+      pairs for syscalls.  */
+-  result = INLINE_SYSCALL (pread64, 6, fd, CHECK_N (buf, count), count, 0,
++  result = INLINE_SYSCALL (pread64, 6, fd, buf, count, 0,
+ 			   __LONG_LONG_PAIR (offset >> 31, offset));
+ 
+   LIBC_CANCEL_RESET (oldtype);
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/pread64.c b/ports/sysdeps/unix/sysv/linux/arm/pread64.c
+index 59bd9cfe0b9133ba..a3e8dfccb7446d76 100644
+--- a/ports/sysdeps/unix/sysv/linux/arm/pread64.c
++++ b/ports/sysdeps/unix/sysv/linux/arm/pread64.c
+@@ -23,7 +23,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ ssize_t
+ __libc_pread64 (fd, buf, count, offset)
+@@ -38,7 +37,7 @@ __libc_pread64 (fd, buf, count, offset)
+     {
+       /* In the ARM EABI, 64-bit values are aligned to even/odd register
+ 	 pairs for syscalls.  */
+-      result = INLINE_SYSCALL (pread64, 6, fd, CHECK_N (buf, count), count, 0,
++      result = INLINE_SYSCALL (pread64, 6, fd, buf, count, 0,
+ 			       __LONG_LONG_PAIR ((off_t) (offset >> 32),
+ 						 (off_t) (offset & 0xffffffff)));
+ 
+@@ -49,7 +48,7 @@ __libc_pread64 (fd, buf, count, offset)
+ 
+   /* In the ARM EABI, 64-bit values are aligned to even/odd register
+      pairs for syscalls.  */
+-  result = INLINE_SYSCALL (pread64, 6, fd, CHECK_N (buf, count), count, 0,
++  result = INLINE_SYSCALL (pread64, 6, fd, buf, count, 0,
+ 			   __LONG_LONG_PAIR ((off_t) (offset >> 32),
+ 					     (off_t) (offset & 0xffffffff)));
+ 
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/pwrite.c b/ports/sysdeps/unix/sysv/linux/arm/pwrite.c
+index 43788e5420240b69..a102f307926c2873 100644
+--- a/ports/sysdeps/unix/sysv/linux/arm/pwrite.c
++++ b/ports/sysdeps/unix/sysv/linux/arm/pwrite.c
+@@ -23,7 +23,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ ssize_t
+ __libc_pwrite (fd, buf, count, offset)
+@@ -38,7 +37,7 @@ __libc_pwrite (fd, buf, count, offset)
+     {
+       /* In the ARM EABI, 64-bit values are aligned to even/odd register
+ 	 pairs for syscalls.  */
+-      result = INLINE_SYSCALL (pwrite64, 6, fd, CHECK_N (buf, count), count, 0,
++      result = INLINE_SYSCALL (pwrite64, 6, fd, buf, count, 0,
+ 			       __LONG_LONG_PAIR (offset >> 31, offset));
+ 
+       return result;
+@@ -48,7 +47,7 @@ __libc_pwrite (fd, buf, count, offset)
+ 
+   /* In the ARM EABI, 64-bit values are aligned to even/odd register
+      pairs for syscalls.  */
+-  result = INLINE_SYSCALL (pwrite64, 6, fd, CHECK_N (buf, count), count, 0,
++  result = INLINE_SYSCALL (pwrite64, 6, fd, buf, count, 0,
+ 			   __LONG_LONG_PAIR (offset >> 31, offset));
+ 
+   LIBC_CANCEL_RESET (oldtype);
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/pwrite64.c b/ports/sysdeps/unix/sysv/linux/arm/pwrite64.c
+index c7bfdaf9f34a15b5..19b15f6bd7cb2e0d 100644
+--- a/ports/sysdeps/unix/sysv/linux/arm/pwrite64.c
++++ b/ports/sysdeps/unix/sysv/linux/arm/pwrite64.c
+@@ -23,7 +23,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ ssize_t
+ __libc_pwrite64 (fd, buf, count, offset)
+@@ -38,7 +37,7 @@ __libc_pwrite64 (fd, buf, count, offset)
+     {
+       /* In the ARM EABI, 64-bit values are aligned to even/odd register
+ 	 pairs for syscalls.  */
+-      result = INLINE_SYSCALL (pwrite64, 6, fd, CHECK_N (buf, count), count, 0,
++      result = INLINE_SYSCALL (pwrite64, 6, fd, buf, count, 0,
+ 			       __LONG_LONG_PAIR ((off_t) (offset >> 32),
+ 						 (off_t) (offset & 0xffffffff)));
+ 
+@@ -49,7 +48,7 @@ __libc_pwrite64 (fd, buf, count, offset)
+ 
+   /* In the ARM EABI, 64-bit values are aligned to even/odd register
+      pairs for syscalls.  */
+-  result = INLINE_SYSCALL (pwrite64, 6, fd, CHECK_N (buf, count), count, 0,
++  result = INLINE_SYSCALL (pwrite64, 6, fd, buf, count, 0,
+ 			   __LONG_LONG_PAIR ((off_t) (offset >> 32),
+ 					     (off_t) (offset & 0xffffffff)));
+ 
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c b/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
+index 24b517e43846b80a..dda02b14442d5cb5 100644
+--- a/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
++++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
+@@ -23,7 +23,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <xstatconv.h>
+ 
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/pread.c b/ports/sysdeps/unix/sysv/linux/mips/pread.c
+index a868130ea1144e44..f24e500c10efae99 100644
+--- a/ports/sysdeps/unix/sysv/linux/mips/pread.c
++++ b/ports/sysdeps/unix/sysv/linux/mips/pread.c
+@@ -26,7 +26,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -54,10 +53,9 @@ __libc_pread (fd, buf, count, offset)
+   if (SINGLE_THREAD_P)
+     {
+ #if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
+-      result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count,
+-			       offset);
++      result = INLINE_SYSCALL (pread, 4, fd, buf, count, offset);
+ #else
+-      result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
++      result = INLINE_SYSCALL (pread, 6, fd, buf, count, 0,
+ 			       __LONG_LONG_PAIR (offset >> 31, offset));
+ #endif
+       return result;
+@@ -66,9 +64,9 @@ __libc_pread (fd, buf, count, offset)
+   int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+ #if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
+-  result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count, offset);
++  result = INLINE_SYSCALL (pread, 4, fd, buf, count, offset);
+ #else
+-  result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
++  result = INLINE_SYSCALL (pread, 6, fd, buf, count, 0,
+ 			   __LONG_LONG_PAIR (offset >> 31, offset));
+ #endif
+ 
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/pread64.c b/ports/sysdeps/unix/sysv/linux/mips/pread64.c
+index 6f9b0054a53faf67..d5172a039d7fd269 100644
+--- a/ports/sysdeps/unix/sysv/linux/mips/pread64.c
++++ b/ports/sysdeps/unix/sysv/linux/mips/pread64.c
+@@ -25,7 +25,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -50,10 +49,9 @@ __libc_pread64 (fd, buf, count, offset)
+   if (SINGLE_THREAD_P)
+     {
+ #if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
+-      result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count,
+-			       offset);
++      result = INLINE_SYSCALL (pread, 4, fd, buf, count, offset);
+ #else
+-     result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
++     result = INLINE_SYSCALL (pread, 6, fd, buf, count, 0,
+ 			      __LONG_LONG_PAIR ((off_t) (offset >> 32),
+ 			      (off_t) (offset & 0xffffffff)));
+ #endif
+@@ -63,9 +61,9 @@ __libc_pread64 (fd, buf, count, offset)
+   int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+ #if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
+-  result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count, offset);
++  result = INLINE_SYSCALL (pread, 4, fd, buf, count, offset);
+ #else
+-  result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
++  result = INLINE_SYSCALL (pread, 6, fd, buf, count, 0,
+ 			   __LONG_LONG_PAIR ((off_t) (offset >> 32),
+ 					     (off_t) (offset & 0xffffffff)));
+ #endif
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/pwrite.c b/ports/sysdeps/unix/sysv/linux/mips/pwrite.c
+index cc0c3b7c22199cc0..caa69cbb4f7e3e77 100644
+--- a/ports/sysdeps/unix/sysv/linux/mips/pwrite.c
++++ b/ports/sysdeps/unix/sysv/linux/mips/pwrite.c
+@@ -26,7 +26,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -54,10 +53,9 @@ __libc_pwrite (fd, buf, count, offset)
+   if (SINGLE_THREAD_P)
+     {
+ #if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
+-      result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count,
+-			       offset);
++      result = INLINE_SYSCALL (pwrite, 4, fd, buf, count, offset);
+ #else
+-      result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
++      result = INLINE_SYSCALL (pwrite, 6, fd, buf, count, 0,
+ 			       __LONG_LONG_PAIR (offset >> 31, offset));
+ #endif
+       return result;
+@@ -66,9 +64,9 @@ __libc_pwrite (fd, buf, count, offset)
+   int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+ #if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
+-  result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count, offset);
++  result = INLINE_SYSCALL (pwrite, 4, fd, buf, count, offset);
+ #else
+-  result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
++  result = INLINE_SYSCALL (pwrite, 6, fd, buf, count, 0,
+ 			   __LONG_LONG_PAIR (offset >> 31, offset));
+ #endif
+ 
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/pwrite64.c b/ports/sysdeps/unix/sysv/linux/mips/pwrite64.c
+index d60accd57fc3c535..d8ae27a9abf5c606 100644
+--- a/ports/sysdeps/unix/sysv/linux/mips/pwrite64.c
++++ b/ports/sysdeps/unix/sysv/linux/mips/pwrite64.c
+@@ -25,7 +25,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -49,10 +48,9 @@ __libc_pwrite64 (fd, buf, count, offset)
+   if (SINGLE_THREAD_P)
+     {
+ #if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
+-      result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count,
+-			       offset);
++      result = INLINE_SYSCALL (pwrite, 4, fd, buf, count, offset);
+ #else
+-     result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
++     result = INLINE_SYSCALL (pwrite, 6, fd, buf, count, 0,
+ 			      __LONG_LONG_PAIR ((off_t) (offset >> 32),
+ 			     (off_t) (offset & 0xffffffff)));
+ #endif
+@@ -63,9 +61,9 @@ __libc_pwrite64 (fd, buf, count, offset)
+   int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+ #if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
+-  result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count, offset);
++  result = INLINE_SYSCALL (pwrite, 4, fd, buf, count, offset);
+ #else
+-  result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
++  result = INLINE_SYSCALL (pwrite, 6, fd, buf, count, 0,
+ 			   __LONG_LONG_PAIR ((off_t) (offset >> 32),
+ 					     (off_t) (offset & 0xffffffff)));
+ #endif
+diff --git a/sysdeps/generic/bp-checks.h b/sysdeps/generic/bp-checks.h
+deleted file mode 100644
+index 90a07fc10fde3a84..0000000000000000
+--- a/sysdeps/generic/bp-checks.h
++++ /dev/null
+@@ -1,49 +0,0 @@
+-/* Bounded-pointer checking macros for C.
+-   Copyright (C) 2000 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Greg McGary <greg@mcgary.org>
+-
+-   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 _bp_checks_h_
+-#define _bp_checks_h_ 1
+-
+-#if __BOUNDED_POINTERS__
+-
+-# define BOUNDS_VIOLATED (__builtin_trap (), 0)
+-
+-# define _CHECK_N(ARG, N, COND)				\
+-  (((COND)						\
+-    && (__ptrvalue (ARG) < __ptrlow (ARG)		\
+-	|| __ptrvalue (ARG) + (N) > __ptrhigh (ARG))	\
+-    && BOUNDS_VIOLATED),				\
+-   __ptrvalue (ARG))
+-
+-/* Check bounds of a pointer seated to an array of N objects.  */
+-# define CHECK_N(ARG, N) _CHECK_N ((ARG), (N), 1)
+-/* Same as CHECK_N, but tolerate ARG == NULL.  */
+-# define CHECK_N_NULL_OK(ARG, N) _CHECK_N ((ARG), (N), __ptrvalue (ARG))
+-
+-#else /* !__BOUNDED_POINTERS__ */
+-
+-/* Do nothing if not compiling with -fbounded-pointers.  */
+-
+-# define BOUNDS_VIOLATED
+-# define CHECK_N(ARG, N) (ARG)
+-# define CHECK_N_NULL_OK(ARG, N) (ARG)
+-
+-#endif /* !__BOUNDED_POINTERS__ */
+-
+-#endif /* _bp_checks_h_ */
+diff --git a/sysdeps/unix/sysv/linux/getdents.c b/sysdeps/unix/sysv/linux/getdents.c
+index babfbd0a43a29450..6b64f5d9bdb6b573 100644
+--- a/sysdeps/unix/sysv/linux/getdents.c
++++ b/sysdeps/unix/sysv/linux/getdents.c
+@@ -28,7 +28,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <linux/posix_types.h>
+ 
+@@ -109,7 +108,7 @@ __GETDENTS (int fd, char *buf, size_t nbytes)
+       && (offsetof (struct kernel_dirent, d_reclen)
+ 	  == offsetof (struct dirent, d_reclen)))
+     {
+-      retval = INLINE_SYSCALL (getdents, 3, fd, CHECK_N(buf, nbytes), nbytes);
++      retval = INLINE_SYSCALL (getdents, 3, fd, buf, nbytes);
+ 
+       /* The kernel added the d_type value after the name.  Change
+ 	 this now.  */
+@@ -158,8 +157,7 @@ __GETDENTS (int fd, char *buf, size_t nbytes)
+ 		   - offsetof (DIRENT_TYPE, d_name);
+ 	  kbuf = __alloca(kbytes);
+ 	}
+-      retval = INLINE_SYSCALL (getdents64, 3, fd, CHECK_N(kbuf, kbytes),
+-			       kbytes);
++      retval = INLINE_SYSCALL (getdents64, 3, fd, kbuf, kbytes);
+ # ifndef __ASSUME_GETDENTS64_SYSCALL
+       if (retval != -1 || (errno != EINVAL && errno != ENOSYS))
+ # endif
+@@ -255,8 +253,7 @@ __GETDENTS (int fd, char *buf, size_t nbytes)
+ 
+     skdp = kdp = __alloca (red_nbytes);
+ 
+-    retval = INLINE_SYSCALL (getdents, 3, fd,
+-			     CHECK_N ((char *) kdp, red_nbytes), red_nbytes);
++    retval = INLINE_SYSCALL (getdents, 3, fd, (char *) kdp, red_nbytes);
+ 
+     if (retval == -1)
+       return -1;
+diff --git a/sysdeps/unix/sysv/linux/i386/brk.c b/sysdeps/unix/sysv/linux/i386/brk.c
+index 68451f1b17e52c45..0b367096f47007ce 100644
+--- a/sysdeps/unix/sysv/linux/i386/brk.c
++++ b/sysdeps/unix/sysv/linux/i386/brk.c
+@@ -20,8 +20,6 @@
+ #include <unistd.h>
+ #include <sysdep.h>
+ 
+-#include <bp-checks.h>
+-
+ /* This must be initialized data because commons can't have aliases.  */
+ void *__curbrk = 0;
+ 
+diff --git a/sysdeps/unix/sysv/linux/i386/getgroups.c b/sysdeps/unix/sysv/linux/i386/getgroups.c
+index e0871ec2d29258ab..7759c17a9bbfb37c 100644
+--- a/sysdeps/unix/sysv/linux/i386/getgroups.c
++++ b/sysdeps/unix/sysv/linux/i386/getgroups.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <linux/posix_types.h>
+ 
+@@ -34,7 +33,7 @@
+ int
+ __getgroups (int n, gid_t *groups)
+ {
+-  return INLINE_SYSCALL (getgroups32, 2, n, CHECK_N (groups, n));
++  return INLINE_SYSCALL (getgroups32, 2, n, groups);
+ }
+ 
+ weak_alias (__getgroups, getgroups)
+diff --git a/sysdeps/unix/sysv/linux/i386/setgroups.c b/sysdeps/unix/sysv/linux/i386/setgroups.c
+index 73b341ac53010d2b..e9466fd9e1eef27f 100644
+--- a/sysdeps/unix/sysv/linux/i386/setgroups.c
++++ b/sysdeps/unix/sysv/linux/i386/setgroups.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <setxid.h>
+ #include <linux/posix_types.h>
+@@ -33,6 +32,6 @@
+ int
+ setgroups (size_t n, const gid_t *groups)
+ {
+-  return INLINE_SETXID_SYSCALL (setgroups32, 2, n, CHECK_N (groups, n));
++  return INLINE_SETXID_SYSCALL (setgroups32, 2, n, groups);
+ }
+ libc_hidden_def (setgroups)
+diff --git a/sysdeps/unix/sysv/linux/mmap64.c b/sysdeps/unix/sysv/linux/mmap64.c
+index bca15f9c5dd4c590..87bd532c5e350c56 100644
+--- a/sysdeps/unix/sysv/linux/mmap64.c
++++ b/sysdeps/unix/sysv/linux/mmap64.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+diff --git a/sysdeps/unix/sysv/linux/msgrcv.c b/sysdeps/unix/sysv/linux/msgrcv.c
+index 0b47ce7bbe125945..dc0e34fe3d7f2ffd 100644
+--- a/sysdeps/unix/sysv/linux/msgrcv.c
++++ b/sysdeps/unix/sysv/linux/msgrcv.c
+@@ -23,8 +23,6 @@
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+ 
+-#include <bp-checks.h>
+-
+ /* Kludge to work around Linux' restriction of only up to five
+    arguments to a system call.  */
+ struct ipc_kludge
+@@ -46,7 +44,7 @@ __libc_msgrcv (msqid, msgp, msgsz, msgtyp, msgflg)
+      fives parameters to a system call.  */
+   struct ipc_kludge tmp;
+ 
+-  tmp.msgp = CHECK_N (msgp, msgsz);
++  tmp.msgp = msgp;
+   tmp.msgtyp = msgtyp;
+ 
+   if (SINGLE_THREAD_P)
+diff --git a/sysdeps/unix/sysv/linux/msgsnd.c b/sysdeps/unix/sysv/linux/msgsnd.c
+index 2f57fe74f10dae31..2883cad8aa370c6c 100644
+--- a/sysdeps/unix/sysv/linux/msgsnd.c
++++ b/sysdeps/unix/sysv/linux/msgsnd.c
+@@ -23,8 +23,6 @@
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+ 
+-#include <bp-checks.h>
+-
+ int
+ __libc_msgsnd (msqid, msgp, msgsz, msgflg)
+      int msqid;
+@@ -34,12 +32,12 @@ __libc_msgsnd (msqid, msgp, msgsz, msgflg)
+ {
+   if (SINGLE_THREAD_P)
+     return INLINE_SYSCALL (ipc, 5, IPCOP_msgsnd, msqid, msgsz,
+-			   msgflg, (void *) CHECK_N (msgp, msgsz));
++			   msgflg, (void *) msgp);
+ 
+   int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+   int result = INLINE_SYSCALL (ipc, 5, IPCOP_msgsnd, msqid, msgsz,
+-			       msgflg, (void *) CHECK_N (msgp, msgsz));
++			       msgflg, (void *) msgp);
+ 
+   LIBC_CANCEL_RESET (oldtype);
+ 
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c
+index 364834f1d0c717e7..9a9d0d456e5db1c0 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -38,7 +37,7 @@ __libc_pread (fd, buf, count, offset)
+   if (SINGLE_THREAD_P)
+     {
+       /* On PPC32 64bit values are aligned in odd/even register pairs.  */
+-      result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count,
++      result = INLINE_SYSCALL (pread, 6, fd, buf, count,
+ 			       0, offset >> 31, offset);
+ 
+       return result;
+@@ -47,7 +46,7 @@ __libc_pread (fd, buf, count, offset)
+   int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+   /* On PPC32 64bit values are aligned in odd/even register pairs.  */
+-  result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count,
++  result = INLINE_SYSCALL (pread, 6, fd, buf, count,
+ 			       0, offset >> 31, offset);
+ 
+   LIBC_CANCEL_RESET (oldtype);
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c
+index 5b1445ff23ef9ab4..1435b293b143159b 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c
+@@ -21,7 +21,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -38,7 +37,7 @@ __libc_pread64 (fd, buf, count, offset)
+   if (SINGLE_THREAD_P)
+     {
+       /* On PPC32 64bit values are aligned in odd/even register pairs.  */
+-      result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count,
++      result = INLINE_SYSCALL (pread, 6, fd, buf, count,
+ 			       0, (long) (offset >> 32),
+ 			       (long) offset);
+ 
+@@ -48,7 +47,7 @@ __libc_pread64 (fd, buf, count, offset)
+   int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+   /* On PPC32 64bit values are aligned in odd/even register pairs.  */
+-  result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count,
++  result = INLINE_SYSCALL (pread, 6, fd, buf, count,
+ 			   0, (long) (offset >> 32),
+ 			   (long) offset);
+ 
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c
+index ed1878bc5ee94a5e..d3a551c5a97550ca 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -39,7 +38,7 @@ __libc_pwrite (fd, buf, count, offset)
+   if (SINGLE_THREAD_P)
+     {
+       /* On PPC32 64bit values are aligned in odd/even register pairs.  */
+-      result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count,
++      result = INLINE_SYSCALL (pwrite, 6, fd, buf, count,
+ 			       0, offset >> 31, offset);
+ 
+       return result;
+@@ -48,7 +47,7 @@ __libc_pwrite (fd, buf, count, offset)
+   int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+   /* On PPC32 64bit values are aligned in odd/even register pairs.  */
+-  result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count,
++  result = INLINE_SYSCALL (pwrite, 6, fd, buf, count,
+ 			   0, offset >> 31, offset);
+ 
+   LIBC_CANCEL_RESET (oldtype);
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c
+index dedeb7e97d8ed14b..d89a1759d1903eba 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c
+@@ -21,7 +21,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -38,7 +37,7 @@ __libc_pwrite64 (fd, buf, count, offset)
+   if (SINGLE_THREAD_P)
+     {
+   /* On PPC32 64bit values are aligned in odd/even register pairs.  */
+-      result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count,
++      result = INLINE_SYSCALL (pwrite, 6, fd, buf, count,
+ 			       0, (long) (offset >> 32),
+ 			       (long) offset);
+ 
+@@ -48,7 +47,7 @@ __libc_pwrite64 (fd, buf, count, offset)
+   int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+   /* On PPC32 64bit values are aligned in odd/even register pairs.  */
+-  result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count,
++  result = INLINE_SYSCALL (pwrite, 6, fd, buf, count,
+ 			   0, (long) (offset >> 32),
+ 			   (long) offset);
+ 
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c
+index ed4708f2dee6b9a7..43ead1af67b0c0da 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -40,16 +39,14 @@ __libc_pread (fd, buf, count, offset)
+ 
+   if (SINGLE_THREAD_P)
+     {
+-      result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count,
+-                                offset);
++      result = INLINE_SYSCALL (pread, 4, fd, buf, count, offset);
+ 
+       return result;
+     }
+ 
+   int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+-  result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count,
+-                            offset);
++  result = INLINE_SYSCALL (pread, 4, fd, buf, count, offset);
+ 
+   LIBC_CANCEL_RESET (oldtype);
+ 
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c
+index 63ba30df297b703a..dc9fc81c4ccf067e 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c
+@@ -21,7 +21,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -39,16 +38,14 @@ __libc_pread64 (fd, buf, count, offset)
+ 
+   if (SINGLE_THREAD_P)
+     {
+-      result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count,
+-                                offset);
++      result = INLINE_SYSCALL (pread, 4, fd, buf, count, offset);
+ 
+       return result;
+     }
+ 
+   int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+-   result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count,
+-                            offset);
++   result = INLINE_SYSCALL (pread, 4, fd, buf, count, offset);
+ 
+   LIBC_CANCEL_RESET (oldtype);
+ 
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c
+index 68f26dfb7e2c8d4e..57c62bdb74805836 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -40,16 +39,14 @@ __libc_pwrite (fd, buf, count, offset)
+ 
+   if (SINGLE_THREAD_P)
+     {
+-      result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count,
+-                              offset);
++      result = INLINE_SYSCALL (pwrite, 4, fd, buf, count, offset);
+ 
+       return result;
+     }
+ 
+   int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+-  result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count,
+-			                     offset);
++  result = INLINE_SYSCALL (pwrite, 4, fd, buf, count, offset);
+ 
+   LIBC_CANCEL_RESET (oldtype);
+ 
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c
+index 71ffa17c5befd899..430bb4ef2bd2eb3e 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c
+@@ -21,7 +21,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -39,16 +38,14 @@ __libc_pwrite64 (fd, buf, count, offset)
+ 
+   if (SINGLE_THREAD_P)
+     {
+-      result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count,
+-                                offset);
++      result = INLINE_SYSCALL (pwrite, 4, fd, buf, count, offset);
+ 
+       return result;
+     }
+ 
+   int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+-  result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count,
+-                            offset);
++  result = INLINE_SYSCALL (pwrite, 4, fd, buf, count, offset);
+ 
+   LIBC_CANCEL_RESET (oldtype);
+ 
+diff --git a/sysdeps/unix/sysv/linux/pread.c b/sysdeps/unix/sysv/linux/pread.c
+index 4ea67fcb0b04c271..7322e42d6ed990c1 100644
+--- a/sysdeps/unix/sysv/linux/pread.c
++++ b/sysdeps/unix/sysv/linux/pread.c
+@@ -23,7 +23,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -44,7 +43,7 @@ do_pread (int fd, void *buf, size_t count, off_t offset)
+   ssize_t result;
+ 
+   assert (sizeof (offset) == 4);
+-  result = INLINE_SYSCALL (pread, 5, fd, CHECK_N (buf, count), count,
++  result = INLINE_SYSCALL (pread, 5, fd, buf, count,
+ 			   __LONG_LONG_PAIR (offset >> 31, offset));
+ 
+   return result;
+diff --git a/sysdeps/unix/sysv/linux/pread64.c b/sysdeps/unix/sysv/linux/pread64.c
+index 897b5674a75c23be..03e5f1402bf8b888 100644
+--- a/sysdeps/unix/sysv/linux/pread64.c
++++ b/sysdeps/unix/sysv/linux/pread64.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -39,7 +38,7 @@ do_pread64 (int fd, void *buf, size_t count, off64_t offset)
+ {
+   ssize_t result;
+ 
+-  result = INLINE_SYSCALL (pread, 5, fd, CHECK_N (buf, count), count,
++  result = INLINE_SYSCALL (pread, 5, fd, buf, count,
+ 			   __LONG_LONG_PAIR ((off_t) (offset >> 32),
+ 					     (off_t) (offset & 0xffffffff)));
+ 
+diff --git a/sysdeps/unix/sysv/linux/pwrite.c b/sysdeps/unix/sysv/linux/pwrite.c
+index c4940fcdd09b0726..e773d65f2e5602a8 100644
+--- a/sysdeps/unix/sysv/linux/pwrite.c
++++ b/sysdeps/unix/sysv/linux/pwrite.c
+@@ -23,7 +23,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -44,7 +43,7 @@ do_pwrite (int fd, const void *buf, size_t count, off_t offset)
+   ssize_t result;
+ 
+   assert (sizeof (offset) == 4);
+-  result = INLINE_SYSCALL (pwrite, 5, fd, CHECK_N (buf, count), count,
++  result = INLINE_SYSCALL (pwrite, 5, fd, buf, count,
+ 			   __LONG_LONG_PAIR (offset >> 31, offset));
+ 
+   return result;
+diff --git a/sysdeps/unix/sysv/linux/pwrite64.c b/sysdeps/unix/sysv/linux/pwrite64.c
+index ad945a2903a44714..558a08e735616649 100644
+--- a/sysdeps/unix/sysv/linux/pwrite64.c
++++ b/sysdeps/unix/sysv/linux/pwrite64.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -39,7 +38,7 @@ do_pwrite64 (int fd, const void *buf, size_t count, off64_t offset)
+ {
+   ssize_t result;
+ 
+-  result = INLINE_SYSCALL (pwrite, 5, fd, CHECK_N (buf, count), count,
++  result = INLINE_SYSCALL (pwrite, 5, fd, buf, count,
+ 			   __LONG_LONG_PAIR ((off_t) (offset >> 32),
+ 					     (off_t) (offset & 0xffffffff)));
+ 
+diff --git a/sysdeps/unix/sysv/linux/readv.c b/sysdeps/unix/sysv/linux/readv.c
+index 440e1039c3a8f3ac..e8acd65ce377963a 100644
+--- a/sysdeps/unix/sysv/linux/readv.c
++++ b/sysdeps/unix/sysv/linux/readv.c
+@@ -24,7 +24,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ #include <kernel-features.h>
+ 
+ #ifndef __ASSUME_COMPLETE_READV_WRITEV
+@@ -48,12 +47,12 @@ __libc_readv (fd, vector, count)
+   ssize_t result;
+ 
+   if (SINGLE_THREAD_P)
+-    result = INLINE_SYSCALL (readv, 3, fd, CHECK_N (vector, count), count);
++    result = INLINE_SYSCALL (readv, 3, fd, vector, count);
+   else
+     {
+       int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+-      result = INLINE_SYSCALL (readv, 3, fd, CHECK_N (vector, count), count);
++      result = INLINE_SYSCALL (readv, 3, fd, vector, count);
+ 
+       LIBC_CANCEL_RESET (oldtype);
+     }
+diff --git a/sysdeps/unix/sysv/linux/semop.c b/sysdeps/unix/sysv/linux/semop.c
+index 22bdeeb0f19bef15..4cd6891976858cc2 100644
+--- a/sysdeps/unix/sysv/linux/semop.c
++++ b/sysdeps/unix/sysv/linux/semop.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Perform user-defined atomical operation of array of semaphores.  */
+ 
+@@ -32,6 +31,5 @@ semop (semid, sops, nsops)
+      struct sembuf *sops;
+      size_t nsops;
+ {
+-  return INLINE_SYSCALL (ipc, 5, IPCOP_semop,
+-			 semid, (int) nsops, 0, CHECK_N (sops, nsops));
++  return INLINE_SYSCALL (ipc, 5, IPCOP_semop, semid, (int) nsops, 0, sops);
+ }
+diff --git a/sysdeps/unix/sysv/linux/semtimedop.c b/sysdeps/unix/sysv/linux/semtimedop.c
+index 6e2c40f3758483a9..5a43f53975aeafcc 100644
+--- a/sysdeps/unix/sysv/linux/semtimedop.c
++++ b/sysdeps/unix/sysv/linux/semtimedop.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ /* Perform user-defined atomical operation of array of semaphores.  */
+ 
+@@ -34,6 +33,6 @@ semtimedop (semid, sops, nsops, timeout)
+      const struct timespec *timeout;
+ {
+   return INLINE_SYSCALL (ipc, 6, IPCOP_semtimedop,
+-			 semid, (int) nsops, 0, CHECK_N (sops, nsops),
++			 semid, (int) nsops, 0, sops,
+ 			 timeout);
+ }
+diff --git a/sysdeps/unix/sysv/linux/sh/pread.c b/sysdeps/unix/sysv/linux/sh/pread.c
+index 3e7702f10d26c347..160c906a4d0197fd 100644
+--- a/sysdeps/unix/sysv/linux/sh/pread.c
++++ b/sysdeps/unix/sysv/linux/sh/pread.c
+@@ -23,7 +23,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -46,14 +45,14 @@ __libc_pread (fd, buf, count, offset)
+ 
+   if (SINGLE_THREAD_P)
+     {
+-      result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
++      result = INLINE_SYSCALL (pread, 6, fd, buf, count, 0,
+ 			       __LONG_LONG_PAIR (offset >> 31, offset));
+       return result;
+     }
+ 
+   int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+-  result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
++  result = INLINE_SYSCALL (pread, 6, fd, buf, count, 0,
+ 			   __LONG_LONG_PAIR (offset >> 31, offset));
+ 
+   LIBC_CANCEL_RESET (oldtype);
+diff --git a/sysdeps/unix/sysv/linux/sh/pread64.c b/sysdeps/unix/sysv/linux/sh/pread64.c
+index 523ed7f82f5e5de7..bb4f13d06b72fdf1 100644
+--- a/sysdeps/unix/sysv/linux/sh/pread64.c
++++ b/sysdeps/unix/sysv/linux/sh/pread64.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -45,7 +44,7 @@ __libc_pread64 (fd, buf, count, offset)
+ 
+   if (SINGLE_THREAD_P)
+     {
+-     result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
++     result = INLINE_SYSCALL (pread, 6, fd, buf, count, 0,
+ 			      __LONG_LONG_PAIR ((off_t) (offset >> 32),
+ 			      (off_t) (offset & 0xffffffff)));
+      return result;
+@@ -53,7 +52,7 @@ __libc_pread64 (fd, buf, count, offset)
+ 
+   int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+-  result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
++  result = INLINE_SYSCALL (pread, 6, fd, buf, count, 0,
+ 			   __LONG_LONG_PAIR ((off_t) (offset >> 32),
+ 					     (off_t) (offset & 0xffffffff)));
+ 
+diff --git a/sysdeps/unix/sysv/linux/sh/pwrite.c b/sysdeps/unix/sysv/linux/sh/pwrite.c
+index e8052757aae56afe..b17bd87a5d4f74cc 100644
+--- a/sysdeps/unix/sysv/linux/sh/pwrite.c
++++ b/sysdeps/unix/sysv/linux/sh/pwrite.c
+@@ -23,7 +23,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -46,14 +45,14 @@ __libc_pwrite (fd, buf, count, offset)
+ 
+   if (SINGLE_THREAD_P)
+     {
+-      result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
++      result = INLINE_SYSCALL (pwrite, 6, fd, buf, count, 0,
+ 			       __LONG_LONG_PAIR (offset >> 31, offset));
+       return result;
+     }
+ 
+   int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+-  result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
++  result = INLINE_SYSCALL (pwrite, 6, fd, buf, count, 0,
+ 			   __LONG_LONG_PAIR (offset >> 31, offset));
+ 
+   LIBC_CANCEL_RESET (oldtype);
+diff --git a/sysdeps/unix/sysv/linux/sh/pwrite64.c b/sysdeps/unix/sysv/linux/sh/pwrite64.c
+index 8f80fea49501ed2b..d9f41ec34cf01fb4 100644
+--- a/sysdeps/unix/sysv/linux/sh/pwrite64.c
++++ b/sysdeps/unix/sysv/linux/sh/pwrite64.c
+@@ -22,7 +22,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ #include <kernel-features.h>
+ 
+@@ -45,7 +44,7 @@ __libc_pwrite64 (fd, buf, count, offset)
+ 
+   if (SINGLE_THREAD_P)
+     {
+-     result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
++     result = INLINE_SYSCALL (pwrite, 6, fd, buf, count, 0,
+ 			      __LONG_LONG_PAIR ((off_t) (offset >> 32),
+ 			     (off_t) (offset & 0xffffffff)));
+ 
+@@ -54,7 +53,7 @@ __libc_pwrite64 (fd, buf, count, offset)
+ 
+   int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+-  result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
++  result = INLINE_SYSCALL (pwrite, 6, fd, buf, count, 0,
+ 			   __LONG_LONG_PAIR ((off_t) (offset >> 32),
+ 					     (off_t) (offset & 0xffffffff)));
+ 
+diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c b/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c
+index 15eb7983c6ebd3f9..3684a01142f68323 100644
+--- a/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c
++++ b/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c
+@@ -22,8 +22,6 @@
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+ 
+-#include <bp-checks.h>
+-
+ ssize_t
+ __libc_msgrcv (msqid, msgp, msgsz, msgtyp, msgflg)
+      int msqid;
+@@ -34,12 +32,12 @@ __libc_msgrcv (msqid, msgp, msgsz, msgtyp, msgflg)
+ {
+   if (SINGLE_THREAD_P)
+     return INLINE_SYSCALL (ipc, 6, IPCOP_msgrcv, msqid, msgsz, msgflg,
+-			   CHECK_N (msgp, msgsz), msgtyp);
++			   msgp, msgtyp);
+ 
+   int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+   ssize_t result = INLINE_SYSCALL (ipc, 6, IPCOP_msgrcv, msqid, msgsz, msgflg,
+-				   CHECK_N (msgp, msgsz), msgtyp);
++				   msgp, msgtyp);
+ 
+   LIBC_CANCEL_RESET (oldtype);
+ 
+diff --git a/sysdeps/unix/sysv/linux/sysctl.c b/sysdeps/unix/sysv/linux/sysctl.c
+index f69c8229643ae5a9..e00ecfe85cfc0281 100644
+--- a/sysdeps/unix/sysv/linux/sysctl.c
++++ b/sysdeps/unix/sysv/linux/sysctl.c
+@@ -22,13 +22,11 @@
+ 
+ #include <sysdep.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ 
+ int
+ __sysctl (int *name, int nlen, void *oldval, size_t *oldlenp,
+ 	  void *newval, size_t newlen)
+ {
+-  /* GKM FIXME: force __sysctl_args decl to have unbounded pointers.  */
+   struct __sysctl_args args =
+   {
+     .name = name,
+@@ -38,9 +36,6 @@ __sysctl (int *name, int nlen, void *oldval, size_t *oldlenp,
+     .newval = newval,
+     .newlen = newlen
+   };
+-  (void) CHECK_N (name, nlen);
+-  (void) CHECK_N (oldval, *oldlenp);
+-  (void) CHECK_N (newval, newlen);
+ 
+   return INLINE_SYSCALL (_sysctl, 1, __ptrvalue (&args));
+ }
+diff --git a/sysdeps/unix/sysv/linux/writev.c b/sysdeps/unix/sysv/linux/writev.c
+index 26a68df6b902a6fc..8b018ecdf6fbc323 100644
+--- a/sysdeps/unix/sysv/linux/writev.c
++++ b/sysdeps/unix/sysv/linux/writev.c
+@@ -23,7 +23,6 @@
+ 
+ #include <sysdep-cancel.h>
+ #include <sys/syscall.h>
+-#include <bp-checks.h>
+ #include <kernel-features.h>
+ 
+ #ifndef __ASSUME_COMPLETE_READV_WRITEV
+@@ -47,12 +46,12 @@ __libc_writev (fd, vector, count)
+   ssize_t result;
+ 
+   if (SINGLE_THREAD_P)
+-    result = INLINE_SYSCALL (writev, 3, fd, CHECK_N (vector, count), count);
++    result = INLINE_SYSCALL (writev, 3, fd, vector, count);
+   else
+     {
+       int oldtype = LIBC_CANCEL_ASYNC ();
+ 
+-      result = INLINE_SYSCALL (writev, 3, fd, CHECK_N (vector, count), count);
++      result = INLINE_SYSCALL (writev, 3, fd, vector, count);
+ 
+       LIBC_CANCEL_RESET (oldtype);
+     }
diff --git a/SOURCES/glibc-rh1505492-bsd-flatten.patch b/SOURCES/glibc-rh1505492-bsd-flatten.patch
new file mode 100644
index 0000000..c6d13de
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-bsd-flatten.patch
@@ -0,0 +1,173 @@
+commit ef7344f09c5ce00eb519ed14598b2a8e39c68387
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Sun Dec 22 14:49:48 2013 +0000
+
+    Flatten sysdeps/unix/bsd/bsd4.4 into sysdeps/unix/bsd.
+    
+    As discussed in
+    <https://sourceware.org/ml/libc-alpha/2012-04/msg00840.html> and
+    <https://sourceware.org/ml/libc-alpha/2012-04/msg00989.html>, it seems
+    appropriate to flatten sysdeps/unix/bsd/bsd4.4 into sysdeps/unix/bsd.
+    
+    The bulk of the patch is just moving files.  The only other changes
+    are: update paths in sysdeps/mach/hurd/Implies and
+    sysdeps/unix/sysv/linux/wait3.c; merge the two syscalls.list files,
+    with the removal of syscalls that were in
+    sysdeps/unix/bsd/syscalls.list but overridden in the bsd4.4 directory
+    by .c files there.
+    
+    Tested x86_64.  The installed shared libraries are identical before
+    and after the patch except for libc.so where the move of wait3.c
+    (included by sysdeps/unix/sysv/linux/wait3.c) affects debug info, but
+    the disassembly is unchanged.
+    
+            * sysdeps/mach/hurd/Implies: Change unix/bsd/bsd4.4 to unix/bsd.
+            * sysdeps/unix/bsd/syscalls.list (chflags): Add entry from
+            sysdeps/unix/bsd/bsd4.4/syscalls.list.
+            (fchflags): Likewise.
+            (revoke): Likewise.
+            (setlogin): Likewise.
+            (sigaltstack): Likewise.
+            (wait4): Likewise.
+            (sigblock): Remove.
+            (sigsetmask): Likewise.
+            (wait3): Likewise.
+            (waitpid): Likewise.
+            * sysdeps/unix/bsd/bsd4.4/syscalls.list: Remove file.
+            * sysdeps/unix/sysv/linux/wait3.c: Update directory of included
+            file.
+            * sysdeps/unix/bsd/bsd4.4/Makefile: Move to ...
+            * sysdeps/unix/bsd/Makefile: ... here.
+            * sysdeps/unix/bsd/bsd4.4/Versions: Move to ...
+            * sysdeps/unix/bsd/Versions: ... here.
+            * sysdeps/unix/bsd/bsd4.4/bits/sockaddr.h: Move to ...
+            * sysdeps/unix/bsd/bits/sockaddr.h: ... here.
+            * sysdeps/unix/bsd/bsd4.4/cmsg_nxthdr.c: Move to ...
+            * sysdeps/unix/bsd/cmsg_nxthdr.c: ... here.
+            * sysdeps/unix/bsd/bsd4.4/sigblock.c: Move to ...
+            * sysdeps/unix/bsd/sigblock.c: ... here.
+            * sysdeps/unix/bsd/bsd4.4/sigsetmask.c: Move to ...
+            * sysdeps/unix/bsd/sigsetmask.c: ... here.
+            * sysdeps/unix/bsd/bsd4.4/sigvec.c: Move to ...
+            * sysdeps/unix/bsd/sigvec.c: ... here.
+            * sysdeps/unix/bsd/bsd4.4/tcdrain.c: Move to ...
+            * sysdeps/unix/bsd/tcdrain.c: ... here.
+            * sysdeps/unix/bsd/bsd4.4/tcgetattr.c: Move to ...
+            * sysdeps/unix/bsd/tcgetattr.c: ... here.
+            * sysdeps/unix/bsd/bsd4.4/tcsetattr.c: Move to ...
+            * sysdeps/unix/bsd/tcsetattr.c: ... here.
+            * sysdeps/unix/bsd/bsd4.4/wait.c: Move to ...
+            * sysdeps/unix/bsd/wait.c: ... here.
+            * sysdeps/unix/bsd/bsd4.4/wait3.c: Move to ...
+            * sysdeps/unix/bsd/wait3.c: ... here.
+            * sysdeps/unix/bsd/bsd4.4/waitpid.c: Move to ...
+            * sysdeps/unix/bsd/waitpid.c: ... here.
+
+diff --git a/sysdeps/mach/hurd/Implies b/sysdeps/mach/hurd/Implies
+index b6063463ce34f3b7..d2d5234c1fdf1522 100644
+--- a/sysdeps/mach/hurd/Implies
++++ b/sysdeps/mach/hurd/Implies
+@@ -2,4 +2,4 @@
+ # Hurd-based GNU systems.
+ gnu
+ # The Hurd provides a rough superset of the functionality of 4.4 BSD.
+-unix/bsd/bsd4.4
++unix/bsd
+diff --git a/sysdeps/unix/bsd/bsd4.4/Makefile b/sysdeps/unix/bsd/Makefile
+similarity index 100%
+rename from sysdeps/unix/bsd/bsd4.4/Makefile
+rename to sysdeps/unix/bsd/Makefile
+diff --git a/sysdeps/unix/bsd/bsd4.4/Versions b/sysdeps/unix/bsd/Versions
+similarity index 100%
+rename from sysdeps/unix/bsd/bsd4.4/Versions
+rename to sysdeps/unix/bsd/Versions
+diff --git a/sysdeps/unix/bsd/bsd4.4/bits/sockaddr.h b/sysdeps/unix/bsd/bits/sockaddr.h
+similarity index 100%
+rename from sysdeps/unix/bsd/bsd4.4/bits/sockaddr.h
+rename to sysdeps/unix/bsd/bits/sockaddr.h
+diff --git a/sysdeps/unix/bsd/bsd4.4/syscalls.list b/sysdeps/unix/bsd/bsd4.4/syscalls.list
+deleted file mode 100644
+index a4d354685424ac61..0000000000000000
+--- a/sysdeps/unix/bsd/bsd4.4/syscalls.list
++++ /dev/null
+@@ -1,8 +0,0 @@
+-# File name	Caller	Syscall name	# args	Strong name	Weak names
+-
+-chflags		-	chflags		2	chflags
+-fchflags	-	fchflags	2	fchflags
+-revoke		-	revoke		1	revoke
+-setlogin	-	setlogin	2	setlogin
+-sigaltstack	-	sigaltstack	2	__sigaltstack	sigaltstack
+-wait4		-	wait4		4	__wait4		wait4
+diff --git a/sysdeps/unix/bsd/bsd4.4/cmsg_nxthdr.c b/sysdeps/unix/bsd/cmsg_nxthdr.c
+similarity index 100%
+rename from sysdeps/unix/bsd/bsd4.4/cmsg_nxthdr.c
+rename to sysdeps/unix/bsd/cmsg_nxthdr.c
+diff --git a/sysdeps/unix/bsd/bsd4.4/sigblock.c b/sysdeps/unix/bsd/sigblock.c
+similarity index 100%
+rename from sysdeps/unix/bsd/bsd4.4/sigblock.c
+rename to sysdeps/unix/bsd/sigblock.c
+diff --git a/sysdeps/unix/bsd/bsd4.4/sigsetmask.c b/sysdeps/unix/bsd/sigsetmask.c
+similarity index 100%
+rename from sysdeps/unix/bsd/bsd4.4/sigsetmask.c
+rename to sysdeps/unix/bsd/sigsetmask.c
+diff --git a/sysdeps/unix/bsd/bsd4.4/sigvec.c b/sysdeps/unix/bsd/sigvec.c
+similarity index 100%
+rename from sysdeps/unix/bsd/bsd4.4/sigvec.c
+rename to sysdeps/unix/bsd/sigvec.c
+diff --git a/sysdeps/unix/bsd/syscalls.list b/sysdeps/unix/bsd/syscalls.list
+index e84819dc1f19d148..9f48a144d475f342 100644
+--- a/sysdeps/unix/bsd/syscalls.list
++++ b/sysdeps/unix/bsd/syscalls.list
+@@ -1,14 +1,16 @@
+ # File name	Caller	Syscall name	# args	Strong name	Weak names
+ 
++chflags		-	chflags		2	chflags
++fchflags	-	fchflags	2	fchflags
+ flock		-	flock		2	__flock		flock
+ getdents	-	getdirentries	4	__getdirentries	getdirentries
+ getdtsz		-	getdtablesize	0	__getdtablesize	getdtablesize
+ getpagesize	-	getpagesize	0	__getpagesize	getpagesize
+ killpg		-	killpg		2	killpg
+-sigblock	-	sigblock	1	__sigblock	sigblock
++revoke		-	revoke		1	revoke
++setlogin	-	setlogin	2	setlogin
++sigaltstack	-	sigaltstack	2	__sigaltstack	sigaltstack
+ sigpause	-	sigpause	1	__sigpause	sigpause
+-sigsetmask	-	sigsetmask	1	__sigsetmask	sigsetmask
+ sigstack	-	sigstack	2	sigstack
+ sigvec		-	sigvec		3	__sigvec	sigvec
+-wait3		-	wait3		3	__wait3		wait3
+-waitpid		-	waitpid		3	__waitpid	waitpid
++wait4		-	wait4		4	__wait4		wait4
+diff --git a/sysdeps/unix/bsd/bsd4.4/tcdrain.c b/sysdeps/unix/bsd/tcdrain.c
+similarity index 100%
+rename from sysdeps/unix/bsd/bsd4.4/tcdrain.c
+rename to sysdeps/unix/bsd/tcdrain.c
+diff --git a/sysdeps/unix/bsd/bsd4.4/tcgetattr.c b/sysdeps/unix/bsd/tcgetattr.c
+similarity index 100%
+rename from sysdeps/unix/bsd/bsd4.4/tcgetattr.c
+rename to sysdeps/unix/bsd/tcgetattr.c
+diff --git a/sysdeps/unix/bsd/bsd4.4/tcsetattr.c b/sysdeps/unix/bsd/tcsetattr.c
+similarity index 100%
+rename from sysdeps/unix/bsd/bsd4.4/tcsetattr.c
+rename to sysdeps/unix/bsd/tcsetattr.c
+diff --git a/sysdeps/unix/bsd/bsd4.4/wait.c b/sysdeps/unix/bsd/wait.c
+similarity index 100%
+rename from sysdeps/unix/bsd/bsd4.4/wait.c
+rename to sysdeps/unix/bsd/wait.c
+diff --git a/sysdeps/unix/bsd/bsd4.4/wait3.c b/sysdeps/unix/bsd/wait3.c
+similarity index 100%
+rename from sysdeps/unix/bsd/bsd4.4/wait3.c
+rename to sysdeps/unix/bsd/wait3.c
+diff --git a/sysdeps/unix/bsd/bsd4.4/waitpid.c b/sysdeps/unix/bsd/waitpid.c
+similarity index 100%
+rename from sysdeps/unix/bsd/bsd4.4/waitpid.c
+rename to sysdeps/unix/bsd/waitpid.c
+diff --git a/sysdeps/unix/sysv/linux/wait3.c b/sysdeps/unix/sysv/linux/wait3.c
+index 0b3bdee771782b7b..2ff027f0e1d83eb2 100644
+--- a/sysdeps/unix/sysv/linux/wait3.c
++++ b/sysdeps/unix/sysv/linux/wait3.c
+@@ -1 +1 @@
+-#include <sysdeps/unix/bsd/bsd4.4/wait3.c>
++#include <sysdeps/unix/bsd/wait3.c>
diff --git a/SOURCES/glibc-rh1505492-deprecated-1.patch b/SOURCES/glibc-rh1505492-deprecated-1.patch
new file mode 100644
index 0000000..8d3c1cb
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-deprecated-1.patch
@@ -0,0 +1,37 @@
+commit 6b5189eb2000761cd68c3c54c0d03357a9aaec67
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Thu Nov 27 16:02:26 2014 +0000
+
+    Avoid deprecated sigblock in misc/tst-pselect.c.
+    
+    misc/tst-pselect.c uses the deprecated sigblock interface, resulting
+    in "tst-pselect.c:42:3: warning: 'sigblock' is deprecated (declared at
+    ../signal/signal.h:189) [-Wdeprecated-declarations]".  The choice of
+    sigblock rather than sigprocmask has nothing to do with what this test
+    is testing, so this patch changes it to use sigprocmask to avoid the
+    warning.
+    
+    Tested for x86_64.
+    
+            * misc/tst-pselect.c (do_test): Use sigprocmask instead of
+            sigblock.
+
+diff --git a/misc/tst-pselect.c b/misc/tst-pselect.c
+index 36bc46da6c94174a..095d794cb2735e18 100644
+--- a/misc/tst-pselect.c
++++ b/misc/tst-pselect.c
+@@ -39,9 +39,12 @@ do_test (void)
+       return 1;
+     }
+ 
+-  if (sigblock (sigmask (SIGUSR1)) != 0)
++  sigset_t ss_usr1;
++  sigemptyset (&ss_usr1);
++  sigaddset (&ss_usr1, SIGUSR1);
++  if (sigprocmask (SIG_BLOCK, &ss_usr1, NULL) != 0)
+     {
+-      puts ("sigblock failed");
++      puts ("sigprocmask failed");
+       return 1;
+     }
+ 
diff --git a/SOURCES/glibc-rh1505492-deprecated-2.patch b/SOURCES/glibc-rh1505492-deprecated-2.patch
new file mode 100644
index 0000000..bde3250
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-deprecated-2.patch
@@ -0,0 +1,50 @@
+commit 0f88636c09686b1f8e876bfa88b40bacbcae8c11
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Wed Dec 10 00:44:54 2014 +0000
+
+    Disable -Wdeprecated-declarations for register_printf_function calls in tst-printfsz.c.
+    
+    This patch uses diagnostic control pragmas to disable warnings in
+    stdio-common/tst-printfsz.c for use of the deprecated
+    register_printf_function.  Because this test is testing printf_size
+    and printf_size_info, and the latter has the interface expected for
+    register_printf_function instead of the newer
+    register_printf_specifier, it seems correct for this test to use the
+    deprecated interface (wrapping printf_size_info in some way to use
+    register_printf_specifier would seem an excessive change to what's
+    tested).
+    
+    Tested for x86_64.
+    
+            * stdio-common/tst-printfsz.c: Include <libc-internal.h>.
+            (main): Disable -Wdeprecated-declarations around calls to
+            register_printf_function.
+
+diff --git a/stdio-common/tst-printfsz.c b/stdio-common/tst-printfsz.c
+index 5925050b59e90b79..74d67d2f694f344b 100644
+--- a/stdio-common/tst-printfsz.c
++++ b/stdio-common/tst-printfsz.c
+@@ -2,6 +2,7 @@
+ #include <printf.h>
+ #include <stdio.h>
+ #include <string.h>
++#include <libc-internal.h>
+ 
+ #define V       12345678.12345678
+ 
+@@ -12,9 +13,15 @@ main (int argc, char *argv[])
+   char buf[1024];
+   int result = 0;
+ 
++  /* Testing printf_size_info requires using the deprecated
++     register_printf_function, resulting in warnings
++     "'register_printf_function' is deprecated".  */
++  DIAG_PUSH_NEEDS_COMMENT;
++  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wdeprecated-declarations");
+   /* Register the printf handlers.  */
+   register_printf_function ('b', printf_size, printf_size_info);
+   register_printf_function ('B', printf_size, printf_size_info);
++  DIAG_POP_NEEDS_COMMENT;
+ 
+ 
+   sprintf (buf, "%g %b %B %.0b %.0B %.1b %.1B %8.0b %08.0B",
diff --git a/SOURCES/glibc-rh1505492-diag.patch b/SOURCES/glibc-rh1505492-diag.patch
new file mode 100644
index 0000000..206a3e7
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-diag.patch
@@ -0,0 +1,190 @@
+commit 2084e7ca4d344c39eb39e53848b51b5d84444414
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Wed Dec 10 00:41:19 2014 +0000
+
+    Add macros for diagnostic control, use for scanf %a tests.
+    
+    In <https://sourceware.org/ml/libc-alpha/2014-11/msg00326.html>,
+    Roland requested internal macros for use of "#pragma GCC diagnostic".
+    
+    This patch adds such macros and uses them to disable -Wformat warnings
+    for some code testing GNU scanf %as where GCC expects C99 scanf %a
+    (several other stdio tests currently use -Wno-format to disable
+    warnings).  Limitations in GCC's diagnostic pragmas require separate
+    macros before and after the code generating the warnings, rather than
+    a single macro taking that code as an argument.
+    
+    The macros are named DIAG_*_NEEDS_COMMENT to emphasise to reviewers
+    the need for a comment accompanying any use of them (such comments may
+    however just appear once for several uses of the macros for the same
+    issue in the same file).  I put a GCC version in the arguments to
+    DIAG_IGNORE_NEEDS_COMMENT, as that seems something useful to grep for
+    when obsoleting support for an old GCC version and needing to decide
+    if warning-disabling code is still relevant.
+    
+    These macros should be usable for replacing existing -Wno-* use in
+    makefiles (as also suggested by Roland), though I have no plans to
+    work on that (only on use of the macros in cases where warnings are
+    currently present that need disabling to use -Werror).
+    
+    Tested for x86_64.
+    
+            * include/libc-internal.h (DIAG_PUSH_NEEDS_COMMENT): New macro.
+            (DIAG_POP_NEEDS_COMMENT): Likewise.
+            (_DIAG_STR1): Likewise.
+            (_DIAG_STR): Likewise.
+            (DIAG_IGNORE_NEEDS_COMMENT): Likewise.
+            * stdio-common/bug21.c: Include <libc-internal.h>.
+            (do_test): Disable -Wformat around call to sscanf.
+            * stdio-common/scanf14.c: Include <libc-internal.h>.
+            (main): Disable -Wformat around some calls to scanf functions.
+
+diff --git a/include/libc-internal.h b/include/libc-internal.h
+index 2ced1c17d3dff93d..bca59a46144b736f 100644
+--- a/include/libc-internal.h
++++ b/include/libc-internal.h
+@@ -76,4 +76,35 @@ extern void __init_misc (int, char **, char **);
+ #define ignore_value(x) \
+   ({ __typeof__ (x) __ignored_value = (x); (void) __ignored_value; })
+ 
++/* The macros to control diagnostics are structured like this, rather
++   than a single macro that both pushes and pops diagnostic state and
++   takes the affected code as an argument, because the GCC pragmas
++   work by disabling the diagnostic for a range of source locations
++   and do not work when all the pragmas and the affected code are in a
++   single macro expansion.  */
++
++/* Push diagnostic state.  */
++#define DIAG_PUSH_NEEDS_COMMENT _Pragma ("GCC diagnostic push")
++
++/* Pop diagnostic state.  */
++#define DIAG_POP_NEEDS_COMMENT _Pragma ("GCC diagnostic pop")
++
++#define _DIAG_STR1(s) #s
++#define _DIAG_STR(s) _DIAG_STR1(s)
++
++/* Ignore the diagnostic OPTION.  VERSION is the most recent GCC
++   version for which the diagnostic has been confirmed to appear in
++   the absence of the pragma (in the form MAJOR.MINOR for GCC 4.x,
++   just MAJOR for GCC 5 and later).  Uses of this pragma should be
++   reviewed when the GCC version given is no longer supported for
++   building glibc; the version number should always be on the same
++   source line as the macro name, so such uses can be found with grep.
++   Uses should come with a comment giving more details of the
++   diagnostic, and an architecture on which it is seen if possibly
++   optimization-related and not in architecture-specific code.  This
++   macro should only be used if the diagnostic seems hard to fix (for
++   example, optimization-related false positives).  */
++#define DIAG_IGNORE_NEEDS_COMMENT(version, option)	\
++  _Pragma (_DIAG_STR (GCC diagnostic ignored option))
++
+ #endif /* _LIBC_INTERNAL  */
+diff --git a/stdio-common/bug21.c b/stdio-common/bug21.c
+index d22b9c1a9717a197..ca27272ba191321e 100644
+--- a/stdio-common/bug21.c
++++ b/stdio-common/bug21.c
+@@ -1,4 +1,5 @@
+ #include <stdio.h>
++#include <libc-internal.h>
+ 
+ static int
+ do_test (void)
+@@ -6,7 +7,15 @@ do_test (void)
+   static const char buf[] = " ";
+   char *str;
+ 
++  /* GCC in C99 mode treats %a as the C99 format expecting float *,
++     but glibc with _GNU_SOURCE treats %as as the GNU allocation
++     extension, so resulting in "warning: format '%a' expects argument
++     of type 'float *', but argument 3 has type 'char **'".  This
++     applies to the other %as, %aS and %a[] formats below as well.  */
++  DIAG_PUSH_NEEDS_COMMENT;
++  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
+   int r = sscanf (buf, "%as", &str);
++  DIAG_POP_NEEDS_COMMENT;
+   printf ("%d %p\n", r, str);
+ 
+   return r != -1 || str != NULL;
+diff --git a/stdio-common/scanf14.c b/stdio-common/scanf14.c
+index 6ca5c7c5679632a3..cffccb0b19d2927b 100644
+--- a/stdio-common/scanf14.c
++++ b/stdio-common/scanf14.c
+@@ -2,6 +2,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <wchar.h>
++#include <libc-internal.h>
+ 
+ #define FAIL() \
+   do {							\
+@@ -23,6 +24,13 @@ main (void)
+     FAIL ();
+   else if (f != 0.25 || memcmp (c, "s x", 3) != 0)
+     FAIL ();
++  /* GCC in C99 mode treats %a as the C99 format expecting float *,
++     but glibc with _GNU_SOURCE treats %as as the GNU allocation
++     extension, so resulting in "warning: format '%a' expects argument
++     of type 'float *', but argument 3 has type 'char **'".  This
++     applies to the other %as, %aS and %a[] formats below as well.  */
++  DIAG_PUSH_NEEDS_COMMENT;
++  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
+   if (sscanf (" 1.25s x", "%as%2c", &sp, c) != 2)
+     FAIL ();
+   else
+@@ -32,10 +40,14 @@ main (void)
+       memset (sp, 'x', sizeof "1.25s");
+       free (sp);
+     }
++  DIAG_POP_NEEDS_COMMENT;
+   if (sscanf (" 2.25s x", "%las%2c", &d, c) != 2)
+     FAIL ();
+   else if (d != 2.25 || memcmp (c, " x", 2) != 0)
+     FAIL ();
++  /* See explanation above.  */
++  DIAG_PUSH_NEEDS_COMMENT;
++  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
+   if (sscanf (" 3.25S x", "%4aS%3c", &lsp, c) != 2)
+     FAIL ();
+   else
+@@ -54,6 +66,7 @@ main (void)
+       memset (sp, 'x', sizeof "4.25");
+       free (sp);
+     }
++  DIAG_POP_NEEDS_COMMENT;
+   if (sscanf ("5.25[0-9.] x", "%la[0-9.]%2c", &d, c) != 2)
+     FAIL ();
+   else if (d != 5.25 || memcmp (c, " x", 2) != 0)
+@@ -82,6 +95,9 @@ main (void)
+ 	FAIL ();
+       if (fseek (fp, 0, SEEK_SET) != 0)
+ 	FAIL ();
++      /* See explanation above.  */
++      DIAG_PUSH_NEEDS_COMMENT;
++      DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
+       if (fscanf (fp, "%as%2c", &sp, c) != 2)
+ 	FAIL ();
+       else
+@@ -91,11 +107,15 @@ main (void)
+ 	  memset (sp, 'x', sizeof "1.25s");
+ 	  free (sp);
+ 	}
++      DIAG_POP_NEEDS_COMMENT;
+ 
+       if (freopen (fname, "r", stdin) == NULL)
+ 	FAIL ();
+       else
+ 	{
++	  /* See explanation above.  */
++	  DIAG_PUSH_NEEDS_COMMENT;
++	  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wformat");
+ 	  if (scanf ("%as%2c", &sp, c) != 2)
+ 	    FAIL ();
+ 	  else
+@@ -105,6 +125,7 @@ main (void)
+ 	      memset (sp, 'x', sizeof "1.25s");
+ 	      free (sp);
+ 	    }
++	  DIAG_POP_NEEDS_COMMENT;
+ 	}
+ 
+       fclose (fp);
diff --git a/SOURCES/glibc-rh1505492-getlogin.patch b/SOURCES/glibc-rh1505492-getlogin.patch
new file mode 100644
index 0000000..b4d4990
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-getlogin.patch
@@ -0,0 +1,69 @@
+commit 8fb16a04e6be250fdae2ce85354aae3702151140
+Author: Roland McGrath <roland@hack.frob.com>
+Date:   Mon May 6 15:10:09 2013 -0700
+
+    Move getlogin, getlogin_r, setlogin to login/ subdir.
+
+diff --git a/login/Makefile b/login/Makefile
+index f7620ea0051b5ebb..575301460b58197e 100644
+--- a/login/Makefile
++++ b/login/Makefile
+@@ -24,7 +24,8 @@ subdir	:= login
+ 
+ headers	:= utmp.h bits/utmp.h lastlog.h pty.h
+ 
+-routines := getutent getutent_r getutid getutline getutid_r getutline_r \
++routines := getlogin getlogin_r setlogin \
++	    getutent getutent_r getutid getutline getutid_r getutline_r \
+ 	    utmp_file utmpname updwtmp getpt grantpt unlockpt ptsname
+ 
+ CFLAGS-grantpt.c = -DLIBEXECDIR='"$(libexecdir)"'
+diff --git a/login/Versions b/login/Versions
+index 401fc0ebd0715e0b..0c9e75a7efd295b6 100644
+--- a/login/Versions
++++ b/login/Versions
+@@ -11,6 +11,7 @@ libc {
+     pututline;
+ 
+     # s*
++    setlogin;
+     setutent;
+ 
+     # u*
+diff --git a/posix/getlogin.c b/login/getlogin.c
+similarity index 100%
+rename from posix/getlogin.c
+rename to login/getlogin.c
+diff --git a/posix/getlogin_r.c b/login/getlogin_r.c
+similarity index 100%
+rename from posix/getlogin_r.c
+rename to login/getlogin_r.c
+diff --git a/posix/setlogin.c b/login/setlogin.c
+similarity index 100%
+rename from posix/setlogin.c
+rename to login/setlogin.c
+diff --git a/posix/Makefile b/posix/Makefile
+index a68f0b7d041e65bd..683b6e4b272fdebb 100644
+--- a/posix/Makefile
++++ b/posix/Makefile
+@@ -40,7 +40,6 @@ routines :=								      \
+ 	getuid geteuid getgid getegid getgroups setuid setgid group_member    \
+ 	getpgid setpgid getpgrp bsd-getpgrp setpgrp getsid setsid	      \
+ 	getresuid getresgid setresuid setresgid				      \
+-	getlogin getlogin_r setlogin					      \
+ 	pathconf sysconf fpathconf					      \
+ 	glob glob64 fnmatch regex					      \
+ 	confstr								      \
+diff --git a/posix/Versions b/posix/Versions
+index 686c446bcddeb696..5a5a05d036fbc6ba 100644
+--- a/posix/Versions
++++ b/posix/Versions
+@@ -52,7 +52,7 @@ libc {
+     # s*
+     sched_get_priority_max; sched_get_priority_min; sched_getparam;
+     sched_getscheduler; sched_rr_get_interval; sched_setparam;
+-    sched_setscheduler; sched_yield; setegid; seteuid; setgid; setlogin;
++    sched_setscheduler; sched_yield; setegid; seteuid; setgid;
+     setpgid; setpgrp; setsid; setuid; sleep; sysconf;
+ 
+     # t*
diff --git a/SOURCES/glibc-rh1505492-malloc_ptrdiff_t.patch b/SOURCES/glibc-rh1505492-malloc_ptrdiff_t.patch
new file mode 100644
index 0000000..ba3669b
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-malloc_ptrdiff_t.patch
@@ -0,0 +1,24 @@
+commit dd54b8644c60cd7b7bee27ecaae4138e7c056c01
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Fri Mar 8 16:46:45 2013 +0000
+
+    Remove __malloc_ptrdiff_t.
+
+Conflicts:
+	malloc/malloc.h
+
+Adjusted to keep the definition in the public <malloc.h> header file.
+
+diff --git a/malloc/morecore.c b/malloc/morecore.c
+index 8a72ba6a3d70a865..1e7b77749ff1700d 100644
+--- a/malloc/morecore.c
++++ b/malloc/morecore.c
+@@ -43,7 +43,7 @@ libc_hidden_proto (__sbrk)
+    If INCREMENT is negative, shrink data space.  */
+ __malloc_ptr_t
+ __default_morecore (increment)
+-     __malloc_ptrdiff_t increment;
++     ptrdiff_t increment;
+ {
+   __malloc_ptr_t result = (__malloc_ptr_t) __sbrk (increment);
+   if (result == (__malloc_ptr_t) -1)
diff --git a/SOURCES/glibc-rh1505492-malloc_size_t.patch b/SOURCES/glibc-rh1505492-malloc_size_t.patch
new file mode 100644
index 0000000..53d91c7
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-malloc_size_t.patch
@@ -0,0 +1,154 @@
+commit 1ba4f03035faabd9090f61ec5514e2abced5ca29
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Fri Mar 8 16:46:07 2013 +0000
+
+    Remove __malloc_size_t.
+
+Adjusted here to keep the definition in the public <malloc.h> header
+file.
+
+diff --git a/malloc/mcheck.c b/malloc/mcheck.c
+index c5addc55afebd502..695de42e914e247c 100644
+--- a/malloc/mcheck.c
++++ b/malloc/mcheck.c
+@@ -29,11 +29,10 @@
+ 
+ /* Old hook values.  */
+ static void (*old_free_hook) (__ptr_t ptr, const __ptr_t);
+-static __ptr_t (*old_malloc_hook) (__malloc_size_t size, const __ptr_t);
+-static __ptr_t (*old_memalign_hook) (__malloc_size_t alignment,
+-				     __malloc_size_t size,
++static __ptr_t (*old_malloc_hook) (size_t size, const __ptr_t);
++static __ptr_t (*old_memalign_hook) (size_t alignment, size_t size,
+ 				     const __ptr_t);
+-static __ptr_t (*old_realloc_hook) (__ptr_t ptr, __malloc_size_t size,
++static __ptr_t (*old_realloc_hook) (__ptr_t ptr, size_t size,
+ 				    const __ptr_t);
+ 
+ /* Function to call when something awful happens.  */
+@@ -48,7 +47,7 @@ static void (*abortfunc) (enum mcheck_status);
+ 
+ struct hdr
+   {
+-    __malloc_size_t size;	/* Exact size requested by user.  */
++    size_t size;		/* Exact size requested by user.  */
+     unsigned long int magic;	/* Magic number to check header integrity.  */
+     struct hdr *prev;
+     struct hdr *next;
+@@ -69,12 +68,12 @@ static int pedantic;
+ # include <string.h>
+ # define flood memset
+ #else
+-static void flood (__ptr_t, int, __malloc_size_t);
++static void flood (__ptr_t, int, size_t);
+ static void
+ flood (ptr, val, size)
+      __ptr_t ptr;
+      int val;
+-     __malloc_size_t size;
++     size_t size;
+ {
+   char *cp = ptr;
+   while (size--)
+@@ -202,7 +201,7 @@ freehook (__ptr_t ptr, const __ptr_t caller)
+ }
+ 
+ static __ptr_t
+-mallochook (__malloc_size_t size, const __ptr_t caller)
++mallochook (size_t size, const __ptr_t caller)
+ {
+   struct hdr *hdr;
+ 
+@@ -235,11 +234,11 @@ mallochook (__malloc_size_t size, const __ptr_t caller)
+ }
+ 
+ static __ptr_t
+-memalignhook (__malloc_size_t alignment, __malloc_size_t size,
++memalignhook (size_t alignment, size_t size,
+ 	      const __ptr_t caller)
+ {
+   struct hdr *hdr;
+-  __malloc_size_t slop;
++  size_t slop;
+   char *block;
+ 
+   if (pedantic)
+@@ -274,7 +273,7 @@ memalignhook (__malloc_size_t alignment, __malloc_size_t size,
+ }
+ 
+ static __ptr_t
+-reallochook (__ptr_t ptr, __malloc_size_t size, const __ptr_t caller)
++reallochook (__ptr_t ptr, size_t size, const __ptr_t caller)
+ {
+   if (size == 0)
+     {
+@@ -283,7 +282,7 @@ reallochook (__ptr_t ptr, __malloc_size_t size, const __ptr_t caller)
+     }
+ 
+   struct hdr *hdr;
+-  __malloc_size_t osize;
++  size_t osize;
+ 
+   if (pedantic)
+     mcheck_check_all ();
+diff --git a/malloc/mtrace.c b/malloc/mtrace.c
+index 3f02c7182285d025..0a26ccc65d81bd2a 100644
+--- a/malloc/mtrace.c
++++ b/malloc/mtrace.c
+@@ -58,11 +58,10 @@ __ptr_t mallwatch;
+ 
+ /* Old hook values.  */
+ static void (*tr_old_free_hook) (__ptr_t ptr, const __ptr_t);
+-static __ptr_t (*tr_old_malloc_hook) (__malloc_size_t size, const __ptr_t);
+-static __ptr_t (*tr_old_realloc_hook) (__ptr_t ptr, __malloc_size_t size,
++static __ptr_t (*tr_old_malloc_hook) (size_t size, const __ptr_t);
++static __ptr_t (*tr_old_realloc_hook) (__ptr_t ptr, size_t size,
+ 				       const __ptr_t);
+-static __ptr_t (*tr_old_memalign_hook) (__malloc_size_t __alignment,
+-					__malloc_size_t __size,
++static __ptr_t (*tr_old_memalign_hook) (size_t __alignment, size_t __size,
+ 					const __ptr_t);
+ 
+ /* This function is called when the block being alloc'd, realloc'd, or
+@@ -160,10 +159,10 @@ tr_freehook (ptr, caller)
+   __libc_lock_unlock (lock);
+ }
+ 
+-static __ptr_t tr_mallochook (__malloc_size_t, const __ptr_t) __THROW;
++static __ptr_t tr_mallochook (size_t, const __ptr_t) __THROW;
+ static __ptr_t
+ tr_mallochook (size, caller)
+-     __malloc_size_t size;
++     size_t size;
+      const __ptr_t caller;
+ {
+   __ptr_t hdr;
+@@ -190,12 +189,12 @@ tr_mallochook (size, caller)
+   return hdr;
+ }
+ 
+-static __ptr_t tr_reallochook (__ptr_t, __malloc_size_t, const __ptr_t)
++static __ptr_t tr_reallochook (__ptr_t, size_t, const __ptr_t)
+      __THROW;
+ static __ptr_t
+ tr_reallochook (ptr, size, caller)
+      __ptr_t ptr;
+-     __malloc_size_t size;
++     size_t size;
+      const __ptr_t caller;
+ {
+   __ptr_t hdr;
+@@ -238,11 +237,11 @@ tr_reallochook (ptr, size, caller)
+   return hdr;
+ }
+ 
+-static __ptr_t tr_memalignhook (__malloc_size_t, __malloc_size_t,
++static __ptr_t tr_memalignhook (size_t, size_t,
+ 				const __ptr_t) __THROW;
+ static __ptr_t
+ tr_memalignhook (alignment, size, caller)
+-     __malloc_size_t alignment, size;
++     size_t alignment, size;
+      const __ptr_t caller;
+ {
+   __ptr_t hdr;
diff --git a/SOURCES/glibc-rh1505492-nscd_stat.patch b/SOURCES/glibc-rh1505492-nscd_stat.patch
new file mode 100644
index 0000000..e14457d
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-nscd_stat.patch
@@ -0,0 +1,70 @@
+commit 1e9522c61c7a544d59db32cb7fbbd42e6793d848
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Thu Oct 5 18:14:27 2017 +0200
+
+    nscd: Eliminate compilation time dependency in the build output
+    
+    Reviewed-by: Carlos O'Donell <carlos@redhat.com>
+
+diff --git a/nscd/nscd_stat.c b/nscd/nscd_stat.c
+index d7d351c663fa6fe6..27b914aa712e7b8d 100644
+--- a/nscd/nscd_stat.c
++++ b/nscd/nscd_stat.c
+@@ -35,9 +35,23 @@
+ # include <selinux/avc.h>
+ #endif /* HAVE_SELINUX */
+ 
++/* We use this to make sure the receiver is the same.  The lower 16
++   bits are reserved for flags indicating compilation variants.  This
++   version needs to be updated if the definition of struct statdata
++   changes.  */
++#define STATDATA_VERSION  0x01020000U
+ 
+-/* We use this to make sure the receiver is the same.  */
+-static const char compilation[21] = __DATE__ " " __TIME__;
++#ifdef HAVE_SELINUX
++# define STATDATA_VERSION_SELINUX_FLAG 0x0001U
++#else
++# define STATDATA_VERSION_SELINUX_FLAG 0x0000U
++#endif
++
++/* All flags affecting the struct statdata layout.  */
++#define STATDATA_VERSION_FLAGS STATDATA_VERSION_SELINUX_FLAG
++
++/* The full version number for struct statdata.  */
++#define STATDATA_VERSION_FULL (STATDATA_VERSION | STATDATA_VERSION_FLAGS)
+ 
+ /* Statistic data for one database.  */
+ struct dbstat
+@@ -68,10 +82,11 @@ struct dbstat
+   uintmax_t addfailed;
+ };
+ 
+-/* Record for transmitting statistics.  */
++/* Record for transmitting statistics.  If this definition changes,
++   update STATDATA_VERSION above.  */
+ struct statdata
+ {
+-  char version[sizeof (compilation)];
++  unsigned int version;		/* Must be STATDATA_VERSION_FULL.  */
+   int debug_level;
+   time_t runtime;
+   unsigned long int client_queued;
+@@ -96,7 +111,7 @@ send_stats (int fd, struct database_dyn dbs[lastdb])
+ 
+   memset (&data, 0, sizeof (data));
+ 
+-  memcpy (data.version, compilation, sizeof (compilation));
++  data.version = STATDATA_VERSION_FULL;
+   data.debug_level = debug_level;
+   data.runtime = time (NULL) - start_time;
+   data.client_queued = client_queued;
+@@ -196,7 +211,7 @@ receive_print_stats (void)
+ 
+   /* Read as much data as we expect.  */
+   if (TEMP_FAILURE_RETRY (read (fd, &data, sizeof (data))) != sizeof (data)
+-      || (memcmp (data.version, compilation, sizeof (compilation)) != 0
++      || (data.version != STATDATA_VERSION_FULL
+ 	  /* Yes, this is an assignment!  */
+ 	  && (errno = EINVAL)))
+     {
diff --git a/SOURCES/glibc-rh1505492-ports-am33.patch b/SOURCES/glibc-rh1505492-ports-am33.patch
new file mode 100644
index 0000000..ee9c757
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-ports-am33.patch
@@ -0,0 +1,3761 @@
+Recreation of this upstream commit:
+
+commit 464263cc00549d2597b6d25309d55b1e4a6b1aac
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Sat Feb 8 00:16:57 2014 +0000
+
+    Remove am33 port.
+    
+    This patch removes the am33 port (no other port #includes any files
+    from it), as previously discussed (see
+    <https://sourceware.org/ml/libc-ports/2014-01/msg00046.html>).
+
+Git commands used:
+
+git rm -r ports/sysdeps/am33
+git rm -r ports/sysdeps/unix/am33
+git rm -r ports/sysdeps/unix/sysv/linux/am33
+
+diff --git a/ports/sysdeps/am33/Implies b/ports/sysdeps/am33/Implies
+deleted file mode 100644
+index 780c4e2467693939..0000000000000000
+--- a/ports/sysdeps/am33/Implies
++++ /dev/null
+@@ -1,3 +0,0 @@
+-wordsize-32
+-ieee754/flt-32
+-ieee754/dbl-64
+diff --git a/ports/sysdeps/am33/__longjmp.S b/ports/sysdeps/am33/__longjmp.S
+deleted file mode 100644
+index 1d6c29e99f0099f5..0000000000000000
+--- a/ports/sysdeps/am33/__longjmp.S
++++ /dev/null
+@@ -1,60 +0,0 @@
+-/* longjmp for AM33.
+-   Copyright 2001 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Lesser General Public
+-   License as published by the Free Software Foundation; either
+-   version 2.1 of the License, or (at your option) any later version.
+-
+-   The GNU C Library is distributed in the hope that it will be useful,
+-   but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   Lesser General Public License for more details.
+-
+-   You should have received a copy of the GNU Lesser General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#include <sysdep.h>
+-#define _ASM
+-#define _SETJMP_H
+-#include <bits/setjmp.h>
+-#include <asm-syntax.h>
+-
+-ENTRY (__longjmp)
+-	mov d0,a0
+-	mov (8,a0),d2
+-	mov d2,mdr
+-	mov (0,a0),d2
+-	mov (4,a0),d3
+-	mov (12,a0),a2
+-	mov (16,a0),a3
+-	mov (20,a0),a1
+-	mov a1,sp
+-	add 24,a0
+-	mov (a0+),r4
+-	mov (a0+),r5
+-	mov (a0+),r6
+-	mov (a0+),r7
+-#ifdef __AM33_2__
+-	fmov (a0+),fs4
+-	fmov (a0+),fs5
+-	fmov (a0+),fs6
+-	fmov (a0+),fs7
+-	fmov (a0+),fs8
+-	fmov (a0+),fs9
+-	fmov (a0+),fs10
+-	fmov (a0+),fs11
+-	fmov (a0+),fs12
+-	fmov (a0+),fs13
+-	fmov (a0+),fs14
+-	fmov (a0+),fs15
+-	fmov (a0+),fs16
+-	fmov (a0+),fs17
+-	fmov (a0+),fs18
+-	fmov (a0+),fs19
+-#endif
+-	mov d1,d0
+-	retf [],0
+-END (__longjmp)
+diff --git a/ports/sysdeps/am33/atomicity.h b/ports/sysdeps/am33/atomicity.h
+deleted file mode 100644
+index b0ba43db4b71a7fc..0000000000000000
+--- a/ports/sysdeps/am33/atomicity.h
++++ /dev/null
+@@ -1,86 +0,0 @@
+-/* Low-level functions for atomic operations.  AM33 version.
+-   Copyright 1999, 2001 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>.
+-   Based on ../sparc/sparc32/atomicity.h
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Library General Public License as
+-   published by the Free Software Foundation; either version 2 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
+-   Library General Public License for more details.
+-
+-   You should have received a copy of the GNU Library General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#ifndef _ATOMICITY_H
+-#define _ATOMICITY_H	1
+-
+-#include <inttypes.h>
+-
+-#define __acquire_lock(lock) \
+-  __asm__ __volatile__("1:	bset	%1, (%0)\n\t"		\
+-		       "	beq	1b"			\
+-		       : : "a" (&(lock)), "d" (1)		\
+-		       : "memory")
+-
+-#define __release_lock(lock) lock = 0
+-
+-static int
+-__attribute__ ((unused))
+-exchange_and_add (volatile uint32_t *mem, int val)
+-{
+-  static unsigned char lock;
+-  int result;
+-
+-  __acquire_lock (lock);
+-
+-  result = *mem;
+-  *mem += val;
+-
+-  __release_lock (lock);
+-
+-  return result;
+-}
+-
+-static void
+-__attribute__ ((unused))
+-atomic_add (volatile uint32_t *mem, int val)
+-{
+-  static unsigned char lock;
+-
+-  __acquire_lock (lock);
+-
+-  *mem += val;
+-
+-  __release_lock (lock);
+-}
+-
+-static int
+-__attribute__ ((unused))
+-compare_and_swap (volatile long int *p, long int oldval, long int newval)
+-{
+-  static unsigned char lock;
+-  int ret;
+-
+-  __acquire_lock (lock);
+-
+-  if (*p != oldval)
+-    ret = 0;
+-  else
+-    {
+-      *p = newval;
+-      ret = 1;
+-    }
+-
+-  __release_lock (lock);
+-
+-  return ret;
+-}
+-
+-#endif /* atomicity.h */
+diff --git a/ports/sysdeps/am33/bits/endian.h b/ports/sysdeps/am33/bits/endian.h
+deleted file mode 100644
+index 7423f09570ac1650..0000000000000000
+--- a/ports/sysdeps/am33/bits/endian.h
++++ /dev/null
+@@ -1,7 +0,0 @@
+-/* AM33 is little-endian.  */
+-
+-#ifndef _ENDIAN_H
+-# error "Never use <bits/endian.h> directly; include <endian.h> instead."
+-#endif
+-
+-#define __BYTE_ORDER __LITTLE_ENDIAN
+diff --git a/ports/sysdeps/am33/bits/setjmp.h b/ports/sysdeps/am33/bits/setjmp.h
+deleted file mode 100644
+index 6dd87cb65546ad11..0000000000000000
+--- a/ports/sysdeps/am33/bits/setjmp.h
++++ /dev/null
+@@ -1,26 +0,0 @@
+-/* Copyright 2001 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'.  AM33 version. */
+-
+-#ifndef _SETJMP_H
+-# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
+-#endif
+-
+-#ifndef _ASM
+-typedef int __jmp_buf[26];
+-#endif
+diff --git a/ports/sysdeps/am33/bsd-_setjmp.S b/ports/sysdeps/am33/bsd-_setjmp.S
+deleted file mode 100644
+index 9bbfcbbba793502b..0000000000000000
+--- a/ports/sysdeps/am33/bsd-_setjmp.S
++++ /dev/null
+@@ -1 +0,0 @@
+-/* _setjmp is in setjmp.S */
+diff --git a/ports/sysdeps/am33/bsd-setjmp.S b/ports/sysdeps/am33/bsd-setjmp.S
+deleted file mode 100644
+index b6b239e67db2864c..0000000000000000
+--- a/ports/sysdeps/am33/bsd-setjmp.S
++++ /dev/null
+@@ -1 +0,0 @@
+-/* setjmp is in setjmp.S */
+diff --git a/ports/sysdeps/am33/dl-machine.h b/ports/sysdeps/am33/dl-machine.h
+deleted file mode 100644
+index d4b321aca094863e..0000000000000000
+--- a/ports/sysdeps/am33/dl-machine.h
++++ /dev/null
+@@ -1,479 +0,0 @@
+-/* Machine-dependent ELF dynamic relocation inline functions.  AM33 version.
+-   Copyright (C) 1995,96,97,98,99,2000,2001, 2004, 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 Library General Public License as
+-   published by the Free Software Foundation; either version 2 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
+-   Library General Public License for more details.
+-
+-   You should have received a copy of the GNU Library General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#ifndef dl_machine_h
+-#define dl_machine_h
+-
+-#define ELF_MACHINE_NAME "mn10300"
+-
+-#include <sys/param.h>
+-
+-/* Return nonzero iff ELF header is compatible with the running host.  */
+-static inline int __attribute__ ((unused))
+-elf_machine_matches_host (const Elf32_Ehdr *ehdr)
+-{
+-  return ehdr->e_machine == EM_MN10300;
+-}
+-
+-
+-/* Return the link-time address of _DYNAMIC.  Conveniently, this is the
+-   first element of the GOT.  This must be inlined in a function which
+-   uses global data.  */
+-static inline Elf32_Addr __attribute__ ((unused))
+-elf_machine_dynamic (void)
+-{
+-  register Elf32_Addr *got asm ("a2");
+-  return *got;
+-}
+-
+-
+-/* Return the run-time load address of the shared object.  */
+-static inline Elf32_Addr __attribute__ ((unused))
+-elf_machine_load_address (void)
+-{
+-  register Elf32_Addr gotaddr asm ("a2");
+-  Elf32_Addr off, gotval;
+-
+-  asm ("mov _dl_start@GOTOFF,%0" : "=r" (off));
+-  asm ("mov (_dl_start@GOT,%1),%0" : "=r" (gotval) : "r" (gotaddr));
+-
+-  return off + gotaddr - gotval;
+-}
+-
+-#ifndef PROF
+-/* We add a declaration of this function here so that in dl-runtime.c
+-   the ELF_MACHINE_RUNTIME_TRAMPOLINE macro really can pass the parameters
+-   in registers.
+-
+-   We cannot use this scheme for profiling because the _mcount call
+-   destroys the passed register information.  */
+-static ElfW(Addr) fixup (struct link_map *l, ElfW(Word) reloc_offset)
+-     __attribute__ ((unused));
+-static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset,
+-				 ElfW(Addr) retaddr)
+-     __attribute__ ((unused));
+-#endif
+-
+-/* Set up the loaded object described by L so its unrelocated PLT
+-   entries will jump to the on-demand fixup code in dl-runtime.c.  */
+-
+-static inline int __attribute__ ((unused))
+-elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
+-{
+-  Elf32_Addr *got;
+-  extern void _dl_runtime_resolve (Elf32_Word) attribute_hidden;
+-  extern void _dl_runtime_profile (Elf32_Word) attribute_hidden;
+-
+-  if (l->l_info[DT_JMPREL] && lazy)
+-    {
+-      /* The GOT entries for functions in the PLT have not yet been filled
+-	 in.  Their initial contents will arrange when called to push an
+-	 offset into the .rel.plt section, push _GLOBAL_OFFSET_TABLE_[1],
+-	 and then jump to _GLOBAL_OFFSET_TABLE[2].  */
+-      got = (Elf32_Addr *) D_PTR (l, l_info[DT_PLTGOT]);
+-      got[1] = (Elf32_Addr) l;	/* Identify this shared object.  */
+-
+-      /* The got[2] entry contains the address of a function which gets
+-	 called to get the address of a so far unresolved function and
+-	 jump to it.  The profiling extension of the dynamic linker allows
+-	 to intercept the calls to collect information.  In this case we
+-	 don't store the address in the GOT so that all future calls also
+-	 end in this function.  */
+-      if (__builtin_expect (profile, 0))
+-	{
+-	  got[2] = (Elf32_Addr) &_dl_runtime_profile;
+-
+-	  if (_dl_name_match_p (GLRO(dl_profile), l))
+-	    /* This is the object we are looking for.  Say that we really
+-	       want profiling and the timers are started.  */
+-	    GL(dl_profile_map) = l;
+-	}
+-      else
+-	/* This function will get called to fix up the GOT entry indicated by
+-	   the offset on the stack, and then jump to the resolved address.  */
+-	got[2] = (Elf32_Addr) &_dl_runtime_resolve;
+-    }
+-
+-  return lazy;
+-}
+-
+-/* This code is used in dl-runtime.c to call the `fixup' function
+-   and then redirect to the address it returns.  */
+-#ifndef PROF
+-# define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\
+-	.text\n\
+-	.globl _dl_runtime_resolve\n\
+-	.type _dl_runtime_resolve, @function\n\
+-_dl_runtime_resolve:\n\
+-	add -12,sp		# Preserve registers otherwise clobbered.\n\
+-	mov d1,(20,sp)\n\
+-	mov d0,(16,sp)\n\
+-	mov r1,d0\n\
+-	mov r0,d1\n\
+-	call fixup,[],0		# Call resolver.\n\
+-	mov d0,a0\n\
+-	mov (12,sp),d1		# Copy return address back to mdr,\n\
+-	mov d1,mdr		# in case the callee returns with retf\n\
+-	mov (16,sp),d0		# Get register content back.\n\
+-	mov (20,sp),d1\n\
+-	add 12,sp\n\
+-	jmp (a0)\n\
+-	.size _dl_runtime_resolve, .-_dl_runtime_resolve\n\
+-\n\
+-	.globl _dl_runtime_profile\n\
+-	.type _dl_runtime_profile, @function\n\
+-_dl_runtime_profile:\n\
+-	add -12,sp		# Preserve registers otherwise clobbered.\n\
+-	mov d1,(20,sp)\n\
+-	mov d0,(16,sp)\n\
+-	mov r1,d0\n\
+-	mov r0,d1\n\
+-	call profile_fixup,[],0		# Call resolver.\n\
+-	mov d0,a0\n\
+-	mov (12,sp),d1		# Copy return address back to mdr,\n\
+-	mov d1,mdr		# in case the callee returns with retf\n\
+-	mov (16,sp),d0		# Get register content back.\n\
+-	mov (20,sp),d1\n\
+-	add 12,sp\n\
+-	jmp (a0)\n\
+-	.size _dl_runtime_profile, .-_dl_runtime_profile\n\
+-	.previous\n\
+-");
+-#else
+-# define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\n\
+-	.text\n\
+-	.globl _dl_runtime_resolve\n\
+-	.globl _dl_runtime_profile\n\
+-	.type _dl_runtime_resolve, @function\n\
+-	.type _dl_runtime_profile, @function\n\
+-_dl_runtime_resolve:\n\
+-_dl_runtime_profile:\n\
+-	add -12,sp		# Preserve registers otherwise clobbered.\n\
+-	mov d1,(20,sp)\n\
+-	mov d0,(16,sp)\n\
+-	mov r1,d0\n\
+-	mov r0,d1\n\
+-	call profile_fixup,[],0		# Call resolver.\n\
+-	mov d0,a0\n\
+-	mov (12,sp),d1		# Copy return address back to mdr,\n\
+-	mov d1,mdr		# in case the callee returns with retf\n\
+-	mov (16,sp),d0		# Get register content back.\n\
+-	mov (20,sp),d1\n\
+-	add 12,sp\n\
+-	jmp (a0)\n\
+-	.size _dl_runtime_resolve, .-_dl_runtime_resolve\n\
+-	.size _dl_runtime_profile, .-_dl_runtime_profile\n\
+-	.previous\n\
+-");
+-#endif
+-
+-/* Mask identifying addresses reserved for the user program,
+-   where the dynamic linker should not map anything.  */
+-#define ELF_MACHINE_USER_ADDRESS_MASK	0xf8000000UL
+-
+-/* Initial entry point code for the dynamic linker.
+-   The C function `_dl_start' is the real entry point;
+-   its return value is the user program's entry point.  */
+-#define RTLD_START asm ("\n\
+-	.text\n\
+-.globl _start\n\
+-.globl _dl_start_user\n\
+-_start:\n\
+-	mov 0,a3	# Mark the top of the stack\n\
+-	mov sp,a1\n\
+-	add -20,sp	# Prepare for function call\n\
+-	mov a1,d0\n\
+-	call _dl_start,[],0\n\
+-_dl_start_user:\n\
+-	# Save the user entry point address in d2.\n\
+-	mov d0,d2\n\
+-	# Point a2 at the GOT.\n\
+-0:	mov pc,a2\n\
+-	add _GLOBAL_OFFSET_TABLE_ - (0b-.),a2\n\
+-	# Store the highest stack address\n\
+-	mov (__libc_stack_end@GOT,a2),a0\n\
+-	mov a1,(a0)\n\
+-	# See if we were run as a command with the executable file\n\
+-	# name as an extra leading argument.\n\
+-	mov (_dl_skip_args@GOT,a2),a0\n\
+-	mov (a0),d0\n\
+-	# Pop the original argument count.\n\
+-	mov (20,sp),d3\n\
+-	# Subtract _dl_skip_args from it.\n\
+-	sub d0,d3\n\
+-	# Adjust the stack pointer to skip _dl_skip_args words.\n\
+-	asl2 d0\n\
+-	mov sp,a0\n\
+-	add d0,a0\n\
+-	mov a0,sp\n\
+-	# Push argc back on the stack.\n\
+-	mov d3,(20,sp)\n\
+-	# The special initializer gets called with the stack just\n\
+-	# as the application's entry point will see it; it can\n\
+-	# switch stacks if it moves these contents over.\n\
+-" RTLD_START_SPECIAL_INIT "\n\
+-	# Load the parameters again.\n\
+-	# (d0, d1, (12,sp), (16,sp)) = (_dl_loaded, argc, argv, envp)\n\
+-	add 24,a0\n\
+-	mov a0,(12,sp)	# a0 is 24+sp\n\
+-	mov d3,d1	# d3 contained argc\n\
+-	inc d3\n\
+-	asl2 d3		# d3 is now (argc+1)*4,\n\
+-	add d3,a0	# the offset between argv and envp\n\
+-	mov a0,(16,sp)\n\
+-	mov (_rtld_local@GOTOFF,a2),d0\n\
+-	# Call the function to run the initializers.\n\
+-	call _dl_init@PLT,[],0\n\
+-	# Pass our finalizer function to the user in d0, as per ELF ABI.\n\
+-	mov (_dl_fini@GOT,a2),d0\n\
+-	add 20,sp\n\
+-	# Jump to the user's entry point.\n\
+-	mov d2,a1\n\
+-	jmp (a1)\n\
+-	.previous\n\
+-");
+-
+-#ifndef RTLD_START_SPECIAL_INIT
+-#define RTLD_START_SPECIAL_INIT /* nothing */
+-#endif
+-
+-/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so
+-   PLT entries should not be allowed to define the value.
+-   ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
+-   of the main executable's symbols, as for a COPY reloc.  */
+-#define elf_machine_type_class(type) \
+-  ((((type) == R_MN10300_JMP_SLOT) * ELF_RTYPE_CLASS_PLT)	\
+-   | (((type) == R_MN10300_COPY) * ELF_RTYPE_CLASS_COPY))
+-
+-/* A reloc type used for ld.so cmdline arg lookups to reject PLT entries.  */
+-#define ELF_MACHINE_JMP_SLOT	R_MN10300_JMP_SLOT
+-
+-static inline Elf32_Addr
+-elf_machine_fixup_plt (struct link_map *map, lookup_t t,
+-		       const Elf32_Rela *reloc,
+-		       Elf32_Addr *reloc_addr, Elf32_Addr value)
+-{
+-  return *reloc_addr = value;
+-}
+-
+-/* Return the final value of a plt relocation.  */
+-static inline Elf32_Addr
+-elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc,
+-		       Elf32_Addr value)
+-{
+-  return value + reloc->r_addend;
+-}
+-
+-#endif /* !dl_machine_h */
+-
+-#ifdef RESOLVE
+-
+-/* The mn10300 never uses Elf32_Rel relocations.  */
+-#define ELF_MACHINE_NO_REL 1
+-
+-/* Perform the relocation specified by RELOC and SYM (which is fully resolved).
+-   MAP is the object containing the reloc.  */
+-
+-static inline void
+-elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
+-		  const Elf32_Sym *sym, const struct r_found_version *version,
+-		  void *const reloc_addr_arg, int skip_ifunc)
+-{
+-  const unsigned int r_type = ELF32_R_TYPE (reloc->r_info);
+-  Elf32_Addr value, *reloc_addr;
+-
+-  /* Make sure we drop any previous alignment assumptions.  */
+-  asm ("" : "=r" (reloc_addr) : "0" (reloc_addr_arg));
+-
+-#define COPY_UNALIGNED_WORD(sw, tw, align) \
+-  { \
+-    unsigned long *__sl = (void*)&(sw), *__tl = (void*)&(tw); \
+-    unsigned short *__ss = (void*)&(sw), *__ts = (void*)&(tw); \
+-    unsigned char *__sc = (void*)&(sw), *__tc = (void*)&(tw); \
+-    switch ((align)) \
+-    { \
+-    case 0: \
+-      *__tl = *__sl; \
+-      break; \
+-    case 2: \
+-      *__ts++ = *__ss++; \
+-      *__ts = *__ss; \
+-      break; \
+-    default: \
+-      *__tc++ = *__sc++; \
+-      *__tc++ = *__sc++; \
+-      *__tc++ = *__sc++; \
+-      *__tc = *__sc; \
+-      break; \
+-    } \
+-  }
+-
+-#define COPY_UNALIGNED_HALFWORD(sw, tw, align) \
+-  { \
+-    unsigned short *__ss = (void*)&(sw), *__ts = (void*)&(tw); \
+-    unsigned char *__sc = (void*)&(sw), *__tc = (void*)&(tw); \
+-    switch ((align)) \
+-    { \
+-    case 0: \
+-      *__ts = *__ss; \
+-      break; \
+-    default: \
+-      *__tc++ = *__sc++; \
+-      *__tc = *__sc; \
+-      break; \
+-    } \
+-  }
+-
+-#if !defined RTLD_BOOTSTRAP || !defined HAVE_Z_COMBRELOC
+-  if (__builtin_expect (r_type == R_MN10300_RELATIVE, 0))
+-    {
+-# if !defined RTLD_BOOTSTRAP && !defined HAVE_Z_COMBRELOC
+-      /* This is defined in rtld.c, but nowhere in the static libc.a;
+-	 make the reference weak so static programs can still link.
+-	 This declaration cannot be done when compiling rtld.c (i.e.
+-	 #ifdef RTLD_BOOTSTRAP) because rtld.c contains the common
+-	 defn for _dl_rtld_map, which is incompatible with a weak decl
+-	 in the same file.  */
+-      weak_extern (_dl_rtld_map);
+-      if (map != &_dl_rtld_map) /* Already done in rtld itself. */
+-# endif
+-	{
+-	  COPY_UNALIGNED_WORD (*reloc_addr, value, (int) reloc_addr & 3);
+-	  value += map->l_addr;
+-	  COPY_UNALIGNED_WORD (value, *reloc_addr, (int) reloc_addr & 3);
+-	}
+-    }
+-# ifndef RTLD_BOOTSTRAP
+-  else if (__builtin_expect (r_type == R_MN10300_NONE, 0))
+-    return;
+-# endif
+-  else
+-#endif
+-    {
+-#ifndef RTLD_BOOTSTRAP
+-      const Elf32_Sym *const refsym = sym;
+-#endif
+-
+-      value = RESOLVE (&sym, version, ELF32_R_TYPE (reloc->r_info));
+-      if (sym)
+-	value += sym->st_value;
+-      value += reloc->r_addend;	/* Assume copy relocs have zero addend.  */
+-
+-      switch (r_type)
+-	{
+-#ifndef RTLD_BOOTSTRAP
+-	case R_MN10300_COPY:
+-	  if (sym == NULL)
+-	    /* This can happen in trace mode if an object could not be
+-	       found.  */
+-	    break;
+-	  if (sym->st_size > refsym->st_size
+-	      || (GLRO(dl_verbose) && sym->st_size < refsym->st_size))
+-	    {
+-	      extern char **_dl_argv;
+-	      const char *strtab;
+-
+-	      strtab = (const void *) D_PTR (map, l_info[DT_STRTAB]);
+-	      _dl_error_printf ("\
+-%s: Symbol `%s' has different size in shared object, consider re-linking\n",
+-				_dl_argv[0] ?: "<program name unknown>",
+-				strtab + refsym->st_name);
+-	    }
+-	  memcpy (reloc_addr, (void *) value, MIN (sym->st_size,
+-						   refsym->st_size));
+-	  break;
+-#endif
+-	case R_MN10300_GLOB_DAT:
+-	case R_MN10300_JMP_SLOT:
+-	  /* These addresses are always aligned.  */
+-	  *reloc_addr = value;
+-	  break;
+-	case R_MN10300_32:
+-	  COPY_UNALIGNED_WORD (value, *reloc_addr, (int) reloc_addr & 3);
+-	  break;
+-#ifndef RTLD_BOOTSTRAP
+-	case R_MN10300_16:
+-	  COPY_UNALIGNED_HALFWORD (value, *reloc_addr, (int) reloc_addr & 1);
+-	  break;
+-	case R_MN10300_8:
+-	  *(char *) reloc_addr = value;
+-	  break;
+-	case R_MN10300_PCREL32:
+-	  value -= (Elf32_Addr) reloc_addr;
+-	  COPY_UNALIGNED_WORD (value, *reloc_addr, (int) reloc_addr & 3);
+-	  break;
+-	case R_MN10300_PCREL16:
+-	  value -= (Elf32_Addr) reloc_addr;
+-	  COPY_UNALIGNED_HALFWORD (value, *reloc_addr, (int) reloc_addr & 1);
+-	  break;
+-	case R_MN10300_PCREL8:
+-	  value -= (Elf32_Addr) reloc_addr;
+-	  *(char *) reloc_addr = (value - (Elf32_Addr) reloc_addr);
+-	  break;
+-#endif
+-	case R_MN10300_NONE:		/* Alright, Wilbur.  */
+-	  break;
+-#if !defined RTLD_BOOTSTRAP || defined _NDEBUG
+-	default:
+-	  _dl_reloc_bad_type (map, ELFW(R_TYPE) (reloc->r_info), 0);
+-	  break;
+-#endif
+-	}
+-
+-    }
+-}
+-
+-static inline void
+-elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
+-			   void *const reloc_addr_arg)
+-{
+-  Elf32_Addr value, *reloc_addr;
+-
+-  asm ("" : "=r" (reloc_addr) : "0" (reloc_addr_arg));
+-
+-  COPY_UNALIGNED_WORD (*reloc_addr, value, (int)reloc_addr & 3);
+-  value += l_addr;
+-  COPY_UNALIGNED_WORD (value, *reloc_addr, (int)reloc_addr & 3);
+-}
+-
+-static inline void
+-elf_machine_lazy_rel (struct link_map *map,
+-		      Elf32_Addr l_addr, const Elf32_Rela *reloc,
+-		      int skip_ifunc)
+-{
+-  unsigned long int const r_type = ELF32_R_TYPE (reloc->r_info);
+-
+-  /* Check for unexpected PLT reloc type.  */
+-  if (__builtin_expect (r_type, R_MN10300_JMP_SLOT) == R_MN10300_JMP_SLOT)
+-    {
+-      Elf32_Addr* const reloc_addr = (void *)(l_addr + reloc->r_offset);
+-      Elf32_Addr value;
+-
+-      /* Perform a RELATIVE reloc on the .got entry that transfers
+-	 to the .plt.  */
+-      COPY_UNALIGNED_WORD (*reloc_addr, value, (int)reloc_addr & 3);
+-      value += l_addr;
+-      COPY_UNALIGNED_WORD (value, *reloc_addr, (int)reloc_addr & 3);
+-    }
+-  else if (__builtin_expect (r_type, R_MN10300_NONE) != R_MN10300_NONE)
+-    _dl_reloc_bad_type (map, ELFW(R_TYPE) (reloc->r_info), 1);
+-
+-}
+-
+-#endif /* RESOLVE */
+diff --git a/ports/sysdeps/am33/elf/start.S b/ports/sysdeps/am33/elf/start.S
+deleted file mode 100644
+index 518e75e478bbeb78..0000000000000000
+--- a/ports/sysdeps/am33/elf/start.S
++++ /dev/null
+@@ -1,80 +0,0 @@
+-/* Startup code compliant to the ELF MN10300 ABI.
+-   Copyright (C) 1995,1996,1997,1998,2000,2001 Free Software Foundation, Inc.
+-   Contributed by Alexandre Oliva  <aoliva@redhat.com>
+-   Based on ../../i386/elf/start.S.
+-   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/>.  */
+-
+-/* This is the canonical entry point, usually the first thing in the text
+-   segment.  The SVR4/i386 ABI (pages 3-31, 3-32) says that when the entry
+-   point runs, most registers' values are unspecified, except for:
+-
+-   a0		Contains a function pointer to be registered with `atexit'.
+-		This is how the dynamic linker arranges to have DT_FINI
+-		functions called for shared libraries that have been loaded
+-		before this code runs.
+-
+-   sp		The stack contains the arguments and environment:
+-		(4,sp)			argc
+-		(8,sp)			argv[0]
+-		...
+-		(4*(argc+1),sp)		NULL
+-		(4*(argc+2),sp)		envp[0]
+-		...
+-					NULL
+-*/
+-
+-#include "bp-sym.h"
+-
+-	.text
+-	.globl _start
+-	.type _start,@function
+-_start:
+-	/* Extract the arguments as encoded on the stack and set up
+-	   the arguments for `main': argc, argv.  envp will be determined
+-	   later in __libc_start_main.  */
+-	mov sp,a3
+-	add -32,sp
+-	
+-	mov a3,(28,sp)		/* stack_end.  */	
+-	mov d0,(24,sp)		/* rtld_fini.  */
+-	mov _fini, d3
+-	mov d3,(20,sp)		/* fini.  */
+-	mov _init, d2
+-	mov d2,(16,sp)		/* init.  */
+-	inc4 a3
+-	mov a3,(12,sp)		/* argv.  */
+-	
+-	/* Set the initial frame pointer as 0, so that the bottom of
+-	   the stack is clearly marked.  */
+-	mov 0,a3
+-
+-	mov (32,sp), d1		/* argc.  */
+-	mov BP_SYM (main), d0	/* main.  */
+-
+-	/* Call the user's main function, and exit with its value.
+-	   But let the libc call main.    */
+-	call BP_SYM (__libc_start_main),[],0
+-
+-	call BP_SYM (abort),[],0 /* Crash if somehow `exit' does return.  */
+-
+-/* Define a symbol for the first piece of initialized data.  */
+-	.data
+-	.globl __data_start
+-__data_start:
+-	.long 0
+-	.weak data_start
+-	data_start = __data_start
+diff --git a/ports/sysdeps/am33/fpu/bits/fenv.h b/ports/sysdeps/am33/fpu/bits/fenv.h
+deleted file mode 100644
+index b0e60e9312f135b2..0000000000000000
+--- a/ports/sysdeps/am33/fpu/bits/fenv.h
++++ /dev/null
+@@ -1,72 +0,0 @@
+-/* Copyright (C) 1998-2012 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>
+-   based on the corresponding file in the mips port.
+-
+-   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 _FENV_H
+-# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
+-#endif
+-
+-
+-/* Define bits representing the exception.  We use the EF bit
+-   positions of the appropriate bits in the FPCR register.  */
+-enum
+-  {
+-    FE_INEXACT =
+-#define FE_INEXACT	0x01
+-      FE_INEXACT,
+-    FE_UNDERFLOW =
+-#define FE_UNDERFLOW	0x02
+-      FE_UNDERFLOW,
+-    FE_OVERFLOW =
+-#define FE_OVERFLOW	0x04
+-      FE_OVERFLOW,
+-    FE_DIVBYZERO =
+-#define FE_DIVBYZERO	0x08
+-      FE_DIVBYZERO,
+-    FE_INVALID =
+-#define FE_INVALID	0x10
+-      FE_INVALID,
+-  };
+-
+-#define FE_ALL_EXCEPT \
+-	(FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID)
+-
+-/* The AM33/2.0 FPU supports only Round to nearest.  Bits 3<<16 are
+-   reserved to represent other rounding modes.  */
+-enum
+-  {
+-    FE_TONEAREST =
+-#define FE_TONEAREST	0x00000
+-      FE_TONEAREST,
+-  };
+-
+-
+-/* Type representing exception flags.  */
+-typedef unsigned int fexcept_t;
+-
+-
+-/* Type representing floating-point environment.  */
+-typedef unsigned int fenv_t;
+-
+-/* If the default argument is used we use this value.  */
+-#define FE_DFL_ENV	((__const fenv_t *) -1)
+-
+-#ifdef __USE_GNU
+-/* Floating-point environment where none of the exception is masked.  */
+-# define FE_NOMASK_ENV  ((__const fenv_t *) -2)
+-#endif
+diff --git a/ports/sysdeps/am33/fpu/fclrexcpt.c b/ports/sysdeps/am33/fpu/fclrexcpt.c
+deleted file mode 100644
+index 492ea38ba39bf061..0000000000000000
+--- a/ports/sysdeps/am33/fpu/fclrexcpt.c
++++ /dev/null
+@@ -1,52 +0,0 @@
+-/* Clear given exceptions in current floating-point environment.
+-   Copyright (C) 1998-2012 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>
+-   based on corresponding file in the MIPS port.
+-
+-   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 <fenv.h>
+-#include <fenv_libc.h>
+-#include <fpu_control.h>
+-#include <shlib-compat.h>
+-
+-int
+-__feclearexcept (int excepts)
+-{
+-  fpu_control_t cw;
+-
+-  /* Mask out unsupported bits/exceptions.  */
+-  excepts &= FE_ALL_EXCEPT;
+-
+-  /* Read the complete control word.  */
+-  _FPU_GETCW (cw);
+-
+-  /* Clear exception flag bits and cause bits.  EF bits are cleared by
+-     assigning 1 to them (and there's no way to set them); other bits
+-     are copied normally.  */
+-
+-  cw &= ~((excepts << CAUSE_SHIFT) | FE_ALL_EXCEPT);
+-  cw |= excepts;
+-
+-  /* Put the new data in effect.  */
+-  _FPU_SETFCW (cw);
+-
+-  /* Success.  */
+-  return 0;
+-}
+-
+-libm_hidden_ver (__feclearexcept, feclearexcept)
+-versioned_symbol (libm, __feclearexcept, feclearexcept, GLIBC_2_2);
+diff --git a/ports/sysdeps/am33/fpu/fedisblxcpt.c b/ports/sysdeps/am33/fpu/fedisblxcpt.c
+deleted file mode 100644
+index 170f8200ed1224fa..0000000000000000
+--- a/ports/sysdeps/am33/fpu/fedisblxcpt.c
++++ /dev/null
+@@ -1,41 +0,0 @@
+-/* Disable floating-point exceptions.
+-   Copyright (C) 2000, 2004 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>
+-   based on corresponding file in the MIPS port.
+-
+-   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 <fenv.h>
+-#include <fenv_libc.h>
+-#include <fpu_control.h>
+-
+-int
+-fedisableexcept (int excepts)
+-{
+-  fpu_control_t new_exc, old_exc;
+-
+-  /* Get the current control word.  */
+-  _FPU_GETCW (new_exc);
+-
+-  old_exc = (new_exc & ENABLE_MASK) >> ENABLE_SHIFT;
+-
+-  excepts &= FE_ALL_EXCEPT;
+-
+-  new_exc &= ~(excepts << ENABLE_SHIFT);
+-  _FPU_SETCW (new_exc);
+-
+-  return old_exc;
+-}
+diff --git a/ports/sysdeps/am33/fpu/feenablxcpt.c b/ports/sysdeps/am33/fpu/feenablxcpt.c
+deleted file mode 100644
+index fe6d880c2192fd7c..0000000000000000
+--- a/ports/sysdeps/am33/fpu/feenablxcpt.c
++++ /dev/null
+@@ -1,41 +0,0 @@
+-/* Enable floating-point exceptions.
+-   Copyright (C) 2000, 2004 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>
+-   based on corresponding file in the MIPS port.
+-
+-   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 <fenv.h>
+-#include <fenv_libc.h>
+-#include <fpu_control.h>
+-
+-int
+-feenableexcept (int excepts)
+-{
+-  fpu_control_t new_exc, old_exc;
+-
+-  /* Get the current control word.  */
+-  _FPU_GETCW (new_exc);
+-
+-  old_exc = (new_exc & ENABLE_MASK) >> ENABLE_SHIFT;
+-
+-  excepts &= FE_ALL_EXCEPT;
+-
+-  new_exc |= excepts << ENABLE_SHIFT;
+-  _FPU_SETCW (new_exc);
+-
+-  return old_exc;
+-}
+diff --git a/ports/sysdeps/am33/fpu/fegetenv.c b/ports/sysdeps/am33/fpu/fegetenv.c
+deleted file mode 100644
+index 6da6eeb91357d2d5..0000000000000000
+--- a/ports/sysdeps/am33/fpu/fegetenv.c
++++ /dev/null
+@@ -1,34 +0,0 @@
+-/* Store current floating-point environment.
+-   Copyright (C) 1998, 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>
+-   based on corresponding file in the MIPS port.
+-
+-   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 <fenv.h>
+-#include <fpu_control.h>
+-#include <shlib-compat.h>
+-
+-int
+-__fegetenv (fenv_t *envp)
+-{
+-  _FPU_GETCW (*envp);
+-
+-  /* Success.  */
+-  return 0;
+-}
+-
+-versioned_symbol (libm, __fegetenv, fegetenv, GLIBC_2_2);
+diff --git a/ports/sysdeps/am33/fpu/fegetexcept.c b/ports/sysdeps/am33/fpu/fegetexcept.c
+deleted file mode 100644
+index 13e5306af994302c..0000000000000000
+--- a/ports/sysdeps/am33/fpu/fegetexcept.c
++++ /dev/null
+@@ -1,34 +0,0 @@
+-/* Get enabled floating-point exceptions.
+-   Copyright (C) 2000, 2004 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>
+-   based on corresponding file in the MIPS port.
+-
+-   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 <fenv.h>
+-#include <fenv_libc.h>
+-#include <fpu_control.h>
+-
+-int
+-fegetexcept (void)
+-{
+-  unsigned int exc;
+-
+-  /* Get the current control word.  */
+-  _FPU_GETCW (exc);
+-
+-  return (exc & ENABLE_MASK) >> ENABLE_SHIFT;
+-}
+diff --git a/ports/sysdeps/am33/fpu/fegetround.c b/ports/sysdeps/am33/fpu/fegetround.c
+deleted file mode 100644
+index d649f18bf7c8ffe2..0000000000000000
+--- a/ports/sysdeps/am33/fpu/fegetround.c
++++ /dev/null
+@@ -1,34 +0,0 @@
+-/* Return current rounding direction.
+-   Copyright (C) 1998, 2004 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>
+-   based on corresponding file in the MIPS port.
+-
+-   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 <fenv.h>
+-#include <fenv_libc.h>
+-#include <fpu_control.h>
+-
+-int
+-fegetround (void)
+-{
+-  int cw;
+-
+-  /* Get control word.  */
+-  _FPU_GETCW (cw);
+-
+-  return (cw & ROUND_MASK);
+-}
+diff --git a/ports/sysdeps/am33/fpu/feholdexcpt.c b/ports/sysdeps/am33/fpu/feholdexcpt.c
+deleted file mode 100644
+index 1c002d8d9490364d..0000000000000000
+--- a/ports/sysdeps/am33/fpu/feholdexcpt.c
++++ /dev/null
+@@ -1,38 +0,0 @@
+-/* Store current floating-point environment and clear exceptions.
+-   Copyright (C) 2000, 2004 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>
+-   based on corresponding file in the MIPS port.
+-
+-   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 <fenv.h>
+-#include <fpu_control.h>
+-
+-int
+-feholdexcept (fenv_t *envp)
+-{
+-  fpu_control_t cw;
+-
+-  /* Save the current state.  */
+-  _FPU_GETCW (cw);
+-  *envp = cw;
+-
+-  /* Clear all exception enable bits and flags.  */
+-  cw &= ~(_FPU_MASK_V|_FPU_MASK_Z|_FPU_MASK_O|_FPU_MASK_U|_FPU_MASK_I);
+-  _FPU_SETFCW (cw);
+-
+-  return 0;
+-}
+diff --git a/ports/sysdeps/am33/fpu/fenv_libc.h b/ports/sysdeps/am33/fpu/fenv_libc.h
+deleted file mode 100644
+index 40d57259bdc3e702..0000000000000000
+--- a/ports/sysdeps/am33/fpu/fenv_libc.h
++++ /dev/null
+@@ -1,32 +0,0 @@
+-/* Copyright (C) 2000, 2002, 2004 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>
+-   based on the corresponding file in the mips port.
+-
+-   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 _FENV_LIBC_H
+-#define _FENV_LIBC_H    1
+-
+-/* Mask for enabling exceptions and for the CAUSE bits.  */
+-#define ENABLE_MASK	0x003E0U
+-#define CAUSE_MASK	0x07C00U
+-#define ROUND_MASK	0x30000U
+-
+-/* Shift for FE_* flags to get up to the ENABLE bits and the CAUSE bits.  */
+-#define	ENABLE_SHIFT	5
+-#define	CAUSE_SHIFT	10
+-
+-#endif /* _FENV_LIBC_H */
+diff --git a/ports/sysdeps/am33/fpu/fesetenv.c b/ports/sysdeps/am33/fpu/fesetenv.c
+deleted file mode 100644
+index 110c49c9f8fd780a..0000000000000000
+--- a/ports/sysdeps/am33/fpu/fesetenv.c
++++ /dev/null
+@@ -1,59 +0,0 @@
+-/* Install given floating-point environment.
+-   Copyright (C) 1998, 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>
+-   based on corresponding file in the MIPS port.
+-
+-   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 <fenv.h>
+-#include <fpu_control.h>
+-#include <shlib-compat.h>
+-
+-int
+-__fesetenv (const fenv_t *envp)
+-{
+-  fpu_control_t cw;
+-
+-  /* We want to clear all EF bits for the default end IEEE.  */
+-
+-  if (envp == FE_DFL_ENV)
+-    _FPU_SETFCW (_FPU_DEFAULT|FE_ALL_EXCEPT);
+-  else if (envp == FE_NOMASK_ENV)
+-    _FPU_SETFCW (_FPU_IEEE|FE_ALL_EXCEPT);
+-  else
+-    {
+-      fpu_control_t temp;
+-
+-      _FPU_GETCW (temp);
+-      cw = *envp;
+-
+-      /* If EF bits are cleared and the user requests them to be set,
+-	 we have to fail, because there's no way to do it.  */
+-      if (~temp & cw & FE_ALL_EXCEPT)
+-	return -1;
+-
+-      /* We clear EF bits by storing a 1 in them, so flip the
+-	 FE_ALL_EXCEPT bits.  */
+-      cw = (cw & ~FE_ALL_EXCEPT) | (~cw & FE_ALL_EXCEPT);
+-      _FPU_SETFCW (cw);
+-    }
+-
+-  /* Success.  */
+-  return 0;
+-}
+-
+-libm_hidden_ver (__fesetenv, fesetenv)
+-versioned_symbol (libm, __fesetenv, fesetenv, GLIBC_2_2);
+diff --git a/ports/sysdeps/am33/fpu/fesetround.c b/ports/sysdeps/am33/fpu/fesetround.c
+deleted file mode 100644
+index e77dc7684f93163b..0000000000000000
+--- a/ports/sysdeps/am33/fpu/fesetround.c
++++ /dev/null
+@@ -1,28 +0,0 @@
+-/* Set current rounding direction.
+-   Copyright (C) 2004 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>
+-
+-   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 <fenv.h>
+-
+-int
+-fesetround (int round)
+-{
+-  /* The only supported rounding mode is to-nearest.  Just check
+-     whether we're switching to it.  */
+-  return (round != FE_TONEAREST);
+-}
+diff --git a/ports/sysdeps/am33/fpu/feupdateenv.c b/ports/sysdeps/am33/fpu/feupdateenv.c
+deleted file mode 100644
+index 70951a36753f62b7..0000000000000000
+--- a/ports/sysdeps/am33/fpu/feupdateenv.c
++++ /dev/null
+@@ -1,46 +0,0 @@
+-/* Install given floating-point environment and raise exceptions.
+-   Copyright (C) 1998, 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>
+-   based on corresponding file in the MIPS port.
+-
+-   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 <fenv.h>
+-#include <fpu_control.h>
+-#include <shlib-compat.h>
+-
+-int
+-__feupdateenv (const fenv_t *envp)
+-{
+-  int temp;
+-
+-  /* Save current exceptions.  */
+-  _FPU_GETCW (temp);
+-  temp &= FE_ALL_EXCEPT;
+-
+-  /* Install new environment.  */
+-  fesetenv (envp);
+-
+-  /* Raise the safed exception.  Incidently for us the implementation
+-     defined format of the values in objects of type fexcept_t is the
+-     same as the ones specified using the FE_* constants.  */
+-  feraiseexcept (temp);
+-
+-  /* Success.  */
+-  return 0;
+-}
+-
+-versioned_symbol (libm, __feupdateenv, feupdateenv, GLIBC_2_2);
+diff --git a/ports/sysdeps/am33/fpu/fgetexcptflg.c b/ports/sysdeps/am33/fpu/fgetexcptflg.c
+deleted file mode 100644
+index d5828e6011a71881..0000000000000000
+--- a/ports/sysdeps/am33/fpu/fgetexcptflg.c
++++ /dev/null
+@@ -1,43 +0,0 @@
+-/* Store current representation for exceptions.
+-   Copyright (C) 1998, 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>
+-   based on corresponding file in the MIPS port.
+-
+-   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 <fenv.h>
+-#include <fpu_control.h>
+-#include <shlib-compat.h>
+-
+-int
+-__fegetexceptflag (fexcept_t *flagp, int excepts)
+-{
+-  fexcept_t temp;
+-
+-  /* Get the current exceptions.  */
+-  _FPU_GETCW (temp);
+-
+-  /* We only save the relevant bits here. In particular, care has to be 
+-     taken with the CAUSE bits, as an inadvertent restore later on could
+-     generate unexpected exceptions.  */
+-
+-  *flagp = temp & excepts & FE_ALL_EXCEPT;
+-
+-  /* Success.  */
+-  return 0;
+-}
+-
+-versioned_symbol (libm, __fegetexceptflag, fegetexceptflag, GLIBC_2_2);
+diff --git a/ports/sysdeps/am33/fpu/fpu_control.h b/ports/sysdeps/am33/fpu/fpu_control.h
+deleted file mode 100644
+index de28228e7182627e..0000000000000000
+--- a/ports/sysdeps/am33/fpu/fpu_control.h
++++ /dev/null
+@@ -1,74 +0,0 @@
+-/* FPU control word bits.  AM33/2.0 version.
+-   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004
+-   Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>
+-   based on the corresponding file in the mips port.
+-
+-   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 _FPU_CONTROL_H
+-#define _FPU_CONTROL_H
+-
+-/* AM33/2.0 FPU floating point control register bits.
+- *
+- * 31-22  -> reserved
+- * 21-18  -> floating-point condition codes (L, G, E, U)
+- * 17-16  -> rounding modes (00 is to-nearest; other values are reserved
+- * 15     -> reserved (read as 0, write with 0)
+- * 14-10  -> Exception Cause (inValid, divZero, Overflow, Underflow, Inexact)
+- *  9- 5  -> Exception Enable
+- *  4- 0  -> Exception Flag, cleared when exception cause is set
+- */
+-
+-#include <features.h>
+-#include <fenv.h>
+-
+-/* masking of interrupts */
+-#define _FPU_MASK_V     0x0200  /* Invalid operation */
+-#define _FPU_MASK_Z     0x0100  /* Division by zero  */
+-#define _FPU_MASK_O     0x0080  /* Overflow          */
+-#define _FPU_MASK_U     0x0040  /* Underflow         */
+-#define _FPU_MASK_I     0x0020  /* Inexact operation */
+-
+-/* rounding control */
+-#define _FPU_RC_NEAREST 0x0     /* Only available mode */
+-
+-#define _FPU_RESERVED 0xffc08000  /* Reserved bits in fpcr */
+-
+-
+-/* The fdlibm code requires strict IEEE double precision arithmetic,
+-   and no interrupts for exceptions, rounding to nearest.  */
+-
+-#define _FPU_DEFAULT  0x0000001f
+-
+-/* IEEE:  same as above, but exceptions */
+-#define _FPU_IEEE     0x000003ff
+-
+-/* Type of the control word.  */
+-typedef unsigned int fpu_control_t;
+-
+-/* Macros for accessing the hardware control word.  _FPU_SETCW is
+-   defined such that it won't modify the EF bits, that are cleared
+-   when assigned bits that are set.  Use SETFCW to get them actually
+-   reset.  */
+-#define _FPU_SETFCW(cw) __asm__ ("fmov %0,fpcr" : : "ri" (cw))
+-#define _FPU_SETCW(cw) _FPU_SETFCW((cw) & ~FE_ALL_EXCEPT)
+-#define _FPU_GETCW(cw) __asm__ ("fmov fpcr,%0" : "=r" (cw))
+-
+-/* Default control word set at startup.  */
+-extern fpu_control_t __fpu_control;
+-
+-#endif	/* fpu_control.h */
+diff --git a/ports/sysdeps/am33/fpu/fraiseexcpt.c b/ports/sysdeps/am33/fpu/fraiseexcpt.c
+deleted file mode 100644
+index 628ad56e9be78034..0000000000000000
+--- a/ports/sysdeps/am33/fpu/fraiseexcpt.c
++++ /dev/null
+@@ -1,78 +0,0 @@
+-/* Raise given exceptions.
+-   Copyright (C) 2000, 2002, 2004 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>
+-   based on corresponding file in the M68K port.
+-
+-   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 <fenv.h>
+-#include <float.h>
+-#include <math.h>
+-#include <shlib-compat.h>
+-
+-int
+-__feraiseexcept (int excepts)
+-{
+-  /* Raise exceptions represented by EXCEPTS.  But we must raise only one
+-     signal at a time.  It is important that if the overflow/underflow
+-     exception and the divide by zero exception are given at the same
+-     time, the overflow/underflow exception follows the divide by zero
+-     exception.  */
+-
+-  /* First: invalid exception.  */
+-  if (excepts & FE_INVALID)
+-    {
+-      /* One example of a invalid operation is 0 * Infinity.  */
+-      float x = HUGE_VALF, y = 0.0f;
+-      __asm__ __volatile__ ("fmul %1,%0" : "+f" (x) : "f" (y));
+-    }
+-
+-  /* Next: division by zero.  */
+-  if (excepts & FE_DIVBYZERO)
+-    {
+-      float x = 1.0f, y = 0.0f;
+-      __asm__ __volatile__ ("fdiv %1,%0" : "+f" (x) : "f" (y));
+-    }
+-
+-  /* Next: overflow.  */
+-  if (excepts & FE_OVERFLOW)
+-    {
+-      float x = FLT_MAX;
+-
+-      __asm__ __volatile__ ("fmul %0,%0" : "+f" (x));
+-    }
+-
+-  /* Next: underflow.  */
+-  if (excepts & FE_UNDERFLOW)
+-    {
+-      float x = -FLT_MIN;
+-
+-      __asm__ __volatile__ ("fmul %0,%0" : "+f" (x));
+-    }
+-
+-  /* Last: inexact.  */
+-  if (excepts & FE_INEXACT)
+-    {
+-      float x = 1.0f, y = 3.0f;
+-      __asm__ __volatile__ ("fdiv %1,%0" : "=f" (x) : "f" (y));
+-    }
+-
+-  /* Success.  */
+-  return 0;
+-}
+-
+-libm_hidden_ver (__feraiseexcept, feraiseexcept)
+-versioned_symbol (libm, __feraiseexcept, feraiseexcept, GLIBC_2_2);
+diff --git a/ports/sysdeps/am33/fpu/fsetexcptflg.c b/ports/sysdeps/am33/fpu/fsetexcptflg.c
+deleted file mode 100644
+index a5bde4020096076b..0000000000000000
+--- a/ports/sysdeps/am33/fpu/fsetexcptflg.c
++++ /dev/null
+@@ -1,56 +0,0 @@
+-/* Set floating-point environment exception handling.
+-   Copyright (C) 1998, 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>
+-   based on corresponding file in the MIPS port.
+-
+-   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 <fenv.h>
+-#include <fpu_control.h>
+-#include <shlib-compat.h>
+-
+-int
+-__fesetexceptflag (const fexcept_t *flagp, int excepts)
+-{
+-  fpu_control_t cw, temp;
+-
+-  /* Get the current exceptions.  */
+-  _FPU_GETCW (cw);
+-
+-  /* Make sure the flags we want restored are legal.  */
+-  excepts &= FE_ALL_EXCEPT;
+-  temp = *flagp & excepts;
+-
+-  /* If EF bits are clear and the user requests them to be set,
+-     we have to fail, because there's no way to do it.  */
+-  if (~(cw & excepts) & temp)
+-    return -1;
+-
+-  /* We clear EF bits by storing a 1 in them, so flip the
+-     FE_ALL_EXCEPT bits.  */
+-  temp = (~temp & FE_ALL_EXCEPT);
+-
+-  /* Now clear the bits called for, and copy them in from flagp. Note that
+-     we ignore all non-flag bits from *flagp, so they don't matter.  */
+-  cw = (cw & ~FE_ALL_EXCEPT) | temp;
+-
+-  _FPU_SETFCW (cw);
+-
+-  /* Success.  */
+-  return 0;
+-}
+-
+-versioned_symbol (libm, __fesetexceptflag, fesetexceptflag, GLIBC_2_2);
+diff --git a/ports/sysdeps/am33/fpu/ftestexcept.c b/ports/sysdeps/am33/fpu/ftestexcept.c
+deleted file mode 100644
+index ef3e761fcc110dd6..0000000000000000
+--- a/ports/sysdeps/am33/fpu/ftestexcept.c
++++ /dev/null
+@@ -1,33 +0,0 @@
+-/* Test exception in current environment.
+-   Copyright (C) 1998, 2004 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>
+-   based on corresponding file in the MIPS port.
+-
+-   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 <fenv.h>
+-#include <fpu_control.h>
+-
+-int
+-fetestexcept (int excepts)
+-{
+-  int cw;
+-
+-  /* Get current control word.  */
+-  _FPU_GETCW (cw);
+-
+-  return cw & excepts & FE_ALL_EXCEPT;
+-}
+diff --git a/ports/sysdeps/am33/jmpbuf-offsets.h b/ports/sysdeps/am33/jmpbuf-offsets.h
+deleted file mode 100644
+index 9884f2e3c099aeb8..0000000000000000
+--- a/ports/sysdeps/am33/jmpbuf-offsets.h
++++ /dev/null
+@@ -1,19 +0,0 @@
+-/* Private macros for accessing __jmp_buf contents.  AM33 version.
+-   Copyright (C) 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 __JMP_BUF_SP		20
+diff --git a/ports/sysdeps/am33/jmpbuf-unwind.h b/ports/sysdeps/am33/jmpbuf-unwind.h
+deleted file mode 100644
+index d5c01e27978d6ab4..0000000000000000
+--- a/ports/sysdeps/am33/jmpbuf-unwind.h
++++ /dev/null
+@@ -1,25 +0,0 @@
+-/* Examine __jmp_buf for unwinding frames.  AM33 version.
+-   Copyright (C) 2006 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Lesser General Public
+-   License as published by the Free Software Foundation; either
+-   version 2.1 of the License, or (at your option) any later version.
+-
+-   The GNU C Library is distributed in the hope that it will be useful,
+-   but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   Lesser General Public License for more details.
+-
+-   You should have received a copy of the GNU Lesser General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#include <setjmp.h>
+-#include <jmpbuf-offsets.h>
+-
+-/* Test if longjmp to JMPBUF would unwind the frame
+-   containing a local variable at ADDRESS.  */
+-#define _JMPBUF_UNWINDS(jmpbuf, address, demangle)			\
+-  ((void *) (address) < (void *) demangle (jmpbuf[__JMP_BUF_SP]))
+diff --git a/ports/sysdeps/am33/linuxthreads/pspinlock.c b/ports/sysdeps/am33/linuxthreads/pspinlock.c
+deleted file mode 100644
+index a1674974abfb749b..0000000000000000
+--- a/ports/sysdeps/am33/linuxthreads/pspinlock.c
++++ /dev/null
+@@ -1,73 +0,0 @@
+-/* POSIX spinlock implementation.  AM33 version.
+-   Copyright 2001 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 Library General Public License as
+-   published by the Free Software Foundation; either version 2 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
+-   Library General Public License for more details.
+-
+-   You should have received a copy of the GNU Library General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#include <errno.h>
+-#include <pthread.h>
+-#include "internals.h"
+-
+-int
+-__pthread_spin_lock (pthread_spinlock_t *lock)
+-{
+-  __asm__ __volatile__("1: bset %1, (%0); beq 1b"
+-		       : : "a" (lock), "d" (1) : "memory");
+-  return 0;
+-}
+-weak_alias (__pthread_spin_lock, pthread_spin_lock)
+-
+-
+-int
+-__pthread_spin_trylock (pthread_spinlock_t *lock)
+-{
+-  int oldval = 1;
+-
+-  __asm__ __volatile__ ("bset %0, (%1); beq 1f; clr %0; 1:" :
+-			"+d" (oldval) : "a" (lock) : "memory");
+-
+-  return oldval ? EBUSY : 0;
+-}
+-weak_alias (__pthread_spin_trylock, pthread_spin_trylock)
+-
+-
+-int
+-__pthread_spin_unlock (pthread_spinlock_t *lock)
+-{
+-  *lock = 0;
+-  return 0;
+-}
+-weak_alias (__pthread_spin_unlock, pthread_spin_unlock)
+-
+-
+-int
+-__pthread_spin_init (pthread_spinlock_t *lock, int pshared)
+-{
+-  /* We can ignore the `pshared' parameter.  Since we are busy-waiting
+-     all processes which can access the memory location `lock' points
+-     to can use the spinlock.  */
+-  *lock = 0;
+-  return 0;
+-}
+-weak_alias (__pthread_spin_init, pthread_spin_init)
+-
+-
+-int
+-__pthread_spin_destroy (pthread_spinlock_t *lock)
+-{
+-  /* Nothing to do.  */
+-  return 0;
+-}
+-weak_alias (__pthread_spin_destroy, pthread_spin_destroy)
+diff --git a/ports/sysdeps/am33/linuxthreads/pt-machine.h b/ports/sysdeps/am33/linuxthreads/pt-machine.h
+deleted file mode 100644
+index 86d0f8b1e1cb0e01..0000000000000000
+--- a/ports/sysdeps/am33/linuxthreads/pt-machine.h
++++ /dev/null
+@@ -1,67 +0,0 @@
+-/* Machine-dependent pthreads configuration and inline functions.
+-   am33 version.
+-   Copyright (C) 1996,1997,1998,1999,2000,2001, 2004
+-   Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>
+-   Based on ../i386/pt-machine.h.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Library General Public License as
+-   published by the Free Software Foundation; either version 2 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
+-   Library General Public License for more details.
+-
+-   You should have received a copy of the GNU Library General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#ifndef _PT_MACHINE_H
+-#define _PT_MACHINE_H	1
+-
+-#ifndef __ASSEMBLER__
+-#ifndef PT_EI
+-# define PT_EI extern inline
+-#endif
+-
+-/* Get some notion of the current stack.  Need not be exactly the top
+-   of the stack, just something somewhere in the current frame.  */
+-#define CURRENT_STACK_FRAME  __builtin_frame_address (0)
+-
+-/* Spinlock implementation; required.  */
+-PT_EI long int
+-testandset (int *spinlock)
+-{
+-  long int ret = 1;
+-
+-  /* This won't test&set the entire int, only the least significant
+-     byte.  I hope this doesn't matter, since we can't do better.  */
+-  __asm__ __volatile__ ("bset %0, %1; bne 1f; clr %0; 1:" :
+-			"+d" (ret), "+m" (*(volatile int *)spinlock));
+-
+-  return ret;
+-}
+-
+-
+-PT_EI int
+-get_eflags (void)
+-{
+-  int res;
+-  __asm__ __volatile__ ("mov psw,%0" : "=d" (res));
+-  return res;
+-}
+-
+-
+-PT_EI void
+-set_eflags (int newflags)
+-{
+-  __asm__ __volatile__ ("mov %0,psw" : : "d" (newflags) : "cc");
+-}
+-
+-#endif /* __ASSEMBLER__ */
+-
+-#endif /* pt-machine.h */
+diff --git a/ports/sysdeps/am33/memusage.h b/ports/sysdeps/am33/memusage.h
+deleted file mode 100644
+index 19d7a732ca41c078..0000000000000000
+--- a/ports/sysdeps/am33/memusage.h
++++ /dev/null
+@@ -1,22 +0,0 @@
+-/* Copyright 2000, 2001 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 GETSP() ({ uintptr_t stack_ptr; \
+-		   asm ("mov sp,%0" : "=a" (stack_ptr)); \
+-		   stack_ptr; })
+-
+-#include <sysdeps/generic/memusage.h>
+diff --git a/ports/sysdeps/am33/preconfigure b/ports/sysdeps/am33/preconfigure
+deleted file mode 100644
+index 9495465389764b09..0000000000000000
+--- a/ports/sysdeps/am33/preconfigure
++++ /dev/null
+@@ -1,5 +0,0 @@
+-case "$machine" in
+-am33*)
+-  base_machine=am33 machine=am33
+-  ;;
+-esac
+diff --git a/ports/sysdeps/am33/setjmp.S b/ports/sysdeps/am33/setjmp.S
+deleted file mode 100644
+index 54b239d65c3a4f3a..0000000000000000
+--- a/ports/sysdeps/am33/setjmp.S
++++ /dev/null
+@@ -1,79 +0,0 @@
+-/* setjmp for am33.
+-   Copyright (C) 2001, 2004 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Lesser General Public
+-   License as published by the Free Software Foundation; either
+-   version 2.1 of the License, or (at your option) any later version.
+-
+-   The GNU C Library is distributed in the hope that it will be useful,
+-   but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   Lesser General Public License for more details.
+-
+-   You should have received a copy of the GNU Lesser General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#include <sysdep.h>
+-#define _ASM
+-#define _SETJMP_H
+-#include <bits/setjmp.h>
+-#include <asm-syntax.h>
+-
+-
+-ENTRY (__sigsetjmp)
+-.Lsigsetjmp:
+-	/* Save registers.  */
+-	mov d0,a0
+-	mov d2,(0,a0)
+-	mov d3,(4,a0)
+-	mov mdr,d0
+-	mov d0,(8,a0)
+-	/* Restore d0 for __sigjmp_save.  */
+-	mov a0,d0
+-	mov a2,(12,a0)
+-	mov a3,(16,a0)
+-	mov sp,a1
+-	mov a1,(20,a0)
+-	add 24,a0
+-	mov r4,(a0+)
+-	mov r5,(a0+)
+-	mov r6,(a0+)
+-	mov r7,(a0+)
+-#ifdef __AM33_2__
+-	fmov fs4,(a0+)
+-	fmov fs5,(a0+)
+-	fmov fs6,(a0+)
+-	fmov fs7,(a0+)
+-	fmov fs8,(a0+)
+-	fmov fs9,(a0+)
+-	fmov fs10,(a0+)
+-	fmov fs11,(a0+)
+-	fmov fs12,(a0+)
+-	fmov fs13,(a0+)
+-	fmov fs14,(a0+)
+-	fmov fs15,(a0+)
+-	fmov fs16,(a0+)
+-	fmov fs17,(a0+)
+-	fmov fs18,(a0+)
+-	fmov fs19,(a0+)
+-#endif
+-	/* Make a tail call to __sigjmp_save; it takes the same args.  */
+-	jmp __sigjmp_save
+-END (__sigsetjmp)
+-
+-/* BSD `_setjmp' entry point to `sigsetjmp (..., 1)'.  */
+-ENTRY (setjmp)
+-	/* Tail-call setsetjmp with savesigs==1.  */
+-	mov 1,d1
+-	bra .Lsigsetjmp
+-END (setjmp)
+-
+-/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'.  */
+-ENTRY (_setjmp)
+-	/* Tail-call setsetjmp with savesigs==0.  */
+-	clr d1
+-	bra .Lsigsetjmp
+-END (_setjmp)
+diff --git a/ports/sysdeps/am33/shlib-versions b/ports/sysdeps/am33/shlib-versions
+deleted file mode 100644
+index ad6ded9dc4d755eb..0000000000000000
+--- a/ports/sysdeps/am33/shlib-versions
++++ /dev/null
+@@ -1 +0,0 @@
+-am33.*-.*-linux.*	DEFAULT			GLIBC_2.2.5
+diff --git a/ports/sysdeps/am33/stackinfo.h b/ports/sysdeps/am33/stackinfo.h
+deleted file mode 100644
+index c7a7977773458663..0000000000000000
+--- a/ports/sysdeps/am33/stackinfo.h
++++ /dev/null
+@@ -1,27 +0,0 @@
+-/* Copyright 2001 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/>.  */
+-
+-/* This file contains a bit of information about the stack allocation
+-   of the processor.  */
+-
+-#ifndef _STACKINFO_H
+-#define _STACKINFO_H	1
+-
+-/* On am33 the stack grows down.  */
+-#define _STACK_GROWS_DOWN	1
+-
+-#endif	/* stackinfo.h */
+diff --git a/ports/sysdeps/am33/sys/ucontext.h b/ports/sysdeps/am33/sys/ucontext.h
+deleted file mode 100644
+index 1615b6368c9530c0..0000000000000000
+--- a/ports/sysdeps/am33/sys/ucontext.h
++++ /dev/null
+@@ -1,122 +0,0 @@
+-/* Copyright 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Library General Public License as
+-   published by the Free Software Foundation; either version 2 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
+-   Library General Public License for more details.
+-
+-   You should have received a copy of the GNU Library General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-/* AM33/2.0 context switching support.  */
+-
+-#ifndef _SYS_UCONTEXT_H
+-#define _SYS_UCONTEXT_H	1
+-
+-#include <features.h>
+-#include <signal.h>
+-
+-/* Type for general register.  */
+-typedef int greg_t;
+-
+-/* Number of general registers.  */
+-#define NGREG	28
+-
+-/* Container for all general registers.  */
+-typedef greg_t gregset_t[NGREG];
+-
+-/* Number of each register is the `gregset_t' array.  */
+-enum
+-{
+-  REG_D0 = 0,
+-#define REG_D0	REG_D0
+-  REG_D1,
+-#define REG_D1	REG_D1
+-  REG_D2,
+-#define REG_D2	REG_D2
+-  REG_D3,
+-#define REG_D3	REG_D3
+-  REG_A0,
+-#define REG_A0	REG_A0
+-  REG_A1,
+-#define REG_A1	REG_A1
+-  REG_A2,
+-#define REG_A2	REG_A2
+-  REG_A3,
+-#define REG_A3	REG_A3
+-  REG_E0,
+-#define REG_E0	REG_E0
+-  REG_E1,
+-#define REG_E1	REG_E1
+-  REG_E2,
+-#define REG_E2	REG_E2
+-  REG_E3,
+-#define REG_E3	REG_E3
+-  REG_E4,
+-#define REG_E4	REG_E4
+-  REG_E5,
+-#define REG_E5	REG_E5
+-  REG_E6,
+-#define REG_E6	REG_E6
+-  REG_E7,
+-#define REG_E7	REG_E7
+-  REG_LAR,
+-#define REG_LAR	REG_LAR
+-  REG_LIR,
+-#define REG_LIR	REG_LIR
+-  REG_MDR,
+-#define REG_MDR	REG_MDR
+-  REG_MCVF,
+-#define REG_MCVF	REG_MCVF
+-  REG_MCRL,
+-#define REG_MCRL	REG_MCRL
+-  REG_MCRH,
+-#define REG_MCRH	REG_MCRH
+-  REG_MDRQ,
+-#define REG_MDRQ	REG_MDRQ
+-  REG_SP,
+-#define REG_SP	REG_SP
+-  REG_EPSW,
+-#define REG_EPSW	REG_EPSW
+-  REG_PC,
+-#define REG_PC	REG_PC
+-};
+-
+-typedef int freg_t;
+-
+-/* Structure to describe FPU registers.  */
+-typedef struct {
+-  union {
+-    double fp_dregs[16];
+-    float fp_fregs[32];
+-    freg_t fp_regs[32];
+-  } regs;
+-  freg_t fpcr;
+-} fpregset_t;
+-
+-/* Context to describe whole processor state.  */
+-typedef struct
+-  {
+-    gregset_t gregs;
+-    fpregset_t fpregs;
+-  } mcontext_t;
+-
+-/* Userlevel context.  */
+-typedef struct ucontext
+-  {
+-    unsigned long int uc_flags;
+-    struct ucontext *uc_link;
+-    __sigset_t uc_sigmask;
+-    stack_t uc_stack;
+-    mcontext_t uc_mcontext;
+-    long int uc_filler[5];
+-  } ucontext_t;
+-
+-#endif /* sys/ucontext.h */
+diff --git a/ports/sysdeps/am33/sysdep.h b/ports/sysdeps/am33/sysdep.h
+deleted file mode 100644
+index 2ddb656957b5bc8f..0000000000000000
+--- a/ports/sysdeps/am33/sysdep.h
++++ /dev/null
+@@ -1,81 +0,0 @@
+-/* Copyright 2001 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>.
+-   Based on ../i386/sysdep.h.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Library General Public License as
+-   published by the Free Software Foundation; either version 2 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
+-   Library General Public License for more details.
+-
+-   You should have received a copy of the GNU Library General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#include <sysdeps/generic/sysdep.h>
+-
+-#ifdef	__ASSEMBLER__
+-
+-/* Syntactic details of assembler.  */
+-
+-#ifdef HAVE_ELF
+-/* For ELF we need the `.type' directive to make shared libs work right.  */
+-#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,typearg;
+-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name;
+-
+-/* In ELF C symbols are asm symbols.  */
+-#undef	NO_UNDERSCORES
+-#define NO_UNDERSCORES
+-#else
+-#define ASM_TYPE_DIRECTIVE(name,type)	/* Nothing is specified.  */
+-#define ASM_SIZE_DIRECTIVE(name)	/* Nothing is specified.  */
+-#endif
+-
+-/* Define an entry point visible from C.  */
+-#define	ENTRY(name)							      \
+-  ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name);				      \
+-  ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function)			      \
+-  C_LABEL(name)								      \
+-  CALL_MCOUNT
+-
+-#undef	END
+-#define END(name)							      \
+-  ASM_SIZE_DIRECTIVE(name)						      \
+-
+-/* If compiled for profiling, call `mcount' at the start of each function.  */
+-#ifdef	PROF
+-/* The mcount code relies on a normal frame pointer being on the stack
+-   to locate our caller, so push one just for its benefit.  */
+-#define CALL_MCOUNT \
+-  movm [a3],(sp); mov sp,a3; add -12,sp; \
+-  call JUMPTARGET(mcount),[],0; add 12,sp; movm (sp),[a3];
+-#else
+-#define CALL_MCOUNT		/* Do nothing.  */
+-#endif
+-
+-#ifdef	NO_UNDERSCORES
+-/* Since C identifiers are not normally prefixed with an underscore
+-   on this system, the asm identifier `syscall_error' intrudes on the
+-   C name space.  Make sure we use an innocuous name.  */
+-#define	syscall_error	__syscall_error
+-#define mcount		_mcount
+-#endif
+-
+-#undef JUMPTARGET
+-#ifdef PIC
+-#define JUMPTARGET(name)	name##@PLT
+-#else
+-#define JUMPTARGET(name)	name
+-#endif
+-
+-/* Local label name for asm code. */
+-#ifndef L
+-#define L(name)		name
+-#endif
+-
+-#endif	/* __ASSEMBLER__ */
+diff --git a/ports/sysdeps/am33/tininess.h b/ports/sysdeps/am33/tininess.h
+deleted file mode 100644
+index 1db37790f881a73f..0000000000000000
+--- a/ports/sysdeps/am33/tininess.h
++++ /dev/null
+@@ -1 +0,0 @@
+-#define TININESS_AFTER_ROUNDING	1
+diff --git a/ports/sysdeps/unix/am33/sysdep.S b/ports/sysdeps/unix/am33/sysdep.S
+deleted file mode 100644
+index 26740c2404d6f00d..0000000000000000
+--- a/ports/sysdeps/unix/am33/sysdep.S
++++ /dev/null
+@@ -1,63 +0,0 @@
+-/* Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2000, 2001
+-   Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>.
+-   Based on ../i386/sysdep.S.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Library General Public License as
+-   published by the Free Software Foundation; either version 2 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
+-   Library General Public License for more details.
+-
+-   You should have received a copy of the GNU Library General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#include <sysdep.h>
+-#define _ERRNO_H
+-#include <bits/errno.h>
+-
+-.globl C_SYMBOL_NAME(errno)
+-.globl syscall_error
+-
+-#undef syscall_error
+-#ifdef NO_UNDERSCORES
+-__syscall_error:
+-#else
+-syscall_error:
+-#endif
+-#if defined (EWOULDBLOCK_sys) && EWOULDBLOCK_sys != EAGAIN
+-	/* We translate the system's EWOULDBLOCK error into EAGAIN.
+-	   The GNU C library always defines EWOULDBLOCK==EAGAIN.
+-	   EWOULDBLOCK_sys is the original number.  */
+-	cmp EWOULDBLOCK_sys,d0	/* Is it the old EWOULDBLOCK?  */
+-	bne .Lnotb		/* Branch if not.  */
+-	mov EAGAIN,d0		/* Yes; translate it to EAGAIN.  */
+-.Lnotb:
+-#endif
+-#ifndef	PIC
+-# ifndef _LIBC_REENTRANT
+-	mov d0,(C_SYMBOL_NAME (errno))
+-# else
+-	movm [d2],(sp)
+-	add -12,sp
+-	mov d0,d2
+-	call __errno_location,[],0
+-	mov d2,(a0)
+-	add 12,sp
+-	movm (sp),[d2]
+-# endif
+-#else
+-# error "This shouldn't be assembled for PIC"
+-#endif
+-	mov -1,d0
+-	mov d0,a0
+-	ret
+-
+-#undef	__syscall_error
+-END (__syscall_error)
+diff --git a/ports/sysdeps/unix/am33/sysdep.h b/ports/sysdeps/unix/am33/sysdep.h
+deleted file mode 100644
+index dff1baebf4667ed6..0000000000000000
+--- a/ports/sysdeps/unix/am33/sysdep.h
++++ /dev/null
+@@ -1,32 +0,0 @@
+-/* Copyright 2001 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>.
+-   Based on ../i386/sysdep.h.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Library General Public License as
+-   published by the Free Software Foundation; either version 2 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
+-   Library General Public License for more details.
+-
+-   You should have received a copy of the GNU Library General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#include <sysdeps/unix/sysdep.h>
+-#include "../../am33/sysdep.h"
+-
+-#ifdef	__ASSEMBLER__
+-
+-#define	r0		d0	/* Normal return-value register.  */
+-#define	r1		!!!!	/* Secondary return-value register.  */
+-#define scratch 	d1	/* Call-clobbered register for random use.  */
+-#define MOVE(x,y)	mov x, y
+-
+-#define ret		ret [],0
+-
+-#endif	/* __ASSEMBLER__ */
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/Makefile b/ports/sysdeps/unix/sysv/linux/am33/Makefile
+deleted file mode 100644
+index ece39e8a4cee3f3e..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/Makefile
++++ /dev/null
+@@ -1,3 +0,0 @@
+-ifeq ($(subdir),misc)
+-sysdep_routines += setfsgid setfsuid
+-endif
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/bits/fcntl.h b/ports/sysdeps/unix/sysv/linux/am33/bits/fcntl.h
+deleted file mode 100644
+index 33b8bcd37e149f3c..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/bits/fcntl.h
++++ /dev/null
+@@ -1,180 +0,0 @@
+-/* O_*, F_*, FD_* bit values for Linux.
+-   Copyright (C) 1995, 1996, 1997, 1998, 2000, 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 Library General Public License as
+-   published by the Free Software Foundation; either version 2 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
+-   Library General Public License for more details.
+-
+-   You should have received a copy of the GNU Library General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#ifndef	_FCNTL_H
+-# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
+-#endif
+-
+-
+-#include <sys/types.h>
+-
+-/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
+-   located on an ext2 file system */
+-#define O_ACCMODE	   0003
+-#define O_RDONLY	     00
+-#define O_WRONLY	     01
+-#define O_RDWR		     02
+-#define O_CREAT		   0100	/* not fcntl */
+-#define O_EXCL		   0200	/* not fcntl */
+-#define O_NOCTTY	   0400	/* not fcntl */
+-#define O_TRUNC		  01000	/* not fcntl */
+-#define O_APPEND	  02000
+-#define O_NONBLOCK	  04000
+-#define O_NDELAY	O_NONBLOCK
+-#define O_SYNC		 010000
+-#define O_FSYNC		 O_SYNC
+-#define O_ASYNC		 020000
+-
+-#ifdef __USE_GNU
+-# define O_DIRECT	 040000	/* Direct disk access.	*/
+-# define O_DIRECTORY	0200000	/* Must be a directory.	 */
+-# define O_NOFOLLOW	0400000	/* Do not follow links.	 */
+-#endif
+-
+-/* For now Linux has synchronisity options for data and read operations.
+-   We define the symbols here but let them do the same as O_SYNC since
+-   this is a superset.	*/
+-#if defined __USE_POSIX199309 || defined __USE_UNIX98
+-# define O_DSYNC	O_SYNC	/* Synchronize data.  */
+-# define O_RSYNC	O_SYNC	/* Synchronize read operations.	 */
+-#endif
+-
+-#ifdef __USE_LARGEFILE64
+-# define O_LARGEFILE	0100000
+-#endif
+-
+-/* Values for the second argument to `fcntl'.  */
+-#define F_DUPFD		0	/* Duplicate file descriptor.  */
+-#define F_GETFD		1	/* Get file descriptor flags.  */
+-#define F_SETFD		2	/* Set file descriptor flags.  */
+-#define F_GETFL		3	/* Get file status flags.  */
+-#define F_SETFL		4	/* Set file status flags.  */
+-#ifndef __USE_FILE_OFFSET64
+-# define F_GETLK	5	/* Get record locking info.  */
+-# define F_SETLK	6	/* Set record locking info (non-blocking).  */
+-# define F_SETLKW	7	/* Set record locking info (blocking).	*/
+-#else
+-# define F_GETLK	F_GETLK64  /* Get record locking info.	*/
+-# define F_SETLK	F_SETLK64  /* Set record locking info (non-blocking).*/
+-# define F_SETLKW	F_SETLKW64 /* Set record locking info (blocking).  */
+-#endif
+-#define F_GETLK64	12	/* Get record locking info.  */
+-#define F_SETLK64	13	/* Set record locking info (non-blocking).  */
+-#define F_SETLKW64	14	/* Set record locking info (blocking).	*/
+-
+-#if defined __USE_BSD || defined __USE_XOPEN2K
+-# define F_SETOWN	8	/* Get owner of socket (receiver of SIGIO).  */
+-# define F_GETOWN	9	/* Set owner of socket (receiver of SIGIO).  */
+-#endif
+-
+-#ifdef __USE_GNU
+-# define F_SETSIG	10	/* Set number of signal to be sent.  */
+-# define F_GETSIG	11	/* Get number of signal to be sent.  */
+-#endif
+-
+-#ifdef __USE_GNU
+-# define F_SETLEASE	1024	/* Set a lease.	 */
+-# define F_GETLEASE	1025	/* Enquire what lease is active.  */
+-# define F_NOTIFY	1026	/* Request notfications on a directory.	 */
+-# define F_DUPFD_CLOEXEC 1030	/* Duplicate file descriptor with
+-				   close-on-exit set.  */
+-#endif
+-
+-/* For F_[GET|SET]FD.  */
+-#define FD_CLOEXEC	1	/* actually anything with low bit set goes */
+-
+-/* For posix fcntl() and `l_type' field of a `struct flock' for lockf().  */
+-#define F_RDLCK		0	/* Read lock.  */
+-#define F_WRLCK		1	/* Write lock.	*/
+-#define F_UNLCK		2	/* Remove lock.	 */
+-
+-/* For old implementation of bsd flock().  */
+-#define F_EXLCK		4	/* or 3 */
+-#define F_SHLCK		8	/* or 4 */
+-
+-#ifdef __USE_BSD
+-/* Operations for bsd flock(), also used by the kernel implementation.	*/
+-# define LOCK_SH	1	/* shared lock */
+-# define LOCK_EX	2	/* exclusive lock */
+-# define LOCK_NB	4	/* or'd with one of the above to prevent
+-				   blocking */
+-# define LOCK_UN	8	/* remove lock */
+-#endif
+-
+-#ifdef __USE_GNU
+-# define LOCK_MAND	32	/* This is a mandatory flock:	*/
+-# define LOCK_READ	64	/* ... which allows concurrent read operations.	 */
+-# define LOCK_WRITE	128	/* ... which allows concurrent write operations.  */
+-# define LOCK_RW	192	/* ... Which allows concurrent read & write operations.	 */
+-#endif
+-
+-#ifdef __USE_GNU
+-/* Types of directory notifications that may be requested with F_NOTIFY.  */
+-# define DN_ACCESS	0x00000001	/* File accessed.  */
+-# define DN_MODIFY	0x00000002	/* File modified.  */
+-# define DN_CREATE	0x00000004	/* File created.  */
+-# define DN_DELETE	0x00000008	/* File removed.  */
+-# define DN_RENAME	0x00000010	/* File renamed.  */
+-# define DN_ATTRIB	0x00000020	/* File changed attibutes.  */
+-# define DN_MULTISHOT	0x80000000	/* Don't remove notifier.  */
+-#endif
+-
+-struct flock
+-  {
+-    short int l_type;	/* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.	*/
+-    short int l_whence;	/* Where `l_start' is relative to (like `lseek').  */
+-#ifndef __USE_FILE_OFFSET64
+-    __off_t l_start;	/* Offset where the lock begins.  */
+-    __off_t l_len;	/* Size of the locked area; zero means until EOF.  */
+-#else
+-    __off64_t l_start;	/* Offset where the lock begins.  */
+-    __off64_t l_len;	/* Size of the locked area; zero means until EOF.  */
+-#endif
+-    __pid_t l_pid;	/* Process holding the lock.  */
+-  };
+-
+-#ifdef __USE_LARGEFILE64
+-struct flock64
+-  {
+-    short int l_type;	/* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.	*/
+-    short int l_whence;	/* Where `l_start' is relative to (like `lseek').  */
+-    __off64_t l_start;	/* Offset where the lock begins.  */
+-    __off64_t l_len;	/* Size of the locked area; zero means until EOF.  */
+-    __pid_t l_pid;	/* Process holding the lock.  */
+-  };
+-#endif
+-
+-/* Define some more compatibility macros to be backward compatible with
+-   BSD systems which did not managed to hide these kernel macros.  */
+-#ifdef	__USE_BSD
+-# define FAPPEND	O_APPEND
+-# define FFSYNC		O_FSYNC
+-# define FASYNC		O_ASYNC
+-# define FNONBLOCK	O_NONBLOCK
+-# define FNDELAY	O_NDELAY
+-#endif /* Use BSD.  */
+-
+-/* Advise to `posix_fadvise'.  */
+-#ifdef __USE_XOPEN2K
+-# define POSIX_FADV_NORMAL	0 /* No further special treatment.  */
+-# define POSIX_FADV_RANDOM	1 /* Expect random page references.  */
+-# define POSIX_FADV_SEQUENTIAL	2 /* Expect sequential page references.	 */
+-# define POSIX_FADV_WILLNEED	3 /* Will need these pages.  */
+-# define POSIX_FADV_DONTNEED	4 /* Don't need these pages.  */
+-# define POSIX_FADV_NOREUSE	5 /* Data will be accessed once.  */
+-#endif
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/bits/mman.h b/ports/sysdeps/unix/sysv/linux/am33/bits/mman.h
+deleted file mode 100644
+index 763b060e667097c6..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/bits/mman.h
++++ /dev/null
+@@ -1,96 +0,0 @@
+-/* Definitions for POSIX memory map interface.  Linux/AM33 version.
+-   Copyright (C) 1997, 2000, 2001, 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 Library General Public License as
+-   published by the Free Software Foundation; either version 2 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
+-   Library General Public License for more details.
+-
+-   You should have received a copy of the GNU Library General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#ifndef _SYS_MMAN_H
+-# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+-#endif
+-
+-/* The following definitions basically come from the kernel headers.
+-   But the kernel header is not namespace clean.  */
+-
+-
+-/* Protections are chosen from these bits, OR'd together.  The
+-   implementation does not necessarily support PROT_EXEC or PROT_WRITE
+-   without PROT_READ.  The only guarantees are that no writing will be
+-   allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */
+-
+-#define PROT_READ	0x1		/* Page can be read.  */
+-#define PROT_WRITE	0x2		/* Page can be written.  */
+-#define PROT_EXEC	0x4		/* Page can be executed.  */
+-#define PROT_NONE	0x0		/* Page can not be accessed.  */
+-#define PROT_GROWSDOWN	  0x01000000	/* Extend change to start of
+-					   growsdown vma (mprotect only).  */
+-#define PROT_GROWSUP	  0x02000000	/* Extend change to start of
+-					   growsup vma (mprotect only).  */
+-
+-/* Sharing types (must choose one and only one of these).  */
+-#define MAP_SHARED	0x01		/* Share changes.  */
+-#define MAP_PRIVATE	0x02		/* Changes are private.  */
+-#ifdef __USE_MISC
+-# define MAP_TYPE	0x0f		/* Mask for type of mapping.  */
+-#endif
+-
+-/* Other flags.  */
+-#define MAP_FIXED	0x10		/* Interpret addr exactly.  */
+-#ifdef __USE_MISC
+-# define MAP_FILE	0
+-# define MAP_ANONYMOUS	0x20		/* Don't use a file.  */
+-# define MAP_ANON	MAP_ANONYMOUS
+-#endif
+-
+-/* These are Linux-specific.  */
+-#ifdef __USE_MISC
+-# define MAP_GROWSDOWN	0x0100		/* Stack-like segment.  */
+-# define MAP_DENYWRITE	0x0800		/* ETXTBSY */
+-# define MAP_EXECUTABLE	0x1000		/* Mark it as an executable.  */
+-# define MAP_LOCKED	0x2000		/* Lock the mapping.  */
+-# define MAP_NORESERVE	0x4000		/* Don't check for reservations.  */
+-#endif
+-
+-/* Flags to `msync'.  */
+-#define MS_ASYNC	1		/* Sync memory asynchronously.  */
+-#define MS_SYNC		4		/* Synchronous memory sync.  */
+-#define MS_INVALIDATE	2		/* Invalidate the caches.  */
+-
+-/* Flags for `mlockall'.  */
+-#define MCL_CURRENT	1		/* Lock all currently mapped pages.  */
+-#define MCL_FUTURE	2		/* Lock all additions to address
+-					   space.  */
+-
+-/* Flags for `mremap'.  */
+-#ifdef __USE_GNU
+-# define MREMAP_MAYMOVE	1
+-#endif
+-
+-/* Advice to `madvise'.  */
+-#ifdef __USE_BSD
+-# define MADV_NORMAL	 0	/* No further special treatment.  */
+-# define MADV_RANDOM	 1	/* Expect random page references.  */
+-# define MADV_SEQUENTIAL 2	/* Expect sequential page references.  */
+-# define MADV_WILLNEED	 3	/* Will need these pages.  */
+-# define MADV_DONTNEED	 4	/* Don't need these pages.  */
+-#endif
+-
+-/* The POSIX people had to invent similar names for the same things.  */
+-#ifdef __USE_XOPEN2K
+-# define POSIX_MADV_NORMAL	0 /* No further special treatment.  */
+-# define POSIX_MADV_RANDOM	1 /* Expect random page references.  */
+-# define POSIX_MADV_SEQUENTIAL	2 /* Expect sequential page references.  */
+-# define POSIX_MADV_WILLNEED	3 /* Will need these pages.  */
+-# define POSIX_MADV_DONTNEED	4 /* Don't need these pages.  */
+-#endif
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/brk.c b/ports/sysdeps/unix/sysv/linux/am33/brk.c
+deleted file mode 100644
+index dc7ec639b3a558c0..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/brk.c
++++ /dev/null
+@@ -1,45 +0,0 @@
+-/* brk system call for Linux/am33.
+-   Copyright (C) 1995, 1996, 2000 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>.
+-   Based on ../i386/brk.c.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Library General Public License as
+-   published by the Free Software Foundation; either version 2 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
+-   Library General Public License for more details.
+-
+-   You should have received a copy of the GNU Library General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#include <errno.h>
+-#include <unistd.h>
+-#include <sysdep.h>
+-
+-/* This must be initialized data because commons can't have aliases.  */
+-void *__curbrk = 0;
+-
+-int
+-__brk (void *addr)
+-{
+-  void *newbrk;
+-
+-  newbrk = INLINE_SYSCALL (brk, 1, addr);
+-
+-  __curbrk = newbrk;
+-
+-  if (newbrk < addr)
+-    {
+-      __set_errno (ENOMEM);
+-      return -1;
+-    }
+-
+-  return 0;
+-}
+-weak_alias (__brk, brk)
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/chown.c b/ports/sysdeps/unix/sysv/linux/am33/chown.c
+deleted file mode 100644
+index 819923eb4971ad16..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/chown.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/chown.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/clone.S b/ports/sysdeps/unix/sysv/linux/am33/clone.S
+deleted file mode 100644
+index e014c4ace94b71b6..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/clone.S
++++ /dev/null
+@@ -1,80 +0,0 @@
+-/* Copyright 2001 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>.
+-   Based on ../i386/clone.S.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Library General Public License as
+-   published by the Free Software Foundation; either version 2 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
+-   Library General Public License for more details.
+-
+-   You should have received a copy of the GNU Library General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-/* clone() is even more special than fork() as it mucks with stacks
+-   and invokes a function in the right context after its all over.  */
+-
+-#include <sysdep.h>
+-#define _ERRNO_H	1
+-#include <bits/errno.h>
+-#include <asm-syntax.h>
+-#include <bp-sym.h>
+-
+-/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg); */
+-
+-        .text
+-ENTRY (BP_SYM (__clone))
+-	/* Sanity check arguments.  */
+-	cmp	0,d0	/* no NULL function pointers */
+-	beq	L(error_inval)
+-	cmp	0,d1	/* no NULL stack pointers */
+-	beq	L(error_inval)
+-
+-	/* Allocate room for a function call in the new stack, and
+-	   store fn and arg in it.  They will be read back in
+-	   thread_start.  */
+-	mov	d1,a0
+-	sub	12,a0
+-	mov	d0,(a0)
+-	mov	(16,sp),d1
+-	mov	d1,(4,a0)
+-
+-	/* Do the system call */
+-	mov	a0,d1
+-	mov	(12,sp),a0
+-	mov	SYS_ify(clone),d0
+-	syscall	0
+-
+-	cmp	0,d0
+-	beq	thread_start
+-	blt	L(to_SYSCALL_ERROR_LABEL)
+-
+-L(pseudo_end):
+-	ret
+-
+-L(error_inval):
+-	mov	-EINVAL,d0
+-L(to_SYSCALL_ERROR_LABEL):
+-	jmp	SYSCALL_ERROR_LABEL
+-
+-thread_start:
+-	mov	0,a3	/* terminate the stack frame */
+-	mov	(4,sp),d0
+-	mov	(sp),a0
+-	calls	(a0)
+-#ifdef PIC
+-L(here):
+-	mov	pc,a2
+-	add	_GLOBAL_OFFSET_TABLE_-(L(here) - .),a2
+-#endif
+-	call	JUMPTARGET (_exit),[],0
+-
+-PSEUDO_END (BP_SYM (__clone))
+-
+-weak_alias (BP_SYM (__clone), BP_SYM (clone))
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/configure b/ports/sysdeps/unix/sysv/linux/am33/configure
+deleted file mode 100644
+index 870c6a79299f161e..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/configure
++++ /dev/null
+@@ -1,4 +0,0 @@
+-# This file is generated from configure.in by Autoconf.  DO NOT EDIT!
+- # Local configure fragment for am33/sysdeps/unix/sysv/linux/am33
+-
+-arch_minimum_kernel=2.6.25
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/configure.in b/ports/sysdeps/unix/sysv/linux/am33/configure.in
+deleted file mode 100644
+index 43e33f74ca823331..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/configure.in
++++ /dev/null
+@@ -1,4 +0,0 @@
+-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+-# Local configure fragment for am33/sysdeps/unix/sysv/linux/am33
+-
+-arch_minimum_kernel=2.6.25
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/fchown.c b/ports/sysdeps/unix/sysv/linux/am33/fchown.c
+deleted file mode 100644
+index 3a69ecc9e7dec0d4..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/fchown.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/fchown.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/fcntl.c b/ports/sysdeps/unix/sysv/linux/am33/fcntl.c
+deleted file mode 100644
+index ea951bc4f931fad3..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/fcntl.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/fcntl.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/fxstat.c b/ports/sysdeps/unix/sysv/linux/am33/fxstat.c
+deleted file mode 100644
+index 4f219f0b9dfa95de..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/fxstat.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/fxstat.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/getegid.c b/ports/sysdeps/unix/sysv/linux/am33/getegid.c
+deleted file mode 100644
+index 37b4b4a530503613..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/getegid.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/getegid.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/geteuid.c b/ports/sysdeps/unix/sysv/linux/am33/geteuid.c
+deleted file mode 100644
+index ebcb555b5e321b50..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/geteuid.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/geteuid.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/getgid.c b/ports/sysdeps/unix/sysv/linux/am33/getgid.c
+deleted file mode 100644
+index 0a4d6061f08b9a02..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/getgid.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/getgid.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/getgroups.c b/ports/sysdeps/unix/sysv/linux/am33/getgroups.c
+deleted file mode 100644
+index 20a7166103ad24e4..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/getgroups.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/getgroups.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/getmsg.c b/ports/sysdeps/unix/sysv/linux/am33/getmsg.c
+deleted file mode 100644
+index 3a1fa0852504b0ce..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/getmsg.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/getmsg.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/getresgid.c b/ports/sysdeps/unix/sysv/linux/am33/getresgid.c
+deleted file mode 100644
+index b703a414cc2a2b07..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/getresgid.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/getresgid.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/getresuid.c b/ports/sysdeps/unix/sysv/linux/am33/getresuid.c
+deleted file mode 100644
+index 0b14cefe34668cd6..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/getresuid.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/getresuid.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/getuid.c b/ports/sysdeps/unix/sysv/linux/am33/getuid.c
+deleted file mode 100644
+index d682c79a49289efb..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/getuid.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/getuid.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/lchown.c b/ports/sysdeps/unix/sysv/linux/am33/lchown.c
+deleted file mode 100644
+index c89de99ba235bf45..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/lchown.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/lchown.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/linuxthreads/sysdep-cancel.h b/ports/sysdeps/unix/sysv/linux/am33/linuxthreads/sysdep-cancel.h
+deleted file mode 100644
+index 101cab0b17170d07..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/linuxthreads/sysdep-cancel.h
++++ /dev/null
+@@ -1,158 +0,0 @@
+-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Lesser General Public
+-   License as published by the Free Software Foundation; either
+-   version 2.1 of the License, or (at your option) any later version.
+-
+-   The GNU C Library is distributed in the hope that it will be useful,
+-   but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   Lesser General Public License for more details.
+-
+-   You should have received a copy of the GNU Lesser General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#include <sysdep.h>
+-#include <tls.h>
+-#include <pt-machine.h>
+-#ifndef __ASSEMBLER__
+-# include <linuxthreads/internals.h>
+-#endif
+-
+-#if IS_IN (libc) || IS_IN (libpthread) || IS_IN (librt)
+-
+-# undef PSEUDO
+-# define PSEUDO(name, syscall_name, args)				\
+-  .text	;								\
+- ENTRY (name)								\
+-  PUSHARGS_##args							\
+-  DOARGS_##args								\
+-  SINGLE_THREAD_P;							\
+-  bne L(pseudo_cancel);							\
+-  mov SYS_ify (syscall_name),d0;					\
+-  syscall 0								\
+-  POPARGS_##args ;							\
+-  cmp -126,d0;								\
+-  bls L(pseudo_end);							\
+-  jmp SYSCALL_ERROR_LABEL;						\
+- L(pseudo_cancel):							\
+-  add -(16+STACK_SPACE (args)),sp;					\
+-  SAVE_ARGS_##args							\
+-  CENABLE								\
+-  mov d0,r0;								\
+-  LOAD_ARGS_##args							\
+-  mov SYS_ify (syscall_name),d0;					\
+-  syscall 0;								\
+-  mov d0,(12,sp);							\
+-  mov r0,d0;								\
+-  CDISABLE								\
+-  mov (12,sp),d0;							\
+-  add +16+STACK_SPACE (args),sp						\
+-  POPARGS_##args ;							\
+-  cmp -126,d0;								\
+-  bls L(pseudo_end);							\
+-  jmp SYSCALL_ERROR_LABEL;						\
+- L(pseudo_end):								\
+-  mov d0,a0
+-
+-/* Reserve up to 2 stack slots for a0 and d1, but fewer than that if
+-   we don't have that many arguments.  */
+-# define STACK_SPACE(n) (((((n) < 3) * (2 - (n))) + 2) * 4)
+-
+-# define SAVE_ARGS_0
+-# define SAVE_ARGS_1	mov a0,(20,sp) ;
+-# define SAVE_ARGS_2	SAVE_ARGS_1 mov d1,(24,sp) ;
+-# define SAVE_ARGS_3	SAVE_ARGS_2
+-# define SAVE_ARGS_4	SAVE_ARGS_3
+-# define SAVE_ARGS_5	SAVE_ARGS_4
+-# define SAVE_ARGS_6	SAVE_ARGS_5
+-
+-# define LOAD_ARGS_0
+-# define LOAD_ARGS_1	mov (20,sp),a0 ;
+-# define LOAD_ARGS_2	LOAD_ARGS_1 mov (24,sp),d1 ;
+-# define LOAD_ARGS_3	LOAD_ARGS_2
+-# define LOAD_ARGS_4	LOAD_ARGS_3
+-# define LOAD_ARGS_5	LOAD_ARGS_4
+-# define LOAD_ARGS_6	LOAD_ARGS_5
+-
+-# if IS_IN (libpthread)
+-#  define CENABLE	call __pthread_enable_asynccancel,[],0;
+-#  define CDISABLE	call __pthread_disable_asynccancel,[],0;
+-# elif IS_IN (librt)
+-#  ifdef PIC
+-#   define CENABLE	movm [a2],(sp); \
+-			1: mov pc,a2; \
+-			add _GLOBAL_OFFSET_TABLE_-(1b-.),a2; \
+-			call +__librt_enable_asynccancel@PLT,[],0; \
+-			movm (sp),[a2];
+-#   define CENABLE	movm [a2],(sp); \
+-			1: mov pc,a2; \
+-			add _GLOBAL_OFFSET_TABLE_-(1b-.),a2; \
+-			call +__librt_disable_asynccancel@PLT,[],0; \
+-			movm (sp),[a2];
+-#  else
+-#   define CENABLE	call +__librt_enable_asynccancel,[],0;
+-#   define CDISABLE	call +__librt_disable_asynccancel,[],0;
+-#  endif
+-# else
+-#  define CENABLE	call +__libc_enable_asynccancel,[],0;
+-#  define CDISABLE	call +__libc_disable_asynccancel,[],0;
+-# endif
+-
+-#if IS_IN (libc)
+-# define __local_multiple_threads __libc_multiple_threads
+-#elif IS_IN (libpthread)
+-# define __local_multiple_threads __pthread_multiple_threads
+-#else
+-# define __local_multiple_threads __librt_multiple_threads
+-#endif
+-
+-# ifndef __ASSEMBLER__
+-#  if defined FLOATING_STACKS && USE___THREAD && defined PIC
+-#   define SINGLE_THREAD_P \
+-  __builtin_expect (THREAD_GETMEM (THREAD_SELF,				      \
+-				   p_header.data.multiple_threads) == 0, 1)
+-#  else
+-extern int __local_multiple_threads
+-#   if IS_IN (libc) || IS_IN (libpthread)
+-  attribute_hidden;
+-#   else
+-  ;
+-#   endif
+-#   define SINGLE_THREAD_P __builtin_expect (__local_multiple_threads == 0, 1)
+-#  endif
+-# else
+-#  if !defined PIC
+-#   define SINGLE_THREAD_P \
+-	mov (+__local_multiple_threads),d0; \
+-	cmp 0,d0
+-#  elif IS_IN (libc) || IS_IN (libpthread)
+-#   define SINGLE_THREAD_P \
+-	movm [a2],(sp); \
+-     1: mov pc,a2; \
+-	add _GLOBAL_OFFSET_TABLE_-(1b-.),a2; \
+-	mov (+__local_multiple_threads@GOTOFF,a2),d0; \
+-	movm (sp),[a2]; \
+-	cmp 0,d0
+-#  else
+-#   define SINGLE_THREAD_P \
+-	movm [a2],(sp); \
+-     1: mov pc,a2; \
+-	add _GLOBAL_OFFSET_TABLE_-(1b-.),a2; \
+-	mov (+__local_multiple_threads@GOT,a2),a2; \
+-	mov (a2),d0; \
+-	movm (sp),[a2]; \
+-	cmp 0,d0
+-#  endif
+-# endif
+-
+-#elif !defined __ASSEMBLER__
+-
+-/* This code should never be used but we define it anyhow.  */
+-# define SINGLE_THREAD_P (1)
+-
+-#endif
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/lockf64.c b/ports/sysdeps/unix/sysv/linux/am33/lockf64.c
+deleted file mode 100644
+index a88f5a784a544f0a..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/lockf64.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/lxstat.c b/ports/sysdeps/unix/sysv/linux/am33/lxstat.c
+deleted file mode 100644
+index 0efa0aea491950a6..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/lxstat.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/lxstat.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/profil-counter.h b/ports/sysdeps/unix/sysv/linux/am33/profil-counter.h
+deleted file mode 100644
+index f4b7eaae76da4cf5..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/profil-counter.h
++++ /dev/null
+@@ -1,26 +0,0 @@
+-/* Low-level statistical profiling support function.  Linux/am33 version.
+-   Copyright (C) 1996, 1997, 1998, 2001 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 Library General Public License as
+-   published by the Free Software Foundation; either version 2 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
+-   Library General Public License for more details.
+-
+-   You should have received a copy of the GNU Library General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#include <signal.h>
+-#include <sigcontextinfo.h>
+-
+-static void
+-profil_counter (int signo, SIGCONTEXT scp)
+-{
+-  profil_count ((void *) GET_PC (scp));
+-}
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/putmsg.c b/ports/sysdeps/unix/sysv/linux/am33/putmsg.c
+deleted file mode 100644
+index ebc1680ca7d1f2b5..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/putmsg.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/putmsg.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/setegid.c b/ports/sysdeps/unix/sysv/linux/am33/setegid.c
+deleted file mode 100644
+index 2e3a54c893448c3d..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/setegid.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/setegid.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/seteuid.c b/ports/sysdeps/unix/sysv/linux/am33/seteuid.c
+deleted file mode 100644
+index 18e41d08c1b7821f..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/seteuid.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/seteuid.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/setfsgid.c b/ports/sysdeps/unix/sysv/linux/am33/setfsgid.c
+deleted file mode 100644
+index 0886712569e3e055..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/setfsgid.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/setfsgid.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/setfsuid.c b/ports/sysdeps/unix/sysv/linux/am33/setfsuid.c
+deleted file mode 100644
+index a9f22eb8ab823deb..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/setfsuid.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/setfsuid.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/setgid.c b/ports/sysdeps/unix/sysv/linux/am33/setgid.c
+deleted file mode 100644
+index 377021d9ec8f9cea..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/setgid.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/setgid.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/setgroups.c b/ports/sysdeps/unix/sysv/linux/am33/setgroups.c
+deleted file mode 100644
+index cb9a7708e38ebc68..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/setgroups.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/setgroups.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/setregid.c b/ports/sysdeps/unix/sysv/linux/am33/setregid.c
+deleted file mode 100644
+index 99c57ad20f1ddb0c..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/setregid.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/setregid.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/setresgid.c b/ports/sysdeps/unix/sysv/linux/am33/setresgid.c
+deleted file mode 100644
+index daca1a48332e49d6..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/setresgid.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/setresgid.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/setresuid.c b/ports/sysdeps/unix/sysv/linux/am33/setresuid.c
+deleted file mode 100644
+index 3aeabe9ad708c454..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/setresuid.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/setresuid.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/setreuid.c b/ports/sysdeps/unix/sysv/linux/am33/setreuid.c
+deleted file mode 100644
+index 8ad61226e979db47..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/setreuid.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/setreuid.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/setrlimit.c b/ports/sysdeps/unix/sysv/linux/am33/setrlimit.c
+deleted file mode 100644
+index bfaef74c387f91c0..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/setrlimit.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/setrlimit.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/setuid.c b/ports/sysdeps/unix/sysv/linux/am33/setuid.c
+deleted file mode 100644
+index de394379be6f9f90..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/setuid.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/setuid.c>
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/socket.S b/ports/sysdeps/unix/sysv/linux/am33/socket.S
+deleted file mode 100644
+index b4d3caab8a6506d8..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/socket.S
++++ /dev/null
+@@ -1,72 +0,0 @@
+-/* Copyright 2001 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>.
+-   Based on ../i386/socket.S.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Library General Public License as
+-   published by the Free Software Foundation; either version 2 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
+-   Library General Public License for more details.
+-
+-   You should have received a copy of the GNU Library General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#include <sysdep.h>
+-#include <socketcall.h>
+-
+-#define P(a, b) P2(a, b)
+-#define P2(a, b) a##b
+-
+-	.text
+-/* The socket-oriented system calls are handled unusally in Linux.
+-   They are all gated through the single `socketcall' system call number.
+-   `socketcall' takes two arguments: the first is the subcode, specifying
+-   which socket function is being called; and the second is a pointer to
+-   the arguments to the specific function.
+-
+-   The .S files for the other calls just #define socket and #include this.  */
+-
+-#ifndef __socket
+-#ifndef NO_WEAK_ALIAS
+-#define __socket P(__,socket)
+-#else
+-#define __socket socket
+-#endif
+-#endif
+-
+-.globl __socket
+-ENTRY (__socket)
+-
+-	mov d0,(4,sp)
+-	mov d1,(8,sp)
+-
+-	mov SYS_ify(socketcall),d0	/* System call number in d0.  */
+-
+-	/* Use ## so `socket' is a separate token that might be #define'd.  */
+-	mov P(SOCKOP_,socket),a0	/* Subcode is first arg to syscall.  */
+-	mov sp,d1
+-	add 4,d1			/* Address of args is 2nd arg.  */
+-
+-        /* Do the system call trap.  */
+-	syscall 0
+-
+-	/* d0 is < 0 if there was an error.  */
+-	cmp -126,d0
+-	bls L(pseudo_end)
+-	jmp SYSCALL_ERROR_LABEL
+-
+-	/* Successful; return the syscall's value.  */
+-L(pseudo_end):
+-	ret
+-
+-PSEUDO_END (__socket)
+-
+-#ifndef NO_WEAK_ALIAS
+-weak_alias (__socket, socket)
+-#endif
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/syscall.S b/ports/sysdeps/unix/sysv/linux/am33/syscall.S
+deleted file mode 100644
+index 63fa6ddcd4f670ae..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/syscall.S
++++ /dev/null
+@@ -1,42 +0,0 @@
+-/* Copyright (C) 1995, 1996, 1998, 2001 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>.
+-   Based on ../i386/syscall.S.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Library General Public License as
+-   published by the Free Software Foundation; either version 2 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
+-   Library General Public License for more details.
+-
+-   You should have received a copy of the GNU Library General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#include <sysdep.h>
+-
+-/* Please consult the file sysdeps/unix/sysv/linux/am33/sysdep.h for
+-   more information about the value -126 used below.*/
+-
+-	.text
+-ENTRY (syscall)
+-	movm [d2,d3,a2,a3],(sp)	/* Save register contents.  */
+-	mov d1,a0
+-	mov (28,sp),d1
+-	mov (32,sp),a3
+-	mov (36,sp),a2
+-	mov (40,sp),d3
+-	mov (44,sp),d2
+-	syscall 0			/* Do the system call.  */
+-	movm (sp),[d2,d3,a2,a3]	/* Restore register contents.  */
+-	cmp -126,d0			/* Check for error.  */
+-	bls L(pseudo_end)
+-	jmp SYSCALL_ERROR_LABEL		/* Jump to error handler if error.  */
+-L(pseudo_end):
+-	ret				/* Return to caller.  */
+-
+-PSEUDO_END (syscall)
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/sysdep.S b/ports/sysdeps/unix/sysv/linux/am33/sysdep.S
+deleted file mode 100644
+index 877fd1e0823af3dd..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/sysdep.S
++++ /dev/null
+@@ -1,41 +0,0 @@
+-/* Copyright (C) 1995, 1996, 1997, 1998, 2001, 2004
+-	Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>.
+-   Based on ../i386/sysdep.S.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Library General Public License as
+-   published by the Free Software Foundation; either version 2 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
+-   Library General Public License for more details.
+-
+-   You should have received a copy of the GNU Library General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#include <sysdep.h>
+-
+-/* The following code is only used in the shared library when we
+-   compile the reentrant version.  Otherwise each system call defines
+-   each own version.  */
+-
+-#ifndef PIC
+-
+-#undef CALL_MCOUNT
+-#define CALL_MCOUNT /* Don't insert the profiling call, it clobbers %eax.  */
+-
+-	.text
+-ENTRY (__syscall_error)
+-	mov d0,d1
+-	clr d0
+-	sub d1,d0
+-
+-#define __syscall_error __syscall_error_1
+-#include <../../../am33/sysdep.S>
+-
+-#endif	/* !PIC */
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/sysdep.h b/ports/sysdeps/unix/sysv/linux/am33/sysdep.h
+deleted file mode 100644
+index 68f93f8003e2dc07..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/sysdep.h
++++ /dev/null
+@@ -1,316 +0,0 @@
+-/* Copyright 2001, 2004 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-   Contributed by Alexandre Oliva <aoliva@redhat.com>.
+-   Based on ../i386/sysdep.h.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Library General Public License as
+-   published by the Free Software Foundation; either version 2 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
+-   Library General Public License for more details.
+-
+-   You should have received a copy of the GNU Library General Public
+-   License along with the GNU C Library.  If not, see
+-   <http://www.gnu.org/licenses/>.  */
+-
+-#ifndef _LINUX_AM33_SYSDEP_H
+-#define _LINUX_AM33_SYSDEP_H 1
+-
+-/* There is some commonality.  */
+-#include "../../../am33/sysdep.h"
+-
+-/* For Linux we can use the system call table in the header file
+-	/usr/include/asm/unistd.h
+-   of the kernel.  But these symbols do not follow the SYS_* syntax
+-   so we have to redefine the `SYS_ify' macro here.  */
+-#undef SYS_ify
+-#define SYS_ify(syscall_name)	__NR_##syscall_name
+-
+-/* ELF-like local names start with `.L'.  */
+-#undef L
+-#define L(name)	.L##name
+-
+-#ifdef __ASSEMBLER__
+-
+-/* Linux uses a negative return value to indicate syscall errors,
+-   unlike most Unices, which use the condition codes' carry flag.
+-
+-   Since version 2.1 the return value of a system call might be
+-   negative even if the call succeeded.  E.g., the `lseek' system call
+-   might return a large offset.  Therefore we must not anymore test
+-   for < 0, but test for a real error by making sure the value in %eax
+-   is a real error number.  Linus said he will make sure the no syscall
+-   returns a value in -1 .. -4095 as a valid result so we can savely
+-   test with -4095.  */
+-
+-/* We don't want the label for the error handle to be global when we define
+-   it here.  */
+-#ifdef PIC
+-# define SYSCALL_ERROR_LABEL 0f
+-#else
+-# define SYSCALL_ERROR_LABEL syscall_error
+-#endif
+-
+-#undef	PSEUDO
+-#define	PSEUDO(name, syscall_name, args)				      \
+-  .text;								      \
+-  ENTRY (name)								      \
+-    DO_CALL (syscall_name, args);					      \
+-    cmp -126,d0;							      \
+-    bls L(pseudo_end);							      \
+-    jmp SYSCALL_ERROR_LABEL;						      \
+-  L(pseudo_end):							      \
+-    mov d0,a0;
+-
+-#undef	PSEUDO_END
+-#define	PSEUDO_END(name)						      \
+-  SYSCALL_ERROR_HANDLER							      \
+-  END (name)
+-
+-#undef  PSEUDO_NOERROR
+-#define	PSEUDO_NOERRNO(name, syscall_name, args)			      \
+-  .text;								      \
+-  ENTRY (name)								      \
+-    DO_CALL (syscall_name, args)
+-
+-#undef	PSEUDO_END_NOERRNO
+-#define	PSEUDO_END_NOERRNO(name)					      \
+-  END (name)
+-
+-#define ret_NOERRNO ret
+-
+-/* The function has to return the error code.  */
+-#undef	PSEUDO_ERRVAL
+-#define	PSEUDO_ERRVAL(name, syscall_name, args) \
+-  .text;								      \
+-  ENTRY (name)								      \
+-    DO_CALL (syscall_name, args);					      \
+-    clr d1;								      \
+-    sub d0,d1,d0
+-
+-#undef	PSEUDO_END_ERRVAL
+-#define	PSEUDO_END_ERRVAL(name) \
+-  END (name)
+-
+-#define ret_ERRVAL ret
+-
+-#ifndef PIC
+-#define SYSCALL_ERROR_HANDLER	/* Nothing here; code in sysdep.S is used.  */
+-#else
+-/* Store (- d0) into errno through the GOT.  */
+-#ifdef _LIBC_REENTRANT
+-#define SYSCALL_ERROR_HANDLER						      \
+-0:movm [d2,a2],(sp);							      \
+-  add -12,sp;								      \
+-1:mov pc,a2;								      \
+-  add _GLOBAL_OFFSET_TABLE_-(1b-.),a2;					      \
+-  clr d2;								      \
+-  sub d0,d2;								      \
+-  call __errno_location@PLT,[],0;					      \
+-  mov d2,(a0);								      \
+-  add 12,sp;								      \
+-  movm (sp),[d2,a2];							      \
+-  mov -1,d0;								      \
+-  mov d0,a0;								      \
+-  jmp L(pseudo_end);
+-/* A quick note: it is assumed that the call to `__errno_location' does
+-   not modify the stack!  */
+-#else
+-#define SYSCALL_ERROR_HANDLER						      \
+-0:mov pc,a0;								      \
+-  add _GLOBAL_OFFSET_TABLE_-(0b-.),a0;					      \
+-  clr d1;								      \
+-  sub d0,d1;								      \
+-  mov (errno@GOT,a0),a1;						      \
+-  mov d1,(a0);								      \
+-  mov -1,d0;								      \
+-  mov d0,a0;								      \
+-  jmp L(pseudo_end);
+-#endif	/* _LIBC_REENTRANT */
+-#endif	/* PIC */
+-
+-/* Linux takes system call arguments in registers:
+-
+-	syscall number	d0	     call-clobbered
+-	arg 1		a0	     call-clobbered
+-	arg 2		d1	     call-clobbered
+-	arg 3		a3	     call-saved
+-	arg 4		a2	     call-saved
+-	arg 5		d3	     call-saved
+-	arg 6		d2	     call-saved
+-
+-   The stack layout upon entering the function is:
+-
+-	 (24,sp)	Arg# 6
+-	 (20,sp)	Arg# 5
+-	 (16,sp)	Arg# 4
+-	 (12,sp)	Arg# 3
+-	  d1		Arg# 2
+-	  d0		Arg# 1
+-	  (sp)		Return address
+-
+-   (Of course a function with say 3 arguments does not have entries for
+-   arguments 4, 5 and 6.)  */
+-
+-#undef	DO_CALL
+-#define DO_CALL(syscall_name, args)			      		      \
+-    PUSHARGS_##args							      \
+-    DOARGS_##args							      \
+-    mov SYS_ify (syscall_name),d0;					      \
+-    syscall 0								      \
+-    POPARGS_##args
+-
+-#define PUSHARGS_0	/* No arguments to push.  */
+-#define	_DOARGS_0(N)	/* No arguments to frob.  */
+-#define	DOARGS_0	/* No arguments to frob.  */
+-#define	POPARGS_0	/* No arguments to pop.  */
+-
+-#define PUSHARGS_1	/* No arguments to push.  */
+-#define	_DOARGS_1(N)	_DOARGS_0 (N-4) mov d0,a0;
+-#define	DOARGS_1	_DOARGS_1 (4)
+-#define	POPARGS_1	/* No arguments to pop.  */
+-
+-#define PUSHARGS_2	/* No arguments to push.  */
+-#define	_DOARGS_2(N)	_DOARGS_1 (N-4) /* Argument already in d1.  */
+-#define	DOARGS_2	_DOARGS_2 (8)
+-#define	POPARGS_2	/* No arguments to pop.  */
+-
+-#define PUSHARGS_3	movm [a3],(sp);
+-#define	_DOARGS_3(N)	_DOARGS_2 (N-4) mov (N,sp),a3;
+-#define DOARGS_3	_DOARGS_3 (16)
+-#define POPARGS_3	; movm (sp),[a3]
+-
+-#define PUSHARGS_4	movm [a2,a3],(sp);
+-#define	_DOARGS_4(N)	_DOARGS_3 (N-4) mov (N,sp),a2;
+-#define DOARGS_4	_DOARGS_4 (24)
+-#define POPARGS_4	; movm (sp),[a2,a3]
+-
+-#define PUSHARGS_5	movm [d3,a2,a3],(sp);
+-#define	_DOARGS_5(N)	_DOARGS_4 (N-4) mov (N,sp),d3;
+-#define DOARGS_5	_DOARGS_5 (32)
+-#define POPARGS_5	; movm (sp),[d3,a2,a3]
+-
+-#define PUSHARGS_6	movm [d2,d3,a2,a3],(sp);
+-#define	_DOARGS_6(N)	_DOARGS_5 (N-4) mov (N,sp),d2;
+-#define DOARGS_6	_DOARGS_6 (40)
+-#define POPARGS_6	; movm (sp),[d2,d3,a2,a3]
+-
+-#else	/* !__ASSEMBLER__ */
+-
+-/* Define a macro which expands inline into the wrapper code for a system
+-   call.  */
+-#undef INLINE_SYSCALL
+-#define INLINE_SYSCALL(name, nr, args...) \
+-  ({									\
+-    unsigned int resultvar = INTERNAL_SYSCALL (name, , nr, args);	\
+-    if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (resultvar, ), 0))	\
+-      {									\
+-	__set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, ));		\
+-	resultvar = 0xffffffff;						\
+-      }									\
+-    (int) resultvar; })
+-
+-#define INTERNAL_SYSCALL(name, err, nr, args...)			\
+-({									\
+-	register long __sc0 asm ("d0") = __NR_##name; 			\
+-	inline_syscall##nr(name, ## args);				\
+-	__sc0;								\
+-})
+-
+-#undef INTERNAL_SYSCALL_DECL
+-#define INTERNAL_SYSCALL_DECL(err) do { } while (0)
+-
+-#undef INTERNAL_SYSCALL_ERROR_P
+-#define INTERNAL_SYSCALL_ERROR_P(val, err) \
+-  ((unsigned int) (val) >= (unsigned long)-125)
+-
+-#undef INTERNAL_SYSCALL_ERRNO
+-#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
+-
+-#define inline_syscall0(name,dummy...) \
+-__asm__ __volatile__ ("syscall 0" \
+-	              : "+d" (__sc0) \
+-	              : : "memory")
+-
+-#define inline_syscall1(name,arg1) \
+-register long __sc1 asm ("a0") = (long) (arg1); \
+-inline_syscall0 (name); \
+-__asm__ __volatile__ ("" : : "r" (__sc1))
+-
+-#define inline_syscall2(name,arg1,arg2) \
+-register long __sc2 asm ("d1") = (long) (arg2); \
+-inline_syscall1 (name,(arg1)); \
+-__asm__ __volatile__ ("" : : "r" (__sc2))
+-
+-/* We can't tell whether a3 is going to be eliminated in the enclosing
+-   function, so we have to assume it isn't.  We first load the value
+-   of any arguments into their registers, except for a3 itself, that
+-   may be needed to load the value of the other arguments.  Then, we
+-   save a3's value in some other register, and load the argument value
+-   into a3.  We have to force both a3 and its copy to be live in
+-   different registers at the same time, to avoid having the copy
+-   spilled and the value reloaded into the same register, in which
+-   case we'd be unable to get the value of a3 back, should the stack
+-   slot reference be (offset,a3).  */
+-#define inline_syscall3(name,arg1,arg2,arg3) \
+-long __sc3v = (long) (arg3); \
+-register long __sc1 asm ("a0") = (long) (arg1); \
+-register long __sc2 asm ("d1") = (long) (arg2); \
+-register long __sc3 asm ("a3") = __sc3;	\
+-register long __sc3c; \
+-__asm__ __volatile__ ("mov %1,%0" : "=&r" (__sc3c) : "r" (__sc3)); \
+-__sc3 = __sc3v; \
+-__asm__ __volatile__ ("" : : "r" (__sc3c), "r" (__sc3)); \
+-inline_syscall0 (name); \
+-__sc3 = __sc3c; \
+-__asm__ __volatile__ ("" : : "r" (__sc3), "r" (__sc2), "r" (__sc1))
+-
+-#ifdef PIC
+-/* Since a2 is the PIC register, it requires similar handling as a3
+-   when we're generating PIC, as a2's value may be needed to load
+-   arguments whose values live in global variables.  The difference is
+-   that we don't need to require its value to be live in a register;
+-   it may well be in a stack slot, as long as we save it before
+-   clobbering a3 and restore it after restoring a3.  */
+-#define inline_syscall4(name,arg1,arg2,arg3,arg4) \
+-long __sc4v = (long) (arg4); \
+-long __sc3v = (long) (arg3); \
+-register long __sc1 asm ("a0") = (long) (arg1); \
+-register long __sc2 asm ("d1") = (long) (arg2); \
+-register long __sc3 asm ("a3") = __sc3;	\
+-register long __sc3c; \
+-register long __sc4 asm ("a2") = __sc4;	\
+-long __sc4c = __sc4; \
+-__sc4 = __sc4v; \
+-__asm__ __volatile__ ("mov %1,%0" : "=&r" (__sc3c) : "r" (__sc3)); \
+-__sc3 = __sc3v; \
+-__asm__ __volatile__ ("" : : "r" (__sc3c), "r" (__sc3), "r" (__sc4)); \
+-inline_syscall0 (name); \
+-__sc3 = __sc3c; \
+-__sc4 = __sc4c; \
+-__asm__ __volatile__ ("" : : "r" (__sc4), "r" (__sc3), \
+-			     "r" (__sc2), "r" (__sc1))
+-#else
+-#define inline_syscall4(name,arg1,arg2,arg3,arg4) \
+-register long __sc4 asm ("a2") = (long) (arg4); \
+-inline_syscall3 (name,(arg1),(arg2),(arg3)); \
+-__asm__ __volatile__ ("" : : "r" (__sc4))
+-#endif
+-
+-#define inline_syscall5(name,arg1,arg2,arg3,arg4,arg5) \
+-register long __sc5 asm ("d3") = (long) (arg5); \
+-inline_syscall4 (name,(arg1),(arg2),(arg3),(arg4)); \
+-__asm__ __volatile__ ("" : : "r" (__sc5))
+-
+-#define inline_syscall6(name,arg1,arg2,arg3,arg4,arg5,arg6) \
+-register long __sc6 asm ("d2") = (long) (arg6); \
+-inline_syscall5 (name,(arg1),(arg2),(arg3),(arg4),(arg5)); \
+-__asm__ __volatile__ ("" : : "r" (__sc6))
+-
+-#endif	/* __ASSEMBLER__ */
+-
+-#endif /* linux/am33/sysdep.h */
+diff --git a/ports/sysdeps/unix/sysv/linux/am33/xstat.c b/ports/sysdeps/unix/sysv/linux/am33/xstat.c
+deleted file mode 100644
+index e9869f550892e9a2..0000000000000000
+--- a/ports/sysdeps/unix/sysv/linux/am33/xstat.c
++++ /dev/null
+@@ -1 +0,0 @@
+-#include <sysdeps/unix/sysv/linux/i386/xstat.c>
diff --git a/SOURCES/glibc-rh1505492-ports-move-aarch64.patch b/SOURCES/glibc-rh1505492-ports-move-aarch64.patch
new file mode 100644
index 0000000..d0e9681
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-ports-move-aarch64.patch
@@ -0,0 +1,676 @@
+Recreation of this upstream commit:
+
+commit 75eff3fe90f96783f31f58fa84af1b77e57d1ae4
+Author: Marcus Shawcroft <marcus.shawcroft@arm.com>
+Date:   Mon Feb 10 15:36:16 2014 +0000
+
+    Relocate AArch64 from ports to libc.
+
+    This patch moves the AArch64 port to the main sysdeps hierarchy.  The
+    move is essentially:
+
+      git mv ports/sysdeps/aarch64 sysdeps/aarch64
+      git mv ports/sysdeps/unix/sysv/linux/aarch64 sysdeps/unix/sysv/linux/aarch64
+
+The file
+
+  sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h
+
+already existed (added in glibc-rh1335629.patch), so the following
+sequence of commands was used instead:
+
+git mv ports/sysdeps/aarch64 sysdeps/aarch64
+git mv ports/sysdeps/unix/sysv/linux/aarch64/bits/* \
+  sysdeps/unix/sysv/linux/aarch64/bits/
+rmdir ports/sysdeps/unix/sysv/linux/aarch64/bits
+git mv ports/sysdeps/unix/sysv/linux/aarch64/* \
+  sysdeps/unix/sysv/linux/aarch64/
+
+diff --git a/ports/sysdeps/aarch64/Implies b/sysdeps/aarch64/Implies
+similarity index 100%
+rename from ports/sysdeps/aarch64/Implies
+rename to sysdeps/aarch64/Implies
+diff --git a/ports/sysdeps/aarch64/Makefile b/sysdeps/aarch64/Makefile
+similarity index 100%
+rename from ports/sysdeps/aarch64/Makefile
+rename to sysdeps/aarch64/Makefile
+diff --git a/ports/sysdeps/aarch64/Versions b/sysdeps/aarch64/Versions
+similarity index 100%
+rename from ports/sysdeps/aarch64/Versions
+rename to sysdeps/aarch64/Versions
+diff --git a/ports/sysdeps/aarch64/__longjmp.S b/sysdeps/aarch64/__longjmp.S
+similarity index 100%
+rename from ports/sysdeps/aarch64/__longjmp.S
+rename to sysdeps/aarch64/__longjmp.S
+diff --git a/ports/sysdeps/aarch64/backtrace.c b/sysdeps/aarch64/backtrace.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/backtrace.c
+rename to sysdeps/aarch64/backtrace.c
+diff --git a/ports/sysdeps/aarch64/bits/atomic.h b/sysdeps/aarch64/bits/atomic.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/bits/atomic.h
+rename to sysdeps/aarch64/bits/atomic.h
+diff --git a/ports/sysdeps/aarch64/bits/endian.h b/sysdeps/aarch64/bits/endian.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/bits/endian.h
+rename to sysdeps/aarch64/bits/endian.h
+diff --git a/ports/sysdeps/aarch64/bits/fenv.h b/sysdeps/aarch64/bits/fenv.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/bits/fenv.h
+rename to sysdeps/aarch64/bits/fenv.h
+diff --git a/ports/sysdeps/aarch64/bits/link.h b/sysdeps/aarch64/bits/link.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/bits/link.h
+rename to sysdeps/aarch64/bits/link.h
+diff --git a/ports/sysdeps/aarch64/bits/linkmap.h b/sysdeps/aarch64/bits/linkmap.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/bits/linkmap.h
+rename to sysdeps/aarch64/bits/linkmap.h
+diff --git a/ports/sysdeps/aarch64/bits/mathdef.h b/sysdeps/aarch64/bits/mathdef.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/bits/mathdef.h
+rename to sysdeps/aarch64/bits/mathdef.h
+diff --git a/ports/sysdeps/aarch64/bits/setjmp.h b/sysdeps/aarch64/bits/setjmp.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/bits/setjmp.h
+rename to sysdeps/aarch64/bits/setjmp.h
+diff --git a/ports/sysdeps/aarch64/bsd-_setjmp.S b/sysdeps/aarch64/bsd-_setjmp.S
+similarity index 100%
+rename from ports/sysdeps/aarch64/bsd-_setjmp.S
+rename to sysdeps/aarch64/bsd-_setjmp.S
+diff --git a/ports/sysdeps/aarch64/bsd-setjmp.S b/sysdeps/aarch64/bsd-setjmp.S
+similarity index 100%
+rename from ports/sysdeps/aarch64/bsd-setjmp.S
+rename to sysdeps/aarch64/bsd-setjmp.S
+diff --git a/ports/sysdeps/aarch64/crti.S b/sysdeps/aarch64/crti.S
+similarity index 100%
+rename from ports/sysdeps/aarch64/crti.S
+rename to sysdeps/aarch64/crti.S
+diff --git a/ports/sysdeps/aarch64/crtn.S b/sysdeps/aarch64/crtn.S
+similarity index 100%
+rename from ports/sysdeps/aarch64/crtn.S
+rename to sysdeps/aarch64/crtn.S
+diff --git a/ports/sysdeps/aarch64/dl-irel.h b/sysdeps/aarch64/dl-irel.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/dl-irel.h
+rename to sysdeps/aarch64/dl-irel.h
+diff --git a/ports/sysdeps/aarch64/dl-link.sym b/sysdeps/aarch64/dl-link.sym
+similarity index 100%
+rename from ports/sysdeps/aarch64/dl-link.sym
+rename to sysdeps/aarch64/dl-link.sym
+diff --git a/ports/sysdeps/aarch64/dl-machine.h b/sysdeps/aarch64/dl-machine.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/dl-machine.h
+rename to sysdeps/aarch64/dl-machine.h
+diff --git a/ports/sysdeps/aarch64/dl-sysdep.h b/sysdeps/aarch64/dl-sysdep.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/dl-sysdep.h
+rename to sysdeps/aarch64/dl-sysdep.h
+diff --git a/ports/sysdeps/aarch64/dl-tls.h b/sysdeps/aarch64/dl-tls.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/dl-tls.h
+rename to sysdeps/aarch64/dl-tls.h
+diff --git a/ports/sysdeps/aarch64/dl-tlsdesc.S b/sysdeps/aarch64/dl-tlsdesc.S
+similarity index 100%
+rename from ports/sysdeps/aarch64/dl-tlsdesc.S
+rename to sysdeps/aarch64/dl-tlsdesc.S
+diff --git a/ports/sysdeps/aarch64/dl-tlsdesc.h b/sysdeps/aarch64/dl-tlsdesc.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/dl-tlsdesc.h
+rename to sysdeps/aarch64/dl-tlsdesc.h
+diff --git a/ports/sysdeps/aarch64/dl-trampoline.S b/sysdeps/aarch64/dl-trampoline.S
+similarity index 100%
+rename from ports/sysdeps/aarch64/dl-trampoline.S
+rename to sysdeps/aarch64/dl-trampoline.S
+diff --git a/ports/sysdeps/aarch64/fpu/fclrexcpt.c b/sysdeps/aarch64/fpu/fclrexcpt.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/fclrexcpt.c
+rename to sysdeps/aarch64/fpu/fclrexcpt.c
+diff --git a/ports/sysdeps/aarch64/fpu/fedisblxcpt.c b/sysdeps/aarch64/fpu/fedisblxcpt.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/fedisblxcpt.c
+rename to sysdeps/aarch64/fpu/fedisblxcpt.c
+diff --git a/ports/sysdeps/aarch64/fpu/feenablxcpt.c b/sysdeps/aarch64/fpu/feenablxcpt.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/feenablxcpt.c
+rename to sysdeps/aarch64/fpu/feenablxcpt.c
+diff --git a/ports/sysdeps/aarch64/fpu/fegetenv.c b/sysdeps/aarch64/fpu/fegetenv.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/fegetenv.c
+rename to sysdeps/aarch64/fpu/fegetenv.c
+diff --git a/ports/sysdeps/aarch64/fpu/fegetexcept.c b/sysdeps/aarch64/fpu/fegetexcept.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/fegetexcept.c
+rename to sysdeps/aarch64/fpu/fegetexcept.c
+diff --git a/ports/sysdeps/aarch64/fpu/fegetround.c b/sysdeps/aarch64/fpu/fegetround.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/fegetround.c
+rename to sysdeps/aarch64/fpu/fegetround.c
+diff --git a/ports/sysdeps/aarch64/fpu/feholdexcpt.c b/sysdeps/aarch64/fpu/feholdexcpt.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/feholdexcpt.c
+rename to sysdeps/aarch64/fpu/feholdexcpt.c
+diff --git a/ports/sysdeps/aarch64/fpu/fesetenv.c b/sysdeps/aarch64/fpu/fesetenv.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/fesetenv.c
+rename to sysdeps/aarch64/fpu/fesetenv.c
+diff --git a/ports/sysdeps/aarch64/fpu/fesetround.c b/sysdeps/aarch64/fpu/fesetround.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/fesetround.c
+rename to sysdeps/aarch64/fpu/fesetround.c
+diff --git a/ports/sysdeps/aarch64/fpu/feupdateenv.c b/sysdeps/aarch64/fpu/feupdateenv.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/feupdateenv.c
+rename to sysdeps/aarch64/fpu/feupdateenv.c
+diff --git a/ports/sysdeps/aarch64/fpu/fgetexcptflg.c b/sysdeps/aarch64/fpu/fgetexcptflg.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/fgetexcptflg.c
+rename to sysdeps/aarch64/fpu/fgetexcptflg.c
+diff --git a/ports/sysdeps/aarch64/fpu/fpu_control.h b/sysdeps/aarch64/fpu/fpu_control.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/fpu_control.h
+rename to sysdeps/aarch64/fpu/fpu_control.h
+diff --git a/ports/sysdeps/aarch64/fpu/fraiseexcpt.c b/sysdeps/aarch64/fpu/fraiseexcpt.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/fraiseexcpt.c
+rename to sysdeps/aarch64/fpu/fraiseexcpt.c
+diff --git a/ports/sysdeps/aarch64/fpu/fsetexcptflg.c b/sysdeps/aarch64/fpu/fsetexcptflg.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/fsetexcptflg.c
+rename to sysdeps/aarch64/fpu/fsetexcptflg.c
+diff --git a/ports/sysdeps/aarch64/fpu/ftestexcept.c b/sysdeps/aarch64/fpu/ftestexcept.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/ftestexcept.c
+rename to sysdeps/aarch64/fpu/ftestexcept.c
+diff --git a/ports/sysdeps/aarch64/fpu/get-rounding-mode.h b/sysdeps/aarch64/fpu/get-rounding-mode.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/get-rounding-mode.h
+rename to sysdeps/aarch64/fpu/get-rounding-mode.h
+diff --git a/ports/sysdeps/aarch64/fpu/math_private.h b/sysdeps/aarch64/fpu/math_private.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/math_private.h
+rename to sysdeps/aarch64/fpu/math_private.h
+diff --git a/ports/sysdeps/aarch64/fpu/s_ceil.c b/sysdeps/aarch64/fpu/s_ceil.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_ceil.c
+rename to sysdeps/aarch64/fpu/s_ceil.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_ceilf.c b/sysdeps/aarch64/fpu/s_ceilf.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_ceilf.c
+rename to sysdeps/aarch64/fpu/s_ceilf.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_floor.c b/sysdeps/aarch64/fpu/s_floor.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_floor.c
+rename to sysdeps/aarch64/fpu/s_floor.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_floorf.c b/sysdeps/aarch64/fpu/s_floorf.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_floorf.c
+rename to sysdeps/aarch64/fpu/s_floorf.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_fma.c b/sysdeps/aarch64/fpu/s_fma.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_fma.c
+rename to sysdeps/aarch64/fpu/s_fma.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_fmaf.c b/sysdeps/aarch64/fpu/s_fmaf.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_fmaf.c
+rename to sysdeps/aarch64/fpu/s_fmaf.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_fmax.c b/sysdeps/aarch64/fpu/s_fmax.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_fmax.c
+rename to sysdeps/aarch64/fpu/s_fmax.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_fmaxf.c b/sysdeps/aarch64/fpu/s_fmaxf.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_fmaxf.c
+rename to sysdeps/aarch64/fpu/s_fmaxf.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_fmin.c b/sysdeps/aarch64/fpu/s_fmin.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_fmin.c
+rename to sysdeps/aarch64/fpu/s_fmin.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_fminf.c b/sysdeps/aarch64/fpu/s_fminf.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_fminf.c
+rename to sysdeps/aarch64/fpu/s_fminf.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_frint.c b/sysdeps/aarch64/fpu/s_frint.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_frint.c
+rename to sysdeps/aarch64/fpu/s_frint.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_frintf.c b/sysdeps/aarch64/fpu/s_frintf.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_frintf.c
+rename to sysdeps/aarch64/fpu/s_frintf.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_llrint.c b/sysdeps/aarch64/fpu/s_llrint.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_llrint.c
+rename to sysdeps/aarch64/fpu/s_llrint.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_llrintf.c b/sysdeps/aarch64/fpu/s_llrintf.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_llrintf.c
+rename to sysdeps/aarch64/fpu/s_llrintf.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_llround.c b/sysdeps/aarch64/fpu/s_llround.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_llround.c
+rename to sysdeps/aarch64/fpu/s_llround.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_llroundf.c b/sysdeps/aarch64/fpu/s_llroundf.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_llroundf.c
+rename to sysdeps/aarch64/fpu/s_llroundf.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_lrint.c b/sysdeps/aarch64/fpu/s_lrint.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_lrint.c
+rename to sysdeps/aarch64/fpu/s_lrint.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_lrintf.c b/sysdeps/aarch64/fpu/s_lrintf.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_lrintf.c
+rename to sysdeps/aarch64/fpu/s_lrintf.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_lround.c b/sysdeps/aarch64/fpu/s_lround.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_lround.c
+rename to sysdeps/aarch64/fpu/s_lround.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_lroundf.c b/sysdeps/aarch64/fpu/s_lroundf.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_lroundf.c
+rename to sysdeps/aarch64/fpu/s_lroundf.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_nearbyint.c b/sysdeps/aarch64/fpu/s_nearbyint.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_nearbyint.c
+rename to sysdeps/aarch64/fpu/s_nearbyint.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_nearbyintf.c b/sysdeps/aarch64/fpu/s_nearbyintf.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_nearbyintf.c
+rename to sysdeps/aarch64/fpu/s_nearbyintf.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_rint.c b/sysdeps/aarch64/fpu/s_rint.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_rint.c
+rename to sysdeps/aarch64/fpu/s_rint.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_rintf.c b/sysdeps/aarch64/fpu/s_rintf.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_rintf.c
+rename to sysdeps/aarch64/fpu/s_rintf.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_round.c b/sysdeps/aarch64/fpu/s_round.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_round.c
+rename to sysdeps/aarch64/fpu/s_round.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_roundf.c b/sysdeps/aarch64/fpu/s_roundf.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_roundf.c
+rename to sysdeps/aarch64/fpu/s_roundf.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_trunc.c b/sysdeps/aarch64/fpu/s_trunc.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_trunc.c
+rename to sysdeps/aarch64/fpu/s_trunc.c
+diff --git a/ports/sysdeps/aarch64/fpu/s_truncf.c b/sysdeps/aarch64/fpu/s_truncf.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/fpu/s_truncf.c
+rename to sysdeps/aarch64/fpu/s_truncf.c
+diff --git a/ports/sysdeps/aarch64/jmpbuf-offsets.h b/sysdeps/aarch64/jmpbuf-offsets.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/jmpbuf-offsets.h
+rename to sysdeps/aarch64/jmpbuf-offsets.h
+diff --git a/ports/sysdeps/aarch64/jmpbuf-unwind.h b/sysdeps/aarch64/jmpbuf-unwind.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/jmpbuf-unwind.h
+rename to sysdeps/aarch64/jmpbuf-unwind.h
+diff --git a/ports/sysdeps/aarch64/ldsodefs.h b/sysdeps/aarch64/ldsodefs.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/ldsodefs.h
+rename to sysdeps/aarch64/ldsodefs.h
+diff --git a/ports/sysdeps/aarch64/libc-tls.c b/sysdeps/aarch64/libc-tls.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/libc-tls.c
+rename to sysdeps/aarch64/libc-tls.c
+diff --git a/ports/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps
+similarity index 100%
+rename from ports/sysdeps/aarch64/libm-test-ulps
+rename to sysdeps/aarch64/libm-test-ulps
+diff --git a/ports/sysdeps/aarch64/machine-gmon.h b/sysdeps/aarch64/machine-gmon.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/machine-gmon.h
+rename to sysdeps/aarch64/machine-gmon.h
+diff --git a/ports/sysdeps/aarch64/math-tests.h b/sysdeps/aarch64/math-tests.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/math-tests.h
+rename to sysdeps/aarch64/math-tests.h
+diff --git a/ports/sysdeps/aarch64/mcount.c b/sysdeps/aarch64/mcount.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/mcount.c
+rename to sysdeps/aarch64/mcount.c
+diff --git a/ports/sysdeps/aarch64/memusage.h b/sysdeps/aarch64/memusage.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/memusage.h
+rename to sysdeps/aarch64/memusage.h
+diff --git a/ports/sysdeps/aarch64/nptl/Makefile b/sysdeps/aarch64/nptl/Makefile
+similarity index 100%
+rename from ports/sysdeps/aarch64/nptl/Makefile
+rename to sysdeps/aarch64/nptl/Makefile
+diff --git a/ports/sysdeps/aarch64/nptl/pthread_spin_lock.c b/sysdeps/aarch64/nptl/pthread_spin_lock.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/nptl/pthread_spin_lock.c
+rename to sysdeps/aarch64/nptl/pthread_spin_lock.c
+diff --git a/ports/sysdeps/aarch64/nptl/pthreaddef.h b/sysdeps/aarch64/nptl/pthreaddef.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/nptl/pthreaddef.h
+rename to sysdeps/aarch64/nptl/pthreaddef.h
+diff --git a/ports/sysdeps/aarch64/nptl/tcb-offsets.sym b/sysdeps/aarch64/nptl/tcb-offsets.sym
+similarity index 100%
+rename from ports/sysdeps/aarch64/nptl/tcb-offsets.sym
+rename to sysdeps/aarch64/nptl/tcb-offsets.sym
+diff --git a/ports/sysdeps/aarch64/nptl/tls.h b/sysdeps/aarch64/nptl/tls.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/nptl/tls.h
+rename to sysdeps/aarch64/nptl/tls.h
+diff --git a/ports/sysdeps/aarch64/preconfigure b/sysdeps/aarch64/preconfigure
+similarity index 100%
+rename from ports/sysdeps/aarch64/preconfigure
+rename to sysdeps/aarch64/preconfigure
+diff --git a/ports/sysdeps/aarch64/setjmp.S b/sysdeps/aarch64/setjmp.S
+similarity index 100%
+rename from ports/sysdeps/aarch64/setjmp.S
+rename to sysdeps/aarch64/setjmp.S
+diff --git a/ports/sysdeps/aarch64/shlib-versions b/sysdeps/aarch64/shlib-versions
+similarity index 100%
+rename from ports/sysdeps/aarch64/shlib-versions
+rename to sysdeps/aarch64/shlib-versions
+diff --git a/ports/sysdeps/aarch64/soft-fp/Makefile b/sysdeps/aarch64/soft-fp/Makefile
+similarity index 100%
+rename from ports/sysdeps/aarch64/soft-fp/Makefile
+rename to sysdeps/aarch64/soft-fp/Makefile
+diff --git a/ports/sysdeps/aarch64/soft-fp/e_sqrtl.c b/sysdeps/aarch64/soft-fp/e_sqrtl.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/soft-fp/e_sqrtl.c
+rename to sysdeps/aarch64/soft-fp/e_sqrtl.c
+diff --git a/ports/sysdeps/aarch64/soft-fp/sfp-machine.h b/sysdeps/aarch64/soft-fp/sfp-machine.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/soft-fp/sfp-machine.h
+rename to sysdeps/aarch64/soft-fp/sfp-machine.h
+diff --git a/ports/sysdeps/aarch64/sotruss-lib.c b/sysdeps/aarch64/sotruss-lib.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/sotruss-lib.c
+rename to sysdeps/aarch64/sotruss-lib.c
+diff --git a/ports/sysdeps/aarch64/stackinfo.h b/sysdeps/aarch64/stackinfo.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/stackinfo.h
+rename to sysdeps/aarch64/stackinfo.h
+diff --git a/ports/sysdeps/aarch64/start.S b/sysdeps/aarch64/start.S
+similarity index 100%
+rename from ports/sysdeps/aarch64/start.S
+rename to sysdeps/aarch64/start.S
+diff --git a/ports/sysdeps/aarch64/sysdep.h b/sysdeps/aarch64/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/sysdep.h
+rename to sysdeps/aarch64/sysdep.h
+diff --git a/ports/sysdeps/aarch64/tls-macros.h b/sysdeps/aarch64/tls-macros.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/tls-macros.h
+rename to sysdeps/aarch64/tls-macros.h
+diff --git a/ports/sysdeps/aarch64/tlsdesc.c b/sysdeps/aarch64/tlsdesc.c
+similarity index 100%
+rename from ports/sysdeps/aarch64/tlsdesc.c
+rename to sysdeps/aarch64/tlsdesc.c
+diff --git a/ports/sysdeps/aarch64/tlsdesc.sym b/sysdeps/aarch64/tlsdesc.sym
+similarity index 100%
+rename from ports/sysdeps/aarch64/tlsdesc.sym
+rename to sysdeps/aarch64/tlsdesc.sym
+diff --git a/ports/sysdeps/aarch64/tst-audit.h b/sysdeps/aarch64/tst-audit.h
+similarity index 100%
+rename from ports/sysdeps/aarch64/tst-audit.h
+rename to sysdeps/aarch64/tst-audit.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/Implies b/sysdeps/unix/sysv/linux/aarch64/Implies
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/Implies
+rename to sysdeps/unix/sysv/linux/aarch64/Implies
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/Makefile b/sysdeps/unix/sysv/linux/aarch64/Makefile
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/Makefile
+rename to sysdeps/unix/sysv/linux/aarch64/Makefile
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/Versions b/sysdeps/unix/sysv/linux/aarch64/Versions
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/Versions
+rename to sysdeps/unix/sysv/linux/aarch64/Versions
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/__read_tp.S b/sysdeps/unix/sysv/linux/aarch64/__read_tp.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/__read_tp.S
+rename to sysdeps/unix/sysv/linux/aarch64/__read_tp.S
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h b/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h
+rename to sysdeps/unix/sysv/linux/aarch64/bits/fcntl.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/bits/ipc.h b/sysdeps/unix/sysv/linux/aarch64/bits/ipc.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/bits/ipc.h
+rename to sysdeps/unix/sysv/linux/aarch64/bits/ipc.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/bits/libc-vdso.h b/sysdeps/unix/sysv/linux/aarch64/bits/libc-vdso.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/bits/libc-vdso.h
+rename to sysdeps/unix/sysv/linux/aarch64/bits/libc-vdso.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/bits/mman.h b/sysdeps/unix/sysv/linux/aarch64/bits/mman.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/bits/mman.h
+rename to sysdeps/unix/sysv/linux/aarch64/bits/mman.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/clone.S b/sysdeps/unix/sysv/linux/aarch64/clone.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/clone.S
+rename to sysdeps/unix/sysv/linux/aarch64/clone.S
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/configure b/sysdeps/unix/sysv/linux/aarch64/configure
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/configure
+rename to sysdeps/unix/sysv/linux/aarch64/configure
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/configure.in b/sysdeps/unix/sysv/linux/aarch64/configure.in
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/configure.in
+rename to sysdeps/unix/sysv/linux/aarch64/configure.in
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/dl-cache.h b/sysdeps/unix/sysv/linux/aarch64/dl-cache.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/dl-cache.h
+rename to sysdeps/unix/sysv/linux/aarch64/dl-cache.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/getcontext.S b/sysdeps/unix/sysv/linux/aarch64/getcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/getcontext.S
+rename to sysdeps/unix/sysv/linux/aarch64/getcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c b/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c
+rename to sysdeps/unix/sysv/linux/aarch64/gettimeofday.c
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/init-first.c b/sysdeps/unix/sysv/linux/aarch64/init-first.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/init-first.c
+rename to sysdeps/unix/sysv/linux/aarch64/init-first.c
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/ioctl.S b/sysdeps/unix/sysv/linux/aarch64/ioctl.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/ioctl.S
+rename to sysdeps/unix/sysv/linux/aarch64/ioctl.S
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/kernel-features.h b/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/kernel-features.h
+rename to sysdeps/unix/sysv/linux/aarch64/kernel-features.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h b/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h
+rename to sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/ldconfig.h b/sysdeps/unix/sysv/linux/aarch64/ldconfig.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/ldconfig.h
+rename to sysdeps/unix/sysv/linux/aarch64/ldconfig.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/libc-__read_tp.S b/sysdeps/unix/sysv/linux/aarch64/libc-__read_tp.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/libc-__read_tp.S
+rename to sysdeps/unix/sysv/linux/aarch64/libc-__read_tp.S
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/makecontext.c b/sysdeps/unix/sysv/linux/aarch64/makecontext.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/makecontext.c
+rename to sysdeps/unix/sysv/linux/aarch64/makecontext.c
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/mmap.c b/sysdeps/unix/sysv/linux/aarch64/mmap.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/mmap.c
+rename to sysdeps/unix/sysv/linux/aarch64/mmap.c
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/bits/local_lim.h b/sysdeps/unix/sysv/linux/aarch64/nptl/bits/local_lim.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/bits/local_lim.h
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/bits/local_lim.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/bits/pthreadtypes.h b/sysdeps/unix/sysv/linux/aarch64/nptl/bits/pthreadtypes.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/bits/pthreadtypes.h
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/bits/pthreadtypes.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/bits/semaphore.h b/sysdeps/unix/sysv/linux/aarch64/nptl/bits/semaphore.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/bits/semaphore.h
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/bits/semaphore.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/c++-types.data b/sysdeps/unix/sysv/linux/aarch64/nptl/c++-types.data
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/c++-types.data
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/c++-types.data
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/clone.S b/sysdeps/unix/sysv/linux/aarch64/nptl/clone.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/clone.S
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/clone.S
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/createthread.c b/sysdeps/unix/sysv/linux/aarch64/nptl/createthread.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/createthread.c
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/createthread.c
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/fork.c b/sysdeps/unix/sysv/linux/aarch64/nptl/fork.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/fork.c
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/fork.c
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/ld.abilist b/sysdeps/unix/sysv/linux/aarch64/nptl/ld.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/ld.abilist
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/ld.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/aarch64/nptl/libBrokenLocale.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/libBrokenLocale.abilist
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/libBrokenLocale.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libanl.abilist b/sysdeps/unix/sysv/linux/aarch64/nptl/libanl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/libanl.abilist
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/libanl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/nptl/libc.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/libc.abilist
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/libc.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libcrypt.abilist b/sysdeps/unix/sysv/linux/aarch64/nptl/libcrypt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/libcrypt.abilist
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/libcrypt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libdl.abilist b/sysdeps/unix/sysv/linux/aarch64/nptl/libdl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/libdl.abilist
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/libdl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/nptl/libm.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/libm.abilist
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/libm.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libnsl.abilist b/sysdeps/unix/sysv/linux/aarch64/nptl/libnsl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/libnsl.abilist
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/libnsl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/nptl/libpthread.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/libpthread.abilist
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/libpthread.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libresolv.abilist b/sysdeps/unix/sysv/linux/aarch64/nptl/libresolv.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/libresolv.abilist
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/libresolv.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/librt.abilist b/sysdeps/unix/sysv/linux/aarch64/nptl/librt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/librt.abilist
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/librt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libthread_db.abilist b/sysdeps/unix/sysv/linux/aarch64/nptl/libthread_db.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/libthread_db.abilist
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/libthread_db.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libutil.abilist b/sysdeps/unix/sysv/linux/aarch64/nptl/libutil.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/libutil.abilist
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/libutil.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/localplt.data b/sysdeps/unix/sysv/linux/aarch64/nptl/localplt.data
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/localplt.data
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/localplt.data
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/lowlevellock.h b/sysdeps/unix/sysv/linux/aarch64/nptl/lowlevellock.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/lowlevellock.h
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/lowlevellock.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/pt-vfork.S b/sysdeps/unix/sysv/linux/aarch64/nptl/pt-vfork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/pt-vfork.S
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/pt-vfork.S
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/pthread_once.c b/sysdeps/unix/sysv/linux/aarch64/nptl/pthread_once.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/pthread_once.c
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/pthread_once.c
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h b/sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/vfork.S b/sysdeps/unix/sysv/linux/aarch64/nptl/vfork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/nptl/vfork.S
+rename to sysdeps/unix/sysv/linux/aarch64/nptl/vfork.S
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/profil-counter.h b/sysdeps/unix/sysv/linux/aarch64/profil-counter.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/profil-counter.h
+rename to sysdeps/unix/sysv/linux/aarch64/profil-counter.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/readelflib.c b/sysdeps/unix/sysv/linux/aarch64/readelflib.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/readelflib.c
+rename to sysdeps/unix/sysv/linux/aarch64/readelflib.c
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/setcontext.S b/sysdeps/unix/sysv/linux/aarch64/setcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/setcontext.S
+rename to sysdeps/unix/sysv/linux/aarch64/setcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/sigaction.c b/sysdeps/unix/sysv/linux/aarch64/sigaction.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/sigaction.c
+rename to sysdeps/unix/sysv/linux/aarch64/sigaction.c
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h
+rename to sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/swapcontext.S b/sysdeps/unix/sysv/linux/aarch64/swapcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/swapcontext.S
+rename to sysdeps/unix/sysv/linux/aarch64/swapcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/sys/elf.h b/sysdeps/unix/sysv/linux/aarch64/sys/elf.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/sys/elf.h
+rename to sysdeps/unix/sysv/linux/aarch64/sys/elf.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h b/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h
+rename to sysdeps/unix/sysv/linux/aarch64/sys/procfs.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
+rename to sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
+rename to sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/sys/user.h b/sysdeps/unix/sysv/linux/aarch64/sys/user.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/sys/user.h
+rename to sysdeps/unix/sysv/linux/aarch64/sys/user.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/syscall.S b/sysdeps/unix/sysv/linux/aarch64/syscall.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/syscall.S
+rename to sysdeps/unix/sysv/linux/aarch64/syscall.S
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/sysdep.c b/sysdeps/unix/sysv/linux/aarch64/sysdep.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/sysdep.c
+rename to sysdeps/unix/sysv/linux/aarch64/sysdep.c
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/sysdep.h b/sysdeps/unix/sysv/linux/aarch64/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/sysdep.h
+rename to sysdeps/unix/sysv/linux/aarch64/sysdep.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h b/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h
+rename to sysdeps/unix/sysv/linux/aarch64/ucontext-internal.h
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym b/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym
+rename to sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym
+diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/vfork.S b/sysdeps/unix/sysv/linux/aarch64/vfork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/aarch64/vfork.S
+rename to sysdeps/unix/sysv/linux/aarch64/vfork.S
diff --git a/SOURCES/glibc-rh1505492-ports-move-alpha.patch b/SOURCES/glibc-rh1505492-ports-move-alpha.patch
new file mode 100644
index 0000000..54c26a2
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-ports-move-alpha.patch
@@ -0,0 +1,1449 @@
+Recreation of this upstream commit:
+
+commit 68b7efaadb1b6045a56277ea62d324c20ac0b633
+Author: Richard Henderson <rth@twiddle.net>
+Date:   Wed Feb 12 06:54:57 2014 -0800
+
+    Relocate alpha from ports to libc
+
+The git commands used were:
+
+git mv ports/sysdeps/alpha sysdeps/
+git mv ports/sysdeps/unix/alpha sysdeps/unix/
+git mv ports/sysdeps/unix/sysv/linux/alpha sysdeps/unix/sysv/linux/
+
+Note that the upstream whitespace changes are not part of this
+commit.
+
+diff --git a/ports/sysdeps/alpha/Implies b/sysdeps/alpha/Implies
+similarity index 100%
+rename from ports/sysdeps/alpha/Implies
+rename to sysdeps/alpha/Implies
+diff --git a/ports/sysdeps/alpha/Makefile b/sysdeps/alpha/Makefile
+similarity index 100%
+rename from ports/sysdeps/alpha/Makefile
+rename to sysdeps/alpha/Makefile
+diff --git a/ports/sysdeps/alpha/Subdirs b/sysdeps/alpha/Subdirs
+similarity index 100%
+rename from ports/sysdeps/alpha/Subdirs
+rename to sysdeps/alpha/Subdirs
+diff --git a/ports/sysdeps/alpha/Versions b/sysdeps/alpha/Versions
+similarity index 100%
+rename from ports/sysdeps/alpha/Versions
+rename to sysdeps/alpha/Versions
+diff --git a/ports/sysdeps/alpha/__longjmp.S b/sysdeps/alpha/__longjmp.S
+similarity index 100%
+rename from ports/sysdeps/alpha/__longjmp.S
+rename to sysdeps/alpha/__longjmp.S
+diff --git a/ports/sysdeps/alpha/_mcount.S b/sysdeps/alpha/_mcount.S
+similarity index 100%
+rename from ports/sysdeps/alpha/_mcount.S
+rename to sysdeps/alpha/_mcount.S
+diff --git a/ports/sysdeps/alpha/add_n.S b/sysdeps/alpha/add_n.S
+similarity index 100%
+rename from ports/sysdeps/alpha/add_n.S
+rename to sysdeps/alpha/add_n.S
+diff --git a/ports/sysdeps/alpha/addmul_1.S b/sysdeps/alpha/addmul_1.S
+similarity index 100%
+rename from ports/sysdeps/alpha/addmul_1.S
+rename to sysdeps/alpha/addmul_1.S
+diff --git a/ports/sysdeps/alpha/alphaev5/add_n.S b/sysdeps/alpha/alphaev5/add_n.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev5/add_n.S
+rename to sysdeps/alpha/alphaev5/add_n.S
+diff --git a/ports/sysdeps/alpha/alphaev5/lshift.S b/sysdeps/alpha/alphaev5/lshift.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev5/lshift.S
+rename to sysdeps/alpha/alphaev5/lshift.S
+diff --git a/ports/sysdeps/alpha/alphaev5/rshift.S b/sysdeps/alpha/alphaev5/rshift.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev5/rshift.S
+rename to sysdeps/alpha/alphaev5/rshift.S
+diff --git a/ports/sysdeps/alpha/alphaev5/sub_n.S b/sysdeps/alpha/alphaev5/sub_n.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev5/sub_n.S
+rename to sysdeps/alpha/alphaev5/sub_n.S
+diff --git a/ports/sysdeps/alpha/alphaev6/Implies b/sysdeps/alpha/alphaev6/Implies
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev6/Implies
+rename to sysdeps/alpha/alphaev6/Implies
+diff --git a/ports/sysdeps/alpha/alphaev6/addmul_1.S b/sysdeps/alpha/alphaev6/addmul_1.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev6/addmul_1.S
+rename to sysdeps/alpha/alphaev6/addmul_1.S
+diff --git a/ports/sysdeps/alpha/alphaev6/fpu/e_sqrt.S b/sysdeps/alpha/alphaev6/fpu/e_sqrt.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev6/fpu/e_sqrt.S
+rename to sysdeps/alpha/alphaev6/fpu/e_sqrt.S
+diff --git a/ports/sysdeps/alpha/alphaev6/fpu/e_sqrtf.S b/sysdeps/alpha/alphaev6/fpu/e_sqrtf.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev6/fpu/e_sqrtf.S
+rename to sysdeps/alpha/alphaev6/fpu/e_sqrtf.S
+diff --git a/ports/sysdeps/alpha/alphaev6/memcpy.S b/sysdeps/alpha/alphaev6/memcpy.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev6/memcpy.S
+rename to sysdeps/alpha/alphaev6/memcpy.S
+diff --git a/ports/sysdeps/alpha/alphaev6/memset.S b/sysdeps/alpha/alphaev6/memset.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev6/memset.S
+rename to sysdeps/alpha/alphaev6/memset.S
+diff --git a/ports/sysdeps/alpha/alphaev6/stxcpy.S b/sysdeps/alpha/alphaev6/stxcpy.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev6/stxcpy.S
+rename to sysdeps/alpha/alphaev6/stxcpy.S
+diff --git a/ports/sysdeps/alpha/alphaev6/stxncpy.S b/sysdeps/alpha/alphaev6/stxncpy.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev6/stxncpy.S
+rename to sysdeps/alpha/alphaev6/stxncpy.S
+diff --git a/ports/sysdeps/alpha/alphaev67/Implies b/sysdeps/alpha/alphaev67/Implies
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev67/Implies
+rename to sysdeps/alpha/alphaev67/Implies
+diff --git a/ports/sysdeps/alpha/alphaev67/ffs.S b/sysdeps/alpha/alphaev67/ffs.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev67/ffs.S
+rename to sysdeps/alpha/alphaev67/ffs.S
+diff --git a/ports/sysdeps/alpha/alphaev67/ffsll.S b/sysdeps/alpha/alphaev67/ffsll.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev67/ffsll.S
+rename to sysdeps/alpha/alphaev67/ffsll.S
+diff --git a/ports/sysdeps/alpha/alphaev67/fpu/Implies b/sysdeps/alpha/alphaev67/fpu/Implies
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev67/fpu/Implies
+rename to sysdeps/alpha/alphaev67/fpu/Implies
+diff --git a/ports/sysdeps/alpha/alphaev67/rawmemchr.S b/sysdeps/alpha/alphaev67/rawmemchr.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev67/rawmemchr.S
+rename to sysdeps/alpha/alphaev67/rawmemchr.S
+diff --git a/ports/sysdeps/alpha/alphaev67/stpcpy.S b/sysdeps/alpha/alphaev67/stpcpy.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev67/stpcpy.S
+rename to sysdeps/alpha/alphaev67/stpcpy.S
+diff --git a/ports/sysdeps/alpha/alphaev67/stpncpy.S b/sysdeps/alpha/alphaev67/stpncpy.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev67/stpncpy.S
+rename to sysdeps/alpha/alphaev67/stpncpy.S
+diff --git a/ports/sysdeps/alpha/alphaev67/strcat.S b/sysdeps/alpha/alphaev67/strcat.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev67/strcat.S
+rename to sysdeps/alpha/alphaev67/strcat.S
+diff --git a/ports/sysdeps/alpha/alphaev67/strchr.S b/sysdeps/alpha/alphaev67/strchr.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev67/strchr.S
+rename to sysdeps/alpha/alphaev67/strchr.S
+diff --git a/ports/sysdeps/alpha/alphaev67/strlen.S b/sysdeps/alpha/alphaev67/strlen.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev67/strlen.S
+rename to sysdeps/alpha/alphaev67/strlen.S
+diff --git a/ports/sysdeps/alpha/alphaev67/strncat.S b/sysdeps/alpha/alphaev67/strncat.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev67/strncat.S
+rename to sysdeps/alpha/alphaev67/strncat.S
+diff --git a/ports/sysdeps/alpha/alphaev67/strrchr.S b/sysdeps/alpha/alphaev67/strrchr.S
+similarity index 100%
+rename from ports/sysdeps/alpha/alphaev67/strrchr.S
+rename to sysdeps/alpha/alphaev67/strrchr.S
+diff --git a/ports/sysdeps/alpha/backtrace.c b/sysdeps/alpha/backtrace.c
+similarity index 100%
+rename from ports/sysdeps/alpha/backtrace.c
+rename to sysdeps/alpha/backtrace.c
+diff --git a/ports/sysdeps/alpha/bb_init_func.S b/sysdeps/alpha/bb_init_func.S
+similarity index 100%
+rename from ports/sysdeps/alpha/bb_init_func.S
+rename to sysdeps/alpha/bb_init_func.S
+diff --git a/ports/sysdeps/alpha/bits/atomic.h b/sysdeps/alpha/bits/atomic.h
+similarity index 100%
+rename from ports/sysdeps/alpha/bits/atomic.h
+rename to sysdeps/alpha/bits/atomic.h
+diff --git a/ports/sysdeps/alpha/bits/endian.h b/sysdeps/alpha/bits/endian.h
+similarity index 100%
+rename from ports/sysdeps/alpha/bits/endian.h
+rename to sysdeps/alpha/bits/endian.h
+diff --git a/ports/sysdeps/alpha/bits/link.h b/sysdeps/alpha/bits/link.h
+similarity index 100%
+rename from ports/sysdeps/alpha/bits/link.h
+rename to sysdeps/alpha/bits/link.h
+diff --git a/ports/sysdeps/alpha/bits/mathdef.h b/sysdeps/alpha/bits/mathdef.h
+similarity index 100%
+rename from ports/sysdeps/alpha/bits/mathdef.h
+rename to sysdeps/alpha/bits/mathdef.h
+diff --git a/ports/sysdeps/alpha/bits/setjmp.h b/sysdeps/alpha/bits/setjmp.h
+similarity index 100%
+rename from ports/sysdeps/alpha/bits/setjmp.h
+rename to sysdeps/alpha/bits/setjmp.h
+diff --git a/ports/sysdeps/alpha/bsd-_setjmp.S b/sysdeps/alpha/bsd-_setjmp.S
+similarity index 100%
+rename from ports/sysdeps/alpha/bsd-_setjmp.S
+rename to sysdeps/alpha/bsd-_setjmp.S
+diff --git a/ports/sysdeps/alpha/bsd-setjmp.S b/sysdeps/alpha/bsd-setjmp.S
+similarity index 100%
+rename from ports/sysdeps/alpha/bsd-setjmp.S
+rename to sysdeps/alpha/bsd-setjmp.S
+diff --git a/ports/sysdeps/alpha/bzero.S b/sysdeps/alpha/bzero.S
+similarity index 100%
+rename from ports/sysdeps/alpha/bzero.S
+rename to sysdeps/alpha/bzero.S
+diff --git a/ports/sysdeps/alpha/configure b/sysdeps/alpha/configure
+similarity index 100%
+rename from ports/sysdeps/alpha/configure
+rename to sysdeps/alpha/configure
+diff --git a/ports/sysdeps/alpha/configure.in b/sysdeps/alpha/configure.in
+similarity index 100%
+rename from ports/sysdeps/alpha/configure.in
+rename to sysdeps/alpha/configure.in
+diff --git a/ports/sysdeps/alpha/crti.S b/sysdeps/alpha/crti.S
+similarity index 100%
+rename from ports/sysdeps/alpha/crti.S
+rename to sysdeps/alpha/crti.S
+diff --git a/ports/sysdeps/alpha/crtn.S b/sysdeps/alpha/crtn.S
+similarity index 100%
+rename from ports/sysdeps/alpha/crtn.S
+rename to sysdeps/alpha/crtn.S
+diff --git a/ports/sysdeps/alpha/div.S b/sysdeps/alpha/div.S
+similarity index 100%
+rename from ports/sysdeps/alpha/div.S
+rename to sysdeps/alpha/div.S
+diff --git a/ports/sysdeps/alpha/div_libc.h b/sysdeps/alpha/div_libc.h
+similarity index 100%
+rename from ports/sysdeps/alpha/div_libc.h
+rename to sysdeps/alpha/div_libc.h
+diff --git a/ports/sysdeps/alpha/divl.S b/sysdeps/alpha/divl.S
+similarity index 100%
+rename from ports/sysdeps/alpha/divl.S
+rename to sysdeps/alpha/divl.S
+diff --git a/ports/sysdeps/alpha/divlu.S b/sysdeps/alpha/divlu.S
+similarity index 100%
+rename from ports/sysdeps/alpha/divlu.S
+rename to sysdeps/alpha/divlu.S
+diff --git a/ports/sysdeps/alpha/divq.S b/sysdeps/alpha/divq.S
+similarity index 100%
+rename from ports/sysdeps/alpha/divq.S
+rename to sysdeps/alpha/divq.S
+diff --git a/ports/sysdeps/alpha/divqu.S b/sysdeps/alpha/divqu.S
+similarity index 100%
+rename from ports/sysdeps/alpha/divqu.S
+rename to sysdeps/alpha/divqu.S
+diff --git a/ports/sysdeps/alpha/dl-dtprocnum.h b/sysdeps/alpha/dl-dtprocnum.h
+similarity index 100%
+rename from ports/sysdeps/alpha/dl-dtprocnum.h
+rename to sysdeps/alpha/dl-dtprocnum.h
+diff --git a/ports/sysdeps/alpha/dl-machine.h b/sysdeps/alpha/dl-machine.h
+similarity index 100%
+rename from ports/sysdeps/alpha/dl-machine.h
+rename to sysdeps/alpha/dl-machine.h
+diff --git a/ports/sysdeps/alpha/dl-procinfo.c b/sysdeps/alpha/dl-procinfo.c
+similarity index 100%
+rename from ports/sysdeps/alpha/dl-procinfo.c
+rename to sysdeps/alpha/dl-procinfo.c
+diff --git a/ports/sysdeps/alpha/dl-procinfo.h b/sysdeps/alpha/dl-procinfo.h
+similarity index 100%
+rename from ports/sysdeps/alpha/dl-procinfo.h
+rename to sysdeps/alpha/dl-procinfo.h
+diff --git a/ports/sysdeps/alpha/dl-sysdep.h b/sysdeps/alpha/dl-sysdep.h
+similarity index 100%
+rename from ports/sysdeps/alpha/dl-sysdep.h
+rename to sysdeps/alpha/dl-sysdep.h
+diff --git a/ports/sysdeps/alpha/dl-tls.h b/sysdeps/alpha/dl-tls.h
+similarity index 100%
+rename from ports/sysdeps/alpha/dl-tls.h
+rename to sysdeps/alpha/dl-tls.h
+diff --git a/ports/sysdeps/alpha/dl-trampoline.S b/sysdeps/alpha/dl-trampoline.S
+similarity index 100%
+rename from ports/sysdeps/alpha/dl-trampoline.S
+rename to sysdeps/alpha/dl-trampoline.S
+diff --git a/ports/sysdeps/alpha/ffs.S b/sysdeps/alpha/ffs.S
+similarity index 100%
+rename from ports/sysdeps/alpha/ffs.S
+rename to sysdeps/alpha/ffs.S
+diff --git a/ports/sysdeps/alpha/ffsll.S b/sysdeps/alpha/ffsll.S
+similarity index 100%
+rename from ports/sysdeps/alpha/ffsll.S
+rename to sysdeps/alpha/ffsll.S
+diff --git a/ports/sysdeps/alpha/fpu/Versions b/sysdeps/alpha/fpu/Versions
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/Versions
+rename to sysdeps/alpha/fpu/Versions
+diff --git a/ports/sysdeps/alpha/fpu/bits/fenv.h b/sysdeps/alpha/fpu/bits/fenv.h
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/bits/fenv.h
+rename to sysdeps/alpha/fpu/bits/fenv.h
+diff --git a/ports/sysdeps/alpha/fpu/bits/mathinline.h b/sysdeps/alpha/fpu/bits/mathinline.h
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/bits/mathinline.h
+rename to sysdeps/alpha/fpu/bits/mathinline.h
+diff --git a/ports/sysdeps/alpha/fpu/cabsf.c b/sysdeps/alpha/fpu/cabsf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/cabsf.c
+rename to sysdeps/alpha/fpu/cabsf.c
+diff --git a/ports/sysdeps/alpha/fpu/cargf.c b/sysdeps/alpha/fpu/cargf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/cargf.c
+rename to sysdeps/alpha/fpu/cargf.c
+diff --git a/ports/sysdeps/alpha/fpu/cfloat-compat.h b/sysdeps/alpha/fpu/cfloat-compat.h
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/cfloat-compat.h
+rename to sysdeps/alpha/fpu/cfloat-compat.h
+diff --git a/ports/sysdeps/alpha/fpu/cimagf.c b/sysdeps/alpha/fpu/cimagf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/cimagf.c
+rename to sysdeps/alpha/fpu/cimagf.c
+diff --git a/ports/sysdeps/alpha/fpu/conjf.c b/sysdeps/alpha/fpu/conjf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/conjf.c
+rename to sysdeps/alpha/fpu/conjf.c
+diff --git a/ports/sysdeps/alpha/fpu/crealf.c b/sysdeps/alpha/fpu/crealf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/crealf.c
+rename to sysdeps/alpha/fpu/crealf.c
+diff --git a/ports/sysdeps/alpha/fpu/e_sqrt.c b/sysdeps/alpha/fpu/e_sqrt.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/e_sqrt.c
+rename to sysdeps/alpha/fpu/e_sqrt.c
+diff --git a/ports/sysdeps/alpha/fpu/fclrexcpt.c b/sysdeps/alpha/fpu/fclrexcpt.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/fclrexcpt.c
+rename to sysdeps/alpha/fpu/fclrexcpt.c
+diff --git a/ports/sysdeps/alpha/fpu/fedisblxcpt.c b/sysdeps/alpha/fpu/fedisblxcpt.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/fedisblxcpt.c
+rename to sysdeps/alpha/fpu/fedisblxcpt.c
+diff --git a/ports/sysdeps/alpha/fpu/feenablxcpt.c b/sysdeps/alpha/fpu/feenablxcpt.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/feenablxcpt.c
+rename to sysdeps/alpha/fpu/feenablxcpt.c
+diff --git a/ports/sysdeps/alpha/fpu/fegetenv.c b/sysdeps/alpha/fpu/fegetenv.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/fegetenv.c
+rename to sysdeps/alpha/fpu/fegetenv.c
+diff --git a/ports/sysdeps/alpha/fpu/fegetexcept.c b/sysdeps/alpha/fpu/fegetexcept.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/fegetexcept.c
+rename to sysdeps/alpha/fpu/fegetexcept.c
+diff --git a/ports/sysdeps/alpha/fpu/fegetround.c b/sysdeps/alpha/fpu/fegetround.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/fegetround.c
+rename to sysdeps/alpha/fpu/fegetround.c
+diff --git a/ports/sysdeps/alpha/fpu/feholdexcpt.c b/sysdeps/alpha/fpu/feholdexcpt.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/feholdexcpt.c
+rename to sysdeps/alpha/fpu/feholdexcpt.c
+diff --git a/ports/sysdeps/alpha/fpu/fenv_libc.h b/sysdeps/alpha/fpu/fenv_libc.h
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/fenv_libc.h
+rename to sysdeps/alpha/fpu/fenv_libc.h
+diff --git a/ports/sysdeps/alpha/fpu/fesetenv.c b/sysdeps/alpha/fpu/fesetenv.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/fesetenv.c
+rename to sysdeps/alpha/fpu/fesetenv.c
+diff --git a/ports/sysdeps/alpha/fpu/fesetround.c b/sysdeps/alpha/fpu/fesetround.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/fesetround.c
+rename to sysdeps/alpha/fpu/fesetround.c
+diff --git a/ports/sysdeps/alpha/fpu/feupdateenv.c b/sysdeps/alpha/fpu/feupdateenv.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/feupdateenv.c
+rename to sysdeps/alpha/fpu/feupdateenv.c
+diff --git a/ports/sysdeps/alpha/fpu/fgetexcptflg.c b/sysdeps/alpha/fpu/fgetexcptflg.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/fgetexcptflg.c
+rename to sysdeps/alpha/fpu/fgetexcptflg.c
+diff --git a/ports/sysdeps/alpha/fpu/fpu_control.h b/sysdeps/alpha/fpu/fpu_control.h
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/fpu_control.h
+rename to sysdeps/alpha/fpu/fpu_control.h
+diff --git a/ports/sysdeps/alpha/fpu/fsetexcptflg.c b/sysdeps/alpha/fpu/fsetexcptflg.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/fsetexcptflg.c
+rename to sysdeps/alpha/fpu/fsetexcptflg.c
+diff --git a/ports/sysdeps/alpha/fpu/ftestexcept.c b/sysdeps/alpha/fpu/ftestexcept.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/ftestexcept.c
+rename to sysdeps/alpha/fpu/ftestexcept.c
+diff --git a/ports/sysdeps/alpha/fpu/get-rounding-mode.h b/sysdeps/alpha/fpu/get-rounding-mode.h
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/get-rounding-mode.h
+rename to sysdeps/alpha/fpu/get-rounding-mode.h
+diff --git a/ports/sysdeps/alpha/fpu/libm-test-ulps b/sysdeps/alpha/fpu/libm-test-ulps
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/libm-test-ulps
+rename to sysdeps/alpha/fpu/libm-test-ulps
+diff --git a/ports/sysdeps/alpha/fpu/math_private.h b/sysdeps/alpha/fpu/math_private.h
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/math_private.h
+rename to sysdeps/alpha/fpu/math_private.h
+diff --git a/ports/sysdeps/alpha/fpu/s_cacosf.c b/sysdeps/alpha/fpu/s_cacosf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_cacosf.c
+rename to sysdeps/alpha/fpu/s_cacosf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_cacoshf.c b/sysdeps/alpha/fpu/s_cacoshf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_cacoshf.c
+rename to sysdeps/alpha/fpu/s_cacoshf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_casinf.c b/sysdeps/alpha/fpu/s_casinf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_casinf.c
+rename to sysdeps/alpha/fpu/s_casinf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_casinhf.c b/sysdeps/alpha/fpu/s_casinhf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_casinhf.c
+rename to sysdeps/alpha/fpu/s_casinhf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_catanf.c b/sysdeps/alpha/fpu/s_catanf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_catanf.c
+rename to sysdeps/alpha/fpu/s_catanf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_catanhf.c b/sysdeps/alpha/fpu/s_catanhf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_catanhf.c
+rename to sysdeps/alpha/fpu/s_catanhf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_ccosf.c b/sysdeps/alpha/fpu/s_ccosf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_ccosf.c
+rename to sysdeps/alpha/fpu/s_ccosf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_ccoshf.c b/sysdeps/alpha/fpu/s_ccoshf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_ccoshf.c
+rename to sysdeps/alpha/fpu/s_ccoshf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_ceil.c b/sysdeps/alpha/fpu/s_ceil.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_ceil.c
+rename to sysdeps/alpha/fpu/s_ceil.c
+diff --git a/ports/sysdeps/alpha/fpu/s_ceilf.c b/sysdeps/alpha/fpu/s_ceilf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_ceilf.c
+rename to sysdeps/alpha/fpu/s_ceilf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_cexpf.c b/sysdeps/alpha/fpu/s_cexpf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_cexpf.c
+rename to sysdeps/alpha/fpu/s_cexpf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_clog10f.c b/sysdeps/alpha/fpu/s_clog10f.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_clog10f.c
+rename to sysdeps/alpha/fpu/s_clog10f.c
+diff --git a/ports/sysdeps/alpha/fpu/s_clogf.c b/sysdeps/alpha/fpu/s_clogf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_clogf.c
+rename to sysdeps/alpha/fpu/s_clogf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_copysign.c b/sysdeps/alpha/fpu/s_copysign.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_copysign.c
+rename to sysdeps/alpha/fpu/s_copysign.c
+diff --git a/ports/sysdeps/alpha/fpu/s_copysignf.c b/sysdeps/alpha/fpu/s_copysignf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_copysignf.c
+rename to sysdeps/alpha/fpu/s_copysignf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_cpowf.c b/sysdeps/alpha/fpu/s_cpowf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_cpowf.c
+rename to sysdeps/alpha/fpu/s_cpowf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_cprojf.c b/sysdeps/alpha/fpu/s_cprojf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_cprojf.c
+rename to sysdeps/alpha/fpu/s_cprojf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_csinf.c b/sysdeps/alpha/fpu/s_csinf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_csinf.c
+rename to sysdeps/alpha/fpu/s_csinf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_csinhf.c b/sysdeps/alpha/fpu/s_csinhf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_csinhf.c
+rename to sysdeps/alpha/fpu/s_csinhf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_csqrtf.c b/sysdeps/alpha/fpu/s_csqrtf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_csqrtf.c
+rename to sysdeps/alpha/fpu/s_csqrtf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_ctanf.c b/sysdeps/alpha/fpu/s_ctanf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_ctanf.c
+rename to sysdeps/alpha/fpu/s_ctanf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_ctanhf.c b/sysdeps/alpha/fpu/s_ctanhf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_ctanhf.c
+rename to sysdeps/alpha/fpu/s_ctanhf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_fabs.c b/sysdeps/alpha/fpu/s_fabs.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_fabs.c
+rename to sysdeps/alpha/fpu/s_fabs.c
+diff --git a/ports/sysdeps/alpha/fpu/s_fabsf.c b/sysdeps/alpha/fpu/s_fabsf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_fabsf.c
+rename to sysdeps/alpha/fpu/s_fabsf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_floor.c b/sysdeps/alpha/fpu/s_floor.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_floor.c
+rename to sysdeps/alpha/fpu/s_floor.c
+diff --git a/ports/sysdeps/alpha/fpu/s_floorf.c b/sysdeps/alpha/fpu/s_floorf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_floorf.c
+rename to sysdeps/alpha/fpu/s_floorf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_fmax.S b/sysdeps/alpha/fpu/s_fmax.S
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_fmax.S
+rename to sysdeps/alpha/fpu/s_fmax.S
+diff --git a/ports/sysdeps/alpha/fpu/s_fmaxf.S b/sysdeps/alpha/fpu/s_fmaxf.S
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_fmaxf.S
+rename to sysdeps/alpha/fpu/s_fmaxf.S
+diff --git a/ports/sysdeps/alpha/fpu/s_fmin.S b/sysdeps/alpha/fpu/s_fmin.S
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_fmin.S
+rename to sysdeps/alpha/fpu/s_fmin.S
+diff --git a/ports/sysdeps/alpha/fpu/s_fminf.S b/sysdeps/alpha/fpu/s_fminf.S
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_fminf.S
+rename to sysdeps/alpha/fpu/s_fminf.S
+diff --git a/ports/sysdeps/alpha/fpu/s_isnan.c b/sysdeps/alpha/fpu/s_isnan.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_isnan.c
+rename to sysdeps/alpha/fpu/s_isnan.c
+diff --git a/ports/sysdeps/alpha/fpu/s_isnanf.c b/sysdeps/alpha/fpu/s_isnanf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_isnanf.c
+rename to sysdeps/alpha/fpu/s_isnanf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_llrint.c b/sysdeps/alpha/fpu/s_llrint.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_llrint.c
+rename to sysdeps/alpha/fpu/s_llrint.c
+diff --git a/ports/sysdeps/alpha/fpu/s_llrintf.c b/sysdeps/alpha/fpu/s_llrintf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_llrintf.c
+rename to sysdeps/alpha/fpu/s_llrintf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_llround.c b/sysdeps/alpha/fpu/s_llround.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_llround.c
+rename to sysdeps/alpha/fpu/s_llround.c
+diff --git a/ports/sysdeps/alpha/fpu/s_llroundf.c b/sysdeps/alpha/fpu/s_llroundf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_llroundf.c
+rename to sysdeps/alpha/fpu/s_llroundf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_lrint.c b/sysdeps/alpha/fpu/s_lrint.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_lrint.c
+rename to sysdeps/alpha/fpu/s_lrint.c
+diff --git a/ports/sysdeps/alpha/fpu/s_lrintf.c b/sysdeps/alpha/fpu/s_lrintf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_lrintf.c
+rename to sysdeps/alpha/fpu/s_lrintf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_lround.c b/sysdeps/alpha/fpu/s_lround.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_lround.c
+rename to sysdeps/alpha/fpu/s_lround.c
+diff --git a/ports/sysdeps/alpha/fpu/s_lroundf.c b/sysdeps/alpha/fpu/s_lroundf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_lroundf.c
+rename to sysdeps/alpha/fpu/s_lroundf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_nearbyint.c b/sysdeps/alpha/fpu/s_nearbyint.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_nearbyint.c
+rename to sysdeps/alpha/fpu/s_nearbyint.c
+diff --git a/ports/sysdeps/alpha/fpu/s_nearbyintf.c b/sysdeps/alpha/fpu/s_nearbyintf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_nearbyintf.c
+rename to sysdeps/alpha/fpu/s_nearbyintf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_rint.c b/sysdeps/alpha/fpu/s_rint.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_rint.c
+rename to sysdeps/alpha/fpu/s_rint.c
+diff --git a/ports/sysdeps/alpha/fpu/s_rintf.c b/sysdeps/alpha/fpu/s_rintf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_rintf.c
+rename to sysdeps/alpha/fpu/s_rintf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_round.c b/sysdeps/alpha/fpu/s_round.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_round.c
+rename to sysdeps/alpha/fpu/s_round.c
+diff --git a/ports/sysdeps/alpha/fpu/s_roundf.c b/sysdeps/alpha/fpu/s_roundf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_roundf.c
+rename to sysdeps/alpha/fpu/s_roundf.c
+diff --git a/ports/sysdeps/alpha/fpu/s_trunc.c b/sysdeps/alpha/fpu/s_trunc.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_trunc.c
+rename to sysdeps/alpha/fpu/s_trunc.c
+diff --git a/ports/sysdeps/alpha/fpu/s_truncf.c b/sysdeps/alpha/fpu/s_truncf.c
+similarity index 100%
+rename from ports/sysdeps/alpha/fpu/s_truncf.c
+rename to sysdeps/alpha/fpu/s_truncf.c
+diff --git a/ports/sysdeps/alpha/gccframe.h b/sysdeps/alpha/gccframe.h
+similarity index 100%
+rename from ports/sysdeps/alpha/gccframe.h
+rename to sysdeps/alpha/gccframe.h
+diff --git a/ports/sysdeps/alpha/hp-timing.h b/sysdeps/alpha/hp-timing.h
+similarity index 100%
+rename from ports/sysdeps/alpha/hp-timing.h
+rename to sysdeps/alpha/hp-timing.h
+diff --git a/ports/sysdeps/alpha/htonl.S b/sysdeps/alpha/htonl.S
+similarity index 100%
+rename from ports/sysdeps/alpha/htonl.S
+rename to sysdeps/alpha/htonl.S
+diff --git a/ports/sysdeps/alpha/htons.S b/sysdeps/alpha/htons.S
+similarity index 100%
+rename from ports/sysdeps/alpha/htons.S
+rename to sysdeps/alpha/htons.S
+diff --git a/ports/sysdeps/alpha/jmpbuf-offsets.h b/sysdeps/alpha/jmpbuf-offsets.h
+similarity index 100%
+rename from ports/sysdeps/alpha/jmpbuf-offsets.h
+rename to sysdeps/alpha/jmpbuf-offsets.h
+diff --git a/ports/sysdeps/alpha/jmpbuf-unwind.h b/sysdeps/alpha/jmpbuf-unwind.h
+similarity index 100%
+rename from ports/sysdeps/alpha/jmpbuf-unwind.h
+rename to sysdeps/alpha/jmpbuf-unwind.h
+diff --git a/ports/sysdeps/alpha/ldiv.S b/sysdeps/alpha/ldiv.S
+similarity index 100%
+rename from ports/sysdeps/alpha/ldiv.S
+rename to sysdeps/alpha/ldiv.S
+diff --git a/ports/sysdeps/alpha/ldsodefs.h b/sysdeps/alpha/ldsodefs.h
+similarity index 100%
+rename from ports/sysdeps/alpha/ldsodefs.h
+rename to sysdeps/alpha/ldsodefs.h
+diff --git a/ports/sysdeps/alpha/libc-tls.c b/sysdeps/alpha/libc-tls.c
+similarity index 100%
+rename from ports/sysdeps/alpha/libc-tls.c
+rename to sysdeps/alpha/libc-tls.c
+diff --git a/ports/sysdeps/alpha/lldiv.S b/sysdeps/alpha/lldiv.S
+similarity index 100%
+rename from ports/sysdeps/alpha/lldiv.S
+rename to sysdeps/alpha/lldiv.S
+diff --git a/ports/sysdeps/alpha/lshift.S b/sysdeps/alpha/lshift.S
+similarity index 100%
+rename from ports/sysdeps/alpha/lshift.S
+rename to sysdeps/alpha/lshift.S
+diff --git a/ports/sysdeps/alpha/machine-gmon.h b/sysdeps/alpha/machine-gmon.h
+similarity index 100%
+rename from ports/sysdeps/alpha/machine-gmon.h
+rename to sysdeps/alpha/machine-gmon.h
+diff --git a/ports/sysdeps/alpha/memchr.c b/sysdeps/alpha/memchr.c
+similarity index 100%
+rename from ports/sysdeps/alpha/memchr.c
+rename to sysdeps/alpha/memchr.c
+diff --git a/ports/sysdeps/alpha/memset.S b/sysdeps/alpha/memset.S
+similarity index 100%
+rename from ports/sysdeps/alpha/memset.S
+rename to sysdeps/alpha/memset.S
+diff --git a/ports/sysdeps/alpha/memusage.h b/sysdeps/alpha/memusage.h
+similarity index 100%
+rename from ports/sysdeps/alpha/memusage.h
+rename to sysdeps/alpha/memusage.h
+diff --git a/ports/sysdeps/alpha/mul_1.S b/sysdeps/alpha/mul_1.S
+similarity index 100%
+rename from ports/sysdeps/alpha/mul_1.S
+rename to sysdeps/alpha/mul_1.S
+diff --git a/ports/sysdeps/alpha/nptl/Makefile b/sysdeps/alpha/nptl/Makefile
+similarity index 100%
+rename from ports/sysdeps/alpha/nptl/Makefile
+rename to sysdeps/alpha/nptl/Makefile
+diff --git a/ports/sysdeps/alpha/nptl/pthread_spin_lock.S b/sysdeps/alpha/nptl/pthread_spin_lock.S
+similarity index 100%
+rename from ports/sysdeps/alpha/nptl/pthread_spin_lock.S
+rename to sysdeps/alpha/nptl/pthread_spin_lock.S
+diff --git a/ports/sysdeps/alpha/nptl/pthread_spin_trylock.S b/sysdeps/alpha/nptl/pthread_spin_trylock.S
+similarity index 100%
+rename from ports/sysdeps/alpha/nptl/pthread_spin_trylock.S
+rename to sysdeps/alpha/nptl/pthread_spin_trylock.S
+diff --git a/ports/sysdeps/alpha/nptl/pthreaddef.h b/sysdeps/alpha/nptl/pthreaddef.h
+similarity index 100%
+rename from ports/sysdeps/alpha/nptl/pthreaddef.h
+rename to sysdeps/alpha/nptl/pthreaddef.h
+diff --git a/ports/sysdeps/alpha/nptl/tcb-offsets.sym b/sysdeps/alpha/nptl/tcb-offsets.sym
+similarity index 100%
+rename from ports/sysdeps/alpha/nptl/tcb-offsets.sym
+rename to sysdeps/alpha/nptl/tcb-offsets.sym
+diff --git a/ports/sysdeps/alpha/nptl/tls.h b/sysdeps/alpha/nptl/tls.h
+similarity index 100%
+rename from ports/sysdeps/alpha/nptl/tls.h
+rename to sysdeps/alpha/nptl/tls.h
+diff --git a/ports/sysdeps/alpha/nscd-types.h b/sysdeps/alpha/nscd-types.h
+similarity index 100%
+rename from ports/sysdeps/alpha/nscd-types.h
+rename to sysdeps/alpha/nscd-types.h
+diff --git a/ports/sysdeps/alpha/preconfigure b/sysdeps/alpha/preconfigure
+similarity index 100%
+rename from ports/sysdeps/alpha/preconfigure
+rename to sysdeps/alpha/preconfigure
+diff --git a/ports/sysdeps/alpha/rawmemchr.S b/sysdeps/alpha/rawmemchr.S
+similarity index 100%
+rename from ports/sysdeps/alpha/rawmemchr.S
+rename to sysdeps/alpha/rawmemchr.S
+diff --git a/ports/sysdeps/alpha/reml.S b/sysdeps/alpha/reml.S
+similarity index 100%
+rename from ports/sysdeps/alpha/reml.S
+rename to sysdeps/alpha/reml.S
+diff --git a/ports/sysdeps/alpha/remlu.S b/sysdeps/alpha/remlu.S
+similarity index 100%
+rename from ports/sysdeps/alpha/remlu.S
+rename to sysdeps/alpha/remlu.S
+diff --git a/ports/sysdeps/alpha/remq.S b/sysdeps/alpha/remq.S
+similarity index 100%
+rename from ports/sysdeps/alpha/remq.S
+rename to sysdeps/alpha/remq.S
+diff --git a/ports/sysdeps/alpha/remqu.S b/sysdeps/alpha/remqu.S
+similarity index 100%
+rename from ports/sysdeps/alpha/remqu.S
+rename to sysdeps/alpha/remqu.S
+diff --git a/ports/sysdeps/alpha/rshift.S b/sysdeps/alpha/rshift.S
+similarity index 100%
+rename from ports/sysdeps/alpha/rshift.S
+rename to sysdeps/alpha/rshift.S
+diff --git a/ports/sysdeps/alpha/setjmp.S b/sysdeps/alpha/setjmp.S
+similarity index 100%
+rename from ports/sysdeps/alpha/setjmp.S
+rename to sysdeps/alpha/setjmp.S
+diff --git a/ports/sysdeps/alpha/shlib-versions b/sysdeps/alpha/shlib-versions
+similarity index 100%
+rename from ports/sysdeps/alpha/shlib-versions
+rename to sysdeps/alpha/shlib-versions
+diff --git a/ports/sysdeps/alpha/soft-fp/Makefile b/sysdeps/alpha/soft-fp/Makefile
+similarity index 100%
+rename from ports/sysdeps/alpha/soft-fp/Makefile
+rename to sysdeps/alpha/soft-fp/Makefile
+diff --git a/ports/sysdeps/alpha/soft-fp/Versions b/sysdeps/alpha/soft-fp/Versions
+similarity index 100%
+rename from ports/sysdeps/alpha/soft-fp/Versions
+rename to sysdeps/alpha/soft-fp/Versions
+diff --git a/ports/sysdeps/alpha/soft-fp/e_sqrtl.c b/sysdeps/alpha/soft-fp/e_sqrtl.c
+similarity index 100%
+rename from ports/sysdeps/alpha/soft-fp/e_sqrtl.c
+rename to sysdeps/alpha/soft-fp/e_sqrtl.c
+diff --git a/ports/sysdeps/alpha/soft-fp/local-soft-fp.h b/sysdeps/alpha/soft-fp/local-soft-fp.h
+similarity index 100%
+rename from ports/sysdeps/alpha/soft-fp/local-soft-fp.h
+rename to sysdeps/alpha/soft-fp/local-soft-fp.h
+diff --git a/ports/sysdeps/alpha/soft-fp/ots_add.c b/sysdeps/alpha/soft-fp/ots_add.c
+similarity index 100%
+rename from ports/sysdeps/alpha/soft-fp/ots_add.c
+rename to sysdeps/alpha/soft-fp/ots_add.c
+diff --git a/ports/sysdeps/alpha/soft-fp/ots_cmp.c b/sysdeps/alpha/soft-fp/ots_cmp.c
+similarity index 100%
+rename from ports/sysdeps/alpha/soft-fp/ots_cmp.c
+rename to sysdeps/alpha/soft-fp/ots_cmp.c
+diff --git a/ports/sysdeps/alpha/soft-fp/ots_cmpe.c b/sysdeps/alpha/soft-fp/ots_cmpe.c
+similarity index 100%
+rename from ports/sysdeps/alpha/soft-fp/ots_cmpe.c
+rename to sysdeps/alpha/soft-fp/ots_cmpe.c
+diff --git a/ports/sysdeps/alpha/soft-fp/ots_cvtqux.c b/sysdeps/alpha/soft-fp/ots_cvtqux.c
+similarity index 100%
+rename from ports/sysdeps/alpha/soft-fp/ots_cvtqux.c
+rename to sysdeps/alpha/soft-fp/ots_cvtqux.c
+diff --git a/ports/sysdeps/alpha/soft-fp/ots_cvtqx.c b/sysdeps/alpha/soft-fp/ots_cvtqx.c
+similarity index 100%
+rename from ports/sysdeps/alpha/soft-fp/ots_cvtqx.c
+rename to sysdeps/alpha/soft-fp/ots_cvtqx.c
+diff --git a/ports/sysdeps/alpha/soft-fp/ots_cvttx.c b/sysdeps/alpha/soft-fp/ots_cvttx.c
+similarity index 100%
+rename from ports/sysdeps/alpha/soft-fp/ots_cvttx.c
+rename to sysdeps/alpha/soft-fp/ots_cvttx.c
+diff --git a/ports/sysdeps/alpha/soft-fp/ots_cvtxq.c b/sysdeps/alpha/soft-fp/ots_cvtxq.c
+similarity index 100%
+rename from ports/sysdeps/alpha/soft-fp/ots_cvtxq.c
+rename to sysdeps/alpha/soft-fp/ots_cvtxq.c
+diff --git a/ports/sysdeps/alpha/soft-fp/ots_cvtxt.c b/sysdeps/alpha/soft-fp/ots_cvtxt.c
+similarity index 100%
+rename from ports/sysdeps/alpha/soft-fp/ots_cvtxt.c
+rename to sysdeps/alpha/soft-fp/ots_cvtxt.c
+diff --git a/ports/sysdeps/alpha/soft-fp/ots_div.c b/sysdeps/alpha/soft-fp/ots_div.c
+similarity index 100%
+rename from ports/sysdeps/alpha/soft-fp/ots_div.c
+rename to sysdeps/alpha/soft-fp/ots_div.c
+diff --git a/ports/sysdeps/alpha/soft-fp/ots_mul.c b/sysdeps/alpha/soft-fp/ots_mul.c
+similarity index 100%
+rename from ports/sysdeps/alpha/soft-fp/ots_mul.c
+rename to sysdeps/alpha/soft-fp/ots_mul.c
+diff --git a/ports/sysdeps/alpha/soft-fp/ots_nintxq.c b/sysdeps/alpha/soft-fp/ots_nintxq.c
+similarity index 100%
+rename from ports/sysdeps/alpha/soft-fp/ots_nintxq.c
+rename to sysdeps/alpha/soft-fp/ots_nintxq.c
+diff --git a/ports/sysdeps/alpha/soft-fp/ots_sub.c b/sysdeps/alpha/soft-fp/ots_sub.c
+similarity index 100%
+rename from ports/sysdeps/alpha/soft-fp/ots_sub.c
+rename to sysdeps/alpha/soft-fp/ots_sub.c
+diff --git a/ports/sysdeps/alpha/soft-fp/sfp-machine.h b/sysdeps/alpha/soft-fp/sfp-machine.h
+similarity index 100%
+rename from ports/sysdeps/alpha/soft-fp/sfp-machine.h
+rename to sysdeps/alpha/soft-fp/sfp-machine.h
+diff --git a/ports/sysdeps/alpha/sotruss-lib.c b/sysdeps/alpha/sotruss-lib.c
+similarity index 100%
+rename from ports/sysdeps/alpha/sotruss-lib.c
+rename to sysdeps/alpha/sotruss-lib.c
+diff --git a/ports/sysdeps/alpha/stackinfo.h b/sysdeps/alpha/stackinfo.h
+similarity index 100%
+rename from ports/sysdeps/alpha/stackinfo.h
+rename to sysdeps/alpha/stackinfo.h
+diff --git a/ports/sysdeps/alpha/start.S b/sysdeps/alpha/start.S
+similarity index 100%
+rename from ports/sysdeps/alpha/start.S
+rename to sysdeps/alpha/start.S
+diff --git a/ports/sysdeps/alpha/stpcpy.S b/sysdeps/alpha/stpcpy.S
+similarity index 100%
+rename from ports/sysdeps/alpha/stpcpy.S
+rename to sysdeps/alpha/stpcpy.S
+diff --git a/ports/sysdeps/alpha/stpncpy.S b/sysdeps/alpha/stpncpy.S
+similarity index 100%
+rename from ports/sysdeps/alpha/stpncpy.S
+rename to sysdeps/alpha/stpncpy.S
+diff --git a/ports/sysdeps/alpha/strcat.S b/sysdeps/alpha/strcat.S
+similarity index 100%
+rename from ports/sysdeps/alpha/strcat.S
+rename to sysdeps/alpha/strcat.S
+diff --git a/ports/sysdeps/alpha/strchr.S b/sysdeps/alpha/strchr.S
+similarity index 100%
+rename from ports/sysdeps/alpha/strchr.S
+rename to sysdeps/alpha/strchr.S
+diff --git a/ports/sysdeps/alpha/strcmp.S b/sysdeps/alpha/strcmp.S
+similarity index 100%
+rename from ports/sysdeps/alpha/strcmp.S
+rename to sysdeps/alpha/strcmp.S
+diff --git a/ports/sysdeps/alpha/strcpy.S b/sysdeps/alpha/strcpy.S
+similarity index 100%
+rename from ports/sysdeps/alpha/strcpy.S
+rename to sysdeps/alpha/strcpy.S
+diff --git a/ports/sysdeps/alpha/strlen.S b/sysdeps/alpha/strlen.S
+similarity index 100%
+rename from ports/sysdeps/alpha/strlen.S
+rename to sysdeps/alpha/strlen.S
+diff --git a/ports/sysdeps/alpha/strncat.S b/sysdeps/alpha/strncat.S
+similarity index 100%
+rename from ports/sysdeps/alpha/strncat.S
+rename to sysdeps/alpha/strncat.S
+diff --git a/ports/sysdeps/alpha/strncmp.S b/sysdeps/alpha/strncmp.S
+similarity index 100%
+rename from ports/sysdeps/alpha/strncmp.S
+rename to sysdeps/alpha/strncmp.S
+diff --git a/ports/sysdeps/alpha/strncpy.S b/sysdeps/alpha/strncpy.S
+similarity index 100%
+rename from ports/sysdeps/alpha/strncpy.S
+rename to sysdeps/alpha/strncpy.S
+diff --git a/ports/sysdeps/alpha/strrchr.S b/sysdeps/alpha/strrchr.S
+similarity index 100%
+rename from ports/sysdeps/alpha/strrchr.S
+rename to sysdeps/alpha/strrchr.S
+diff --git a/ports/sysdeps/alpha/stxcpy.S b/sysdeps/alpha/stxcpy.S
+similarity index 100%
+rename from ports/sysdeps/alpha/stxcpy.S
+rename to sysdeps/alpha/stxcpy.S
+diff --git a/ports/sysdeps/alpha/stxncpy.S b/sysdeps/alpha/stxncpy.S
+similarity index 100%
+rename from ports/sysdeps/alpha/stxncpy.S
+rename to sysdeps/alpha/stxncpy.S
+diff --git a/ports/sysdeps/alpha/sub_n.S b/sysdeps/alpha/sub_n.S
+similarity index 100%
+rename from ports/sysdeps/alpha/sub_n.S
+rename to sysdeps/alpha/sub_n.S
+diff --git a/ports/sysdeps/alpha/submul_1.S b/sysdeps/alpha/submul_1.S
+similarity index 100%
+rename from ports/sysdeps/alpha/submul_1.S
+rename to sysdeps/alpha/submul_1.S
+diff --git a/ports/sysdeps/alpha/tininess.h b/sysdeps/alpha/tininess.h
+similarity index 100%
+rename from ports/sysdeps/alpha/tininess.h
+rename to sysdeps/alpha/tininess.h
+diff --git a/ports/sysdeps/alpha/tls-macros.h b/sysdeps/alpha/tls-macros.h
+similarity index 100%
+rename from ports/sysdeps/alpha/tls-macros.h
+rename to sysdeps/alpha/tls-macros.h
+diff --git a/ports/sysdeps/alpha/tst-audit.h b/sysdeps/alpha/tst-audit.h
+similarity index 100%
+rename from ports/sysdeps/alpha/tst-audit.h
+rename to sysdeps/alpha/tst-audit.h
+diff --git a/ports/sysdeps/alpha/udiv_qrnnd.S b/sysdeps/alpha/udiv_qrnnd.S
+similarity index 100%
+rename from ports/sysdeps/alpha/udiv_qrnnd.S
+rename to sysdeps/alpha/udiv_qrnnd.S
+diff --git a/ports/sysdeps/unix/alpha/Makefile b/sysdeps/unix/alpha/Makefile
+similarity index 100%
+rename from ports/sysdeps/unix/alpha/Makefile
+rename to sysdeps/unix/alpha/Makefile
+diff --git a/ports/sysdeps/unix/alpha/getegid.S b/sysdeps/unix/alpha/getegid.S
+similarity index 100%
+rename from ports/sysdeps/unix/alpha/getegid.S
+rename to sysdeps/unix/alpha/getegid.S
+diff --git a/ports/sysdeps/unix/alpha/geteuid.S b/sysdeps/unix/alpha/geteuid.S
+similarity index 100%
+rename from ports/sysdeps/unix/alpha/geteuid.S
+rename to sysdeps/unix/alpha/geteuid.S
+diff --git a/ports/sysdeps/unix/alpha/getppid.S b/sysdeps/unix/alpha/getppid.S
+similarity index 100%
+rename from ports/sysdeps/unix/alpha/getppid.S
+rename to sysdeps/unix/alpha/getppid.S
+diff --git a/ports/sysdeps/unix/alpha/pipe.S b/sysdeps/unix/alpha/pipe.S
+similarity index 100%
+rename from ports/sysdeps/unix/alpha/pipe.S
+rename to sysdeps/unix/alpha/pipe.S
+diff --git a/ports/sysdeps/unix/alpha/rt-sysdep.S b/sysdeps/unix/alpha/rt-sysdep.S
+similarity index 100%
+rename from ports/sysdeps/unix/alpha/rt-sysdep.S
+rename to sysdeps/unix/alpha/rt-sysdep.S
+diff --git a/ports/sysdeps/unix/alpha/sysdep.S b/sysdeps/unix/alpha/sysdep.S
+similarity index 100%
+rename from ports/sysdeps/unix/alpha/sysdep.S
+rename to sysdeps/unix/alpha/sysdep.S
+diff --git a/ports/sysdeps/unix/alpha/sysdep.h b/sysdeps/unix/alpha/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/unix/alpha/sysdep.h
+rename to sysdeps/unix/alpha/sysdep.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/Implies b/sysdeps/unix/sysv/linux/alpha/Implies
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/Implies
+rename to sysdeps/unix/sysv/linux/alpha/Implies
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/Makefile b/sysdeps/unix/sysv/linux/alpha/Makefile
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/Makefile
+rename to sysdeps/unix/sysv/linux/alpha/Makefile
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/Versions b/sysdeps/unix/sysv/linux/alpha/Versions
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/Versions
+rename to sysdeps/unix/sysv/linux/alpha/Versions
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S b/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S
+rename to sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/a.out.h b/sysdeps/unix/sysv/linux/alpha/a.out.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/a.out.h
+rename to sysdeps/unix/sysv/linux/alpha/a.out.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/adjtime.c b/sysdeps/unix/sysv/linux/alpha/adjtime.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/adjtime.c
+rename to sysdeps/unix/sysv/linux/alpha/adjtime.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/alpha/ptrace.h b/sysdeps/unix/sysv/linux/alpha/alpha/ptrace.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/alpha/ptrace.h
+rename to sysdeps/unix/sysv/linux/alpha/alpha/ptrace.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/alpha/regdef.h b/sysdeps/unix/sysv/linux/alpha/alpha/regdef.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/alpha/regdef.h
+rename to sysdeps/unix/sysv/linux/alpha/alpha/regdef.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/alphaev6/fpu/Implies b/sysdeps/unix/sysv/linux/alpha/alphaev6/fpu/Implies
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/alphaev6/fpu/Implies
+rename to sysdeps/unix/sysv/linux/alpha/alphaev6/fpu/Implies
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/alphaev67/fpu/Implies b/sysdeps/unix/sysv/linux/alpha/alphaev67/fpu/Implies
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/alphaev67/fpu/Implies
+rename to sysdeps/unix/sysv/linux/alpha/alphaev67/fpu/Implies
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/a.out.h b/sysdeps/unix/sysv/linux/alpha/bits/a.out.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/a.out.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/a.out.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/dirent.h b/sysdeps/unix/sysv/linux/alpha/bits/dirent.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/dirent.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/dirent.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/elfclass.h b/sysdeps/unix/sysv/linux/alpha/bits/elfclass.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/elfclass.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/elfclass.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/epoll.h b/sysdeps/unix/sysv/linux/alpha/bits/epoll.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/epoll.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/epoll.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/errno.h b/sysdeps/unix/sysv/linux/alpha/bits/errno.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/errno.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/errno.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/eventfd.h b/sysdeps/unix/sysv/linux/alpha/bits/eventfd.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/eventfd.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/eventfd.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h b/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/fcntl.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/inotify.h b/sysdeps/unix/sysv/linux/alpha/bits/inotify.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/inotify.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/inotify.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h b/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/ioctls.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/ioctls.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/ipc.h b/sysdeps/unix/sysv/linux/alpha/bits/ipc.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/ipc.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/ipc.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/mman.h b/sysdeps/unix/sysv/linux/alpha/bits/mman.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/mman.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/mman.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/msq.h b/sysdeps/unix/sysv/linux/alpha/bits/msq.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/msq.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/msq.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/netdb.h b/sysdeps/unix/sysv/linux/alpha/bits/netdb.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/netdb.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/netdb.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/resource.h b/sysdeps/unix/sysv/linux/alpha/bits/resource.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/resource.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/resource.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/sem.h b/sysdeps/unix/sysv/linux/alpha/bits/sem.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/sem.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/sem.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/shm.h b/sysdeps/unix/sysv/linux/alpha/bits/shm.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/shm.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/shm.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h b/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/sigaction.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h b/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/siginfo.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h b/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/signalfd.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/signalfd.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/signum.h b/sysdeps/unix/sysv/linux/alpha/bits/signum.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/signum.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/signum.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h b/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/socket_type.h b/sysdeps/unix/sysv/linux/alpha/bits/socket_type.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/socket_type.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/socket_type.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/stat.h b/sysdeps/unix/sysv/linux/alpha/bits/stat.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/stat.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/stat.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/statfs.h b/sysdeps/unix/sysv/linux/alpha/bits/statfs.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/statfs.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/statfs.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/termios.h b/sysdeps/unix/sysv/linux/alpha/bits/termios.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/termios.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/termios.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/timerfd.h b/sysdeps/unix/sysv/linux/alpha/bits/timerfd.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/timerfd.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/timerfd.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h b/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h b/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/bits/wordsize.h
+rename to sysdeps/unix/sysv/linux/alpha/bits/wordsize.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/brk.S b/sysdeps/unix/sysv/linux/alpha/brk.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/brk.S
+rename to sysdeps/unix/sysv/linux/alpha/brk.S
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/clone.S b/sysdeps/unix/sysv/linux/alpha/clone.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/clone.S
+rename to sysdeps/unix/sysv/linux/alpha/clone.S
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/configure b/sysdeps/unix/sysv/linux/alpha/configure
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/configure
+rename to sysdeps/unix/sysv/linux/alpha/configure
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/configure.in b/sysdeps/unix/sysv/linux/alpha/configure.in
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/configure.in
+rename to sysdeps/unix/sysv/linux/alpha/configure.in
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/creat.c b/sysdeps/unix/sysv/linux/alpha/creat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/creat.c
+rename to sysdeps/unix/sysv/linux/alpha/creat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/dl-auxv.h b/sysdeps/unix/sysv/linux/alpha/dl-auxv.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/dl-auxv.h
+rename to sysdeps/unix/sysv/linux/alpha/dl-auxv.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/dl-brk.S b/sysdeps/unix/sysv/linux/alpha/dl-brk.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/dl-brk.S
+rename to sysdeps/unix/sysv/linux/alpha/dl-brk.S
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/dl-fxstatat64.c b/sysdeps/unix/sysv/linux/alpha/dl-fxstatat64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/dl-fxstatat64.c
+rename to sysdeps/unix/sysv/linux/alpha/dl-fxstatat64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/dl-support.c b/sysdeps/unix/sysv/linux/alpha/dl-support.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/dl-support.c
+rename to sysdeps/unix/sysv/linux/alpha/dl-support.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/dl-sysdep.c b/sysdeps/unix/sysv/linux/alpha/dl-sysdep.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/dl-sysdep.c
+rename to sysdeps/unix/sysv/linux/alpha/dl-sysdep.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/fdatasync.c b/sysdeps/unix/sysv/linux/alpha/fdatasync.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/fdatasync.c
+rename to sysdeps/unix/sysv/linux/alpha/fdatasync.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/fpu/Implies b/sysdeps/unix/sysv/linux/alpha/fpu/Implies
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/fpu/Implies
+rename to sysdeps/unix/sysv/linux/alpha/fpu/Implies
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S b/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
+rename to sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/fstatfs64.c b/sysdeps/unix/sysv/linux/alpha/fstatfs64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/fstatfs64.c
+rename to sysdeps/unix/sysv/linux/alpha/fstatfs64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/fstatvfs.c b/sysdeps/unix/sysv/linux/alpha/fstatvfs.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/fstatvfs.c
+rename to sysdeps/unix/sysv/linux/alpha/fstatvfs.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/fstatvfs64.c b/sysdeps/unix/sysv/linux/alpha/fstatvfs64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/fstatvfs64.c
+rename to sysdeps/unix/sysv/linux/alpha/fstatvfs64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/fxstat.c b/sysdeps/unix/sysv/linux/alpha/fxstat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/fxstat.c
+rename to sysdeps/unix/sysv/linux/alpha/fxstat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/fxstatat.c b/sysdeps/unix/sysv/linux/alpha/fxstatat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/fxstatat.c
+rename to sysdeps/unix/sysv/linux/alpha/fxstatat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/getclktck.c b/sysdeps/unix/sysv/linux/alpha/getclktck.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/getclktck.c
+rename to sysdeps/unix/sysv/linux/alpha/getclktck.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/getcontext.S b/sysdeps/unix/sysv/linux/alpha/getcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/getcontext.S
+rename to sysdeps/unix/sysv/linux/alpha/getcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/getdents.c b/sysdeps/unix/sysv/linux/alpha/getdents.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/getdents.c
+rename to sysdeps/unix/sysv/linux/alpha/getdents.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/getdents64.c b/sysdeps/unix/sysv/linux/alpha/getdents64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/getdents64.c
+rename to sysdeps/unix/sysv/linux/alpha/getdents64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/gethostname.c b/sysdeps/unix/sysv/linux/alpha/gethostname.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/gethostname.c
+rename to sysdeps/unix/sysv/linux/alpha/gethostname.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/getsysstats.c b/sysdeps/unix/sysv/linux/alpha/getsysstats.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/getsysstats.c
+rename to sysdeps/unix/sysv/linux/alpha/getsysstats.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/glob.c b/sysdeps/unix/sysv/linux/alpha/glob.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/glob.c
+rename to sysdeps/unix/sysv/linux/alpha/glob.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S b/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
+rename to sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S b/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
+rename to sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/internal_statvfs64.c b/sysdeps/unix/sysv/linux/alpha/internal_statvfs64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/internal_statvfs64.c
+rename to sysdeps/unix/sysv/linux/alpha/internal_statvfs64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/ioperm.c b/sysdeps/unix/sysv/linux/alpha/ioperm.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/ioperm.c
+rename to sysdeps/unix/sysv/linux/alpha/ioperm.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/ipc_priv.h b/sysdeps/unix/sysv/linux/alpha/ipc_priv.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/ipc_priv.h
+rename to sysdeps/unix/sysv/linux/alpha/ipc_priv.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/kernel-features.h b/sysdeps/unix/sysv/linux/alpha/kernel-features.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/kernel-features.h
+rename to sysdeps/unix/sysv/linux/alpha/kernel-features.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h b/sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h
+rename to sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/kernel_stat.h b/sysdeps/unix/sysv/linux/alpha/kernel_stat.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/kernel_stat.h
+rename to sysdeps/unix/sysv/linux/alpha/kernel_stat.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/kernel_sysinfo.h b/sysdeps/unix/sysv/linux/alpha/kernel_sysinfo.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/kernel_sysinfo.h
+rename to sysdeps/unix/sysv/linux/alpha/kernel_sysinfo.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/kernel_termios.h b/sysdeps/unix/sysv/linux/alpha/kernel_termios.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/kernel_termios.h
+rename to sysdeps/unix/sysv/linux/alpha/kernel_termios.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/lxstat.c b/sysdeps/unix/sysv/linux/alpha/lxstat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/lxstat.c
+rename to sysdeps/unix/sysv/linux/alpha/lxstat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/makecontext.S b/sysdeps/unix/sysv/linux/alpha/makecontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/makecontext.S
+rename to sysdeps/unix/sysv/linux/alpha/makecontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/msgctl.c b/sysdeps/unix/sysv/linux/alpha/msgctl.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/msgctl.c
+rename to sysdeps/unix/sysv/linux/alpha/msgctl.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nldbl-abi.h b/sysdeps/unix/sysv/linux/alpha/nldbl-abi.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nldbl-abi.h
+rename to sysdeps/unix/sysv/linux/alpha/nldbl-abi.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/Makefile b/sysdeps/unix/sysv/linux/alpha/nptl/Makefile
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/Makefile
+rename to sysdeps/unix/sysv/linux/alpha/nptl/Makefile
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/Versions b/sysdeps/unix/sysv/linux/alpha/nptl/Versions
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/Versions
+rename to sysdeps/unix/sysv/linux/alpha/nptl/Versions
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/aio_cancel.c b/sysdeps/unix/sysv/linux/alpha/nptl/aio_cancel.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/aio_cancel.c
+rename to sysdeps/unix/sysv/linux/alpha/nptl/aio_cancel.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/bits/local_lim.h b/sysdeps/unix/sysv/linux/alpha/nptl/bits/local_lim.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/bits/local_lim.h
+rename to sysdeps/unix/sysv/linux/alpha/nptl/bits/local_lim.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/bits/pthreadtypes.h b/sysdeps/unix/sysv/linux/alpha/nptl/bits/pthreadtypes.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/bits/pthreadtypes.h
+rename to sysdeps/unix/sysv/linux/alpha/nptl/bits/pthreadtypes.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/bits/semaphore.h b/sysdeps/unix/sysv/linux/alpha/nptl/bits/semaphore.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/bits/semaphore.h
+rename to sysdeps/unix/sysv/linux/alpha/nptl/bits/semaphore.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/c++-types.data b/sysdeps/unix/sysv/linux/alpha/nptl/c++-types.data
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/c++-types.data
+rename to sysdeps/unix/sysv/linux/alpha/nptl/c++-types.data
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/clone.S b/sysdeps/unix/sysv/linux/alpha/nptl/clone.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/clone.S
+rename to sysdeps/unix/sysv/linux/alpha/nptl/clone.S
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/createthread.c b/sysdeps/unix/sysv/linux/alpha/nptl/createthread.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/createthread.c
+rename to sysdeps/unix/sysv/linux/alpha/nptl/createthread.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/fork.c b/sysdeps/unix/sysv/linux/alpha/nptl/fork.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/fork.c
+rename to sysdeps/unix/sysv/linux/alpha/nptl/fork.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/ld.abilist b/sysdeps/unix/sysv/linux/alpha/nptl/ld.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/ld.abilist
+rename to sysdeps/unix/sysv/linux/alpha/nptl/ld.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/alpha/nptl/libBrokenLocale.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/libBrokenLocale.abilist
+rename to sysdeps/unix/sysv/linux/alpha/nptl/libBrokenLocale.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/libanl.abilist b/sysdeps/unix/sysv/linux/alpha/nptl/libanl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/libanl.abilist
+rename to sysdeps/unix/sysv/linux/alpha/nptl/libanl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist b/sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist
+rename to sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist b/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist
+rename to sysdeps/unix/sysv/linux/alpha/nptl/libcrypt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/libdl.abilist b/sysdeps/unix/sysv/linux/alpha/nptl/libdl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/libdl.abilist
+rename to sysdeps/unix/sysv/linux/alpha/nptl/libdl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/libm.abilist b/sysdeps/unix/sysv/linux/alpha/nptl/libm.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/libm.abilist
+rename to sysdeps/unix/sysv/linux/alpha/nptl/libm.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/libnsl.abilist b/sysdeps/unix/sysv/linux/alpha/nptl/libnsl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/libnsl.abilist
+rename to sysdeps/unix/sysv/linux/alpha/nptl/libnsl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/nptl/libpthread.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/libpthread.abilist
+rename to sysdeps/unix/sysv/linux/alpha/nptl/libpthread.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/libresolv.abilist b/sysdeps/unix/sysv/linux/alpha/nptl/libresolv.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/libresolv.abilist
+rename to sysdeps/unix/sysv/linux/alpha/nptl/libresolv.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/librt.abilist b/sysdeps/unix/sysv/linux/alpha/nptl/librt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/librt.abilist
+rename to sysdeps/unix/sysv/linux/alpha/nptl/librt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/libthread_db.abilist b/sysdeps/unix/sysv/linux/alpha/nptl/libthread_db.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/libthread_db.abilist
+rename to sysdeps/unix/sysv/linux/alpha/nptl/libthread_db.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/libutil.abilist b/sysdeps/unix/sysv/linux/alpha/nptl/libutil.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/libutil.abilist
+rename to sysdeps/unix/sysv/linux/alpha/nptl/libutil.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/localplt.data b/sysdeps/unix/sysv/linux/alpha/nptl/localplt.data
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/localplt.data
+rename to sysdeps/unix/sysv/linux/alpha/nptl/localplt.data
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h b/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h
+rename to sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/pt-vfork.S b/sysdeps/unix/sysv/linux/alpha/nptl/pt-vfork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/pt-vfork.S
+rename to sysdeps/unix/sysv/linux/alpha/nptl/pt-vfork.S
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/pthread_once.c b/sysdeps/unix/sysv/linux/alpha/nptl/pthread_once.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/pthread_once.c
+rename to sysdeps/unix/sysv/linux/alpha/nptl/pthread_once.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/sysdep-cancel.h b/sysdeps/unix/sysv/linux/alpha/nptl/sysdep-cancel.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/sysdep-cancel.h
+rename to sysdeps/unix/sysv/linux/alpha/nptl/sysdep-cancel.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_create.c b/sysdeps/unix/sysv/linux/alpha/nptl/timer_create.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_create.c
+rename to sysdeps/unix/sysv/linux/alpha/nptl/timer_create.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_delete.c b/sysdeps/unix/sysv/linux/alpha/nptl/timer_delete.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_delete.c
+rename to sysdeps/unix/sysv/linux/alpha/nptl/timer_delete.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_getoverr.c b/sysdeps/unix/sysv/linux/alpha/nptl/timer_getoverr.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_getoverr.c
+rename to sysdeps/unix/sysv/linux/alpha/nptl/timer_getoverr.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_gettime.c b/sysdeps/unix/sysv/linux/alpha/nptl/timer_gettime.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_gettime.c
+rename to sysdeps/unix/sysv/linux/alpha/nptl/timer_gettime.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_settime.c b/sysdeps/unix/sysv/linux/alpha/nptl/timer_settime.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/timer_settime.c
+rename to sysdeps/unix/sysv/linux/alpha/nptl/timer_settime.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/vfork.S b/sysdeps/unix/sysv/linux/alpha/nptl/vfork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/nptl/vfork.S
+rename to sysdeps/unix/sysv/linux/alpha/nptl/vfork.S
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/oldglob.c b/sysdeps/unix/sysv/linux/alpha/oldglob.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/oldglob.c
+rename to sysdeps/unix/sysv/linux/alpha/oldglob.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/pipe.S b/sysdeps/unix/sysv/linux/alpha/pipe.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/pipe.S
+rename to sysdeps/unix/sysv/linux/alpha/pipe.S
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/register-dump.h b/sysdeps/unix/sysv/linux/alpha/register-dump.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/register-dump.h
+rename to sysdeps/unix/sysv/linux/alpha/register-dump.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S b/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
+rename to sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/semctl.c b/sysdeps/unix/sysv/linux/alpha/semctl.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/semctl.c
+rename to sysdeps/unix/sysv/linux/alpha/semctl.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/setcontext.S b/sysdeps/unix/sysv/linux/alpha/setcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/setcontext.S
+rename to sysdeps/unix/sysv/linux/alpha/setcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/setfpucw.c b/sysdeps/unix/sysv/linux/alpha/setfpucw.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/setfpucw.c
+rename to sysdeps/unix/sysv/linux/alpha/setfpucw.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/shmctl.c b/sysdeps/unix/sysv/linux/alpha/shmctl.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/shmctl.c
+rename to sysdeps/unix/sysv/linux/alpha/shmctl.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/sigaction.c b/sysdeps/unix/sysv/linux/alpha/sigaction.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/sigaction.c
+rename to sysdeps/unix/sysv/linux/alpha/sigaction.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h b/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h
+rename to sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/sigprocmask.c b/sysdeps/unix/sysv/linux/alpha/sigprocmask.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/sigprocmask.c
+rename to sysdeps/unix/sysv/linux/alpha/sigprocmask.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/sigsuspend.S b/sysdeps/unix/sysv/linux/alpha/sigsuspend.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/sigsuspend.S
+rename to sysdeps/unix/sysv/linux/alpha/sigsuspend.S
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/sizes.h b/sysdeps/unix/sysv/linux/alpha/sizes.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/sizes.h
+rename to sysdeps/unix/sysv/linux/alpha/sizes.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/statfs64.c b/sysdeps/unix/sysv/linux/alpha/statfs64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/statfs64.c
+rename to sysdeps/unix/sysv/linux/alpha/statfs64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/statvfs.c b/sysdeps/unix/sysv/linux/alpha/statvfs.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/statvfs.c
+rename to sysdeps/unix/sysv/linux/alpha/statvfs.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/statvfs64.c b/sysdeps/unix/sysv/linux/alpha/statvfs64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/statvfs64.c
+rename to sysdeps/unix/sysv/linux/alpha/statvfs64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/swapcontext.S b/sysdeps/unix/sysv/linux/alpha/swapcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/swapcontext.S
+rename to sysdeps/unix/sysv/linux/alpha/swapcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/sys/acct.h b/sysdeps/unix/sysv/linux/alpha/sys/acct.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/sys/acct.h
+rename to sysdeps/unix/sysv/linux/alpha/sys/acct.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/sys/io.h b/sysdeps/unix/sysv/linux/alpha/sys/io.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/sys/io.h
+rename to sysdeps/unix/sysv/linux/alpha/sys/io.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/sys/procfs.h b/sysdeps/unix/sysv/linux/alpha/sys/procfs.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/sys/procfs.h
+rename to sysdeps/unix/sysv/linux/alpha/sys/procfs.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h b/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
+rename to sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/sys/user.h b/sysdeps/unix/sysv/linux/alpha/sys/user.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/sys/user.h
+rename to sysdeps/unix/sysv/linux/alpha/sys/user.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/syscall.S b/sysdeps/unix/sysv/linux/alpha/syscall.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/syscall.S
+rename to sysdeps/unix/sysv/linux/alpha/syscall.S
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/syscalls.list b/sysdeps/unix/sysv/linux/alpha/syscalls.list
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/syscalls.list
+rename to sysdeps/unix/sysv/linux/alpha/syscalls.list
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/sysconf.c b/sysdeps/unix/sysv/linux/alpha/sysconf.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/sysconf.c
+rename to sysdeps/unix/sysv/linux/alpha/sysconf.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/sysdep.h b/sysdeps/unix/sysv/linux/alpha/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/sysdep.h
+rename to sysdeps/unix/sysv/linux/alpha/sysdep.h
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym b/sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym
+rename to sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/wordexp.c b/sysdeps/unix/sysv/linux/alpha/wordexp.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/wordexp.c
+rename to sysdeps/unix/sysv/linux/alpha/wordexp.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/xstat.c b/sysdeps/unix/sysv/linux/alpha/xstat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/xstat.c
+rename to sysdeps/unix/sysv/linux/alpha/xstat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.c b/sysdeps/unix/sysv/linux/alpha/xstatconv.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/xstatconv.c
+rename to sysdeps/unix/sysv/linux/alpha/xstatconv.c
+diff --git a/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.h b/sysdeps/unix/sysv/linux/alpha/xstatconv.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/alpha/xstatconv.h
+rename to sysdeps/unix/sysv/linux/alpha/xstatconv.h
diff --git a/SOURCES/glibc-rh1505492-ports-move-arm.patch b/SOURCES/glibc-rh1505492-ports-move-arm.patch
new file mode 100644
index 0000000..3a19d5c
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-ports-move-arm.patch
@@ -0,0 +1,959 @@
+Recreation of this upstream patch, using the indicated git commands:
+
+commit c6bfe5c4d756913297db03f55e42016d1c48918c
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Sat Feb 8 01:49:39 2014 +0000
+
+    Move arm from ports to libc.
+
+    I've moved the ARM port from ports to the main sysdeps hierarchy.
+    Beyond the README update, the move of the files was simply
+
+    git mv ports/sysdeps/arm sysdeps/arm
+    git mv ports/sysdeps/unix/arm sysdeps/unix/arm
+    git mv ports/sysdeps/unix/sysv/linux/arm sysdeps/unix/sysv/linux/arm
+
+diff --git a/ports/sysdeps/arm/Implies b/sysdeps/arm/Implies
+similarity index 100%
+rename from ports/sysdeps/arm/Implies
+rename to sysdeps/arm/Implies
+diff --git a/ports/sysdeps/arm/Makefile b/sysdeps/arm/Makefile
+similarity index 100%
+rename from ports/sysdeps/arm/Makefile
+rename to sysdeps/arm/Makefile
+diff --git a/ports/sysdeps/arm/Versions b/sysdeps/arm/Versions
+similarity index 100%
+rename from ports/sysdeps/arm/Versions
+rename to sysdeps/arm/Versions
+diff --git a/ports/sysdeps/arm/__longjmp.S b/sysdeps/arm/__longjmp.S
+similarity index 100%
+rename from ports/sysdeps/arm/__longjmp.S
+rename to sysdeps/arm/__longjmp.S
+diff --git a/ports/sysdeps/arm/abi-note.S b/sysdeps/arm/abi-note.S
+similarity index 100%
+rename from ports/sysdeps/arm/abi-note.S
+rename to sysdeps/arm/abi-note.S
+diff --git a/ports/sysdeps/arm/aeabi_assert.c b/sysdeps/arm/aeabi_assert.c
+similarity index 100%
+rename from ports/sysdeps/arm/aeabi_assert.c
+rename to sysdeps/arm/aeabi_assert.c
+diff --git a/ports/sysdeps/arm/aeabi_atexit.c b/sysdeps/arm/aeabi_atexit.c
+similarity index 100%
+rename from ports/sysdeps/arm/aeabi_atexit.c
+rename to sysdeps/arm/aeabi_atexit.c
+diff --git a/ports/sysdeps/arm/aeabi_errno_addr.c b/sysdeps/arm/aeabi_errno_addr.c
+similarity index 100%
+rename from ports/sysdeps/arm/aeabi_errno_addr.c
+rename to sysdeps/arm/aeabi_errno_addr.c
+diff --git a/ports/sysdeps/arm/aeabi_lcsts.c b/sysdeps/arm/aeabi_lcsts.c
+similarity index 100%
+rename from ports/sysdeps/arm/aeabi_lcsts.c
+rename to sysdeps/arm/aeabi_lcsts.c
+diff --git a/ports/sysdeps/arm/aeabi_localeconv.c b/sysdeps/arm/aeabi_localeconv.c
+similarity index 100%
+rename from ports/sysdeps/arm/aeabi_localeconv.c
+rename to sysdeps/arm/aeabi_localeconv.c
+diff --git a/ports/sysdeps/arm/aeabi_math.c b/sysdeps/arm/aeabi_math.c
+similarity index 100%
+rename from ports/sysdeps/arm/aeabi_math.c
+rename to sysdeps/arm/aeabi_math.c
+diff --git a/ports/sysdeps/arm/aeabi_mb_cur_max.c b/sysdeps/arm/aeabi_mb_cur_max.c
+similarity index 100%
+rename from ports/sysdeps/arm/aeabi_mb_cur_max.c
+rename to sysdeps/arm/aeabi_mb_cur_max.c
+diff --git a/ports/sysdeps/arm/aeabi_memclr.c b/sysdeps/arm/aeabi_memclr.c
+similarity index 100%
+rename from ports/sysdeps/arm/aeabi_memclr.c
+rename to sysdeps/arm/aeabi_memclr.c
+diff --git a/ports/sysdeps/arm/aeabi_memcpy.c b/sysdeps/arm/aeabi_memcpy.c
+similarity index 100%
+rename from ports/sysdeps/arm/aeabi_memcpy.c
+rename to sysdeps/arm/aeabi_memcpy.c
+diff --git a/ports/sysdeps/arm/aeabi_memmove.c b/sysdeps/arm/aeabi_memmove.c
+similarity index 100%
+rename from ports/sysdeps/arm/aeabi_memmove.c
+rename to sysdeps/arm/aeabi_memmove.c
+diff --git a/ports/sysdeps/arm/aeabi_memset.c b/sysdeps/arm/aeabi_memset.c
+similarity index 100%
+rename from ports/sysdeps/arm/aeabi_memset.c
+rename to sysdeps/arm/aeabi_memset.c
+diff --git a/ports/sysdeps/arm/aeabi_sighandlers.S b/sysdeps/arm/aeabi_sighandlers.S
+similarity index 100%
+rename from ports/sysdeps/arm/aeabi_sighandlers.S
+rename to sysdeps/arm/aeabi_sighandlers.S
+diff --git a/ports/sysdeps/arm/aeabi_unwind_cpp_pr1.c b/sysdeps/arm/aeabi_unwind_cpp_pr1.c
+similarity index 100%
+rename from ports/sysdeps/arm/aeabi_unwind_cpp_pr1.c
+rename to sysdeps/arm/aeabi_unwind_cpp_pr1.c
+diff --git a/ports/sysdeps/arm/arm-features.h b/sysdeps/arm/arm-features.h
+similarity index 100%
+rename from ports/sysdeps/arm/arm-features.h
+rename to sysdeps/arm/arm-features.h
+diff --git a/ports/sysdeps/arm/arm-mcount.S b/sysdeps/arm/arm-mcount.S
+similarity index 100%
+rename from ports/sysdeps/arm/arm-mcount.S
+rename to sysdeps/arm/arm-mcount.S
+diff --git a/ports/sysdeps/arm/armv6t2/memchr.S b/sysdeps/arm/armv6t2/memchr.S
+similarity index 100%
+rename from ports/sysdeps/arm/armv6t2/memchr.S
+rename to sysdeps/arm/armv6t2/memchr.S
+diff --git a/ports/sysdeps/arm/armv7/Implies b/sysdeps/arm/armv7/Implies
+similarity index 100%
+rename from ports/sysdeps/arm/armv7/Implies
+rename to sysdeps/arm/armv7/Implies
+diff --git a/ports/sysdeps/arm/backtrace.c b/sysdeps/arm/backtrace.c
+similarity index 100%
+rename from ports/sysdeps/arm/backtrace.c
+rename to sysdeps/arm/backtrace.c
+diff --git a/ports/sysdeps/arm/bits/atomic.h b/sysdeps/arm/bits/atomic.h
+similarity index 100%
+rename from ports/sysdeps/arm/bits/atomic.h
+rename to sysdeps/arm/bits/atomic.h
+diff --git a/ports/sysdeps/arm/bits/endian.h b/sysdeps/arm/bits/endian.h
+similarity index 100%
+rename from ports/sysdeps/arm/bits/endian.h
+rename to sysdeps/arm/bits/endian.h
+diff --git a/ports/sysdeps/arm/bits/fenv.h b/sysdeps/arm/bits/fenv.h
+similarity index 100%
+rename from ports/sysdeps/arm/bits/fenv.h
+rename to sysdeps/arm/bits/fenv.h
+diff --git a/ports/sysdeps/arm/bits/link.h b/sysdeps/arm/bits/link.h
+similarity index 100%
+rename from ports/sysdeps/arm/bits/link.h
+rename to sysdeps/arm/bits/link.h
+diff --git a/ports/sysdeps/arm/bits/linkmap.h b/sysdeps/arm/bits/linkmap.h
+similarity index 100%
+rename from ports/sysdeps/arm/bits/linkmap.h
+rename to sysdeps/arm/bits/linkmap.h
+diff --git a/ports/sysdeps/arm/bits/mathdef.h b/sysdeps/arm/bits/mathdef.h
+similarity index 100%
+rename from ports/sysdeps/arm/bits/mathdef.h
+rename to sysdeps/arm/bits/mathdef.h
+diff --git a/ports/sysdeps/arm/bits/setjmp.h b/sysdeps/arm/bits/setjmp.h
+similarity index 100%
+rename from ports/sysdeps/arm/bits/setjmp.h
+rename to sysdeps/arm/bits/setjmp.h
+diff --git a/ports/sysdeps/arm/bsd-_setjmp.S b/sysdeps/arm/bsd-_setjmp.S
+similarity index 100%
+rename from ports/sysdeps/arm/bsd-_setjmp.S
+rename to sysdeps/arm/bsd-_setjmp.S
+diff --git a/ports/sysdeps/arm/bsd-setjmp.S b/sysdeps/arm/bsd-setjmp.S
+similarity index 100%
+rename from ports/sysdeps/arm/bsd-setjmp.S
+rename to sysdeps/arm/bsd-setjmp.S
+diff --git a/ports/sysdeps/arm/configure b/sysdeps/arm/configure
+similarity index 100%
+rename from ports/sysdeps/arm/configure
+rename to sysdeps/arm/configure
+diff --git a/ports/sysdeps/arm/configure.in b/sysdeps/arm/configure.in
+similarity index 100%
+rename from ports/sysdeps/arm/configure.in
+rename to sysdeps/arm/configure.in
+diff --git a/ports/sysdeps/arm/crti.S b/sysdeps/arm/crti.S
+similarity index 100%
+rename from ports/sysdeps/arm/crti.S
+rename to sysdeps/arm/crti.S
+diff --git a/ports/sysdeps/arm/crtn.S b/sysdeps/arm/crtn.S
+similarity index 100%
+rename from ports/sysdeps/arm/crtn.S
+rename to sysdeps/arm/crtn.S
+diff --git a/ports/sysdeps/arm/dl-irel.h b/sysdeps/arm/dl-irel.h
+similarity index 100%
+rename from ports/sysdeps/arm/dl-irel.h
+rename to sysdeps/arm/dl-irel.h
+diff --git a/ports/sysdeps/arm/dl-lookupcfg.h b/sysdeps/arm/dl-lookupcfg.h
+similarity index 100%
+rename from ports/sysdeps/arm/dl-lookupcfg.h
+rename to sysdeps/arm/dl-lookupcfg.h
+diff --git a/ports/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h
+similarity index 100%
+rename from ports/sysdeps/arm/dl-machine.h
+rename to sysdeps/arm/dl-machine.h
+diff --git a/ports/sysdeps/arm/dl-sysdep.h b/sysdeps/arm/dl-sysdep.h
+similarity index 100%
+rename from ports/sysdeps/arm/dl-sysdep.h
+rename to sysdeps/arm/dl-sysdep.h
+diff --git a/ports/sysdeps/arm/dl-tls.h b/sysdeps/arm/dl-tls.h
+similarity index 100%
+rename from ports/sysdeps/arm/dl-tls.h
+rename to sysdeps/arm/dl-tls.h
+diff --git a/ports/sysdeps/arm/dl-tlsdesc.S b/sysdeps/arm/dl-tlsdesc.S
+similarity index 100%
+rename from ports/sysdeps/arm/dl-tlsdesc.S
+rename to sysdeps/arm/dl-tlsdesc.S
+diff --git a/ports/sysdeps/arm/dl-tlsdesc.h b/sysdeps/arm/dl-tlsdesc.h
+similarity index 100%
+rename from ports/sysdeps/arm/dl-tlsdesc.h
+rename to sysdeps/arm/dl-tlsdesc.h
+diff --git a/ports/sysdeps/arm/dl-trampoline.S b/sysdeps/arm/dl-trampoline.S
+similarity index 100%
+rename from ports/sysdeps/arm/dl-trampoline.S
+rename to sysdeps/arm/dl-trampoline.S
+diff --git a/ports/sysdeps/arm/fclrexcpt.c b/sysdeps/arm/fclrexcpt.c
+similarity index 100%
+rename from ports/sysdeps/arm/fclrexcpt.c
+rename to sysdeps/arm/fclrexcpt.c
+diff --git a/ports/sysdeps/arm/fedisblxcpt.c b/sysdeps/arm/fedisblxcpt.c
+similarity index 100%
+rename from ports/sysdeps/arm/fedisblxcpt.c
+rename to sysdeps/arm/fedisblxcpt.c
+diff --git a/ports/sysdeps/arm/feenablxcpt.c b/sysdeps/arm/feenablxcpt.c
+similarity index 100%
+rename from ports/sysdeps/arm/feenablxcpt.c
+rename to sysdeps/arm/feenablxcpt.c
+diff --git a/ports/sysdeps/arm/fegetenv.c b/sysdeps/arm/fegetenv.c
+similarity index 100%
+rename from ports/sysdeps/arm/fegetenv.c
+rename to sysdeps/arm/fegetenv.c
+diff --git a/ports/sysdeps/arm/fegetexcept.c b/sysdeps/arm/fegetexcept.c
+similarity index 100%
+rename from ports/sysdeps/arm/fegetexcept.c
+rename to sysdeps/arm/fegetexcept.c
+diff --git a/ports/sysdeps/arm/fegetround.c b/sysdeps/arm/fegetround.c
+similarity index 100%
+rename from ports/sysdeps/arm/fegetround.c
+rename to sysdeps/arm/fegetround.c
+diff --git a/ports/sysdeps/arm/feholdexcpt.c b/sysdeps/arm/feholdexcpt.c
+similarity index 100%
+rename from ports/sysdeps/arm/feholdexcpt.c
+rename to sysdeps/arm/feholdexcpt.c
+diff --git a/ports/sysdeps/arm/fesetenv.c b/sysdeps/arm/fesetenv.c
+similarity index 100%
+rename from ports/sysdeps/arm/fesetenv.c
+rename to sysdeps/arm/fesetenv.c
+diff --git a/ports/sysdeps/arm/fesetround.c b/sysdeps/arm/fesetround.c
+similarity index 100%
+rename from ports/sysdeps/arm/fesetround.c
+rename to sysdeps/arm/fesetround.c
+diff --git a/ports/sysdeps/arm/feupdateenv.c b/sysdeps/arm/feupdateenv.c
+similarity index 100%
+rename from ports/sysdeps/arm/feupdateenv.c
+rename to sysdeps/arm/feupdateenv.c
+diff --git a/ports/sysdeps/arm/fgetexcptflg.c b/sysdeps/arm/fgetexcptflg.c
+similarity index 100%
+rename from ports/sysdeps/arm/fgetexcptflg.c
+rename to sysdeps/arm/fgetexcptflg.c
+diff --git a/ports/sysdeps/arm/find_exidx.c b/sysdeps/arm/find_exidx.c
+similarity index 100%
+rename from ports/sysdeps/arm/find_exidx.c
+rename to sysdeps/arm/find_exidx.c
+diff --git a/ports/sysdeps/arm/fpu_control.h b/sysdeps/arm/fpu_control.h
+similarity index 100%
+rename from ports/sysdeps/arm/fpu_control.h
+rename to sysdeps/arm/fpu_control.h
+diff --git a/ports/sysdeps/arm/fraiseexcpt.c b/sysdeps/arm/fraiseexcpt.c
+similarity index 100%
+rename from ports/sysdeps/arm/fraiseexcpt.c
+rename to sysdeps/arm/fraiseexcpt.c
+diff --git a/ports/sysdeps/arm/frame.h b/sysdeps/arm/frame.h
+similarity index 100%
+rename from ports/sysdeps/arm/frame.h
+rename to sysdeps/arm/frame.h
+diff --git a/ports/sysdeps/arm/framestate.c b/sysdeps/arm/framestate.c
+similarity index 100%
+rename from ports/sysdeps/arm/framestate.c
+rename to sysdeps/arm/framestate.c
+diff --git a/ports/sysdeps/arm/fsetexcptflg.c b/sysdeps/arm/fsetexcptflg.c
+similarity index 100%
+rename from ports/sysdeps/arm/fsetexcptflg.c
+rename to sysdeps/arm/fsetexcptflg.c
+diff --git a/ports/sysdeps/arm/ftestexcept.c b/sysdeps/arm/ftestexcept.c
+similarity index 100%
+rename from ports/sysdeps/arm/ftestexcept.c
+rename to sysdeps/arm/ftestexcept.c
+diff --git a/ports/sysdeps/arm/gccframe.h b/sysdeps/arm/gccframe.h
+similarity index 100%
+rename from ports/sysdeps/arm/gccframe.h
+rename to sysdeps/arm/gccframe.h
+diff --git a/ports/sysdeps/arm/get-rounding-mode.h b/sysdeps/arm/get-rounding-mode.h
+similarity index 100%
+rename from ports/sysdeps/arm/get-rounding-mode.h
+rename to sysdeps/arm/get-rounding-mode.h
+diff --git a/ports/sysdeps/arm/gmp-mparam.h b/sysdeps/arm/gmp-mparam.h
+similarity index 100%
+rename from ports/sysdeps/arm/gmp-mparam.h
+rename to sysdeps/arm/gmp-mparam.h
+diff --git a/ports/sysdeps/arm/jmpbuf-offsets.h b/sysdeps/arm/jmpbuf-offsets.h
+similarity index 100%
+rename from ports/sysdeps/arm/jmpbuf-offsets.h
+rename to sysdeps/arm/jmpbuf-offsets.h
+diff --git a/ports/sysdeps/arm/jmpbuf-unwind.h b/sysdeps/arm/jmpbuf-unwind.h
+similarity index 100%
+rename from ports/sysdeps/arm/jmpbuf-unwind.h
+rename to sysdeps/arm/jmpbuf-unwind.h
+diff --git a/ports/sysdeps/arm/ldsodefs.h b/sysdeps/arm/ldsodefs.h
+similarity index 100%
+rename from ports/sysdeps/arm/ldsodefs.h
+rename to sysdeps/arm/ldsodefs.h
+diff --git a/ports/sysdeps/arm/libc-tls.c b/sysdeps/arm/libc-tls.c
+similarity index 100%
+rename from ports/sysdeps/arm/libc-tls.c
+rename to sysdeps/arm/libc-tls.c
+diff --git a/ports/sysdeps/arm/libm-test-ulps b/sysdeps/arm/libm-test-ulps
+similarity index 100%
+rename from ports/sysdeps/arm/libm-test-ulps
+rename to sysdeps/arm/libm-test-ulps
+diff --git a/ports/sysdeps/arm/machine-gmon.h b/sysdeps/arm/machine-gmon.h
+similarity index 100%
+rename from ports/sysdeps/arm/machine-gmon.h
+rename to sysdeps/arm/machine-gmon.h
+diff --git a/ports/sysdeps/arm/memcpy.S b/sysdeps/arm/memcpy.S
+similarity index 100%
+rename from ports/sysdeps/arm/memcpy.S
+rename to sysdeps/arm/memcpy.S
+diff --git a/ports/sysdeps/arm/memmove.S b/sysdeps/arm/memmove.S
+similarity index 100%
+rename from ports/sysdeps/arm/memmove.S
+rename to sysdeps/arm/memmove.S
+diff --git a/ports/sysdeps/arm/memset.S b/sysdeps/arm/memset.S
+similarity index 100%
+rename from ports/sysdeps/arm/memset.S
+rename to sysdeps/arm/memset.S
+diff --git a/ports/sysdeps/arm/memusage.h b/sysdeps/arm/memusage.h
+similarity index 100%
+rename from ports/sysdeps/arm/memusage.h
+rename to sysdeps/arm/memusage.h
+diff --git a/ports/sysdeps/arm/nptl/Makefile b/sysdeps/arm/nptl/Makefile
+similarity index 100%
+rename from ports/sysdeps/arm/nptl/Makefile
+rename to sysdeps/arm/nptl/Makefile
+diff --git a/ports/sysdeps/arm/nptl/pthread_spin_lock.c b/sysdeps/arm/nptl/pthread_spin_lock.c
+similarity index 100%
+rename from ports/sysdeps/arm/nptl/pthread_spin_lock.c
+rename to sysdeps/arm/nptl/pthread_spin_lock.c
+diff --git a/ports/sysdeps/arm/nptl/pthreaddef.h b/sysdeps/arm/nptl/pthreaddef.h
+similarity index 100%
+rename from ports/sysdeps/arm/nptl/pthreaddef.h
+rename to sysdeps/arm/nptl/pthreaddef.h
+diff --git a/ports/sysdeps/arm/nptl/tcb-offsets.sym b/sysdeps/arm/nptl/tcb-offsets.sym
+similarity index 100%
+rename from ports/sysdeps/arm/nptl/tcb-offsets.sym
+rename to sysdeps/arm/nptl/tcb-offsets.sym
+diff --git a/ports/sysdeps/arm/nptl/tls.h b/sysdeps/arm/nptl/tls.h
+similarity index 100%
+rename from ports/sysdeps/arm/nptl/tls.h
+rename to sysdeps/arm/nptl/tls.h
+diff --git a/ports/sysdeps/arm/preconfigure b/sysdeps/arm/preconfigure
+similarity index 100%
+rename from ports/sysdeps/arm/preconfigure
+rename to sysdeps/arm/preconfigure
+diff --git a/ports/sysdeps/arm/rtld-global-offsets.sym b/sysdeps/arm/rtld-global-offsets.sym
+similarity index 100%
+rename from ports/sysdeps/arm/rtld-global-offsets.sym
+rename to sysdeps/arm/rtld-global-offsets.sym
+diff --git a/ports/sysdeps/arm/setfpucw.c b/sysdeps/arm/setfpucw.c
+similarity index 100%
+rename from ports/sysdeps/arm/setfpucw.c
+rename to sysdeps/arm/setfpucw.c
+diff --git a/ports/sysdeps/arm/setjmp.S b/sysdeps/arm/setjmp.S
+similarity index 100%
+rename from ports/sysdeps/arm/setjmp.S
+rename to sysdeps/arm/setjmp.S
+diff --git a/ports/sysdeps/arm/shlib-versions b/sysdeps/arm/shlib-versions
+similarity index 100%
+rename from ports/sysdeps/arm/shlib-versions
+rename to sysdeps/arm/shlib-versions
+diff --git a/ports/sysdeps/arm/sotruss-lib.c b/sysdeps/arm/sotruss-lib.c
+similarity index 100%
+rename from ports/sysdeps/arm/sotruss-lib.c
+rename to sysdeps/arm/sotruss-lib.c
+diff --git a/ports/sysdeps/arm/stackinfo.h b/sysdeps/arm/stackinfo.h
+similarity index 100%
+rename from ports/sysdeps/arm/stackinfo.h
+rename to sysdeps/arm/stackinfo.h
+diff --git a/ports/sysdeps/arm/start.S b/sysdeps/arm/start.S
+similarity index 100%
+rename from ports/sysdeps/arm/start.S
+rename to sysdeps/arm/start.S
+diff --git a/ports/sysdeps/arm/static-stubs.c b/sysdeps/arm/static-stubs.c
+similarity index 100%
+rename from ports/sysdeps/arm/static-stubs.c
+rename to sysdeps/arm/static-stubs.c
+diff --git a/ports/sysdeps/arm/strlen.S b/sysdeps/arm/strlen.S
+similarity index 100%
+rename from ports/sysdeps/arm/strlen.S
+rename to sysdeps/arm/strlen.S
+diff --git a/ports/sysdeps/arm/sys/ucontext.h b/sysdeps/arm/sys/ucontext.h
+similarity index 100%
+rename from ports/sysdeps/arm/sys/ucontext.h
+rename to sysdeps/arm/sys/ucontext.h
+diff --git a/ports/sysdeps/arm/sysdep.h b/sysdeps/arm/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/arm/sysdep.h
+rename to sysdeps/arm/sysdep.h
+diff --git a/ports/sysdeps/arm/tls-macros.h b/sysdeps/arm/tls-macros.h
+similarity index 100%
+rename from ports/sysdeps/arm/tls-macros.h
+rename to sysdeps/arm/tls-macros.h
+diff --git a/ports/sysdeps/arm/tlsdesc.c b/sysdeps/arm/tlsdesc.c
+similarity index 100%
+rename from ports/sysdeps/arm/tlsdesc.c
+rename to sysdeps/arm/tlsdesc.c
+diff --git a/ports/sysdeps/arm/tlsdesc.sym b/sysdeps/arm/tlsdesc.sym
+similarity index 100%
+rename from ports/sysdeps/arm/tlsdesc.sym
+rename to sysdeps/arm/tlsdesc.sym
+diff --git a/ports/sysdeps/arm/tst-audit.h b/sysdeps/arm/tst-audit.h
+similarity index 100%
+rename from ports/sysdeps/arm/tst-audit.h
+rename to sysdeps/arm/tst-audit.h
+diff --git a/ports/sysdeps/arm/unwind-dw2-fde-glibc.c b/sysdeps/arm/unwind-dw2-fde-glibc.c
+similarity index 100%
+rename from ports/sysdeps/arm/unwind-dw2-fde-glibc.c
+rename to sysdeps/arm/unwind-dw2-fde-glibc.c
+diff --git a/ports/sysdeps/arm/unwind-pe.c b/sysdeps/arm/unwind-pe.c
+similarity index 100%
+rename from ports/sysdeps/arm/unwind-pe.c
+rename to sysdeps/arm/unwind-pe.c
+diff --git a/ports/sysdeps/unix/arm/sysdep.S b/sysdeps/unix/arm/sysdep.S
+similarity index 100%
+rename from ports/sysdeps/unix/arm/sysdep.S
+rename to sysdeps/unix/arm/sysdep.S
+diff --git a/ports/sysdeps/unix/arm/sysdep.h b/sysdeps/unix/arm/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/unix/arm/sysdep.h
+rename to sysdeps/unix/arm/sysdep.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/Makefile b/sysdeps/unix/sysv/linux/arm/Makefile
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/Makefile
+rename to sysdeps/unix/sysv/linux/arm/Makefile
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/Versions b/sysdeps/unix/sysv/linux/arm/Versions
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/Versions
+rename to sysdeps/unix/sysv/linux/arm/Versions
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S b/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S
+rename to sysdeps/unix/sysv/linux/arm/____longjmp_chk.S
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S b/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S
+rename to sysdeps/unix/sysv/linux/arm/aeabi_read_tp.S
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/alphasort64.c b/sysdeps/unix/sysv/linux/arm/alphasort64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/alphasort64.c
+rename to sysdeps/unix/sysv/linux/arm/alphasort64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/arm-features.h b/sysdeps/unix/sysv/linux/arm/arm-features.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/arm-features.h
+rename to sysdeps/unix/sysv/linux/arm/arm-features.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/bits/atomic.h b/sysdeps/unix/sysv/linux/arm/bits/atomic.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/bits/atomic.h
+rename to sysdeps/unix/sysv/linux/arm/bits/atomic.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h b/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
+rename to sysdeps/unix/sysv/linux/arm/bits/fcntl.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/bits/hwcap.h b/sysdeps/unix/sysv/linux/arm/bits/hwcap.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/bits/hwcap.h
+rename to sysdeps/unix/sysv/linux/arm/bits/hwcap.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/bits/mman.h b/sysdeps/unix/sysv/linux/arm/bits/mman.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/bits/mman.h
+rename to sysdeps/unix/sysv/linux/arm/bits/mman.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/bits/shm.h b/sysdeps/unix/sysv/linux/arm/bits/shm.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/bits/shm.h
+rename to sysdeps/unix/sysv/linux/arm/bits/shm.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/brk.c b/sysdeps/unix/sysv/linux/arm/brk.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/brk.c
+rename to sysdeps/unix/sysv/linux/arm/brk.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/clone.S b/sysdeps/unix/sysv/linux/arm/clone.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/clone.S
+rename to sysdeps/unix/sysv/linux/arm/clone.S
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/configure b/sysdeps/unix/sysv/linux/arm/configure
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/configure
+rename to sysdeps/unix/sysv/linux/arm/configure
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/configure.in b/sysdeps/unix/sysv/linux/arm/configure.in
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/configure.in
+rename to sysdeps/unix/sysv/linux/arm/configure.in
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/dl-cache.h b/sysdeps/unix/sysv/linux/arm/dl-cache.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/dl-cache.h
+rename to sysdeps/unix/sysv/linux/arm/dl-cache.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/dl-machine.h b/sysdeps/unix/sysv/linux/arm/dl-machine.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/dl-machine.h
+rename to sysdeps/unix/sysv/linux/arm/dl-machine.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.c b/sysdeps/unix/sysv/linux/arm/dl-procinfo.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.c
+rename to sysdeps/unix/sysv/linux/arm/dl-procinfo.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.h b/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
+rename to sysdeps/unix/sysv/linux/arm/dl-procinfo.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/fchown.c b/sysdeps/unix/sysv/linux/arm/fchown.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/fchown.c
+rename to sysdeps/unix/sysv/linux/arm/fchown.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/fcntl.c b/sysdeps/unix/sysv/linux/arm/fcntl.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/fcntl.c
+rename to sysdeps/unix/sysv/linux/arm/fcntl.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/ftruncate64.c b/sysdeps/unix/sysv/linux/arm/ftruncate64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/ftruncate64.c
+rename to sysdeps/unix/sysv/linux/arm/ftruncate64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/fxstat.c b/sysdeps/unix/sysv/linux/arm/fxstat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/fxstat.c
+rename to sysdeps/unix/sysv/linux/arm/fxstat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/fxstatat.c b/sysdeps/unix/sysv/linux/arm/fxstatat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/fxstatat.c
+rename to sysdeps/unix/sysv/linux/arm/fxstatat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/getcontext.S b/sysdeps/unix/sysv/linux/arm/getcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/getcontext.S
+rename to sysdeps/unix/sysv/linux/arm/getcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/getdents64.c b/sysdeps/unix/sysv/linux/arm/getdents64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/getdents64.c
+rename to sysdeps/unix/sysv/linux/arm/getdents64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/getegid.c b/sysdeps/unix/sysv/linux/arm/getegid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/getegid.c
+rename to sysdeps/unix/sysv/linux/arm/getegid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/geteuid.c b/sysdeps/unix/sysv/linux/arm/geteuid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/geteuid.c
+rename to sysdeps/unix/sysv/linux/arm/geteuid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/getgid.c b/sysdeps/unix/sysv/linux/arm/getgid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/getgid.c
+rename to sysdeps/unix/sysv/linux/arm/getgid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/getgroups.c b/sysdeps/unix/sysv/linux/arm/getgroups.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/getgroups.c
+rename to sysdeps/unix/sysv/linux/arm/getgroups.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/getresgid.c b/sysdeps/unix/sysv/linux/arm/getresgid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/getresgid.c
+rename to sysdeps/unix/sysv/linux/arm/getresgid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/getresuid.c b/sysdeps/unix/sysv/linux/arm/getresuid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/getresuid.c
+rename to sysdeps/unix/sysv/linux/arm/getresuid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/getrlimit64.c b/sysdeps/unix/sysv/linux/arm/getrlimit64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/getrlimit64.c
+rename to sysdeps/unix/sysv/linux/arm/getrlimit64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/getuid.c b/sysdeps/unix/sysv/linux/arm/getuid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/getuid.c
+rename to sysdeps/unix/sysv/linux/arm/getuid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/glob64.c b/sysdeps/unix/sysv/linux/arm/glob64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/glob64.c
+rename to sysdeps/unix/sysv/linux/arm/glob64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/internal_accept4.S b/sysdeps/unix/sysv/linux/arm/internal_accept4.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/internal_accept4.S
+rename to sysdeps/unix/sysv/linux/arm/internal_accept4.S
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/internal_recvmmsg.S b/sysdeps/unix/sysv/linux/arm/internal_recvmmsg.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/internal_recvmmsg.S
+rename to sysdeps/unix/sysv/linux/arm/internal_recvmmsg.S
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/internal_sendmmsg.S b/sysdeps/unix/sysv/linux/arm/internal_sendmmsg.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/internal_sendmmsg.S
+rename to sysdeps/unix/sysv/linux/arm/internal_sendmmsg.S
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/ioperm.c b/sysdeps/unix/sysv/linux/arm/ioperm.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/ioperm.c
+rename to sysdeps/unix/sysv/linux/arm/ioperm.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h b/sysdeps/unix/sysv/linux/arm/kernel-features.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/kernel-features.h
+rename to sysdeps/unix/sysv/linux/arm/kernel-features.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/lchown.c b/sysdeps/unix/sysv/linux/arm/lchown.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/lchown.c
+rename to sysdeps/unix/sysv/linux/arm/lchown.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/ldconfig.h b/sysdeps/unix/sysv/linux/arm/ldconfig.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/ldconfig.h
+rename to sysdeps/unix/sysv/linux/arm/ldconfig.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/ldsodefs.h b/sysdeps/unix/sysv/linux/arm/ldsodefs.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/ldsodefs.h
+rename to sysdeps/unix/sysv/linux/arm/ldsodefs.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/libc-aeabi_read_tp.S b/sysdeps/unix/sysv/linux/arm/libc-aeabi_read_tp.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/libc-aeabi_read_tp.S
+rename to sysdeps/unix/sysv/linux/arm/libc-aeabi_read_tp.S
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S b/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S
+rename to sysdeps/unix/sysv/linux/arm/libc-do-syscall.S
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/lockf64.c b/sysdeps/unix/sysv/linux/arm/lockf64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/lockf64.c
+rename to sysdeps/unix/sysv/linux/arm/lockf64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/lxstat.c b/sysdeps/unix/sysv/linux/arm/lxstat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/lxstat.c
+rename to sysdeps/unix/sysv/linux/arm/lxstat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/makecontext.c b/sysdeps/unix/sysv/linux/arm/makecontext.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/makecontext.c
+rename to sysdeps/unix/sysv/linux/arm/makecontext.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/mmap.S b/sysdeps/unix/sysv/linux/arm/mmap.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/mmap.S
+rename to sysdeps/unix/sysv/linux/arm/mmap.S
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/mmap64.S b/sysdeps/unix/sysv/linux/arm/mmap64.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/mmap64.S
+rename to sysdeps/unix/sysv/linux/arm/mmap64.S
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/msgctl.c b/sysdeps/unix/sysv/linux/arm/msgctl.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/msgctl.c
+rename to sysdeps/unix/sysv/linux/arm/msgctl.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/Makefile b/sysdeps/unix/sysv/linux/arm/nptl/Makefile
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/Makefile
+rename to sysdeps/unix/sysv/linux/arm/nptl/Makefile
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/Versions b/sysdeps/unix/sysv/linux/arm/nptl/Versions
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/Versions
+rename to sysdeps/unix/sysv/linux/arm/nptl/Versions
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/bits/pthreadtypes.h b/sysdeps/unix/sysv/linux/arm/nptl/bits/pthreadtypes.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/bits/pthreadtypes.h
+rename to sysdeps/unix/sysv/linux/arm/nptl/bits/pthreadtypes.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/bits/semaphore.h b/sysdeps/unix/sysv/linux/arm/nptl/bits/semaphore.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/bits/semaphore.h
+rename to sysdeps/unix/sysv/linux/arm/nptl/bits/semaphore.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/c++-types.data b/sysdeps/unix/sysv/linux/arm/nptl/c++-types.data
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/c++-types.data
+rename to sysdeps/unix/sysv/linux/arm/nptl/c++-types.data
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/clone.S b/sysdeps/unix/sysv/linux/arm/nptl/clone.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/clone.S
+rename to sysdeps/unix/sysv/linux/arm/nptl/clone.S
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/configure b/sysdeps/unix/sysv/linux/arm/nptl/configure
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/configure
+rename to sysdeps/unix/sysv/linux/arm/nptl/configure
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/configure.in b/sysdeps/unix/sysv/linux/arm/nptl/configure.in
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/configure.in
+rename to sysdeps/unix/sysv/linux/arm/nptl/configure.in
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/createthread.c b/sysdeps/unix/sysv/linux/arm/nptl/createthread.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/createthread.c
+rename to sysdeps/unix/sysv/linux/arm/nptl/createthread.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/fork.c b/sysdeps/unix/sysv/linux/arm/nptl/fork.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/fork.c
+rename to sysdeps/unix/sysv/linux/arm/nptl/fork.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/ld.abilist b/sysdeps/unix/sysv/linux/arm/nptl/ld.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/ld.abilist
+rename to sysdeps/unix/sysv/linux/arm/nptl/ld.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/arm/nptl/libBrokenLocale.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/libBrokenLocale.abilist
+rename to sysdeps/unix/sysv/linux/arm/nptl/libBrokenLocale.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/libanl.abilist b/sysdeps/unix/sysv/linux/arm/nptl/libanl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/libanl.abilist
+rename to sysdeps/unix/sysv/linux/arm/nptl/libanl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/libc.abilist b/sysdeps/unix/sysv/linux/arm/nptl/libc.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/libc.abilist
+rename to sysdeps/unix/sysv/linux/arm/nptl/libc.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist b/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist
+rename to sysdeps/unix/sysv/linux/arm/nptl/libcrypt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/libdl.abilist b/sysdeps/unix/sysv/linux/arm/nptl/libdl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/libdl.abilist
+rename to sysdeps/unix/sysv/linux/arm/nptl/libdl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/libm.abilist b/sysdeps/unix/sysv/linux/arm/nptl/libm.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/libm.abilist
+rename to sysdeps/unix/sysv/linux/arm/nptl/libm.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/libnsl.abilist b/sysdeps/unix/sysv/linux/arm/nptl/libnsl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/libnsl.abilist
+rename to sysdeps/unix/sysv/linux/arm/nptl/libnsl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/libpthread.abilist b/sysdeps/unix/sysv/linux/arm/nptl/libpthread.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/libpthread.abilist
+rename to sysdeps/unix/sysv/linux/arm/nptl/libpthread.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/libresolv.abilist b/sysdeps/unix/sysv/linux/arm/nptl/libresolv.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/libresolv.abilist
+rename to sysdeps/unix/sysv/linux/arm/nptl/libresolv.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/librt.abilist b/sysdeps/unix/sysv/linux/arm/nptl/librt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/librt.abilist
+rename to sysdeps/unix/sysv/linux/arm/nptl/librt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/libthread_db.abilist b/sysdeps/unix/sysv/linux/arm/nptl/libthread_db.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/libthread_db.abilist
+rename to sysdeps/unix/sysv/linux/arm/nptl/libthread_db.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/libutil.abilist b/sysdeps/unix/sysv/linux/arm/nptl/libutil.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/libutil.abilist
+rename to sysdeps/unix/sysv/linux/arm/nptl/libutil.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/localplt.data b/sysdeps/unix/sysv/linux/arm/nptl/localplt.data
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/localplt.data
+rename to sysdeps/unix/sysv/linux/arm/nptl/localplt.data
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.c b/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.c
+rename to sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h b/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
+rename to sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/nptl-aeabi_unwind_cpp_pr1.c b/sysdeps/unix/sysv/linux/arm/nptl/nptl-aeabi_unwind_cpp_pr1.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/nptl-aeabi_unwind_cpp_pr1.c
+rename to sysdeps/unix/sysv/linux/arm/nptl/nptl-aeabi_unwind_cpp_pr1.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/pt-vfork.S b/sysdeps/unix/sysv/linux/arm/nptl/pt-vfork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/pt-vfork.S
+rename to sysdeps/unix/sysv/linux/arm/nptl/pt-vfork.S
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/pthread_once.c b/sysdeps/unix/sysv/linux/arm/nptl/pthread_once.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/pthread_once.c
+rename to sysdeps/unix/sysv/linux/arm/nptl/pthread_once.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/rt-aeabi_unwind_cpp_pr1.c b/sysdeps/unix/sysv/linux/arm/nptl/rt-aeabi_unwind_cpp_pr1.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/rt-aeabi_unwind_cpp_pr1.c
+rename to sysdeps/unix/sysv/linux/arm/nptl/rt-aeabi_unwind_cpp_pr1.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h b/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
+rename to sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c b/sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c
+rename to sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-resume.c b/sysdeps/unix/sysv/linux/arm/nptl/unwind-resume.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-resume.c
+rename to sysdeps/unix/sysv/linux/arm/nptl/unwind-resume.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind.h b/sysdeps/unix/sysv/linux/arm/nptl/unwind.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/unwind.h
+rename to sysdeps/unix/sysv/linux/arm/nptl/unwind.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/nptl/vfork.S b/sysdeps/unix/sysv/linux/arm/nptl/vfork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/nptl/vfork.S
+rename to sysdeps/unix/sysv/linux/arm/nptl/vfork.S
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/oldgetrlimit.c b/sysdeps/unix/sysv/linux/arm/oldgetrlimit.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/oldgetrlimit.c
+rename to sysdeps/unix/sysv/linux/arm/oldgetrlimit.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/oldgetrlimit64.c b/sysdeps/unix/sysv/linux/arm/oldgetrlimit64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/oldgetrlimit64.c
+rename to sysdeps/unix/sysv/linux/arm/oldgetrlimit64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/oldsetrlimit.c b/sysdeps/unix/sysv/linux/arm/oldsetrlimit.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/oldsetrlimit.c
+rename to sysdeps/unix/sysv/linux/arm/oldsetrlimit.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/posix_fadvise.c b/sysdeps/unix/sysv/linux/arm/posix_fadvise.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/posix_fadvise.c
+rename to sysdeps/unix/sysv/linux/arm/posix_fadvise.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/posix_fadvise64.c b/sysdeps/unix/sysv/linux/arm/posix_fadvise64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/posix_fadvise64.c
+rename to sysdeps/unix/sysv/linux/arm/posix_fadvise64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/pread.c b/sysdeps/unix/sysv/linux/arm/pread.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/pread.c
+rename to sysdeps/unix/sysv/linux/arm/pread.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/pread64.c b/sysdeps/unix/sysv/linux/arm/pread64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/pread64.c
+rename to sysdeps/unix/sysv/linux/arm/pread64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/profil-counter.h b/sysdeps/unix/sysv/linux/arm/profil-counter.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/profil-counter.h
+rename to sysdeps/unix/sysv/linux/arm/profil-counter.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/pwrite.c b/sysdeps/unix/sysv/linux/arm/pwrite.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/pwrite.c
+rename to sysdeps/unix/sysv/linux/arm/pwrite.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/pwrite64.c b/sysdeps/unix/sysv/linux/arm/pwrite64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/pwrite64.c
+rename to sysdeps/unix/sysv/linux/arm/pwrite64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/readahead.c b/sysdeps/unix/sysv/linux/arm/readahead.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/readahead.c
+rename to sysdeps/unix/sysv/linux/arm/readahead.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/readdir64.c b/sysdeps/unix/sysv/linux/arm/readdir64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/readdir64.c
+rename to sysdeps/unix/sysv/linux/arm/readdir64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/readdir64_r.c b/sysdeps/unix/sysv/linux/arm/readdir64_r.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/readdir64_r.c
+rename to sysdeps/unix/sysv/linux/arm/readdir64_r.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/readelflib.c b/sysdeps/unix/sysv/linux/arm/readelflib.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/readelflib.c
+rename to sysdeps/unix/sysv/linux/arm/readelflib.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/register-dump.h b/sysdeps/unix/sysv/linux/arm/register-dump.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/register-dump.h
+rename to sysdeps/unix/sysv/linux/arm/register-dump.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/scandir64.c b/sysdeps/unix/sysv/linux/arm/scandir64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/scandir64.c
+rename to sysdeps/unix/sysv/linux/arm/scandir64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/semctl.c b/sysdeps/unix/sysv/linux/arm/semctl.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/semctl.c
+rename to sysdeps/unix/sysv/linux/arm/semctl.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/setcontext.S b/sysdeps/unix/sysv/linux/arm/setcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/setcontext.S
+rename to sysdeps/unix/sysv/linux/arm/setcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/setegid.c b/sysdeps/unix/sysv/linux/arm/setegid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/setegid.c
+rename to sysdeps/unix/sysv/linux/arm/setegid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/seteuid.c b/sysdeps/unix/sysv/linux/arm/seteuid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/seteuid.c
+rename to sysdeps/unix/sysv/linux/arm/seteuid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/setfsgid.c b/sysdeps/unix/sysv/linux/arm/setfsgid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/setfsgid.c
+rename to sysdeps/unix/sysv/linux/arm/setfsgid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/setfsuid.c b/sysdeps/unix/sysv/linux/arm/setfsuid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/setfsuid.c
+rename to sysdeps/unix/sysv/linux/arm/setfsuid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/setgid.c b/sysdeps/unix/sysv/linux/arm/setgid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/setgid.c
+rename to sysdeps/unix/sysv/linux/arm/setgid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/setgroups.c b/sysdeps/unix/sysv/linux/arm/setgroups.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/setgroups.c
+rename to sysdeps/unix/sysv/linux/arm/setgroups.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/setregid.c b/sysdeps/unix/sysv/linux/arm/setregid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/setregid.c
+rename to sysdeps/unix/sysv/linux/arm/setregid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/setresgid.c b/sysdeps/unix/sysv/linux/arm/setresgid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/setresgid.c
+rename to sysdeps/unix/sysv/linux/arm/setresgid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/setresuid.c b/sysdeps/unix/sysv/linux/arm/setresuid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/setresuid.c
+rename to sysdeps/unix/sysv/linux/arm/setresuid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/setreuid.c b/sysdeps/unix/sysv/linux/arm/setreuid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/setreuid.c
+rename to sysdeps/unix/sysv/linux/arm/setreuid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/setrlimit.c b/sysdeps/unix/sysv/linux/arm/setrlimit.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/setrlimit.c
+rename to sysdeps/unix/sysv/linux/arm/setrlimit.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/setuid.c b/sysdeps/unix/sysv/linux/arm/setuid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/setuid.c
+rename to sysdeps/unix/sysv/linux/arm/setuid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/shmctl.c b/sysdeps/unix/sysv/linux/arm/shmctl.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/shmctl.c
+rename to sysdeps/unix/sysv/linux/arm/shmctl.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/sigaction.c b/sysdeps/unix/sysv/linux/arm/sigaction.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/sigaction.c
+rename to sysdeps/unix/sysv/linux/arm/sigaction.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h b/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h
+rename to sysdeps/unix/sysv/linux/arm/sigcontextinfo.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/sigrestorer.S b/sysdeps/unix/sysv/linux/arm/sigrestorer.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/sigrestorer.S
+rename to sysdeps/unix/sysv/linux/arm/sigrestorer.S
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/swapcontext.S b/sysdeps/unix/sysv/linux/arm/swapcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/swapcontext.S
+rename to sysdeps/unix/sysv/linux/arm/swapcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/sys/elf.h b/sysdeps/unix/sysv/linux/arm/sys/elf.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/sys/elf.h
+rename to sysdeps/unix/sysv/linux/arm/sys/elf.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/sys/io.h b/sysdeps/unix/sysv/linux/arm/sys/io.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/sys/io.h
+rename to sysdeps/unix/sysv/linux/arm/sys/io.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/sys/procfs.h b/sysdeps/unix/sysv/linux/arm/sys/procfs.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/sys/procfs.h
+rename to sysdeps/unix/sysv/linux/arm/sys/procfs.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/sys/ucontext.h b/sysdeps/unix/sysv/linux/arm/sys/ucontext.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/sys/ucontext.h
+rename to sysdeps/unix/sysv/linux/arm/sys/ucontext.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/sys/user.h b/sysdeps/unix/sysv/linux/arm/sys/user.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/sys/user.h
+rename to sysdeps/unix/sysv/linux/arm/sys/user.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/syscall.S b/sysdeps/unix/sysv/linux/arm/syscall.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/syscall.S
+rename to sysdeps/unix/sysv/linux/arm/syscall.S
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/syscalls.list b/sysdeps/unix/sysv/linux/arm/syscalls.list
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/syscalls.list
+rename to sysdeps/unix/sysv/linux/arm/syscalls.list
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/sysdep.S b/sysdeps/unix/sysv/linux/arm/sysdep.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/sysdep.S
+rename to sysdeps/unix/sysv/linux/arm/sysdep.S
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/sysdep.h b/sysdeps/unix/sysv/linux/arm/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/sysdep.h
+rename to sysdeps/unix/sysv/linux/arm/sysdep.h
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/truncate64.c b/sysdeps/unix/sysv/linux/arm/truncate64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/truncate64.c
+rename to sysdeps/unix/sysv/linux/arm/truncate64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/ucontext_i.sym b/sysdeps/unix/sysv/linux/arm/ucontext_i.sym
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/ucontext_i.sym
+rename to sysdeps/unix/sysv/linux/arm/ucontext_i.sym
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/umount.c b/sysdeps/unix/sysv/linux/arm/umount.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/umount.c
+rename to sysdeps/unix/sysv/linux/arm/umount.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/versionsort64.c b/sysdeps/unix/sysv/linux/arm/versionsort64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/versionsort64.c
+rename to sysdeps/unix/sysv/linux/arm/versionsort64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/vfork.S b/sysdeps/unix/sysv/linux/arm/vfork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/vfork.S
+rename to sysdeps/unix/sysv/linux/arm/vfork.S
+diff --git a/ports/sysdeps/unix/sysv/linux/arm/xstat.c b/sysdeps/unix/sysv/linux/arm/xstat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/arm/xstat.c
+rename to sysdeps/unix/sysv/linux/arm/xstat.c
diff --git a/SOURCES/glibc-rh1505492-ports-move-hppa.patch b/SOURCES/glibc-rh1505492-ports-move-hppa.patch
new file mode 100644
index 0000000..368ffe1
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-ports-move-hppa.patch
@@ -0,0 +1,613 @@
+Recreation of this upstream commit:
+
+commit 5abebba403181de898bbea4ee1bcce5f088c663b
+Author: Carlos O'Donell <carlos@systemhalted.org>
+Date:   Tue Apr 29 03:08:48 2014 -0400
+
+    Relocate hppa from ports to libc.
+
+Commands used:
+
+git mv ports/sysdeps/hppa sysdeps/
+git mv ports/sysdeps/unix/sysv/linux/hppa sysdeps/unix/sysv/linux/
+
+diff --git a/ports/sysdeps/hppa/Makefile b/sysdeps/hppa/Makefile
+similarity index 100%
+rename from ports/sysdeps/hppa/Makefile
+rename to sysdeps/hppa/Makefile
+diff --git a/ports/sysdeps/hppa/Versions b/sysdeps/hppa/Versions
+similarity index 100%
+rename from ports/sysdeps/hppa/Versions
+rename to sysdeps/hppa/Versions
+diff --git a/ports/sysdeps/hppa/__longjmp.c b/sysdeps/hppa/__longjmp.c
+similarity index 100%
+rename from ports/sysdeps/hppa/__longjmp.c
+rename to sysdeps/hppa/__longjmp.c
+diff --git a/ports/sysdeps/hppa/abort-instr.h b/sysdeps/hppa/abort-instr.h
+similarity index 100%
+rename from ports/sysdeps/hppa/abort-instr.h
+rename to sysdeps/hppa/abort-instr.h
+diff --git a/ports/sysdeps/hppa/add_n.S b/sysdeps/hppa/add_n.S
+similarity index 100%
+rename from ports/sysdeps/hppa/add_n.S
+rename to sysdeps/hppa/add_n.S
+diff --git a/ports/sysdeps/hppa/bits/endian.h b/sysdeps/hppa/bits/endian.h
+similarity index 100%
+rename from ports/sysdeps/hppa/bits/endian.h
+rename to sysdeps/hppa/bits/endian.h
+diff --git a/ports/sysdeps/hppa/bits/link.h b/sysdeps/hppa/bits/link.h
+similarity index 100%
+rename from ports/sysdeps/hppa/bits/link.h
+rename to sysdeps/hppa/bits/link.h
+diff --git a/ports/sysdeps/hppa/bits/linkmap.h b/sysdeps/hppa/bits/linkmap.h
+similarity index 100%
+rename from ports/sysdeps/hppa/bits/linkmap.h
+rename to sysdeps/hppa/bits/linkmap.h
+diff --git a/ports/sysdeps/hppa/bits/setjmp.h b/sysdeps/hppa/bits/setjmp.h
+similarity index 100%
+rename from ports/sysdeps/hppa/bits/setjmp.h
+rename to sysdeps/hppa/bits/setjmp.h
+diff --git a/ports/sysdeps/hppa/bsd-_setjmp.S b/sysdeps/hppa/bsd-_setjmp.S
+similarity index 100%
+rename from ports/sysdeps/hppa/bsd-_setjmp.S
+rename to sysdeps/hppa/bsd-_setjmp.S
+diff --git a/ports/sysdeps/hppa/bsd-setjmp.S b/sysdeps/hppa/bsd-setjmp.S
+similarity index 100%
+rename from ports/sysdeps/hppa/bsd-setjmp.S
+rename to sysdeps/hppa/bsd-setjmp.S
+diff --git a/ports/sysdeps/hppa/configure b/sysdeps/hppa/configure
+similarity index 100%
+rename from ports/sysdeps/hppa/configure
+rename to sysdeps/hppa/configure
+diff --git a/ports/sysdeps/hppa/configure.in b/sysdeps/hppa/configure.in
+similarity index 100%
+rename from ports/sysdeps/hppa/configure.in
+rename to sysdeps/hppa/configure.in
+diff --git a/ports/sysdeps/hppa/crti.S b/sysdeps/hppa/crti.S
+similarity index 100%
+rename from ports/sysdeps/hppa/crti.S
+rename to sysdeps/hppa/crti.S
+diff --git a/ports/sysdeps/hppa/crtn.S b/sysdeps/hppa/crtn.S
+similarity index 100%
+rename from ports/sysdeps/hppa/crtn.S
+rename to sysdeps/hppa/crtn.S
+diff --git a/ports/sysdeps/hppa/dl-fptr.c b/sysdeps/hppa/dl-fptr.c
+similarity index 100%
+rename from ports/sysdeps/hppa/dl-fptr.c
+rename to sysdeps/hppa/dl-fptr.c
+diff --git a/ports/sysdeps/hppa/dl-fptr.h b/sysdeps/hppa/dl-fptr.h
+similarity index 100%
+rename from ports/sysdeps/hppa/dl-fptr.h
+rename to sysdeps/hppa/dl-fptr.h
+diff --git a/ports/sysdeps/hppa/dl-irel.h b/sysdeps/hppa/dl-irel.h
+similarity index 100%
+rename from ports/sysdeps/hppa/dl-irel.h
+rename to sysdeps/hppa/dl-irel.h
+diff --git a/ports/sysdeps/hppa/dl-lookupcfg.h b/sysdeps/hppa/dl-lookupcfg.h
+similarity index 100%
+rename from ports/sysdeps/hppa/dl-lookupcfg.h
+rename to sysdeps/hppa/dl-lookupcfg.h
+diff --git a/ports/sysdeps/hppa/dl-machine.h b/sysdeps/hppa/dl-machine.h
+similarity index 100%
+rename from ports/sysdeps/hppa/dl-machine.h
+rename to sysdeps/hppa/dl-machine.h
+diff --git a/ports/sysdeps/hppa/dl-symaddr.c b/sysdeps/hppa/dl-symaddr.c
+similarity index 100%
+rename from ports/sysdeps/hppa/dl-symaddr.c
+rename to sysdeps/hppa/dl-symaddr.c
+diff --git a/ports/sysdeps/hppa/dl-tls.h b/sysdeps/hppa/dl-tls.h
+similarity index 100%
+rename from ports/sysdeps/hppa/dl-tls.h
+rename to sysdeps/hppa/dl-tls.h
+diff --git a/ports/sysdeps/hppa/dl-trampoline.S b/sysdeps/hppa/dl-trampoline.S
+similarity index 100%
+rename from ports/sysdeps/hppa/dl-trampoline.S
+rename to sysdeps/hppa/dl-trampoline.S
+diff --git a/ports/sysdeps/hppa/entry.h b/sysdeps/hppa/entry.h
+similarity index 100%
+rename from ports/sysdeps/hppa/entry.h
+rename to sysdeps/hppa/entry.h
+diff --git a/ports/sysdeps/hppa/fpu/bits/fenv.h b/sysdeps/hppa/fpu/bits/fenv.h
+similarity index 100%
+rename from ports/sysdeps/hppa/fpu/bits/fenv.h
+rename to sysdeps/hppa/fpu/bits/fenv.h
+diff --git a/ports/sysdeps/hppa/fpu/bits/mathdef.h b/sysdeps/hppa/fpu/bits/mathdef.h
+similarity index 100%
+rename from ports/sysdeps/hppa/fpu/bits/mathdef.h
+rename to sysdeps/hppa/fpu/bits/mathdef.h
+diff --git a/ports/sysdeps/hppa/fpu/fclrexcpt.c b/sysdeps/hppa/fpu/fclrexcpt.c
+similarity index 100%
+rename from ports/sysdeps/hppa/fpu/fclrexcpt.c
+rename to sysdeps/hppa/fpu/fclrexcpt.c
+diff --git a/ports/sysdeps/hppa/fpu/fedisblxcpt.c b/sysdeps/hppa/fpu/fedisblxcpt.c
+similarity index 100%
+rename from ports/sysdeps/hppa/fpu/fedisblxcpt.c
+rename to sysdeps/hppa/fpu/fedisblxcpt.c
+diff --git a/ports/sysdeps/hppa/fpu/feenablxcpt.c b/sysdeps/hppa/fpu/feenablxcpt.c
+similarity index 100%
+rename from ports/sysdeps/hppa/fpu/feenablxcpt.c
+rename to sysdeps/hppa/fpu/feenablxcpt.c
+diff --git a/ports/sysdeps/hppa/fpu/fegetenv.c b/sysdeps/hppa/fpu/fegetenv.c
+similarity index 100%
+rename from ports/sysdeps/hppa/fpu/fegetenv.c
+rename to sysdeps/hppa/fpu/fegetenv.c
+diff --git a/ports/sysdeps/hppa/fpu/fegetexcept.c b/sysdeps/hppa/fpu/fegetexcept.c
+similarity index 100%
+rename from ports/sysdeps/hppa/fpu/fegetexcept.c
+rename to sysdeps/hppa/fpu/fegetexcept.c
+diff --git a/ports/sysdeps/hppa/fpu/fegetround.c b/sysdeps/hppa/fpu/fegetround.c
+similarity index 100%
+rename from ports/sysdeps/hppa/fpu/fegetround.c
+rename to sysdeps/hppa/fpu/fegetround.c
+diff --git a/ports/sysdeps/hppa/fpu/feholdexcpt.c b/sysdeps/hppa/fpu/feholdexcpt.c
+similarity index 100%
+rename from ports/sysdeps/hppa/fpu/feholdexcpt.c
+rename to sysdeps/hppa/fpu/feholdexcpt.c
+diff --git a/ports/sysdeps/hppa/fpu/fesetenv.c b/sysdeps/hppa/fpu/fesetenv.c
+similarity index 100%
+rename from ports/sysdeps/hppa/fpu/fesetenv.c
+rename to sysdeps/hppa/fpu/fesetenv.c
+diff --git a/ports/sysdeps/hppa/fpu/fesetround.c b/sysdeps/hppa/fpu/fesetround.c
+similarity index 100%
+rename from ports/sysdeps/hppa/fpu/fesetround.c
+rename to sysdeps/hppa/fpu/fesetround.c
+diff --git a/ports/sysdeps/hppa/fpu/feupdateenv.c b/sysdeps/hppa/fpu/feupdateenv.c
+similarity index 100%
+rename from ports/sysdeps/hppa/fpu/feupdateenv.c
+rename to sysdeps/hppa/fpu/feupdateenv.c
+diff --git a/ports/sysdeps/hppa/fpu/fgetexcptflg.c b/sysdeps/hppa/fpu/fgetexcptflg.c
+similarity index 100%
+rename from ports/sysdeps/hppa/fpu/fgetexcptflg.c
+rename to sysdeps/hppa/fpu/fgetexcptflg.c
+diff --git a/ports/sysdeps/hppa/fpu/fpu_control.h b/sysdeps/hppa/fpu/fpu_control.h
+similarity index 100%
+rename from ports/sysdeps/hppa/fpu/fpu_control.h
+rename to sysdeps/hppa/fpu/fpu_control.h
+diff --git a/ports/sysdeps/hppa/fpu/fraiseexcpt.c b/sysdeps/hppa/fpu/fraiseexcpt.c
+similarity index 100%
+rename from ports/sysdeps/hppa/fpu/fraiseexcpt.c
+rename to sysdeps/hppa/fpu/fraiseexcpt.c
+diff --git a/ports/sysdeps/hppa/fpu/fsetexcptflg.c b/sysdeps/hppa/fpu/fsetexcptflg.c
+similarity index 100%
+rename from ports/sysdeps/hppa/fpu/fsetexcptflg.c
+rename to sysdeps/hppa/fpu/fsetexcptflg.c
+diff --git a/ports/sysdeps/hppa/fpu/ftestexcept.c b/sysdeps/hppa/fpu/ftestexcept.c
+similarity index 100%
+rename from ports/sysdeps/hppa/fpu/ftestexcept.c
+rename to sysdeps/hppa/fpu/ftestexcept.c
+diff --git a/ports/sysdeps/hppa/fpu/libm-test-ulps b/sysdeps/hppa/fpu/libm-test-ulps
+similarity index 100%
+rename from ports/sysdeps/hppa/fpu/libm-test-ulps
+rename to sysdeps/hppa/fpu/libm-test-ulps
+diff --git a/ports/sysdeps/hppa/frame.h b/sysdeps/hppa/frame.h
+similarity index 100%
+rename from ports/sysdeps/hppa/frame.h
+rename to sysdeps/hppa/frame.h
+diff --git a/ports/sysdeps/hppa/gccframe.h b/sysdeps/hppa/gccframe.h
+similarity index 100%
+rename from ports/sysdeps/hppa/gccframe.h
+rename to sysdeps/hppa/gccframe.h
+diff --git a/ports/sysdeps/hppa/get-rounding-mode.h b/sysdeps/hppa/get-rounding-mode.h
+similarity index 100%
+rename from ports/sysdeps/hppa/get-rounding-mode.h
+rename to sysdeps/hppa/get-rounding-mode.h
+diff --git a/ports/sysdeps/hppa/hppa1.1/Implies b/sysdeps/hppa/hppa1.1/Implies
+similarity index 100%
+rename from ports/sysdeps/hppa/hppa1.1/Implies
+rename to sysdeps/hppa/hppa1.1/Implies
+diff --git a/ports/sysdeps/hppa/hppa1.1/addmul_1.S b/sysdeps/hppa/hppa1.1/addmul_1.S
+similarity index 100%
+rename from ports/sysdeps/hppa/hppa1.1/addmul_1.S
+rename to sysdeps/hppa/hppa1.1/addmul_1.S
+diff --git a/ports/sysdeps/hppa/hppa1.1/mul_1.S b/sysdeps/hppa/hppa1.1/mul_1.S
+similarity index 100%
+rename from ports/sysdeps/hppa/hppa1.1/mul_1.S
+rename to sysdeps/hppa/hppa1.1/mul_1.S
+diff --git a/ports/sysdeps/hppa/hppa1.1/s_signbit.c b/sysdeps/hppa/hppa1.1/s_signbit.c
+similarity index 100%
+rename from ports/sysdeps/hppa/hppa1.1/s_signbit.c
+rename to sysdeps/hppa/hppa1.1/s_signbit.c
+diff --git a/ports/sysdeps/hppa/hppa1.1/submul_1.S b/sysdeps/hppa/hppa1.1/submul_1.S
+similarity index 100%
+rename from ports/sysdeps/hppa/hppa1.1/submul_1.S
+rename to sysdeps/hppa/hppa1.1/submul_1.S
+diff --git a/ports/sysdeps/hppa/hppa1.1/udiv_qrnnd.S b/sysdeps/hppa/hppa1.1/udiv_qrnnd.S
+similarity index 100%
+rename from ports/sysdeps/hppa/hppa1.1/udiv_qrnnd.S
+rename to sysdeps/hppa/hppa1.1/udiv_qrnnd.S
+diff --git a/ports/sysdeps/hppa/jmpbuf-offsets.h b/sysdeps/hppa/jmpbuf-offsets.h
+similarity index 100%
+rename from ports/sysdeps/hppa/jmpbuf-offsets.h
+rename to sysdeps/hppa/jmpbuf-offsets.h
+diff --git a/ports/sysdeps/hppa/jmpbuf-unwind.h b/sysdeps/hppa/jmpbuf-unwind.h
+similarity index 100%
+rename from ports/sysdeps/hppa/jmpbuf-unwind.h
+rename to sysdeps/hppa/jmpbuf-unwind.h
+diff --git a/ports/sysdeps/hppa/ldsodefs.h b/sysdeps/hppa/ldsodefs.h
+similarity index 100%
+rename from ports/sysdeps/hppa/ldsodefs.h
+rename to sysdeps/hppa/ldsodefs.h
+diff --git a/ports/sysdeps/hppa/libc-tls.c b/sysdeps/hppa/libc-tls.c
+similarity index 100%
+rename from ports/sysdeps/hppa/libc-tls.c
+rename to sysdeps/hppa/libc-tls.c
+diff --git a/ports/sysdeps/hppa/libgcc-compat.c b/sysdeps/hppa/libgcc-compat.c
+similarity index 100%
+rename from ports/sysdeps/hppa/libgcc-compat.c
+rename to sysdeps/hppa/libgcc-compat.c
+diff --git a/ports/sysdeps/hppa/lshift.S b/sysdeps/hppa/lshift.S
+similarity index 100%
+rename from ports/sysdeps/hppa/lshift.S
+rename to sysdeps/hppa/lshift.S
+diff --git a/ports/sysdeps/hppa/machine-gmon.h b/sysdeps/hppa/machine-gmon.h
+similarity index 100%
+rename from ports/sysdeps/hppa/machine-gmon.h
+rename to sysdeps/hppa/machine-gmon.h
+diff --git a/ports/sysdeps/hppa/memusage.h b/sysdeps/hppa/memusage.h
+similarity index 100%
+rename from ports/sysdeps/hppa/memusage.h
+rename to sysdeps/hppa/memusage.h
+diff --git a/ports/sysdeps/hppa/mp_clz_tab.c b/sysdeps/hppa/mp_clz_tab.c
+similarity index 100%
+rename from ports/sysdeps/hppa/mp_clz_tab.c
+rename to sysdeps/hppa/mp_clz_tab.c
+diff --git a/ports/sysdeps/hppa/nptl/Makefile b/sysdeps/hppa/nptl/Makefile
+similarity index 100%
+rename from ports/sysdeps/hppa/nptl/Makefile
+rename to sysdeps/hppa/nptl/Makefile
+diff --git a/ports/sysdeps/hppa/nptl/jmpbuf-unwind.h b/sysdeps/hppa/nptl/jmpbuf-unwind.h
+similarity index 100%
+rename from ports/sysdeps/hppa/nptl/jmpbuf-unwind.h
+rename to sysdeps/hppa/nptl/jmpbuf-unwind.h
+diff --git a/ports/sysdeps/hppa/nptl/pthread_spin_init.c b/sysdeps/hppa/nptl/pthread_spin_init.c
+similarity index 100%
+rename from ports/sysdeps/hppa/nptl/pthread_spin_init.c
+rename to sysdeps/hppa/nptl/pthread_spin_init.c
+diff --git a/ports/sysdeps/hppa/nptl/pthread_spin_lock.c b/sysdeps/hppa/nptl/pthread_spin_lock.c
+similarity index 100%
+rename from ports/sysdeps/hppa/nptl/pthread_spin_lock.c
+rename to sysdeps/hppa/nptl/pthread_spin_lock.c
+diff --git a/ports/sysdeps/hppa/nptl/pthread_spin_unlock.c b/sysdeps/hppa/nptl/pthread_spin_unlock.c
+similarity index 100%
+rename from ports/sysdeps/hppa/nptl/pthread_spin_unlock.c
+rename to sysdeps/hppa/nptl/pthread_spin_unlock.c
+diff --git a/ports/sysdeps/hppa/nptl/pthreaddef.h b/sysdeps/hppa/nptl/pthreaddef.h
+similarity index 100%
+rename from ports/sysdeps/hppa/nptl/pthreaddef.h
+rename to sysdeps/hppa/nptl/pthreaddef.h
+diff --git a/ports/sysdeps/hppa/nptl/shlib-versions b/sysdeps/hppa/nptl/shlib-versions
+similarity index 100%
+rename from ports/sysdeps/hppa/nptl/shlib-versions
+rename to sysdeps/hppa/nptl/shlib-versions
+diff --git a/ports/sysdeps/hppa/nptl/tcb-offsets.sym b/sysdeps/hppa/nptl/tcb-offsets.sym
+similarity index 100%
+rename from ports/sysdeps/hppa/nptl/tcb-offsets.sym
+rename to sysdeps/hppa/nptl/tcb-offsets.sym
+diff --git a/ports/sysdeps/hppa/nptl/tls.h b/sysdeps/hppa/nptl/tls.h
+similarity index 100%
+rename from ports/sysdeps/hppa/nptl/tls.h
+rename to sysdeps/hppa/nptl/tls.h
+diff --git a/ports/sysdeps/hppa/nptl/tst-oddstacklimit.c b/sysdeps/hppa/nptl/tst-oddstacklimit.c
+similarity index 100%
+rename from ports/sysdeps/hppa/nptl/tst-oddstacklimit.c
+rename to sysdeps/hppa/nptl/tst-oddstacklimit.c
+diff --git a/ports/sysdeps/hppa/preconfigure b/sysdeps/hppa/preconfigure
+similarity index 100%
+rename from ports/sysdeps/hppa/preconfigure
+rename to sysdeps/hppa/preconfigure
+diff --git a/ports/sysdeps/hppa/rshift.S b/sysdeps/hppa/rshift.S
+similarity index 100%
+rename from ports/sysdeps/hppa/rshift.S
+rename to sysdeps/hppa/rshift.S
+diff --git a/ports/sysdeps/hppa/setjmp.S b/sysdeps/hppa/setjmp.S
+similarity index 100%
+rename from ports/sysdeps/hppa/setjmp.S
+rename to sysdeps/hppa/setjmp.S
+diff --git a/ports/sysdeps/hppa/shlib-versions b/sysdeps/hppa/shlib-versions
+similarity index 100%
+rename from ports/sysdeps/hppa/shlib-versions
+rename to sysdeps/hppa/shlib-versions
+diff --git a/ports/sysdeps/hppa/stackinfo.h b/sysdeps/hppa/stackinfo.h
+similarity index 100%
+rename from ports/sysdeps/hppa/stackinfo.h
+rename to sysdeps/hppa/stackinfo.h
+diff --git a/ports/sysdeps/hppa/start.S b/sysdeps/hppa/start.S
+similarity index 100%
+rename from ports/sysdeps/hppa/start.S
+rename to sysdeps/hppa/start.S
+diff --git a/ports/sysdeps/hppa/sub_n.S b/sysdeps/hppa/sub_n.S
+similarity index 100%
+rename from ports/sysdeps/hppa/sub_n.S
+rename to sysdeps/hppa/sub_n.S
+diff --git a/ports/sysdeps/hppa/sysdep.h b/sysdeps/hppa/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/hppa/sysdep.h
+rename to sysdeps/hppa/sysdep.h
+diff --git a/ports/sysdeps/hppa/tininess.h b/sysdeps/hppa/tininess.h
+similarity index 100%
+rename from ports/sysdeps/hppa/tininess.h
+rename to sysdeps/hppa/tininess.h
+diff --git a/ports/sysdeps/hppa/tls-macros.h b/sysdeps/hppa/tls-macros.h
+similarity index 100%
+rename from ports/sysdeps/hppa/tls-macros.h
+rename to sysdeps/hppa/tls-macros.h
+diff --git a/ports/sysdeps/hppa/tst-audit.h b/sysdeps/hppa/tst-audit.h
+similarity index 100%
+rename from ports/sysdeps/hppa/tst-audit.h
+rename to sysdeps/hppa/tst-audit.h
+diff --git a/ports/sysdeps/hppa/udiv_qrnnd.S b/sysdeps/hppa/udiv_qrnnd.S
+similarity index 100%
+rename from ports/sysdeps/hppa/udiv_qrnnd.S
+rename to sysdeps/hppa/udiv_qrnnd.S
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/Makefile b/sysdeps/unix/sysv/linux/hppa/Makefile
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/Makefile
+rename to sysdeps/unix/sysv/linux/hppa/Makefile
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/Versions b/sysdeps/unix/sysv/linux/hppa/Versions
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/Versions
+rename to sysdeps/unix/sysv/linux/hppa/Versions
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c b/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c
+rename to sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/bits/atomic.h b/sysdeps/unix/sysv/linux/hppa/bits/atomic.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/bits/atomic.h
+rename to sysdeps/unix/sysv/linux/hppa/bits/atomic.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/bits/errno.h b/sysdeps/unix/sysv/linux/hppa/bits/errno.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/bits/errno.h
+rename to sysdeps/unix/sysv/linux/hppa/bits/errno.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h b/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/bits/fcntl.h
+rename to sysdeps/unix/sysv/linux/hppa/bits/fcntl.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h b/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/bits/ioctls.h
+rename to sysdeps/unix/sysv/linux/hppa/bits/ioctls.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/bits/ipc.h b/sysdeps/unix/sysv/linux/hppa/bits/ipc.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/bits/ipc.h
+rename to sysdeps/unix/sysv/linux/hppa/bits/ipc.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/bits/mman.h b/sysdeps/unix/sysv/linux/hppa/bits/mman.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/bits/mman.h
+rename to sysdeps/unix/sysv/linux/hppa/bits/mman.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/bits/msq.h b/sysdeps/unix/sysv/linux/hppa/bits/msq.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/bits/msq.h
+rename to sysdeps/unix/sysv/linux/hppa/bits/msq.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/bits/sem.h b/sysdeps/unix/sysv/linux/hppa/bits/sem.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/bits/sem.h
+rename to sysdeps/unix/sysv/linux/hppa/bits/sem.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/bits/shm.h b/sysdeps/unix/sysv/linux/hppa/bits/shm.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/bits/shm.h
+rename to sysdeps/unix/sysv/linux/hppa/bits/shm.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h b/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
+rename to sysdeps/unix/sysv/linux/hppa/bits/sigaction.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/bits/signum.h b/sysdeps/unix/sysv/linux/hppa/bits/signum.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/bits/signum.h
+rename to sysdeps/unix/sysv/linux/hppa/bits/signum.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h b/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/bits/socket_type.h
+rename to sysdeps/unix/sysv/linux/hppa/bits/socket_type.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/brk.c b/sysdeps/unix/sysv/linux/hppa/brk.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/brk.c
+rename to sysdeps/unix/sysv/linux/hppa/brk.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/clone.S b/sysdeps/unix/sysv/linux/hppa/clone.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/clone.S
+rename to sysdeps/unix/sysv/linux/hppa/clone.S
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/fcntl.c b/sysdeps/unix/sysv/linux/hppa/fcntl.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/fcntl.c
+rename to sysdeps/unix/sysv/linux/hppa/fcntl.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/fxstat.c b/sysdeps/unix/sysv/linux/hppa/fxstat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/fxstat.c
+rename to sysdeps/unix/sysv/linux/hppa/fxstat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/fxstatat.c b/sysdeps/unix/sysv/linux/hppa/fxstatat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/fxstatat.c
+rename to sysdeps/unix/sysv/linux/hppa/fxstatat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/getcontext.S b/sysdeps/unix/sysv/linux/hppa/getcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/getcontext.S
+rename to sysdeps/unix/sysv/linux/hppa/getcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/getdents64.c b/sysdeps/unix/sysv/linux/hppa/getdents64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/getdents64.c
+rename to sysdeps/unix/sysv/linux/hppa/getdents64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/getrlimit64.c b/sysdeps/unix/sysv/linux/hppa/getrlimit64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/getrlimit64.c
+rename to sysdeps/unix/sysv/linux/hppa/getrlimit64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/internaltypes.h b/sysdeps/unix/sysv/linux/hppa/internaltypes.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/internaltypes.h
+rename to sysdeps/unix/sysv/linux/hppa/internaltypes.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/kernel-features.h b/sysdeps/unix/sysv/linux/hppa/kernel-features.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/kernel-features.h
+rename to sysdeps/unix/sysv/linux/hppa/kernel-features.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/kernel_sigaction.h b/sysdeps/unix/sysv/linux/hppa/kernel_sigaction.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/kernel_sigaction.h
+rename to sysdeps/unix/sysv/linux/hppa/kernel_sigaction.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/kernel_stat.h b/sysdeps/unix/sysv/linux/hppa/kernel_stat.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/kernel_stat.h
+rename to sysdeps/unix/sysv/linux/hppa/kernel_stat.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/lxstat.c b/sysdeps/unix/sysv/linux/hppa/lxstat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/lxstat.c
+rename to sysdeps/unix/sysv/linux/hppa/lxstat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/makecontext.c b/sysdeps/unix/sysv/linux/hppa/makecontext.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/makecontext.c
+rename to sysdeps/unix/sysv/linux/hppa/makecontext.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/mmap.c b/sysdeps/unix/sysv/linux/hppa/mmap.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/mmap.c
+rename to sysdeps/unix/sysv/linux/hppa/mmap.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h b/sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h
+rename to sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/bits/semaphore.h b/sysdeps/unix/sysv/linux/hppa/nptl/bits/semaphore.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/nptl/bits/semaphore.h
+rename to sysdeps/unix/sysv/linux/hppa/nptl/bits/semaphore.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/clone.S b/sysdeps/unix/sysv/linux/hppa/nptl/clone.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/nptl/clone.S
+rename to sysdeps/unix/sysv/linux/hppa/nptl/clone.S
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/createthread.c b/sysdeps/unix/sysv/linux/hppa/nptl/createthread.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/nptl/createthread.c
+rename to sysdeps/unix/sysv/linux/hppa/nptl/createthread.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/fork.c b/sysdeps/unix/sysv/linux/hppa/nptl/fork.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/nptl/fork.c
+rename to sysdeps/unix/sysv/linux/hppa/nptl/fork.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/libc-lowlevellock.c b/sysdeps/unix/sysv/linux/hppa/nptl/libc-lowlevellock.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/nptl/libc-lowlevellock.c
+rename to sysdeps/unix/sysv/linux/hppa/nptl/libc-lowlevellock.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c b/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c
+rename to sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h b/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h
+rename to sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/pt-vfork.S b/sysdeps/unix/sysv/linux/hppa/nptl/pt-vfork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/nptl/pt-vfork.S
+rename to sysdeps/unix/sysv/linux/hppa/nptl/pt-vfork.S
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread.h b/sysdeps/unix/sysv/linux/hppa/nptl/pthread.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread.h
+rename to sysdeps/unix/sysv/linux/hppa/nptl/pthread.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/pthreadP.h b/sysdeps/unix/sysv/linux/hppa/nptl/pthreadP.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/nptl/pthreadP.h
+rename to sysdeps/unix/sysv/linux/hppa/nptl/pthreadP.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_broadcast.c b/sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_broadcast.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_broadcast.c
+rename to sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_broadcast.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_destroy.c b/sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_destroy.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_destroy.c
+rename to sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_destroy.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_init.c b/sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_init.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_init.c
+rename to sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_init.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_signal.c b/sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_signal.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_signal.c
+rename to sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_signal.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_timedwait.c b/sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_timedwait.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_timedwait.c
+rename to sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_timedwait.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_wait.c b/sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_wait.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_wait.c
+rename to sysdeps/unix/sysv/linux/hppa/nptl/pthread_cond_wait.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread_once.c b/sysdeps/unix/sysv/linux/hppa/nptl/pthread_once.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread_once.c
+rename to sysdeps/unix/sysv/linux/hppa/nptl/pthread_once.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h b/sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h
+rename to sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/profil-counter.h b/sysdeps/unix/sysv/linux/hppa/profil-counter.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/profil-counter.h
+rename to sysdeps/unix/sysv/linux/hppa/profil-counter.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/setcontext.S b/sysdeps/unix/sysv/linux/hppa/setcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/setcontext.S
+rename to sysdeps/unix/sysv/linux/hppa/setcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/socket.S b/sysdeps/unix/sysv/linux/hppa/socket.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/socket.S
+rename to sysdeps/unix/sysv/linux/hppa/socket.S
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/swapcontext.c b/sysdeps/unix/sysv/linux/hppa/swapcontext.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/swapcontext.c
+rename to sysdeps/unix/sysv/linux/hppa/swapcontext.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/sys/epoll.h b/sysdeps/unix/sysv/linux/hppa/sys/epoll.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/sys/epoll.h
+rename to sysdeps/unix/sysv/linux/hppa/sys/epoll.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/sys/eventfd.h b/sysdeps/unix/sysv/linux/hppa/sys/eventfd.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/sys/eventfd.h
+rename to sysdeps/unix/sysv/linux/hppa/sys/eventfd.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/sys/inotify.h b/sysdeps/unix/sysv/linux/hppa/sys/inotify.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/sys/inotify.h
+rename to sysdeps/unix/sysv/linux/hppa/sys/inotify.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/sys/procfs.h b/sysdeps/unix/sysv/linux/hppa/sys/procfs.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/sys/procfs.h
+rename to sysdeps/unix/sysv/linux/hppa/sys/procfs.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/sys/signalfd.h b/sysdeps/unix/sysv/linux/hppa/sys/signalfd.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/sys/signalfd.h
+rename to sysdeps/unix/sysv/linux/hppa/sys/signalfd.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/sys/timerfd.h b/sysdeps/unix/sysv/linux/hppa/sys/timerfd.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/sys/timerfd.h
+rename to sysdeps/unix/sysv/linux/hppa/sys/timerfd.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h b/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
+rename to sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/sys/user.h b/sysdeps/unix/sysv/linux/hppa/sys/user.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/sys/user.h
+rename to sysdeps/unix/sysv/linux/hppa/sys/user.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/syscall.S b/sysdeps/unix/sysv/linux/hppa/syscall.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/syscall.S
+rename to sysdeps/unix/sysv/linux/hppa/syscall.S
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list b/sysdeps/unix/sysv/linux/hppa/syscalls.list
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
+rename to sysdeps/unix/sysv/linux/hppa/syscalls.list
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/sysdep.c b/sysdeps/unix/sysv/linux/hppa/sysdep.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/sysdep.c
+rename to sysdeps/unix/sysv/linux/hppa/sysdep.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/sysdep.h b/sysdeps/unix/sysv/linux/hppa/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/sysdep.h
+rename to sysdeps/unix/sysv/linux/hppa/sysdep.h
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/ucontext_i.sym b/sysdeps/unix/sysv/linux/hppa/ucontext_i.sym
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/ucontext_i.sym
+rename to sysdeps/unix/sysv/linux/hppa/ucontext_i.sym
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/umount.c b/sysdeps/unix/sysv/linux/hppa/umount.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/umount.c
+rename to sysdeps/unix/sysv/linux/hppa/umount.c
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/xstat.c b/sysdeps/unix/sysv/linux/hppa/xstat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/hppa/xstat.c
+rename to sysdeps/unix/sysv/linux/hppa/xstat.c
diff --git a/SOURCES/glibc-rh1505492-ports-move-ia64.patch b/SOURCES/glibc-rh1505492-ports-move-ia64.patch
new file mode 100644
index 0000000..b108301
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-ports-move-ia64.patch
@@ -0,0 +1,2029 @@
+Recreation of this upstream patch:
+
+commit c70a4b1db0cf5e813ae24b0fa96a352399eb6edf
+Author: Mike Frysinger <vapier@gentoo.org>
+Date:   Sat Feb 15 22:07:25 2014 -0500
+
+    ia64: relocate out of ports/ subdir
+
+Git commands used:
+
+git mv ports/sysdeps/ia64 sysdeps/
+git mv ports/sysdeps/unix/sysv/linux/ia64  sysdeps/unix/sysv/linux/
+
+diff --git a/ports/sysdeps/ia64/Implies b/sysdeps/ia64/Implies
+similarity index 100%
+rename from ports/sysdeps/ia64/Implies
+rename to sysdeps/ia64/Implies
+diff --git a/ports/sysdeps/ia64/Makeconfig b/sysdeps/ia64/Makeconfig
+similarity index 100%
+rename from ports/sysdeps/ia64/Makeconfig
+rename to sysdeps/ia64/Makeconfig
+diff --git a/ports/sysdeps/ia64/Makefile b/sysdeps/ia64/Makefile
+similarity index 100%
+rename from ports/sysdeps/ia64/Makefile
+rename to sysdeps/ia64/Makefile
+diff --git a/ports/sysdeps/ia64/Versions b/sysdeps/ia64/Versions
+similarity index 100%
+rename from ports/sysdeps/ia64/Versions
+rename to sysdeps/ia64/Versions
+diff --git a/ports/sysdeps/ia64/_mcount.S b/sysdeps/ia64/_mcount.S
+similarity index 100%
+rename from ports/sysdeps/ia64/_mcount.S
+rename to sysdeps/ia64/_mcount.S
+diff --git a/ports/sysdeps/ia64/abort-instr.h b/sysdeps/ia64/abort-instr.h
+similarity index 100%
+rename from ports/sysdeps/ia64/abort-instr.h
+rename to sysdeps/ia64/abort-instr.h
+diff --git a/ports/sysdeps/ia64/backtrace.c b/sysdeps/ia64/backtrace.c
+similarity index 100%
+rename from ports/sysdeps/ia64/backtrace.c
+rename to sysdeps/ia64/backtrace.c
+diff --git a/ports/sysdeps/ia64/bcopy.S b/sysdeps/ia64/bcopy.S
+similarity index 100%
+rename from ports/sysdeps/ia64/bcopy.S
+rename to sysdeps/ia64/bcopy.S
+diff --git a/ports/sysdeps/ia64/bits/atomic.h b/sysdeps/ia64/bits/atomic.h
+similarity index 100%
+rename from ports/sysdeps/ia64/bits/atomic.h
+rename to sysdeps/ia64/bits/atomic.h
+diff --git a/ports/sysdeps/ia64/bits/byteswap-16.h b/sysdeps/ia64/bits/byteswap-16.h
+similarity index 100%
+rename from ports/sysdeps/ia64/bits/byteswap-16.h
+rename to sysdeps/ia64/bits/byteswap-16.h
+diff --git a/ports/sysdeps/ia64/bits/byteswap.h b/sysdeps/ia64/bits/byteswap.h
+similarity index 100%
+rename from ports/sysdeps/ia64/bits/byteswap.h
+rename to sysdeps/ia64/bits/byteswap.h
+diff --git a/ports/sysdeps/ia64/bits/fenv.h b/sysdeps/ia64/bits/fenv.h
+similarity index 100%
+rename from ports/sysdeps/ia64/bits/fenv.h
+rename to sysdeps/ia64/bits/fenv.h
+diff --git a/ports/sysdeps/ia64/bits/huge_vall.h b/sysdeps/ia64/bits/huge_vall.h
+similarity index 100%
+rename from ports/sysdeps/ia64/bits/huge_vall.h
+rename to sysdeps/ia64/bits/huge_vall.h
+diff --git a/ports/sysdeps/ia64/bits/link.h b/sysdeps/ia64/bits/link.h
+similarity index 100%
+rename from ports/sysdeps/ia64/bits/link.h
+rename to sysdeps/ia64/bits/link.h
+diff --git a/ports/sysdeps/ia64/bits/linkmap.h b/sysdeps/ia64/bits/linkmap.h
+similarity index 100%
+rename from ports/sysdeps/ia64/bits/linkmap.h
+rename to sysdeps/ia64/bits/linkmap.h
+diff --git a/ports/sysdeps/ia64/bits/mathdef.h b/sysdeps/ia64/bits/mathdef.h
+similarity index 100%
+rename from ports/sysdeps/ia64/bits/mathdef.h
+rename to sysdeps/ia64/bits/mathdef.h
+diff --git a/ports/sysdeps/ia64/bits/xtitypes.h b/sysdeps/ia64/bits/xtitypes.h
+similarity index 100%
+rename from ports/sysdeps/ia64/bits/xtitypes.h
+rename to sysdeps/ia64/bits/xtitypes.h
+diff --git a/ports/sysdeps/ia64/bzero.S b/sysdeps/ia64/bzero.S
+similarity index 100%
+rename from ports/sysdeps/ia64/bzero.S
+rename to sysdeps/ia64/bzero.S
+diff --git a/ports/sysdeps/ia64/configure b/sysdeps/ia64/configure
+similarity index 100%
+rename from ports/sysdeps/ia64/configure
+rename to sysdeps/ia64/configure
+diff --git a/ports/sysdeps/ia64/configure.in b/sysdeps/ia64/configure.in
+similarity index 100%
+rename from ports/sysdeps/ia64/configure.in
+rename to sysdeps/ia64/configure.in
+diff --git a/ports/sysdeps/ia64/crti.S b/sysdeps/ia64/crti.S
+similarity index 100%
+rename from ports/sysdeps/ia64/crti.S
+rename to sysdeps/ia64/crti.S
+diff --git a/ports/sysdeps/ia64/crtn.S b/sysdeps/ia64/crtn.S
+similarity index 100%
+rename from ports/sysdeps/ia64/crtn.S
+rename to sysdeps/ia64/crtn.S
+diff --git a/ports/sysdeps/ia64/dl-dtprocnum.h b/sysdeps/ia64/dl-dtprocnum.h
+similarity index 100%
+rename from ports/sysdeps/ia64/dl-dtprocnum.h
+rename to sysdeps/ia64/dl-dtprocnum.h
+diff --git a/ports/sysdeps/ia64/dl-fptr.h b/sysdeps/ia64/dl-fptr.h
+similarity index 100%
+rename from ports/sysdeps/ia64/dl-fptr.h
+rename to sysdeps/ia64/dl-fptr.h
+diff --git a/ports/sysdeps/ia64/dl-lookupcfg.h b/sysdeps/ia64/dl-lookupcfg.h
+similarity index 100%
+rename from ports/sysdeps/ia64/dl-lookupcfg.h
+rename to sysdeps/ia64/dl-lookupcfg.h
+diff --git a/ports/sysdeps/ia64/dl-machine.h b/sysdeps/ia64/dl-machine.h
+similarity index 100%
+rename from ports/sysdeps/ia64/dl-machine.h
+rename to sysdeps/ia64/dl-machine.h
+diff --git a/ports/sysdeps/ia64/dl-sysdep.h b/sysdeps/ia64/dl-sysdep.h
+similarity index 100%
+rename from ports/sysdeps/ia64/dl-sysdep.h
+rename to sysdeps/ia64/dl-sysdep.h
+diff --git a/ports/sysdeps/ia64/dl-tls.h b/sysdeps/ia64/dl-tls.h
+similarity index 100%
+rename from ports/sysdeps/ia64/dl-tls.h
+rename to sysdeps/ia64/dl-tls.h
+diff --git a/ports/sysdeps/ia64/dl-trampoline.S b/sysdeps/ia64/dl-trampoline.S
+similarity index 100%
+rename from ports/sysdeps/ia64/dl-trampoline.S
+rename to sysdeps/ia64/dl-trampoline.S
+diff --git a/ports/sysdeps/ia64/entry.h b/sysdeps/ia64/entry.h
+similarity index 100%
+rename from ports/sysdeps/ia64/entry.h
+rename to sysdeps/ia64/entry.h
+diff --git a/ports/sysdeps/ia64/fpu/Makefile b/sysdeps/ia64/fpu/Makefile
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/Makefile
+rename to sysdeps/ia64/fpu/Makefile
+diff --git a/ports/sysdeps/ia64/fpu/README b/sysdeps/ia64/fpu/README
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/README
+rename to sysdeps/ia64/fpu/README
+diff --git a/ports/sysdeps/ia64/fpu/Versions b/sysdeps/ia64/fpu/Versions
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/Versions
+rename to sysdeps/ia64/fpu/Versions
+diff --git a/ports/sysdeps/ia64/fpu/bits/math-finite.h b/sysdeps/ia64/fpu/bits/math-finite.h
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/bits/math-finite.h
+rename to sysdeps/ia64/fpu/bits/math-finite.h
+diff --git a/ports/sysdeps/ia64/fpu/bits/mathinline.h b/sysdeps/ia64/fpu/bits/mathinline.h
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/bits/mathinline.h
+rename to sysdeps/ia64/fpu/bits/mathinline.h
+diff --git a/ports/sysdeps/ia64/fpu/branred.c b/sysdeps/ia64/fpu/branred.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/branred.c
+rename to sysdeps/ia64/fpu/branred.c
+diff --git a/ports/sysdeps/ia64/fpu/doasin.c b/sysdeps/ia64/fpu/doasin.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/doasin.c
+rename to sysdeps/ia64/fpu/doasin.c
+diff --git a/ports/sysdeps/ia64/fpu/dosincos.c b/sysdeps/ia64/fpu/dosincos.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/dosincos.c
+rename to sysdeps/ia64/fpu/dosincos.c
+diff --git a/ports/sysdeps/ia64/fpu/e_acos.S b/sysdeps/ia64/fpu/e_acos.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_acos.S
+rename to sysdeps/ia64/fpu/e_acos.S
+diff --git a/ports/sysdeps/ia64/fpu/e_acosf.S b/sysdeps/ia64/fpu/e_acosf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_acosf.S
+rename to sysdeps/ia64/fpu/e_acosf.S
+diff --git a/ports/sysdeps/ia64/fpu/e_acosh.S b/sysdeps/ia64/fpu/e_acosh.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_acosh.S
+rename to sysdeps/ia64/fpu/e_acosh.S
+diff --git a/ports/sysdeps/ia64/fpu/e_acoshf.S b/sysdeps/ia64/fpu/e_acoshf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_acoshf.S
+rename to sysdeps/ia64/fpu/e_acoshf.S
+diff --git a/ports/sysdeps/ia64/fpu/e_acoshl.S b/sysdeps/ia64/fpu/e_acoshl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_acoshl.S
+rename to sysdeps/ia64/fpu/e_acoshl.S
+diff --git a/ports/sysdeps/ia64/fpu/e_acosl.S b/sysdeps/ia64/fpu/e_acosl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_acosl.S
+rename to sysdeps/ia64/fpu/e_acosl.S
+diff --git a/ports/sysdeps/ia64/fpu/e_asin.S b/sysdeps/ia64/fpu/e_asin.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_asin.S
+rename to sysdeps/ia64/fpu/e_asin.S
+diff --git a/ports/sysdeps/ia64/fpu/e_asinf.S b/sysdeps/ia64/fpu/e_asinf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_asinf.S
+rename to sysdeps/ia64/fpu/e_asinf.S
+diff --git a/ports/sysdeps/ia64/fpu/e_asinl.S b/sysdeps/ia64/fpu/e_asinl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_asinl.S
+rename to sysdeps/ia64/fpu/e_asinl.S
+diff --git a/ports/sysdeps/ia64/fpu/e_atan2.S b/sysdeps/ia64/fpu/e_atan2.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_atan2.S
+rename to sysdeps/ia64/fpu/e_atan2.S
+diff --git a/ports/sysdeps/ia64/fpu/e_atan2f.S b/sysdeps/ia64/fpu/e_atan2f.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_atan2f.S
+rename to sysdeps/ia64/fpu/e_atan2f.S
+diff --git a/ports/sysdeps/ia64/fpu/e_atan2l.c b/sysdeps/ia64/fpu/e_atan2l.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_atan2l.c
+rename to sysdeps/ia64/fpu/e_atan2l.c
+diff --git a/ports/sysdeps/ia64/fpu/e_atanh.S b/sysdeps/ia64/fpu/e_atanh.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_atanh.S
+rename to sysdeps/ia64/fpu/e_atanh.S
+diff --git a/ports/sysdeps/ia64/fpu/e_atanhf.S b/sysdeps/ia64/fpu/e_atanhf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_atanhf.S
+rename to sysdeps/ia64/fpu/e_atanhf.S
+diff --git a/ports/sysdeps/ia64/fpu/e_atanhl.S b/sysdeps/ia64/fpu/e_atanhl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_atanhl.S
+rename to sysdeps/ia64/fpu/e_atanhl.S
+diff --git a/ports/sysdeps/ia64/fpu/e_cosh.S b/sysdeps/ia64/fpu/e_cosh.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_cosh.S
+rename to sysdeps/ia64/fpu/e_cosh.S
+diff --git a/ports/sysdeps/ia64/fpu/e_coshf.S b/sysdeps/ia64/fpu/e_coshf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_coshf.S
+rename to sysdeps/ia64/fpu/e_coshf.S
+diff --git a/ports/sysdeps/ia64/fpu/e_coshl.S b/sysdeps/ia64/fpu/e_coshl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_coshl.S
+rename to sysdeps/ia64/fpu/e_coshl.S
+diff --git a/ports/sysdeps/ia64/fpu/e_exp.S b/sysdeps/ia64/fpu/e_exp.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_exp.S
+rename to sysdeps/ia64/fpu/e_exp.S
+diff --git a/ports/sysdeps/ia64/fpu/e_exp10.S b/sysdeps/ia64/fpu/e_exp10.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_exp10.S
+rename to sysdeps/ia64/fpu/e_exp10.S
+diff --git a/ports/sysdeps/ia64/fpu/e_exp10f.S b/sysdeps/ia64/fpu/e_exp10f.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_exp10f.S
+rename to sysdeps/ia64/fpu/e_exp10f.S
+diff --git a/ports/sysdeps/ia64/fpu/e_exp10l.S b/sysdeps/ia64/fpu/e_exp10l.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_exp10l.S
+rename to sysdeps/ia64/fpu/e_exp10l.S
+diff --git a/ports/sysdeps/ia64/fpu/e_exp2.S b/sysdeps/ia64/fpu/e_exp2.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_exp2.S
+rename to sysdeps/ia64/fpu/e_exp2.S
+diff --git a/ports/sysdeps/ia64/fpu/e_exp2f.S b/sysdeps/ia64/fpu/e_exp2f.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_exp2f.S
+rename to sysdeps/ia64/fpu/e_exp2f.S
+diff --git a/ports/sysdeps/ia64/fpu/e_exp2l.S b/sysdeps/ia64/fpu/e_exp2l.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_exp2l.S
+rename to sysdeps/ia64/fpu/e_exp2l.S
+diff --git a/ports/sysdeps/ia64/fpu/e_expf.S b/sysdeps/ia64/fpu/e_expf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_expf.S
+rename to sysdeps/ia64/fpu/e_expf.S
+diff --git a/ports/sysdeps/ia64/fpu/e_expl.c b/sysdeps/ia64/fpu/e_expl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_expl.c
+rename to sysdeps/ia64/fpu/e_expl.c
+diff --git a/ports/sysdeps/ia64/fpu/e_fmod.S b/sysdeps/ia64/fpu/e_fmod.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_fmod.S
+rename to sysdeps/ia64/fpu/e_fmod.S
+diff --git a/ports/sysdeps/ia64/fpu/e_fmodf.S b/sysdeps/ia64/fpu/e_fmodf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_fmodf.S
+rename to sysdeps/ia64/fpu/e_fmodf.S
+diff --git a/ports/sysdeps/ia64/fpu/e_fmodl.S b/sysdeps/ia64/fpu/e_fmodl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_fmodl.S
+rename to sysdeps/ia64/fpu/e_fmodl.S
+diff --git a/ports/sysdeps/ia64/fpu/e_gamma_r.c b/sysdeps/ia64/fpu/e_gamma_r.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_gamma_r.c
+rename to sysdeps/ia64/fpu/e_gamma_r.c
+diff --git a/ports/sysdeps/ia64/fpu/e_gammaf_r.c b/sysdeps/ia64/fpu/e_gammaf_r.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_gammaf_r.c
+rename to sysdeps/ia64/fpu/e_gammaf_r.c
+diff --git a/ports/sysdeps/ia64/fpu/e_gammal_r.c b/sysdeps/ia64/fpu/e_gammal_r.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_gammal_r.c
+rename to sysdeps/ia64/fpu/e_gammal_r.c
+diff --git a/ports/sysdeps/ia64/fpu/e_hypot.S b/sysdeps/ia64/fpu/e_hypot.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_hypot.S
+rename to sysdeps/ia64/fpu/e_hypot.S
+diff --git a/ports/sysdeps/ia64/fpu/e_hypotf.S b/sysdeps/ia64/fpu/e_hypotf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_hypotf.S
+rename to sysdeps/ia64/fpu/e_hypotf.S
+diff --git a/ports/sysdeps/ia64/fpu/e_hypotl.S b/sysdeps/ia64/fpu/e_hypotl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_hypotl.S
+rename to sysdeps/ia64/fpu/e_hypotl.S
+diff --git a/ports/sysdeps/ia64/fpu/e_ilogbl.S b/sysdeps/ia64/fpu/e_ilogbl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_ilogbl.S
+rename to sysdeps/ia64/fpu/e_ilogbl.S
+diff --git a/ports/sysdeps/ia64/fpu/e_lgamma_r.c b/sysdeps/ia64/fpu/e_lgamma_r.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_lgamma_r.c
+rename to sysdeps/ia64/fpu/e_lgamma_r.c
+diff --git a/ports/sysdeps/ia64/fpu/e_lgammaf_r.c b/sysdeps/ia64/fpu/e_lgammaf_r.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_lgammaf_r.c
+rename to sysdeps/ia64/fpu/e_lgammaf_r.c
+diff --git a/ports/sysdeps/ia64/fpu/e_lgammal_r.c b/sysdeps/ia64/fpu/e_lgammal_r.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_lgammal_r.c
+rename to sysdeps/ia64/fpu/e_lgammal_r.c
+diff --git a/ports/sysdeps/ia64/fpu/e_log.S b/sysdeps/ia64/fpu/e_log.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_log.S
+rename to sysdeps/ia64/fpu/e_log.S
+diff --git a/ports/sysdeps/ia64/fpu/e_log10.c b/sysdeps/ia64/fpu/e_log10.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_log10.c
+rename to sysdeps/ia64/fpu/e_log10.c
+diff --git a/ports/sysdeps/ia64/fpu/e_log10f.c b/sysdeps/ia64/fpu/e_log10f.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_log10f.c
+rename to sysdeps/ia64/fpu/e_log10f.c
+diff --git a/ports/sysdeps/ia64/fpu/e_log10l.c b/sysdeps/ia64/fpu/e_log10l.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_log10l.c
+rename to sysdeps/ia64/fpu/e_log10l.c
+diff --git a/ports/sysdeps/ia64/fpu/e_log2.S b/sysdeps/ia64/fpu/e_log2.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_log2.S
+rename to sysdeps/ia64/fpu/e_log2.S
+diff --git a/ports/sysdeps/ia64/fpu/e_log2f.S b/sysdeps/ia64/fpu/e_log2f.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_log2f.S
+rename to sysdeps/ia64/fpu/e_log2f.S
+diff --git a/ports/sysdeps/ia64/fpu/e_log2l.S b/sysdeps/ia64/fpu/e_log2l.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_log2l.S
+rename to sysdeps/ia64/fpu/e_log2l.S
+diff --git a/ports/sysdeps/ia64/fpu/e_logf.S b/sysdeps/ia64/fpu/e_logf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_logf.S
+rename to sysdeps/ia64/fpu/e_logf.S
+diff --git a/ports/sysdeps/ia64/fpu/e_logl.S b/sysdeps/ia64/fpu/e_logl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_logl.S
+rename to sysdeps/ia64/fpu/e_logl.S
+diff --git a/ports/sysdeps/ia64/fpu/e_pow.S b/sysdeps/ia64/fpu/e_pow.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_pow.S
+rename to sysdeps/ia64/fpu/e_pow.S
+diff --git a/ports/sysdeps/ia64/fpu/e_powf.S b/sysdeps/ia64/fpu/e_powf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_powf.S
+rename to sysdeps/ia64/fpu/e_powf.S
+diff --git a/ports/sysdeps/ia64/fpu/e_powl.S b/sysdeps/ia64/fpu/e_powl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_powl.S
+rename to sysdeps/ia64/fpu/e_powl.S
+diff --git a/ports/sysdeps/ia64/fpu/e_rem_pio2.c b/sysdeps/ia64/fpu/e_rem_pio2.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_rem_pio2.c
+rename to sysdeps/ia64/fpu/e_rem_pio2.c
+diff --git a/ports/sysdeps/ia64/fpu/e_rem_pio2f.c b/sysdeps/ia64/fpu/e_rem_pio2f.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_rem_pio2f.c
+rename to sysdeps/ia64/fpu/e_rem_pio2f.c
+diff --git a/ports/sysdeps/ia64/fpu/e_rem_pio2l.c b/sysdeps/ia64/fpu/e_rem_pio2l.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_rem_pio2l.c
+rename to sysdeps/ia64/fpu/e_rem_pio2l.c
+diff --git a/ports/sysdeps/ia64/fpu/e_remainder.S b/sysdeps/ia64/fpu/e_remainder.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_remainder.S
+rename to sysdeps/ia64/fpu/e_remainder.S
+diff --git a/ports/sysdeps/ia64/fpu/e_remainderf.S b/sysdeps/ia64/fpu/e_remainderf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_remainderf.S
+rename to sysdeps/ia64/fpu/e_remainderf.S
+diff --git a/ports/sysdeps/ia64/fpu/e_remainderl.S b/sysdeps/ia64/fpu/e_remainderl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_remainderl.S
+rename to sysdeps/ia64/fpu/e_remainderl.S
+diff --git a/ports/sysdeps/ia64/fpu/e_scalb.S b/sysdeps/ia64/fpu/e_scalb.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_scalb.S
+rename to sysdeps/ia64/fpu/e_scalb.S
+diff --git a/ports/sysdeps/ia64/fpu/e_scalbf.S b/sysdeps/ia64/fpu/e_scalbf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_scalbf.S
+rename to sysdeps/ia64/fpu/e_scalbf.S
+diff --git a/ports/sysdeps/ia64/fpu/e_scalbl.S b/sysdeps/ia64/fpu/e_scalbl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_scalbl.S
+rename to sysdeps/ia64/fpu/e_scalbl.S
+diff --git a/ports/sysdeps/ia64/fpu/e_sinh.S b/sysdeps/ia64/fpu/e_sinh.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_sinh.S
+rename to sysdeps/ia64/fpu/e_sinh.S
+diff --git a/ports/sysdeps/ia64/fpu/e_sinhf.S b/sysdeps/ia64/fpu/e_sinhf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_sinhf.S
+rename to sysdeps/ia64/fpu/e_sinhf.S
+diff --git a/ports/sysdeps/ia64/fpu/e_sinhl.S b/sysdeps/ia64/fpu/e_sinhl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_sinhl.S
+rename to sysdeps/ia64/fpu/e_sinhl.S
+diff --git a/ports/sysdeps/ia64/fpu/e_sqrt.S b/sysdeps/ia64/fpu/e_sqrt.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_sqrt.S
+rename to sysdeps/ia64/fpu/e_sqrt.S
+diff --git a/ports/sysdeps/ia64/fpu/e_sqrtf.S b/sysdeps/ia64/fpu/e_sqrtf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_sqrtf.S
+rename to sysdeps/ia64/fpu/e_sqrtf.S
+diff --git a/ports/sysdeps/ia64/fpu/e_sqrtl.S b/sysdeps/ia64/fpu/e_sqrtl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/e_sqrtl.S
+rename to sysdeps/ia64/fpu/e_sqrtl.S
+diff --git a/ports/sysdeps/ia64/fpu/fclrexcpt.c b/sysdeps/ia64/fpu/fclrexcpt.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/fclrexcpt.c
+rename to sysdeps/ia64/fpu/fclrexcpt.c
+diff --git a/ports/sysdeps/ia64/fpu/fedisblxcpt.c b/sysdeps/ia64/fpu/fedisblxcpt.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/fedisblxcpt.c
+rename to sysdeps/ia64/fpu/fedisblxcpt.c
+diff --git a/ports/sysdeps/ia64/fpu/feenablxcpt.c b/sysdeps/ia64/fpu/feenablxcpt.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/feenablxcpt.c
+rename to sysdeps/ia64/fpu/feenablxcpt.c
+diff --git a/ports/sysdeps/ia64/fpu/fegetenv.c b/sysdeps/ia64/fpu/fegetenv.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/fegetenv.c
+rename to sysdeps/ia64/fpu/fegetenv.c
+diff --git a/ports/sysdeps/ia64/fpu/fegetexcept.c b/sysdeps/ia64/fpu/fegetexcept.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/fegetexcept.c
+rename to sysdeps/ia64/fpu/fegetexcept.c
+diff --git a/ports/sysdeps/ia64/fpu/fegetround.c b/sysdeps/ia64/fpu/fegetround.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/fegetround.c
+rename to sysdeps/ia64/fpu/fegetround.c
+diff --git a/ports/sysdeps/ia64/fpu/feholdexcpt.c b/sysdeps/ia64/fpu/feholdexcpt.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/feholdexcpt.c
+rename to sysdeps/ia64/fpu/feholdexcpt.c
+diff --git a/ports/sysdeps/ia64/fpu/fesetenv.c b/sysdeps/ia64/fpu/fesetenv.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/fesetenv.c
+rename to sysdeps/ia64/fpu/fesetenv.c
+diff --git a/ports/sysdeps/ia64/fpu/fesetround.c b/sysdeps/ia64/fpu/fesetround.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/fesetround.c
+rename to sysdeps/ia64/fpu/fesetround.c
+diff --git a/ports/sysdeps/ia64/fpu/feupdateenv.c b/sysdeps/ia64/fpu/feupdateenv.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/feupdateenv.c
+rename to sysdeps/ia64/fpu/feupdateenv.c
+diff --git a/ports/sysdeps/ia64/fpu/fgetexcptflg.c b/sysdeps/ia64/fpu/fgetexcptflg.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/fgetexcptflg.c
+rename to sysdeps/ia64/fpu/fgetexcptflg.c
+diff --git a/ports/sysdeps/ia64/fpu/fraiseexcpt.c b/sysdeps/ia64/fpu/fraiseexcpt.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/fraiseexcpt.c
+rename to sysdeps/ia64/fpu/fraiseexcpt.c
+diff --git a/ports/sysdeps/ia64/fpu/fsetexcptflg.c b/sysdeps/ia64/fpu/fsetexcptflg.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/fsetexcptflg.c
+rename to sysdeps/ia64/fpu/fsetexcptflg.c
+diff --git a/ports/sysdeps/ia64/fpu/ftestexcept.c b/sysdeps/ia64/fpu/ftestexcept.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/ftestexcept.c
+rename to sysdeps/ia64/fpu/ftestexcept.c
+diff --git a/ports/sysdeps/ia64/fpu/gen_import_file_list b/sysdeps/ia64/fpu/gen_import_file_list
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/gen_import_file_list
+rename to sysdeps/ia64/fpu/gen_import_file_list
+diff --git a/ports/sysdeps/ia64/fpu/get-rounding-mode.h b/sysdeps/ia64/fpu/get-rounding-mode.h
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/get-rounding-mode.h
+rename to sysdeps/ia64/fpu/get-rounding-mode.h
+diff --git a/ports/sysdeps/ia64/fpu/halfulp.c b/sysdeps/ia64/fpu/halfulp.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/halfulp.c
+rename to sysdeps/ia64/fpu/halfulp.c
+diff --git a/ports/sysdeps/ia64/fpu/import_check b/sysdeps/ia64/fpu/import_check
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/import_check
+rename to sysdeps/ia64/fpu/import_check
+diff --git a/ports/sysdeps/ia64/fpu/import_diffs b/sysdeps/ia64/fpu/import_diffs
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/import_diffs
+rename to sysdeps/ia64/fpu/import_diffs
+diff --git a/ports/sysdeps/ia64/fpu/import_file.awk b/sysdeps/ia64/fpu/import_file.awk
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/import_file.awk
+rename to sysdeps/ia64/fpu/import_file.awk
+diff --git a/ports/sysdeps/ia64/fpu/import_intel_libm b/sysdeps/ia64/fpu/import_intel_libm
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/import_intel_libm
+rename to sysdeps/ia64/fpu/import_intel_libm
+diff --git a/ports/sysdeps/ia64/fpu/k_rem_pio2.c b/sysdeps/ia64/fpu/k_rem_pio2.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/k_rem_pio2.c
+rename to sysdeps/ia64/fpu/k_rem_pio2.c
+diff --git a/ports/sysdeps/ia64/fpu/k_rem_pio2f.c b/sysdeps/ia64/fpu/k_rem_pio2f.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/k_rem_pio2f.c
+rename to sysdeps/ia64/fpu/k_rem_pio2f.c
+diff --git a/ports/sysdeps/ia64/fpu/k_rem_pio2l.c b/sysdeps/ia64/fpu/k_rem_pio2l.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/k_rem_pio2l.c
+rename to sysdeps/ia64/fpu/k_rem_pio2l.c
+diff --git a/ports/sysdeps/ia64/fpu/libc_libm_error.c b/sysdeps/ia64/fpu/libc_libm_error.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libc_libm_error.c
+rename to sysdeps/ia64/fpu/libc_libm_error.c
+diff --git a/ports/sysdeps/ia64/fpu/libm-symbols.h b/sysdeps/ia64/fpu/libm-symbols.h
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm-symbols.h
+rename to sysdeps/ia64/fpu/libm-symbols.h
+diff --git a/ports/sysdeps/ia64/fpu/libm-test-ulps b/sysdeps/ia64/fpu/libm-test-ulps
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm-test-ulps
+rename to sysdeps/ia64/fpu/libm-test-ulps
+diff --git a/ports/sysdeps/ia64/fpu/libm_cpu_defs.h b/sysdeps/ia64/fpu/libm_cpu_defs.h
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm_cpu_defs.h
+rename to sysdeps/ia64/fpu/libm_cpu_defs.h
+diff --git a/ports/sysdeps/ia64/fpu/libm_error.c b/sysdeps/ia64/fpu/libm_error.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm_error.c
+rename to sysdeps/ia64/fpu/libm_error.c
+diff --git a/ports/sysdeps/ia64/fpu/libm_error_codes.h b/sysdeps/ia64/fpu/libm_error_codes.h
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm_error_codes.h
+rename to sysdeps/ia64/fpu/libm_error_codes.h
+diff --git a/ports/sysdeps/ia64/fpu/libm_frexp.S b/sysdeps/ia64/fpu/libm_frexp.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm_frexp.S
+rename to sysdeps/ia64/fpu/libm_frexp.S
+diff --git a/ports/sysdeps/ia64/fpu/libm_frexp4.S b/sysdeps/ia64/fpu/libm_frexp4.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm_frexp4.S
+rename to sysdeps/ia64/fpu/libm_frexp4.S
+diff --git a/ports/sysdeps/ia64/fpu/libm_frexp4f.S b/sysdeps/ia64/fpu/libm_frexp4f.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm_frexp4f.S
+rename to sysdeps/ia64/fpu/libm_frexp4f.S
+diff --git a/ports/sysdeps/ia64/fpu/libm_frexp4l.S b/sysdeps/ia64/fpu/libm_frexp4l.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm_frexp4l.S
+rename to sysdeps/ia64/fpu/libm_frexp4l.S
+diff --git a/ports/sysdeps/ia64/fpu/libm_frexpf.S b/sysdeps/ia64/fpu/libm_frexpf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm_frexpf.S
+rename to sysdeps/ia64/fpu/libm_frexpf.S
+diff --git a/ports/sysdeps/ia64/fpu/libm_frexpl.S b/sysdeps/ia64/fpu/libm_frexpl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm_frexpl.S
+rename to sysdeps/ia64/fpu/libm_frexpl.S
+diff --git a/ports/sysdeps/ia64/fpu/libm_lgamma.S b/sysdeps/ia64/fpu/libm_lgamma.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm_lgamma.S
+rename to sysdeps/ia64/fpu/libm_lgamma.S
+diff --git a/ports/sysdeps/ia64/fpu/libm_lgammaf.S b/sysdeps/ia64/fpu/libm_lgammaf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm_lgammaf.S
+rename to sysdeps/ia64/fpu/libm_lgammaf.S
+diff --git a/ports/sysdeps/ia64/fpu/libm_lgammal.S b/sysdeps/ia64/fpu/libm_lgammal.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm_lgammal.S
+rename to sysdeps/ia64/fpu/libm_lgammal.S
+diff --git a/ports/sysdeps/ia64/fpu/libm_reduce.S b/sysdeps/ia64/fpu/libm_reduce.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm_reduce.S
+rename to sysdeps/ia64/fpu/libm_reduce.S
+diff --git a/ports/sysdeps/ia64/fpu/libm_scalblnf.S b/sysdeps/ia64/fpu/libm_scalblnf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm_scalblnf.S
+rename to sysdeps/ia64/fpu/libm_scalblnf.S
+diff --git a/ports/sysdeps/ia64/fpu/libm_sincos.S b/sysdeps/ia64/fpu/libm_sincos.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm_sincos.S
+rename to sysdeps/ia64/fpu/libm_sincos.S
+diff --git a/ports/sysdeps/ia64/fpu/libm_sincos_large.S b/sysdeps/ia64/fpu/libm_sincos_large.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm_sincos_large.S
+rename to sysdeps/ia64/fpu/libm_sincos_large.S
+diff --git a/ports/sysdeps/ia64/fpu/libm_sincosf.S b/sysdeps/ia64/fpu/libm_sincosf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm_sincosf.S
+rename to sysdeps/ia64/fpu/libm_sincosf.S
+diff --git a/ports/sysdeps/ia64/fpu/libm_sincosl.S b/sysdeps/ia64/fpu/libm_sincosl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm_sincosl.S
+rename to sysdeps/ia64/fpu/libm_sincosl.S
+diff --git a/ports/sysdeps/ia64/fpu/libm_support.h b/sysdeps/ia64/fpu/libm_support.h
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm_support.h
+rename to sysdeps/ia64/fpu/libm_support.h
+diff --git a/ports/sysdeps/ia64/fpu/libm_tan.S b/sysdeps/ia64/fpu/libm_tan.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/libm_tan.S
+rename to sysdeps/ia64/fpu/libm_tan.S
+diff --git a/ports/sysdeps/ia64/fpu/math_ldbl.h b/sysdeps/ia64/fpu/math_ldbl.h
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/math_ldbl.h
+rename to sysdeps/ia64/fpu/math_ldbl.h
+diff --git a/ports/sysdeps/ia64/fpu/mpa.c b/sysdeps/ia64/fpu/mpa.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/mpa.c
+rename to sysdeps/ia64/fpu/mpa.c
+diff --git a/ports/sysdeps/ia64/fpu/mpatan.c b/sysdeps/ia64/fpu/mpatan.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/mpatan.c
+rename to sysdeps/ia64/fpu/mpatan.c
+diff --git a/ports/sysdeps/ia64/fpu/mpatan2.c b/sysdeps/ia64/fpu/mpatan2.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/mpatan2.c
+rename to sysdeps/ia64/fpu/mpatan2.c
+diff --git a/ports/sysdeps/ia64/fpu/mpexp.c b/sysdeps/ia64/fpu/mpexp.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/mpexp.c
+rename to sysdeps/ia64/fpu/mpexp.c
+diff --git a/ports/sysdeps/ia64/fpu/mplog.c b/sysdeps/ia64/fpu/mplog.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/mplog.c
+rename to sysdeps/ia64/fpu/mplog.c
+diff --git a/ports/sysdeps/ia64/fpu/mpsqrt.c b/sysdeps/ia64/fpu/mpsqrt.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/mpsqrt.c
+rename to sysdeps/ia64/fpu/mpsqrt.c
+diff --git a/ports/sysdeps/ia64/fpu/mptan.c b/sysdeps/ia64/fpu/mptan.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/mptan.c
+rename to sysdeps/ia64/fpu/mptan.c
+diff --git a/ports/sysdeps/ia64/fpu/printf_fphex.c b/sysdeps/ia64/fpu/printf_fphex.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/printf_fphex.c
+rename to sysdeps/ia64/fpu/printf_fphex.c
+diff --git a/ports/sysdeps/ia64/fpu/s_asinh.S b/sysdeps/ia64/fpu/s_asinh.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_asinh.S
+rename to sysdeps/ia64/fpu/s_asinh.S
+diff --git a/ports/sysdeps/ia64/fpu/s_asinhf.S b/sysdeps/ia64/fpu/s_asinhf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_asinhf.S
+rename to sysdeps/ia64/fpu/s_asinhf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_asinhl.S b/sysdeps/ia64/fpu/s_asinhl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_asinhl.S
+rename to sysdeps/ia64/fpu/s_asinhl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_atan.S b/sysdeps/ia64/fpu/s_atan.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_atan.S
+rename to sysdeps/ia64/fpu/s_atan.S
+diff --git a/ports/sysdeps/ia64/fpu/s_atanf.S b/sysdeps/ia64/fpu/s_atanf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_atanf.S
+rename to sysdeps/ia64/fpu/s_atanf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_atanl.S b/sysdeps/ia64/fpu/s_atanl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_atanl.S
+rename to sysdeps/ia64/fpu/s_atanl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_cbrt.S b/sysdeps/ia64/fpu/s_cbrt.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_cbrt.S
+rename to sysdeps/ia64/fpu/s_cbrt.S
+diff --git a/ports/sysdeps/ia64/fpu/s_cbrtf.S b/sysdeps/ia64/fpu/s_cbrtf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_cbrtf.S
+rename to sysdeps/ia64/fpu/s_cbrtf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_cbrtl.S b/sysdeps/ia64/fpu/s_cbrtl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_cbrtl.S
+rename to sysdeps/ia64/fpu/s_cbrtl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_ceil.S b/sysdeps/ia64/fpu/s_ceil.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_ceil.S
+rename to sysdeps/ia64/fpu/s_ceil.S
+diff --git a/ports/sysdeps/ia64/fpu/s_ceilf.S b/sysdeps/ia64/fpu/s_ceilf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_ceilf.S
+rename to sysdeps/ia64/fpu/s_ceilf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_ceill.S b/sysdeps/ia64/fpu/s_ceill.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_ceill.S
+rename to sysdeps/ia64/fpu/s_ceill.S
+diff --git a/ports/sysdeps/ia64/fpu/s_copysign.S b/sysdeps/ia64/fpu/s_copysign.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_copysign.S
+rename to sysdeps/ia64/fpu/s_copysign.S
+diff --git a/ports/sysdeps/ia64/fpu/s_copysignf.S b/sysdeps/ia64/fpu/s_copysignf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_copysignf.S
+rename to sysdeps/ia64/fpu/s_copysignf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_copysignl.S b/sysdeps/ia64/fpu/s_copysignl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_copysignl.S
+rename to sysdeps/ia64/fpu/s_copysignl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_cos.S b/sysdeps/ia64/fpu/s_cos.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_cos.S
+rename to sysdeps/ia64/fpu/s_cos.S
+diff --git a/ports/sysdeps/ia64/fpu/s_cosf.S b/sysdeps/ia64/fpu/s_cosf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_cosf.S
+rename to sysdeps/ia64/fpu/s_cosf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_cosl.S b/sysdeps/ia64/fpu/s_cosl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_cosl.S
+rename to sysdeps/ia64/fpu/s_cosl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_erf.S b/sysdeps/ia64/fpu/s_erf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_erf.S
+rename to sysdeps/ia64/fpu/s_erf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_erfc.S b/sysdeps/ia64/fpu/s_erfc.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_erfc.S
+rename to sysdeps/ia64/fpu/s_erfc.S
+diff --git a/ports/sysdeps/ia64/fpu/s_erfcf.S b/sysdeps/ia64/fpu/s_erfcf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_erfcf.S
+rename to sysdeps/ia64/fpu/s_erfcf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_erfcl.S b/sysdeps/ia64/fpu/s_erfcl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_erfcl.S
+rename to sysdeps/ia64/fpu/s_erfcl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_erff.S b/sysdeps/ia64/fpu/s_erff.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_erff.S
+rename to sysdeps/ia64/fpu/s_erff.S
+diff --git a/ports/sysdeps/ia64/fpu/s_erfl.S b/sysdeps/ia64/fpu/s_erfl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_erfl.S
+rename to sysdeps/ia64/fpu/s_erfl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_expm1.S b/sysdeps/ia64/fpu/s_expm1.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_expm1.S
+rename to sysdeps/ia64/fpu/s_expm1.S
+diff --git a/ports/sysdeps/ia64/fpu/s_expm1f.S b/sysdeps/ia64/fpu/s_expm1f.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_expm1f.S
+rename to sysdeps/ia64/fpu/s_expm1f.S
+diff --git a/ports/sysdeps/ia64/fpu/s_expm1l.S b/sysdeps/ia64/fpu/s_expm1l.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_expm1l.S
+rename to sysdeps/ia64/fpu/s_expm1l.S
+diff --git a/ports/sysdeps/ia64/fpu/s_fabs.S b/sysdeps/ia64/fpu/s_fabs.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_fabs.S
+rename to sysdeps/ia64/fpu/s_fabs.S
+diff --git a/ports/sysdeps/ia64/fpu/s_fabsf.S b/sysdeps/ia64/fpu/s_fabsf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_fabsf.S
+rename to sysdeps/ia64/fpu/s_fabsf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_fabsl.S b/sysdeps/ia64/fpu/s_fabsl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_fabsl.S
+rename to sysdeps/ia64/fpu/s_fabsl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_fdim.S b/sysdeps/ia64/fpu/s_fdim.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_fdim.S
+rename to sysdeps/ia64/fpu/s_fdim.S
+diff --git a/ports/sysdeps/ia64/fpu/s_fdimf.S b/sysdeps/ia64/fpu/s_fdimf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_fdimf.S
+rename to sysdeps/ia64/fpu/s_fdimf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_fdiml.S b/sysdeps/ia64/fpu/s_fdiml.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_fdiml.S
+rename to sysdeps/ia64/fpu/s_fdiml.S
+diff --git a/ports/sysdeps/ia64/fpu/s_finite.S b/sysdeps/ia64/fpu/s_finite.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_finite.S
+rename to sysdeps/ia64/fpu/s_finite.S
+diff --git a/ports/sysdeps/ia64/fpu/s_finitef.S b/sysdeps/ia64/fpu/s_finitef.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_finitef.S
+rename to sysdeps/ia64/fpu/s_finitef.S
+diff --git a/ports/sysdeps/ia64/fpu/s_finitel.S b/sysdeps/ia64/fpu/s_finitel.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_finitel.S
+rename to sysdeps/ia64/fpu/s_finitel.S
+diff --git a/ports/sysdeps/ia64/fpu/s_floor.S b/sysdeps/ia64/fpu/s_floor.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_floor.S
+rename to sysdeps/ia64/fpu/s_floor.S
+diff --git a/ports/sysdeps/ia64/fpu/s_floorf.S b/sysdeps/ia64/fpu/s_floorf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_floorf.S
+rename to sysdeps/ia64/fpu/s_floorf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_floorl.S b/sysdeps/ia64/fpu/s_floorl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_floorl.S
+rename to sysdeps/ia64/fpu/s_floorl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_fma.S b/sysdeps/ia64/fpu/s_fma.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_fma.S
+rename to sysdeps/ia64/fpu/s_fma.S
+diff --git a/ports/sysdeps/ia64/fpu/s_fmaf.S b/sysdeps/ia64/fpu/s_fmaf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_fmaf.S
+rename to sysdeps/ia64/fpu/s_fmaf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_fmal.S b/sysdeps/ia64/fpu/s_fmal.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_fmal.S
+rename to sysdeps/ia64/fpu/s_fmal.S
+diff --git a/ports/sysdeps/ia64/fpu/s_fmax.S b/sysdeps/ia64/fpu/s_fmax.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_fmax.S
+rename to sysdeps/ia64/fpu/s_fmax.S
+diff --git a/ports/sysdeps/ia64/fpu/s_fmaxf.S b/sysdeps/ia64/fpu/s_fmaxf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_fmaxf.S
+rename to sysdeps/ia64/fpu/s_fmaxf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_fmaxl.S b/sysdeps/ia64/fpu/s_fmaxl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_fmaxl.S
+rename to sysdeps/ia64/fpu/s_fmaxl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_fpclassify.S b/sysdeps/ia64/fpu/s_fpclassify.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_fpclassify.S
+rename to sysdeps/ia64/fpu/s_fpclassify.S
+diff --git a/ports/sysdeps/ia64/fpu/s_fpclassifyf.S b/sysdeps/ia64/fpu/s_fpclassifyf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_fpclassifyf.S
+rename to sysdeps/ia64/fpu/s_fpclassifyf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_fpclassifyl.S b/sysdeps/ia64/fpu/s_fpclassifyl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_fpclassifyl.S
+rename to sysdeps/ia64/fpu/s_fpclassifyl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_frexp.c b/sysdeps/ia64/fpu/s_frexp.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_frexp.c
+rename to sysdeps/ia64/fpu/s_frexp.c
+diff --git a/ports/sysdeps/ia64/fpu/s_frexpf.c b/sysdeps/ia64/fpu/s_frexpf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_frexpf.c
+rename to sysdeps/ia64/fpu/s_frexpf.c
+diff --git a/ports/sysdeps/ia64/fpu/s_frexpl.c b/sysdeps/ia64/fpu/s_frexpl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_frexpl.c
+rename to sysdeps/ia64/fpu/s_frexpl.c
+diff --git a/ports/sysdeps/ia64/fpu/s_ilogb.S b/sysdeps/ia64/fpu/s_ilogb.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_ilogb.S
+rename to sysdeps/ia64/fpu/s_ilogb.S
+diff --git a/ports/sysdeps/ia64/fpu/s_ilogbf.S b/sysdeps/ia64/fpu/s_ilogbf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_ilogbf.S
+rename to sysdeps/ia64/fpu/s_ilogbf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_isinf.S b/sysdeps/ia64/fpu/s_isinf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_isinf.S
+rename to sysdeps/ia64/fpu/s_isinf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_isinff.S b/sysdeps/ia64/fpu/s_isinff.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_isinff.S
+rename to sysdeps/ia64/fpu/s_isinff.S
+diff --git a/ports/sysdeps/ia64/fpu/s_isinfl.S b/sysdeps/ia64/fpu/s_isinfl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_isinfl.S
+rename to sysdeps/ia64/fpu/s_isinfl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_isnan.S b/sysdeps/ia64/fpu/s_isnan.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_isnan.S
+rename to sysdeps/ia64/fpu/s_isnan.S
+diff --git a/ports/sysdeps/ia64/fpu/s_isnanf.S b/sysdeps/ia64/fpu/s_isnanf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_isnanf.S
+rename to sysdeps/ia64/fpu/s_isnanf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_isnanl.S b/sysdeps/ia64/fpu/s_isnanl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_isnanl.S
+rename to sysdeps/ia64/fpu/s_isnanl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_ldexp.c b/sysdeps/ia64/fpu/s_ldexp.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_ldexp.c
+rename to sysdeps/ia64/fpu/s_ldexp.c
+diff --git a/ports/sysdeps/ia64/fpu/s_ldexpf.c b/sysdeps/ia64/fpu/s_ldexpf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_ldexpf.c
+rename to sysdeps/ia64/fpu/s_ldexpf.c
+diff --git a/ports/sysdeps/ia64/fpu/s_ldexpl.c b/sysdeps/ia64/fpu/s_ldexpl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_ldexpl.c
+rename to sysdeps/ia64/fpu/s_ldexpl.c
+diff --git a/ports/sysdeps/ia64/fpu/s_libm_ldexp.S b/sysdeps/ia64/fpu/s_libm_ldexp.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_libm_ldexp.S
+rename to sysdeps/ia64/fpu/s_libm_ldexp.S
+diff --git a/ports/sysdeps/ia64/fpu/s_libm_ldexpf.S b/sysdeps/ia64/fpu/s_libm_ldexpf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_libm_ldexpf.S
+rename to sysdeps/ia64/fpu/s_libm_ldexpf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_libm_ldexpl.S b/sysdeps/ia64/fpu/s_libm_ldexpl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_libm_ldexpl.S
+rename to sysdeps/ia64/fpu/s_libm_ldexpl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_libm_scalbn.S b/sysdeps/ia64/fpu/s_libm_scalbn.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_libm_scalbn.S
+rename to sysdeps/ia64/fpu/s_libm_scalbn.S
+diff --git a/ports/sysdeps/ia64/fpu/s_libm_scalbnf.S b/sysdeps/ia64/fpu/s_libm_scalbnf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_libm_scalbnf.S
+rename to sysdeps/ia64/fpu/s_libm_scalbnf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_libm_scalbnl.S b/sysdeps/ia64/fpu/s_libm_scalbnl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_libm_scalbnl.S
+rename to sysdeps/ia64/fpu/s_libm_scalbnl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_log1p.S b/sysdeps/ia64/fpu/s_log1p.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_log1p.S
+rename to sysdeps/ia64/fpu/s_log1p.S
+diff --git a/ports/sysdeps/ia64/fpu/s_log1pf.S b/sysdeps/ia64/fpu/s_log1pf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_log1pf.S
+rename to sysdeps/ia64/fpu/s_log1pf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_log1pl.S b/sysdeps/ia64/fpu/s_log1pl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_log1pl.S
+rename to sysdeps/ia64/fpu/s_log1pl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_logb.S b/sysdeps/ia64/fpu/s_logb.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_logb.S
+rename to sysdeps/ia64/fpu/s_logb.S
+diff --git a/ports/sysdeps/ia64/fpu/s_logbf.S b/sysdeps/ia64/fpu/s_logbf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_logbf.S
+rename to sysdeps/ia64/fpu/s_logbf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_logbl.S b/sysdeps/ia64/fpu/s_logbl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_logbl.S
+rename to sysdeps/ia64/fpu/s_logbl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_matherrf.c b/sysdeps/ia64/fpu/s_matherrf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_matherrf.c
+rename to sysdeps/ia64/fpu/s_matherrf.c
+diff --git a/ports/sysdeps/ia64/fpu/s_matherrl.c b/sysdeps/ia64/fpu/s_matherrl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_matherrl.c
+rename to sysdeps/ia64/fpu/s_matherrl.c
+diff --git a/ports/sysdeps/ia64/fpu/s_modf.S b/sysdeps/ia64/fpu/s_modf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_modf.S
+rename to sysdeps/ia64/fpu/s_modf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_modff.S b/sysdeps/ia64/fpu/s_modff.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_modff.S
+rename to sysdeps/ia64/fpu/s_modff.S
+diff --git a/ports/sysdeps/ia64/fpu/s_modfl.S b/sysdeps/ia64/fpu/s_modfl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_modfl.S
+rename to sysdeps/ia64/fpu/s_modfl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_nearbyint.S b/sysdeps/ia64/fpu/s_nearbyint.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_nearbyint.S
+rename to sysdeps/ia64/fpu/s_nearbyint.S
+diff --git a/ports/sysdeps/ia64/fpu/s_nearbyintf.S b/sysdeps/ia64/fpu/s_nearbyintf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_nearbyintf.S
+rename to sysdeps/ia64/fpu/s_nearbyintf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_nearbyintl.S b/sysdeps/ia64/fpu/s_nearbyintl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_nearbyintl.S
+rename to sysdeps/ia64/fpu/s_nearbyintl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_nextafter.S b/sysdeps/ia64/fpu/s_nextafter.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_nextafter.S
+rename to sysdeps/ia64/fpu/s_nextafter.S
+diff --git a/ports/sysdeps/ia64/fpu/s_nextafterf.S b/sysdeps/ia64/fpu/s_nextafterf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_nextafterf.S
+rename to sysdeps/ia64/fpu/s_nextafterf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_nextafterl.S b/sysdeps/ia64/fpu/s_nextafterl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_nextafterl.S
+rename to sysdeps/ia64/fpu/s_nextafterl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_nexttoward.S b/sysdeps/ia64/fpu/s_nexttoward.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_nexttoward.S
+rename to sysdeps/ia64/fpu/s_nexttoward.S
+diff --git a/ports/sysdeps/ia64/fpu/s_nexttowardf.S b/sysdeps/ia64/fpu/s_nexttowardf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_nexttowardf.S
+rename to sysdeps/ia64/fpu/s_nexttowardf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_nexttowardl.S b/sysdeps/ia64/fpu/s_nexttowardl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_nexttowardl.S
+rename to sysdeps/ia64/fpu/s_nexttowardl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_rint.S b/sysdeps/ia64/fpu/s_rint.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_rint.S
+rename to sysdeps/ia64/fpu/s_rint.S
+diff --git a/ports/sysdeps/ia64/fpu/s_rintf.S b/sysdeps/ia64/fpu/s_rintf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_rintf.S
+rename to sysdeps/ia64/fpu/s_rintf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_rintl.S b/sysdeps/ia64/fpu/s_rintl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_rintl.S
+rename to sysdeps/ia64/fpu/s_rintl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_round.S b/sysdeps/ia64/fpu/s_round.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_round.S
+rename to sysdeps/ia64/fpu/s_round.S
+diff --git a/ports/sysdeps/ia64/fpu/s_roundf.S b/sysdeps/ia64/fpu/s_roundf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_roundf.S
+rename to sysdeps/ia64/fpu/s_roundf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_roundl.S b/sysdeps/ia64/fpu/s_roundl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_roundl.S
+rename to sysdeps/ia64/fpu/s_roundl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_scalblnf.c b/sysdeps/ia64/fpu/s_scalblnf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_scalblnf.c
+rename to sysdeps/ia64/fpu/s_scalblnf.c
+diff --git a/ports/sysdeps/ia64/fpu/s_scalbn.c b/sysdeps/ia64/fpu/s_scalbn.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_scalbn.c
+rename to sysdeps/ia64/fpu/s_scalbn.c
+diff --git a/ports/sysdeps/ia64/fpu/s_scalbnf.c b/sysdeps/ia64/fpu/s_scalbnf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_scalbnf.c
+rename to sysdeps/ia64/fpu/s_scalbnf.c
+diff --git a/ports/sysdeps/ia64/fpu/s_scalbnl.c b/sysdeps/ia64/fpu/s_scalbnl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_scalbnl.c
+rename to sysdeps/ia64/fpu/s_scalbnl.c
+diff --git a/ports/sysdeps/ia64/fpu/s_signbit.S b/sysdeps/ia64/fpu/s_signbit.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_signbit.S
+rename to sysdeps/ia64/fpu/s_signbit.S
+diff --git a/ports/sysdeps/ia64/fpu/s_signbitf.S b/sysdeps/ia64/fpu/s_signbitf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_signbitf.S
+rename to sysdeps/ia64/fpu/s_signbitf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_signbitl.S b/sysdeps/ia64/fpu/s_signbitl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_signbitl.S
+rename to sysdeps/ia64/fpu/s_signbitl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_significand.S b/sysdeps/ia64/fpu/s_significand.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_significand.S
+rename to sysdeps/ia64/fpu/s_significand.S
+diff --git a/ports/sysdeps/ia64/fpu/s_significandf.S b/sysdeps/ia64/fpu/s_significandf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_significandf.S
+rename to sysdeps/ia64/fpu/s_significandf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_significandl.S b/sysdeps/ia64/fpu/s_significandl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_significandl.S
+rename to sysdeps/ia64/fpu/s_significandl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_sin.c b/sysdeps/ia64/fpu/s_sin.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_sin.c
+rename to sysdeps/ia64/fpu/s_sin.c
+diff --git a/ports/sysdeps/ia64/fpu/s_sincos.c b/sysdeps/ia64/fpu/s_sincos.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_sincos.c
+rename to sysdeps/ia64/fpu/s_sincos.c
+diff --git a/ports/sysdeps/ia64/fpu/s_sincosf.c b/sysdeps/ia64/fpu/s_sincosf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_sincosf.c
+rename to sysdeps/ia64/fpu/s_sincosf.c
+diff --git a/ports/sysdeps/ia64/fpu/s_sincosl.c b/sysdeps/ia64/fpu/s_sincosl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_sincosl.c
+rename to sysdeps/ia64/fpu/s_sincosl.c
+diff --git a/ports/sysdeps/ia64/fpu/s_sinf.c b/sysdeps/ia64/fpu/s_sinf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_sinf.c
+rename to sysdeps/ia64/fpu/s_sinf.c
+diff --git a/ports/sysdeps/ia64/fpu/s_sinl.c b/sysdeps/ia64/fpu/s_sinl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_sinl.c
+rename to sysdeps/ia64/fpu/s_sinl.c
+diff --git a/ports/sysdeps/ia64/fpu/s_tan.S b/sysdeps/ia64/fpu/s_tan.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_tan.S
+rename to sysdeps/ia64/fpu/s_tan.S
+diff --git a/ports/sysdeps/ia64/fpu/s_tanf.S b/sysdeps/ia64/fpu/s_tanf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_tanf.S
+rename to sysdeps/ia64/fpu/s_tanf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_tanh.S b/sysdeps/ia64/fpu/s_tanh.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_tanh.S
+rename to sysdeps/ia64/fpu/s_tanh.S
+diff --git a/ports/sysdeps/ia64/fpu/s_tanhf.S b/sysdeps/ia64/fpu/s_tanhf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_tanhf.S
+rename to sysdeps/ia64/fpu/s_tanhf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_tanhl.S b/sysdeps/ia64/fpu/s_tanhl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_tanhl.S
+rename to sysdeps/ia64/fpu/s_tanhl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_tanl.S b/sysdeps/ia64/fpu/s_tanl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_tanl.S
+rename to sysdeps/ia64/fpu/s_tanl.S
+diff --git a/ports/sysdeps/ia64/fpu/s_trunc.S b/sysdeps/ia64/fpu/s_trunc.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_trunc.S
+rename to sysdeps/ia64/fpu/s_trunc.S
+diff --git a/ports/sysdeps/ia64/fpu/s_truncf.S b/sysdeps/ia64/fpu/s_truncf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_truncf.S
+rename to sysdeps/ia64/fpu/s_truncf.S
+diff --git a/ports/sysdeps/ia64/fpu/s_truncl.S b/sysdeps/ia64/fpu/s_truncl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/s_truncl.S
+rename to sysdeps/ia64/fpu/s_truncl.S
+diff --git a/ports/sysdeps/ia64/fpu/sincos32.c b/sysdeps/ia64/fpu/sincos32.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/sincos32.c
+rename to sysdeps/ia64/fpu/sincos32.c
+diff --git a/ports/sysdeps/ia64/fpu/slowexp.c b/sysdeps/ia64/fpu/slowexp.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/slowexp.c
+rename to sysdeps/ia64/fpu/slowexp.c
+diff --git a/ports/sysdeps/ia64/fpu/slowpow.c b/sysdeps/ia64/fpu/slowpow.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/slowpow.c
+rename to sysdeps/ia64/fpu/slowpow.c
+diff --git a/ports/sysdeps/ia64/fpu/t_exp.c b/sysdeps/ia64/fpu/t_exp.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/t_exp.c
+rename to sysdeps/ia64/fpu/t_exp.c
+diff --git a/ports/sysdeps/ia64/fpu/w_acos.c b/sysdeps/ia64/fpu/w_acos.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_acos.c
+rename to sysdeps/ia64/fpu/w_acos.c
+diff --git a/ports/sysdeps/ia64/fpu/w_acosf.c b/sysdeps/ia64/fpu/w_acosf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_acosf.c
+rename to sysdeps/ia64/fpu/w_acosf.c
+diff --git a/ports/sysdeps/ia64/fpu/w_acosh.c b/sysdeps/ia64/fpu/w_acosh.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_acosh.c
+rename to sysdeps/ia64/fpu/w_acosh.c
+diff --git a/ports/sysdeps/ia64/fpu/w_acoshf.c b/sysdeps/ia64/fpu/w_acoshf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_acoshf.c
+rename to sysdeps/ia64/fpu/w_acoshf.c
+diff --git a/ports/sysdeps/ia64/fpu/w_acoshl.c b/sysdeps/ia64/fpu/w_acoshl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_acoshl.c
+rename to sysdeps/ia64/fpu/w_acoshl.c
+diff --git a/ports/sysdeps/ia64/fpu/w_acosl.c b/sysdeps/ia64/fpu/w_acosl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_acosl.c
+rename to sysdeps/ia64/fpu/w_acosl.c
+diff --git a/ports/sysdeps/ia64/fpu/w_asin.c b/sysdeps/ia64/fpu/w_asin.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_asin.c
+rename to sysdeps/ia64/fpu/w_asin.c
+diff --git a/ports/sysdeps/ia64/fpu/w_asinf.c b/sysdeps/ia64/fpu/w_asinf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_asinf.c
+rename to sysdeps/ia64/fpu/w_asinf.c
+diff --git a/ports/sysdeps/ia64/fpu/w_asinl.c b/sysdeps/ia64/fpu/w_asinl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_asinl.c
+rename to sysdeps/ia64/fpu/w_asinl.c
+diff --git a/ports/sysdeps/ia64/fpu/w_atan2.c b/sysdeps/ia64/fpu/w_atan2.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_atan2.c
+rename to sysdeps/ia64/fpu/w_atan2.c
+diff --git a/ports/sysdeps/ia64/fpu/w_atan2f.c b/sysdeps/ia64/fpu/w_atan2f.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_atan2f.c
+rename to sysdeps/ia64/fpu/w_atan2f.c
+diff --git a/ports/sysdeps/ia64/fpu/w_atan2l.c b/sysdeps/ia64/fpu/w_atan2l.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_atan2l.c
+rename to sysdeps/ia64/fpu/w_atan2l.c
+diff --git a/ports/sysdeps/ia64/fpu/w_atanh.c b/sysdeps/ia64/fpu/w_atanh.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_atanh.c
+rename to sysdeps/ia64/fpu/w_atanh.c
+diff --git a/ports/sysdeps/ia64/fpu/w_atanhf.c b/sysdeps/ia64/fpu/w_atanhf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_atanhf.c
+rename to sysdeps/ia64/fpu/w_atanhf.c
+diff --git a/ports/sysdeps/ia64/fpu/w_atanhl.c b/sysdeps/ia64/fpu/w_atanhl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_atanhl.c
+rename to sysdeps/ia64/fpu/w_atanhl.c
+diff --git a/ports/sysdeps/ia64/fpu/w_cosh.c b/sysdeps/ia64/fpu/w_cosh.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_cosh.c
+rename to sysdeps/ia64/fpu/w_cosh.c
+diff --git a/ports/sysdeps/ia64/fpu/w_coshf.c b/sysdeps/ia64/fpu/w_coshf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_coshf.c
+rename to sysdeps/ia64/fpu/w_coshf.c
+diff --git a/ports/sysdeps/ia64/fpu/w_coshl.c b/sysdeps/ia64/fpu/w_coshl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_coshl.c
+rename to sysdeps/ia64/fpu/w_coshl.c
+diff --git a/ports/sysdeps/ia64/fpu/w_exp.c b/sysdeps/ia64/fpu/w_exp.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_exp.c
+rename to sysdeps/ia64/fpu/w_exp.c
+diff --git a/ports/sysdeps/ia64/fpu/w_exp10.c b/sysdeps/ia64/fpu/w_exp10.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_exp10.c
+rename to sysdeps/ia64/fpu/w_exp10.c
+diff --git a/ports/sysdeps/ia64/fpu/w_exp10f.c b/sysdeps/ia64/fpu/w_exp10f.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_exp10f.c
+rename to sysdeps/ia64/fpu/w_exp10f.c
+diff --git a/ports/sysdeps/ia64/fpu/w_exp10l.c b/sysdeps/ia64/fpu/w_exp10l.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_exp10l.c
+rename to sysdeps/ia64/fpu/w_exp10l.c
+diff --git a/ports/sysdeps/ia64/fpu/w_exp2.c b/sysdeps/ia64/fpu/w_exp2.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_exp2.c
+rename to sysdeps/ia64/fpu/w_exp2.c
+diff --git a/ports/sysdeps/ia64/fpu/w_exp2f.c b/sysdeps/ia64/fpu/w_exp2f.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_exp2f.c
+rename to sysdeps/ia64/fpu/w_exp2f.c
+diff --git a/ports/sysdeps/ia64/fpu/w_exp2l.c b/sysdeps/ia64/fpu/w_exp2l.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_exp2l.c
+rename to sysdeps/ia64/fpu/w_exp2l.c
+diff --git a/ports/sysdeps/ia64/fpu/w_expf.c b/sysdeps/ia64/fpu/w_expf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_expf.c
+rename to sysdeps/ia64/fpu/w_expf.c
+diff --git a/ports/sysdeps/ia64/fpu/w_expl.c b/sysdeps/ia64/fpu/w_expl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_expl.c
+rename to sysdeps/ia64/fpu/w_expl.c
+diff --git a/ports/sysdeps/ia64/fpu/w_fmod.c b/sysdeps/ia64/fpu/w_fmod.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_fmod.c
+rename to sysdeps/ia64/fpu/w_fmod.c
+diff --git a/ports/sysdeps/ia64/fpu/w_fmodf.c b/sysdeps/ia64/fpu/w_fmodf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_fmodf.c
+rename to sysdeps/ia64/fpu/w_fmodf.c
+diff --git a/ports/sysdeps/ia64/fpu/w_fmodl.c b/sysdeps/ia64/fpu/w_fmodl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_fmodl.c
+rename to sysdeps/ia64/fpu/w_fmodl.c
+diff --git a/ports/sysdeps/ia64/fpu/w_hypot.c b/sysdeps/ia64/fpu/w_hypot.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_hypot.c
+rename to sysdeps/ia64/fpu/w_hypot.c
+diff --git a/ports/sysdeps/ia64/fpu/w_hypotf.c b/sysdeps/ia64/fpu/w_hypotf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_hypotf.c
+rename to sysdeps/ia64/fpu/w_hypotf.c
+diff --git a/ports/sysdeps/ia64/fpu/w_hypotl.c b/sysdeps/ia64/fpu/w_hypotl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_hypotl.c
+rename to sysdeps/ia64/fpu/w_hypotl.c
+diff --git a/ports/sysdeps/ia64/fpu/w_lgamma.c b/sysdeps/ia64/fpu/w_lgamma.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_lgamma.c
+rename to sysdeps/ia64/fpu/w_lgamma.c
+diff --git a/ports/sysdeps/ia64/fpu/w_lgamma_r.c b/sysdeps/ia64/fpu/w_lgamma_r.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_lgamma_r.c
+rename to sysdeps/ia64/fpu/w_lgamma_r.c
+diff --git a/ports/sysdeps/ia64/fpu/w_lgammaf.c b/sysdeps/ia64/fpu/w_lgammaf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_lgammaf.c
+rename to sysdeps/ia64/fpu/w_lgammaf.c
+diff --git a/ports/sysdeps/ia64/fpu/w_lgammaf_r.c b/sysdeps/ia64/fpu/w_lgammaf_r.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_lgammaf_r.c
+rename to sysdeps/ia64/fpu/w_lgammaf_r.c
+diff --git a/ports/sysdeps/ia64/fpu/w_lgammal.c b/sysdeps/ia64/fpu/w_lgammal.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_lgammal.c
+rename to sysdeps/ia64/fpu/w_lgammal.c
+diff --git a/ports/sysdeps/ia64/fpu/w_lgammal_r.c b/sysdeps/ia64/fpu/w_lgammal_r.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_lgammal_r.c
+rename to sysdeps/ia64/fpu/w_lgammal_r.c
+diff --git a/ports/sysdeps/ia64/fpu/w_log.c b/sysdeps/ia64/fpu/w_log.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_log.c
+rename to sysdeps/ia64/fpu/w_log.c
+diff --git a/ports/sysdeps/ia64/fpu/w_log10.c b/sysdeps/ia64/fpu/w_log10.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_log10.c
+rename to sysdeps/ia64/fpu/w_log10.c
+diff --git a/ports/sysdeps/ia64/fpu/w_log10f.c b/sysdeps/ia64/fpu/w_log10f.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_log10f.c
+rename to sysdeps/ia64/fpu/w_log10f.c
+diff --git a/ports/sysdeps/ia64/fpu/w_log10l.c b/sysdeps/ia64/fpu/w_log10l.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_log10l.c
+rename to sysdeps/ia64/fpu/w_log10l.c
+diff --git a/ports/sysdeps/ia64/fpu/w_log2.c b/sysdeps/ia64/fpu/w_log2.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_log2.c
+rename to sysdeps/ia64/fpu/w_log2.c
+diff --git a/ports/sysdeps/ia64/fpu/w_log2f.c b/sysdeps/ia64/fpu/w_log2f.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_log2f.c
+rename to sysdeps/ia64/fpu/w_log2f.c
+diff --git a/ports/sysdeps/ia64/fpu/w_log2l.c b/sysdeps/ia64/fpu/w_log2l.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_log2l.c
+rename to sysdeps/ia64/fpu/w_log2l.c
+diff --git a/ports/sysdeps/ia64/fpu/w_logf.c b/sysdeps/ia64/fpu/w_logf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_logf.c
+rename to sysdeps/ia64/fpu/w_logf.c
+diff --git a/ports/sysdeps/ia64/fpu/w_logl.c b/sysdeps/ia64/fpu/w_logl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_logl.c
+rename to sysdeps/ia64/fpu/w_logl.c
+diff --git a/ports/sysdeps/ia64/fpu/w_pow.c b/sysdeps/ia64/fpu/w_pow.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_pow.c
+rename to sysdeps/ia64/fpu/w_pow.c
+diff --git a/ports/sysdeps/ia64/fpu/w_powf.c b/sysdeps/ia64/fpu/w_powf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_powf.c
+rename to sysdeps/ia64/fpu/w_powf.c
+diff --git a/ports/sysdeps/ia64/fpu/w_powl.c b/sysdeps/ia64/fpu/w_powl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_powl.c
+rename to sysdeps/ia64/fpu/w_powl.c
+diff --git a/ports/sysdeps/ia64/fpu/w_remainder.c b/sysdeps/ia64/fpu/w_remainder.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_remainder.c
+rename to sysdeps/ia64/fpu/w_remainder.c
+diff --git a/ports/sysdeps/ia64/fpu/w_remainderf.c b/sysdeps/ia64/fpu/w_remainderf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_remainderf.c
+rename to sysdeps/ia64/fpu/w_remainderf.c
+diff --git a/ports/sysdeps/ia64/fpu/w_remainderl.c b/sysdeps/ia64/fpu/w_remainderl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_remainderl.c
+rename to sysdeps/ia64/fpu/w_remainderl.c
+diff --git a/ports/sysdeps/ia64/fpu/w_scalb.c b/sysdeps/ia64/fpu/w_scalb.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_scalb.c
+rename to sysdeps/ia64/fpu/w_scalb.c
+diff --git a/ports/sysdeps/ia64/fpu/w_scalbf.c b/sysdeps/ia64/fpu/w_scalbf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_scalbf.c
+rename to sysdeps/ia64/fpu/w_scalbf.c
+diff --git a/ports/sysdeps/ia64/fpu/w_scalbl.c b/sysdeps/ia64/fpu/w_scalbl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_scalbl.c
+rename to sysdeps/ia64/fpu/w_scalbl.c
+diff --git a/ports/sysdeps/ia64/fpu/w_sinh.c b/sysdeps/ia64/fpu/w_sinh.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_sinh.c
+rename to sysdeps/ia64/fpu/w_sinh.c
+diff --git a/ports/sysdeps/ia64/fpu/w_sinhf.c b/sysdeps/ia64/fpu/w_sinhf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_sinhf.c
+rename to sysdeps/ia64/fpu/w_sinhf.c
+diff --git a/ports/sysdeps/ia64/fpu/w_sinhl.c b/sysdeps/ia64/fpu/w_sinhl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_sinhl.c
+rename to sysdeps/ia64/fpu/w_sinhl.c
+diff --git a/ports/sysdeps/ia64/fpu/w_sqrt.c b/sysdeps/ia64/fpu/w_sqrt.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_sqrt.c
+rename to sysdeps/ia64/fpu/w_sqrt.c
+diff --git a/ports/sysdeps/ia64/fpu/w_sqrtf.c b/sysdeps/ia64/fpu/w_sqrtf.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_sqrtf.c
+rename to sysdeps/ia64/fpu/w_sqrtf.c
+diff --git a/ports/sysdeps/ia64/fpu/w_sqrtl.c b/sysdeps/ia64/fpu/w_sqrtl.c
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_sqrtl.c
+rename to sysdeps/ia64/fpu/w_sqrtl.c
+diff --git a/ports/sysdeps/ia64/fpu/w_tgamma.S b/sysdeps/ia64/fpu/w_tgamma.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_tgamma.S
+rename to sysdeps/ia64/fpu/w_tgamma.S
+diff --git a/ports/sysdeps/ia64/fpu/w_tgammaf.S b/sysdeps/ia64/fpu/w_tgammaf.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_tgammaf.S
+rename to sysdeps/ia64/fpu/w_tgammaf.S
+diff --git a/ports/sysdeps/ia64/fpu/w_tgammal.S b/sysdeps/ia64/fpu/w_tgammal.S
+similarity index 100%
+rename from ports/sysdeps/ia64/fpu/w_tgammal.S
+rename to sysdeps/ia64/fpu/w_tgammal.S
+diff --git a/ports/sysdeps/ia64/gccframe.h b/sysdeps/ia64/gccframe.h
+similarity index 100%
+rename from ports/sysdeps/ia64/gccframe.h
+rename to sysdeps/ia64/gccframe.h
+diff --git a/ports/sysdeps/ia64/hp-timing.h b/sysdeps/ia64/hp-timing.h
+similarity index 100%
+rename from ports/sysdeps/ia64/hp-timing.h
+rename to sysdeps/ia64/hp-timing.h
+diff --git a/ports/sysdeps/ia64/htonl.S b/sysdeps/ia64/htonl.S
+similarity index 100%
+rename from ports/sysdeps/ia64/htonl.S
+rename to sysdeps/ia64/htonl.S
+diff --git a/ports/sysdeps/ia64/htons.S b/sysdeps/ia64/htons.S
+similarity index 100%
+rename from ports/sysdeps/ia64/htons.S
+rename to sysdeps/ia64/htons.S
+diff --git a/ports/sysdeps/ia64/ia64libgcc.S b/sysdeps/ia64/ia64libgcc.S
+similarity index 100%
+rename from ports/sysdeps/ia64/ia64libgcc.S
+rename to sysdeps/ia64/ia64libgcc.S
+diff --git a/ports/sysdeps/ia64/ieee754.h b/sysdeps/ia64/ieee754.h
+similarity index 100%
+rename from ports/sysdeps/ia64/ieee754.h
+rename to sysdeps/ia64/ieee754.h
+diff --git a/ports/sysdeps/ia64/jmpbuf-unwind.h b/sysdeps/ia64/jmpbuf-unwind.h
+similarity index 100%
+rename from ports/sysdeps/ia64/jmpbuf-unwind.h
+rename to sysdeps/ia64/jmpbuf-unwind.h
+diff --git a/ports/sysdeps/ia64/ldbl2mpn.c b/sysdeps/ia64/ldbl2mpn.c
+similarity index 100%
+rename from ports/sysdeps/ia64/ldbl2mpn.c
+rename to sysdeps/ia64/ldbl2mpn.c
+diff --git a/ports/sysdeps/ia64/ldsodefs.h b/sysdeps/ia64/ldsodefs.h
+similarity index 100%
+rename from ports/sysdeps/ia64/ldsodefs.h
+rename to sysdeps/ia64/ldsodefs.h
+diff --git a/ports/sysdeps/ia64/libc-tls.c b/sysdeps/ia64/libc-tls.c
+similarity index 100%
+rename from ports/sysdeps/ia64/libc-tls.c
+rename to sysdeps/ia64/libc-tls.c
+diff --git a/ports/sysdeps/ia64/machine-gmon.h b/sysdeps/ia64/machine-gmon.h
+similarity index 100%
+rename from ports/sysdeps/ia64/machine-gmon.h
+rename to sysdeps/ia64/machine-gmon.h
+diff --git a/ports/sysdeps/ia64/memccpy.S b/sysdeps/ia64/memccpy.S
+similarity index 100%
+rename from ports/sysdeps/ia64/memccpy.S
+rename to sysdeps/ia64/memccpy.S
+diff --git a/ports/sysdeps/ia64/memchr.S b/sysdeps/ia64/memchr.S
+similarity index 100%
+rename from ports/sysdeps/ia64/memchr.S
+rename to sysdeps/ia64/memchr.S
+diff --git a/ports/sysdeps/ia64/memcmp.S b/sysdeps/ia64/memcmp.S
+similarity index 100%
+rename from ports/sysdeps/ia64/memcmp.S
+rename to sysdeps/ia64/memcmp.S
+diff --git a/ports/sysdeps/ia64/memcpy.S b/sysdeps/ia64/memcpy.S
+similarity index 100%
+rename from ports/sysdeps/ia64/memcpy.S
+rename to sysdeps/ia64/memcpy.S
+diff --git a/ports/sysdeps/ia64/memmove.S b/sysdeps/ia64/memmove.S
+similarity index 100%
+rename from ports/sysdeps/ia64/memmove.S
+rename to sysdeps/ia64/memmove.S
+diff --git a/ports/sysdeps/ia64/memset.S b/sysdeps/ia64/memset.S
+similarity index 100%
+rename from ports/sysdeps/ia64/memset.S
+rename to sysdeps/ia64/memset.S
+diff --git a/ports/sysdeps/ia64/memusage.h b/sysdeps/ia64/memusage.h
+similarity index 100%
+rename from ports/sysdeps/ia64/memusage.h
+rename to sysdeps/ia64/memusage.h
+diff --git a/ports/sysdeps/ia64/nptl/Makefile b/sysdeps/ia64/nptl/Makefile
+similarity index 100%
+rename from ports/sysdeps/ia64/nptl/Makefile
+rename to sysdeps/ia64/nptl/Makefile
+diff --git a/ports/sysdeps/ia64/nptl/pthread_spin_lock.c b/sysdeps/ia64/nptl/pthread_spin_lock.c
+similarity index 100%
+rename from ports/sysdeps/ia64/nptl/pthread_spin_lock.c
+rename to sysdeps/ia64/nptl/pthread_spin_lock.c
+diff --git a/ports/sysdeps/ia64/nptl/pthread_spin_trylock.c b/sysdeps/ia64/nptl/pthread_spin_trylock.c
+similarity index 100%
+rename from ports/sysdeps/ia64/nptl/pthread_spin_trylock.c
+rename to sysdeps/ia64/nptl/pthread_spin_trylock.c
+diff --git a/ports/sysdeps/ia64/nptl/pthread_spin_unlock.c b/sysdeps/ia64/nptl/pthread_spin_unlock.c
+similarity index 100%
+rename from ports/sysdeps/ia64/nptl/pthread_spin_unlock.c
+rename to sysdeps/ia64/nptl/pthread_spin_unlock.c
+diff --git a/ports/sysdeps/ia64/nptl/pthreaddef.h b/sysdeps/ia64/nptl/pthreaddef.h
+similarity index 100%
+rename from ports/sysdeps/ia64/nptl/pthreaddef.h
+rename to sysdeps/ia64/nptl/pthreaddef.h
+diff --git a/ports/sysdeps/ia64/nptl/shlib-versions b/sysdeps/ia64/nptl/shlib-versions
+similarity index 100%
+rename from ports/sysdeps/ia64/nptl/shlib-versions
+rename to sysdeps/ia64/nptl/shlib-versions
+diff --git a/ports/sysdeps/ia64/nptl/tcb-offsets.sym b/sysdeps/ia64/nptl/tcb-offsets.sym
+similarity index 100%
+rename from ports/sysdeps/ia64/nptl/tcb-offsets.sym
+rename to sysdeps/ia64/nptl/tcb-offsets.sym
+diff --git a/ports/sysdeps/ia64/nptl/tls.h b/sysdeps/ia64/nptl/tls.h
+similarity index 100%
+rename from ports/sysdeps/ia64/nptl/tls.h
+rename to sysdeps/ia64/nptl/tls.h
+diff --git a/ports/sysdeps/ia64/preconfigure b/sysdeps/ia64/preconfigure
+similarity index 100%
+rename from ports/sysdeps/ia64/preconfigure
+rename to sysdeps/ia64/preconfigure
+diff --git a/ports/sysdeps/ia64/sched_cpucount.c b/sysdeps/ia64/sched_cpucount.c
+similarity index 100%
+rename from ports/sysdeps/ia64/sched_cpucount.c
+rename to sysdeps/ia64/sched_cpucount.c
+diff --git a/ports/sysdeps/ia64/shlib-versions b/sysdeps/ia64/shlib-versions
+similarity index 100%
+rename from ports/sysdeps/ia64/shlib-versions
+rename to sysdeps/ia64/shlib-versions
+diff --git a/ports/sysdeps/ia64/softpipe.h b/sysdeps/ia64/softpipe.h
+similarity index 100%
+rename from ports/sysdeps/ia64/softpipe.h
+rename to sysdeps/ia64/softpipe.h
+diff --git a/ports/sysdeps/ia64/stackguard-macros.h b/sysdeps/ia64/stackguard-macros.h
+similarity index 100%
+rename from ports/sysdeps/ia64/stackguard-macros.h
+rename to sysdeps/ia64/stackguard-macros.h
+diff --git a/ports/sysdeps/ia64/stackinfo.h b/sysdeps/ia64/stackinfo.h
+similarity index 100%
+rename from ports/sysdeps/ia64/stackinfo.h
+rename to sysdeps/ia64/stackinfo.h
+diff --git a/ports/sysdeps/ia64/start.S b/sysdeps/ia64/start.S
+similarity index 100%
+rename from ports/sysdeps/ia64/start.S
+rename to sysdeps/ia64/start.S
+diff --git a/ports/sysdeps/ia64/strcat.c b/sysdeps/ia64/strcat.c
+similarity index 100%
+rename from ports/sysdeps/ia64/strcat.c
+rename to sysdeps/ia64/strcat.c
+diff --git a/ports/sysdeps/ia64/strchr.S b/sysdeps/ia64/strchr.S
+similarity index 100%
+rename from ports/sysdeps/ia64/strchr.S
+rename to sysdeps/ia64/strchr.S
+diff --git a/ports/sysdeps/ia64/strcmp.S b/sysdeps/ia64/strcmp.S
+similarity index 100%
+rename from ports/sysdeps/ia64/strcmp.S
+rename to sysdeps/ia64/strcmp.S
+diff --git a/ports/sysdeps/ia64/strcpy.S b/sysdeps/ia64/strcpy.S
+similarity index 100%
+rename from ports/sysdeps/ia64/strcpy.S
+rename to sysdeps/ia64/strcpy.S
+diff --git a/ports/sysdeps/ia64/strlen.S b/sysdeps/ia64/strlen.S
+similarity index 100%
+rename from ports/sysdeps/ia64/strlen.S
+rename to sysdeps/ia64/strlen.S
+diff --git a/ports/sysdeps/ia64/strncmp.S b/sysdeps/ia64/strncmp.S
+similarity index 100%
+rename from ports/sysdeps/ia64/strncmp.S
+rename to sysdeps/ia64/strncmp.S
+diff --git a/ports/sysdeps/ia64/strncpy.S b/sysdeps/ia64/strncpy.S
+similarity index 100%
+rename from ports/sysdeps/ia64/strncpy.S
+rename to sysdeps/ia64/strncpy.S
+diff --git a/ports/sysdeps/ia64/sysdep.h b/sysdeps/ia64/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/ia64/sysdep.h
+rename to sysdeps/ia64/sysdep.h
+diff --git a/ports/sysdeps/ia64/tininess.h b/sysdeps/ia64/tininess.h
+similarity index 100%
+rename from ports/sysdeps/ia64/tininess.h
+rename to sysdeps/ia64/tininess.h
+diff --git a/ports/sysdeps/ia64/tls-macros.h b/sysdeps/ia64/tls-macros.h
+similarity index 100%
+rename from ports/sysdeps/ia64/tls-macros.h
+rename to sysdeps/ia64/tls-macros.h
+diff --git a/ports/sysdeps/ia64/tst-audit.h b/sysdeps/ia64/tst-audit.h
+similarity index 100%
+rename from ports/sysdeps/ia64/tst-audit.h
+rename to sysdeps/ia64/tst-audit.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/Implies b/sysdeps/unix/sysv/linux/ia64/Implies
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/Implies
+rename to sysdeps/unix/sysv/linux/ia64/Implies
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/Makefile b/sysdeps/unix/sysv/linux/ia64/Makefile
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/Makefile
+rename to sysdeps/unix/sysv/linux/ia64/Makefile
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/Versions
+rename to sysdeps/unix/sysv/linux/ia64/Versions
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S b/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S
+rename to sysdeps/unix/sysv/linux/ia64/____longjmp_chk.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/__longjmp.S b/sysdeps/unix/sysv/linux/ia64/__longjmp.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/__longjmp.S
+rename to sysdeps/unix/sysv/linux/ia64/__longjmp.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/__start_context.S b/sysdeps/unix/sysv/linux/ia64/__start_context.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/__start_context.S
+rename to sysdeps/unix/sysv/linux/ia64/__start_context.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/bits/endian.h b/sysdeps/unix/sysv/linux/ia64/bits/endian.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/bits/endian.h
+rename to sysdeps/unix/sysv/linux/ia64/bits/endian.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h b/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/bits/fcntl.h
+rename to sysdeps/unix/sysv/linux/ia64/bits/fcntl.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/bits/ipc.h b/sysdeps/unix/sysv/linux/ia64/bits/ipc.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/bits/ipc.h
+rename to sysdeps/unix/sysv/linux/ia64/bits/ipc.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/bits/mman.h b/sysdeps/unix/sysv/linux/ia64/bits/mman.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/bits/mman.h
+rename to sysdeps/unix/sysv/linux/ia64/bits/mman.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/bits/msq.h b/sysdeps/unix/sysv/linux/ia64/bits/msq.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/bits/msq.h
+rename to sysdeps/unix/sysv/linux/ia64/bits/msq.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/bits/sem.h b/sysdeps/unix/sysv/linux/ia64/bits/sem.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/bits/sem.h
+rename to sysdeps/unix/sysv/linux/ia64/bits/sem.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/bits/setjmp.h b/sysdeps/unix/sysv/linux/ia64/bits/setjmp.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/bits/setjmp.h
+rename to sysdeps/unix/sysv/linux/ia64/bits/setjmp.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/bits/shm.h b/sysdeps/unix/sysv/linux/ia64/bits/shm.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/bits/shm.h
+rename to sysdeps/unix/sysv/linux/ia64/bits/shm.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h b/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h
+rename to sysdeps/unix/sysv/linux/ia64/bits/sigaction.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h b/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h
+rename to sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/bits/siginfo.h b/sysdeps/unix/sysv/linux/ia64/bits/siginfo.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/bits/siginfo.h
+rename to sysdeps/unix/sysv/linux/ia64/bits/siginfo.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/bits/sigstack.h b/sysdeps/unix/sysv/linux/ia64/bits/sigstack.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/bits/sigstack.h
+rename to sysdeps/unix/sysv/linux/ia64/bits/sigstack.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/bits/stat.h b/sysdeps/unix/sysv/linux/ia64/bits/stat.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/bits/stat.h
+rename to sysdeps/unix/sysv/linux/ia64/bits/stat.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/brk.S b/sysdeps/unix/sysv/linux/ia64/brk.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/brk.S
+rename to sysdeps/unix/sysv/linux/ia64/brk.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/bsd-_setjmp.S b/sysdeps/unix/sysv/linux/ia64/bsd-_setjmp.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/bsd-_setjmp.S
+rename to sysdeps/unix/sysv/linux/ia64/bsd-_setjmp.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/bsd-setjmp.S b/sysdeps/unix/sysv/linux/ia64/bsd-setjmp.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/bsd-setjmp.S
+rename to sysdeps/unix/sysv/linux/ia64/bsd-setjmp.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/clone.S b/sysdeps/unix/sysv/linux/ia64/clone.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/clone.S
+rename to sysdeps/unix/sysv/linux/ia64/clone.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/clone2.S b/sysdeps/unix/sysv/linux/ia64/clone2.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/clone2.S
+rename to sysdeps/unix/sysv/linux/ia64/clone2.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/configure b/sysdeps/unix/sysv/linux/ia64/configure
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/configure
+rename to sysdeps/unix/sysv/linux/ia64/configure
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/configure.in b/sysdeps/unix/sysv/linux/ia64/configure.in
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/configure.in
+rename to sysdeps/unix/sysv/linux/ia64/configure.in
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/dl-brk.S b/sysdeps/unix/sysv/linux/ia64/dl-brk.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/dl-brk.S
+rename to sysdeps/unix/sysv/linux/ia64/dl-brk.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/dl-cache.h b/sysdeps/unix/sysv/linux/ia64/dl-cache.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/dl-cache.h
+rename to sysdeps/unix/sysv/linux/ia64/dl-cache.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/dl-static.c b/sysdeps/unix/sysv/linux/ia64/dl-static.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/dl-static.c
+rename to sysdeps/unix/sysv/linux/ia64/dl-static.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/fork.S b/sysdeps/unix/sysv/linux/ia64/fork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/fork.S
+rename to sysdeps/unix/sysv/linux/ia64/fork.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/get_clockfreq.c b/sysdeps/unix/sysv/linux/ia64/get_clockfreq.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/get_clockfreq.c
+rename to sysdeps/unix/sysv/linux/ia64/get_clockfreq.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/getclktck.c b/sysdeps/unix/sysv/linux/ia64/getclktck.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/getclktck.c
+rename to sysdeps/unix/sysv/linux/ia64/getclktck.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/getcontext.S b/sysdeps/unix/sysv/linux/ia64/getcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/getcontext.S
+rename to sysdeps/unix/sysv/linux/ia64/getcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/getpagesize.c b/sysdeps/unix/sysv/linux/ia64/getpagesize.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/getpagesize.c
+rename to sysdeps/unix/sysv/linux/ia64/getpagesize.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/has_cpuclock.c b/sysdeps/unix/sysv/linux/ia64/has_cpuclock.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/has_cpuclock.c
+rename to sysdeps/unix/sysv/linux/ia64/has_cpuclock.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/ioperm.c b/sysdeps/unix/sysv/linux/ia64/ioperm.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/ioperm.c
+rename to sysdeps/unix/sysv/linux/ia64/ioperm.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/kernel-features.h b/sysdeps/unix/sysv/linux/ia64/kernel-features.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/kernel-features.h
+rename to sysdeps/unix/sysv/linux/ia64/kernel-features.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/kernel_stat.h b/sysdeps/unix/sysv/linux/ia64/kernel_stat.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/kernel_stat.h
+rename to sysdeps/unix/sysv/linux/ia64/kernel_stat.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/ldconfig.h b/sysdeps/unix/sysv/linux/ia64/ldconfig.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/ldconfig.h
+rename to sysdeps/unix/sysv/linux/ia64/ldconfig.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed
+rename to sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/ldsodefs.h b/sysdeps/unix/sysv/linux/ia64/ldsodefs.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/ldsodefs.h
+rename to sysdeps/unix/sysv/linux/ia64/ldsodefs.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/makecontext.c b/sysdeps/unix/sysv/linux/ia64/makecontext.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/makecontext.c
+rename to sysdeps/unix/sysv/linux/ia64/makecontext.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/Makefile b/sysdeps/unix/sysv/linux/ia64/nptl/Makefile
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/Makefile
+rename to sysdeps/unix/sysv/linux/ia64/nptl/Makefile
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/Versions b/sysdeps/unix/sysv/linux/ia64/nptl/Versions
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/Versions
+rename to sysdeps/unix/sysv/linux/ia64/nptl/Versions
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/__ia64_longjmp.S b/sysdeps/unix/sysv/linux/ia64/nptl/__ia64_longjmp.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/__ia64_longjmp.S
+rename to sysdeps/unix/sysv/linux/ia64/nptl/__ia64_longjmp.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/__sigstack_longjmp.c b/sysdeps/unix/sysv/linux/ia64/nptl/__sigstack_longjmp.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/__sigstack_longjmp.c
+rename to sysdeps/unix/sysv/linux/ia64/nptl/__sigstack_longjmp.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/bits/local_lim.h b/sysdeps/unix/sysv/linux/ia64/nptl/bits/local_lim.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/bits/local_lim.h
+rename to sysdeps/unix/sysv/linux/ia64/nptl/bits/local_lim.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/bits/pthreadtypes.h b/sysdeps/unix/sysv/linux/ia64/nptl/bits/pthreadtypes.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/bits/pthreadtypes.h
+rename to sysdeps/unix/sysv/linux/ia64/nptl/bits/pthreadtypes.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/bits/semaphore.h b/sysdeps/unix/sysv/linux/ia64/nptl/bits/semaphore.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/bits/semaphore.h
+rename to sysdeps/unix/sysv/linux/ia64/nptl/bits/semaphore.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/c++-types.data b/sysdeps/unix/sysv/linux/ia64/nptl/c++-types.data
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/c++-types.data
+rename to sysdeps/unix/sysv/linux/ia64/nptl/c++-types.data
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/clone2.S b/sysdeps/unix/sysv/linux/ia64/nptl/clone2.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/clone2.S
+rename to sysdeps/unix/sysv/linux/ia64/nptl/clone2.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/createthread.c b/sysdeps/unix/sysv/linux/ia64/nptl/createthread.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/createthread.c
+rename to sysdeps/unix/sysv/linux/ia64/nptl/createthread.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/dl-sysdep.h b/sysdeps/unix/sysv/linux/ia64/nptl/dl-sysdep.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/dl-sysdep.h
+rename to sysdeps/unix/sysv/linux/ia64/nptl/dl-sysdep.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/fork.c b/sysdeps/unix/sysv/linux/ia64/nptl/fork.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/fork.c
+rename to sysdeps/unix/sysv/linux/ia64/nptl/fork.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/ld.abilist b/sysdeps/unix/sysv/linux/ia64/nptl/ld.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/ld.abilist
+rename to sysdeps/unix/sysv/linux/ia64/nptl/ld.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/ia64/nptl/libBrokenLocale.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/libBrokenLocale.abilist
+rename to sysdeps/unix/sysv/linux/ia64/nptl/libBrokenLocale.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/libanl.abilist b/sysdeps/unix/sysv/linux/ia64/nptl/libanl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/libanl.abilist
+rename to sysdeps/unix/sysv/linux/ia64/nptl/libanl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/libc.abilist b/sysdeps/unix/sysv/linux/ia64/nptl/libc.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/libc.abilist
+rename to sysdeps/unix/sysv/linux/ia64/nptl/libc.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist b/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist
+rename to sysdeps/unix/sysv/linux/ia64/nptl/libcrypt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/libdl.abilist b/sysdeps/unix/sysv/linux/ia64/nptl/libdl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/libdl.abilist
+rename to sysdeps/unix/sysv/linux/ia64/nptl/libdl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/libm.abilist b/sysdeps/unix/sysv/linux/ia64/nptl/libm.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/libm.abilist
+rename to sysdeps/unix/sysv/linux/ia64/nptl/libm.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/libnsl.abilist b/sysdeps/unix/sysv/linux/ia64/nptl/libnsl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/libnsl.abilist
+rename to sysdeps/unix/sysv/linux/ia64/nptl/libnsl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/libpthread.abilist b/sysdeps/unix/sysv/linux/ia64/nptl/libpthread.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/libpthread.abilist
+rename to sysdeps/unix/sysv/linux/ia64/nptl/libpthread.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/libresolv.abilist b/sysdeps/unix/sysv/linux/ia64/nptl/libresolv.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/libresolv.abilist
+rename to sysdeps/unix/sysv/linux/ia64/nptl/libresolv.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/librt.abilist b/sysdeps/unix/sysv/linux/ia64/nptl/librt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/librt.abilist
+rename to sysdeps/unix/sysv/linux/ia64/nptl/librt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/libthread_db.abilist b/sysdeps/unix/sysv/linux/ia64/nptl/libthread_db.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/libthread_db.abilist
+rename to sysdeps/unix/sysv/linux/ia64/nptl/libthread_db.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/libutil.abilist b/sysdeps/unix/sysv/linux/ia64/nptl/libutil.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/libutil.abilist
+rename to sysdeps/unix/sysv/linux/ia64/nptl/libutil.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/localplt.data b/sysdeps/unix/sysv/linux/ia64/nptl/localplt.data
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/localplt.data
+rename to sysdeps/unix/sysv/linux/ia64/nptl/localplt.data
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/lowlevellock.h b/sysdeps/unix/sysv/linux/ia64/nptl/lowlevellock.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/lowlevellock.h
+rename to sysdeps/unix/sysv/linux/ia64/nptl/lowlevellock.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/pt-vfork.S b/sysdeps/unix/sysv/linux/ia64/nptl/pt-vfork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/pt-vfork.S
+rename to sysdeps/unix/sysv/linux/ia64/nptl/pt-vfork.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/pthread_once.c b/sysdeps/unix/sysv/linux/ia64/nptl/pthread_once.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/pthread_once.c
+rename to sysdeps/unix/sysv/linux/ia64/nptl/pthread_once.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/sysdep-cancel.h b/sysdeps/unix/sysv/linux/ia64/nptl/sysdep-cancel.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/sysdep-cancel.h
+rename to sysdeps/unix/sysv/linux/ia64/nptl/sysdep-cancel.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/timer_create.c b/sysdeps/unix/sysv/linux/ia64/nptl/timer_create.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/timer_create.c
+rename to sysdeps/unix/sysv/linux/ia64/nptl/timer_create.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/timer_delete.c b/sysdeps/unix/sysv/linux/ia64/nptl/timer_delete.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/timer_delete.c
+rename to sysdeps/unix/sysv/linux/ia64/nptl/timer_delete.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/timer_getoverr.c b/sysdeps/unix/sysv/linux/ia64/nptl/timer_getoverr.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/timer_getoverr.c
+rename to sysdeps/unix/sysv/linux/ia64/nptl/timer_getoverr.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/timer_gettime.c b/sysdeps/unix/sysv/linux/ia64/nptl/timer_gettime.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/timer_gettime.c
+rename to sysdeps/unix/sysv/linux/ia64/nptl/timer_gettime.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/timer_settime.c b/sysdeps/unix/sysv/linux/ia64/nptl/timer_settime.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/timer_settime.c
+rename to sysdeps/unix/sysv/linux/ia64/nptl/timer_settime.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/unwind-forcedunwind.c b/sysdeps/unix/sysv/linux/ia64/nptl/unwind-forcedunwind.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/unwind-forcedunwind.c
+rename to sysdeps/unix/sysv/linux/ia64/nptl/unwind-forcedunwind.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/unwind_longjmp.c b/sysdeps/unix/sysv/linux/ia64/nptl/unwind_longjmp.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/unwind_longjmp.c
+rename to sysdeps/unix/sysv/linux/ia64/nptl/unwind_longjmp.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/nptl/vfork.S b/sysdeps/unix/sysv/linux/ia64/nptl/vfork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/nptl/vfork.S
+rename to sysdeps/unix/sysv/linux/ia64/nptl/vfork.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/pipe.S b/sysdeps/unix/sysv/linux/ia64/pipe.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/pipe.S
+rename to sysdeps/unix/sysv/linux/ia64/pipe.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/profil-counter.h b/sysdeps/unix/sysv/linux/ia64/profil-counter.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/profil-counter.h
+rename to sysdeps/unix/sysv/linux/ia64/profil-counter.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/readelflib.c b/sysdeps/unix/sysv/linux/ia64/readelflib.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/readelflib.c
+rename to sysdeps/unix/sysv/linux/ia64/readelflib.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/register-dump.h b/sysdeps/unix/sysv/linux/ia64/register-dump.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/register-dump.h
+rename to sysdeps/unix/sysv/linux/ia64/register-dump.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/rt-sysdep.S b/sysdeps/unix/sysv/linux/ia64/rt-sysdep.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/rt-sysdep.S
+rename to sysdeps/unix/sysv/linux/ia64/rt-sysdep.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/setcontext.S b/sysdeps/unix/sysv/linux/ia64/setcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/setcontext.S
+rename to sysdeps/unix/sysv/linux/ia64/setcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/setjmp.S b/sysdeps/unix/sysv/linux/ia64/setjmp.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/setjmp.S
+rename to sysdeps/unix/sysv/linux/ia64/setjmp.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/sigaction.c b/sysdeps/unix/sysv/linux/ia64/sigaction.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/sigaction.c
+rename to sysdeps/unix/sysv/linux/ia64/sigaction.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym b/sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym
+rename to sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h
+rename to sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/sigpending.c b/sysdeps/unix/sysv/linux/ia64/sigpending.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/sigpending.c
+rename to sysdeps/unix/sysv/linux/ia64/sigpending.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/sigprocmask.c b/sysdeps/unix/sysv/linux/ia64/sigprocmask.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/sigprocmask.c
+rename to sysdeps/unix/sysv/linux/ia64/sigprocmask.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/swapcontext.c b/sysdeps/unix/sysv/linux/ia64/swapcontext.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/swapcontext.c
+rename to sysdeps/unix/sysv/linux/ia64/swapcontext.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/sys/io.h b/sysdeps/unix/sysv/linux/ia64/sys/io.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/sys/io.h
+rename to sysdeps/unix/sysv/linux/ia64/sys/io.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/sys/procfs.h b/sysdeps/unix/sysv/linux/ia64/sys/procfs.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/sys/procfs.h
+rename to sysdeps/unix/sysv/linux/ia64/sys/procfs.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h b/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
+rename to sysdeps/unix/sysv/linux/ia64/sys/ptrace.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/sys/rse.h b/sysdeps/unix/sysv/linux/ia64/sys/rse.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/sys/rse.h
+rename to sysdeps/unix/sysv/linux/ia64/sys/rse.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h b/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h
+rename to sysdeps/unix/sysv/linux/ia64/sys/ucontext.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/sys/user.h b/sysdeps/unix/sysv/linux/ia64/sys/user.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/sys/user.h
+rename to sysdeps/unix/sysv/linux/ia64/sys/user.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/syscall.S b/sysdeps/unix/sysv/linux/ia64/syscall.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/syscall.S
+rename to sysdeps/unix/sysv/linux/ia64/syscall.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/syscalls.list b/sysdeps/unix/sysv/linux/ia64/syscalls.list
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/syscalls.list
+rename to sysdeps/unix/sysv/linux/ia64/syscalls.list
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/sysconf.c b/sysdeps/unix/sysv/linux/ia64/sysconf.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/sysconf.c
+rename to sysdeps/unix/sysv/linux/ia64/sysconf.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/sysdep.S b/sysdeps/unix/sysv/linux/ia64/sysdep.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/sysdep.S
+rename to sysdeps/unix/sysv/linux/ia64/sysdep.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/sysdep.h b/sysdeps/unix/sysv/linux/ia64/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/sysdep.h
+rename to sysdeps/unix/sysv/linux/ia64/sysdep.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/system.c b/sysdeps/unix/sysv/linux/ia64/system.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/system.c
+rename to sysdeps/unix/sysv/linux/ia64/system.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/ucontext_i.h b/sysdeps/unix/sysv/linux/ia64/ucontext_i.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/ucontext_i.h
+rename to sysdeps/unix/sysv/linux/ia64/ucontext_i.h
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/umount.c b/sysdeps/unix/sysv/linux/ia64/umount.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/umount.c
+rename to sysdeps/unix/sysv/linux/ia64/umount.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/unwind-dw2-fde.c b/sysdeps/unix/sysv/linux/ia64/unwind-dw2-fde.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/unwind-dw2-fde.c
+rename to sysdeps/unix/sysv/linux/ia64/unwind-dw2-fde.c
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/vfork.S b/sysdeps/unix/sysv/linux/ia64/vfork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/vfork.S
+rename to sysdeps/unix/sysv/linux/ia64/vfork.S
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/wordexp.c b/sysdeps/unix/sysv/linux/ia64/wordexp.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/ia64/wordexp.c
+rename to sysdeps/unix/sysv/linux/ia64/wordexp.c
diff --git a/SOURCES/glibc-rh1505492-ports-move-m68k.patch b/SOURCES/glibc-rh1505492-ports-move-m68k.patch
new file mode 100644
index 0000000..c195c46
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-ports-move-m68k.patch
@@ -0,0 +1,1589 @@
+Recreation of this upstream commit:
+
+commit 73588a7223bec40d652fd4c75f1cb4772c5d2612
+Author: Andreas Schwab <schwab@linux-m68k.org>
+Date:   Mon Feb 10 20:05:01 2014 +0100
+
+    Move m68k from ports to libc
+
+The following git commands were used:
+
+git mv ports/sysdeps/m68k sysdeps/
+git mv ports/sysdeps/unix/sysv/linux/m68k sysdeps/unix/sysv/linux/
+
+diff --git a/ports/sysdeps/m68k/Implies b/sysdeps/m68k/Implies
+similarity index 100%
+rename from ports/sysdeps/m68k/Implies
+rename to sysdeps/m68k/Implies
+diff --git a/ports/sysdeps/m68k/Makefile b/sysdeps/m68k/Makefile
+similarity index 100%
+rename from ports/sysdeps/m68k/Makefile
+rename to sysdeps/m68k/Makefile
+diff --git a/ports/sysdeps/m68k/Versions b/sysdeps/m68k/Versions
+similarity index 100%
+rename from ports/sysdeps/m68k/Versions
+rename to sysdeps/m68k/Versions
+diff --git a/ports/sysdeps/m68k/__longjmp.c b/sysdeps/m68k/__longjmp.c
+similarity index 100%
+rename from ports/sysdeps/m68k/__longjmp.c
+rename to sysdeps/m68k/__longjmp.c
+diff --git a/ports/sysdeps/m68k/abort-instr.h b/sysdeps/m68k/abort-instr.h
+similarity index 100%
+rename from ports/sysdeps/m68k/abort-instr.h
+rename to sysdeps/m68k/abort-instr.h
+diff --git a/ports/sysdeps/m68k/asm-syntax.h b/sysdeps/m68k/asm-syntax.h
+similarity index 100%
+rename from ports/sysdeps/m68k/asm-syntax.h
+rename to sysdeps/m68k/asm-syntax.h
+diff --git a/ports/sysdeps/m68k/bits/byteswap.h b/sysdeps/m68k/bits/byteswap.h
+similarity index 100%
+rename from ports/sysdeps/m68k/bits/byteswap.h
+rename to sysdeps/m68k/bits/byteswap.h
+diff --git a/ports/sysdeps/m68k/bits/endian.h b/sysdeps/m68k/bits/endian.h
+similarity index 100%
+rename from ports/sysdeps/m68k/bits/endian.h
+rename to sysdeps/m68k/bits/endian.h
+diff --git a/ports/sysdeps/m68k/bits/link.h b/sysdeps/m68k/bits/link.h
+similarity index 100%
+rename from ports/sysdeps/m68k/bits/link.h
+rename to sysdeps/m68k/bits/link.h
+diff --git a/ports/sysdeps/m68k/bits/setjmp.h b/sysdeps/m68k/bits/setjmp.h
+similarity index 100%
+rename from ports/sysdeps/m68k/bits/setjmp.h
+rename to sysdeps/m68k/bits/setjmp.h
+diff --git a/ports/sysdeps/m68k/bsd-_setjmp.c b/sysdeps/m68k/bsd-_setjmp.c
+similarity index 100%
+rename from ports/sysdeps/m68k/bsd-_setjmp.c
+rename to sysdeps/m68k/bsd-_setjmp.c
+diff --git a/ports/sysdeps/m68k/bsd-setjmp.c b/sysdeps/m68k/bsd-setjmp.c
+similarity index 100%
+rename from ports/sysdeps/m68k/bsd-setjmp.c
+rename to sysdeps/m68k/bsd-setjmp.c
+diff --git a/ports/sysdeps/m68k/coldfire/bits/atomic.h b/sysdeps/m68k/coldfire/bits/atomic.h
+similarity index 100%
+rename from ports/sysdeps/m68k/coldfire/bits/atomic.h
+rename to sysdeps/m68k/coldfire/bits/atomic.h
+diff --git a/ports/sysdeps/m68k/coldfire/fpu/bits/mathinline.h b/sysdeps/m68k/coldfire/fpu/bits/mathinline.h
+similarity index 100%
+rename from ports/sysdeps/m68k/coldfire/fpu/bits/mathinline.h
+rename to sysdeps/m68k/coldfire/fpu/bits/mathinline.h
+diff --git a/ports/sysdeps/m68k/coldfire/fpu/e_sqrt.c b/sysdeps/m68k/coldfire/fpu/e_sqrt.c
+similarity index 100%
+rename from ports/sysdeps/m68k/coldfire/fpu/e_sqrt.c
+rename to sysdeps/m68k/coldfire/fpu/e_sqrt.c
+diff --git a/ports/sysdeps/m68k/coldfire/fpu/e_sqrtf.c b/sysdeps/m68k/coldfire/fpu/e_sqrtf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/coldfire/fpu/e_sqrtf.c
+rename to sysdeps/m68k/coldfire/fpu/e_sqrtf.c
+diff --git a/ports/sysdeps/m68k/coldfire/fpu/fraiseexcpt.c b/sysdeps/m68k/coldfire/fpu/fraiseexcpt.c
+similarity index 100%
+rename from ports/sysdeps/m68k/coldfire/fpu/fraiseexcpt.c
+rename to sysdeps/m68k/coldfire/fpu/fraiseexcpt.c
+diff --git a/ports/sysdeps/m68k/coldfire/fpu/libm-test-ulps b/sysdeps/m68k/coldfire/fpu/libm-test-ulps
+similarity index 100%
+rename from ports/sysdeps/m68k/coldfire/fpu/libm-test-ulps
+rename to sysdeps/m68k/coldfire/fpu/libm-test-ulps
+diff --git a/ports/sysdeps/m68k/coldfire/fpu/s_fabs.c b/sysdeps/m68k/coldfire/fpu/s_fabs.c
+similarity index 100%
+rename from ports/sysdeps/m68k/coldfire/fpu/s_fabs.c
+rename to sysdeps/m68k/coldfire/fpu/s_fabs.c
+diff --git a/ports/sysdeps/m68k/coldfire/fpu/s_fabsf.c b/sysdeps/m68k/coldfire/fpu/s_fabsf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/coldfire/fpu/s_fabsf.c
+rename to sysdeps/m68k/coldfire/fpu/s_fabsf.c
+diff --git a/ports/sysdeps/m68k/coldfire/fpu/s_lrint.c b/sysdeps/m68k/coldfire/fpu/s_lrint.c
+similarity index 100%
+rename from ports/sysdeps/m68k/coldfire/fpu/s_lrint.c
+rename to sysdeps/m68k/coldfire/fpu/s_lrint.c
+diff --git a/ports/sysdeps/m68k/coldfire/fpu/s_lrintf.c b/sysdeps/m68k/coldfire/fpu/s_lrintf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/coldfire/fpu/s_lrintf.c
+rename to sysdeps/m68k/coldfire/fpu/s_lrintf.c
+diff --git a/ports/sysdeps/m68k/coldfire/fpu/s_rint.c b/sysdeps/m68k/coldfire/fpu/s_rint.c
+similarity index 100%
+rename from ports/sysdeps/m68k/coldfire/fpu/s_rint.c
+rename to sysdeps/m68k/coldfire/fpu/s_rint.c
+diff --git a/ports/sysdeps/m68k/coldfire/fpu/s_rintf.c b/sysdeps/m68k/coldfire/fpu/s_rintf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/coldfire/fpu/s_rintf.c
+rename to sysdeps/m68k/coldfire/fpu/s_rintf.c
+diff --git a/ports/sysdeps/m68k/coldfire/shlib-versions b/sysdeps/m68k/coldfire/shlib-versions
+similarity index 100%
+rename from ports/sysdeps/m68k/coldfire/shlib-versions
+rename to sysdeps/m68k/coldfire/shlib-versions
+diff --git a/ports/sysdeps/m68k/coldfire/sysdep.h b/sysdeps/m68k/coldfire/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/m68k/coldfire/sysdep.h
+rename to sysdeps/m68k/coldfire/sysdep.h
+diff --git a/ports/sysdeps/m68k/crti.S b/sysdeps/m68k/crti.S
+similarity index 100%
+rename from ports/sysdeps/m68k/crti.S
+rename to sysdeps/m68k/crti.S
+diff --git a/ports/sysdeps/m68k/crtn.S b/sysdeps/m68k/crtn.S
+similarity index 100%
+rename from ports/sysdeps/m68k/crtn.S
+rename to sysdeps/m68k/crtn.S
+diff --git a/ports/sysdeps/m68k/dl-machine.h b/sysdeps/m68k/dl-machine.h
+similarity index 100%
+rename from ports/sysdeps/m68k/dl-machine.h
+rename to sysdeps/m68k/dl-machine.h
+diff --git a/ports/sysdeps/m68k/dl-tls.h b/sysdeps/m68k/dl-tls.h
+similarity index 100%
+rename from ports/sysdeps/m68k/dl-tls.h
+rename to sysdeps/m68k/dl-tls.h
+diff --git a/ports/sysdeps/m68k/dl-trampoline.S b/sysdeps/m68k/dl-trampoline.S
+similarity index 100%
+rename from ports/sysdeps/m68k/dl-trampoline.S
+rename to sysdeps/m68k/dl-trampoline.S
+diff --git a/ports/sysdeps/m68k/ffs.c b/sysdeps/m68k/ffs.c
+similarity index 100%
+rename from ports/sysdeps/m68k/ffs.c
+rename to sysdeps/m68k/ffs.c
+diff --git a/ports/sysdeps/m68k/fpu/bits/fenv.h b/sysdeps/m68k/fpu/bits/fenv.h
+similarity index 100%
+rename from ports/sysdeps/m68k/fpu/bits/fenv.h
+rename to sysdeps/m68k/fpu/bits/fenv.h
+diff --git a/ports/sysdeps/m68k/fpu/fclrexcpt.c b/sysdeps/m68k/fpu/fclrexcpt.c
+similarity index 100%
+rename from ports/sysdeps/m68k/fpu/fclrexcpt.c
+rename to sysdeps/m68k/fpu/fclrexcpt.c
+diff --git a/ports/sysdeps/m68k/fpu/fedisblxcpt.c b/sysdeps/m68k/fpu/fedisblxcpt.c
+similarity index 100%
+rename from ports/sysdeps/m68k/fpu/fedisblxcpt.c
+rename to sysdeps/m68k/fpu/fedisblxcpt.c
+diff --git a/ports/sysdeps/m68k/fpu/feenablxcpt.c b/sysdeps/m68k/fpu/feenablxcpt.c
+similarity index 100%
+rename from ports/sysdeps/m68k/fpu/feenablxcpt.c
+rename to sysdeps/m68k/fpu/feenablxcpt.c
+diff --git a/ports/sysdeps/m68k/fpu/fegetenv.c b/sysdeps/m68k/fpu/fegetenv.c
+similarity index 100%
+rename from ports/sysdeps/m68k/fpu/fegetenv.c
+rename to sysdeps/m68k/fpu/fegetenv.c
+diff --git a/ports/sysdeps/m68k/fpu/fegetexcept.c b/sysdeps/m68k/fpu/fegetexcept.c
+similarity index 100%
+rename from ports/sysdeps/m68k/fpu/fegetexcept.c
+rename to sysdeps/m68k/fpu/fegetexcept.c
+diff --git a/ports/sysdeps/m68k/fpu/fegetround.c b/sysdeps/m68k/fpu/fegetround.c
+similarity index 100%
+rename from ports/sysdeps/m68k/fpu/fegetround.c
+rename to sysdeps/m68k/fpu/fegetround.c
+diff --git a/ports/sysdeps/m68k/fpu/feholdexcpt.c b/sysdeps/m68k/fpu/feholdexcpt.c
+similarity index 100%
+rename from ports/sysdeps/m68k/fpu/feholdexcpt.c
+rename to sysdeps/m68k/fpu/feholdexcpt.c
+diff --git a/ports/sysdeps/m68k/fpu/fesetenv.c b/sysdeps/m68k/fpu/fesetenv.c
+similarity index 100%
+rename from ports/sysdeps/m68k/fpu/fesetenv.c
+rename to sysdeps/m68k/fpu/fesetenv.c
+diff --git a/ports/sysdeps/m68k/fpu/fesetround.c b/sysdeps/m68k/fpu/fesetround.c
+similarity index 100%
+rename from ports/sysdeps/m68k/fpu/fesetround.c
+rename to sysdeps/m68k/fpu/fesetround.c
+diff --git a/ports/sysdeps/m68k/fpu/feupdateenv.c b/sysdeps/m68k/fpu/feupdateenv.c
+similarity index 100%
+rename from ports/sysdeps/m68k/fpu/feupdateenv.c
+rename to sysdeps/m68k/fpu/feupdateenv.c
+diff --git a/ports/sysdeps/m68k/fpu/fgetexcptflg.c b/sysdeps/m68k/fpu/fgetexcptflg.c
+similarity index 100%
+rename from ports/sysdeps/m68k/fpu/fgetexcptflg.c
+rename to sysdeps/m68k/fpu/fgetexcptflg.c
+diff --git a/ports/sysdeps/m68k/fpu/fsetexcptflg.c b/sysdeps/m68k/fpu/fsetexcptflg.c
+similarity index 100%
+rename from ports/sysdeps/m68k/fpu/fsetexcptflg.c
+rename to sysdeps/m68k/fpu/fsetexcptflg.c
+diff --git a/ports/sysdeps/m68k/fpu/ftestexcept.c b/sysdeps/m68k/fpu/ftestexcept.c
+similarity index 100%
+rename from ports/sysdeps/m68k/fpu/ftestexcept.c
+rename to sysdeps/m68k/fpu/ftestexcept.c
+diff --git a/ports/sysdeps/m68k/fpu_control.h b/sysdeps/m68k/fpu_control.h
+similarity index 100%
+rename from ports/sysdeps/m68k/fpu_control.h
+rename to sysdeps/m68k/fpu_control.h
+diff --git a/ports/sysdeps/m68k/gccframe.h b/sysdeps/m68k/gccframe.h
+similarity index 100%
+rename from ports/sysdeps/m68k/gccframe.h
+rename to sysdeps/m68k/gccframe.h
+diff --git a/ports/sysdeps/m68k/jmpbuf-unwind.h b/sysdeps/m68k/jmpbuf-unwind.h
+similarity index 100%
+rename from ports/sysdeps/m68k/jmpbuf-unwind.h
+rename to sysdeps/m68k/jmpbuf-unwind.h
+diff --git a/ports/sysdeps/m68k/ldsodefs.h b/sysdeps/m68k/ldsodefs.h
+similarity index 100%
+rename from ports/sysdeps/m68k/ldsodefs.h
+rename to sysdeps/m68k/ldsodefs.h
+diff --git a/ports/sysdeps/m68k/libc-tls.c b/sysdeps/m68k/libc-tls.c
+similarity index 100%
+rename from ports/sysdeps/m68k/libc-tls.c
+rename to sysdeps/m68k/libc-tls.c
+diff --git a/ports/sysdeps/m68k/m680x0/Implies b/sysdeps/m68k/m680x0/Implies
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/Implies
+rename to sysdeps/m68k/m680x0/Implies
+diff --git a/ports/sysdeps/m68k/m680x0/Makefile b/sysdeps/m68k/m680x0/Makefile
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/Makefile
+rename to sysdeps/m68k/m680x0/Makefile
+diff --git a/ports/sysdeps/m68k/m680x0/add_n.S b/sysdeps/m68k/m680x0/add_n.S
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/add_n.S
+rename to sysdeps/m68k/m680x0/add_n.S
+diff --git a/ports/sysdeps/m68k/m680x0/bits/huge_vall.h b/sysdeps/m68k/m680x0/bits/huge_vall.h
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/bits/huge_vall.h
+rename to sysdeps/m68k/m680x0/bits/huge_vall.h
+diff --git a/ports/sysdeps/m68k/m680x0/bits/mathdef.h b/sysdeps/m68k/m680x0/bits/mathdef.h
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/bits/mathdef.h
+rename to sysdeps/m68k/m680x0/bits/mathdef.h
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/bits/mathinline.h b/sysdeps/m68k/m680x0/fpu/bits/mathinline.h
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/bits/mathinline.h
+rename to sysdeps/m68k/m680x0/fpu/bits/mathinline.h
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/branred.c b/sysdeps/m68k/m680x0/fpu/branred.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/branred.c
+rename to sysdeps/m68k/m680x0/fpu/branred.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/doasin.c b/sysdeps/m68k/m680x0/fpu/doasin.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/doasin.c
+rename to sysdeps/m68k/m680x0/fpu/doasin.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/dosincos.c b/sysdeps/m68k/m680x0/fpu/dosincos.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/dosincos.c
+rename to sysdeps/m68k/m680x0/fpu/dosincos.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_acos.c b/sysdeps/m68k/m680x0/fpu/e_acos.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_acos.c
+rename to sysdeps/m68k/m680x0/fpu/e_acos.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_acosf.c b/sysdeps/m68k/m680x0/fpu/e_acosf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_acosf.c
+rename to sysdeps/m68k/m680x0/fpu/e_acosf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_acosl.c b/sysdeps/m68k/m680x0/fpu/e_acosl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_acosl.c
+rename to sysdeps/m68k/m680x0/fpu/e_acosl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_asin.c b/sysdeps/m68k/m680x0/fpu/e_asin.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_asin.c
+rename to sysdeps/m68k/m680x0/fpu/e_asin.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_asinf.c b/sysdeps/m68k/m680x0/fpu/e_asinf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_asinf.c
+rename to sysdeps/m68k/m680x0/fpu/e_asinf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_asinl.c b/sysdeps/m68k/m680x0/fpu/e_asinl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_asinl.c
+rename to sysdeps/m68k/m680x0/fpu/e_asinl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_atan2.c b/sysdeps/m68k/m680x0/fpu/e_atan2.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_atan2.c
+rename to sysdeps/m68k/m680x0/fpu/e_atan2.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_atan2f.c b/sysdeps/m68k/m680x0/fpu/e_atan2f.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_atan2f.c
+rename to sysdeps/m68k/m680x0/fpu/e_atan2f.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_atan2l.c b/sysdeps/m68k/m680x0/fpu/e_atan2l.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_atan2l.c
+rename to sysdeps/m68k/m680x0/fpu/e_atan2l.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_atanh.c b/sysdeps/m68k/m680x0/fpu/e_atanh.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_atanh.c
+rename to sysdeps/m68k/m680x0/fpu/e_atanh.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_atanhf.c b/sysdeps/m68k/m680x0/fpu/e_atanhf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_atanhf.c
+rename to sysdeps/m68k/m680x0/fpu/e_atanhf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_atanhl.c b/sysdeps/m68k/m680x0/fpu/e_atanhl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_atanhl.c
+rename to sysdeps/m68k/m680x0/fpu/e_atanhl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_cosh.c b/sysdeps/m68k/m680x0/fpu/e_cosh.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_cosh.c
+rename to sysdeps/m68k/m680x0/fpu/e_cosh.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_coshf.c b/sysdeps/m68k/m680x0/fpu/e_coshf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_coshf.c
+rename to sysdeps/m68k/m680x0/fpu/e_coshf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_coshl.c b/sysdeps/m68k/m680x0/fpu/e_coshl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_coshl.c
+rename to sysdeps/m68k/m680x0/fpu/e_coshl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_exp.c b/sysdeps/m68k/m680x0/fpu/e_exp.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_exp.c
+rename to sysdeps/m68k/m680x0/fpu/e_exp.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_exp10.c b/sysdeps/m68k/m680x0/fpu/e_exp10.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_exp10.c
+rename to sysdeps/m68k/m680x0/fpu/e_exp10.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_exp10f.c b/sysdeps/m68k/m680x0/fpu/e_exp10f.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_exp10f.c
+rename to sysdeps/m68k/m680x0/fpu/e_exp10f.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_exp10l.c b/sysdeps/m68k/m680x0/fpu/e_exp10l.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_exp10l.c
+rename to sysdeps/m68k/m680x0/fpu/e_exp10l.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_exp2.c b/sysdeps/m68k/m680x0/fpu/e_exp2.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_exp2.c
+rename to sysdeps/m68k/m680x0/fpu/e_exp2.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_exp2f.c b/sysdeps/m68k/m680x0/fpu/e_exp2f.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_exp2f.c
+rename to sysdeps/m68k/m680x0/fpu/e_exp2f.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_exp2l.c b/sysdeps/m68k/m680x0/fpu/e_exp2l.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_exp2l.c
+rename to sysdeps/m68k/m680x0/fpu/e_exp2l.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_expf.c b/sysdeps/m68k/m680x0/fpu/e_expf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_expf.c
+rename to sysdeps/m68k/m680x0/fpu/e_expf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_expl.c b/sysdeps/m68k/m680x0/fpu/e_expl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_expl.c
+rename to sysdeps/m68k/m680x0/fpu/e_expl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_fmod.c b/sysdeps/m68k/m680x0/fpu/e_fmod.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_fmod.c
+rename to sysdeps/m68k/m680x0/fpu/e_fmod.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_fmodf.c b/sysdeps/m68k/m680x0/fpu/e_fmodf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_fmodf.c
+rename to sysdeps/m68k/m680x0/fpu/e_fmodf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_fmodl.c b/sysdeps/m68k/m680x0/fpu/e_fmodl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_fmodl.c
+rename to sysdeps/m68k/m680x0/fpu/e_fmodl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_ilogb.c b/sysdeps/m68k/m680x0/fpu/e_ilogb.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_ilogb.c
+rename to sysdeps/m68k/m680x0/fpu/e_ilogb.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_ilogbf.c b/sysdeps/m68k/m680x0/fpu/e_ilogbf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_ilogbf.c
+rename to sysdeps/m68k/m680x0/fpu/e_ilogbf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_ilogbl.c b/sysdeps/m68k/m680x0/fpu/e_ilogbl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_ilogbl.c
+rename to sysdeps/m68k/m680x0/fpu/e_ilogbl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_log.c b/sysdeps/m68k/m680x0/fpu/e_log.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_log.c
+rename to sysdeps/m68k/m680x0/fpu/e_log.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_log10.c b/sysdeps/m68k/m680x0/fpu/e_log10.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_log10.c
+rename to sysdeps/m68k/m680x0/fpu/e_log10.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_log10f.c b/sysdeps/m68k/m680x0/fpu/e_log10f.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_log10f.c
+rename to sysdeps/m68k/m680x0/fpu/e_log10f.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_log10l.c b/sysdeps/m68k/m680x0/fpu/e_log10l.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_log10l.c
+rename to sysdeps/m68k/m680x0/fpu/e_log10l.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_log2.c b/sysdeps/m68k/m680x0/fpu/e_log2.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_log2.c
+rename to sysdeps/m68k/m680x0/fpu/e_log2.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_log2f.c b/sysdeps/m68k/m680x0/fpu/e_log2f.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_log2f.c
+rename to sysdeps/m68k/m680x0/fpu/e_log2f.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_log2l.c b/sysdeps/m68k/m680x0/fpu/e_log2l.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_log2l.c
+rename to sysdeps/m68k/m680x0/fpu/e_log2l.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_logf.c b/sysdeps/m68k/m680x0/fpu/e_logf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_logf.c
+rename to sysdeps/m68k/m680x0/fpu/e_logf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_logl.c b/sysdeps/m68k/m680x0/fpu/e_logl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_logl.c
+rename to sysdeps/m68k/m680x0/fpu/e_logl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_pow.c b/sysdeps/m68k/m680x0/fpu/e_pow.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_pow.c
+rename to sysdeps/m68k/m680x0/fpu/e_pow.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_powf.c b/sysdeps/m68k/m680x0/fpu/e_powf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_powf.c
+rename to sysdeps/m68k/m680x0/fpu/e_powf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_powl.c b/sysdeps/m68k/m680x0/fpu/e_powl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_powl.c
+rename to sysdeps/m68k/m680x0/fpu/e_powl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_rem_pio2.c b/sysdeps/m68k/m680x0/fpu/e_rem_pio2.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_rem_pio2.c
+rename to sysdeps/m68k/m680x0/fpu/e_rem_pio2.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_rem_pio2f.c b/sysdeps/m68k/m680x0/fpu/e_rem_pio2f.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_rem_pio2f.c
+rename to sysdeps/m68k/m680x0/fpu/e_rem_pio2f.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_rem_pio2l.c b/sysdeps/m68k/m680x0/fpu/e_rem_pio2l.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_rem_pio2l.c
+rename to sysdeps/m68k/m680x0/fpu/e_rem_pio2l.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_remainder.c b/sysdeps/m68k/m680x0/fpu/e_remainder.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_remainder.c
+rename to sysdeps/m68k/m680x0/fpu/e_remainder.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_remainderf.c b/sysdeps/m68k/m680x0/fpu/e_remainderf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_remainderf.c
+rename to sysdeps/m68k/m680x0/fpu/e_remainderf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_remainderl.c b/sysdeps/m68k/m680x0/fpu/e_remainderl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_remainderl.c
+rename to sysdeps/m68k/m680x0/fpu/e_remainderl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_scalb.c b/sysdeps/m68k/m680x0/fpu/e_scalb.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_scalb.c
+rename to sysdeps/m68k/m680x0/fpu/e_scalb.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_scalbf.c b/sysdeps/m68k/m680x0/fpu/e_scalbf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_scalbf.c
+rename to sysdeps/m68k/m680x0/fpu/e_scalbf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_scalbl.c b/sysdeps/m68k/m680x0/fpu/e_scalbl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_scalbl.c
+rename to sysdeps/m68k/m680x0/fpu/e_scalbl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_sinh.c b/sysdeps/m68k/m680x0/fpu/e_sinh.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_sinh.c
+rename to sysdeps/m68k/m680x0/fpu/e_sinh.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_sinhf.c b/sysdeps/m68k/m680x0/fpu/e_sinhf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_sinhf.c
+rename to sysdeps/m68k/m680x0/fpu/e_sinhf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_sinhl.c b/sysdeps/m68k/m680x0/fpu/e_sinhl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_sinhl.c
+rename to sysdeps/m68k/m680x0/fpu/e_sinhl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_sqrt.c b/sysdeps/m68k/m680x0/fpu/e_sqrt.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_sqrt.c
+rename to sysdeps/m68k/m680x0/fpu/e_sqrt.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_sqrtf.c b/sysdeps/m68k/m680x0/fpu/e_sqrtf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_sqrtf.c
+rename to sysdeps/m68k/m680x0/fpu/e_sqrtf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/e_sqrtl.c b/sysdeps/m68k/m680x0/fpu/e_sqrtl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/e_sqrtl.c
+rename to sysdeps/m68k/m680x0/fpu/e_sqrtl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/fraiseexcpt.c b/sysdeps/m68k/m680x0/fpu/fraiseexcpt.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/fraiseexcpt.c
+rename to sysdeps/m68k/m680x0/fpu/fraiseexcpt.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/halfulp.c b/sysdeps/m68k/m680x0/fpu/halfulp.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/halfulp.c
+rename to sysdeps/m68k/m680x0/fpu/halfulp.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/k_cosl.c b/sysdeps/m68k/m680x0/fpu/k_cosl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/k_cosl.c
+rename to sysdeps/m68k/m680x0/fpu/k_cosl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/k_rem_pio2.c b/sysdeps/m68k/m680x0/fpu/k_rem_pio2.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/k_rem_pio2.c
+rename to sysdeps/m68k/m680x0/fpu/k_rem_pio2.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/k_rem_pio2f.c b/sysdeps/m68k/m680x0/fpu/k_rem_pio2f.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/k_rem_pio2f.c
+rename to sysdeps/m68k/m680x0/fpu/k_rem_pio2f.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/k_rem_pio2l.c b/sysdeps/m68k/m680x0/fpu/k_rem_pio2l.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/k_rem_pio2l.c
+rename to sysdeps/m68k/m680x0/fpu/k_rem_pio2l.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/k_sinl.c b/sysdeps/m68k/m680x0/fpu/k_sinl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/k_sinl.c
+rename to sysdeps/m68k/m680x0/fpu/k_sinl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/k_tanf.c b/sysdeps/m68k/m680x0/fpu/k_tanf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/k_tanf.c
+rename to sysdeps/m68k/m680x0/fpu/k_tanf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/k_tanl.c b/sysdeps/m68k/m680x0/fpu/k_tanl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/k_tanl.c
+rename to sysdeps/m68k/m680x0/fpu/k_tanl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/libm-test-ulps b/sysdeps/m68k/m680x0/fpu/libm-test-ulps
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/libm-test-ulps
+rename to sysdeps/m68k/m680x0/fpu/libm-test-ulps
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/math_private.h b/sysdeps/m68k/m680x0/fpu/math_private.h
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/math_private.h
+rename to sysdeps/m68k/m680x0/fpu/math_private.h
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/mathimpl.h b/sysdeps/m68k/m680x0/fpu/mathimpl.h
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/mathimpl.h
+rename to sysdeps/m68k/m680x0/fpu/mathimpl.h
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/mpa.c b/sysdeps/m68k/m680x0/fpu/mpa.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/mpa.c
+rename to sysdeps/m68k/m680x0/fpu/mpa.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/mpatan.c b/sysdeps/m68k/m680x0/fpu/mpatan.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/mpatan.c
+rename to sysdeps/m68k/m680x0/fpu/mpatan.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/mpatan2.c b/sysdeps/m68k/m680x0/fpu/mpatan2.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/mpatan2.c
+rename to sysdeps/m68k/m680x0/fpu/mpatan2.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/mpexp.c b/sysdeps/m68k/m680x0/fpu/mpexp.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/mpexp.c
+rename to sysdeps/m68k/m680x0/fpu/mpexp.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/mplog.c b/sysdeps/m68k/m680x0/fpu/mplog.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/mplog.c
+rename to sysdeps/m68k/m680x0/fpu/mplog.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/mpsqrt.c b/sysdeps/m68k/m680x0/fpu/mpsqrt.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/mpsqrt.c
+rename to sysdeps/m68k/m680x0/fpu/mpsqrt.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/mptan.c b/sysdeps/m68k/m680x0/fpu/mptan.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/mptan.c
+rename to sysdeps/m68k/m680x0/fpu/mptan.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_atan.c b/sysdeps/m68k/m680x0/fpu/s_atan.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_atan.c
+rename to sysdeps/m68k/m680x0/fpu/s_atan.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_atanf.c b/sysdeps/m68k/m680x0/fpu/s_atanf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_atanf.c
+rename to sysdeps/m68k/m680x0/fpu/s_atanf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_atanl.c b/sysdeps/m68k/m680x0/fpu/s_atanl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_atanl.c
+rename to sysdeps/m68k/m680x0/fpu/s_atanl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_ccosh.c b/sysdeps/m68k/m680x0/fpu/s_ccosh.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_ccosh.c
+rename to sysdeps/m68k/m680x0/fpu/s_ccosh.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_ccoshf.c b/sysdeps/m68k/m680x0/fpu/s_ccoshf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_ccoshf.c
+rename to sysdeps/m68k/m680x0/fpu/s_ccoshf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_ccoshl.c b/sysdeps/m68k/m680x0/fpu/s_ccoshl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_ccoshl.c
+rename to sysdeps/m68k/m680x0/fpu/s_ccoshl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_ceil.c b/sysdeps/m68k/m680x0/fpu/s_ceil.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_ceil.c
+rename to sysdeps/m68k/m680x0/fpu/s_ceil.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_ceilf.c b/sysdeps/m68k/m680x0/fpu/s_ceilf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_ceilf.c
+rename to sysdeps/m68k/m680x0/fpu/s_ceilf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_ceill.c b/sysdeps/m68k/m680x0/fpu/s_ceill.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_ceill.c
+rename to sysdeps/m68k/m680x0/fpu/s_ceill.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_cexp.c b/sysdeps/m68k/m680x0/fpu/s_cexp.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_cexp.c
+rename to sysdeps/m68k/m680x0/fpu/s_cexp.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_cexpf.c b/sysdeps/m68k/m680x0/fpu/s_cexpf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_cexpf.c
+rename to sysdeps/m68k/m680x0/fpu/s_cexpf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_cexpl.c b/sysdeps/m68k/m680x0/fpu/s_cexpl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_cexpl.c
+rename to sysdeps/m68k/m680x0/fpu/s_cexpl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_cos.c b/sysdeps/m68k/m680x0/fpu/s_cos.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_cos.c
+rename to sysdeps/m68k/m680x0/fpu/s_cos.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_cosf.c b/sysdeps/m68k/m680x0/fpu/s_cosf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_cosf.c
+rename to sysdeps/m68k/m680x0/fpu/s_cosf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_cosl.c b/sysdeps/m68k/m680x0/fpu/s_cosl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_cosl.c
+rename to sysdeps/m68k/m680x0/fpu/s_cosl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_csin.c b/sysdeps/m68k/m680x0/fpu/s_csin.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_csin.c
+rename to sysdeps/m68k/m680x0/fpu/s_csin.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_csinf.c b/sysdeps/m68k/m680x0/fpu/s_csinf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_csinf.c
+rename to sysdeps/m68k/m680x0/fpu/s_csinf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_csinh.c b/sysdeps/m68k/m680x0/fpu/s_csinh.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_csinh.c
+rename to sysdeps/m68k/m680x0/fpu/s_csinh.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_csinhf.c b/sysdeps/m68k/m680x0/fpu/s_csinhf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_csinhf.c
+rename to sysdeps/m68k/m680x0/fpu/s_csinhf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_csinhl.c b/sysdeps/m68k/m680x0/fpu/s_csinhl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_csinhl.c
+rename to sysdeps/m68k/m680x0/fpu/s_csinhl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_csinl.c b/sysdeps/m68k/m680x0/fpu/s_csinl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_csinl.c
+rename to sysdeps/m68k/m680x0/fpu/s_csinl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_expm1.c b/sysdeps/m68k/m680x0/fpu/s_expm1.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_expm1.c
+rename to sysdeps/m68k/m680x0/fpu/s_expm1.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_expm1f.c b/sysdeps/m68k/m680x0/fpu/s_expm1f.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_expm1f.c
+rename to sysdeps/m68k/m680x0/fpu/s_expm1f.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_expm1l.c b/sysdeps/m68k/m680x0/fpu/s_expm1l.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_expm1l.c
+rename to sysdeps/m68k/m680x0/fpu/s_expm1l.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_fabs.c b/sysdeps/m68k/m680x0/fpu/s_fabs.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_fabs.c
+rename to sysdeps/m68k/m680x0/fpu/s_fabs.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_fabsf.c b/sysdeps/m68k/m680x0/fpu/s_fabsf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_fabsf.c
+rename to sysdeps/m68k/m680x0/fpu/s_fabsf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_fabsl.c b/sysdeps/m68k/m680x0/fpu/s_fabsl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_fabsl.c
+rename to sysdeps/m68k/m680x0/fpu/s_fabsl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_finite.c b/sysdeps/m68k/m680x0/fpu/s_finite.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_finite.c
+rename to sysdeps/m68k/m680x0/fpu/s_finite.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_finitef.c b/sysdeps/m68k/m680x0/fpu/s_finitef.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_finitef.c
+rename to sysdeps/m68k/m680x0/fpu/s_finitef.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_finitel.c b/sysdeps/m68k/m680x0/fpu/s_finitel.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_finitel.c
+rename to sysdeps/m68k/m680x0/fpu/s_finitel.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_floor.c b/sysdeps/m68k/m680x0/fpu/s_floor.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_floor.c
+rename to sysdeps/m68k/m680x0/fpu/s_floor.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_floorf.c b/sysdeps/m68k/m680x0/fpu/s_floorf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_floorf.c
+rename to sysdeps/m68k/m680x0/fpu/s_floorf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_floorl.c b/sysdeps/m68k/m680x0/fpu/s_floorl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_floorl.c
+rename to sysdeps/m68k/m680x0/fpu/s_floorl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_fpclassifyl.c b/sysdeps/m68k/m680x0/fpu/s_fpclassifyl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_fpclassifyl.c
+rename to sysdeps/m68k/m680x0/fpu/s_fpclassifyl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_frexp.c b/sysdeps/m68k/m680x0/fpu/s_frexp.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_frexp.c
+rename to sysdeps/m68k/m680x0/fpu/s_frexp.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_frexpf.c b/sysdeps/m68k/m680x0/fpu/s_frexpf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_frexpf.c
+rename to sysdeps/m68k/m680x0/fpu/s_frexpf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_frexpl.c b/sysdeps/m68k/m680x0/fpu/s_frexpl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_frexpl.c
+rename to sysdeps/m68k/m680x0/fpu/s_frexpl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_isinf.c b/sysdeps/m68k/m680x0/fpu/s_isinf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_isinf.c
+rename to sysdeps/m68k/m680x0/fpu/s_isinf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_isinff.c b/sysdeps/m68k/m680x0/fpu/s_isinff.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_isinff.c
+rename to sysdeps/m68k/m680x0/fpu/s_isinff.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_isinfl.c b/sysdeps/m68k/m680x0/fpu/s_isinfl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_isinfl.c
+rename to sysdeps/m68k/m680x0/fpu/s_isinfl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_isnan.c b/sysdeps/m68k/m680x0/fpu/s_isnan.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_isnan.c
+rename to sysdeps/m68k/m680x0/fpu/s_isnan.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_isnanf.c b/sysdeps/m68k/m680x0/fpu/s_isnanf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_isnanf.c
+rename to sysdeps/m68k/m680x0/fpu/s_isnanf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_isnanl.c b/sysdeps/m68k/m680x0/fpu/s_isnanl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_isnanl.c
+rename to sysdeps/m68k/m680x0/fpu/s_isnanl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_llrint.c b/sysdeps/m68k/m680x0/fpu/s_llrint.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_llrint.c
+rename to sysdeps/m68k/m680x0/fpu/s_llrint.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_llrintf.c b/sysdeps/m68k/m680x0/fpu/s_llrintf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_llrintf.c
+rename to sysdeps/m68k/m680x0/fpu/s_llrintf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_llrintl.c b/sysdeps/m68k/m680x0/fpu/s_llrintl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_llrintl.c
+rename to sysdeps/m68k/m680x0/fpu/s_llrintl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_log1p.c b/sysdeps/m68k/m680x0/fpu/s_log1p.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_log1p.c
+rename to sysdeps/m68k/m680x0/fpu/s_log1p.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_log1pf.c b/sysdeps/m68k/m680x0/fpu/s_log1pf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_log1pf.c
+rename to sysdeps/m68k/m680x0/fpu/s_log1pf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_log1pl.c b/sysdeps/m68k/m680x0/fpu/s_log1pl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_log1pl.c
+rename to sysdeps/m68k/m680x0/fpu/s_log1pl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_logbl.c b/sysdeps/m68k/m680x0/fpu/s_logbl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_logbl.c
+rename to sysdeps/m68k/m680x0/fpu/s_logbl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_lrint.c b/sysdeps/m68k/m680x0/fpu/s_lrint.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_lrint.c
+rename to sysdeps/m68k/m680x0/fpu/s_lrint.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_lrintf.c b/sysdeps/m68k/m680x0/fpu/s_lrintf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_lrintf.c
+rename to sysdeps/m68k/m680x0/fpu/s_lrintf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_lrintl.c b/sysdeps/m68k/m680x0/fpu/s_lrintl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_lrintl.c
+rename to sysdeps/m68k/m680x0/fpu/s_lrintl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_modf.c b/sysdeps/m68k/m680x0/fpu/s_modf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_modf.c
+rename to sysdeps/m68k/m680x0/fpu/s_modf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_modff.c b/sysdeps/m68k/m680x0/fpu/s_modff.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_modff.c
+rename to sysdeps/m68k/m680x0/fpu/s_modff.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_modfl.c b/sysdeps/m68k/m680x0/fpu/s_modfl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_modfl.c
+rename to sysdeps/m68k/m680x0/fpu/s_modfl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_nearbyint.c b/sysdeps/m68k/m680x0/fpu/s_nearbyint.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_nearbyint.c
+rename to sysdeps/m68k/m680x0/fpu/s_nearbyint.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_nearbyintf.c b/sysdeps/m68k/m680x0/fpu/s_nearbyintf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_nearbyintf.c
+rename to sysdeps/m68k/m680x0/fpu/s_nearbyintf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_nearbyintl.c b/sysdeps/m68k/m680x0/fpu/s_nearbyintl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_nearbyintl.c
+rename to sysdeps/m68k/m680x0/fpu/s_nearbyintl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_nextafterl.c b/sysdeps/m68k/m680x0/fpu/s_nextafterl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_nextafterl.c
+rename to sysdeps/m68k/m680x0/fpu/s_nextafterl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_remquo.c b/sysdeps/m68k/m680x0/fpu/s_remquo.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_remquo.c
+rename to sysdeps/m68k/m680x0/fpu/s_remquo.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_remquof.c b/sysdeps/m68k/m680x0/fpu/s_remquof.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_remquof.c
+rename to sysdeps/m68k/m680x0/fpu/s_remquof.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_remquol.c b/sysdeps/m68k/m680x0/fpu/s_remquol.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_remquol.c
+rename to sysdeps/m68k/m680x0/fpu/s_remquol.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_rint.c b/sysdeps/m68k/m680x0/fpu/s_rint.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_rint.c
+rename to sysdeps/m68k/m680x0/fpu/s_rint.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_rintf.c b/sysdeps/m68k/m680x0/fpu/s_rintf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_rintf.c
+rename to sysdeps/m68k/m680x0/fpu/s_rintf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_rintl.c b/sysdeps/m68k/m680x0/fpu/s_rintl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_rintl.c
+rename to sysdeps/m68k/m680x0/fpu/s_rintl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_scalbln.c b/sysdeps/m68k/m680x0/fpu/s_scalbln.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_scalbln.c
+rename to sysdeps/m68k/m680x0/fpu/s_scalbln.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_scalblnf.c b/sysdeps/m68k/m680x0/fpu/s_scalblnf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_scalblnf.c
+rename to sysdeps/m68k/m680x0/fpu/s_scalblnf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_scalblnl.c b/sysdeps/m68k/m680x0/fpu/s_scalblnl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_scalblnl.c
+rename to sysdeps/m68k/m680x0/fpu/s_scalblnl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_scalbn.c b/sysdeps/m68k/m680x0/fpu/s_scalbn.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_scalbn.c
+rename to sysdeps/m68k/m680x0/fpu/s_scalbn.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_scalbnf.c b/sysdeps/m68k/m680x0/fpu/s_scalbnf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_scalbnf.c
+rename to sysdeps/m68k/m680x0/fpu/s_scalbnf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_scalbnl.c b/sysdeps/m68k/m680x0/fpu/s_scalbnl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_scalbnl.c
+rename to sysdeps/m68k/m680x0/fpu/s_scalbnl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_significand.c b/sysdeps/m68k/m680x0/fpu/s_significand.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_significand.c
+rename to sysdeps/m68k/m680x0/fpu/s_significand.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_significandf.c b/sysdeps/m68k/m680x0/fpu/s_significandf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_significandf.c
+rename to sysdeps/m68k/m680x0/fpu/s_significandf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_significandl.c b/sysdeps/m68k/m680x0/fpu/s_significandl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_significandl.c
+rename to sysdeps/m68k/m680x0/fpu/s_significandl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_sin.c b/sysdeps/m68k/m680x0/fpu/s_sin.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_sin.c
+rename to sysdeps/m68k/m680x0/fpu/s_sin.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_sincos.c b/sysdeps/m68k/m680x0/fpu/s_sincos.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_sincos.c
+rename to sysdeps/m68k/m680x0/fpu/s_sincos.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_sincosf.c b/sysdeps/m68k/m680x0/fpu/s_sincosf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_sincosf.c
+rename to sysdeps/m68k/m680x0/fpu/s_sincosf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_sincosl.c b/sysdeps/m68k/m680x0/fpu/s_sincosl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_sincosl.c
+rename to sysdeps/m68k/m680x0/fpu/s_sincosl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_sinf.c b/sysdeps/m68k/m680x0/fpu/s_sinf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_sinf.c
+rename to sysdeps/m68k/m680x0/fpu/s_sinf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_sinl.c b/sysdeps/m68k/m680x0/fpu/s_sinl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_sinl.c
+rename to sysdeps/m68k/m680x0/fpu/s_sinl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_tan.c b/sysdeps/m68k/m680x0/fpu/s_tan.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_tan.c
+rename to sysdeps/m68k/m680x0/fpu/s_tan.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_tanf.c b/sysdeps/m68k/m680x0/fpu/s_tanf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_tanf.c
+rename to sysdeps/m68k/m680x0/fpu/s_tanf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_tanh.c b/sysdeps/m68k/m680x0/fpu/s_tanh.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_tanh.c
+rename to sysdeps/m68k/m680x0/fpu/s_tanh.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_tanhf.c b/sysdeps/m68k/m680x0/fpu/s_tanhf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_tanhf.c
+rename to sysdeps/m68k/m680x0/fpu/s_tanhf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_tanhl.c b/sysdeps/m68k/m680x0/fpu/s_tanhl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_tanhl.c
+rename to sysdeps/m68k/m680x0/fpu/s_tanhl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_tanl.c b/sysdeps/m68k/m680x0/fpu/s_tanl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_tanl.c
+rename to sysdeps/m68k/m680x0/fpu/s_tanl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_trunc.c b/sysdeps/m68k/m680x0/fpu/s_trunc.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_trunc.c
+rename to sysdeps/m68k/m680x0/fpu/s_trunc.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_truncf.c b/sysdeps/m68k/m680x0/fpu/s_truncf.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_truncf.c
+rename to sysdeps/m68k/m680x0/fpu/s_truncf.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/s_truncl.c b/sysdeps/m68k/m680x0/fpu/s_truncl.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/s_truncl.c
+rename to sysdeps/m68k/m680x0/fpu/s_truncl.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/sincos32.c b/sysdeps/m68k/m680x0/fpu/sincos32.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/sincos32.c
+rename to sysdeps/m68k/m680x0/fpu/sincos32.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/sincostab.c b/sysdeps/m68k/m680x0/fpu/sincostab.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/sincostab.c
+rename to sysdeps/m68k/m680x0/fpu/sincostab.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/slowexp.c b/sysdeps/m68k/m680x0/fpu/slowexp.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/slowexp.c
+rename to sysdeps/m68k/m680x0/fpu/slowexp.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/slowpow.c b/sysdeps/m68k/m680x0/fpu/slowpow.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/slowpow.c
+rename to sysdeps/m68k/m680x0/fpu/slowpow.c
+diff --git a/ports/sysdeps/m68k/m680x0/fpu/t_exp.c b/sysdeps/m68k/m680x0/fpu/t_exp.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/fpu/t_exp.c
+rename to sysdeps/m68k/m680x0/fpu/t_exp.c
+diff --git a/ports/sysdeps/m68k/m680x0/lshift.S b/sysdeps/m68k/m680x0/lshift.S
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/lshift.S
+rename to sysdeps/m68k/m680x0/lshift.S
+diff --git a/ports/sysdeps/m68k/m680x0/m68020/Makefile b/sysdeps/m68k/m680x0/m68020/Makefile
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/m68020/Makefile
+rename to sysdeps/m68k/m680x0/m68020/Makefile
+diff --git a/ports/sysdeps/m68k/m680x0/m68020/addmul_1.S b/sysdeps/m68k/m680x0/m68020/addmul_1.S
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/m68020/addmul_1.S
+rename to sysdeps/m68k/m680x0/m68020/addmul_1.S
+diff --git a/ports/sysdeps/m68k/m680x0/m68020/bits/atomic.h b/sysdeps/m68k/m680x0/m68020/bits/atomic.h
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/m68020/bits/atomic.h
+rename to sysdeps/m68k/m680x0/m68020/bits/atomic.h
+diff --git a/ports/sysdeps/m68k/m680x0/m68020/bits/string.h b/sysdeps/m68k/m680x0/m68020/bits/string.h
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/m68020/bits/string.h
+rename to sysdeps/m68k/m680x0/m68020/bits/string.h
+diff --git a/ports/sysdeps/m68k/m680x0/m68020/mul_1.S b/sysdeps/m68k/m680x0/m68020/mul_1.S
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/m68020/mul_1.S
+rename to sysdeps/m68k/m680x0/m68020/mul_1.S
+diff --git a/ports/sysdeps/m68k/m680x0/m68020/submul_1.S b/sysdeps/m68k/m680x0/m68020/submul_1.S
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/m68020/submul_1.S
+rename to sysdeps/m68k/m680x0/m68020/submul_1.S
+diff --git a/ports/sysdeps/m68k/m680x0/m68020/wordcopy.S b/sysdeps/m68k/m680x0/m68020/wordcopy.S
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/m68020/wordcopy.S
+rename to sysdeps/m68k/m680x0/m68020/wordcopy.S
+diff --git a/ports/sysdeps/m68k/m680x0/printf_fphex.c b/sysdeps/m68k/m680x0/printf_fphex.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/printf_fphex.c
+rename to sysdeps/m68k/m680x0/printf_fphex.c
+diff --git a/ports/sysdeps/m68k/m680x0/rshift.S b/sysdeps/m68k/m680x0/rshift.S
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/rshift.S
+rename to sysdeps/m68k/m680x0/rshift.S
+diff --git a/ports/sysdeps/m68k/m680x0/strtold_l.c b/sysdeps/m68k/m680x0/strtold_l.c
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/strtold_l.c
+rename to sysdeps/m68k/m680x0/strtold_l.c
+diff --git a/ports/sysdeps/m68k/m680x0/sub_n.S b/sysdeps/m68k/m680x0/sub_n.S
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/sub_n.S
+rename to sysdeps/m68k/m680x0/sub_n.S
+diff --git a/ports/sysdeps/m68k/m680x0/sysdep.h b/sysdeps/m68k/m680x0/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/m68k/m680x0/sysdep.h
+rename to sysdeps/m68k/m680x0/sysdep.h
+diff --git a/ports/sysdeps/m68k/memchr.S b/sysdeps/m68k/memchr.S
+similarity index 100%
+rename from ports/sysdeps/m68k/memchr.S
+rename to sysdeps/m68k/memchr.S
+diff --git a/ports/sysdeps/m68k/memcopy.h b/sysdeps/m68k/memcopy.h
+similarity index 100%
+rename from ports/sysdeps/m68k/memcopy.h
+rename to sysdeps/m68k/memcopy.h
+diff --git a/ports/sysdeps/m68k/memusage.h b/sysdeps/m68k/memusage.h
+similarity index 100%
+rename from ports/sysdeps/m68k/memusage.h
+rename to sysdeps/m68k/memusage.h
+diff --git a/ports/sysdeps/m68k/nptl/Makefile b/sysdeps/m68k/nptl/Makefile
+similarity index 100%
+rename from ports/sysdeps/m68k/nptl/Makefile
+rename to sysdeps/m68k/nptl/Makefile
+diff --git a/ports/sysdeps/m68k/nptl/pthread_spin_lock.c b/sysdeps/m68k/nptl/pthread_spin_lock.c
+similarity index 100%
+rename from ports/sysdeps/m68k/nptl/pthread_spin_lock.c
+rename to sysdeps/m68k/nptl/pthread_spin_lock.c
+diff --git a/ports/sysdeps/m68k/nptl/pthreaddef.h b/sysdeps/m68k/nptl/pthreaddef.h
+similarity index 100%
+rename from ports/sysdeps/m68k/nptl/pthreaddef.h
+rename to sysdeps/m68k/nptl/pthreaddef.h
+diff --git a/ports/sysdeps/m68k/nptl/tcb-offsets.sym b/sysdeps/m68k/nptl/tcb-offsets.sym
+similarity index 100%
+rename from ports/sysdeps/m68k/nptl/tcb-offsets.sym
+rename to sysdeps/m68k/nptl/tcb-offsets.sym
+diff --git a/ports/sysdeps/m68k/nptl/tls.h b/sysdeps/m68k/nptl/tls.h
+similarity index 100%
+rename from ports/sysdeps/m68k/nptl/tls.h
+rename to sysdeps/m68k/nptl/tls.h
+diff --git a/ports/sysdeps/m68k/preconfigure b/sysdeps/m68k/preconfigure
+similarity index 100%
+rename from ports/sysdeps/m68k/preconfigure
+rename to sysdeps/m68k/preconfigure
+diff --git a/ports/sysdeps/m68k/rawmemchr.S b/sysdeps/m68k/rawmemchr.S
+similarity index 100%
+rename from ports/sysdeps/m68k/rawmemchr.S
+rename to sysdeps/m68k/rawmemchr.S
+diff --git a/ports/sysdeps/m68k/setjmp.c b/sysdeps/m68k/setjmp.c
+similarity index 100%
+rename from ports/sysdeps/m68k/setjmp.c
+rename to sysdeps/m68k/setjmp.c
+diff --git a/ports/sysdeps/m68k/shlib-versions b/sysdeps/m68k/shlib-versions
+similarity index 100%
+rename from ports/sysdeps/m68k/shlib-versions
+rename to sysdeps/m68k/shlib-versions
+diff --git a/ports/sysdeps/m68k/sotruss-lib.c b/sysdeps/m68k/sotruss-lib.c
+similarity index 100%
+rename from ports/sysdeps/m68k/sotruss-lib.c
+rename to sysdeps/m68k/sotruss-lib.c
+diff --git a/ports/sysdeps/m68k/stackinfo.h b/sysdeps/m68k/stackinfo.h
+similarity index 100%
+rename from ports/sysdeps/m68k/stackinfo.h
+rename to sysdeps/m68k/stackinfo.h
+diff --git a/ports/sysdeps/m68k/start.S b/sysdeps/m68k/start.S
+similarity index 100%
+rename from ports/sysdeps/m68k/start.S
+rename to sysdeps/m68k/start.S
+diff --git a/ports/sysdeps/m68k/strchr.S b/sysdeps/m68k/strchr.S
+similarity index 100%
+rename from ports/sysdeps/m68k/strchr.S
+rename to sysdeps/m68k/strchr.S
+diff --git a/ports/sysdeps/m68k/strchrnul.S b/sysdeps/m68k/strchrnul.S
+similarity index 100%
+rename from ports/sysdeps/m68k/strchrnul.S
+rename to sysdeps/m68k/strchrnul.S
+diff --git a/ports/sysdeps/m68k/sys/ucontext.h b/sysdeps/m68k/sys/ucontext.h
+similarity index 100%
+rename from ports/sysdeps/m68k/sys/ucontext.h
+rename to sysdeps/m68k/sys/ucontext.h
+diff --git a/ports/sysdeps/m68k/sysdep.h b/sysdeps/m68k/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/m68k/sysdep.h
+rename to sysdeps/m68k/sysdep.h
+diff --git a/ports/sysdeps/m68k/tls-macros.h b/sysdeps/m68k/tls-macros.h
+similarity index 100%
+rename from ports/sysdeps/m68k/tls-macros.h
+rename to sysdeps/m68k/tls-macros.h
+diff --git a/ports/sysdeps/m68k/tst-audit.h b/sysdeps/m68k/tst-audit.h
+similarity index 100%
+rename from ports/sysdeps/m68k/tst-audit.h
+rename to sysdeps/m68k/tst-audit.h
+diff --git a/ports/sysdeps/m68k/wcpcpy.c b/sysdeps/m68k/wcpcpy.c
+similarity index 100%
+rename from ports/sysdeps/m68k/wcpcpy.c
+rename to sysdeps/m68k/wcpcpy.c
+diff --git a/ports/sysdeps/m68k/wcpcpy_chk.c b/sysdeps/m68k/wcpcpy_chk.c
+similarity index 100%
+rename from ports/sysdeps/m68k/wcpcpy_chk.c
+rename to sysdeps/m68k/wcpcpy_chk.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/Makefile b/sysdeps/unix/sysv/linux/m68k/Makefile
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/Makefile
+rename to sysdeps/unix/sysv/linux/m68k/Makefile
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/Versions b/sysdeps/unix/sysv/linux/m68k/Versions
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/Versions
+rename to sysdeps/unix/sysv/linux/m68k/Versions
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c b/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c
+rename to sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/alphasort64.c b/sysdeps/unix/sysv/linux/m68k/alphasort64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/alphasort64.c
+rename to sysdeps/unix/sysv/linux/m68k/alphasort64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/bits/a.out.h b/sysdeps/unix/sysv/linux/m68k/bits/a.out.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/bits/a.out.h
+rename to sysdeps/unix/sysv/linux/m68k/bits/a.out.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h b/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h
+rename to sysdeps/unix/sysv/linux/m68k/bits/fcntl.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/bits/m68k-vdso.h b/sysdeps/unix/sysv/linux/m68k/bits/m68k-vdso.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/bits/m68k-vdso.h
+rename to sysdeps/unix/sysv/linux/m68k/bits/m68k-vdso.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/bits/mman.h b/sysdeps/unix/sysv/linux/m68k/bits/mman.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/bits/mman.h
+rename to sysdeps/unix/sysv/linux/m68k/bits/mman.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/bits/poll.h b/sysdeps/unix/sysv/linux/m68k/bits/poll.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/bits/poll.h
+rename to sysdeps/unix/sysv/linux/m68k/bits/poll.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/bits/stat.h b/sysdeps/unix/sysv/linux/m68k/bits/stat.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/bits/stat.h
+rename to sysdeps/unix/sysv/linux/m68k/bits/stat.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/brk.c b/sysdeps/unix/sysv/linux/m68k/brk.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/brk.c
+rename to sysdeps/unix/sysv/linux/m68k/brk.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/clone.S b/sysdeps/unix/sysv/linux/m68k/clone.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/clone.S
+rename to sysdeps/unix/sysv/linux/m68k/clone.S
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/bits/atomic.h b/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/bits/atomic.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/bits/atomic.h
+rename to sysdeps/unix/sysv/linux/m68k/coldfire/nptl/bits/atomic.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/ld.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/ld.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/ld.abilist
+rename to sysdeps/unix/sysv/linux/m68k/coldfire/nptl/ld.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libBrokenLocale.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libBrokenLocale.abilist
+rename to sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libBrokenLocale.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libanl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libanl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libanl.abilist
+rename to sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libanl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist
+rename to sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist
+rename to sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libcrypt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libdl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libdl.abilist
+rename to sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libdl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libm.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libm.abilist
+rename to sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libm.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libnsl.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libnsl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libnsl.abilist
+rename to sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libnsl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libpthread.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libpthread.abilist
+rename to sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libpthread.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libresolv.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libresolv.abilist
+rename to sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libresolv.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/librt.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/librt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/librt.abilist
+rename to sysdeps/unix/sysv/linux/m68k/coldfire/nptl/librt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libthread_db.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libthread_db.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libthread_db.abilist
+rename to sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libthread_db.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libutil.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libutil.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libutil.abilist
+rename to sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libutil.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h b/sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h
+rename to sysdeps/unix/sysv/linux/m68k/coldfire/sysdep.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/configure b/sysdeps/unix/sysv/linux/m68k/configure
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/configure
+rename to sysdeps/unix/sysv/linux/m68k/configure
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/configure.in b/sysdeps/unix/sysv/linux/m68k/configure.in
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/configure.in
+rename to sysdeps/unix/sysv/linux/m68k/configure.in
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/dl-librecon.h b/sysdeps/unix/sysv/linux/m68k/dl-librecon.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/dl-librecon.h
+rename to sysdeps/unix/sysv/linux/m68k/dl-librecon.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/fchown.c b/sysdeps/unix/sysv/linux/m68k/fchown.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/fchown.c
+rename to sysdeps/unix/sysv/linux/m68k/fchown.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/fchownat.c b/sysdeps/unix/sysv/linux/m68k/fchownat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/fchownat.c
+rename to sysdeps/unix/sysv/linux/m68k/fchownat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/fcntl.c b/sysdeps/unix/sysv/linux/m68k/fcntl.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/fcntl.c
+rename to sysdeps/unix/sysv/linux/m68k/fcntl.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/fxstat.c b/sysdeps/unix/sysv/linux/m68k/fxstat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/fxstat.c
+rename to sysdeps/unix/sysv/linux/m68k/fxstat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/fxstatat.c b/sysdeps/unix/sysv/linux/m68k/fxstatat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/fxstatat.c
+rename to sysdeps/unix/sysv/linux/m68k/fxstatat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/getdents64.c b/sysdeps/unix/sysv/linux/m68k/getdents64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/getdents64.c
+rename to sysdeps/unix/sysv/linux/m68k/getdents64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/getegid.c b/sysdeps/unix/sysv/linux/m68k/getegid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/getegid.c
+rename to sysdeps/unix/sysv/linux/m68k/getegid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/geteuid.c b/sysdeps/unix/sysv/linux/m68k/geteuid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/geteuid.c
+rename to sysdeps/unix/sysv/linux/m68k/geteuid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/getgid.c b/sysdeps/unix/sysv/linux/m68k/getgid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/getgid.c
+rename to sysdeps/unix/sysv/linux/m68k/getgid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/getgroups.c b/sysdeps/unix/sysv/linux/m68k/getgroups.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/getgroups.c
+rename to sysdeps/unix/sysv/linux/m68k/getgroups.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/getmsg.c b/sysdeps/unix/sysv/linux/m68k/getmsg.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/getmsg.c
+rename to sysdeps/unix/sysv/linux/m68k/getmsg.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/getpagesize.c b/sysdeps/unix/sysv/linux/m68k/getpagesize.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/getpagesize.c
+rename to sysdeps/unix/sysv/linux/m68k/getpagesize.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/getresgid.c b/sysdeps/unix/sysv/linux/m68k/getresgid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/getresgid.c
+rename to sysdeps/unix/sysv/linux/m68k/getresgid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/getresuid.c b/sysdeps/unix/sysv/linux/m68k/getresuid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/getresuid.c
+rename to sysdeps/unix/sysv/linux/m68k/getresuid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/getrlimit64.c b/sysdeps/unix/sysv/linux/m68k/getrlimit64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/getrlimit64.c
+rename to sysdeps/unix/sysv/linux/m68k/getrlimit64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/getsysstats.c b/sysdeps/unix/sysv/linux/m68k/getsysstats.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/getsysstats.c
+rename to sysdeps/unix/sysv/linux/m68k/getsysstats.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/getuid.c b/sysdeps/unix/sysv/linux/m68k/getuid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/getuid.c
+rename to sysdeps/unix/sysv/linux/m68k/getuid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/glob64.c b/sysdeps/unix/sysv/linux/m68k/glob64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/glob64.c
+rename to sysdeps/unix/sysv/linux/m68k/glob64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/init-first.c b/sysdeps/unix/sysv/linux/m68k/init-first.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/init-first.c
+rename to sysdeps/unix/sysv/linux/m68k/init-first.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h b/sysdeps/unix/sysv/linux/m68k/kernel-features.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h
+rename to sysdeps/unix/sysv/linux/m68k/kernel-features.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/lchown.c b/sysdeps/unix/sysv/linux/m68k/lchown.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/lchown.c
+rename to sysdeps/unix/sysv/linux/m68k/lchown.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/ldconfig.h b/sysdeps/unix/sysv/linux/m68k/ldconfig.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/ldconfig.h
+rename to sysdeps/unix/sysv/linux/m68k/ldconfig.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/libc-m68k-vdso.c b/sysdeps/unix/sysv/linux/m68k/libc-m68k-vdso.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/libc-m68k-vdso.c
+rename to sysdeps/unix/sysv/linux/m68k/libc-m68k-vdso.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/lockf64.c b/sysdeps/unix/sysv/linux/m68k/lockf64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/lockf64.c
+rename to sysdeps/unix/sysv/linux/m68k/lockf64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/lxstat.c b/sysdeps/unix/sysv/linux/m68k/lxstat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/lxstat.c
+rename to sysdeps/unix/sysv/linux/m68k/lxstat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/Makefile b/sysdeps/unix/sysv/linux/m68k/m680x0/Makefile
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/Makefile
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/Makefile
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S b/sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/getcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S b/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/makecontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/ld.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/ld.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/ld.abilist
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/nptl/ld.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libBrokenLocale.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libBrokenLocale.abilist
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libBrokenLocale.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libanl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libanl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libanl.abilist
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libanl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc.abilist
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libcrypt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libdl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libdl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libdl.abilist
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libdl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libm.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libm.abilist
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libm.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libnsl.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libnsl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libnsl.abilist
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libnsl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libpthread.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libpthread.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libpthread.abilist
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libpthread.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libresolv.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libresolv.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libresolv.abilist
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libresolv.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/librt.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/librt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/librt.abilist
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/nptl/librt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libthread_db.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libthread_db.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libthread_db.abilist
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libthread_db.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libutil.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libutil.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libutil.abilist
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libutil.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S b/sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/setcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S b/sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/swapcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/syscalls.list b/sysdeps/unix/sysv/linux/m68k/m680x0/syscalls.list
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/syscalls.list
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/syscalls.list
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h b/sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/sysdep.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m680x0/ucontext_i.sym b/sysdeps/unix/sysv/linux/m68k/m680x0/ucontext_i.sym
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m680x0/ucontext_i.sym
+rename to sysdeps/unix/sysv/linux/m68k/m680x0/ucontext_i.sym
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m68k-helpers.S b/sysdeps/unix/sysv/linux/m68k/m68k-helpers.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m68k-helpers.S
+rename to sysdeps/unix/sysv/linux/m68k/m68k-helpers.S
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/m68k-vdso.c b/sysdeps/unix/sysv/linux/m68k/m68k-vdso.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/m68k-vdso.c
+rename to sysdeps/unix/sysv/linux/m68k/m68k-vdso.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/mmap.S b/sysdeps/unix/sysv/linux/m68k/mmap.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/mmap.S
+rename to sysdeps/unix/sysv/linux/m68k/mmap.S
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/mremap.S b/sysdeps/unix/sysv/linux/m68k/mremap.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/mremap.S
+rename to sysdeps/unix/sysv/linux/m68k/mremap.S
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/msgctl.c b/sysdeps/unix/sysv/linux/m68k/msgctl.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/msgctl.c
+rename to sysdeps/unix/sysv/linux/m68k/msgctl.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/nptl/bits/pthreadtypes.h b/sysdeps/unix/sysv/linux/m68k/nptl/bits/pthreadtypes.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/nptl/bits/pthreadtypes.h
+rename to sysdeps/unix/sysv/linux/m68k/nptl/bits/pthreadtypes.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/nptl/bits/semaphore.h b/sysdeps/unix/sysv/linux/m68k/nptl/bits/semaphore.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/nptl/bits/semaphore.h
+rename to sysdeps/unix/sysv/linux/m68k/nptl/bits/semaphore.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/nptl/c++-types.data b/sysdeps/unix/sysv/linux/m68k/nptl/c++-types.data
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/nptl/c++-types.data
+rename to sysdeps/unix/sysv/linux/m68k/nptl/c++-types.data
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/nptl/clone.S b/sysdeps/unix/sysv/linux/m68k/nptl/clone.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/nptl/clone.S
+rename to sysdeps/unix/sysv/linux/m68k/nptl/clone.S
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/nptl/createthread.c b/sysdeps/unix/sysv/linux/m68k/nptl/createthread.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/nptl/createthread.c
+rename to sysdeps/unix/sysv/linux/m68k/nptl/createthread.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/nptl/fork.c b/sysdeps/unix/sysv/linux/m68k/nptl/fork.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/nptl/fork.c
+rename to sysdeps/unix/sysv/linux/m68k/nptl/fork.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/nptl/localplt.data b/sysdeps/unix/sysv/linux/m68k/nptl/localplt.data
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/nptl/localplt.data
+rename to sysdeps/unix/sysv/linux/m68k/nptl/localplt.data
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/nptl/lowlevellock.h b/sysdeps/unix/sysv/linux/m68k/nptl/lowlevellock.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/nptl/lowlevellock.h
+rename to sysdeps/unix/sysv/linux/m68k/nptl/lowlevellock.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/nptl/pt-vfork.S b/sysdeps/unix/sysv/linux/m68k/nptl/pt-vfork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/nptl/pt-vfork.S
+rename to sysdeps/unix/sysv/linux/m68k/nptl/pt-vfork.S
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/nptl/pthread_once.c b/sysdeps/unix/sysv/linux/m68k/nptl/pthread_once.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/nptl/pthread_once.c
+rename to sysdeps/unix/sysv/linux/m68k/nptl/pthread_once.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/nptl/sysdep-cancel.h b/sysdeps/unix/sysv/linux/m68k/nptl/sysdep-cancel.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/nptl/sysdep-cancel.h
+rename to sysdeps/unix/sysv/linux/m68k/nptl/sysdep-cancel.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/nptl/vfork.S b/sysdeps/unix/sysv/linux/m68k/nptl/vfork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/nptl/vfork.S
+rename to sysdeps/unix/sysv/linux/m68k/nptl/vfork.S
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/oldgetrlimit64.c b/sysdeps/unix/sysv/linux/m68k/oldgetrlimit64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/oldgetrlimit64.c
+rename to sysdeps/unix/sysv/linux/m68k/oldgetrlimit64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/putmsg.c b/sysdeps/unix/sysv/linux/m68k/putmsg.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/putmsg.c
+rename to sysdeps/unix/sysv/linux/m68k/putmsg.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/readdir64.c b/sysdeps/unix/sysv/linux/m68k/readdir64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/readdir64.c
+rename to sysdeps/unix/sysv/linux/m68k/readdir64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/readdir64_r.c b/sysdeps/unix/sysv/linux/m68k/readdir64_r.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/readdir64_r.c
+rename to sysdeps/unix/sysv/linux/m68k/readdir64_r.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/register-dump.h b/sysdeps/unix/sysv/linux/m68k/register-dump.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/register-dump.h
+rename to sysdeps/unix/sysv/linux/m68k/register-dump.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/scandir64.c b/sysdeps/unix/sysv/linux/m68k/scandir64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/scandir64.c
+rename to sysdeps/unix/sysv/linux/m68k/scandir64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/semctl.c b/sysdeps/unix/sysv/linux/m68k/semctl.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/semctl.c
+rename to sysdeps/unix/sysv/linux/m68k/semctl.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/semtimedop.S b/sysdeps/unix/sysv/linux/m68k/semtimedop.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/semtimedop.S
+rename to sysdeps/unix/sysv/linux/m68k/semtimedop.S
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/setegid.c b/sysdeps/unix/sysv/linux/m68k/setegid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/setegid.c
+rename to sysdeps/unix/sysv/linux/m68k/setegid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/seteuid.c b/sysdeps/unix/sysv/linux/m68k/seteuid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/seteuid.c
+rename to sysdeps/unix/sysv/linux/m68k/seteuid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/setfsgid.c b/sysdeps/unix/sysv/linux/m68k/setfsgid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/setfsgid.c
+rename to sysdeps/unix/sysv/linux/m68k/setfsgid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/setfsuid.c b/sysdeps/unix/sysv/linux/m68k/setfsuid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/setfsuid.c
+rename to sysdeps/unix/sysv/linux/m68k/setfsuid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/setgid.c b/sysdeps/unix/sysv/linux/m68k/setgid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/setgid.c
+rename to sysdeps/unix/sysv/linux/m68k/setgid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/setgroups.c b/sysdeps/unix/sysv/linux/m68k/setgroups.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/setgroups.c
+rename to sysdeps/unix/sysv/linux/m68k/setgroups.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/setregid.c b/sysdeps/unix/sysv/linux/m68k/setregid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/setregid.c
+rename to sysdeps/unix/sysv/linux/m68k/setregid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/setresgid.c b/sysdeps/unix/sysv/linux/m68k/setresgid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/setresgid.c
+rename to sysdeps/unix/sysv/linux/m68k/setresgid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/setresuid.c b/sysdeps/unix/sysv/linux/m68k/setresuid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/setresuid.c
+rename to sysdeps/unix/sysv/linux/m68k/setresuid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/setreuid.c b/sysdeps/unix/sysv/linux/m68k/setreuid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/setreuid.c
+rename to sysdeps/unix/sysv/linux/m68k/setreuid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/setrlimit.c b/sysdeps/unix/sysv/linux/m68k/setrlimit.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/setrlimit.c
+rename to sysdeps/unix/sysv/linux/m68k/setrlimit.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/setuid.c b/sysdeps/unix/sysv/linux/m68k/setuid.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/setuid.c
+rename to sysdeps/unix/sysv/linux/m68k/setuid.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/shmctl.c b/sysdeps/unix/sysv/linux/m68k/shmctl.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/shmctl.c
+rename to sysdeps/unix/sysv/linux/m68k/shmctl.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h b/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h
+rename to sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/socket.S b/sysdeps/unix/sysv/linux/m68k/socket.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/socket.S
+rename to sysdeps/unix/sysv/linux/m68k/socket.S
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/sys/procfs.h b/sysdeps/unix/sysv/linux/m68k/sys/procfs.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/sys/procfs.h
+rename to sysdeps/unix/sysv/linux/m68k/sys/procfs.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/sys/reg.h b/sysdeps/unix/sysv/linux/m68k/sys/reg.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/sys/reg.h
+rename to sysdeps/unix/sysv/linux/m68k/sys/reg.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h b/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
+rename to sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/sys/user.h b/sysdeps/unix/sysv/linux/m68k/sys/user.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/sys/user.h
+rename to sysdeps/unix/sysv/linux/m68k/sys/user.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/syscall.S b/sysdeps/unix/sysv/linux/m68k/syscall.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/syscall.S
+rename to sysdeps/unix/sysv/linux/m68k/syscall.S
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/syscalls.list b/sysdeps/unix/sysv/linux/m68k/syscalls.list
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/syscalls.list
+rename to sysdeps/unix/sysv/linux/m68k/syscalls.list
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/sysdep.S b/sysdeps/unix/sysv/linux/m68k/sysdep.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/sysdep.S
+rename to sysdeps/unix/sysv/linux/m68k/sysdep.S
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/sysdep.h b/sysdeps/unix/sysv/linux/m68k/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/sysdep.h
+rename to sysdeps/unix/sysv/linux/m68k/sysdep.h
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/versionsort64.c b/sysdeps/unix/sysv/linux/m68k/versionsort64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/versionsort64.c
+rename to sysdeps/unix/sysv/linux/m68k/versionsort64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/vfork.S b/sysdeps/unix/sysv/linux/m68k/vfork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/vfork.S
+rename to sysdeps/unix/sysv/linux/m68k/vfork.S
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/xstat.c b/sysdeps/unix/sysv/linux/m68k/xstat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/m68k/xstat.c
+rename to sysdeps/unix/sysv/linux/m68k/xstat.c
diff --git a/SOURCES/glibc-rh1505492-ports-move-mips.patch b/SOURCES/glibc-rh1505492-ports-move-mips.patch
new file mode 100644
index 0000000..c1643c6
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-ports-move-mips.patch
@@ -0,0 +1,1331 @@
+Recreation of this upstream commit, using the indicated comments:
+
+commit 2ad7600be76ada35c6e9f0baa75bc96252785268
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Mon Feb 10 23:30:21 2014 +0000
+
+    Move mips from ports to libc.
+
+    I've moved the MIPS port from ports to the main sysdeps hierarchy.
+    Beyond the README update, the move of the files was simply
+
+    git mv ports/sysdeps/mips sysdeps/mips
+    git mv ports/sysdeps/unix/mips sysdeps/unix/mips
+    git mv ports/sysdeps/unix/sysv/linux/mips sysdeps/unix/sysv/linux/mips
+
+diff --git a/ports/sysdeps/mips/Implies b/sysdeps/mips/Implies
+similarity index 100%
+rename from ports/sysdeps/mips/Implies
+rename to sysdeps/mips/Implies
+diff --git a/ports/sysdeps/mips/Makefile b/sysdeps/mips/Makefile
+similarity index 100%
+rename from ports/sysdeps/mips/Makefile
+rename to sysdeps/mips/Makefile
+diff --git a/ports/sysdeps/mips/__longjmp.c b/sysdeps/mips/__longjmp.c
+similarity index 100%
+rename from ports/sysdeps/mips/__longjmp.c
+rename to sysdeps/mips/__longjmp.c
+diff --git a/ports/sysdeps/mips/abort-instr.h b/sysdeps/mips/abort-instr.h
+similarity index 100%
+rename from ports/sysdeps/mips/abort-instr.h
+rename to sysdeps/mips/abort-instr.h
+diff --git a/ports/sysdeps/mips/add_n.S b/sysdeps/mips/add_n.S
+similarity index 100%
+rename from ports/sysdeps/mips/add_n.S
+rename to sysdeps/mips/add_n.S
+diff --git a/ports/sysdeps/mips/addmul_1.S b/sysdeps/mips/addmul_1.S
+similarity index 100%
+rename from ports/sysdeps/mips/addmul_1.S
+rename to sysdeps/mips/addmul_1.S
+diff --git a/ports/sysdeps/mips/backtrace.c b/sysdeps/mips/backtrace.c
+similarity index 100%
+rename from ports/sysdeps/mips/backtrace.c
+rename to sysdeps/mips/backtrace.c
+diff --git a/ports/sysdeps/mips/bits/atomic.h b/sysdeps/mips/bits/atomic.h
+similarity index 100%
+rename from ports/sysdeps/mips/bits/atomic.h
+rename to sysdeps/mips/bits/atomic.h
+diff --git a/ports/sysdeps/mips/bits/dlfcn.h b/sysdeps/mips/bits/dlfcn.h
+similarity index 100%
+rename from ports/sysdeps/mips/bits/dlfcn.h
+rename to sysdeps/mips/bits/dlfcn.h
+diff --git a/ports/sysdeps/mips/bits/endian.h b/sysdeps/mips/bits/endian.h
+similarity index 100%
+rename from ports/sysdeps/mips/bits/endian.h
+rename to sysdeps/mips/bits/endian.h
+diff --git a/ports/sysdeps/mips/bits/fenv.h b/sysdeps/mips/bits/fenv.h
+similarity index 100%
+rename from ports/sysdeps/mips/bits/fenv.h
+rename to sysdeps/mips/bits/fenv.h
+diff --git a/ports/sysdeps/mips/bits/ipctypes.h b/sysdeps/mips/bits/ipctypes.h
+similarity index 100%
+rename from ports/sysdeps/mips/bits/ipctypes.h
+rename to sysdeps/mips/bits/ipctypes.h
+diff --git a/ports/sysdeps/mips/bits/link.h b/sysdeps/mips/bits/link.h
+similarity index 100%
+rename from ports/sysdeps/mips/bits/link.h
+rename to sysdeps/mips/bits/link.h
+diff --git a/ports/sysdeps/mips/bits/linkmap.h b/sysdeps/mips/bits/linkmap.h
+similarity index 100%
+rename from ports/sysdeps/mips/bits/linkmap.h
+rename to sysdeps/mips/bits/linkmap.h
+diff --git a/ports/sysdeps/mips/bits/mathdef.h b/sysdeps/mips/bits/mathdef.h
+similarity index 100%
+rename from ports/sysdeps/mips/bits/mathdef.h
+rename to sysdeps/mips/bits/mathdef.h
+diff --git a/ports/sysdeps/mips/bits/nan.h b/sysdeps/mips/bits/nan.h
+similarity index 100%
+rename from ports/sysdeps/mips/bits/nan.h
+rename to sysdeps/mips/bits/nan.h
+diff --git a/ports/sysdeps/mips/bits/setjmp.h b/sysdeps/mips/bits/setjmp.h
+similarity index 100%
+rename from ports/sysdeps/mips/bits/setjmp.h
+rename to sysdeps/mips/bits/setjmp.h
+diff --git a/ports/sysdeps/mips/bits/wordsize.h b/sysdeps/mips/bits/wordsize.h
+similarity index 100%
+rename from ports/sysdeps/mips/bits/wordsize.h
+rename to sysdeps/mips/bits/wordsize.h
+diff --git a/ports/sysdeps/mips/bsd-_setjmp.S b/sysdeps/mips/bsd-_setjmp.S
+similarity index 100%
+rename from ports/sysdeps/mips/bsd-_setjmp.S
+rename to sysdeps/mips/bsd-_setjmp.S
+diff --git a/ports/sysdeps/mips/bsd-setjmp.S b/sysdeps/mips/bsd-setjmp.S
+similarity index 100%
+rename from ports/sysdeps/mips/bsd-setjmp.S
+rename to sysdeps/mips/bsd-setjmp.S
+diff --git a/ports/sysdeps/mips/configure b/sysdeps/mips/configure
+similarity index 100%
+rename from ports/sysdeps/mips/configure
+rename to sysdeps/mips/configure
+diff --git a/ports/sysdeps/mips/configure.in b/sysdeps/mips/configure.in
+similarity index 100%
+rename from ports/sysdeps/mips/configure.in
+rename to sysdeps/mips/configure.in
+diff --git a/ports/sysdeps/mips/dl-dtprocnum.h b/sysdeps/mips/dl-dtprocnum.h
+similarity index 100%
+rename from ports/sysdeps/mips/dl-dtprocnum.h
+rename to sysdeps/mips/dl-dtprocnum.h
+diff --git a/ports/sysdeps/mips/dl-lookup.c b/sysdeps/mips/dl-lookup.c
+similarity index 100%
+rename from ports/sysdeps/mips/dl-lookup.c
+rename to sysdeps/mips/dl-lookup.c
+diff --git a/ports/sysdeps/mips/dl-machine.h b/sysdeps/mips/dl-machine.h
+similarity index 100%
+rename from ports/sysdeps/mips/dl-machine.h
+rename to sysdeps/mips/dl-machine.h
+diff --git a/ports/sysdeps/mips/dl-procinfo.c b/sysdeps/mips/dl-procinfo.c
+similarity index 100%
+rename from ports/sysdeps/mips/dl-procinfo.c
+rename to sysdeps/mips/dl-procinfo.c
+diff --git a/ports/sysdeps/mips/dl-procinfo.h b/sysdeps/mips/dl-procinfo.h
+similarity index 100%
+rename from ports/sysdeps/mips/dl-procinfo.h
+rename to sysdeps/mips/dl-procinfo.h
+diff --git a/ports/sysdeps/mips/dl-tls.h b/sysdeps/mips/dl-tls.h
+similarity index 100%
+rename from ports/sysdeps/mips/dl-tls.h
+rename to sysdeps/mips/dl-tls.h
+diff --git a/ports/sysdeps/mips/dl-trampoline.c b/sysdeps/mips/dl-trampoline.c
+similarity index 100%
+rename from ports/sysdeps/mips/dl-trampoline.c
+rename to sysdeps/mips/dl-trampoline.c
+diff --git a/ports/sysdeps/mips/fpregdef.h b/sysdeps/mips/fpregdef.h
+similarity index 100%
+rename from ports/sysdeps/mips/fpregdef.h
+rename to sysdeps/mips/fpregdef.h
+diff --git a/ports/sysdeps/mips/fpu/e_sqrt.c b/sysdeps/mips/fpu/e_sqrt.c
+similarity index 100%
+rename from ports/sysdeps/mips/fpu/e_sqrt.c
+rename to sysdeps/mips/fpu/e_sqrt.c
+diff --git a/ports/sysdeps/mips/fpu/e_sqrtf.c b/sysdeps/mips/fpu/e_sqrtf.c
+similarity index 100%
+rename from ports/sysdeps/mips/fpu/e_sqrtf.c
+rename to sysdeps/mips/fpu/e_sqrtf.c
+diff --git a/ports/sysdeps/mips/fpu/fclrexcpt.c b/sysdeps/mips/fpu/fclrexcpt.c
+similarity index 100%
+rename from ports/sysdeps/mips/fpu/fclrexcpt.c
+rename to sysdeps/mips/fpu/fclrexcpt.c
+diff --git a/ports/sysdeps/mips/fpu/fedisblxcpt.c b/sysdeps/mips/fpu/fedisblxcpt.c
+similarity index 100%
+rename from ports/sysdeps/mips/fpu/fedisblxcpt.c
+rename to sysdeps/mips/fpu/fedisblxcpt.c
+diff --git a/ports/sysdeps/mips/fpu/feenablxcpt.c b/sysdeps/mips/fpu/feenablxcpt.c
+similarity index 100%
+rename from ports/sysdeps/mips/fpu/feenablxcpt.c
+rename to sysdeps/mips/fpu/feenablxcpt.c
+diff --git a/ports/sysdeps/mips/fpu/fegetenv.c b/sysdeps/mips/fpu/fegetenv.c
+similarity index 100%
+rename from ports/sysdeps/mips/fpu/fegetenv.c
+rename to sysdeps/mips/fpu/fegetenv.c
+diff --git a/ports/sysdeps/mips/fpu/fegetexcept.c b/sysdeps/mips/fpu/fegetexcept.c
+similarity index 100%
+rename from ports/sysdeps/mips/fpu/fegetexcept.c
+rename to sysdeps/mips/fpu/fegetexcept.c
+diff --git a/ports/sysdeps/mips/fpu/fegetround.c b/sysdeps/mips/fpu/fegetround.c
+similarity index 100%
+rename from ports/sysdeps/mips/fpu/fegetround.c
+rename to sysdeps/mips/fpu/fegetround.c
+diff --git a/ports/sysdeps/mips/fpu/feholdexcpt.c b/sysdeps/mips/fpu/feholdexcpt.c
+similarity index 100%
+rename from ports/sysdeps/mips/fpu/feholdexcpt.c
+rename to sysdeps/mips/fpu/feholdexcpt.c
+diff --git a/ports/sysdeps/mips/fpu/fenv_libc.h b/sysdeps/mips/fpu/fenv_libc.h
+similarity index 100%
+rename from ports/sysdeps/mips/fpu/fenv_libc.h
+rename to sysdeps/mips/fpu/fenv_libc.h
+diff --git a/ports/sysdeps/mips/fpu/fesetenv.c b/sysdeps/mips/fpu/fesetenv.c
+similarity index 100%
+rename from ports/sysdeps/mips/fpu/fesetenv.c
+rename to sysdeps/mips/fpu/fesetenv.c
+diff --git a/ports/sysdeps/mips/fpu/fesetround.c b/sysdeps/mips/fpu/fesetround.c
+similarity index 100%
+rename from ports/sysdeps/mips/fpu/fesetround.c
+rename to sysdeps/mips/fpu/fesetround.c
+diff --git a/ports/sysdeps/mips/fpu/feupdateenv.c b/sysdeps/mips/fpu/feupdateenv.c
+similarity index 100%
+rename from ports/sysdeps/mips/fpu/feupdateenv.c
+rename to sysdeps/mips/fpu/feupdateenv.c
+diff --git a/ports/sysdeps/mips/fpu/fgetexcptflg.c b/sysdeps/mips/fpu/fgetexcptflg.c
+similarity index 100%
+rename from ports/sysdeps/mips/fpu/fgetexcptflg.c
+rename to sysdeps/mips/fpu/fgetexcptflg.c
+diff --git a/ports/sysdeps/mips/fpu/fraiseexcpt.c b/sysdeps/mips/fpu/fraiseexcpt.c
+similarity index 100%
+rename from ports/sysdeps/mips/fpu/fraiseexcpt.c
+rename to sysdeps/mips/fpu/fraiseexcpt.c
+diff --git a/ports/sysdeps/mips/fpu/fsetexcptflg.c b/sysdeps/mips/fpu/fsetexcptflg.c
+similarity index 100%
+rename from ports/sysdeps/mips/fpu/fsetexcptflg.c
+rename to sysdeps/mips/fpu/fsetexcptflg.c
+diff --git a/ports/sysdeps/mips/fpu/ftestexcept.c b/sysdeps/mips/fpu/ftestexcept.c
+similarity index 100%
+rename from ports/sysdeps/mips/fpu/ftestexcept.c
+rename to sysdeps/mips/fpu/ftestexcept.c
+diff --git a/ports/sysdeps/mips/fpu_control.h b/sysdeps/mips/fpu_control.h
+similarity index 100%
+rename from ports/sysdeps/mips/fpu_control.h
+rename to sysdeps/mips/fpu_control.h
+diff --git a/ports/sysdeps/mips/gccframe.h b/sysdeps/mips/gccframe.h
+similarity index 100%
+rename from ports/sysdeps/mips/gccframe.h
+rename to sysdeps/mips/gccframe.h
+diff --git a/ports/sysdeps/mips/ieee754/ieee754.h b/sysdeps/mips/ieee754/ieee754.h
+similarity index 100%
+rename from ports/sysdeps/mips/ieee754/ieee754.h
+rename to sysdeps/mips/ieee754/ieee754.h
+diff --git a/ports/sysdeps/mips/jmpbuf-unwind.h b/sysdeps/mips/jmpbuf-unwind.h
+similarity index 100%
+rename from ports/sysdeps/mips/jmpbuf-unwind.h
+rename to sysdeps/mips/jmpbuf-unwind.h
+diff --git a/ports/sysdeps/mips/ldsodefs.h b/sysdeps/mips/ldsodefs.h
+similarity index 100%
+rename from ports/sysdeps/mips/ldsodefs.h
+rename to sysdeps/mips/ldsodefs.h
+diff --git a/ports/sysdeps/mips/libc-tls.c b/sysdeps/mips/libc-tls.c
+similarity index 100%
+rename from ports/sysdeps/mips/libc-tls.c
+rename to sysdeps/mips/libc-tls.c
+diff --git a/ports/sysdeps/mips/lshift.S b/sysdeps/mips/lshift.S
+similarity index 100%
+rename from ports/sysdeps/mips/lshift.S
+rename to sysdeps/mips/lshift.S
+diff --git a/ports/sysdeps/mips/machine-gmon.h b/sysdeps/mips/machine-gmon.h
+similarity index 100%
+rename from ports/sysdeps/mips/machine-gmon.h
+rename to sysdeps/mips/machine-gmon.h
+diff --git a/ports/sysdeps/mips/memcpy.S b/sysdeps/mips/memcpy.S
+similarity index 100%
+rename from ports/sysdeps/mips/memcpy.S
+rename to sysdeps/mips/memcpy.S
+diff --git a/ports/sysdeps/mips/memmove.c b/sysdeps/mips/memmove.c
+similarity index 100%
+rename from ports/sysdeps/mips/memmove.c
+rename to sysdeps/mips/memmove.c
+diff --git a/ports/sysdeps/mips/memset.S b/sysdeps/mips/memset.S
+similarity index 100%
+rename from ports/sysdeps/mips/memset.S
+rename to sysdeps/mips/memset.S
+diff --git a/ports/sysdeps/mips/memusage.h b/sysdeps/mips/memusage.h
+similarity index 100%
+rename from ports/sysdeps/mips/memusage.h
+rename to sysdeps/mips/memusage.h
+diff --git a/ports/sysdeps/mips/mips32/Implies b/sysdeps/mips/mips32/Implies
+similarity index 100%
+rename from ports/sysdeps/mips/mips32/Implies
+rename to sysdeps/mips/mips32/Implies
+diff --git a/ports/sysdeps/mips/mips32/Makefile b/sysdeps/mips/mips32/Makefile
+similarity index 100%
+rename from ports/sysdeps/mips/mips32/Makefile
+rename to sysdeps/mips/mips32/Makefile
+diff --git a/ports/sysdeps/mips/mips32/crti.S b/sysdeps/mips/mips32/crti.S
+similarity index 100%
+rename from ports/sysdeps/mips/mips32/crti.S
+rename to sysdeps/mips/mips32/crti.S
+diff --git a/ports/sysdeps/mips/mips32/crtn.S b/sysdeps/mips/mips32/crtn.S
+similarity index 100%
+rename from ports/sysdeps/mips/mips32/crtn.S
+rename to sysdeps/mips/mips32/crtn.S
+diff --git a/ports/sysdeps/mips/mips32/libm-test-ulps b/sysdeps/mips/mips32/libm-test-ulps
+similarity index 100%
+rename from ports/sysdeps/mips/mips32/libm-test-ulps
+rename to sysdeps/mips/mips32/libm-test-ulps
+diff --git a/ports/sysdeps/mips/mips64/Implies b/sysdeps/mips/mips64/Implies
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/Implies
+rename to sysdeps/mips/mips64/Implies
+diff --git a/ports/sysdeps/mips/mips64/Versions b/sysdeps/mips/mips64/Versions
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/Versions
+rename to sysdeps/mips/mips64/Versions
+diff --git a/ports/sysdeps/mips/mips64/__longjmp.c b/sysdeps/mips/mips64/__longjmp.c
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/__longjmp.c
+rename to sysdeps/mips/mips64/__longjmp.c
+diff --git a/ports/sysdeps/mips/mips64/add_n.S b/sysdeps/mips/mips64/add_n.S
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/add_n.S
+rename to sysdeps/mips/mips64/add_n.S
+diff --git a/ports/sysdeps/mips/mips64/addmul_1.S b/sysdeps/mips/mips64/addmul_1.S
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/addmul_1.S
+rename to sysdeps/mips/mips64/addmul_1.S
+diff --git a/ports/sysdeps/mips/mips64/bsd-_setjmp.S b/sysdeps/mips/mips64/bsd-_setjmp.S
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/bsd-_setjmp.S
+rename to sysdeps/mips/mips64/bsd-_setjmp.S
+diff --git a/ports/sysdeps/mips/mips64/bsd-setjmp.S b/sysdeps/mips/mips64/bsd-setjmp.S
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/bsd-setjmp.S
+rename to sysdeps/mips/mips64/bsd-setjmp.S
+diff --git a/ports/sysdeps/mips/mips64/gmp-mparam.h b/sysdeps/mips/mips64/gmp-mparam.h
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/gmp-mparam.h
+rename to sysdeps/mips/mips64/gmp-mparam.h
+diff --git a/ports/sysdeps/mips/mips64/libm-test-ulps b/sysdeps/mips/mips64/libm-test-ulps
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/libm-test-ulps
+rename to sysdeps/mips/mips64/libm-test-ulps
+diff --git a/ports/sysdeps/mips/mips64/lshift.S b/sysdeps/mips/mips64/lshift.S
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/lshift.S
+rename to sysdeps/mips/mips64/lshift.S
+diff --git a/ports/sysdeps/mips/mips64/memset.S b/sysdeps/mips/mips64/memset.S
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/memset.S
+rename to sysdeps/mips/mips64/memset.S
+diff --git a/ports/sysdeps/mips/mips64/mul_1.S b/sysdeps/mips/mips64/mul_1.S
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/mul_1.S
+rename to sysdeps/mips/mips64/mul_1.S
+diff --git a/ports/sysdeps/mips/mips64/n32/Implies b/sysdeps/mips/mips64/n32/Implies
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/n32/Implies
+rename to sysdeps/mips/mips64/n32/Implies
+diff --git a/ports/sysdeps/mips/mips64/n32/Makefile b/sysdeps/mips/mips64/n32/Makefile
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/n32/Makefile
+rename to sysdeps/mips/mips64/n32/Makefile
+diff --git a/ports/sysdeps/mips/mips64/n32/_itoa.h b/sysdeps/mips/mips64/n32/_itoa.h
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/n32/_itoa.h
+rename to sysdeps/mips/mips64/n32/_itoa.h
+diff --git a/ports/sysdeps/mips/mips64/n32/crti.S b/sysdeps/mips/mips64/n32/crti.S
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/n32/crti.S
+rename to sysdeps/mips/mips64/n32/crti.S
+diff --git a/ports/sysdeps/mips/mips64/n32/crtn.S b/sysdeps/mips/mips64/n32/crtn.S
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/n32/crtn.S
+rename to sysdeps/mips/mips64/n32/crtn.S
+diff --git a/ports/sysdeps/mips/mips64/n32/s_fma.c b/sysdeps/mips/mips64/n32/s_fma.c
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/n32/s_fma.c
+rename to sysdeps/mips/mips64/n32/s_fma.c
+diff --git a/ports/sysdeps/mips/mips64/n64/Implies b/sysdeps/mips/mips64/n64/Implies
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/n64/Implies
+rename to sysdeps/mips/mips64/n64/Implies
+diff --git a/ports/sysdeps/mips/mips64/n64/Makefile b/sysdeps/mips/mips64/n64/Makefile
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/n64/Makefile
+rename to sysdeps/mips/mips64/n64/Makefile
+diff --git a/ports/sysdeps/mips/mips64/n64/crti.S b/sysdeps/mips/mips64/n64/crti.S
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/n64/crti.S
+rename to sysdeps/mips/mips64/n64/crti.S
+diff --git a/ports/sysdeps/mips/mips64/n64/crtn.S b/sysdeps/mips/mips64/n64/crtn.S
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/n64/crtn.S
+rename to sysdeps/mips/mips64/n64/crtn.S
+diff --git a/ports/sysdeps/mips/mips64/n64/s_fma.c b/sysdeps/mips/mips64/n64/s_fma.c
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/n64/s_fma.c
+rename to sysdeps/mips/mips64/n64/s_fma.c
+diff --git a/ports/sysdeps/mips/mips64/rshift.S b/sysdeps/mips/mips64/rshift.S
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/rshift.S
+rename to sysdeps/mips/mips64/rshift.S
+diff --git a/ports/sysdeps/mips/mips64/setjmp.S b/sysdeps/mips/mips64/setjmp.S
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/setjmp.S
+rename to sysdeps/mips/mips64/setjmp.S
+diff --git a/ports/sysdeps/mips/mips64/setjmp_aux.c b/sysdeps/mips/mips64/setjmp_aux.c
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/setjmp_aux.c
+rename to sysdeps/mips/mips64/setjmp_aux.c
+diff --git a/ports/sysdeps/mips/mips64/soft-fp/Makefile b/sysdeps/mips/mips64/soft-fp/Makefile
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/soft-fp/Makefile
+rename to sysdeps/mips/mips64/soft-fp/Makefile
+diff --git a/ports/sysdeps/mips/mips64/soft-fp/e_sqrtl.c b/sysdeps/mips/mips64/soft-fp/e_sqrtl.c
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/soft-fp/e_sqrtl.c
+rename to sysdeps/mips/mips64/soft-fp/e_sqrtl.c
+diff --git a/ports/sysdeps/mips/mips64/soft-fp/sfp-machine.h b/sysdeps/mips/mips64/soft-fp/sfp-machine.h
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/soft-fp/sfp-machine.h
+rename to sysdeps/mips/mips64/soft-fp/sfp-machine.h
+diff --git a/ports/sysdeps/mips/mips64/sub_n.S b/sysdeps/mips/mips64/sub_n.S
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/sub_n.S
+rename to sysdeps/mips/mips64/sub_n.S
+diff --git a/ports/sysdeps/mips/mips64/submul_1.S b/sysdeps/mips/mips64/submul_1.S
+similarity index 100%
+rename from ports/sysdeps/mips/mips64/submul_1.S
+rename to sysdeps/mips/mips64/submul_1.S
+diff --git a/ports/sysdeps/mips/mul_1.S b/sysdeps/mips/mul_1.S
+similarity index 100%
+rename from ports/sysdeps/mips/mul_1.S
+rename to sysdeps/mips/mul_1.S
+diff --git a/ports/sysdeps/mips/nptl/Makefile b/sysdeps/mips/nptl/Makefile
+similarity index 100%
+rename from ports/sysdeps/mips/nptl/Makefile
+rename to sysdeps/mips/nptl/Makefile
+diff --git a/ports/sysdeps/mips/nptl/nptl-sysdep.S b/sysdeps/mips/nptl/nptl-sysdep.S
+similarity index 100%
+rename from ports/sysdeps/mips/nptl/nptl-sysdep.S
+rename to sysdeps/mips/nptl/nptl-sysdep.S
+diff --git a/ports/sysdeps/mips/nptl/pthread_spin_lock.c b/sysdeps/mips/nptl/pthread_spin_lock.c
+similarity index 100%
+rename from ports/sysdeps/mips/nptl/pthread_spin_lock.c
+rename to sysdeps/mips/nptl/pthread_spin_lock.c
+diff --git a/ports/sysdeps/mips/nptl/pthreaddef.h b/sysdeps/mips/nptl/pthreaddef.h
+similarity index 100%
+rename from ports/sysdeps/mips/nptl/pthreaddef.h
+rename to sysdeps/mips/nptl/pthreaddef.h
+diff --git a/ports/sysdeps/mips/nptl/shlib-versions b/sysdeps/mips/nptl/shlib-versions
+similarity index 100%
+rename from ports/sysdeps/mips/nptl/shlib-versions
+rename to sysdeps/mips/nptl/shlib-versions
+diff --git a/ports/sysdeps/mips/nptl/tcb-offsets.sym b/sysdeps/mips/nptl/tcb-offsets.sym
+similarity index 100%
+rename from ports/sysdeps/mips/nptl/tcb-offsets.sym
+rename to sysdeps/mips/nptl/tcb-offsets.sym
+diff --git a/ports/sysdeps/mips/nptl/tls.h b/sysdeps/mips/nptl/tls.h
+similarity index 100%
+rename from ports/sysdeps/mips/nptl/tls.h
+rename to sysdeps/mips/nptl/tls.h
+diff --git a/ports/sysdeps/mips/preconfigure b/sysdeps/mips/preconfigure
+similarity index 100%
+rename from ports/sysdeps/mips/preconfigure
+rename to sysdeps/mips/preconfigure
+diff --git a/ports/sysdeps/mips/regdef.h b/sysdeps/mips/regdef.h
+similarity index 100%
+rename from ports/sysdeps/mips/regdef.h
+rename to sysdeps/mips/regdef.h
+diff --git a/ports/sysdeps/mips/rshift.S b/sysdeps/mips/rshift.S
+similarity index 100%
+rename from ports/sysdeps/mips/rshift.S
+rename to sysdeps/mips/rshift.S
+diff --git a/ports/sysdeps/mips/setjmp.S b/sysdeps/mips/setjmp.S
+similarity index 100%
+rename from ports/sysdeps/mips/setjmp.S
+rename to sysdeps/mips/setjmp.S
+diff --git a/ports/sysdeps/mips/setjmp_aux.c b/sysdeps/mips/setjmp_aux.c
+similarity index 100%
+rename from ports/sysdeps/mips/setjmp_aux.c
+rename to sysdeps/mips/setjmp_aux.c
+diff --git a/ports/sysdeps/mips/sgidefs.h b/sysdeps/mips/sgidefs.h
+similarity index 100%
+rename from ports/sysdeps/mips/sgidefs.h
+rename to sysdeps/mips/sgidefs.h
+diff --git a/ports/sysdeps/mips/shlib-versions b/sysdeps/mips/shlib-versions
+similarity index 100%
+rename from ports/sysdeps/mips/shlib-versions
+rename to sysdeps/mips/shlib-versions
+diff --git a/ports/sysdeps/mips/soft-fp/sfp-machine.h b/sysdeps/mips/soft-fp/sfp-machine.h
+similarity index 100%
+rename from ports/sysdeps/mips/soft-fp/sfp-machine.h
+rename to sysdeps/mips/soft-fp/sfp-machine.h
+diff --git a/ports/sysdeps/mips/sotruss-lib.c b/sysdeps/mips/sotruss-lib.c
+similarity index 100%
+rename from ports/sysdeps/mips/sotruss-lib.c
+rename to sysdeps/mips/sotruss-lib.c
+diff --git a/ports/sysdeps/mips/stackinfo.h b/sysdeps/mips/stackinfo.h
+similarity index 100%
+rename from ports/sysdeps/mips/stackinfo.h
+rename to sysdeps/mips/stackinfo.h
+diff --git a/ports/sysdeps/mips/start.S b/sysdeps/mips/start.S
+similarity index 100%
+rename from ports/sysdeps/mips/start.S
+rename to sysdeps/mips/start.S
+diff --git a/ports/sysdeps/mips/sub_n.S b/sysdeps/mips/sub_n.S
+similarity index 100%
+rename from ports/sysdeps/mips/sub_n.S
+rename to sysdeps/mips/sub_n.S
+diff --git a/ports/sysdeps/mips/submul_1.S b/sysdeps/mips/submul_1.S
+similarity index 100%
+rename from ports/sysdeps/mips/submul_1.S
+rename to sysdeps/mips/submul_1.S
+diff --git a/ports/sysdeps/mips/sys/asm.h b/sysdeps/mips/sys/asm.h
+similarity index 100%
+rename from ports/sysdeps/mips/sys/asm.h
+rename to sysdeps/mips/sys/asm.h
+diff --git a/ports/sysdeps/mips/sys/fpregdef.h b/sysdeps/mips/sys/fpregdef.h
+similarity index 100%
+rename from ports/sysdeps/mips/sys/fpregdef.h
+rename to sysdeps/mips/sys/fpregdef.h
+diff --git a/ports/sysdeps/mips/sys/regdef.h b/sysdeps/mips/sys/regdef.h
+similarity index 100%
+rename from ports/sysdeps/mips/sys/regdef.h
+rename to sysdeps/mips/sys/regdef.h
+diff --git a/ports/sysdeps/mips/sys/tas.h b/sysdeps/mips/sys/tas.h
+similarity index 100%
+rename from ports/sysdeps/mips/sys/tas.h
+rename to sysdeps/mips/sys/tas.h
+diff --git a/ports/sysdeps/mips/sys/ucontext.h b/sysdeps/mips/sys/ucontext.h
+similarity index 100%
+rename from ports/sysdeps/mips/sys/ucontext.h
+rename to sysdeps/mips/sys/ucontext.h
+diff --git a/ports/sysdeps/mips/tininess.h b/sysdeps/mips/tininess.h
+similarity index 100%
+rename from ports/sysdeps/mips/tininess.h
+rename to sysdeps/mips/tininess.h
+diff --git a/ports/sysdeps/mips/tls-macros.h b/sysdeps/mips/tls-macros.h
+similarity index 100%
+rename from ports/sysdeps/mips/tls-macros.h
+rename to sysdeps/mips/tls-macros.h
+diff --git a/ports/sysdeps/mips/tst-audit.h b/sysdeps/mips/tst-audit.h
+similarity index 100%
+rename from ports/sysdeps/mips/tst-audit.h
+rename to sysdeps/mips/tst-audit.h
+diff --git a/ports/sysdeps/unix/mips/entry.h b/sysdeps/unix/mips/entry.h
+similarity index 100%
+rename from ports/sysdeps/unix/mips/entry.h
+rename to sysdeps/unix/mips/entry.h
+diff --git a/ports/sysdeps/unix/mips/mips32/sysdep.h b/sysdeps/unix/mips/mips32/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/unix/mips/mips32/sysdep.h
+rename to sysdeps/unix/mips/mips32/sysdep.h
+diff --git a/ports/sysdeps/unix/mips/mips64/n32/sysdep.h b/sysdeps/unix/mips/mips64/n32/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/unix/mips/mips64/n32/sysdep.h
+rename to sysdeps/unix/mips/mips64/n32/sysdep.h
+diff --git a/ports/sysdeps/unix/mips/mips64/n64/sysdep.h b/sysdeps/unix/mips/mips64/n64/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/unix/mips/mips64/n64/sysdep.h
+rename to sysdeps/unix/mips/mips64/n64/sysdep.h
+diff --git a/ports/sysdeps/unix/mips/pipe.S b/sysdeps/unix/mips/pipe.S
+similarity index 100%
+rename from ports/sysdeps/unix/mips/pipe.S
+rename to sysdeps/unix/mips/pipe.S
+diff --git a/ports/sysdeps/unix/mips/rt-sysdep.S b/sysdeps/unix/mips/rt-sysdep.S
+similarity index 100%
+rename from ports/sysdeps/unix/mips/rt-sysdep.S
+rename to sysdeps/unix/mips/rt-sysdep.S
+diff --git a/ports/sysdeps/unix/mips/sysdep.S b/sysdeps/unix/mips/sysdep.S
+similarity index 100%
+rename from ports/sysdeps/unix/mips/sysdep.S
+rename to sysdeps/unix/mips/sysdep.S
+diff --git a/ports/sysdeps/unix/mips/sysdep.h b/sysdeps/unix/mips/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/unix/mips/sysdep.h
+rename to sysdeps/unix/mips/sysdep.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/Makefile b/sysdeps/unix/sysv/linux/mips/Makefile
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/Makefile
+rename to sysdeps/unix/sysv/linux/mips/Makefile
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/Versions b/sysdeps/unix/sysv/linux/mips/Versions
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/Versions
+rename to sysdeps/unix/sysv/linux/mips/Versions
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/____longjmp_chk.c b/sysdeps/unix/sysv/linux/mips/____longjmp_chk.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/____longjmp_chk.c
+rename to sysdeps/unix/sysv/linux/mips/____longjmp_chk.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/_test_and_set.c b/sysdeps/unix/sysv/linux/mips/_test_and_set.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/_test_and_set.c
+rename to sysdeps/unix/sysv/linux/mips/_test_and_set.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/endian.h b/sysdeps/unix/sysv/linux/mips/bits/endian.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/endian.h
+rename to sysdeps/unix/sysv/linux/mips/bits/endian.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/epoll.h b/sysdeps/unix/sysv/linux/mips/bits/epoll.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/epoll.h
+rename to sysdeps/unix/sysv/linux/mips/bits/epoll.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/errno.h b/sysdeps/unix/sysv/linux/mips/bits/errno.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/errno.h
+rename to sysdeps/unix/sysv/linux/mips/bits/errno.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/eventfd.h b/sysdeps/unix/sysv/linux/mips/bits/eventfd.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/eventfd.h
+rename to sysdeps/unix/sysv/linux/mips/bits/eventfd.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h b/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
+rename to sysdeps/unix/sysv/linux/mips/bits/fcntl.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/inotify.h b/sysdeps/unix/sysv/linux/mips/bits/inotify.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/inotify.h
+rename to sysdeps/unix/sysv/linux/mips/bits/inotify.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h b/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h
+rename to sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/ipc.h b/sysdeps/unix/sysv/linux/mips/bits/ipc.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/ipc.h
+rename to sysdeps/unix/sysv/linux/mips/bits/ipc.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/mman.h b/sysdeps/unix/sysv/linux/mips/bits/mman.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/mman.h
+rename to sysdeps/unix/sysv/linux/mips/bits/mman.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/msq.h b/sysdeps/unix/sysv/linux/mips/bits/msq.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/msq.h
+rename to sysdeps/unix/sysv/linux/mips/bits/msq.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/poll.h b/sysdeps/unix/sysv/linux/mips/bits/poll.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/poll.h
+rename to sysdeps/unix/sysv/linux/mips/bits/poll.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/resource.h b/sysdeps/unix/sysv/linux/mips/bits/resource.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/resource.h
+rename to sysdeps/unix/sysv/linux/mips/bits/resource.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/sem.h b/sysdeps/unix/sysv/linux/mips/bits/sem.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/sem.h
+rename to sysdeps/unix/sysv/linux/mips/bits/sem.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/shm.h b/sysdeps/unix/sysv/linux/mips/bits/shm.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/shm.h
+rename to sysdeps/unix/sysv/linux/mips/bits/shm.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/sigaction.h b/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/sigaction.h
+rename to sysdeps/unix/sysv/linux/mips/bits/sigaction.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h b/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
+rename to sysdeps/unix/sysv/linux/mips/bits/sigcontext.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/siginfo.h b/sysdeps/unix/sysv/linux/mips/bits/siginfo.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/siginfo.h
+rename to sysdeps/unix/sysv/linux/mips/bits/siginfo.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/signalfd.h b/sysdeps/unix/sysv/linux/mips/bits/signalfd.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/signalfd.h
+rename to sysdeps/unix/sysv/linux/mips/bits/signalfd.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/signum.h b/sysdeps/unix/sysv/linux/mips/bits/signum.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/signum.h
+rename to sysdeps/unix/sysv/linux/mips/bits/signum.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/sigstack.h b/sysdeps/unix/sysv/linux/mips/bits/sigstack.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/sigstack.h
+rename to sysdeps/unix/sysv/linux/mips/bits/sigstack.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/socket_type.h b/sysdeps/unix/sysv/linux/mips/bits/socket_type.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/socket_type.h
+rename to sysdeps/unix/sysv/linux/mips/bits/socket_type.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/stat.h b/sysdeps/unix/sysv/linux/mips/bits/stat.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/stat.h
+rename to sysdeps/unix/sysv/linux/mips/bits/stat.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/statfs.h b/sysdeps/unix/sysv/linux/mips/bits/statfs.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/statfs.h
+rename to sysdeps/unix/sysv/linux/mips/bits/statfs.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/termios.h b/sysdeps/unix/sysv/linux/mips/bits/termios.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/termios.h
+rename to sysdeps/unix/sysv/linux/mips/bits/termios.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/timerfd.h b/sysdeps/unix/sysv/linux/mips/bits/timerfd.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/bits/timerfd.h
+rename to sysdeps/unix/sysv/linux/mips/bits/timerfd.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/brk.c b/sysdeps/unix/sysv/linux/mips/brk.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/brk.c
+rename to sysdeps/unix/sysv/linux/mips/brk.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/clone.S b/sysdeps/unix/sysv/linux/mips/clone.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/clone.S
+rename to sysdeps/unix/sysv/linux/mips/clone.S
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/configure b/sysdeps/unix/sysv/linux/mips/configure
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/configure
+rename to sysdeps/unix/sysv/linux/mips/configure
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/configure.in b/sysdeps/unix/sysv/linux/mips/configure.in
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/configure.in
+rename to sysdeps/unix/sysv/linux/mips/configure.in
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/dl-cache.h b/sysdeps/unix/sysv/linux/mips/dl-cache.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/dl-cache.h
+rename to sysdeps/unix/sysv/linux/mips/dl-cache.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/dl-static.c b/sysdeps/unix/sysv/linux/mips/dl-static.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/dl-static.c
+rename to sysdeps/unix/sysv/linux/mips/dl-static.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/getcontext.S b/sysdeps/unix/sysv/linux/mips/getcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/getcontext.S
+rename to sysdeps/unix/sysv/linux/mips/getcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/getmsg.c b/sysdeps/unix/sysv/linux/mips/getmsg.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/getmsg.c
+rename to sysdeps/unix/sysv/linux/mips/getmsg.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/getsysstats.c b/sysdeps/unix/sysv/linux/mips/getsysstats.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/getsysstats.c
+rename to sysdeps/unix/sysv/linux/mips/getsysstats.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/ipc_priv.h b/sysdeps/unix/sysv/linux/mips/ipc_priv.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/ipc_priv.h
+rename to sysdeps/unix/sysv/linux/mips/ipc_priv.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/kernel-features.h b/sysdeps/unix/sysv/linux/mips/kernel-features.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/kernel-features.h
+rename to sysdeps/unix/sysv/linux/mips/kernel-features.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h b/sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h
+rename to sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/kernel_sigaction.h b/sysdeps/unix/sysv/linux/mips/kernel_sigaction.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/kernel_sigaction.h
+rename to sysdeps/unix/sysv/linux/mips/kernel_sigaction.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/kernel_stat.h b/sysdeps/unix/sysv/linux/mips/kernel_stat.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/kernel_stat.h
+rename to sysdeps/unix/sysv/linux/mips/kernel_stat.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/kernel_termios.h b/sysdeps/unix/sysv/linux/mips/kernel_termios.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/kernel_termios.h
+rename to sysdeps/unix/sysv/linux/mips/kernel_termios.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/ldsodefs.h b/sysdeps/unix/sysv/linux/mips/ldsodefs.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/ldsodefs.h
+rename to sysdeps/unix/sysv/linux/mips/ldsodefs.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/libc-abis b/sysdeps/unix/sysv/linux/mips/libc-abis
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/libc-abis
+rename to sysdeps/unix/sysv/linux/mips/libc-abis
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/makecontext.S b/sysdeps/unix/sysv/linux/mips/makecontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/makecontext.S
+rename to sysdeps/unix/sysv/linux/mips/makecontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/accept4.c b/sysdeps/unix/sysv/linux/mips/mips32/accept4.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/accept4.c
+rename to sysdeps/unix/sysv/linux/mips/mips32/accept4.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/fcntl.c b/sysdeps/unix/sysv/linux/mips/mips32/fcntl.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/fcntl.c
+rename to sysdeps/unix/sysv/linux/mips/mips32/fcntl.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/ftruncate64.c b/sysdeps/unix/sysv/linux/mips/mips32/ftruncate64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/ftruncate64.c
+rename to sysdeps/unix/sysv/linux/mips/mips32/ftruncate64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/fxstatat.c b/sysdeps/unix/sysv/linux/mips/mips32/fxstatat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/fxstatat.c
+rename to sysdeps/unix/sysv/linux/mips/mips32/fxstatat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/internal_accept4.S b/sysdeps/unix/sysv/linux/mips/mips32/internal_accept4.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/internal_accept4.S
+rename to sysdeps/unix/sysv/linux/mips/mips32/internal_accept4.S
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/internal_recvmmsg.S b/sysdeps/unix/sysv/linux/mips/mips32/internal_recvmmsg.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/internal_recvmmsg.S
+rename to sysdeps/unix/sysv/linux/mips/mips32/internal_recvmmsg.S
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/internal_sendmmsg.S b/sysdeps/unix/sysv/linux/mips/mips32/internal_sendmmsg.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/internal_sendmmsg.S
+rename to sysdeps/unix/sysv/linux/mips/mips32/internal_sendmmsg.S
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/lockf64.c b/sysdeps/unix/sysv/linux/mips/mips32/lockf64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/lockf64.c
+rename to sysdeps/unix/sysv/linux/mips/mips32/lockf64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/c++-types.data b/sysdeps/unix/sysv/linux/mips/mips32/nptl/c++-types.data
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/c++-types.data
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/c++-types.data
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/ld.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/ld.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/ld.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/ld.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/libBrokenLocale.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libBrokenLocale.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/libBrokenLocale.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libanl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/libanl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libanl.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/libanl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/libc.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libc.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/libc.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcidn.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcidn.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcidn.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/libcidn.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/libcrypt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/libdl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libdl.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/libdl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/libm.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libm.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/libm.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnsl.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnsl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnsl.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/libnsl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_compat.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_compat.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_compat.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_compat.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_db.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_db.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_db.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_db.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_dns.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_dns.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_dns.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_dns.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_files.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_files.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_files.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_files.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_hesiod.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_hesiod.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_hesiod.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_hesiod.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_nis.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_nis.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_nis.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_nis.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_nisplus.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_nisplus.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_nisplus.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/libnss_nisplus.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/libpthread.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libpthread.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/libpthread.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/libresolv.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libresolv.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/libresolv.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/librt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/librt.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/librt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libthread_db.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/libthread_db.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libthread_db.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/libthread_db.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libutil.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nptl/libutil.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libutil.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips32/nptl/libutil.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/posix_fadvise.c b/sysdeps/unix/sysv/linux/mips/mips32/posix_fadvise.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/posix_fadvise.c
+rename to sysdeps/unix/sysv/linux/mips/mips32/posix_fadvise.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/posix_fadvise64.c b/sysdeps/unix/sysv/linux/mips/mips32/posix_fadvise64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/posix_fadvise64.c
+rename to sysdeps/unix/sysv/linux/mips/mips32/posix_fadvise64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/readahead.c b/sysdeps/unix/sysv/linux/mips/mips32/readahead.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/readahead.c
+rename to sysdeps/unix/sysv/linux/mips/mips32/readahead.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/recvmmsg.c b/sysdeps/unix/sysv/linux/mips/mips32/recvmmsg.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/recvmmsg.c
+rename to sysdeps/unix/sysv/linux/mips/mips32/recvmmsg.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/sendmmsg.c b/sysdeps/unix/sysv/linux/mips/mips32/sendmmsg.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/sendmmsg.c
+rename to sysdeps/unix/sysv/linux/mips/mips32/sendmmsg.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/sync_file_range.c b/sysdeps/unix/sysv/linux/mips/mips32/sync_file_range.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/sync_file_range.c
+rename to sysdeps/unix/sysv/linux/mips/mips32/sync_file_range.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/syscalls.list b/sysdeps/unix/sysv/linux/mips/mips32/syscalls.list
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/syscalls.list
+rename to sysdeps/unix/sysv/linux/mips/mips32/syscalls.list
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
+rename to sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/truncate64.c b/sysdeps/unix/sysv/linux/mips/mips32/truncate64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips32/truncate64.c
+rename to sysdeps/unix/sysv/linux/mips/mips32/truncate64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/Makefile b/sysdeps/unix/sysv/linux/mips/mips64/Makefile
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/Makefile
+rename to sysdeps/unix/sysv/linux/mips/mips64/Makefile
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/configure b/sysdeps/unix/sysv/linux/mips/mips64/configure
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/configure
+rename to sysdeps/unix/sysv/linux/mips/mips64/configure
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/configure.in b/sysdeps/unix/sysv/linux/mips/mips64/configure.in
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/configure.in
+rename to sysdeps/unix/sysv/linux/mips/mips64/configure.in
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/ftruncate64.c b/sysdeps/unix/sysv/linux/mips/mips64/ftruncate64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/ftruncate64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/ftruncate64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c b/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/fxstat64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c b/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/ldconfig.h b/sysdeps/unix/sysv/linux/mips/mips64/ldconfig.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/ldconfig.h
+rename to sysdeps/unix/sysv/linux/mips/mips64/ldconfig.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/mips/mips64/ldd-rewrite.sed
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/ldd-rewrite.sed
+rename to sysdeps/unix/sysv/linux/mips/mips64/ldd-rewrite.sed
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/llseek.c b/sysdeps/unix/sysv/linux/mips/mips64/llseek.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/llseek.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/llseek.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c b/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/lxstat64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/mmap64.c b/sysdeps/unix/sysv/linux/mips/mips64/mmap64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/mmap64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/mmap64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c b/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/msgctl.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/msgctl.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/fallocate.c b/sysdeps/unix/sysv/linux/mips/mips64/n32/fallocate.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/fallocate.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/fallocate.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/fallocate64.c b/sysdeps/unix/sysv/linux/mips/mips64/n32/fallocate64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/fallocate64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/fallocate64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/fcntl.c b/sysdeps/unix/sysv/linux/mips/mips64/n32/fcntl.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/fcntl.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/fcntl.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/lockf64.c b/sysdeps/unix/sysv/linux/mips/mips64/n32/lockf64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/lockf64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/lockf64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/c++-types.data b/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/c++-types.data
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/c++-types.data
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/c++-types.data
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/ld.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/ld.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/ld.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/ld.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libBrokenLocale.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libBrokenLocale.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libBrokenLocale.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libanl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libanl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libanl.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libanl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libc.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libc.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libc.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libcrypt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libdl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libdl.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libdl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libm.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libm.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libm.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libnsl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libnsl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libnsl.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libnsl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libpthread.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libpthread.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libpthread.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libresolv.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libresolv.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libresolv.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/librt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/librt.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/librt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libthread_db.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libthread_db.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libthread_db.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libthread_db.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libutil.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libutil.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libutil.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libutil.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/posix_fadvise.c b/sysdeps/unix/sysv/linux/mips/mips64/n32/posix_fadvise.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/posix_fadvise.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/posix_fadvise.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/posix_fadvise64.c b/sysdeps/unix/sysv/linux/mips/mips64/n32/posix_fadvise64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/posix_fadvise64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/posix_fadvise64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/posix_fallocate.c b/sysdeps/unix/sysv/linux/mips/mips64/n32/posix_fallocate.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/posix_fallocate.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/posix_fallocate.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/posix_fallocate64.c b/sysdeps/unix/sysv/linux/mips/mips64/n32/posix_fallocate64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/posix_fallocate64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/posix_fallocate64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list b/sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
+rename to sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/fallocate.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/fallocate.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/fallocate.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/fallocate.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/fallocate64.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/fallocate64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/fallocate64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/fallocate64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/fstatfs64.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/fstatfs64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/fstatfs64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/fstatfs64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/ftw.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw64.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/ftw64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/ftw64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/glob64.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/glob64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/glob64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/glob64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S b/sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/c++-types.data b/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/c++-types.data
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/c++-types.data
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/c++-types.data
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/ld.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/ld.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/ld.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/ld.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libBrokenLocale.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libBrokenLocale.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libBrokenLocale.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libanl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libanl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libanl.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libanl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libcrypt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libdl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libdl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libdl.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libdl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libm.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libm.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libm.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libnsl.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libnsl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libnsl.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libnsl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libpthread.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libpthread.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libpthread.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libpthread.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libresolv.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libresolv.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libresolv.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libresolv.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/librt.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/librt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/librt.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/librt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libthread_db.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libthread_db.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libthread_db.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libthread_db.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libutil.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libutil.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libutil.abilist
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libutil.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fallocate.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fallocate.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fallocate.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fallocate.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fallocate64.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fallocate64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fallocate64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fallocate64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/preadv64.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/preadv64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/preadv64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/preadv64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/pwritev64.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/pwritev64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/pwritev64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/pwritev64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/sendfile64.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/sendfile64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/sendfile64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/sendfile64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/statfs64.c b/sysdeps/unix/sysv/linux/mips/mips64/n64/statfs64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/statfs64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/statfs64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list b/sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/syscalls.list
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
+rename to sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/nptl/sysdep-cancel.h b/sysdeps/unix/sysv/linux/mips/mips64/nptl/sysdep-cancel.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/nptl/sysdep-cancel.h
+rename to sysdeps/unix/sysv/linux/mips/mips64/nptl/sysdep-cancel.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/recv.c b/sysdeps/unix/sysv/linux/mips/mips64/recv.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/recv.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/recv.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/semctl.c b/sysdeps/unix/sysv/linux/mips/mips64/semctl.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/semctl.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/semctl.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/send.c b/sysdeps/unix/sysv/linux/mips/mips64/send.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/send.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/send.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c b/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/shmctl.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/shmctl.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/syscall.S b/sysdeps/unix/sysv/linux/mips/mips64/syscall.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/syscall.S
+rename to sysdeps/unix/sysv/linux/mips/mips64/syscall.S
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/syscalls.list b/sysdeps/unix/sysv/linux/mips/mips64/syscalls.list
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/syscalls.list
+rename to sysdeps/unix/sysv/linux/mips/mips64/syscalls.list
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/truncate64.c b/sysdeps/unix/sysv/linux/mips/mips64/truncate64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/truncate64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/truncate64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/umount.c b/sysdeps/unix/sysv/linux/mips/mips64/umount.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/umount.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/umount.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c b/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
+rename to sysdeps/unix/sysv/linux/mips/mips64/xstat64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/nptl/bits/local_lim.h b/sysdeps/unix/sysv/linux/mips/nptl/bits/local_lim.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/nptl/bits/local_lim.h
+rename to sysdeps/unix/sysv/linux/mips/nptl/bits/local_lim.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/nptl/bits/pthreadtypes.h b/sysdeps/unix/sysv/linux/mips/nptl/bits/pthreadtypes.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/nptl/bits/pthreadtypes.h
+rename to sysdeps/unix/sysv/linux/mips/nptl/bits/pthreadtypes.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/nptl/bits/semaphore.h b/sysdeps/unix/sysv/linux/mips/nptl/bits/semaphore.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/nptl/bits/semaphore.h
+rename to sysdeps/unix/sysv/linux/mips/nptl/bits/semaphore.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/nptl/clone.S b/sysdeps/unix/sysv/linux/mips/nptl/clone.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/nptl/clone.S
+rename to sysdeps/unix/sysv/linux/mips/nptl/clone.S
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/nptl/createthread.c b/sysdeps/unix/sysv/linux/mips/nptl/createthread.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/nptl/createthread.c
+rename to sysdeps/unix/sysv/linux/mips/nptl/createthread.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/nptl/fork.c b/sysdeps/unix/sysv/linux/mips/nptl/fork.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/nptl/fork.c
+rename to sysdeps/unix/sysv/linux/mips/nptl/fork.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h b/sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h
+rename to sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/nptl/pt-vfork.S b/sysdeps/unix/sysv/linux/mips/nptl/pt-vfork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/nptl/pt-vfork.S
+rename to sysdeps/unix/sysv/linux/mips/nptl/pt-vfork.S
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/nptl/pthread_once.c b/sysdeps/unix/sysv/linux/mips/nptl/pthread_once.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/nptl/pthread_once.c
+rename to sysdeps/unix/sysv/linux/mips/nptl/pthread_once.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/nptl/sysdep-cancel.h b/sysdeps/unix/sysv/linux/mips/nptl/sysdep-cancel.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/nptl/sysdep-cancel.h
+rename to sysdeps/unix/sysv/linux/mips/nptl/sysdep-cancel.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/nptl/vfork.S b/sysdeps/unix/sysv/linux/mips/nptl/vfork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/nptl/vfork.S
+rename to sysdeps/unix/sysv/linux/mips/nptl/vfork.S
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/pipe.S b/sysdeps/unix/sysv/linux/mips/pipe.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/pipe.S
+rename to sysdeps/unix/sysv/linux/mips/pipe.S
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/pread.c b/sysdeps/unix/sysv/linux/mips/pread.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/pread.c
+rename to sysdeps/unix/sysv/linux/mips/pread.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/pread64.c b/sysdeps/unix/sysv/linux/mips/pread64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/pread64.c
+rename to sysdeps/unix/sysv/linux/mips/pread64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/profil-counter.h b/sysdeps/unix/sysv/linux/mips/profil-counter.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/profil-counter.h
+rename to sysdeps/unix/sysv/linux/mips/profil-counter.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/putmsg.c b/sysdeps/unix/sysv/linux/mips/putmsg.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/putmsg.c
+rename to sysdeps/unix/sysv/linux/mips/putmsg.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/pwrite.c b/sysdeps/unix/sysv/linux/mips/pwrite.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/pwrite.c
+rename to sysdeps/unix/sysv/linux/mips/pwrite.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/pwrite64.c b/sysdeps/unix/sysv/linux/mips/pwrite64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/pwrite64.c
+rename to sysdeps/unix/sysv/linux/mips/pwrite64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/readelflib.c b/sysdeps/unix/sysv/linux/mips/readelflib.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/readelflib.c
+rename to sysdeps/unix/sysv/linux/mips/readelflib.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/register-dump.h b/sysdeps/unix/sysv/linux/mips/register-dump.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/register-dump.h
+rename to sysdeps/unix/sysv/linux/mips/register-dump.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/setcontext.S b/sysdeps/unix/sysv/linux/mips/setcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/setcontext.S
+rename to sysdeps/unix/sysv/linux/mips/setcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/sigaction.c b/sysdeps/unix/sysv/linux/mips/sigaction.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/sigaction.c
+rename to sysdeps/unix/sysv/linux/mips/sigaction.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h b/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/sigcontextinfo.h
+rename to sysdeps/unix/sysv/linux/mips/sigcontextinfo.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/swapcontext.S b/sysdeps/unix/sysv/linux/mips/swapcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/swapcontext.S
+rename to sysdeps/unix/sysv/linux/mips/swapcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/sys/cachectl.h b/sysdeps/unix/sysv/linux/mips/sys/cachectl.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/sys/cachectl.h
+rename to sysdeps/unix/sysv/linux/mips/sys/cachectl.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/sys/procfs.h b/sysdeps/unix/sysv/linux/mips/sys/procfs.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/sys/procfs.h
+rename to sysdeps/unix/sysv/linux/mips/sys/procfs.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/sys/sysmips.h b/sysdeps/unix/sysv/linux/mips/sys/sysmips.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/sys/sysmips.h
+rename to sysdeps/unix/sysv/linux/mips/sys/sysmips.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/sys/ucontext.h b/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
+rename to sysdeps/unix/sysv/linux/mips/sys/ucontext.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/sys/user.h b/sysdeps/unix/sysv/linux/mips/sys/user.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/sys/user.h
+rename to sysdeps/unix/sysv/linux/mips/sys/user.h
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/syscalls.list b/sysdeps/unix/sysv/linux/mips/syscalls.list
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/syscalls.list
+rename to sysdeps/unix/sysv/linux/mips/syscalls.list
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/ucontext_i.sym b/sysdeps/unix/sysv/linux/mips/ucontext_i.sym
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/ucontext_i.sym
+rename to sysdeps/unix/sysv/linux/mips/ucontext_i.sym
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/ustat.c b/sysdeps/unix/sysv/linux/mips/ustat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/ustat.c
+rename to sysdeps/unix/sysv/linux/mips/ustat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/vfork.S b/sysdeps/unix/sysv/linux/mips/vfork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/vfork.S
+rename to sysdeps/unix/sysv/linux/mips/vfork.S
+diff --git a/ports/sysdeps/unix/sysv/linux/mips/xstatconv.c b/sysdeps/unix/sysv/linux/mips/xstatconv.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/mips/xstatconv.c
+rename to sysdeps/unix/sysv/linux/mips/xstatconv.c
diff --git a/SOURCES/glibc-rh1505492-ports-move-powerpc.patch b/SOURCES/glibc-rh1505492-ports-move-powerpc.patch
new file mode 100644
index 0000000..06c70df
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-ports-move-powerpc.patch
@@ -0,0 +1,290 @@
+Recreation of this upstream commit:
+
+commit 29d73d867e1df54d703542cf7d076c5620dc2fb7
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Fri Oct 4 16:02:33 2013 +0000
+
+    Move powerpc ports pieces to libc.
+
+Git commands used:
+
+git mv ports/sysdeps/powerpc/nofpu sysdeps/powerpc/nofpu
+git mv ports/sysdeps/powerpc/soft-fp sysdeps/powerpc/soft-fp
+git mv ports/sysdeps/powerpc/powerpc32/4* sysdeps/powerpc/powerpc32/
+git mv ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/* \
+  sysdeps/unix/sysv/linux/powerpc/powerpc32/
+git rm ports/sysdeps/powerpc/powerpc32/Makefile
+
+In addition, sysdeps/powerpc/powerpc32/Makefile was updated to handle
+the -mhard-float flag.
+
+diff --git a/ports/sysdeps/powerpc/powerpc32/Makefile b/ports/sysdeps/powerpc/powerpc32/Makefile
+deleted file mode 100644
+index 3d235deeb91330f6..0000000000000000
+--- a/ports/sysdeps/powerpc/powerpc32/Makefile
++++ /dev/null
+@@ -1,8 +0,0 @@
+-# Some Powerpc32 variants assume soft-fp is the default even though there is
+-# an fp variant so provide -mhard-float if --with-fp is explicitly passed.
+-
+-ifeq ($(with-fp),yes)
+-+cflags += -mhard-float
+-ASFLAGS += -mhard-float
+-sysdep-LDFLAGS += -mhard-float
+-endif
+diff --git a/ports/sysdeps/powerpc/nofpu/Makefile b/sysdeps/powerpc/nofpu/Makefile
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/Makefile
+rename to sysdeps/powerpc/nofpu/Makefile
+diff --git a/ports/sysdeps/powerpc/nofpu/Subdirs b/sysdeps/powerpc/nofpu/Subdirs
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/Subdirs
+rename to sysdeps/powerpc/nofpu/Subdirs
+diff --git a/ports/sysdeps/powerpc/nofpu/Versions b/sysdeps/powerpc/nofpu/Versions
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/Versions
+rename to sysdeps/powerpc/nofpu/Versions
+diff --git a/ports/sysdeps/powerpc/nofpu/fclrexcpt.c b/sysdeps/powerpc/nofpu/fclrexcpt.c
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/fclrexcpt.c
+rename to sysdeps/powerpc/nofpu/fclrexcpt.c
+diff --git a/ports/sysdeps/powerpc/nofpu/fedisblxcpt.c b/sysdeps/powerpc/nofpu/fedisblxcpt.c
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/fedisblxcpt.c
+rename to sysdeps/powerpc/nofpu/fedisblxcpt.c
+diff --git a/ports/sysdeps/powerpc/nofpu/feenablxcpt.c b/sysdeps/powerpc/nofpu/feenablxcpt.c
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/feenablxcpt.c
+rename to sysdeps/powerpc/nofpu/feenablxcpt.c
+diff --git a/ports/sysdeps/powerpc/nofpu/fegetenv.c b/sysdeps/powerpc/nofpu/fegetenv.c
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/fegetenv.c
+rename to sysdeps/powerpc/nofpu/fegetenv.c
+diff --git a/ports/sysdeps/powerpc/nofpu/fegetexcept.c b/sysdeps/powerpc/nofpu/fegetexcept.c
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/fegetexcept.c
+rename to sysdeps/powerpc/nofpu/fegetexcept.c
+diff --git a/ports/sysdeps/powerpc/nofpu/fegetround.c b/sysdeps/powerpc/nofpu/fegetround.c
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/fegetround.c
+rename to sysdeps/powerpc/nofpu/fegetround.c
+diff --git a/ports/sysdeps/powerpc/nofpu/feholdexcpt.c b/sysdeps/powerpc/nofpu/feholdexcpt.c
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/feholdexcpt.c
+rename to sysdeps/powerpc/nofpu/feholdexcpt.c
+diff --git a/ports/sysdeps/powerpc/nofpu/fenv_const.c b/sysdeps/powerpc/nofpu/fenv_const.c
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/fenv_const.c
+rename to sysdeps/powerpc/nofpu/fenv_const.c
+diff --git a/ports/sysdeps/powerpc/nofpu/fenv_libc.h b/sysdeps/powerpc/nofpu/fenv_libc.h
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/fenv_libc.h
+rename to sysdeps/powerpc/nofpu/fenv_libc.h
+diff --git a/ports/sysdeps/powerpc/nofpu/fesetenv.c b/sysdeps/powerpc/nofpu/fesetenv.c
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/fesetenv.c
+rename to sysdeps/powerpc/nofpu/fesetenv.c
+diff --git a/ports/sysdeps/powerpc/nofpu/fesetround.c b/sysdeps/powerpc/nofpu/fesetround.c
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/fesetround.c
+rename to sysdeps/powerpc/nofpu/fesetround.c
+diff --git a/ports/sysdeps/powerpc/nofpu/feupdateenv.c b/sysdeps/powerpc/nofpu/feupdateenv.c
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/feupdateenv.c
+rename to sysdeps/powerpc/nofpu/feupdateenv.c
+diff --git a/ports/sysdeps/powerpc/nofpu/fgetexcptflg.c b/sysdeps/powerpc/nofpu/fgetexcptflg.c
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/fgetexcptflg.c
+rename to sysdeps/powerpc/nofpu/fgetexcptflg.c
+diff --git a/ports/sysdeps/powerpc/nofpu/fraiseexcpt.c b/sysdeps/powerpc/nofpu/fraiseexcpt.c
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/fraiseexcpt.c
+rename to sysdeps/powerpc/nofpu/fraiseexcpt.c
+diff --git a/ports/sysdeps/powerpc/nofpu/fsetexcptflg.c b/sysdeps/powerpc/nofpu/fsetexcptflg.c
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/fsetexcptflg.c
+rename to sysdeps/powerpc/nofpu/fsetexcptflg.c
+diff --git a/ports/sysdeps/powerpc/nofpu/ftestexcept.c b/sysdeps/powerpc/nofpu/ftestexcept.c
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/ftestexcept.c
+rename to sysdeps/powerpc/nofpu/ftestexcept.c
+diff --git a/ports/sysdeps/powerpc/nofpu/get-rounding-mode.h b/sysdeps/powerpc/nofpu/get-rounding-mode.h
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/get-rounding-mode.h
+rename to sysdeps/powerpc/nofpu/get-rounding-mode.h
+diff --git a/ports/sysdeps/powerpc/nofpu/libm-test-ulps b/sysdeps/powerpc/nofpu/libm-test-ulps
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/libm-test-ulps
+rename to sysdeps/powerpc/nofpu/libm-test-ulps
+diff --git a/ports/sysdeps/powerpc/nofpu/shlib-versions b/sysdeps/powerpc/nofpu/shlib-versions
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/shlib-versions
+rename to sysdeps/powerpc/nofpu/shlib-versions
+diff --git a/ports/sysdeps/powerpc/nofpu/sim-full.c b/sysdeps/powerpc/nofpu/sim-full.c
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/sim-full.c
+rename to sysdeps/powerpc/nofpu/sim-full.c
+diff --git a/ports/sysdeps/powerpc/nofpu/soft-supp.h b/sysdeps/powerpc/nofpu/soft-supp.h
+similarity index 100%
+rename from ports/sysdeps/powerpc/nofpu/soft-supp.h
+rename to sysdeps/powerpc/nofpu/soft-supp.h
+diff --git a/ports/sysdeps/powerpc/powerpc32/405/memcmp.S b/sysdeps/powerpc/powerpc32/405/memcmp.S
+similarity index 100%
+rename from ports/sysdeps/powerpc/powerpc32/405/memcmp.S
+rename to sysdeps/powerpc/powerpc32/405/memcmp.S
+diff --git a/ports/sysdeps/powerpc/powerpc32/405/memcpy.S b/sysdeps/powerpc/powerpc32/405/memcpy.S
+similarity index 100%
+rename from ports/sysdeps/powerpc/powerpc32/405/memcpy.S
+rename to sysdeps/powerpc/powerpc32/405/memcpy.S
+diff --git a/ports/sysdeps/powerpc/powerpc32/405/memset.S b/sysdeps/powerpc/powerpc32/405/memset.S
+similarity index 100%
+rename from ports/sysdeps/powerpc/powerpc32/405/memset.S
+rename to sysdeps/powerpc/powerpc32/405/memset.S
+diff --git a/ports/sysdeps/powerpc/powerpc32/405/strcmp.S b/sysdeps/powerpc/powerpc32/405/strcmp.S
+similarity index 100%
+rename from ports/sysdeps/powerpc/powerpc32/405/strcmp.S
+rename to sysdeps/powerpc/powerpc32/405/strcmp.S
+diff --git a/ports/sysdeps/powerpc/powerpc32/405/strcpy.S b/sysdeps/powerpc/powerpc32/405/strcpy.S
+similarity index 100%
+rename from ports/sysdeps/powerpc/powerpc32/405/strcpy.S
+rename to sysdeps/powerpc/powerpc32/405/strcpy.S
+diff --git a/ports/sysdeps/powerpc/powerpc32/405/strlen.S b/sysdeps/powerpc/powerpc32/405/strlen.S
+similarity index 100%
+rename from ports/sysdeps/powerpc/powerpc32/405/strlen.S
+rename to sysdeps/powerpc/powerpc32/405/strlen.S
+diff --git a/ports/sysdeps/powerpc/powerpc32/405/strncmp.S b/sysdeps/powerpc/powerpc32/405/strncmp.S
+similarity index 100%
+rename from ports/sysdeps/powerpc/powerpc32/405/strncmp.S
+rename to sysdeps/powerpc/powerpc32/405/strncmp.S
+diff --git a/ports/sysdeps/powerpc/powerpc32/440/Implies b/sysdeps/powerpc/powerpc32/440/Implies
+similarity index 100%
+rename from ports/sysdeps/powerpc/powerpc32/440/Implies
+rename to sysdeps/powerpc/powerpc32/440/Implies
+diff --git a/ports/sysdeps/powerpc/powerpc32/464/Implies b/sysdeps/powerpc/powerpc32/464/Implies
+similarity index 100%
+rename from ports/sysdeps/powerpc/powerpc32/464/Implies
+rename to sysdeps/powerpc/powerpc32/464/Implies
+diff --git a/ports/sysdeps/powerpc/powerpc32/476/Implies b/sysdeps/powerpc/powerpc32/476/Implies
+similarity index 100%
+rename from ports/sysdeps/powerpc/powerpc32/476/Implies
+rename to sysdeps/powerpc/powerpc32/476/Implies
+diff --git a/ports/sysdeps/powerpc/powerpc32/476/memset.S b/sysdeps/powerpc/powerpc32/476/memset.S
+similarity index 100%
+rename from ports/sysdeps/powerpc/powerpc32/476/memset.S
+rename to sysdeps/powerpc/powerpc32/476/memset.S
+diff --git a/sysdeps/powerpc/powerpc32/Makefile b/sysdeps/powerpc/powerpc32/Makefile
+index 64f79003af264964..0c515da52bc07d36 100644
+--- a/sysdeps/powerpc/powerpc32/Makefile
++++ b/sysdeps/powerpc/powerpc32/Makefile
+@@ -5,6 +5,15 @@ ifeq ($(with-fp),no)
+ sysdep-LDFLAGS += -msoft-float
+ endif
+ 
++# Some Powerpc32 variants assume soft-fp is the default even though there is
++# an fp variant so provide -mhard-float if --with-fp is explicitly passed.
++
++ifeq ($(with-fp),yes)
+++cflags += -mhard-float
++ASFLAGS += -mhard-float
++sysdep-LDFLAGS += -mhard-float
++endif
++
+ ifeq ($(subdir),gmon)
+ sysdep_routines += ppc-mcount compat-ppc-mcount
+ static-only-routines += ppc-mcount
+diff --git a/ports/sysdeps/powerpc/soft-fp/sfp-machine.h b/sysdeps/powerpc/soft-fp/sfp-machine.h
+similarity index 100%
+rename from ports/sysdeps/powerpc/soft-fp/sfp-machine.h
+rename to sysdeps/powerpc/soft-fp/sfp-machine.h
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/405/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/405/Implies
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/405/Implies
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/405/Implies
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/440/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/440/Implies
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/440/Implies
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/440/Implies
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/464/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/464/Implies
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/464/Implies
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/464/Implies
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/476/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/476/Implies
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/476/Implies
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/476/Implies
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/Implies
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/getcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/c++-types.data b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/c++-types.data
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/c++-types.data
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/c++-types.data
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/ld.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/ld.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/ld.abilist
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/ld.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libBrokenLocale.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libBrokenLocale.abilist
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libBrokenLocale.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libanl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libanl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libanl.abilist
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libanl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libcrypt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libdl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libdl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libdl.abilist
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libdl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libm.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libm.abilist
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libm.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libnsl.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libnsl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libnsl.abilist
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libnsl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libpthread.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libpthread.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libpthread.abilist
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libpthread.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libresolv.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libresolv.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libresolv.abilist
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libresolv.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/librt.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/librt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/librt.abilist
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/librt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libthread_db.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libthread_db.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libthread_db.abilist
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libthread_db.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libutil.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libutil.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libutil.abilist
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libutil.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/localplt.data b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/localplt.data
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/localplt.data
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/localplt.data
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/setcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S
+rename to sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/swapcontext.S
diff --git a/SOURCES/glibc-rh1505492-ports-move-tile.patch b/SOURCES/glibc-rh1505492-ports-move-tile.patch
new file mode 100644
index 0000000..a16a95f
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-ports-move-tile.patch
@@ -0,0 +1,1102 @@
+Recreation of this upstream patch, using the indicated git commands:
+
+commit 4372980f5881e7d537a52e3c49588ce116088061
+Author: Chris Metcalf <cmetcalf@tilera.com>
+Date:   Mon Feb 10 10:54:47 2014 -0500
+
+    Move tilegx, tilepro, and linux-generic from ports to libc.
+
+    I've moved the TILE-Gx and TILEPro ports to the main sysdeps hierarchy,
+    along with the linux-generic ports infrastructure.  Beyond the README
+    update, the move was just
+
+        git mv ports/sysdeps/tile sysdeps/tile
+        git mv ports/sysdeps/unix/sysv/linux/tile \
+          sysdeps/unix/sysv/linux/tile
+        git mv ports/sysdeps/unix/sysv/linux/generic \
+          sysdeps/unix/sysv/linux/generic
+
+diff --git a/ports/sysdeps/tile/Implies b/sysdeps/tile/Implies
+similarity index 100%
+rename from ports/sysdeps/tile/Implies
+rename to sysdeps/tile/Implies
+diff --git a/ports/sysdeps/tile/Makefile b/sysdeps/tile/Makefile
+similarity index 100%
+rename from ports/sysdeps/tile/Makefile
+rename to sysdeps/tile/Makefile
+diff --git a/ports/sysdeps/tile/Versions b/sysdeps/tile/Versions
+similarity index 100%
+rename from ports/sysdeps/tile/Versions
+rename to sysdeps/tile/Versions
+diff --git a/ports/sysdeps/tile/__longjmp.S b/sysdeps/tile/__longjmp.S
+similarity index 100%
+rename from ports/sysdeps/tile/__longjmp.S
+rename to sysdeps/tile/__longjmp.S
+diff --git a/ports/sysdeps/tile/__tls_get_addr.S b/sysdeps/tile/__tls_get_addr.S
+similarity index 100%
+rename from ports/sysdeps/tile/__tls_get_addr.S
+rename to sysdeps/tile/__tls_get_addr.S
+diff --git a/ports/sysdeps/tile/_mcount.S b/sysdeps/tile/_mcount.S
+similarity index 100%
+rename from ports/sysdeps/tile/_mcount.S
+rename to sysdeps/tile/_mcount.S
+diff --git a/ports/sysdeps/tile/abort-instr.h b/sysdeps/tile/abort-instr.h
+similarity index 100%
+rename from ports/sysdeps/tile/abort-instr.h
+rename to sysdeps/tile/abort-instr.h
+diff --git a/ports/sysdeps/tile/backtrace.c b/sysdeps/tile/backtrace.c
+similarity index 100%
+rename from ports/sysdeps/tile/backtrace.c
+rename to sysdeps/tile/backtrace.c
+diff --git a/ports/sysdeps/tile/bits/atomic.h b/sysdeps/tile/bits/atomic.h
+similarity index 100%
+rename from ports/sysdeps/tile/bits/atomic.h
+rename to sysdeps/tile/bits/atomic.h
+diff --git a/ports/sysdeps/tile/bits/byteswap.h b/sysdeps/tile/bits/byteswap.h
+similarity index 100%
+rename from ports/sysdeps/tile/bits/byteswap.h
+rename to sysdeps/tile/bits/byteswap.h
+diff --git a/ports/sysdeps/tile/bits/endian.h b/sysdeps/tile/bits/endian.h
+similarity index 100%
+rename from ports/sysdeps/tile/bits/endian.h
+rename to sysdeps/tile/bits/endian.h
+diff --git a/ports/sysdeps/tile/bits/fenv.h b/sysdeps/tile/bits/fenv.h
+similarity index 100%
+rename from ports/sysdeps/tile/bits/fenv.h
+rename to sysdeps/tile/bits/fenv.h
+diff --git a/ports/sysdeps/tile/bits/link.h b/sysdeps/tile/bits/link.h
+similarity index 100%
+rename from ports/sysdeps/tile/bits/link.h
+rename to sysdeps/tile/bits/link.h
+diff --git a/ports/sysdeps/tile/bits/mathdef.h b/sysdeps/tile/bits/mathdef.h
+similarity index 100%
+rename from ports/sysdeps/tile/bits/mathdef.h
+rename to sysdeps/tile/bits/mathdef.h
+diff --git a/ports/sysdeps/tile/bits/mathinline.h b/sysdeps/tile/bits/mathinline.h
+similarity index 100%
+rename from ports/sysdeps/tile/bits/mathinline.h
+rename to sysdeps/tile/bits/mathinline.h
+diff --git a/ports/sysdeps/tile/bits/setjmp.h b/sysdeps/tile/bits/setjmp.h
+similarity index 100%
+rename from ports/sysdeps/tile/bits/setjmp.h
+rename to sysdeps/tile/bits/setjmp.h
+diff --git a/ports/sysdeps/tile/bsd-_setjmp.S b/sysdeps/tile/bsd-_setjmp.S
+similarity index 100%
+rename from ports/sysdeps/tile/bsd-_setjmp.S
+rename to sysdeps/tile/bsd-_setjmp.S
+diff --git a/ports/sysdeps/tile/bsd-setjmp.S b/sysdeps/tile/bsd-setjmp.S
+similarity index 100%
+rename from ports/sysdeps/tile/bsd-setjmp.S
+rename to sysdeps/tile/bsd-setjmp.S
+diff --git a/ports/sysdeps/tile/bzero.S b/sysdeps/tile/bzero.S
+similarity index 100%
+rename from ports/sysdeps/tile/bzero.S
+rename to sysdeps/tile/bzero.S
+diff --git a/ports/sysdeps/tile/crti.S b/sysdeps/tile/crti.S
+similarity index 100%
+rename from ports/sysdeps/tile/crti.S
+rename to sysdeps/tile/crti.S
+diff --git a/ports/sysdeps/tile/crtn.S b/sysdeps/tile/crtn.S
+similarity index 100%
+rename from ports/sysdeps/tile/crtn.S
+rename to sysdeps/tile/crtn.S
+diff --git a/ports/sysdeps/tile/dl-lookupcfg.h b/sysdeps/tile/dl-lookupcfg.h
+similarity index 100%
+rename from ports/sysdeps/tile/dl-lookupcfg.h
+rename to sysdeps/tile/dl-lookupcfg.h
+diff --git a/ports/sysdeps/tile/dl-machine.h b/sysdeps/tile/dl-machine.h
+similarity index 100%
+rename from ports/sysdeps/tile/dl-machine.h
+rename to sysdeps/tile/dl-machine.h
+diff --git a/ports/sysdeps/tile/dl-runtime.c b/sysdeps/tile/dl-runtime.c
+similarity index 100%
+rename from ports/sysdeps/tile/dl-runtime.c
+rename to sysdeps/tile/dl-runtime.c
+diff --git a/ports/sysdeps/tile/dl-start.S b/sysdeps/tile/dl-start.S
+similarity index 100%
+rename from ports/sysdeps/tile/dl-start.S
+rename to sysdeps/tile/dl-start.S
+diff --git a/ports/sysdeps/tile/dl-tls.c b/sysdeps/tile/dl-tls.c
+similarity index 100%
+rename from ports/sysdeps/tile/dl-tls.c
+rename to sysdeps/tile/dl-tls.c
+diff --git a/ports/sysdeps/tile/dl-tls.h b/sysdeps/tile/dl-tls.h
+similarity index 100%
+rename from ports/sysdeps/tile/dl-tls.h
+rename to sysdeps/tile/dl-tls.h
+diff --git a/ports/sysdeps/tile/dl-trampoline.S b/sysdeps/tile/dl-trampoline.S
+similarity index 100%
+rename from ports/sysdeps/tile/dl-trampoline.S
+rename to sysdeps/tile/dl-trampoline.S
+diff --git a/ports/sysdeps/tile/fegetenv.c b/sysdeps/tile/fegetenv.c
+similarity index 100%
+rename from ports/sysdeps/tile/fegetenv.c
+rename to sysdeps/tile/fegetenv.c
+diff --git a/ports/sysdeps/tile/fegetround.c b/sysdeps/tile/fegetround.c
+similarity index 100%
+rename from ports/sysdeps/tile/fegetround.c
+rename to sysdeps/tile/fegetround.c
+diff --git a/ports/sysdeps/tile/feholdexcpt.c b/sysdeps/tile/feholdexcpt.c
+similarity index 100%
+rename from ports/sysdeps/tile/feholdexcpt.c
+rename to sysdeps/tile/feholdexcpt.c
+diff --git a/ports/sysdeps/tile/fesetenv.c b/sysdeps/tile/fesetenv.c
+similarity index 100%
+rename from ports/sysdeps/tile/fesetenv.c
+rename to sysdeps/tile/fesetenv.c
+diff --git a/ports/sysdeps/tile/fesetround.c b/sysdeps/tile/fesetround.c
+similarity index 100%
+rename from ports/sysdeps/tile/fesetround.c
+rename to sysdeps/tile/fesetround.c
+diff --git a/ports/sysdeps/tile/feupdateenv.c b/sysdeps/tile/feupdateenv.c
+similarity index 100%
+rename from ports/sysdeps/tile/feupdateenv.c
+rename to sysdeps/tile/feupdateenv.c
+diff --git a/ports/sysdeps/tile/ffs.c b/sysdeps/tile/ffs.c
+similarity index 100%
+rename from ports/sysdeps/tile/ffs.c
+rename to sysdeps/tile/ffs.c
+diff --git a/ports/sysdeps/tile/ffsll.c b/sysdeps/tile/ffsll.c
+similarity index 100%
+rename from ports/sysdeps/tile/ffsll.c
+rename to sysdeps/tile/ffsll.c
+diff --git a/ports/sysdeps/tile/gccframe.h b/sysdeps/tile/gccframe.h
+similarity index 100%
+rename from ports/sysdeps/tile/gccframe.h
+rename to sysdeps/tile/gccframe.h
+diff --git a/ports/sysdeps/tile/jmpbuf-offsets.h b/sysdeps/tile/jmpbuf-offsets.h
+similarity index 100%
+rename from ports/sysdeps/tile/jmpbuf-offsets.h
+rename to sysdeps/tile/jmpbuf-offsets.h
+diff --git a/ports/sysdeps/tile/jmpbuf-unwind.h b/sysdeps/tile/jmpbuf-unwind.h
+similarity index 100%
+rename from ports/sysdeps/tile/jmpbuf-unwind.h
+rename to sysdeps/tile/jmpbuf-unwind.h
+diff --git a/ports/sysdeps/tile/ldsodefs.h b/sysdeps/tile/ldsodefs.h
+similarity index 100%
+rename from ports/sysdeps/tile/ldsodefs.h
+rename to sysdeps/tile/ldsodefs.h
+diff --git a/ports/sysdeps/tile/libm-test-ulps b/sysdeps/tile/libm-test-ulps
+similarity index 100%
+rename from ports/sysdeps/tile/libm-test-ulps
+rename to sysdeps/tile/libm-test-ulps
+diff --git a/ports/sysdeps/tile/machine-gmon.h b/sysdeps/tile/machine-gmon.h
+similarity index 100%
+rename from ports/sysdeps/tile/machine-gmon.h
+rename to sysdeps/tile/machine-gmon.h
+diff --git a/ports/sysdeps/tile/math_private.h b/sysdeps/tile/math_private.h
+similarity index 100%
+rename from ports/sysdeps/tile/math_private.h
+rename to sysdeps/tile/math_private.h
+diff --git a/ports/sysdeps/tile/memcopy.h b/sysdeps/tile/memcopy.h
+similarity index 100%
+rename from ports/sysdeps/tile/memcopy.h
+rename to sysdeps/tile/memcopy.h
+diff --git a/ports/sysdeps/tile/nptl/Makefile b/sysdeps/tile/nptl/Makefile
+similarity index 100%
+rename from ports/sysdeps/tile/nptl/Makefile
+rename to sysdeps/tile/nptl/Makefile
+diff --git a/ports/sysdeps/tile/nptl/pthread_spin_lock.c b/sysdeps/tile/nptl/pthread_spin_lock.c
+similarity index 100%
+rename from ports/sysdeps/tile/nptl/pthread_spin_lock.c
+rename to sysdeps/tile/nptl/pthread_spin_lock.c
+diff --git a/ports/sysdeps/tile/nptl/pthread_spin_trylock.c b/sysdeps/tile/nptl/pthread_spin_trylock.c
+similarity index 100%
+rename from ports/sysdeps/tile/nptl/pthread_spin_trylock.c
+rename to sysdeps/tile/nptl/pthread_spin_trylock.c
+diff --git a/ports/sysdeps/tile/nptl/pthread_spin_unlock.c b/sysdeps/tile/nptl/pthread_spin_unlock.c
+similarity index 100%
+rename from ports/sysdeps/tile/nptl/pthread_spin_unlock.c
+rename to sysdeps/tile/nptl/pthread_spin_unlock.c
+diff --git a/ports/sysdeps/tile/nptl/pthreaddef.h b/sysdeps/tile/nptl/pthreaddef.h
+similarity index 100%
+rename from ports/sysdeps/tile/nptl/pthreaddef.h
+rename to sysdeps/tile/nptl/pthreaddef.h
+diff --git a/ports/sysdeps/tile/nptl/tcb-offsets.sym b/sysdeps/tile/nptl/tcb-offsets.sym
+similarity index 100%
+rename from ports/sysdeps/tile/nptl/tcb-offsets.sym
+rename to sysdeps/tile/nptl/tcb-offsets.sym
+diff --git a/ports/sysdeps/tile/nptl/tls.h b/sysdeps/tile/nptl/tls.h
+similarity index 100%
+rename from ports/sysdeps/tile/nptl/tls.h
+rename to sysdeps/tile/nptl/tls.h
+diff --git a/ports/sysdeps/tile/preconfigure b/sysdeps/tile/preconfigure
+similarity index 100%
+rename from ports/sysdeps/tile/preconfigure
+rename to sysdeps/tile/preconfigure
+diff --git a/ports/sysdeps/tile/s_fma.c b/sysdeps/tile/s_fma.c
+similarity index 100%
+rename from ports/sysdeps/tile/s_fma.c
+rename to sysdeps/tile/s_fma.c
+diff --git a/ports/sysdeps/tile/s_fmaf.c b/sysdeps/tile/s_fmaf.c
+similarity index 100%
+rename from ports/sysdeps/tile/s_fmaf.c
+rename to sysdeps/tile/s_fmaf.c
+diff --git a/ports/sysdeps/tile/setjmp.S b/sysdeps/tile/setjmp.S
+similarity index 100%
+rename from ports/sysdeps/tile/setjmp.S
+rename to sysdeps/tile/setjmp.S
+diff --git a/ports/sysdeps/tile/shlib-versions b/sysdeps/tile/shlib-versions
+similarity index 100%
+rename from ports/sysdeps/tile/shlib-versions
+rename to sysdeps/tile/shlib-versions
+diff --git a/ports/sysdeps/tile/sotruss-lib.c b/sysdeps/tile/sotruss-lib.c
+similarity index 100%
+rename from ports/sysdeps/tile/sotruss-lib.c
+rename to sysdeps/tile/sotruss-lib.c
+diff --git a/ports/sysdeps/tile/stackguard-macros.h b/sysdeps/tile/stackguard-macros.h
+similarity index 100%
+rename from ports/sysdeps/tile/stackguard-macros.h
+rename to sysdeps/tile/stackguard-macros.h
+diff --git a/ports/sysdeps/tile/stackinfo.h b/sysdeps/tile/stackinfo.h
+similarity index 100%
+rename from ports/sysdeps/tile/stackinfo.h
+rename to sysdeps/tile/stackinfo.h
+diff --git a/ports/sysdeps/tile/start.S b/sysdeps/tile/start.S
+similarity index 100%
+rename from ports/sysdeps/tile/start.S
+rename to sysdeps/tile/start.S
+diff --git a/ports/sysdeps/tile/sysdep.h b/sysdeps/tile/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/tile/sysdep.h
+rename to sysdeps/tile/sysdep.h
+diff --git a/ports/sysdeps/tile/tilegx/Makefile b/sysdeps/tile/tilegx/Makefile
+similarity index 100%
+rename from ports/sysdeps/tile/tilegx/Makefile
+rename to sysdeps/tile/tilegx/Makefile
+diff --git a/ports/sysdeps/tile/tilegx/bits/atomic.h b/sysdeps/tile/tilegx/bits/atomic.h
+similarity index 100%
+rename from ports/sysdeps/tile/tilegx/bits/atomic.h
+rename to sysdeps/tile/tilegx/bits/atomic.h
+diff --git a/ports/sysdeps/tile/tilegx/bits/wordsize.h b/sysdeps/tile/tilegx/bits/wordsize.h
+similarity index 100%
+rename from ports/sysdeps/tile/tilegx/bits/wordsize.h
+rename to sysdeps/tile/tilegx/bits/wordsize.h
+diff --git a/ports/sysdeps/tile/tilegx/memchr.c b/sysdeps/tile/tilegx/memchr.c
+similarity index 100%
+rename from ports/sysdeps/tile/tilegx/memchr.c
+rename to sysdeps/tile/tilegx/memchr.c
+diff --git a/ports/sysdeps/tile/tilegx/memcpy.c b/sysdeps/tile/tilegx/memcpy.c
+similarity index 100%
+rename from ports/sysdeps/tile/tilegx/memcpy.c
+rename to sysdeps/tile/tilegx/memcpy.c
+diff --git a/ports/sysdeps/tile/tilegx/memmove.c b/sysdeps/tile/tilegx/memmove.c
+similarity index 100%
+rename from ports/sysdeps/tile/tilegx/memmove.c
+rename to sysdeps/tile/tilegx/memmove.c
+diff --git a/ports/sysdeps/tile/tilegx/memset.c b/sysdeps/tile/tilegx/memset.c
+similarity index 100%
+rename from ports/sysdeps/tile/tilegx/memset.c
+rename to sysdeps/tile/tilegx/memset.c
+diff --git a/ports/sysdeps/tile/tilegx/memusage.h b/sysdeps/tile/tilegx/memusage.h
+similarity index 100%
+rename from ports/sysdeps/tile/tilegx/memusage.h
+rename to sysdeps/tile/tilegx/memusage.h
+diff --git a/ports/sysdeps/tile/tilegx/rawmemchr.c b/sysdeps/tile/tilegx/rawmemchr.c
+similarity index 100%
+rename from ports/sysdeps/tile/tilegx/rawmemchr.c
+rename to sysdeps/tile/tilegx/rawmemchr.c
+diff --git a/ports/sysdeps/tile/tilegx/strchr.c b/sysdeps/tile/tilegx/strchr.c
+similarity index 100%
+rename from ports/sysdeps/tile/tilegx/strchr.c
+rename to sysdeps/tile/tilegx/strchr.c
+diff --git a/ports/sysdeps/tile/tilegx/strchrnul.c b/sysdeps/tile/tilegx/strchrnul.c
+similarity index 100%
+rename from ports/sysdeps/tile/tilegx/strchrnul.c
+rename to sysdeps/tile/tilegx/strchrnul.c
+diff --git a/ports/sysdeps/tile/tilegx/string-endian.h b/sysdeps/tile/tilegx/string-endian.h
+similarity index 100%
+rename from ports/sysdeps/tile/tilegx/string-endian.h
+rename to sysdeps/tile/tilegx/string-endian.h
+diff --git a/ports/sysdeps/tile/tilegx/strlen.c b/sysdeps/tile/tilegx/strlen.c
+similarity index 100%
+rename from ports/sysdeps/tile/tilegx/strlen.c
+rename to sysdeps/tile/tilegx/strlen.c
+diff --git a/ports/sysdeps/tile/tilegx/strrchr.c b/sysdeps/tile/tilegx/strrchr.c
+similarity index 100%
+rename from ports/sysdeps/tile/tilegx/strrchr.c
+rename to sysdeps/tile/tilegx/strrchr.c
+diff --git a/ports/sysdeps/tile/tilegx/tilegx32/Implies b/sysdeps/tile/tilegx/tilegx32/Implies
+similarity index 100%
+rename from ports/sysdeps/tile/tilegx/tilegx32/Implies
+rename to sysdeps/tile/tilegx/tilegx32/Implies
+diff --git a/ports/sysdeps/tile/tilegx/tilegx64/Implies b/sysdeps/tile/tilegx/tilegx64/Implies
+similarity index 100%
+rename from ports/sysdeps/tile/tilegx/tilegx64/Implies
+rename to sysdeps/tile/tilegx/tilegx64/Implies
+diff --git a/ports/sysdeps/tile/tilepro/Implies b/sysdeps/tile/tilepro/Implies
+similarity index 100%
+rename from ports/sysdeps/tile/tilepro/Implies
+rename to sysdeps/tile/tilepro/Implies
+diff --git a/ports/sysdeps/tile/tilepro/bits/atomic.h b/sysdeps/tile/tilepro/bits/atomic.h
+similarity index 100%
+rename from ports/sysdeps/tile/tilepro/bits/atomic.h
+rename to sysdeps/tile/tilepro/bits/atomic.h
+diff --git a/ports/sysdeps/tile/tilepro/bits/wordsize.h b/sysdeps/tile/tilepro/bits/wordsize.h
+similarity index 100%
+rename from ports/sysdeps/tile/tilepro/bits/wordsize.h
+rename to sysdeps/tile/tilepro/bits/wordsize.h
+diff --git a/ports/sysdeps/tile/tilepro/memchr.c b/sysdeps/tile/tilepro/memchr.c
+similarity index 100%
+rename from ports/sysdeps/tile/tilepro/memchr.c
+rename to sysdeps/tile/tilepro/memchr.c
+diff --git a/ports/sysdeps/tile/tilepro/memcpy.S b/sysdeps/tile/tilepro/memcpy.S
+similarity index 100%
+rename from ports/sysdeps/tile/tilepro/memcpy.S
+rename to sysdeps/tile/tilepro/memcpy.S
+diff --git a/ports/sysdeps/tile/tilepro/memset.c b/sysdeps/tile/tilepro/memset.c
+similarity index 100%
+rename from ports/sysdeps/tile/tilepro/memset.c
+rename to sysdeps/tile/tilepro/memset.c
+diff --git a/ports/sysdeps/tile/tilepro/memusage.h b/sysdeps/tile/tilepro/memusage.h
+similarity index 100%
+rename from ports/sysdeps/tile/tilepro/memusage.h
+rename to sysdeps/tile/tilepro/memusage.h
+diff --git a/ports/sysdeps/tile/tilepro/rawmemchr.c b/sysdeps/tile/tilepro/rawmemchr.c
+similarity index 100%
+rename from ports/sysdeps/tile/tilepro/rawmemchr.c
+rename to sysdeps/tile/tilepro/rawmemchr.c
+diff --git a/ports/sysdeps/tile/tilepro/strchr.c b/sysdeps/tile/tilepro/strchr.c
+similarity index 100%
+rename from ports/sysdeps/tile/tilepro/strchr.c
+rename to sysdeps/tile/tilepro/strchr.c
+diff --git a/ports/sysdeps/tile/tilepro/strchrnul.c b/sysdeps/tile/tilepro/strchrnul.c
+similarity index 100%
+rename from ports/sysdeps/tile/tilepro/strchrnul.c
+rename to sysdeps/tile/tilepro/strchrnul.c
+diff --git a/ports/sysdeps/tile/tilepro/strlen.c b/sysdeps/tile/tilepro/strlen.c
+similarity index 100%
+rename from ports/sysdeps/tile/tilepro/strlen.c
+rename to sysdeps/tile/tilepro/strlen.c
+diff --git a/ports/sysdeps/tile/tilepro/strrchr.c b/sysdeps/tile/tilepro/strrchr.c
+similarity index 100%
+rename from ports/sysdeps/tile/tilepro/strrchr.c
+rename to sysdeps/tile/tilepro/strrchr.c
+diff --git a/ports/sysdeps/tile/tls-macros.h b/sysdeps/tile/tls-macros.h
+similarity index 100%
+rename from ports/sysdeps/tile/tls-macros.h
+rename to sysdeps/tile/tls-macros.h
+diff --git a/ports/sysdeps/tile/tst-audit.h b/sysdeps/tile/tst-audit.h
+similarity index 100%
+rename from ports/sysdeps/tile/tst-audit.h
+rename to sysdeps/tile/tst-audit.h
+diff --git a/ports/sysdeps/tile/wordcopy.c b/sysdeps/tile/wordcopy.c
+similarity index 100%
+rename from ports/sysdeps/tile/wordcopy.c
+rename to sysdeps/tile/wordcopy.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/Makefile b/sysdeps/unix/sysv/linux/generic/Makefile
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/Makefile
+rename to sysdeps/unix/sysv/linux/generic/Makefile
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/____longjmp_chk.c b/sysdeps/unix/sysv/linux/generic/____longjmp_chk.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/____longjmp_chk.c
+rename to sysdeps/unix/sysv/linux/generic/____longjmp_chk.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/access.c b/sysdeps/unix/sysv/linux/generic/access.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/access.c
+rename to sysdeps/unix/sysv/linux/generic/access.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/bits/fcntl.h b/sysdeps/unix/sysv/linux/generic/bits/fcntl.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/bits/fcntl.h
+rename to sysdeps/unix/sysv/linux/generic/bits/fcntl.h
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/bits/msq.h b/sysdeps/unix/sysv/linux/generic/bits/msq.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/bits/msq.h
+rename to sysdeps/unix/sysv/linux/generic/bits/msq.h
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/bits/sem.h b/sysdeps/unix/sysv/linux/generic/bits/sem.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/bits/sem.h
+rename to sysdeps/unix/sysv/linux/generic/bits/sem.h
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/bits/shm.h b/sysdeps/unix/sysv/linux/generic/bits/shm.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/bits/shm.h
+rename to sysdeps/unix/sysv/linux/generic/bits/shm.h
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/bits/stat.h b/sysdeps/unix/sysv/linux/generic/bits/stat.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/bits/stat.h
+rename to sysdeps/unix/sysv/linux/generic/bits/stat.h
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/bits/statfs.h b/sysdeps/unix/sysv/linux/generic/bits/statfs.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/bits/statfs.h
+rename to sysdeps/unix/sysv/linux/generic/bits/statfs.h
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/bits/typesizes.h b/sysdeps/unix/sysv/linux/generic/bits/typesizes.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/bits/typesizes.h
+rename to sysdeps/unix/sysv/linux/generic/bits/typesizes.h
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/brk.c b/sysdeps/unix/sysv/linux/generic/brk.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/brk.c
+rename to sysdeps/unix/sysv/linux/generic/brk.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/chmod.c b/sysdeps/unix/sysv/linux/generic/chmod.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/chmod.c
+rename to sysdeps/unix/sysv/linux/generic/chmod.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/chown.c b/sysdeps/unix/sysv/linux/generic/chown.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/chown.c
+rename to sysdeps/unix/sysv/linux/generic/chown.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/creat.c b/sysdeps/unix/sysv/linux/generic/creat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/creat.c
+rename to sysdeps/unix/sysv/linux/generic/creat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/dl-origin.c b/sysdeps/unix/sysv/linux/generic/dl-origin.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/dl-origin.c
+rename to sysdeps/unix/sysv/linux/generic/dl-origin.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/dup2.c b/sysdeps/unix/sysv/linux/generic/dup2.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/dup2.c
+rename to sysdeps/unix/sysv/linux/generic/dup2.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/epoll_create.c b/sysdeps/unix/sysv/linux/generic/epoll_create.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/epoll_create.c
+rename to sysdeps/unix/sysv/linux/generic/epoll_create.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/epoll_wait.c b/sysdeps/unix/sysv/linux/generic/epoll_wait.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/epoll_wait.c
+rename to sysdeps/unix/sysv/linux/generic/epoll_wait.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/futimesat.c b/sysdeps/unix/sysv/linux/generic/futimesat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/futimesat.c
+rename to sysdeps/unix/sysv/linux/generic/futimesat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/getdents.c b/sysdeps/unix/sysv/linux/generic/getdents.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/getdents.c
+rename to sysdeps/unix/sysv/linux/generic/getdents.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/getdents64.c b/sysdeps/unix/sysv/linux/generic/getdents64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/getdents64.c
+rename to sysdeps/unix/sysv/linux/generic/getdents64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/inotify_init.c b/sysdeps/unix/sysv/linux/generic/inotify_init.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/inotify_init.c
+rename to sysdeps/unix/sysv/linux/generic/inotify_init.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/kernel_stat.h b/sysdeps/unix/sysv/linux/generic/kernel_stat.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/kernel_stat.h
+rename to sysdeps/unix/sysv/linux/generic/kernel_stat.h
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/lchown.c b/sysdeps/unix/sysv/linux/generic/lchown.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/lchown.c
+rename to sysdeps/unix/sysv/linux/generic/lchown.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/link.c b/sysdeps/unix/sysv/linux/generic/link.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/link.c
+rename to sysdeps/unix/sysv/linux/generic/link.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/lxstat.c b/sysdeps/unix/sysv/linux/generic/lxstat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/lxstat.c
+rename to sysdeps/unix/sysv/linux/generic/lxstat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/mkdir.c b/sysdeps/unix/sysv/linux/generic/mkdir.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/mkdir.c
+rename to sysdeps/unix/sysv/linux/generic/mkdir.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/not-cancel.h b/sysdeps/unix/sysv/linux/generic/not-cancel.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/not-cancel.h
+rename to sysdeps/unix/sysv/linux/generic/not-cancel.h
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/nptl/not-cancel.h b/sysdeps/unix/sysv/linux/generic/nptl/not-cancel.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/nptl/not-cancel.h
+rename to sysdeps/unix/sysv/linux/generic/nptl/not-cancel.h
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/open.c b/sysdeps/unix/sysv/linux/generic/open.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/open.c
+rename to sysdeps/unix/sysv/linux/generic/open.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/open64.c b/sysdeps/unix/sysv/linux/generic/open64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/open64.c
+rename to sysdeps/unix/sysv/linux/generic/open64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/pause.c b/sysdeps/unix/sysv/linux/generic/pause.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/pause.c
+rename to sysdeps/unix/sysv/linux/generic/pause.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/pipe.c b/sysdeps/unix/sysv/linux/generic/pipe.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/pipe.c
+rename to sysdeps/unix/sysv/linux/generic/pipe.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/poll.c b/sysdeps/unix/sysv/linux/generic/poll.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/poll.c
+rename to sysdeps/unix/sysv/linux/generic/poll.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/readlink.c b/sysdeps/unix/sysv/linux/generic/readlink.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/readlink.c
+rename to sysdeps/unix/sysv/linux/generic/readlink.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/readlink_chk.c b/sysdeps/unix/sysv/linux/generic/readlink_chk.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/readlink_chk.c
+rename to sysdeps/unix/sysv/linux/generic/readlink_chk.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/recv.c b/sysdeps/unix/sysv/linux/generic/recv.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/recv.c
+rename to sysdeps/unix/sysv/linux/generic/recv.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/rename.c b/sysdeps/unix/sysv/linux/generic/rename.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/rename.c
+rename to sysdeps/unix/sysv/linux/generic/rename.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/rmdir.c b/sysdeps/unix/sysv/linux/generic/rmdir.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/rmdir.c
+rename to sysdeps/unix/sysv/linux/generic/rmdir.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/select.c b/sysdeps/unix/sysv/linux/generic/select.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/select.c
+rename to sysdeps/unix/sysv/linux/generic/select.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/send.c b/sysdeps/unix/sysv/linux/generic/send.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/send.c
+rename to sysdeps/unix/sysv/linux/generic/send.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/symlink.c b/sysdeps/unix/sysv/linux/generic/symlink.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/symlink.c
+rename to sysdeps/unix/sysv/linux/generic/symlink.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/syscalls.list b/sysdeps/unix/sysv/linux/generic/syscalls.list
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/syscalls.list
+rename to sysdeps/unix/sysv/linux/generic/syscalls.list
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/sysctl.c b/sysdeps/unix/sysv/linux/generic/sysctl.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/sysctl.c
+rename to sysdeps/unix/sysv/linux/generic/sysctl.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/sysdep.h b/sysdeps/unix/sysv/linux/generic/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/sysdep.h
+rename to sysdeps/unix/sysv/linux/generic/sysdep.h
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/umount.c b/sysdeps/unix/sysv/linux/generic/umount.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/umount.c
+rename to sysdeps/unix/sysv/linux/generic/umount.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/unlink.c b/sysdeps/unix/sysv/linux/generic/unlink.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/unlink.c
+rename to sysdeps/unix/sysv/linux/generic/unlink.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/ustat.c b/sysdeps/unix/sysv/linux/generic/ustat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/ustat.c
+rename to sysdeps/unix/sysv/linux/generic/ustat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/utimes.c b/sysdeps/unix/sysv/linux/generic/utimes.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/utimes.c
+rename to sysdeps/unix/sysv/linux/generic/utimes.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/Versions b/sysdeps/unix/sysv/linux/generic/wordsize-32/Versions
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/Versions
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/Versions
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/fcntl.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/fcntl.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/fcntl.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/fcntl.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/fstatfs.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/fstatfs.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/fstatfs.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/fstatfs.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/ftruncate.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/ftruncate.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/ftruncate.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/ftruncate.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/ftruncate64.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/ftruncate64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/ftruncate64.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/ftruncate64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/getdents.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/getdents.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/getdents.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/getdents.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/llseek.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/llseek.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/llseek.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/llseek.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/lseek.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/lseek.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/lseek.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/lseek.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/mmap.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/mmap.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/mmap.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/mmap.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/overflow.h b/sysdeps/unix/sysv/linux/generic/wordsize-32/overflow.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/overflow.h
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/overflow.h
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/posix_fadvise.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/posix_fadvise.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/posix_fadvise.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/posix_fadvise.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/preadv.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/preadv.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/preadv.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/preadv.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/preadv64.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/preadv64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/preadv64.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/preadv64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/pwritev.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/pwritev.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/pwritev.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/pwritev.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/pwritev64.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/pwritev64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/pwritev64.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/pwritev64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/sendfile.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/sendfile.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/sendfile.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/sendfile.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/statfs.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/statfs.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/statfs.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/statfs.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/syscalls.list b/sysdeps/unix/sysv/linux/generic/wordsize-32/syscalls.list
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/syscalls.list
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/syscalls.list
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/truncate.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/truncate.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/truncate.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/truncate.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/truncate64.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/truncate64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/truncate64.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/truncate64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c
+rename to sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/xmknod.c b/sysdeps/unix/sysv/linux/generic/xmknod.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/xmknod.c
+rename to sysdeps/unix/sysv/linux/generic/xmknod.c
+diff --git a/ports/sysdeps/unix/sysv/linux/generic/xstat.c b/sysdeps/unix/sysv/linux/generic/xstat.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/generic/xstat.c
+rename to sysdeps/unix/sysv/linux/generic/xstat.c
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/Makefile b/sysdeps/unix/sysv/linux/tile/Makefile
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/Makefile
+rename to sysdeps/unix/sysv/linux/tile/Makefile
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/Versions b/sysdeps/unix/sysv/linux/tile/Versions
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/Versions
+rename to sysdeps/unix/sysv/linux/tile/Versions
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/bits/environments.h b/sysdeps/unix/sysv/linux/tile/bits/environments.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/bits/environments.h
+rename to sysdeps/unix/sysv/linux/tile/bits/environments.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/bits/libc-vdso.h b/sysdeps/unix/sysv/linux/tile/bits/libc-vdso.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/bits/libc-vdso.h
+rename to sysdeps/unix/sysv/linux/tile/bits/libc-vdso.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/bits/local_lim.h b/sysdeps/unix/sysv/linux/tile/bits/local_lim.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/bits/local_lim.h
+rename to sysdeps/unix/sysv/linux/tile/bits/local_lim.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/bits/mman.h b/sysdeps/unix/sysv/linux/tile/bits/mman.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/bits/mman.h
+rename to sysdeps/unix/sysv/linux/tile/bits/mman.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/bits/sigaction.h b/sysdeps/unix/sysv/linux/tile/bits/sigaction.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/bits/sigaction.h
+rename to sysdeps/unix/sysv/linux/tile/bits/sigaction.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/bits/siginfo.h b/sysdeps/unix/sysv/linux/tile/bits/siginfo.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/bits/siginfo.h
+rename to sysdeps/unix/sysv/linux/tile/bits/siginfo.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/cacheflush.c b/sysdeps/unix/sysv/linux/tile/cacheflush.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/cacheflush.c
+rename to sysdeps/unix/sysv/linux/tile/cacheflush.c
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/configure b/sysdeps/unix/sysv/linux/tile/configure
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/configure
+rename to sysdeps/unix/sysv/linux/tile/configure
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/configure.in b/sysdeps/unix/sysv/linux/tile/configure.in
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/configure.in
+rename to sysdeps/unix/sysv/linux/tile/configure.in
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/getcontext.S b/sysdeps/unix/sysv/linux/tile/getcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/getcontext.S
+rename to sysdeps/unix/sysv/linux/tile/getcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/gettimeofday.c b/sysdeps/unix/sysv/linux/tile/gettimeofday.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/gettimeofday.c
+rename to sysdeps/unix/sysv/linux/tile/gettimeofday.c
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/init-first.c b/sysdeps/unix/sysv/linux/tile/init-first.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/init-first.c
+rename to sysdeps/unix/sysv/linux/tile/init-first.c
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/kernel-features.h b/sysdeps/unix/sysv/linux/tile/kernel-features.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/kernel-features.h
+rename to sysdeps/unix/sysv/linux/tile/kernel-features.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/makecontext.c b/sysdeps/unix/sysv/linux/tile/makecontext.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/makecontext.c
+rename to sysdeps/unix/sysv/linux/tile/makecontext.c
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/nptl/Makefile b/sysdeps/unix/sysv/linux/tile/nptl/Makefile
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/nptl/Makefile
+rename to sysdeps/unix/sysv/linux/tile/nptl/Makefile
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/nptl/bits/pthreadtypes.h b/sysdeps/unix/sysv/linux/tile/nptl/bits/pthreadtypes.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/nptl/bits/pthreadtypes.h
+rename to sysdeps/unix/sysv/linux/tile/nptl/bits/pthreadtypes.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/nptl/bits/semaphore.h b/sysdeps/unix/sysv/linux/tile/nptl/bits/semaphore.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/nptl/bits/semaphore.h
+rename to sysdeps/unix/sysv/linux/tile/nptl/bits/semaphore.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/nptl/clone.S b/sysdeps/unix/sysv/linux/tile/nptl/clone.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/nptl/clone.S
+rename to sysdeps/unix/sysv/linux/tile/nptl/clone.S
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/nptl/createthread.c b/sysdeps/unix/sysv/linux/tile/nptl/createthread.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/nptl/createthread.c
+rename to sysdeps/unix/sysv/linux/tile/nptl/createthread.c
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/nptl/fork.c b/sysdeps/unix/sysv/linux/tile/nptl/fork.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/nptl/fork.c
+rename to sysdeps/unix/sysv/linux/tile/nptl/fork.c
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/nptl/lowlevellock.h b/sysdeps/unix/sysv/linux/tile/nptl/lowlevellock.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/nptl/lowlevellock.h
+rename to sysdeps/unix/sysv/linux/tile/nptl/lowlevellock.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/nptl/pt-vfork.S b/sysdeps/unix/sysv/linux/tile/nptl/pt-vfork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/nptl/pt-vfork.S
+rename to sysdeps/unix/sysv/linux/tile/nptl/pt-vfork.S
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/nptl/pthread_once.c b/sysdeps/unix/sysv/linux/tile/nptl/pthread_once.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/nptl/pthread_once.c
+rename to sysdeps/unix/sysv/linux/tile/nptl/pthread_once.c
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/nptl/sysdep-cancel.h b/sysdeps/unix/sysv/linux/tile/nptl/sysdep-cancel.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/nptl/sysdep-cancel.h
+rename to sysdeps/unix/sysv/linux/tile/nptl/sysdep-cancel.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/nptl/vfork.S b/sysdeps/unix/sysv/linux/tile/nptl/vfork.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/nptl/vfork.S
+rename to sysdeps/unix/sysv/linux/tile/nptl/vfork.S
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/nptl/waitpid.S b/sysdeps/unix/sysv/linux/tile/nptl/waitpid.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/nptl/waitpid.S
+rename to sysdeps/unix/sysv/linux/tile/nptl/waitpid.S
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/profil-counter.h b/sysdeps/unix/sysv/linux/tile/profil-counter.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/profil-counter.h
+rename to sysdeps/unix/sysv/linux/tile/profil-counter.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/set_dataplane.c b/sysdeps/unix/sysv/linux/tile/set_dataplane.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/set_dataplane.c
+rename to sysdeps/unix/sysv/linux/tile/set_dataplane.c
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/setcontext.S b/sysdeps/unix/sysv/linux/tile/setcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/setcontext.S
+rename to sysdeps/unix/sysv/linux/tile/setcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/sigcontextinfo.h b/sysdeps/unix/sysv/linux/tile/sigcontextinfo.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/sigcontextinfo.h
+rename to sysdeps/unix/sysv/linux/tile/sigcontextinfo.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/swapcontext.S b/sysdeps/unix/sysv/linux/tile/swapcontext.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/swapcontext.S
+rename to sysdeps/unix/sysv/linux/tile/swapcontext.S
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/sys/cachectl.h b/sysdeps/unix/sysv/linux/tile/sys/cachectl.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/sys/cachectl.h
+rename to sysdeps/unix/sysv/linux/tile/sys/cachectl.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/sys/dataplane.h b/sysdeps/unix/sysv/linux/tile/sys/dataplane.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/sys/dataplane.h
+rename to sysdeps/unix/sysv/linux/tile/sys/dataplane.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/sys/procfs.h b/sysdeps/unix/sysv/linux/tile/sys/procfs.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/sys/procfs.h
+rename to sysdeps/unix/sysv/linux/tile/sys/procfs.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/sys/ptrace.h b/sysdeps/unix/sysv/linux/tile/sys/ptrace.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/sys/ptrace.h
+rename to sysdeps/unix/sysv/linux/tile/sys/ptrace.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/sys/reg.h b/sysdeps/unix/sysv/linux/tile/sys/reg.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/sys/reg.h
+rename to sysdeps/unix/sysv/linux/tile/sys/reg.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/sys/ucontext.h b/sysdeps/unix/sysv/linux/tile/sys/ucontext.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/sys/ucontext.h
+rename to sysdeps/unix/sysv/linux/tile/sys/ucontext.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/sys/user.h b/sysdeps/unix/sysv/linux/tile/sys/user.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/sys/user.h
+rename to sysdeps/unix/sysv/linux/tile/sys/user.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/syscall.S b/sysdeps/unix/sysv/linux/tile/syscall.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/syscall.S
+rename to sysdeps/unix/sysv/linux/tile/syscall.S
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/sysdep.c b/sysdeps/unix/sysv/linux/tile/sysdep.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/sysdep.c
+rename to sysdeps/unix/sysv/linux/tile/sysdep.c
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/sysdep.h b/sysdeps/unix/sysv/linux/tile/sysdep.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/sysdep.h
+rename to sysdeps/unix/sysv/linux/tile/sysdep.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/Makefile b/sysdeps/unix/sysv/linux/tile/tilegx/Makefile
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/Makefile
+rename to sysdeps/unix/sysv/linux/tile/tilegx/Makefile
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/ioctl.S b/sysdeps/unix/sysv/linux/tile/tilegx/ioctl.S
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/ioctl.S
+rename to sysdeps/unix/sysv/linux/tile/tilegx/ioctl.S
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/ldconfig.h b/sysdeps/unix/sysv/linux/tile/tilegx/ldconfig.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/ldconfig.h
+rename to sysdeps/unix/sysv/linux/tile/tilegx/ldconfig.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/register-dump.h b/sysdeps/unix/sysv/linux/tile/tilegx/register-dump.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/register-dump.h
+rename to sysdeps/unix/sysv/linux/tile/tilegx/register-dump.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/sched_getcpu.c b/sysdeps/unix/sysv/linux/tile/tilegx/sched_getcpu.c
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/sched_getcpu.c
+rename to sysdeps/unix/sysv/linux/tile/tilegx/sched_getcpu.c
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Implies b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Implies
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Implies
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Implies
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Makefile b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Makefile
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Makefile
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/Makefile
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/c++-types.data b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/c++-types.data
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/c++-types.data
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/c++-types.data
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/ld.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/ld.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/ld.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/ld.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libBrokenLocale.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libBrokenLocale.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libBrokenLocale.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libanl.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libanl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libanl.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libanl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libc.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libc.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libc.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libcrypt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libdl.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libdl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libdl.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libdl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libm.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libm.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libm.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libnsl.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libnsl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libnsl.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libnsl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libpthread.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libpthread.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libpthread.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libpthread.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libresolv.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libresolv.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libresolv.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libresolv.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/librt.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/librt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/librt.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/librt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libthread_db.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libthread_db.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libthread_db.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libthread_db.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libutil.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libutil.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libutil.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libutil.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Implies b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Implies
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Implies
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Implies
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Makefile b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Makefile
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Makefile
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/Makefile
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/c++-types.data b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/c++-types.data
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/c++-types.data
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/c++-types.data
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/ld.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/ld.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/ld.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/ld.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libBrokenLocale.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libBrokenLocale.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libBrokenLocale.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libanl.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libanl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libanl.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libanl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libc.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libc.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libc.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libcrypt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libdl.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libdl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libdl.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libdl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libm.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libm.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libm.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libnsl.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libnsl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libnsl.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libnsl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libpthread.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libpthread.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libpthread.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libpthread.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libresolv.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libresolv.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libresolv.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libresolv.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/librt.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/librt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/librt.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/librt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libthread_db.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libthread_db.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libthread_db.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libthread_db.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libutil.abilist b/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libutil.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libutil.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libutil.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilepro/Implies b/sysdeps/unix/sysv/linux/tile/tilepro/Implies
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilepro/Implies
+rename to sysdeps/unix/sysv/linux/tile/tilepro/Implies
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilepro/ldconfig.h b/sysdeps/unix/sysv/linux/tile/tilepro/ldconfig.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilepro/ldconfig.h
+rename to sysdeps/unix/sysv/linux/tile/tilepro/ldconfig.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/c++-types.data b/sysdeps/unix/sysv/linux/tile/tilepro/nptl/c++-types.data
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/c++-types.data
+rename to sysdeps/unix/sysv/linux/tile/tilepro/nptl/c++-types.data
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/ld.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/nptl/ld.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/ld.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilepro/nptl/ld.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libBrokenLocale.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libBrokenLocale.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilepro/nptl/libBrokenLocale.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libanl.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libanl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libanl.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilepro/nptl/libanl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libc.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libc.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libc.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilepro/nptl/libc.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilepro/nptl/libcrypt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libdl.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libdl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libdl.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilepro/nptl/libdl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libm.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libm.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libm.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilepro/nptl/libm.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libnsl.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libnsl.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libnsl.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilepro/nptl/libnsl.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libpthread.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libpthread.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libpthread.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilepro/nptl/libpthread.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libresolv.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libresolv.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libresolv.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilepro/nptl/libresolv.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/librt.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/nptl/librt.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/librt.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilepro/nptl/librt.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libthread_db.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libthread_db.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libthread_db.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilepro/nptl/libthread_db.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libutil.abilist b/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libutil.abilist
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libutil.abilist
+rename to sysdeps/unix/sysv/linux/tile/tilepro/nptl/libutil.abilist
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/tilepro/register-dump.h b/sysdeps/unix/sysv/linux/tile/tilepro/register-dump.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/tilepro/register-dump.h
+rename to sysdeps/unix/sysv/linux/tile/tilepro/register-dump.h
+diff --git a/ports/sysdeps/unix/sysv/linux/tile/ucontext_i.h b/sysdeps/unix/sysv/linux/tile/ucontext_i.h
+similarity index 100%
+rename from ports/sysdeps/unix/sysv/linux/tile/ucontext_i.h
+rename to sysdeps/unix/sysv/linux/tile/ucontext_i.h
diff --git a/SOURCES/glibc-rh1505492-powerpc-sotruss.patch b/SOURCES/glibc-rh1505492-powerpc-sotruss.patch
new file mode 100644
index 0000000..6286ae5
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-powerpc-sotruss.patch
@@ -0,0 +1,83 @@
+commit 2393fc0119fa291ff01b7b912dda2069257c8600
+Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+Date:   Wed Jan 15 11:05:00 2014 -0600
+
+    PowerPC: sotruss-lib implementation
+    
+    This patch add the missing sotruss-lib interfaces for PowerPC.
+
+diff --git a/sysdeps/powerpc/sotruss-lib.c b/sysdeps/powerpc/sotruss-lib.c
+new file mode 100644
+index 0000000000000000..2e52053ed1a9fa4a
+--- /dev/null
++++ b/sysdeps/powerpc/sotruss-lib.c
+@@ -0,0 +1,69 @@
++/* PowerPC specific sotruss-lib functions.
++   Copyright (C) 2013 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 HAVE_ARCH_PLTENTER
++#define HAVE_ARCH_PLTEXIT
++
++#include <elf/sotruss-lib.c>
++
++#ifdef __powerpc64__
++# if _CALL_ELF != 2
++#  define LA_PPC_REGS          La_ppc64_regs
++#  define LA_PPC_RETVAL        La_ppc64_retval
++#  define LA_PPC_GNU_PLTENTER  la_ppc64_gnu_pltenter
++#  define LA_PPC_GNU_PLTEXIT   la_ppc64_gnu_pltexit
++# else
++#  define LA_PPC_REGS          La_ppc64v2_regs
++#  define LA_PPC_RETVAL        La_ppc64v2_retval
++#  define LA_PPC_GNU_PLTENTER  la_ppc64v2_gnu_pltenter
++#  define LA_PPC_GNU_PLTEXIT   la_ppc64v2_gnu_pltexit
++# endif
++# else
++# define LA_PPC_REGS           La_ppc32_regs
++# define LA_PPC_RETVAL         La_ppc32_retval
++# define LA_PPC_GNU_PLTENTER   la_ppc32_gnu_pltenter
++# define LA_PPC_GNU_PLTEXIT    la_ppc32_gnu_pltexit
++#endif
++
++ElfW(Addr)
++LA_PPC_GNU_PLTENTER (ElfW(Sym) *sym __attribute__ ((unused)),
++		     unsigned int ndx __attribute__ ((unused)),
++		     uintptr_t *refcook, uintptr_t *defcook,
++		     LA_PPC_REGS *regs, unsigned int *flags,
++		     const char *symname, long int *framesizep)
++{
++  print_enter (refcook, defcook, symname,
++	       regs->lr_reg[0], regs->lr_reg[1], regs->lr_reg[2], *flags);
++
++  /* No need to copy anything, we will not need the parameters in any case.  */
++  *framesizep = 0;
++
++  return sym->st_value;
++}
++
++unsigned int
++LA_PPC_GNU_PLTEXIT (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook,
++		    uintptr_t *defcook,
++		    const struct LA_PPC_REGS *inregs,
++		    struct LA_PPC_RETVAL *outregs, const char *symname)
++{
++  print_exit (refcook, defcook, symname, outregs->lrv_r3);
++
++  return 0;
++}
diff --git a/SOURCES/glibc-rh1505492-prototypes-1.patch b/SOURCES/glibc-rh1505492-prototypes-1.patch
new file mode 100644
index 0000000..43d6575
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-1.patch
@@ -0,0 +1,54 @@
+commit c93c5dec54a64563ce85b511053bd22161085d77
+Author: Andi Kleen <ak@linux.intel.com>
+Date:   Fri Dec 28 21:25:07 2012 +0100
+
+    Convert pthread_rwlock_try(rd/wr)lock to prototypes
+    
+    2012-12-28  Andi Kleen  <ak@linux.intel.com>
+    
+            * pthread_rwlock_tryrdlock.c (__pthread_rwlock_tryrdlock):
+            * Convert
+            to prototype.
+            * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock):
+            Likewise.
+
+diff --git a/nptl/pthread_rwlock_tryrdlock.c b/nptl/pthread_rwlock_tryrdlock.c
+index beaa970acfc6c0a3..1a492364154f6828 100644
+--- a/nptl/pthread_rwlock_tryrdlock.c
++++ b/nptl/pthread_rwlock_tryrdlock.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2002, 2007 Free Software Foundation, Inc.
++/* Copyright (C) 2002-2012 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+ 
+@@ -22,8 +22,7 @@
+ 
+ 
+ int
+-__pthread_rwlock_tryrdlock (rwlock)
+-     pthread_rwlock_t *rwlock;
++__pthread_rwlock_tryrdlock (pthread_rwlock_t *rwlock)
+ {
+   int result = EBUSY;
+ 
+diff --git a/nptl/pthread_rwlock_trywrlock.c b/nptl/pthread_rwlock_trywrlock.c
+index 92750b83a209c959..920cf366fa73e4ce 100644
+--- a/nptl/pthread_rwlock_trywrlock.c
++++ b/nptl/pthread_rwlock_trywrlock.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2002, 2003, 2007 Free Software Foundation, Inc.
++/* Copyright (C) 2002-2012 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
+ 
+@@ -22,8 +22,7 @@
+ 
+ 
+ int
+-__pthread_rwlock_trywrlock (rwlock)
+-     pthread_rwlock_t *rwlock;
++__pthread_rwlock_trywrlock (pthread_rwlock_t *rwlock)
+ {
+   int result = EBUSY;
+ 
diff --git a/SOURCES/glibc-rh1505492-prototypes-10.patch b/SOURCES/glibc-rh1505492-prototypes-10.patch
new file mode 100644
index 0000000..80e7b60
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-10.patch
@@ -0,0 +1,777 @@
+commit 14bb4e57c094849228ad8524693ab9432c38396c
+Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+Date:   Tue Jan 6 08:22:41 2015 -0800
+
+    Function declaration cleanup
+    
+    This patch changes the some function declaration from K&R style to
+    default ANSI C.
+    
+            * nptl/pthread_cancel.c (pthread_cancel): Use ANSI prototype.
+            * nptl/pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise.
+            * nptl/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
+            * nptl/pthread_exit.c (__pthread_exit): Likewise.
+            * nptl/pthread_join.c (pthread_join): Likewise.
+            * nptl/pthread_timedjoin.c (pthread_timedjoin_np): Likewise.
+            * sysdeps/posix/waitid.c (__waitid): Likewise.
+            * sysdeps/unix/sysv/linux/arm/pread.c (__libc_pread): Likewise.
+            * sysdeps/unix/sysv/linux/arm/pread64.c (__libc_pread64): Likewise.
+            * sysdeps/unix/sysv/linux/arm/pwrite.c (__libc_pwrite): Likewise.
+            * sysdeps/unix/sysv/linux/arm/pwrite64.c (__libc_pwrite64): Likewise.
+            * sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c (__libc_pread):
+            Likewise.
+            * sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c
+            (__libc_pread64): Likewise.
+            * sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c
+            (__libc_pwrite): Likewise.
+            * sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c
+            (__libc_pwrite64): Likewsie.
+            * sysdeps/unix/sysv/linux/mips/pread.c (__libc_pread): Likewise.
+            * sysdeps/unix/sysv/linux/mips/pread64.c (__libc_pread64): Likewise.
+            * sysdeps/unix/sysv/linux/mips/pwrite.c (__libc_pwrite): Likewise.
+            * sysdeps/unix/sysv/linux/mips/pwrite64.c (__libc_pwrite64): Likewise.
+            * sysdeps/unix/sysv/linux/msgrcv.c (__libc_msgrcv): Likewise.
+            * sysdeps/unix/sysv/linux/msgsnd.c (__libc_msgsnd): Likewise.
+            * sysdeps/unix/sysv/linux/openat.c (OPENAT_NOT_CANCEL): Likewise.
+            * sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c (__libc_pread):
+            Likewise.
+            * sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c
+            (__libc_pread64): Likewise.
+            * sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c (__libc_pwrite):
+            Likewise.
+            * sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c
+            (__libc_pwrite64): Likewise.
+            * sysdeps/unix/sysv/linux/pread.c (__libc_pread): Likewise.
+            * sysdeps/unix/sysv/linux/pread64.c (__libc_pread64): Likewise.
+            * sysdeps/unix/sysv/linux/preadv.c (PREADV): Likewise.
+            * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Likewise.
+            * sysdeps/unix/sysv/linux/pwrite.c (__libc_pwrite): Likewise.
+            * sysdeps/unix/sysv/linux/pwrite64.c (__libc_pwrite64): Likewise.
+            * sysdeps/unix/sysv/linux/pwritev.c (__libc_pwritev): Likewise.
+            * sysdeps/unix/sysv/linux/sh/pread.c (__libc_pread): Likewise.
+            * sysdeps/unix/sysv/linux/sh/pread64.c (__libc_pread64): Likewise.
+            * sysdeps/unix/sysv/linux/sh/pwrite.c (__libc_pwrite): Likewise.
+            * sysdeps/unix/sysv/linux/sh/pwrite64.c (__libc_write64): Likewise.
+            * sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Likewise.
+            * sysdeps/unix/sysv/linux/sigtimedwait.c (__sigtimedwait): Likewise.
+            * sysdeps/unix/sysv/linux/sigwait.c (__sigwait): Likewise.
+            * sysdeps/unix/sysv/linux/sigwaitinfo.c (__sigwaitinfo): Likewise.
+            * sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c (__libc_msgrcv):
+            Likewise.
+
+Conflicts:
+	sysdeps/unix/sysv/linux/pthread_kill.c
+
+Change applied to nptl/sysdeps/unix/sysv/linux/pthread_kill.c instead.
+
+diff --git a/nptl/pthread_cancel.c b/nptl/pthread_cancel.c
+index cf6e48b4144f504f..75b3821862bdc8b0 100644
+--- a/nptl/pthread_cancel.c
++++ b/nptl/pthread_cancel.c
+@@ -25,8 +25,7 @@
+ 
+ 
+ int
+-pthread_cancel (th)
+-     pthread_t th;
++pthread_cancel (pthread_t th)
+ {
+   volatile struct pthread *pd = (volatile struct pthread *) th;
+ 
+diff --git a/nptl/pthread_cond_timedwait.c b/nptl/pthread_cond_timedwait.c
+index ef33b966b82b702f..c1468169fec665b9 100644
+--- a/nptl/pthread_cond_timedwait.c
++++ b/nptl/pthread_cond_timedwait.c
+@@ -48,10 +48,8 @@ struct _condvar_cleanup_buffer
+ };
+ 
+ int
+-__pthread_cond_timedwait (cond, mutex, abstime)
+-     pthread_cond_t *cond;
+-     pthread_mutex_t *mutex;
+-     const struct timespec *abstime;
++__pthread_cond_timedwait (pthread_cond_t *cond, pthread_mutex_t *mutex,
++			  const struct timespec *abstime)
+ {
+   struct _pthread_cleanup_buffer buffer;
+   struct _condvar_cleanup_buffer cbuffer;
+diff --git a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c
+index 35505d9a191879e4..3bcfb6c0ee476e70 100644
+--- a/nptl/pthread_cond_wait.c
++++ b/nptl/pthread_cond_wait.c
+@@ -91,9 +91,7 @@ __condvar_cleanup (void *arg)
+ 
+ 
+ int
+-__pthread_cond_wait (cond, mutex)
+-     pthread_cond_t *cond;
+-     pthread_mutex_t *mutex;
++__pthread_cond_wait (pthread_cond_t *cond, pthread_mutex_t *mutex)
+ {
+   struct _pthread_cleanup_buffer buffer;
+   struct _condvar_cleanup_buffer cbuffer;
+diff --git a/nptl/pthread_exit.c b/nptl/pthread_exit.c
+index 2d1037b5c4f2b386..7fa58cf50daba368 100644
+--- a/nptl/pthread_exit.c
++++ b/nptl/pthread_exit.c
+@@ -21,8 +21,7 @@
+ 
+ 
+ void
+-__pthread_exit (value)
+-     void *value;
++__pthread_exit (void *value)
+ {
+   THREAD_SETMEM (THREAD_SELF, result, value);
+ 
+diff --git a/nptl/pthread_join.c b/nptl/pthread_join.c
+index bf1a01dbc93235de..431cd3a40b4c2c7e 100644
+--- a/nptl/pthread_join.c
++++ b/nptl/pthread_join.c
+@@ -37,9 +37,7 @@ cleanup (void *arg)
+ 
+ 
+ int
+-pthread_join (threadid, thread_return)
+-     pthread_t threadid;
+-     void **thread_return;
++pthread_join (pthread_t threadid, void **thread_return)
+ {
+   struct pthread *pd = (struct pthread *) threadid;
+ 
+diff --git a/nptl/pthread_timedjoin.c b/nptl/pthread_timedjoin.c
+index 754f5d2538eb37b0..2dae7338afb1c88d 100644
+--- a/nptl/pthread_timedjoin.c
++++ b/nptl/pthread_timedjoin.c
+@@ -30,10 +30,8 @@ cleanup (void *arg)
+ 
+ 
+ int
+-pthread_timedjoin_np (threadid, thread_return, abstime)
+-     pthread_t threadid;
+-     void **thread_return;
+-     const struct timespec *abstime;
++pthread_timedjoin_np (pthread_t threadid, void **thread_return,
++		      const struct timespec *abstime)
+ {
+   struct pthread *self;
+   struct pthread *pd = (struct pthread *) threadid;
+diff --git a/nptl/sysdeps/unix/sysv/linux/pthread_kill.c b/nptl/sysdeps/unix/sysv/linux/pthread_kill.c
+index 6804bf283f6635d8..20a9635b635bde9b 100644
+--- a/nptl/sysdeps/unix/sysv/linux/pthread_kill.c
++++ b/nptl/sysdeps/unix/sysv/linux/pthread_kill.c
+@@ -25,9 +25,7 @@
+ 
+ 
+ int
+-__pthread_kill (threadid, signo)
+-     pthread_t threadid;
+-     int signo;
++__pthread_kill (pthread_t threadid, int signo)
+ {
+   struct pthread *pd = (struct pthread *) threadid;
+ 
+diff --git a/sysdeps/posix/waitid.c b/sysdeps/posix/waitid.c
+index 69e71aca3189e37b..06542f775e1e2bee 100644
+--- a/sysdeps/posix/waitid.c
++++ b/sysdeps/posix/waitid.c
+@@ -149,11 +149,7 @@ OUR_WAITID (idtype_t idtype, id_t id, siginfo_t *infop, int options)
+ 
+ 
+ int
+-__waitid (idtype, id, infop, options)
+-     idtype_t idtype;
+-     id_t id;
+-     siginfo_t *infop;
+-     int options;
++__waitid (idtype_t idtype, id_t id, siginfo_t *infop, int options)
+ {
+   if (SINGLE_THREAD_P)
+     return do_waitid (idtype, id, infop, options);
+diff --git a/sysdeps/unix/sysv/linux/arm/pread.c b/sysdeps/unix/sysv/linux/arm/pread.c
+index ed7be7394307892c..545cb5e2637cbe28 100644
+--- a/sysdeps/unix/sysv/linux/arm/pread.c
++++ b/sysdeps/unix/sysv/linux/arm/pread.c
+@@ -25,11 +25,7 @@
+ #include <sys/syscall.h>
+ 
+ ssize_t
+-__libc_pread (fd, buf, count, offset)
+-     int fd;
+-     void *buf;
+-     size_t count;
+-     off_t offset;
++__libc_pread (int fd, void *buf, size_t count, off_t offset)
+ {
+   ssize_t result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/arm/pread64.c b/sysdeps/unix/sysv/linux/arm/pread64.c
+index a3e8dfccb7446d76..41424d218d4a0cdc 100644
+--- a/sysdeps/unix/sysv/linux/arm/pread64.c
++++ b/sysdeps/unix/sysv/linux/arm/pread64.c
+@@ -25,11 +25,7 @@
+ #include <sys/syscall.h>
+ 
+ ssize_t
+-__libc_pread64 (fd, buf, count, offset)
+-     int fd;
+-     void *buf;
+-     size_t count;
+-     off64_t offset;
++__libc_pread64 (int fd, void *buf, size_t count, off64_t offset)
+ {
+   ssize_t result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/arm/pwrite.c b/sysdeps/unix/sysv/linux/arm/pwrite.c
+index a102f307926c2873..1ce8beaf9ebf2924 100644
+--- a/sysdeps/unix/sysv/linux/arm/pwrite.c
++++ b/sysdeps/unix/sysv/linux/arm/pwrite.c
+@@ -25,11 +25,7 @@
+ #include <sys/syscall.h>
+ 
+ ssize_t
+-__libc_pwrite (fd, buf, count, offset)
+-     int fd;
+-     const void *buf;
+-     size_t count;
+-     off_t offset;
++__libc_pwrite (int fd, const void *buf, size_t count, off_t offset)
+ {
+   ssize_t result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/arm/pwrite64.c b/sysdeps/unix/sysv/linux/arm/pwrite64.c
+index 19b15f6bd7cb2e0d..c5dbc71102b5a660 100644
+--- a/sysdeps/unix/sysv/linux/arm/pwrite64.c
++++ b/sysdeps/unix/sysv/linux/arm/pwrite64.c
+@@ -25,11 +25,7 @@
+ #include <sys/syscall.h>
+ 
+ ssize_t
+-__libc_pwrite64 (fd, buf, count, offset)
+-     int fd;
+-     const void *buf;
+-     size_t count;
+-     off64_t offset;
++__libc_pwrite64 (int fd, const void *buf, size_t count, off64_t offset)
+ {
+   ssize_t result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c
+index 5145755e807ad59b..a5d7979302c0a765 100644
+--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c
++++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c
+@@ -37,11 +37,7 @@ do_pread (int fd, void *buf, size_t count, off_t offset)
+ }
+ 
+ ssize_t
+-__libc_pread (fd, buf, count, offset)
+-     int fd;
+-     void *buf;
+-     size_t count;
+-     off_t offset;
++__libc_pread (int fd, void *buf, size_t count, off_t offset)
+ {
+   if (SINGLE_THREAD_P)
+     return do_pread (fd, buf, count, offset);
+diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c
+index fd3aa1f2804337fd..eb04712a86dcb4ed 100644
+--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c
++++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c
+@@ -37,11 +37,7 @@ do_pread64 (int fd, void *buf, size_t count, off64_t offset)
+ 
+ 
+ ssize_t
+-__libc_pread64 (fd, buf, count, offset)
+-     int fd;
+-     void *buf;
+-     size_t count;
+-     off64_t offset;
++__libc_pread64 (int fd, void *buf, size_t count, off64_t offset)
+ {
+   if (SINGLE_THREAD_P)
+     return do_pread64 (fd, buf, count, offset);
+diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c
+index 0f226ff79abe2477..6b21bdcd81fe239d 100644
+--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c
++++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c
+@@ -38,11 +38,7 @@ do_pwrite (int fd, const void *buf, size_t count, off_t offset)
+ 
+ 
+ ssize_t
+-__libc_pwrite (fd, buf, count, offset)
+-     int fd;
+-     const void *buf;
+-     size_t count;
+-     off_t offset;
++__libc_pwrite (int fd, const void *buf, size_t count, off_t offset)
+ {
+   if (SINGLE_THREAD_P)
+     return do_pwrite (fd, buf, count, offset);
+diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c
+index 1afc13d24579a9f8..26ce2d5da471c019 100644
+--- a/sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c
++++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c
+@@ -37,11 +37,7 @@ do_pwrite64 (int fd, const void *buf, size_t count, off64_t offset)
+ 
+ 
+ ssize_t
+-__libc_pwrite64 (fd, buf, count, offset)
+-     int fd;
+-     const void *buf;
+-     size_t count;
+-     off64_t offset;
++__libc_pwrite64 (int fd, const void *buf, size_t count, off64_t offset)
+ {
+   if (SINGLE_THREAD_P)
+     return do_pwrite64 (fd, buf, count, offset);
+diff --git a/sysdeps/unix/sysv/linux/mips/pread.c b/sysdeps/unix/sysv/linux/mips/pread.c
+index f24e500c10efae99..fd739d1d176c13f2 100644
+--- a/sysdeps/unix/sysv/linux/mips/pread.c
++++ b/sysdeps/unix/sysv/linux/mips/pread.c
+@@ -38,11 +38,7 @@
+ 
+ 
+ ssize_t
+-__libc_pread (fd, buf, count, offset)
+-     int fd;
+-     void *buf;
+-     size_t count;
+-     off_t offset;
++__libc_pread (int fd, void *buf, size_t count, off_t offset):
+ {
+   ssize_t result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/mips/pread64.c b/sysdeps/unix/sysv/linux/mips/pread64.c
+index d5172a039d7fd269..77340c5ad9469ce9 100644
+--- a/sysdeps/unix/sysv/linux/mips/pread64.c
++++ b/sysdeps/unix/sysv/linux/mips/pread64.c
+@@ -37,11 +37,7 @@
+ 
+ 
+ ssize_t
+-__libc_pread64 (fd, buf, count, offset)
+-     int fd;
+-     void *buf;
+-     size_t count;
+-     off64_t offset;
++__libc_pread64 (int fd, void *buf, size_t count, off64_t offset)
+ {
+   ssize_t result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/mips/pwrite.c b/sysdeps/unix/sysv/linux/mips/pwrite.c
+index caa69cbb4f7e3e77..fe278a31f4f26132 100644
+--- a/sysdeps/unix/sysv/linux/mips/pwrite.c
++++ b/sysdeps/unix/sysv/linux/mips/pwrite.c
+@@ -38,11 +38,7 @@
+ 
+ 
+ ssize_t
+-__libc_pwrite (fd, buf, count, offset)
+-     int fd;
+-     const void *buf;
+-     size_t count;
+-     off_t offset;
++__libc_pwrite (int fd, const void *buf, size_t count, off_t offset)
+ {
+   ssize_t result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/mips/pwrite64.c b/sysdeps/unix/sysv/linux/mips/pwrite64.c
+index d8ae27a9abf5c606..4bc03e76d1869e66 100644
+--- a/sysdeps/unix/sysv/linux/mips/pwrite64.c
++++ b/sysdeps/unix/sysv/linux/mips/pwrite64.c
+@@ -37,11 +37,7 @@
+ 
+ 
+ ssize_t
+-__libc_pwrite64 (fd, buf, count, offset)
+-     int fd;
+-     const void *buf;
+-     size_t count;
+-     off64_t offset;
++__libc_pwrite64 (int fd, const void *buf, size_t count, off64_t offset)
+ {
+   ssize_t result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/msgrcv.c b/sysdeps/unix/sysv/linux/msgrcv.c
+index a3085abda24d4512..f5575ebebee3eed8 100644
+--- a/sysdeps/unix/sysv/linux/msgrcv.c
++++ b/sysdeps/unix/sysv/linux/msgrcv.c
+@@ -33,12 +33,8 @@ struct ipc_kludge
+ 
+ 
+ ssize_t
+-__libc_msgrcv (msqid, msgp, msgsz, msgtyp, msgflg)
+-     int msqid;
+-     void *msgp;
+-     size_t msgsz;
+-     long int msgtyp;
+-     int msgflg;
++__libc_msgrcv (int msqid, void *msgp, size_t msgsz, long int msgtyp,
++	       int msgflg)
+ {
+   /* The problem here is that Linux' calling convention only allows up to
+      fives parameters to a system call.  */
+diff --git a/sysdeps/unix/sysv/linux/msgsnd.c b/sysdeps/unix/sysv/linux/msgsnd.c
+index 2883cad8aa370c6c..e9657785942aec4d 100644
+--- a/sysdeps/unix/sysv/linux/msgsnd.c
++++ b/sysdeps/unix/sysv/linux/msgsnd.c
+@@ -24,11 +24,7 @@
+ #include <sys/syscall.h>
+ 
+ int
+-__libc_msgsnd (msqid, msgp, msgsz, msgflg)
+-     int msqid;
+-     const void *msgp;
+-     size_t msgsz;
+-     int msgflg;
++__libc_msgsnd (int msqid, const void *msgp, size_t msgsz, int msgflg)
+ {
+   if (SINGLE_THREAD_P)
+     return INLINE_SYSCALL (ipc, 5, IPCOP_msgsnd, msqid, msgsz,
+diff --git a/sysdeps/unix/sysv/linux/openat.c b/sysdeps/unix/sysv/linux/openat.c
+index 233266d4e748152d..14f81c5048bbe62a 100644
+--- a/sysdeps/unix/sysv/linux/openat.c
++++ b/sysdeps/unix/sysv/linux/openat.c
+@@ -71,11 +71,7 @@ int __have_atfcts;
+ 
+ 
+ int
+-OPENAT_NOT_CANCEL (fd, file, oflag, mode)
+-     int fd;
+-     const char *file;
+-     int oflag;
+-     mode_t mode;
++OPENAT_NOT_CANCEL (int fd, const char *file, int oflag, mode_t mode)
+ {
+ 
+   /* We have to add the O_LARGEFILE flag for openat64.  */
+@@ -151,10 +147,7 @@ OPENAT_NOT_CANCEL (fd, file, oflag, mode)
+    the directory associated with FD.  If OFLAG includes O_CREAT or
+    O_TMPFILE, a fourth argument is the file protection.  */
+ int
+-__OPENAT (fd, file, oflag)
+-     int fd;
+-     const char *file;
+-     int oflag;
++__OPENAT (int fd, const char *file, int oflag, ...)
+ {
+   mode_t mode = 0;
+   if (__OPEN_NEEDS_MODE (oflag))
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c
+index 9a9d0d456e5db1c0..bf31ed83a06abb5e 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c
+@@ -26,11 +26,7 @@
+ #include <kernel-features.h>
+ 
+ ssize_t
+-__libc_pread (fd, buf, count, offset)
+-     int fd;
+-     void *buf;
+-     size_t count;
+-     off_t offset;
++__libc_pread (int fd, void *buf, size_t count, off_t offset)
+ {
+   ssize_t result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c
+index 1435b293b143159b..b7800fcc459f1db4 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c
+@@ -26,11 +26,7 @@
+ 
+ 
+ ssize_t
+-__libc_pread64 (fd, buf, count, offset)
+-     int fd;
+-     void *buf;
+-     size_t count;
+-     off64_t offset;
++__libc_pread64 (int fd, void *buf, size_t count, off64_t offset)
+ {
+   ssize_t result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c
+index d3a551c5a97550ca..ef0ea532e12bf868 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c
+@@ -27,11 +27,7 @@
+ 
+ 
+ ssize_t
+-__libc_pwrite (fd, buf, count, offset)
+-     int fd;
+-     const void *buf;
+-     size_t count;
+-     off_t offset;
++__libc_pwrite (int fd, const void *buf, size_t count, off_t offset)
+ {
+   ssize_t result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c
+index d89a1759d1903eba..412357d704696487 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c
+@@ -26,11 +26,7 @@
+ 
+ 
+ ssize_t
+-__libc_pwrite64 (fd, buf, count, offset)
+-     int fd;
+-     const void *buf;
+-     size_t count;
+-     off64_t offset;
++__libc_pwrite64 (int fd, const void *buf, size_t count, off64_t offset)
+ {
+   ssize_t result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/pread.c b/sysdeps/unix/sysv/linux/pread.c
+index 7322e42d6ed990c1..2d6a8a64c69fc967 100644
+--- a/sysdeps/unix/sysv/linux/pread.c
++++ b/sysdeps/unix/sysv/linux/pread.c
+@@ -51,11 +51,7 @@ do_pread (int fd, void *buf, size_t count, off_t offset)
+ 
+ 
+ ssize_t
+-__libc_pread (fd, buf, count, offset)
+-     int fd;
+-     void *buf;
+-     size_t count;
+-     off_t offset;
++__libc_pread (int fd, void *buf, size_t count, off_t offset)
+ {
+   if (SINGLE_THREAD_P)
+     return do_pread (fd, buf, count, offset);
+diff --git a/sysdeps/unix/sysv/linux/pread64.c b/sysdeps/unix/sysv/linux/pread64.c
+index 03e5f1402bf8b888..8006a1765113234c 100644
+--- a/sysdeps/unix/sysv/linux/pread64.c
++++ b/sysdeps/unix/sysv/linux/pread64.c
+@@ -47,11 +47,7 @@ do_pread64 (int fd, void *buf, size_t count, off64_t offset)
+ 
+ 
+ ssize_t
+-__libc_pread64 (fd, buf, count, offset)
+-     int fd;
+-     void *buf;
+-     size_t count;
+-     off64_t offset;
++__libc_pread64 (int fd, void *buf, size_t count, off64_t offset)
+ {
+   if (SINGLE_THREAD_P)
+     return do_pread64 (fd, buf, count, offset);
+diff --git a/sysdeps/unix/sysv/linux/preadv.c b/sysdeps/unix/sysv/linux/preadv.c
+index a189680773a0765c..fedc9b6518629410 100644
+--- a/sysdeps/unix/sysv/linux/preadv.c
++++ b/sysdeps/unix/sysv/linux/preadv.c
+@@ -47,11 +47,7 @@ static ssize_t PREADV_REPLACEMENT (int, const struct iovec *,
+ 
+ 
+ ssize_t
+-PREADV (fd, vector, count, offset)
+-     int fd;
+-     const struct iovec *vector;
+-     int count;
+-     OFF_T offset;
++PREADV (int fd, const struct iovec *vector, int count, OFF_T offset)
+ {
+ #ifdef __NR_preadv
+   ssize_t result;
+diff --git a/sysdeps/unix/sysv/linux/pwrite.c b/sysdeps/unix/sysv/linux/pwrite.c
+index e773d65f2e5602a8..ea9cde3151b80a52 100644
+--- a/sysdeps/unix/sysv/linux/pwrite.c
++++ b/sysdeps/unix/sysv/linux/pwrite.c
+@@ -51,11 +51,7 @@ do_pwrite (int fd, const void *buf, size_t count, off_t offset)
+ 
+ 
+ ssize_t
+-__libc_pwrite (fd, buf, count, offset)
+-     int fd;
+-     const void *buf;
+-     size_t count;
+-     off_t offset;
++__libc_pwrite (int fd, const void *buf, size_t count, off_t offset)
+ {
+   if (SINGLE_THREAD_P)
+     return do_pwrite (fd, buf, count, offset);
+diff --git a/sysdeps/unix/sysv/linux/pwrite64.c b/sysdeps/unix/sysv/linux/pwrite64.c
+index 558a08e735616649..ab08948ad6977844 100644
+--- a/sysdeps/unix/sysv/linux/pwrite64.c
++++ b/sysdeps/unix/sysv/linux/pwrite64.c
+@@ -47,11 +47,7 @@ do_pwrite64 (int fd, const void *buf, size_t count, off64_t offset)
+ 
+ 
+ ssize_t
+-__libc_pwrite64 (fd, buf, count, offset)
+-     int fd;
+-     const void *buf;
+-     size_t count;
+-     off64_t offset;
++__libc_pwrite64 (int fd, const void *buf, size_t count, off64_t offset)
+ {
+   if (SINGLE_THREAD_P)
+     return do_pwrite64 (fd, buf, count, offset);
+diff --git a/sysdeps/unix/sysv/linux/pwritev.c b/sysdeps/unix/sysv/linux/pwritev.c
+index cfb4491ac7d65f22..22af4518b9ee9e18 100644
+--- a/sysdeps/unix/sysv/linux/pwritev.c
++++ b/sysdeps/unix/sysv/linux/pwritev.c
+@@ -47,11 +47,7 @@ static ssize_t PWRITEV_REPLACEMENT (int, const struct iovec *,
+ 
+ 
+ ssize_t
+-PWRITEV (fd, vector, count, offset)
+-     int fd;
+-     const struct iovec *vector;
+-     int count;
+-     OFF_T offset;
++PWRITEV (int fd, const struct iovec *vector, int count, OFF_T offset)
+ {
+ #ifdef __NR_pwritev
+   ssize_t result;
+diff --git a/sysdeps/unix/sysv/linux/sh/pread.c b/sysdeps/unix/sysv/linux/sh/pread.c
+index 160c906a4d0197fd..e67c1b6d27b089d8 100644
+--- a/sysdeps/unix/sysv/linux/sh/pread.c
++++ b/sysdeps/unix/sysv/linux/sh/pread.c
+@@ -35,11 +35,7 @@
+ 
+ 
+ ssize_t
+-__libc_pread (fd, buf, count, offset)
+-     int fd;
+-     void *buf;
+-     size_t count;
+-     off_t offset;
++__libc_pread (int fd, void *buf, size_t count, off_t offset)
+ {
+   ssize_t result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/sh/pread64.c b/sysdeps/unix/sysv/linux/sh/pread64.c
+index bb4f13d06b72fdf1..32a08c6f992eb054 100644
+--- a/sysdeps/unix/sysv/linux/sh/pread64.c
++++ b/sysdeps/unix/sysv/linux/sh/pread64.c
+@@ -34,11 +34,7 @@
+ 
+ 
+ ssize_t
+-__libc_pread64 (fd, buf, count, offset)
+-     int fd;
+-     void *buf;
+-     size_t count;
+-     off64_t offset;
++__libc_pread64 (int fd, void *buf, size_t count, off64_t offset)
+ {
+   ssize_t result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/sh/pwrite.c b/sysdeps/unix/sysv/linux/sh/pwrite.c
+index b17bd87a5d4f74cc..1db96ffc67df623f 100644
+--- a/sysdeps/unix/sysv/linux/sh/pwrite.c
++++ b/sysdeps/unix/sysv/linux/sh/pwrite.c
+@@ -35,11 +35,7 @@
+ 
+ 
+ ssize_t
+-__libc_pwrite (fd, buf, count, offset)
+-     int fd;
+-     const void *buf;
+-     size_t count;
+-     off_t offset;
++__libc_pwrite (int fd, const void *buf, size_t count, off_t offset)
+ {
+   ssize_t result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/sh/pwrite64.c b/sysdeps/unix/sysv/linux/sh/pwrite64.c
+index d9f41ec34cf01fb4..e6e7de32046a7954 100644
+--- a/sysdeps/unix/sysv/linux/sh/pwrite64.c
++++ b/sysdeps/unix/sysv/linux/sh/pwrite64.c
+@@ -34,11 +34,7 @@
+ 
+ 
+ ssize_t
+-__libc_pwrite64 (fd, buf, count, offset)
+-     int fd;
+-     const void *buf;
+-     size_t count;
+-     off64_t offset;
++__libc_pwrite64 (int fd, const void *buf, size_t count, off64_t offset)
+ {
+   ssize_t result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/sigsuspend.c b/sysdeps/unix/sysv/linux/sigsuspend.c
+index c673cf2b65cfe7ea..1cd1de88d303fd66 100644
+--- a/sysdeps/unix/sysv/linux/sigsuspend.c
++++ b/sysdeps/unix/sysv/linux/sigsuspend.c
+@@ -34,8 +34,7 @@ do_sigsuspend (const sigset_t *set)
+ /* Change the set of blocked signals to SET,
+    wait until a signal arrives, and restore the set of blocked signals.  */
+ int
+-__sigsuspend (set)
+-     const sigset_t *set;
++__sigsuspend (const sigset_t *set)
+ {
+   if (SINGLE_THREAD_P)
+     return do_sigsuspend (set);
+diff --git a/sysdeps/unix/sysv/linux/sigtimedwait.c b/sysdeps/unix/sysv/linux/sigtimedwait.c
+index 1cf24d0e47330b8a..30ad3023b24e7c47 100644
+--- a/sysdeps/unix/sysv/linux/sigtimedwait.c
++++ b/sysdeps/unix/sysv/linux/sigtimedwait.c
+@@ -66,10 +66,8 @@ do_sigtimedwait (const sigset_t *set, siginfo_t *info,
+ 
+ /* Return any pending signal or wait for one for the given time.  */
+ int
+-__sigtimedwait (set, info, timeout)
+-     const sigset_t *set;
+-     siginfo_t *info;
+-     const struct timespec *timeout;
++__sigtimedwait (const sigset_t *set, siginfo_t *info,
++		const struct timespec *timeout)
+ {
+   if (SINGLE_THREAD_P)
+     return do_sigtimedwait (set, info, timeout);
+diff --git a/sysdeps/unix/sysv/linux/sigwait.c b/sysdeps/unix/sysv/linux/sigwait.c
+index 5e7d8ca8c8a62f19..2e4b34f474720742 100644
+--- a/sysdeps/unix/sysv/linux/sigwait.c
++++ b/sysdeps/unix/sysv/linux/sigwait.c
+@@ -85,9 +85,7 @@ do_sigwait (const sigset_t *set, int *sig)
+ }
+ 
+ int
+-__sigwait (set, sig)
+-     const sigset_t *set;
+-     int *sig;
++__sigwait (const sigset_t *set, int *sig)
+ {
+   if (SINGLE_THREAD_P)
+     return do_sigwait (set, sig);
+diff --git a/sysdeps/unix/sysv/linux/sigwaitinfo.c b/sysdeps/unix/sysv/linux/sigwaitinfo.c
+index 0e38dff1be6cc21a..ba3408aab15ade61 100644
+--- a/sysdeps/unix/sysv/linux/sigwaitinfo.c
++++ b/sysdeps/unix/sysv/linux/sigwaitinfo.c
+@@ -67,9 +67,7 @@ do_sigwaitinfo (const sigset_t *set, siginfo_t *info)
+ 
+ /* Return any pending signal or wait for one for the given time.  */
+ int
+-__sigwaitinfo (set, info)
+-     const sigset_t *set;
+-     siginfo_t *info;
++__sigwaitinfo (const sigset_t *set, siginfo_t *info)
+ {
+   if (SINGLE_THREAD_P)
+     return do_sigwaitinfo (set, info);
+diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c b/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c
+index 3684a01142f68323..d62ce29e05122763 100644
+--- a/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c
++++ b/sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c
+@@ -23,12 +23,8 @@
+ #include <sys/syscall.h>
+ 
+ ssize_t
+-__libc_msgrcv (msqid, msgp, msgsz, msgtyp, msgflg)
+-     int msqid;
+-     void *msgp;
+-     size_t msgsz;
+-     long int msgtyp;
+-     int msgflg;
++__libc_msgrcv (int msqid, void *msgp, size_t msgsz, long int msgtyp,
++	       int msgflg)
+ {
+   if (SINGLE_THREAD_P)
+     return INLINE_SYSCALL (ipc, 6, IPCOP_msgrcv, msqid, msgsz, msgflg,
diff --git a/SOURCES/glibc-rh1505492-prototypes-11.patch b/SOURCES/glibc-rh1505492-prototypes-11.patch
new file mode 100644
index 0000000..a25dc1e
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-11.patch
@@ -0,0 +1,10109 @@
+commit 9d46370ca338054cb6ea7ebeddcf06c7ac7ad1a9
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Fri Oct 16 20:21:49 2015 +0000
+
+    Convert 703 function definitions to prototype style.
+    
+    This automatically-generated patch converts 703 function definitions
+    in glibc from old-style K&R to prototype-style.
+    
+    This conversion is deliberately simplistic, excluding any tricky cases
+    as even a patch covering only simple cases is still very large.
+    Currently excluded are: sysdeps files (to improve test coverage for
+    the initial patch); files containing assertions (to avoid line number
+    changes so that generated libraries can be compared); any cases where
+    the generated function declaration would involve lines over 79
+    characters and so need to be wrapped; any cases with array parameters
+    or other cases where parameter declarators don't end with the
+    parameter name; any other cases that my script didn't parse.
+    
+    I didn't try to make the ChangeLog generation indicate when function
+    definitions are conditional; it just lists the functions changed
+    without regard to that.
+    
+    Tested for x86_64 and x86 (testsuite, and that installed stripped
+    shared libraries are unchanged by the patch).
+    
+            * crypt/cert.c (good_bye): Convert to prototype-style function
+            definition.
+            (get8): Likewise.
+            (put8): Likewise.
+            * crypt/crypt-entry.c (crypt): Likewise.
+            (__fcrypt): Likewise.
+            * crypt/crypt_util.c (_ufc_prbits): Likewise.
+            (_ufc_set_bits): Likewise.
+            (_ufc_clearmem): Likewise.
+            (__init_des_r): Likewise.
+            (shuffle_sb): Likewise.
+            (shuffle_sb): Likewise.
+            (_ufc_setup_salt_r): Likewise.
+            (_ufc_mk_keytab_r): Likewise.
+            (_ufc_dofinalperm_r): Likewise.
+            (encrypt): Likewise.
+            (__setkey_r): Likewise.
+            (setkey): Likewise.
+            * crypt/md5.c (md5_init_ctx): Likewise.
+            (md5_read_ctx): Likewise.
+            (md5_finish_ctx): Likewise.
+            (md5_stream): Likewise.
+            (md5_buffer): Likewise.
+            (md5_process_bytes): Likewise.
+            * crypt/sha256.c (__sha256_init_ctx): Likewise.
+            (__sha256_finish_ctx): Likewise.
+            (__sha256_process_bytes): Likewise.
+            * crypt/sha512.c (__sha512_init_ctx): Likewise.
+            (__sha512_finish_ctx): Likewise.
+            (__sha512_process_bytes): Likewise.
+            * ctype/isctype.c (__isctype): Likewise.
+            * debug/backtrace.c (__backtrace): Likewise.
+            * debug/backtracesymsfd.c (__backtrace_symbols_fd): Likewise.
+            * debug/fgets_chk.c (__fgets_chk): Likewise.
+            * debug/fgets_u_chk.c (__fgets_unlocked_chk): Likewise.
+            * debug/memcpy_chk.c (__memcpy_chk): Likewise.
+            * debug/memmove_chk.c (MEMMOVE_CHK): Likewise.
+            * debug/mempcpy_chk.c (__mempcpy_chk): Likewise.
+            * debug/memset_chk.c (__memset_chk): Likewise.
+            * debug/strcat_chk.c (__strcat_chk): Likewise.
+            * debug/strncat_chk.c (__strncat_chk): Likewise.
+            * debug/strncpy_chk.c (__strncpy_chk): Likewise.
+            * debug/vsprintf_chk.c (_IO_str_chk_overflow): Likewise.
+            * dirent/dirfd.c (dirfd): Likewise.
+            * dirent/getdents.c (__getdirentries): Likewise.
+            * dirent/getdents64.c (getdirentries64): Likewise.
+            * dirent/rewinddir.c (__rewinddir): Likewise.
+            * dirent/seekdir.c (seekdir): Likewise.
+            * dirent/telldir.c (telldir): Likewise.
+            * elf/sln.c (makesymlinks): Likewise.
+            (makesymlink): Likewise.
+            * gmon/gmon.c (__moncontrol): Likewise.
+            (__monstartup): Likewise.
+            (write_hist): Likewise.
+            (write_call_graph): Likewise.
+            (write_bb_counts): Likewise.
+            * grp/setgroups.c (setgroups): Likewise.
+            * inet/inet_lnaof.c (inet_lnaof): Likewise.
+            * inet/inet_net.c (inet_network): Likewise.
+            * inet/inet_netof.c (inet_netof): Likewise.
+            * inet/rcmd.c (rresvport_af): Likewise.
+            (rresvport): Likewise.
+            * io/access.c (__access): Likewise.
+            * io/chdir.c (__chdir): Likewise.
+            * io/chmod.c (__chmod): Likewise.
+            * io/chown.c (__chown): Likewise.
+            * io/close.c (__close): Likewise.
+            * io/creat.c (creat): Likewise.
+            * io/creat64.c (creat64): Likewise.
+            * io/dup.c (__dup): Likewise.
+            * io/dup2.c (__dup2): Likewise.
+            * io/dup3.c (__dup3): Likewise.
+            * io/euidaccess.c (__euidaccess): Likewise.
+            * io/faccessat.c (faccessat): Likewise.
+            * io/fchmod.c (__fchmod): Likewise.
+            * io/fchmodat.c (fchmodat): Likewise.
+            * io/fchown.c (__fchown): Likewise.
+            * io/fchownat.c (fchownat): Likewise.
+            * io/fcntl.c (__fcntl): Likewise.
+            * io/flock.c (__flock): Likewise.
+            * io/fts.c (fts_load): Likewise.
+            (fts_close): Likewise.
+            (fts_read): Likewise.
+            (fts_set): Likewise.
+            (fts_children): Likewise.
+            (fts_build): Likewise.
+            (fts_stat): Likewise.
+            (fts_sort): Likewise.
+            (fts_alloc): Likewise.
+            (fts_lfree): Likewise.
+            (fts_palloc): Likewise.
+            (fts_padjust): Likewise.
+            (fts_maxarglen): Likewise.
+            (fts_safe_changedir): Likewise.
+            * io/getwd.c (getwd): Likewise.
+            * io/isatty.c (__isatty): Likewise.
+            * io/lchown.c (__lchown): Likewise.
+            * io/link.c (__link): Likewise.
+            * io/linkat.c (linkat): Likewise.
+            * io/lseek.c (__libc_lseek): Likewise.
+            * io/mkdir.c (__mkdir): Likewise.
+            * io/mkdirat.c (mkdirat): Likewise.
+            * io/mkfifo.c (mkfifo): Likewise.
+            * io/mkfifoat.c (mkfifoat): Likewise.
+            * io/open.c (__libc_open): Likewise.
+            * io/open64.c (__libc_open64): Likewise.
+            * io/readlink.c (__readlink): Likewise.
+            * io/readlinkat.c (readlinkat): Likewise.
+            * io/rmdir.c (__rmdir): Likewise.
+            * io/symlink.c (__symlink): Likewise.
+            * io/symlinkat.c (symlinkat): Likewise.
+            * io/ttyname.c (ttyname): Likewise.
+            * io/ttyname_r.c (__ttyname_r): Likewise.
+            * io/umask.c (__umask): Likewise.
+            * io/unlink.c (__unlink): Likewise.
+            * io/unlinkat.c (unlinkat): Likewise.
+            * io/utime.c (utime): Likewise.
+            * libio/clearerr.c (clearerr): Likewise.
+            * libio/clearerr_u.c (clearerr_unlocked): Likewise.
+            * libio/feof.c (_IO_feof): Likewise.
+            * libio/feof_u.c (feof_unlocked): Likewise.
+            * libio/ferror.c (_IO_ferror): Likewise.
+            * libio/ferror_u.c (ferror_unlocked): Likewise.
+            * libio/filedoalloc.c (_IO_file_doallocate): Likewise.
+            * libio/fileno.c (__fileno): Likewise.
+            * libio/fputc.c (fputc): Likewise.
+            * libio/fputc_u.c (fputc_unlocked): Likewise.
+            * libio/fputwc.c (fputwc): Likewise.
+            * libio/fputwc_u.c (fputwc_unlocked): Likewise.
+            * libio/freopen.c (freopen): Likewise.
+            * libio/freopen64.c (freopen64): Likewise.
+            * libio/fseek.c (fseek): Likewise.
+            * libio/fseeko.c (fseeko): Likewise.
+            * libio/fseeko64.c (fseeko64): Likewise.
+            * libio/ftello.c (__ftello): Likewise.
+            * libio/ftello64.c (ftello64): Likewise.
+            * libio/fwide.c (fwide): Likewise.
+            * libio/genops.c (_IO_un_link): Likewise.
+            (_IO_link_in): Likewise.
+            (_IO_least_marker): Likewise.
+            (_IO_switch_to_main_get_area): Likewise.
+            (_IO_switch_to_backup_area): Likewise.
+            (_IO_switch_to_get_mode): Likewise.
+            (_IO_free_backup_area): Likewise.
+            (_IO_switch_to_put_mode): Likewise.
+            (__overflow): Likewise.
+            (__underflow): Likewise.
+            (__uflow): Likewise.
+            (_IO_setb): Likewise.
+            (_IO_doallocbuf): Likewise.
+            (_IO_default_underflow): Likewise.
+            (_IO_default_uflow): Likewise.
+            (_IO_default_xsputn): Likewise.
+            (_IO_sgetn): Likewise.
+            (_IO_default_xsgetn): Likewise.
+            (_IO_sync): Likewise.
+            (_IO_default_setbuf): Likewise.
+            (_IO_default_seekpos): Likewise.
+            (_IO_default_doallocate): Likewise.
+            (_IO_init): Likewise.
+            (_IO_old_init): Likewise.
+            (_IO_default_sync): Likewise.
+            (_IO_default_finish): Likewise.
+            (_IO_default_seekoff): Likewise.
+            (_IO_sputbackc): Likewise.
+            (_IO_sungetc): Likewise.
+            (_IO_set_column): Likewise.
+            (_IO_set_column): Likewise.
+            (_IO_adjust_column): Likewise.
+            (_IO_get_column): Likewise.
+            (_IO_init_marker): Likewise.
+            (_IO_remove_marker): Likewise.
+            (_IO_marker_difference): Likewise.
+            (_IO_marker_delta): Likewise.
+            (_IO_seekmark): Likewise.
+            (_IO_unsave_markers): Likewise.
+            (_IO_nobackup_pbackfail): Likewise.
+            (_IO_default_pbackfail): Likewise.
+            (_IO_default_seek): Likewise.
+            (_IO_default_stat): Likewise.
+            (_IO_default_read): Likewise.
+            (_IO_default_write): Likewise.
+            (_IO_default_showmanyc): Likewise.
+            (_IO_default_imbue): Likewise.
+            (_IO_iter_next): Likewise.
+            (_IO_iter_file): Likewise.
+            * libio/getc.c (_IO_getc): Likewise.
+            * libio/getwc.c (_IO_getwc): Likewise.
+            * libio/iofclose.c (_IO_new_fclose): Likewise.
+            * libio/iofdopen.c (_IO_new_fdopen): Likewise.
+            * libio/iofflush.c (_IO_fflush): Likewise.
+            * libio/iofflush_u.c (__fflush_unlocked): Likewise.
+            * libio/iofgetpos.c (_IO_new_fgetpos): Likewise.
+            * libio/iofgetpos64.c (_IO_new_fgetpos64): Likewise.
+            * libio/iofgets.c (_IO_fgets): Likewise.
+            * libio/iofgets_u.c (__fgets_unlocked): Likewise.
+            * libio/iofgetws.c (fgetws): Likewise.
+            * libio/iofgetws_u.c (fgetws_unlocked): Likewise.
+            * libio/iofopen64.c (_IO_fopen64): Likewise.
+            * libio/iofopncook.c (_IO_cookie_read): Likewise.
+            (_IO_cookie_write): Likewise.
+            (_IO_cookie_seek): Likewise.
+            (_IO_cookie_close): Likewise.
+            (_IO_cookie_seekoff): Likewise.
+            (_IO_old_cookie_seek): Likewise.
+            * libio/iofputs.c (_IO_fputs): Likewise.
+            * libio/iofputs_u.c (__fputs_unlocked): Likewise.
+            * libio/iofputws.c (fputws): Likewise.
+            * libio/iofputws_u.c (fputws_unlocked): Likewise.
+            * libio/iofread.c (_IO_fread): Likewise.
+            * libio/iofread_u.c (__fread_unlocked): Likewise.
+            * libio/iofsetpos.c (_IO_new_fsetpos): Likewise.
+            * libio/iofsetpos64.c (_IO_new_fsetpos64): Likewise.
+            * libio/ioftell.c (_IO_ftell): Likewise.
+            * libio/iofwrite.c (_IO_fwrite): Likewise.
+            * libio/iogetdelim.c (_IO_getdelim): Likewise.
+            * libio/iogets.c (_IO_gets): Likewise.
+            * libio/iopadn.c (_IO_padn): Likewise.
+            * libio/iopopen.c (_IO_new_proc_open): Likewise.
+            (_IO_new_popen): Likewise.
+            (_IO_new_proc_close): Likewise.
+            * libio/ioputs.c (_IO_puts): Likewise.
+            * libio/ioseekoff.c (_IO_seekoff_unlocked): Likewise.
+            (_IO_seekoff): Likewise.
+            * libio/ioseekpos.c (_IO_seekpos_unlocked): Likewise.
+            (_IO_seekpos): Likewise.
+            * libio/iosetbuffer.c (_IO_setbuffer): Likewise.
+            * libio/iosetvbuf.c (_IO_setvbuf): Likewise.
+            * libio/ioungetc.c (_IO_ungetc): Likewise.
+            * libio/ioungetwc.c (ungetwc): Likewise.
+            * libio/iovdprintf.c (_IO_vdprintf): Likewise.
+            * libio/iovsscanf.c (_IO_vsscanf): Likewise.
+            * libio/iowpadn.c (_IO_wpadn): Likewise.
+            * libio/libc_fatal.c (__libc_fatal): Likewise.
+            * libio/memstream.c (__open_memstream): Likewise.
+            (_IO_mem_sync): Likewise.
+            (_IO_mem_finish): Likewise.
+            * libio/oldfileops.c (_IO_old_file_init): Likewise.
+            (_IO_old_file_close_it): Likewise.
+            (_IO_old_file_finish): Likewise.
+            (_IO_old_file_fopen): Likewise.
+            (_IO_old_file_attach): Likewise.
+            (_IO_old_file_setbuf): Likewise.
+            (_IO_old_do_write): Likewise.
+            (old_do_write): Likewise.
+            (_IO_old_file_underflow): Likewise.
+            (_IO_old_file_overflow): Likewise.
+            (_IO_old_file_sync): Likewise.
+            (_IO_old_file_seekoff): Likewise.
+            (_IO_old_file_write): Likewise.
+            (_IO_old_file_xsputn): Likewise.
+            * libio/oldiofclose.c (_IO_old_fclose): Likewise.
+            * libio/oldiofdopen.c (_IO_old_fdopen): Likewise.
+            * libio/oldiofgetpos.c (_IO_old_fgetpos): Likewise.
+            * libio/oldiofgetpos64.c (_IO_old_fgetpos64): Likewise.
+            * libio/oldiofopen.c (_IO_old_fopen): Likewise.
+            * libio/oldiofsetpos.c (_IO_old_fsetpos): Likewise.
+            * libio/oldiofsetpos64.c (_IO_old_fsetpos64): Likewise.
+            * libio/oldiopopen.c (_IO_old_proc_open): Likewise.
+            (_IO_old_popen): Likewise.
+            (_IO_old_proc_close): Likewise.
+            * libio/oldpclose.c (__old_pclose): Likewise.
+            * libio/pclose.c (__new_pclose): Likewise.
+            * libio/peekc.c (_IO_peekc_locked): Likewise.
+            * libio/putc.c (_IO_putc): Likewise.
+            * libio/putc_u.c (putc_unlocked): Likewise.
+            * libio/putchar.c (putchar): Likewise.
+            * libio/putchar_u.c (putchar_unlocked): Likewise.
+            * libio/putwc.c (putwc): Likewise.
+            * libio/putwc_u.c (putwc_unlocked): Likewise.
+            * libio/putwchar.c (putwchar): Likewise.
+            * libio/putwchar_u.c (putwchar_unlocked): Likewise.
+            * libio/rewind.c (rewind): Likewise.
+            * libio/setbuf.c (setbuf): Likewise.
+            * libio/setlinebuf.c (setlinebuf): Likewise.
+            * libio/vasprintf.c (_IO_vasprintf): Likewise.
+            * libio/vscanf.c (_IO_vscanf): Likewise.
+            * libio/vsnprintf.c (_IO_strn_overflow): Likewise.
+            * libio/vswprintf.c (_IO_wstrn_overflow): Likewise.
+            * libio/wfiledoalloc.c (_IO_wfile_doallocate): Likewise.
+            * libio/wgenops.c (_IO_least_wmarker): Likewise.
+            (_IO_switch_to_main_wget_area): Likewise.
+            (_IO_switch_to_wbackup_area): Likewise.
+            (_IO_wsetb): Likewise.
+            (_IO_wdefault_pbackfail): Likewise.
+            (_IO_wdefault_finish): Likewise.
+            (_IO_wdefault_uflow): Likewise.
+            (__woverflow): Likewise.
+            (__wuflow): Likewise.
+            (__wunderflow): Likewise.
+            (_IO_wdefault_xsputn): Likewise.
+            (_IO_wdefault_xsgetn): Likewise.
+            (_IO_wdoallocbuf): Likewise.
+            (_IO_wdefault_doallocate): Likewise.
+            (_IO_switch_to_wget_mode): Likewise.
+            (_IO_free_wbackup_area): Likewise.
+            (_IO_switch_to_wput_mode): Likewise.
+            (_IO_sputbackwc): Likewise.
+            (_IO_sungetwc): Likewise.
+            (_IO_adjust_wcolumn): Likewise.
+            (_IO_init_wmarker): Likewise.
+            (_IO_wmarker_delta): Likewise.
+            (_IO_seekwmark): Likewise.
+            (_IO_unsave_wmarkers): Likewise.
+            * libio/wmemstream.c (open_wmemstream): Likewise.
+            (_IO_wmem_sync): Likewise.
+            (_IO_wmem_finish): Likewise.
+            * locale/nl_langinfo.c (nl_langinfo): Likewise.
+            * locale/nl_langinfo_l.c (__nl_langinfo_l): Likewise.
+            * locale/programs/simple-hash.c (init_hash): Likewise.
+            (delete_hash): Likewise.
+            (insert_entry): Likewise.
+            (set_entry): Likewise.
+            (next_prime): Likewise.
+            (is_prime): Likewise.
+            * locale/programs/xmalloc.c (fixup_null_alloc): Likewise.
+            (xmalloc): Likewise.
+            (xrealloc): Likewise.
+            * locale/programs/xstrdup.c (xstrdup): Likewise.
+            * localedata/collate-test.c (xstrcoll): Likewise.
+            * localedata/xfrm-test.c (xstrcmp): Likewise.
+            * login/getlogin_r.c (__getlogin_r): Likewise.
+            * login/getpt.c (__posix_openpt): Likewise.
+            * login/login_tty.c (login_tty): Likewise.
+            * login/setlogin.c (setlogin): Likewise.
+            * mach/msg-destroy.c (__mach_msg_destroy): Likewise.
+            (mach_msg_destroy_port): Likewise.
+            (mach_msg_destroy_memory): Likewise.
+            * malloc/mcheck.c (flood): Likewise.
+            * misc/acct.c (acct): Likewise.
+            * misc/brk.c (__brk): Likewise.
+            * misc/chflags.c (chflags): Likewise.
+            * misc/chroot.c (chroot): Likewise.
+            * misc/fchflags.c (fchflags): Likewise.
+            * misc/fstab.c (getfsspec): Likewise.
+            (getfsfile): Likewise.
+            * misc/fsync.c (fsync): Likewise.
+            * misc/ftruncate.c (__ftruncate): Likewise.
+            * misc/ftruncate64.c (__ftruncate64): Likewise.
+            * misc/getdomain.c (getdomainname): Likewise.
+            (getdomainname): Likewise.
+            * misc/gethostname.c (__gethostname): Likewise.
+            * misc/getpass.c (getpass): Likewise.
+            * misc/getttyent.c (skip): Likewise.
+            (value): Likewise.
+            * misc/gtty.c (gtty): Likewise.
+            * misc/hsearch.c (hsearch): Likewise.
+            (hcreate): Likewise.
+            * misc/hsearch_r.c (__hcreate_r): Likewise.
+            (__hdestroy_r): Likewise.
+            * misc/ioctl.c (__ioctl): Likewise.
+            * misc/mkdtemp.c (mkdtemp): Likewise.
+            * misc/mkostemp.c (mkostemp): Likewise.
+            * misc/mkostemp64.c (mkostemp64): Likewise.
+            * misc/mkostemps.c (mkostemps): Likewise.
+            * misc/mkostemps64.c (mkostemps64): Likewise.
+            * misc/mkstemp.c (mkstemp): Likewise.
+            * misc/mkstemp64.c (mkstemp64): Likewise.
+            * misc/mkstemps.c (mkstemps): Likewise.
+            * misc/mkstemps64.c (mkstemps64): Likewise.
+            * misc/mktemp.c (__mktemp): Likewise.
+            * misc/preadv.c (preadv): Likewise.
+            * misc/preadv64.c (preadv64): Likewise.
+            * misc/pwritev.c (pwritev): Likewise.
+            * misc/pwritev64.c (pwritev64): Likewise.
+            * misc/readv.c (__readv): Likewise.
+            * misc/revoke.c (revoke): Likewise.
+            * misc/setdomain.c (setdomainname): Likewise.
+            * misc/setegid.c (setegid): Likewise.
+            * misc/seteuid.c (seteuid): Likewise.
+            * misc/sethostid.c (sethostid): Likewise.
+            * misc/sethostname.c (sethostname): Likewise.
+            * misc/setregid.c (__setregid): Likewise.
+            * misc/setreuid.c (__setreuid): Likewise.
+            * misc/sstk.c (sstk): Likewise.
+            * misc/stty.c (stty): Likewise.
+            * misc/syscall.c (syscall): Likewise.
+            * misc/syslog.c (setlogmask): Likewise.
+            * misc/truncate.c (__truncate): Likewise.
+            * misc/truncate64.c (truncate64): Likewise.
+            * misc/ualarm.c (ualarm): Likewise.
+            * misc/usleep.c (usleep): Likewise.
+            * misc/ustat.c (ustat): Likewise.
+            * misc/writev.c (__writev): Likewise.
+            * nptl/cleanup_compat.c (_pthread_cleanup_pop): Likewise.
+            * nptl/old_pthread_cond_broadcast.c
+            (__pthread_cond_broadcast_2_0): Likewise.
+            * nptl/old_pthread_cond_destroy.c (__pthread_cond_destroy_2_0):
+            Likewise.
+            * nptl/old_pthread_cond_signal.c (__pthread_cond_signal_2_0):
+            Likewise.
+            * nptl/old_pthread_cond_wait.c (__pthread_cond_wait_2_0):
+            Likewise.
+            * nptl/pt-raise.c (raise): Likewise.
+            * nptl/pthread_barrier_destroy.c (pthread_barrier_destroy):
+            Likewise.
+            * nptl/pthread_barrier_wait.c (__pthread_barrier_wait): Likewise.
+            * nptl/pthread_barrierattr_destroy.c
+            (pthread_barrierattr_destroy): Likewise.
+            * nptl/pthread_barrierattr_init.c (pthread_barrierattr_init):
+            Likewise.
+            * nptl/pthread_barrierattr_setpshared.c
+            (pthread_barrierattr_setpshared): Likewise.
+            * nptl/pthread_cond_broadcast.c (__pthread_cond_broadcast):
+            Likewise.
+            * nptl/pthread_cond_destroy.c (__pthread_cond_destroy): Likewise.
+            * nptl/pthread_cond_init.c (__pthread_cond_init): Likewise.
+            * nptl/pthread_cond_signal.c (__pthread_cond_signal): Likewise.
+            * nptl/pthread_condattr_destroy.c (__pthread_condattr_destroy):
+            Likewise.
+            * nptl/pthread_condattr_getclock.c (pthread_condattr_getclock):
+            Likewise.
+            * nptl/pthread_condattr_getpshared.c
+            (pthread_condattr_getpshared): Likewise.
+            * nptl/pthread_condattr_init.c (__pthread_condattr_init):
+            Likewise.
+            * nptl/pthread_condattr_setpshared.c
+            (pthread_condattr_setpshared): Likewise.
+            * nptl/pthread_detach.c (pthread_detach): Likewise.
+            * nptl/pthread_equal.c (__pthread_equal): Likewise.
+            * nptl/pthread_getcpuclockid.c (pthread_getcpuclockid): Likewise.
+            * nptl/pthread_getspecific.c (__pthread_getspecific): Likewise.
+            * nptl/pthread_key_delete.c (pthread_key_delete): Likewise.
+            * nptl/pthread_mutex_consistent.c (pthread_mutex_consistent):
+            Likewise.
+            * nptl/pthread_mutex_destroy.c (__pthread_mutex_destroy):
+            Likewise.
+            * nptl/pthread_mutex_getprioceiling.c
+            (pthread_mutex_getprioceiling): Likewise.
+            * nptl/pthread_mutexattr_destroy.c (__pthread_mutexattr_destroy):
+            Likewise.
+            * nptl/pthread_mutexattr_getprotocol.c
+            (pthread_mutexattr_getprotocol): Likewise.
+            * nptl/pthread_mutexattr_getpshared.c
+            (pthread_mutexattr_getpshared): Likewise.
+            * nptl/pthread_mutexattr_getrobust.c
+            (pthread_mutexattr_getrobust): Likewise.
+            * nptl/pthread_mutexattr_gettype.c (pthread_mutexattr_gettype):
+            Likewise.
+            * nptl/pthread_mutexattr_init.c (__pthread_mutexattr_init):
+            Likewise.
+            * nptl/pthread_mutexattr_setprioceiling.c
+            (pthread_mutexattr_setprioceiling): Likewise.
+            * nptl/pthread_mutexattr_setprotocol.c
+            (pthread_mutexattr_setprotocol): Likewise.
+            * nptl/pthread_mutexattr_setpshared.c
+            (pthread_mutexattr_setpshared): Likewise.
+            * nptl/pthread_mutexattr_setrobust.c
+            (pthread_mutexattr_setrobust): Likewise.
+            * nptl/pthread_mutexattr_settype.c (__pthread_mutexattr_settype):
+            Likewise.
+            * nptl/pthread_rwlock_destroy.c (__pthread_rwlock_destroy):
+            Likewise.
+            * nptl/pthread_rwlockattr_destroy.c (pthread_rwlockattr_destroy):
+            Likewise.
+            * nptl/pthread_rwlockattr_getkind_np.c
+            (pthread_rwlockattr_getkind_np): Likewise.
+            * nptl/pthread_rwlockattr_getpshared.c
+            (pthread_rwlockattr_getpshared): Likewise.
+            * nptl/pthread_rwlockattr_init.c (pthread_rwlockattr_init):
+            Likewise.
+            * nptl/pthread_rwlockattr_setkind_np.c
+            (pthread_rwlockattr_setkind_np): Likewise.
+            * nptl/pthread_rwlockattr_setpshared.c
+            (pthread_rwlockattr_setpshared): Likewise.
+            * nptl/pthread_setcancelstate.c (__pthread_setcancelstate):
+            Likewise.
+            * nptl/pthread_setcanceltype.c (__pthread_setcanceltype):
+            Likewise.
+            * nptl/pthread_setconcurrency.c (pthread_setconcurrency):
+            Likewise.
+            * nptl/pthread_setschedprio.c (pthread_setschedprio): Likewise.
+            * nptl/pthread_setspecific.c (__pthread_setspecific): Likewise.
+            * nptl/pthread_spin_destroy.c (pthread_spin_destroy): Likewise.
+            * nptl/pthread_tryjoin.c (pthread_tryjoin_np): Likewise.
+            * nptl/sem_close.c (sem_close): Likewise.
+            * nptl/sem_destroy.c (__new_sem_destroy): Likewise.
+            * nptl/sem_init.c (__old_sem_init): Likewise.
+            * nptl/sigaction.c (__sigaction): Likewise.
+            * nptl/unregister-atfork.c (__unregister_atfork): Likewise.
+            * posix/_exit.c (_exit): Likewise.
+            * posix/alarm.c (alarm): Likewise.
+            * posix/confstr.c (confstr): Likewise.
+            * posix/fpathconf.c (__fpathconf): Likewise.
+            * posix/getgroups.c (__getgroups): Likewise.
+            * posix/getpgid.c (__getpgid): Likewise.
+            * posix/group_member.c (__group_member): Likewise.
+            * posix/pathconf.c (__pathconf): Likewise.
+            * posix/sched_getaffinity.c (sched_getaffinity): Likewise.
+            * posix/sched_setaffinity.c (sched_setaffinity): Likewise.
+            * posix/setgid.c (__setgid): Likewise.
+            * posix/setpgid.c (__setpgid): Likewise.
+            * posix/setuid.c (__setuid): Likewise.
+            * posix/sleep.c (__sleep): Likewise.
+            * posix/sysconf.c (__sysconf): Likewise.
+            * posix/times.c (__times): Likewise.
+            * posix/uname.c (__uname): Likewise.
+            * posix/waitid.c (__waitid): Likewise.
+            * pwd/getpw.c (__getpw): Likewise.
+            * resolv/base64.c (b64_pton): Likewise.
+            * resolv/gai_sigqueue.c (__gai_sigqueue): Likewise.
+            * resolv/gethnamaddr.c (Dprintf): Likewise.
+            (gethostbyname): Likewise.
+            (gethostbyname2): Likewise.
+            (gethostbyaddr): Likewise.
+            (_sethtent): Likewise.
+            (_gethtbyname): Likewise.
+            (_gethtbyname2): Likewise.
+            (_gethtbyaddr): Likewise.
+            (map_v4v6_address): Likewise.
+            (map_v4v6_hostent): Likewise.
+            (addrsort): Likewise.
+            (ht_sethostent): Likewise.
+            (ht_gethostbyname): Likewise.
+            (ht_gethostbyaddr): Likewise.
+            * resolv/inet_net_ntop.c (inet_net_ntop): Likewise.
+            (inet_net_ntop_ipv4): Likewise.
+            * resolv/inet_neta.c (inet_neta): Likewise.
+            * resolv/inet_ntop.c (inet_ntop): Likewise.
+            (inet_ntop4): Likewise.
+            (inet_ntop6): Likewise.
+            * resolv/inet_pton.c (__inet_pton): Likewise.
+            (inet_pton4): Likewise.
+            (inet_pton6): Likewise.
+            * resolv/res_debug.c (loc_aton): Likewise.
+            (loc_ntoa): Likewise.
+            * resource/getpriority.c (__getpriority): Likewise.
+            * resource/getrusage.c (__getrusage): Likewise.
+            * resource/nice.c (nice): Likewise.
+            * resource/setpriority.c (__setpriority): Likewise.
+            * resource/setrlimit64.c (setrlimit64): Likewise.
+            * resource/vlimit.c (vlimit): Likewise.
+            * resource/vtimes.c (vtimes): Likewise.
+            * rt/aio_error.c (aio_error): Likewise.
+            * rt/aio_return.c (aio_return): Likewise.
+            * rt/aio_sigqueue.c (__aio_sigqueue): Likewise.
+            * signal/kill.c (__kill): Likewise.
+            * signal/killpg.c (killpg): Likewise.
+            * signal/raise.c (raise): Likewise.
+            * signal/sigaction.c (__sigaction): Likewise.
+            * signal/sigaddset.c (sigaddset): Likewise.
+            * signal/sigaltstack.c (sigaltstack): Likewise.
+            * signal/sigandset.c (sigandset): Likewise.
+            * signal/sigblock.c (__sigblock): Likewise.
+            * signal/sigdelset.c (sigdelset): Likewise.
+            * signal/sigempty.c (sigemptyset): Likewise.
+            * signal/sigfillset.c (sigfillset): Likewise.
+            * signal/sighold.c (sighold): Likewise.
+            * signal/sigignore.c (sigignore): Likewise.
+            * signal/sigintr.c (siginterrupt): Likewise.
+            * signal/sigisempty.c (sigisemptyset): Likewise.
+            * signal/sigismem.c (sigismember): Likewise.
+            * signal/signal.c (signal): Likewise.
+            * signal/sigorset.c (sigorset): Likewise.
+            * signal/sigpause.c (__sigpause): Likewise.
+            * signal/sigpending.c (sigpending): Likewise.
+            * signal/sigprocmask.c (__sigprocmask): Likewise.
+            * signal/sigrelse.c (sigrelse): Likewise.
+            * signal/sigreturn.c (__sigreturn): Likewise.
+            * signal/sigset.c (sigset): Likewise.
+            * signal/sigsetmask.c (__sigsetmask): Likewise.
+            * signal/sigstack.c (sigstack): Likewise.
+            * signal/sigsuspend.c (__sigsuspend): Likewise.
+            * signal/sigvec.c (sigvec_wrapper_handler): Likewise.
+            * signal/sysv_signal.c (__sysv_signal): Likewise.
+            * socket/accept.c (accept): Likewise.
+            * socket/accept4.c (__libc_accept4): Likewise.
+            * socket/bind.c (__bind): Likewise.
+            * socket/connect.c (__connect): Likewise.
+            * socket/getpeername.c (getpeername): Likewise.
+            * socket/getsockname.c (__getsockname): Likewise.
+            * socket/getsockopt.c (getsockopt): Likewise.
+            * socket/listen.c (__listen): Likewise.
+            * socket/recv.c (__recv): Likewise.
+            * socket/recvmsg.c (__recvmsg): Likewise.
+            * socket/send.c (__send): Likewise.
+            * socket/sendmsg.c (__sendmsg): Likewise.
+            * socket/shutdown.c (shutdown): Likewise.
+            * socket/sockatmark.c (sockatmark): Likewise.
+            * socket/socket.c (__socket): Likewise.
+            * stdio-common/ctermid.c (ctermid): Likewise.
+            * stdio-common/cuserid.c (cuserid): Likewise.
+            * stdio-common/printf-prs.c (parse_printf_format): Likewise.
+            * stdio-common/remove.c (remove): Likewise.
+            * stdio-common/rename.c (rename): Likewise.
+            * stdio-common/renameat.c (renameat): Likewise.
+            * stdio-common/tempname.c (__gen_tempname): Likewise.
+            * stdio-common/xbug.c (InitBuffer): Likewise.
+            (AppendToBuffer): Likewise.
+            (ReadFile): Likewise.
+            * stdlib/a64l.c (a64l): Likewise.
+            * stdlib/drand48_r.c (drand48_r): Likewise.
+            * stdlib/getcontext.c (getcontext): Likewise.
+            * stdlib/getenv.c (getenv): Likewise.
+            * stdlib/l64a.c (l64a): Likewise.
+            * stdlib/llabs.c (llabs): Likewise.
+            * stdlib/lldiv.c (lldiv): Likewise.
+            * stdlib/lrand48_r.c (lrand48_r): Likewise.
+            * stdlib/mrand48_r.c (mrand48_r): Likewise.
+            * stdlib/putenv.c (putenv): Likewise.
+            * stdlib/random.c (__srandom): Likewise.
+            (__initstate): Likewise.
+            (__setstate): Likewise.
+            * stdlib/random_r.c (__srandom_r): Likewise.
+            (__setstate_r): Likewise.
+            (__random_r): Likewise.
+            * stdlib/secure-getenv.c (__libc_secure_getenv): Likewise.
+            * stdlib/setcontext.c (setcontext): Likewise.
+            * stdlib/setenv.c (setenv): Likewise.
+            (unsetenv): Likewise.
+            * stdlib/srand48.c (srand48): Likewise.
+            * stdlib/srand48_r.c (__srand48_r): Likewise.
+            * stdlib/swapcontext.c (swapcontext): Likewise.
+            * stdlib/system.c (__libc_system): Likewise.
+            * stdlib/tst-strtod.c (expand): Likewise.
+            * stdlib/tst-strtol.c (expand): Likewise.
+            * stdlib/tst-strtoll.c (expand): Likewise.
+            * streams/fattach.c (fattach): Likewise.
+            * streams/fdetach.c (fdetach): Likewise.
+            * streams/getmsg.c (getmsg): Likewise.
+            * streams/isastream.c (isastream): Likewise.
+            * string/ffs.c (__ffs): Likewise.
+            * string/ffsll.c (ffsll): Likewise.
+            * string/memcmp.c (memcmp_common_alignment): Likewise.
+            (memcmp_not_common_alignment): Likewise.
+            (MEMCMP): Likewise.
+            * string/memcpy.c (memcpy): Likewise.
+            * string/memmove.c (MEMMOVE): Likewise.
+            * string/memset.c (memset): Likewise.
+            * string/rawmemchr.c (RAWMEMCHR): Likewise.
+            * string/strchrnul.c (STRCHRNUL): Likewise.
+            * string/strerror.c (strerror): Likewise.
+            * string/strndup.c (__strndup): Likewise.
+            * string/strverscmp.c (__strverscmp): Likewise.
+            * sunrpc/clnt_raw.c (clntraw_freeres): Likewise.
+            * sunrpc/clnt_tcp.c (clnttcp_geterr): Likewise.
+            (clnttcp_freeres): Likewise.
+            * sunrpc/clnt_unix.c (clntunix_freeres): Likewise.
+            * sunrpc/pmap_prot.c (xdr_pmap): Likewise.
+            * sunrpc/pmap_prot2.c (xdr_pmaplist): Likewise.
+            * sunrpc/pmap_rmt.c (xdr_rmtcallres): Likewise.
+            * sunrpc/rpc_prot.c (xdr_replymsg): Likewise.
+            (xdr_callhdr): Likewise.
+            * sunrpc/rpcinfo.c (udpping): Likewise.
+            (tcpping): Likewise.
+            (pstatus): Likewise.
+            (pmapdump): Likewise.
+            (brdcst): Likewise.
+            (deletereg): Likewise.
+            (getprognum): Likewise.
+            (getvers): Likewise.
+            (get_inet_address): Likewise.
+            * sunrpc/svc_raw.c (svcraw_recv): Likewise.
+            * sunrpc/svc_udp.c (svcudp_create): Likewise.
+            (svcudp_stat): Likewise.
+            (svcudp_recv): Likewise.
+            (svcudp_reply): Likewise.
+            (svcudp_getargs): Likewise.
+            (svcudp_freeargs): Likewise.
+            (svcudp_destroy): Likewise.
+            * sunrpc/xdr.c (xdr_bytes): Likewise.
+            (xdr_netobj): Likewise.
+            (xdr_string): Likewise.
+            (xdr_wrapstring): Likewise.
+            * sunrpc/xdr_float.c (xdr_float): Likewise.
+            (xdr_double): Likewise.
+            * sunrpc/xdr_mem.c (xdrmem_setpos): Likewise.
+            * sunrpc/xdr_ref.c (xdr_pointer): Likewise.
+            * sysvipc/ftok.c (ftok): Likewise.
+            * sysvipc/msgctl.c (msgctl): Likewise.
+            * sysvipc/msgget.c (msgget): Likewise.
+            * sysvipc/msgrcv.c (msgrcv): Likewise.
+            * sysvipc/msgsnd.c (msgsnd): Likewise.
+            * sysvipc/semget.c (semget): Likewise.
+            * sysvipc/semop.c (semop): Likewise.
+            * sysvipc/shmat.c (shmat): Likewise.
+            * sysvipc/shmctl.c (shmctl): Likewise.
+            * sysvipc/shmdt.c (shmdt): Likewise.
+            * sysvipc/shmget.c (shmget): Likewise.
+            * termios/cfmakeraw.c (cfmakeraw): Likewise.
+            * termios/speed.c (cfgetospeed): Likewise.
+            (cfgetispeed): Likewise.
+            (cfsetospeed): Likewise.
+            (cfsetispeed): Likewise.
+            * termios/tcflow.c (tcflow): Likewise.
+            * termios/tcflush.c (tcflush): Likewise.
+            * termios/tcgetattr.c (__tcgetattr): Likewise.
+            * termios/tcgetpgrp.c (tcgetpgrp): Likewise.
+            * termios/tcgetsid.c (tcgetsid): Likewise.
+            * termios/tcsendbrk.c (tcsendbreak): Likewise.
+            * termios/tcsetpgrp.c (tcsetpgrp): Likewise.
+            * time/adjtime.c (__adjtime): Likewise.
+            * time/dysize.c (dysize): Likewise.
+            * time/ftime.c (ftime): Likewise.
+            * time/getitimer.c (__getitimer): Likewise.
+            * time/gettimeofday.c (__gettimeofday): Likewise.
+            * time/gmtime.c (__gmtime_r): Likewise.
+            (gmtime): Likewise.
+            * time/localtime.c (__localtime_r): Likewise.
+            (localtime): Likewise.
+            * time/offtime.c (__offtime): Likewise.
+            * time/settimeofday.c (__settimeofday): Likewise.
+            * time/stime.c (stime): Likewise.
+            * time/strftime_l.c (tm_diff): Likewise.
+            (iso_week_days): Likewise.
+            * time/strptime.c (strptime): Likewise.
+            * time/time.c (time): Likewise.
+            * time/timespec_get.c (timespec_get): Likewise.
+            * time/tzset.c (tzset_internal): Likewise.
+            (compute_change): Likewise.
+            (__tz_compute): Likewise.
+            * wcsmbs/btowc.c (__btowc): Likewise.
+            * wcsmbs/mbrlen.c (__mbrlen): Likewise.
+            * wcsmbs/mbsinit.c (__mbsinit): Likewise.
+            * wcsmbs/mbsrtowcs.c (__mbsrtowcs): Likewise.
+            * wcsmbs/wcpcpy.c (__wcpcpy): Likewise.
+            * wcsmbs/wcpncpy.c (__wcpncpy): Likewise.
+            * wcsmbs/wcscat.c (__wcscat): Likewise.
+            * wcsmbs/wcschrnul.c (__wcschrnul): Likewise.
+            * wcsmbs/wcscmp.c (WCSCMP): Likewise.
+            * wcsmbs/wcscpy.c (WCSCPY): Likewise.
+            * wcsmbs/wcscspn.c (wcscspn): Likewise.
+            * wcsmbs/wcsdup.c (wcsdup): Likewise.
+            * wcsmbs/wcslen.c (__wcslen): Likewise.
+            * wcsmbs/wcsncat.c (WCSNCAT): Likewise.
+            * wcsmbs/wcsncmp.c (WCSNCMP): Likewise.
+            * wcsmbs/wcsncpy.c (__wcsncpy): Likewise.
+            * wcsmbs/wcsnlen.c (__wcsnlen): Likewise.
+            * wcsmbs/wcspbrk.c (wcspbrk): Likewise.
+            * wcsmbs/wcsrchr.c (WCSRCHR): Likewise.
+            * wcsmbs/wcsspn.c (wcsspn): Likewise.
+            * wcsmbs/wcsstr.c (wcsstr): Likewise.
+            * wcsmbs/wcstok.c (wcstok): Likewise.
+            * wcsmbs/wctob.c (wctob): Likewise.
+            * wcsmbs/wmemchr.c (__wmemchr): Likewise.
+            * wcsmbs/wmemcmp.c (WMEMCMP): Likewise.
+            * wcsmbs/wmemcpy.c (__wmemcpy): Likewise.
+            * wcsmbs/wmemmove.c (__wmemmove): Likewise.
+            * wcsmbs/wmempcpy.c (__wmempcpy): Likewise.
+            * wcsmbs/wmemset.c (__wmemset): Likewise.
+            * wctype/wcfuncs.c (__towlower): Likewise.
+            (__towupper): Likewise.
+
+Conflicts:
+	dirent/rewinddir.c
+	  (Missing backport of fix for swbz#17584.)
+	io/creat.c
+	  (Missing backport of d4e157aaaead89474366f58fa57e035441a2bd8b,
+	  Remove __libc_creat function name.)
+	io/lseek.c
+	  (Missing backport of b2e25af00c4b6268624a06472477112fc015e7d8,
+	  Fix aliases in stub lseek.)
+	libio/fileno.c
+	libio/ftello.c
+	libio/iofread_u.c
+	  (Missing backport of fix for swbz#17583.)
+	libio/genops.c
+	libio/oldfileops.c
+	  (Separate backport of vtable hardening in glibc-rh1398413.patch.)
+	libio/iofflush_u.c
+	  (Missing backport of fix for swbz#18540.)
+	libio/iofputs_u.c
+	  (Missing backport of fix for swbz#18530.)
+	libio/memstream.c
+	  (Missing backport of fix for swbz#18498.)
+	login/getlogin_r.c
+	  (Missing backport of fix for swbz#18527.)
+	malloc/mcheck.c
+          (Missing backport of 6c8dbf00f536d78b1937b5af6f57be47fd376344,
+	  Reformat malloc to gnu style.)
+	misc/chflags.c
+	misc/fchflags.c
+	  (Missing backport of function prototype change in commit
+	  5d2556c4fa4629b1c3adf59f29c699f00d4122ea, hurd: fix f?chflags
+	  prototypes, declare them and their flags.)
+	misc/hsearch_r.c
+	  (Missing backport of fix for swbz#17996.)
+	misc/readv.c
+	misc/writev.c
+	  (Missing backpoer of e19c95fd5ed81c1d47c6784c18942c552e6f4562,
+	  Remove __libc_readv and __libc_writev function names.)
+	nptl/pthread_barrier_wait.c
+	  (Missing backport of fix for swbz#18544.)
+	nptl/unregister-atfork.c
+	  (Change applied to nptl/sysdeps/unix/sysv/linux/unregister-atfork.c
+	  instead.)
+	resolv/gethnamaddr.c
+	resolv/inet_pton.c
+	  (Part of stub resolver rebase in glibc-rh677316-resolv.patch.)
+	resource/getpriority.c
+	resource/setpriority.c
+	  (Missing backport of fix for swbz#18553.)
+	signal/sigvec.c
+	  (Needs separate fix due to upstream sigvec removal.)
+	wcsmbs/wmemchr.c
+	  (Missing backport of fix for swbz#18468.)
+	wcsmbs/wmemset.c
+	  (Missing backport of fix for swbz#17574.)
+	wctype/wcfuncs.c
+	  (Missing backport of fix for swbz#18469.)
+
+diff --git a/crypt/cert.c b/crypt/cert.c
+index 8c838e919ac9fd38..d651108860f0052a 100644
+--- a/crypt/cert.c
++++ b/crypt/cert.c
+@@ -17,7 +17,8 @@ void get8 (char *cp);
+ void put8 (char *cp);
+ void good_bye (void) __attribute__ ((noreturn));
+ 
+-void good_bye ()
++void
++good_bye (void)
+ {
+   if(totfails == 0) {
+     printf("Passed DES validation suite\n");
+@@ -80,8 +81,7 @@ main(argc, argv)
+ 	good_bye();
+ }
+ void
+-get8(cp)
+-char *cp;
++get8 (char *cp)
+ {
+ 	int i,j,t;
+ 
+@@ -95,8 +95,7 @@ char *cp;
+ 	}
+ }
+ void
+-put8(cp)
+-char *cp;
++put8 (char *cp)
+ {
+ 	int i,j,t;
+ 
+diff --git a/crypt/crypt-entry.c b/crypt/crypt-entry.c
+index 89c22e6897b74ffe..1ad36c7d05e7b7c1 100644
+--- a/crypt/crypt-entry.c
++++ b/crypt/crypt-entry.c
+@@ -158,9 +158,7 @@ __crypt_r (key, salt, data)
+ weak_alias (__crypt_r, crypt_r)
+ 
+ char *
+-crypt (key, salt)
+-     const char *key;
+-     const char *salt;
++crypt (const char *key, const char *salt)
+ {
+ #ifdef _LIBC
+   /* Try to find out whether we have to use MD5 encryption replacement.  */
+@@ -190,9 +188,7 @@ crypt (key, salt)
+ weak_alias (crypt, fcrypt)
+ #else
+ char *
+-__fcrypt (key, salt)
+-     const char *key;
+-     const char *salt;
++__fcrypt (const char *key, const char *salt)
+ {
+   return crypt (key, salt);
+ }
+diff --git a/crypt/crypt_util.c b/crypt/crypt_util.c
+index 1ae7711915822715..bbb2ca2b58490e35 100644
+--- a/crypt/crypt_util.c
++++ b/crypt/crypt_util.c
+@@ -269,9 +269,7 @@ __libc_lock_define_initialized (static, _ufc_tables_lock)
+ #ifdef DEBUG
+ 
+ void
+-_ufc_prbits(a, n)
+-     ufc_long *a;
+-     int n;
++_ufc_prbits (ufc_long *a, int n)
+ {
+   ufc_long i, j, t, tmp;
+   n /= 8;
+@@ -287,9 +285,7 @@ _ufc_prbits(a, n)
+ }
+ 
+ static void
+-_ufc_set_bits(v, b)
+-     ufc_long v;
+-     ufc_long *b;
++_ufc_set_bits (ufc_long v, ufc_long *b)
+ {
+   ufc_long i;
+   *b = 0;
+@@ -309,9 +305,7 @@ _ufc_set_bits(v, b)
+  */
+ 
+ void
+-_ufc_clearmem(start, cnt)
+-     char *start;
+-     int cnt;
++_ufc_clearmem (char *start, int cnt)
+ {
+   while(cnt--)
+     *start++ = '\0';
+@@ -340,8 +334,7 @@ _ufc_copymem(from, to, cnt)
+  */
+ 
+ void
+-__init_des_r(__data)
+-     struct crypt_data * __restrict __data;
++__init_des_r (struct crypt_data * __restrict __data)
+ {
+   int comes_from_bit;
+   int bit, sg;
+@@ -566,9 +559,7 @@ __init_des (void)
+ 
+ #ifdef _UFC_32_
+ STATIC void
+-shuffle_sb(k, saltbits)
+-     long32 *k;
+-     ufc_long saltbits;
++shuffle_sb (long32 *k, ufc_long saltbits)
+ {
+   ufc_long j;
+   long32 x;
+@@ -582,9 +573,7 @@ shuffle_sb(k, saltbits)
+ 
+ #ifdef _UFC_64_
+ STATIC void
+-shuffle_sb(k, saltbits)
+-     long64 *k;
+-     ufc_long saltbits;
++shuffle_sb (long64 *k, ufc_long saltbits)
+ {
+   ufc_long j;
+   long64 x;
+@@ -622,9 +611,7 @@ bad_for_salt (char c)
+  */
+ 
+ bool
+-_ufc_setup_salt_r(s, __data)
+-     const char *s;
+-     struct crypt_data * __restrict __data;
++_ufc_setup_salt_r (const char *s, struct crypt_data * __restrict __data)
+ {
+   ufc_long i, j, saltbits;
+   char s0, s1;
+@@ -683,9 +670,7 @@ _ufc_setup_salt_r(s, __data)
+ }
+ 
+ void
+-_ufc_mk_keytab_r(key, __data)
+-     const char *key;
+-     struct crypt_data * __restrict __data;
++_ufc_mk_keytab_r (const char *key, struct crypt_data * __restrict __data)
+ {
+   ufc_long v1, v2, *k1;
+   int i;
+@@ -743,9 +728,7 @@ _ufc_mk_keytab_r(key, __data)
+  */
+ 
+ void
+-_ufc_dofinalperm_r(res, __data)
+-     ufc_long *res;
+-     struct crypt_data * __restrict __data;
++_ufc_dofinalperm_r (ufc_long *res, struct crypt_data * __restrict __data)
+ {
+   ufc_long v1, v2, x;
+   ufc_long l1,l2,r1,r2;
+@@ -918,9 +901,7 @@ __encrypt_r(__block, __edflag, __data)
+ weak_alias (__encrypt_r, encrypt_r)
+ 
+ void
+-encrypt(__block, __edflag)
+-     char *__block;
+-     int __edflag;
++encrypt (char *__block, int __edflag)
+ {
+   __encrypt_r(__block, __edflag, &_ufc_foobar);
+ }
+@@ -932,9 +913,7 @@ encrypt(__block, __edflag)
+  */
+ 
+ void
+-__setkey_r(__key, __data)
+-     const char *__key;
+-     struct crypt_data * __restrict __data;
++__setkey_r (const char *__key, struct crypt_data * __restrict __data)
+ {
+   int i,j;
+   unsigned char c;
+@@ -952,8 +931,7 @@ __setkey_r(__key, __data)
+ weak_alias (__setkey_r, setkey_r)
+ 
+ void
+-setkey(__key)
+-     const char *__key;
++setkey (const char *__key)
+ {
+   __setkey_r(__key, &_ufc_foobar);
+ }
+diff --git a/crypt/md5.c b/crypt/md5.c
+index 16f3cda79c578fb8..84ac44a7cd1daffb 100644
+--- a/crypt/md5.c
++++ b/crypt/md5.c
+@@ -67,8 +67,7 @@ static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ...  */ };
+ /* Initialize structure containing state of computation.
+    (RFC 1321, 3.3: Step 3)  */
+ void
+-md5_init_ctx (ctx)
+-     struct md5_ctx *ctx;
++md5_init_ctx (struct md5_ctx *ctx)
+ {
+   ctx->A = 0x67452301;
+   ctx->B = 0xefcdab89;
+@@ -85,9 +84,7 @@ md5_init_ctx (ctx)
+    IMPORTANT: On some systems it is required that RESBUF is correctly
+    aligned for a 32 bits value.  */
+ void *
+-md5_read_ctx (ctx, resbuf)
+-     const struct md5_ctx *ctx;
+-     void *resbuf;
++md5_read_ctx (const struct md5_ctx *ctx, void *resbuf)
+ {
+   ((md5_uint32 *) resbuf)[0] = SWAP (ctx->A);
+   ((md5_uint32 *) resbuf)[1] = SWAP (ctx->B);
+@@ -103,9 +100,7 @@ md5_read_ctx (ctx, resbuf)
+    IMPORTANT: On some systems it is required that RESBUF is correctly
+    aligned for a 32 bits value.  */
+ void *
+-md5_finish_ctx (ctx, resbuf)
+-     struct md5_ctx *ctx;
+-     void *resbuf;
++md5_finish_ctx (struct md5_ctx *ctx, void *resbuf)
+ {
+   /* Take yet unprocessed bytes into account.  */
+   md5_uint32 bytes = ctx->buflen;
+@@ -134,9 +129,7 @@ md5_finish_ctx (ctx, resbuf)
+    resulting message digest number will be written into the 16 bytes
+    beginning at RESBLOCK.  */
+ int
+-md5_stream (stream, resblock)
+-     FILE *stream;
+-     void *resblock;
++md5_stream (FILE *stream, void *resblock)
+ {
+   /* Important: BLOCKSIZE must be a multiple of 64.  */
+ #define BLOCKSIZE 4096
+@@ -191,10 +184,7 @@ md5_stream (stream, resblock)
+    output yields to the wanted ASCII representation of the message
+    digest.  */
+ void *
+-md5_buffer (buffer, len, resblock)
+-     const char *buffer;
+-     size_t len;
+-     void *resblock;
++md5_buffer (const char *buffer, size_t len, void *resblock)
+ {
+   struct md5_ctx ctx;
+ 
+@@ -210,10 +200,7 @@ md5_buffer (buffer, len, resblock)
+ 
+ 
+ void
+-md5_process_bytes (buffer, len, ctx)
+-     const void *buffer;
+-     size_t len;
+-     struct md5_ctx *ctx;
++md5_process_bytes (const void *buffer, size_t len, struct md5_ctx *ctx)
+ {
+   /* When we already have some bits in our internal buffer concatenate
+      both inputs first.  */
+diff --git a/crypt/sha256.c b/crypt/sha256.c
+index 1cbd2bc8381d6778..c6b04de4e7134fae 100644
+--- a/crypt/sha256.c
++++ b/crypt/sha256.c
+@@ -86,8 +86,7 @@ sha256_process_block (const void *, size_t, struct sha256_ctx *);
+ /* Initialize structure containing state of computation.
+    (FIPS 180-2:5.3.2)  */
+ void
+-__sha256_init_ctx (ctx)
+-     struct sha256_ctx *ctx;
++__sha256_init_ctx (struct sha256_ctx *ctx)
+ {
+   ctx->H[0] = 0x6a09e667;
+   ctx->H[1] = 0xbb67ae85;
+@@ -109,9 +108,7 @@ __sha256_init_ctx (ctx)
+    IMPORTANT: On some systems it is required that RESBUF is correctly
+    aligned for a 32 bits value.  */
+ void *
+-__sha256_finish_ctx (ctx, resbuf)
+-     struct sha256_ctx *ctx;
+-     void *resbuf;
++__sha256_finish_ctx (struct sha256_ctx *ctx, void *resbuf)
+ {
+   /* Take yet unprocessed bytes into account.  */
+   uint32_t bytes = ctx->buflen;
+@@ -144,10 +141,7 @@ __sha256_finish_ctx (ctx, resbuf)
+ 
+ 
+ void
+-__sha256_process_bytes (buffer, len, ctx)
+-     const void *buffer;
+-     size_t len;
+-     struct sha256_ctx *ctx;
++__sha256_process_bytes (const void *buffer, size_t len, struct sha256_ctx *ctx)
+ {
+   /* When we already have some bits in our internal buffer concatenate
+      both inputs first.  */
+diff --git a/crypt/sha512.c b/crypt/sha512.c
+index c0df12e6f0395ce4..c5e23a1ea3054e41 100644
+--- a/crypt/sha512.c
++++ b/crypt/sha512.c
+@@ -106,8 +106,7 @@ sha512_process_block (const void *buffer, size_t len, struct sha512_ctx *ctx);
+ /* Initialize structure containing state of computation.
+    (FIPS 180-2:5.3.3)  */
+ void
+-__sha512_init_ctx (ctx)
+-     struct sha512_ctx *ctx;
++__sha512_init_ctx (struct sha512_ctx *ctx)
+ {
+   ctx->H[0] = UINT64_C (0x6a09e667f3bcc908);
+   ctx->H[1] = UINT64_C (0xbb67ae8584caa73b);
+@@ -129,9 +128,7 @@ __sha512_init_ctx (ctx)
+    IMPORTANT: On some systems it is required that RESBUF is correctly
+    aligned for a 32 bits value.  */
+ void *
+-__sha512_finish_ctx (ctx, resbuf)
+-     struct sha512_ctx *ctx;
+-     void *resbuf;
++__sha512_finish_ctx (struct sha512_ctx *ctx, void *resbuf)
+ {
+   /* Take yet unprocessed bytes into account.  */
+   uint64_t bytes = ctx->buflen;
+@@ -166,10 +163,7 @@ __sha512_finish_ctx (ctx, resbuf)
+ 
+ 
+ void
+-__sha512_process_bytes (buffer, len, ctx)
+-     const void *buffer;
+-     size_t len;
+-     struct sha512_ctx *ctx;
++__sha512_process_bytes (const void *buffer, size_t len, struct sha512_ctx *ctx)
+ {
+   /* When we already have some bits in our internal buffer concatenate
+      both inputs first.  */
+diff --git a/ctype/isctype.c b/ctype/isctype.c
+index 613161e83d142b63..a5665ce09151f2ae 100644
+--- a/ctype/isctype.c
++++ b/ctype/isctype.c
+@@ -20,9 +20,7 @@
+ #undef __isctype
+ 
+ int
+-__isctype (ch, mask)
+-     int ch;
+-     int mask;
++__isctype (int ch, int mask)
+ {
+   return (((uint16_t *) _NL_CURRENT (LC_CTYPE, _NL_CTYPE_CLASS) + 128)
+ 	  [(int) (ch)] & mask);
+diff --git a/debug/backtrace.c b/debug/backtrace.c
+index 0537f6655e62be49..c0274b82ddcc6ce9 100644
+--- a/debug/backtrace.c
++++ b/debug/backtrace.c
+@@ -58,9 +58,7 @@
+ #endif
+ 
+ int
+-__backtrace (array, size)
+-     void **array;
+-     int size;
++__backtrace (void **array, int size)
+ {
+   struct layout *current;
+   void *top_frame;
+diff --git a/debug/backtracesymsfd.c b/debug/backtracesymsfd.c
+index 297e32d6ba828ae9..092395f6ede6f030 100644
+--- a/debug/backtracesymsfd.c
++++ b/debug/backtracesymsfd.c
+@@ -33,10 +33,7 @@
+ 
+ 
+ void
+-__backtrace_symbols_fd (array, size, fd)
+-     void *const *array;
+-     int size;
+-     int fd;
++__backtrace_symbols_fd (void *const *array, int size, int fd)
+ {
+   struct iovec iov[9];
+   int cnt;
+diff --git a/debug/fgets_chk.c b/debug/fgets_chk.c
+index 046ac1d12f18dd60..ae3c662e62f5b6fa 100644
+--- a/debug/fgets_chk.c
++++ b/debug/fgets_chk.c
+@@ -29,11 +29,7 @@
+ #include <sys/param.h>
+ 
+ char *
+-__fgets_chk (buf, size, n, fp)
+-     char *buf;
+-     size_t size;
+-     int n;
+-     _IO_FILE *fp;
++__fgets_chk (char *buf, size_t size, int n, _IO_FILE *fp)
+ {
+   _IO_size_t count;
+   char *result;
+diff --git a/debug/fgets_u_chk.c b/debug/fgets_u_chk.c
+index 5de92e050b8fd8b6..7066bb0996c6d507 100644
+--- a/debug/fgets_u_chk.c
++++ b/debug/fgets_u_chk.c
+@@ -29,11 +29,7 @@
+ #include <sys/param.h>
+ 
+ char *
+-__fgets_unlocked_chk (buf, size, n, fp)
+-     char *buf;
+-     size_t size;
+-     int n;
+-     _IO_FILE *fp;
++__fgets_unlocked_chk (char *buf, size_t size, int n, _IO_FILE *fp)
+ {
+   _IO_size_t count;
+   char *result;
+diff --git a/debug/memcpy_chk.c b/debug/memcpy_chk.c
+index 4af85a8cb8f5c8de..08b33fc780e06614 100644
+--- a/debug/memcpy_chk.c
++++ b/debug/memcpy_chk.c
+@@ -22,11 +22,7 @@
+ #include <memcopy.h>
+ 
+ void *
+-__memcpy_chk (dstpp, srcpp, len, dstlen)
+-     void *dstpp;
+-     const void *srcpp;
+-     size_t len;
+-     size_t dstlen;
++__memcpy_chk (void *dstpp, const void *srcpp, size_t len, size_t dstlen)
+ {
+   if (__builtin_expect (dstlen < len, 0))
+     __chk_fail ();
+diff --git a/debug/memmove_chk.c b/debug/memmove_chk.c
+index 5a304ef1b10627a1..48b796badb2c5805 100644
+--- a/debug/memmove_chk.c
++++ b/debug/memmove_chk.c
+@@ -27,11 +27,7 @@
+ #endif
+ 
+ void *
+-MEMMOVE_CHK (dest, src, len, destlen)
+-     void *dest;
+-     const void *src;
+-     size_t len;
+-     size_t destlen;
++MEMMOVE_CHK (void *dest, const void *src, size_t len, size_t destlen)
+ {
+   if (__builtin_expect (destlen < len, 0))
+     __chk_fail ();
+diff --git a/debug/mempcpy_chk.c b/debug/mempcpy_chk.c
+index 9a4f0e2fbcdde951..bd7d2c23a72e3ffe 100644
+--- a/debug/mempcpy_chk.c
++++ b/debug/mempcpy_chk.c
+@@ -23,11 +23,7 @@
+ #include <memcopy.h>
+ 
+ void *
+-__mempcpy_chk (dstpp, srcpp, len, dstlen)
+-     void *dstpp;
+-     const void *srcpp;
+-     size_t len;
+-     size_t dstlen;
++__mempcpy_chk (void *dstpp, const void *srcpp, size_t len, size_t dstlen)
+ {
+   if (__builtin_expect (dstlen < len, 0))
+     __chk_fail ();
+diff --git a/debug/memset_chk.c b/debug/memset_chk.c
+index ef6035119fe38d52..e637723df2a6acac 100644
+--- a/debug/memset_chk.c
++++ b/debug/memset_chk.c
+@@ -19,11 +19,7 @@
+ #include <memcopy.h>
+ 
+ void *
+-__memset_chk (dstpp, c, len, dstlen)
+-     void *dstpp;
+-     int c;
+-     size_t len;
+-     size_t dstlen;
++__memset_chk (void *dstpp, int c, size_t len, size_t dstlen)
+ {
+   if (__builtin_expect (dstlen < len, 0))
+     __chk_fail ();
+diff --git a/debug/strcat_chk.c b/debug/strcat_chk.c
+index 8f842ee8556afbc6..a4dce8cf34ce4bd4 100644
+--- a/debug/strcat_chk.c
++++ b/debug/strcat_chk.c
+@@ -21,10 +21,7 @@
+ 
+ /* Append SRC on the end of DEST.  */
+ char *
+-__strcat_chk (dest, src, destlen)
+-     char *dest;
+-     const char *src;
+-     size_t destlen;
++__strcat_chk (char *dest, const char *src, size_t destlen)
+ {
+   char *s1 = dest;
+   const char *s2 = src;
+diff --git a/debug/strncat_chk.c b/debug/strncat_chk.c
+index c26933154398873b..26080f41d4765f85 100644
+--- a/debug/strncat_chk.c
++++ b/debug/strncat_chk.c
+@@ -21,11 +21,7 @@
+ 
+ 
+ char *
+-__strncat_chk (s1, s2, n, s1len)
+-     char *s1;
+-     const char *s2;
+-     size_t n;
+-     size_t s1len;
++__strncat_chk (char *s1, const char *s2, size_t n, size_t s1len)
+ {
+   char c;
+   char *s = s1;
+diff --git a/debug/strncpy_chk.c b/debug/strncpy_chk.c
+index e34c1e5d67f1957f..a092337c2e8654c2 100644
+--- a/debug/strncpy_chk.c
++++ b/debug/strncpy_chk.c
+@@ -20,11 +20,7 @@
+ 
+ 
+ char *
+-__strncpy_chk (s1, s2, n, s1len)
+-     char *s1;
+-     const char *s2;
+-     size_t n;
+-     size_t s1len;
++__strncpy_chk (char *s1, const char *s2, size_t n, size_t s1len)
+ {
+   char c;
+   char *s = s1;
+diff --git a/debug/vsprintf_chk.c b/debug/vsprintf_chk.c
+index 6b2d69b6a040862d..e4abba80e8657773 100644
+--- a/debug/vsprintf_chk.c
++++ b/debug/vsprintf_chk.c
+@@ -24,9 +24,7 @@
+ static int _IO_str_chk_overflow (_IO_FILE *fp, int c) __THROW;
+ 
+ static int
+-_IO_str_chk_overflow (fp, c)
+-     _IO_FILE *fp;
+-     int c;
++_IO_str_chk_overflow (_IO_FILE *fp, int c)
+ {
+   /* When we come to here this means the user supplied buffer is
+      filled.  */
+diff --git a/dirent/dirfd.c b/dirent/dirfd.c
+index 2cab938ad36e3f24..51b136afa3aef835 100644
+--- a/dirent/dirfd.c
++++ b/dirent/dirfd.c
+@@ -21,8 +21,7 @@
+ #include <errno.h>
+ 
+ int
+-dirfd (dirp)
+-     DIR *dirp;
++dirfd (DIR *dirp)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/dirent/getdents.c b/dirent/getdents.c
+index 3b52227f743dda65..0416589e31a08841 100644
+--- a/dirent/getdents.c
++++ b/dirent/getdents.c
+@@ -21,11 +21,7 @@
+ #include <dirent.h>
+ 
+ ssize_t
+-__getdirentries (fd, buf, nbytes, basep)
+-     int fd;
+-     char *buf;
+-     size_t nbytes;
+-     off_t *basep;
++__getdirentries (int fd, char *buf, size_t nbytes, off_t *basep)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/dirent/getdents64.c b/dirent/getdents64.c
+index 63b0435db5112d5a..4dca8266077604ab 100644
+--- a/dirent/getdents64.c
++++ b/dirent/getdents64.c
+@@ -21,11 +21,7 @@
+ #include <dirent.h>
+ 
+ ssize_t
+-getdirentries64 (fd, buf, nbytes, basep)
+-     int fd;
+-     char *buf;
+-     size_t nbytes;
+-     off64_t *basep;
++getdirentries64 (int fd, char *buf, size_t nbytes, off64_t *basep)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/dirent/rewinddir.c b/dirent/rewinddir.c
+index 78e4d5399d195400..1cbc53cc0a1b1e7a 100644
+--- a/dirent/rewinddir.c
++++ b/dirent/rewinddir.c
+@@ -22,8 +22,7 @@
+ 
+ /* Rewind DIRP to the beginning of the directory.  */
+ void
+-rewinddir (dirp)
+-     DIR *dirp;
++rewinddir (DIR *dirp)
+ {
+   __set_errno (ENOSYS);
+   /* No way to indicate failure.	*/
+diff --git a/dirent/seekdir.c b/dirent/seekdir.c
+index a274bcdeb0c690a8..8e572d93d688fa17 100644
+--- a/dirent/seekdir.c
++++ b/dirent/seekdir.c
+@@ -22,9 +22,7 @@
+ 
+ /* Seek to position POS in DIRP.  */
+ void
+-seekdir (dirp, pos)
+-     DIR *dirp;
+-     long int pos;
++seekdir (DIR *dirp, long int pos)
+ {
+   if (dirp == NULL)
+     {
+diff --git a/dirent/telldir.c b/dirent/telldir.c
+index a00e750063aa9e3b..93edf4e8d05b2d99 100644
+--- a/dirent/telldir.c
++++ b/dirent/telldir.c
+@@ -22,8 +22,7 @@
+ 
+ /* Return the current position of DIRP.  */
+ long int
+-telldir (dirp)
+-     DIR *dirp;
++telldir (DIR *dirp)
+ {
+   if (dirp == NULL)
+     {
+diff --git a/elf/sln.c b/elf/sln.c
+index 1bad21f22629b1c6..9b4808cd82f553c7 100644
+--- a/elf/sln.c
++++ b/elf/sln.c
+@@ -87,8 +87,7 @@ usage (void)
+ }
+ 
+ static int
+-makesymlinks (file)
+-     const char *file;
++makesymlinks (const char *file)
+ {
+ #ifndef PATH_MAX
+ #define PATH_MAX 4095
+@@ -163,9 +162,7 @@ makesymlinks (file)
+ }
+ 
+ static int
+-makesymlink (src, dest)
+-     const char *src;
+-     const char *dest;
++makesymlink (const char *src, const char *dest)
+ {
+   struct stat stats;
+   const char *error;
+diff --git a/gmon/gmon.c b/gmon/gmon.c
+index 9774d57ccced2079..e9988c06c4d3a569 100644
+--- a/gmon/gmon.c
++++ b/gmon/gmon.c
+@@ -72,8 +72,7 @@ static void write_bb_counts (int fd) internal_function;
+  *	all the data structures are ready.
+  */
+ void
+-__moncontrol (mode)
+-     int mode;
++__moncontrol (int mode)
+ {
+   struct gmonparam *p = &_gmonparam;
+ 
+@@ -98,9 +97,7 @@ weak_alias (__moncontrol, moncontrol)
+ 
+ 
+ void
+-__monstartup (lowpc, highpc)
+-     u_long lowpc;
+-     u_long highpc;
++__monstartup (u_long lowpc, u_long highpc)
+ {
+   int o;
+   char *cp;
+@@ -175,8 +172,7 @@ weak_alias (__monstartup, monstartup)
+ 
+ static void
+ internal_function
+-write_hist (fd)
+-     int fd;
++write_hist (int fd)
+ {
+   u_char tag = GMON_TAG_TIME_HIST;
+ 
+@@ -227,8 +223,7 @@ write_hist (fd)
+ 
+ static void
+ internal_function
+-write_call_graph (fd)
+-     int fd;
++write_call_graph (int fd)
+ {
+ #define NARCS_PER_WRITEV	32
+   u_char tag = GMON_TAG_CG_ARC;
+@@ -290,8 +285,7 @@ write_call_graph (fd)
+ 
+ static void
+ internal_function
+-write_bb_counts (fd)
+-     int fd;
++write_bb_counts (int fd)
+ {
+   struct __bb *grp;
+   u_char tag = GMON_TAG_BB_COUNT;
+diff --git a/grp/setgroups.c b/grp/setgroups.c
+index 2de0c8fd9a7b4681..c20a794ad6263e92 100644
+--- a/grp/setgroups.c
++++ b/grp/setgroups.c
+@@ -21,9 +21,7 @@
+ 
+ /* Set the group set for the current user to GROUPS (N of them).  */
+ int
+-setgroups (n, groups)
+-     size_t n;
+-     const gid_t *groups;
++setgroups (size_t n, const gid_t *groups)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/inet/inet_lnaof.c b/inet/inet_lnaof.c
+index c993c8b8471f4215..8fd759ccbb01557c 100644
+--- a/inet/inet_lnaof.c
++++ b/inet/inet_lnaof.c
+@@ -41,8 +41,7 @@ static char sccsid[] = "@(#)inet_lnaof.c	8.1 (Berkeley) 6/4/93";
+  * number formats.
+  */
+ in_addr_t
+-inet_lnaof(in)
+-	struct in_addr in;
++inet_lnaof (struct in_addr in)
+ {
+ 	u_int32_t i = ntohl(in.s_addr);
+ 
+diff --git a/inet/inet_net.c b/inet/inet_net.c
+index 68e232f3d3dc1e1d..93e230cadfac57d9 100644
+--- a/inet/inet_net.c
++++ b/inet/inet_net.c
+@@ -42,8 +42,7 @@ static char sccsid[] = "@(#)inet_network.c	8.1 (Berkeley) 6/4/93";
+  * network numbers.
+  */
+ u_int32_t
+-inet_network(cp)
+-	const char *cp;
++inet_network (const char *cp)
+ {
+ 	u_int32_t val, base, n, i;
+ 	char c;
+diff --git a/inet/inet_netof.c b/inet/inet_netof.c
+index 9b0aed992e9ba65f..0f048e6c46edff7a 100644
+--- a/inet/inet_netof.c
++++ b/inet/inet_netof.c
+@@ -40,8 +40,7 @@ static char sccsid[] = "@(#)inet_netof.c	8.1 (Berkeley) 6/4/93";
+  * address; handles class a/b/c network #'s.
+  */
+ in_addr_t
+-inet_netof(in)
+-	struct in_addr in;
++inet_netof (struct in_addr in)
+ {
+ 	u_int32_t i = ntohl(in.s_addr);
+ 
+diff --git a/inet/rcmd.c b/inet/rcmd.c
+index 7da79b0730d9ad3a..efca27d674720e9c 100644
+--- a/inet/rcmd.c
++++ b/inet/rcmd.c
+@@ -370,9 +370,7 @@ rcmd(ahost, rport, locuser, remuser, cmd, fd2p)
+ }
+ 
+ int
+-rresvport_af(alport, family)
+-	int *alport;
+-	sa_family_t family;
++rresvport_af (int *alport, sa_family_t family)
+ {
+ 	struct sockaddr_storage ss;
+ 	int s;
+@@ -427,8 +425,7 @@ rresvport_af(alport, family)
+ libc_hidden_def (rresvport_af)
+ 
+ int
+-rresvport(alport)
+-	int *alport;
++rresvport (int *alport)
+ {
+ 	return rresvport_af(alport, AF_INET);
+ }
+diff --git a/io/access.c b/io/access.c
+index 9b82a99a56bd67b7..c293698127599116 100644
+--- a/io/access.c
++++ b/io/access.c
+@@ -21,9 +21,7 @@
+ 
+ /* Test for access to FILE.  */
+ int
+-__access (file, type)
+-     const char *file;
+-     int type;
++__access (const char *file, int type)
+ {
+   if (file == NULL || (type & ~(R_OK|W_OK|X_OK|F_OK)) != 0)
+     {
+diff --git a/io/chdir.c b/io/chdir.c
+index 251afd3ce6fc19f6..6febaadb689cae59 100644
+--- a/io/chdir.c
++++ b/io/chdir.c
+@@ -21,8 +21,7 @@
+ 
+ /* Change the current directory to PATH.  */
+ int
+-__chdir (path)
+-     const char *path;
++__chdir (const char *path)
+ {
+   if (path == NULL)
+     {
+diff --git a/io/chmod.c b/io/chmod.c
+index 8e4be3dfb125a710..bc77dad2c5cdb69e 100644
+--- a/io/chmod.c
++++ b/io/chmod.c
+@@ -22,9 +22,7 @@
+ 
+ /* Change the protections of FILE to MODE.  */
+ int
+-__chmod (file, mode)
+-     const char *file;
+-     mode_t mode;
++__chmod (const char *file, mode_t mode)
+ {
+   if (file == NULL)
+     {
+diff --git a/io/chown.c b/io/chown.c
+index 45bd9e248498c4f4..f710c355b19f2ee0 100644
+--- a/io/chown.c
++++ b/io/chown.c
+@@ -23,10 +23,7 @@
+ 
+ /* Change the owner and group of FILE.  */
+ int
+-__chown (file, owner, group)
+-     const char *file;
+-     uid_t owner;
+-     gid_t group;
++__chown (const char *file, uid_t owner, gid_t group)
+ {
+   if (file == NULL)
+     {
+diff --git a/io/close.c b/io/close.c
+index ce9276ff7dd274e2..c2a3e0c2bbd99e57 100644
+--- a/io/close.c
++++ b/io/close.c
+@@ -20,8 +20,7 @@
+ 
+ /* Close the file descriptor FD.  */
+ int
+-__close (fd)
+-     int fd;
++__close (int fd)
+ {
+   if (fd < 0)
+     {
+diff --git a/io/creat.c b/io/creat.c
+index 10edff1939253506..15b6f185117beb8d 100644
+--- a/io/creat.c
++++ b/io/creat.c
+@@ -23,9 +23,7 @@
+ 
+ /* Create FILE with protections MODE.  */
+ int
+-__libc_creat (file, mode)
+-     const char *file;
+-     mode_t mode;
++__libc_creat (const char *file, mode_t mode)
+ {
+   return __open (file, O_WRONLY|O_CREAT|O_TRUNC, mode);
+ }
+diff --git a/io/creat64.c b/io/creat64.c
+index 450c5359f940e1d9..d94bb1047315b56a 100644
+--- a/io/creat64.c
++++ b/io/creat64.c
+@@ -22,9 +22,7 @@
+ 
+ /* Create FILE with protections MODE.  */
+ int
+-creat64 (file, mode)
+-     const char *file;
+-     mode_t mode;
++creat64 (const char *file, mode_t mode)
+ {
+   return __open64 (file, O_WRONLY|O_CREAT|O_TRUNC, mode);
+ }
+diff --git a/io/dup.c b/io/dup.c
+index c659de3d0a14e20d..b9140d96a8a97464 100644
+--- a/io/dup.c
++++ b/io/dup.c
+@@ -21,8 +21,7 @@
+ 
+ /* Duplicate FD, returning a new file descriptor open on the same file.  */
+ int
+-__dup (fd)
+-     int fd;
++__dup (int fd)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/io/dup2.c b/io/dup2.c
+index a043af5a08ba3cac..9e3b2955218070f2 100644
+--- a/io/dup2.c
++++ b/io/dup2.c
+@@ -23,9 +23,7 @@
+ /* Duplicate FD to FD2, closing the old FD2 and making FD2 be
+    open the same file as FD is.  Return FD2 or -1.  */
+ int
+-__dup2 (fd, fd2)
+-     int fd;
+-     int fd2;
++__dup2 (int fd, int fd2)
+ {
+   if (fd < 0 || fd2 < 0)
+     {
+diff --git a/io/dup3.c b/io/dup3.c
+index 4df7e9bc4b177d00..85f73430f246e71f 100644
+--- a/io/dup3.c
++++ b/io/dup3.c
+@@ -24,10 +24,7 @@
+    open the same file as FD is which setting flags according to
+    FLAGS.  Return FD2 or -1.  */
+ int
+-__dup3 (fd, fd2, flags)
+-     int fd;
+-     int fd2;
+-     int flags;
++__dup3 (int fd, int fd2, int flags)
+ {
+   if (fd < 0 || fd2 < 0)
+     {
+diff --git a/io/euidaccess.c b/io/euidaccess.c
+index d71d22139dc7d67c..810478d5b700dcbb 100644
+--- a/io/euidaccess.c
++++ b/io/euidaccess.c
+@@ -21,9 +21,7 @@
+ #include <unistd.h>
+ 
+ int
+-__euidaccess (file, type)
+-     const char *file;
+-     int type;
++__euidaccess (const char *file, int type)
+ {
+   if (file == NULL || (type & ~(R_OK|W_OK|X_OK|F_OK)) != 0)
+     {
+diff --git a/io/faccessat.c b/io/faccessat.c
+index 4e8e46c05323cbb3..e56c9804d793d1e2 100644
+--- a/io/faccessat.c
++++ b/io/faccessat.c
+@@ -23,11 +23,7 @@
+ #include <sys/types.h>
+ 
+ int
+-faccessat (fd, file, type, flag)
+-     int fd;
+-     const char *file;
+-     int type;
+-     int flag;
++faccessat (int fd, const char *file, int type, int flag)
+ {
+   if (file == NULL || (flag & ~(AT_SYMLINK_NOFOLLOW | AT_EACCESS)) != 0
+       || (type & ~(R_OK|W_OK|X_OK|F_OK)) != 0)
+diff --git a/io/fchmod.c b/io/fchmod.c
+index b5dc512dd084d34b..b46e40f59ce84420 100644
+--- a/io/fchmod.c
++++ b/io/fchmod.c
+@@ -22,9 +22,7 @@
+ 
+ /* Change the permissions of the file referenced by FD to MODE.  */
+ int
+-__fchmod (fd, mode)
+-     int fd;
+-     mode_t mode;
++__fchmod (int fd, mode_t mode)
+ {
+   if (fd < 0)
+     {
+diff --git a/io/fchmodat.c b/io/fchmodat.c
+index 1bbe63edcf9bf0cb..935d57d89440d80e 100644
+--- a/io/fchmodat.c
++++ b/io/fchmodat.c
+@@ -24,11 +24,7 @@
+ #include <sys/stat.h>
+ 
+ int
+-fchmodat (fd, file, mode, flag)
+-     int fd;
+-     const char *file;
+-     mode_t mode;
+-     int flag;
++fchmodat (int fd, const char *file, mode_t mode, int flag)
+ {
+   if (file == NULL || (flag & ~AT_SYMLINK_NOFOLLOW) != 0)
+     {
+diff --git a/io/fchown.c b/io/fchown.c
+index c98b84e27a973ef5..d87921e90d5f4f53 100644
+--- a/io/fchown.c
++++ b/io/fchown.c
+@@ -22,10 +22,7 @@
+ 
+ /* Change the owner and group of the file referred to by FD.  */
+ int
+-__fchown (fd, owner, group)
+-     int fd;
+-     uid_t owner;
+-     gid_t group;
++__fchown (int fd, uid_t owner, gid_t group)
+ {
+   if (fd < 0)
+     {
+diff --git a/io/fchownat.c b/io/fchownat.c
+index 8f82ce6f4b246957..8c65b867c0f476e2 100644
+--- a/io/fchownat.c
++++ b/io/fchownat.c
+@@ -23,12 +23,7 @@
+ 
+ /* Change the owner and group of FILE.  */
+ int
+-fchownat (fd, file, owner, group, flag)
+-     int fd;
+-     const char *file;
+-     uid_t owner;
+-     gid_t group;
+-     int flag;
++fchownat (int fd, const char *file, uid_t owner, gid_t group, int flag)
+ {
+   if (file == NULL || (flag & ~AT_SYMLINK_NOFOLLOW) != 0)
+     {
+diff --git a/io/fcntl.c b/io/fcntl.c
+index 766f605e31be58a3..335c1a4aaaa97eab 100644
+--- a/io/fcntl.c
++++ b/io/fcntl.c
+@@ -20,9 +20,7 @@
+ 
+ /* Perform file control operations on FD.  */
+ int
+-__fcntl (fd, cmd)
+-     int fd;
+-     int cmd;
++__fcntl (int fd, int cmd)
+ {
+   if (fd < 0)
+     {
+diff --git a/io/flock.c b/io/flock.c
+index 68f1b448ba4125db..2e4449a211e5ad4a 100644
+--- a/io/flock.c
++++ b/io/flock.c
+@@ -21,9 +21,7 @@
+ /* Apply or remove an advisory lock, according to OPERATION,
+    on the file FD refers to.  */
+ int
+-__flock (fd, operation)
+-     int fd;
+-     int operation;
++__flock (int fd, int operation)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/io/fts.c b/io/fts.c
+index c9c054d6d36ab20f..275608591739ce63 100644
+--- a/io/fts.c
++++ b/io/fts.c
+@@ -202,9 +202,7 @@ mem1:	free(sp);
+ 
+ static void
+ internal_function
+-fts_load(sp, p)
+-	FTS *sp;
+-	FTSENT *p;
++fts_load (FTS *sp, FTSENT *p)
+ {
+ 	int len;
+ 	char *cp;
+@@ -228,8 +226,7 @@ fts_load(sp, p)
+ }
+ 
+ int
+-fts_close(sp)
+-	FTS *sp;
++fts_close (FTS *sp)
+ {
+ 	FTSENT *freep, *p;
+ 	int saved_errno;
+@@ -282,8 +279,7 @@ fts_close(sp)
+ 	    ? p->fts_pathlen - 1 : p->fts_pathlen)
+ 
+ FTSENT *
+-fts_read(sp)
+-	FTS *sp;
++fts_read (FTS *sp)
+ {
+ 	FTSENT *p, *tmp;
+ 	int instr;
+@@ -479,10 +475,7 @@ name:		t = sp->fts_path + NAPPEND(p->fts_parent);
+  */
+ /* ARGSUSED */
+ int
+-fts_set(sp, p, instr)
+-	FTS *sp;
+-	FTSENT *p;
+-	int instr;
++fts_set (FTS *sp, FTSENT *p, int instr)
+ {
+ 	if (instr != 0 && instr != FTS_AGAIN && instr != FTS_FOLLOW &&
+ 	    instr != FTS_NOINSTR && instr != FTS_SKIP) {
+@@ -494,9 +487,7 @@ fts_set(sp, p, instr)
+ }
+ 
+ FTSENT *
+-fts_children(sp, instr)
+-	FTS *sp;
+-	int instr;
++fts_children (FTS *sp, int instr)
+ {
+ 	FTSENT *p;
+ 	int fd;
+@@ -577,9 +568,7 @@ fts_children(sp, instr)
+  */
+ static FTSENT *
+ internal_function
+-fts_build(sp, type)
+-	FTS *sp;
+-	int type;
++fts_build (FTS *sp, int type)
+ {
+ 	struct dirent *dp;
+ 	FTSENT *p, *head;
+@@ -846,10 +835,7 @@ mem1:				saved_errno = errno;
+ 
+ static u_short
+ internal_function
+-fts_stat(sp, p, follow)
+-	FTS *sp;
+-	FTSENT *p;
+-	int follow;
++fts_stat (FTS *sp, FTSENT *p, int follow)
+ {
+ 	FTSENT *t;
+ 	dev_t dev;
+@@ -930,10 +916,7 @@ err:		memset(sbp, 0, sizeof(struct stat));
+ 
+ static FTSENT *
+ internal_function
+-fts_sort(sp, head, nitems)
+-	FTS *sp;
+-	FTSENT *head;
+-	int nitems;
++fts_sort (FTS *sp, FTSENT *head, int nitems)
+ {
+ 	FTSENT **ap, *p;
+ 
+@@ -968,10 +951,7 @@ fts_sort(sp, head, nitems)
+ 
+ static FTSENT *
+ internal_function
+-fts_alloc(sp, name, namelen)
+-	FTS *sp;
+-	const char *name;
+-	size_t namelen;
++fts_alloc (FTS *sp, const char *name, size_t namelen)
+ {
+ 	FTSENT *p;
+ 	size_t len;
+@@ -1008,8 +988,7 @@ fts_alloc(sp, name, namelen)
+ 
+ static void
+ internal_function
+-fts_lfree(head)
+-	FTSENT *head;
++fts_lfree (FTSENT *head)
+ {
+ 	FTSENT *p;
+ 
+@@ -1028,9 +1007,7 @@ fts_lfree(head)
+  */
+ static int
+ internal_function
+-fts_palloc(sp, more)
+-	FTS *sp;
+-	size_t more;
++fts_palloc (FTS *sp, size_t more)
+ {
+ 	char *p;
+ 
+@@ -1062,9 +1039,7 @@ fts_palloc(sp, more)
+  */
+ static void
+ internal_function
+-fts_padjust(sp, head)
+-	FTS *sp;
+-	FTSENT *head;
++fts_padjust (FTS *sp, FTSENT *head)
+ {
+ 	FTSENT *p;
+ 	char *addr = sp->fts_path;
+@@ -1089,8 +1064,7 @@ fts_padjust(sp, head)
+ 
+ static size_t
+ internal_function
+-fts_maxarglen(argv)
+-	char * const *argv;
++fts_maxarglen (char * const *argv)
+ {
+ 	size_t len, max;
+ 
+@@ -1107,11 +1081,7 @@ fts_maxarglen(argv)
+  */
+ static int
+ internal_function
+-fts_safe_changedir(sp, p, fd, path)
+-	FTS *sp;
+-	FTSENT *p;
+-	int fd;
+-	const char *path;
++fts_safe_changedir (FTS *sp, FTSENT *p, int fd, const char *path)
+ {
+ 	int ret, oerrno, newfd;
+ 	struct stat64 sb;
+diff --git a/io/getwd.c b/io/getwd.c
+index a77fd59013872301..27ea951d9fbfaf2b 100644
+--- a/io/getwd.c
++++ b/io/getwd.c
+@@ -23,8 +23,7 @@
+ 
+ 
+ char *
+-getwd (buf)
+-     char *buf;
++getwd (char *buf)
+ {
+ #ifndef PATH_MAX
+ #define PATH_MAX 1024
+diff --git a/io/isatty.c b/io/isatty.c
+index eb532711cc550051..e0faddf1e7107bd2 100644
+--- a/io/isatty.c
++++ b/io/isatty.c
+@@ -20,8 +20,7 @@
+ 
+ /* Return 1 if FD is a terminal, 0 if not.  */
+ int
+-__isatty (fd)
+-     int fd;
++__isatty (int fd)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/io/lchown.c b/io/lchown.c
+index 682083c9e4cf47e7..1ec25c23e817b2c5 100644
+--- a/io/lchown.c
++++ b/io/lchown.c
+@@ -22,10 +22,7 @@
+ 
+ /* Change the owner and group of FILE.  */
+ int
+-__lchown (file, owner, group)
+-     const char *file;
+-     uid_t owner;
+-     gid_t group;
++__lchown (const char *file, uid_t owner, gid_t group)
+ {
+   if (file == NULL)
+     {
+diff --git a/io/link.c b/io/link.c
+index b43f5eb2a8ab1a1e..820e6cfc590f975e 100644
+--- a/io/link.c
++++ b/io/link.c
+@@ -22,9 +22,7 @@
+ 
+ /* Make a link to FROM called TO.  */
+ int
+-__link (from, to)
+-     const char *from;
+-     const char *to;
++__link (const char *from, const char *to)
+ {
+   if (from == NULL || to == NULL)
+     {
+diff --git a/io/linkat.c b/io/linkat.c
+index 6274d09390add9ab..4ed237049a7d6fa4 100644
+--- a/io/linkat.c
++++ b/io/linkat.c
+@@ -23,12 +23,7 @@
+ 
+ /* Make a link to FROM relative to FROMFD called TO relative to TOFD.  */
+ int
+-linkat (fromfd, from, tofd, to, flags)
+-     int fromfd;
+-     const char *from;
+-     int tofd;
+-     const char *to;
+-     int flags;
++linkat (int fromfd, const char *from, int tofd, const char *to, int flags)
+ {
+   if (from == NULL || to == NULL)
+     {
+diff --git a/io/lseek.c b/io/lseek.c
+index 7fd6188a76fabdab..ac27e32386fec713 100644
+--- a/io/lseek.c
++++ b/io/lseek.c
+@@ -21,10 +21,7 @@
+ 
+ /* Seek to OFFSET on FD, starting from WHENCE.  */
+ off_t
+-__lseek (fd, offset, whence)
+-     int fd;
+-     off_t offset;
+-     int whence;
++__lseek (int fd, off_t offset, int whence)
+ {
+   if (fd < 0)
+     {
+diff --git a/io/mkdir.c b/io/mkdir.c
+index 39c3db175ab9a4c4..802c38931f21dea8 100644
+--- a/io/mkdir.c
++++ b/io/mkdir.c
+@@ -23,9 +23,7 @@
+ 
+ /* Create a directory named PATH with protections MODE.  */
+ int
+-__mkdir (path, mode)
+-     const char *path;
+-     mode_t mode;
++__mkdir (const char *path, mode_t mode)
+ {
+   if (path == NULL)
+     {
+diff --git a/io/mkdirat.c b/io/mkdirat.c
+index e8d10aea4b1696cc..74db2cc18b7c7881 100644
+--- a/io/mkdirat.c
++++ b/io/mkdirat.c
+@@ -24,10 +24,7 @@
+ 
+ /* Create a directory named PATH relative to FD with protections MODE.  */
+ int
+-mkdirat (fd, path, mode)
+-     int fd;
+-     const char *path;
+-     mode_t mode;
++mkdirat (int fd, const char *path, mode_t mode)
+ {
+   if (path == NULL)
+     {
+diff --git a/io/mkfifo.c b/io/mkfifo.c
+index 8fdd0214f29213fc..d3b47e75eaf5ae04 100644
+--- a/io/mkfifo.c
++++ b/io/mkfifo.c
+@@ -23,9 +23,7 @@
+ 
+ /* Create a named pipe (FIFO) named PATH with protections MODE.  */
+ int
+-mkfifo (path, mode)
+-     const char *path;
+-     mode_t mode;
++mkfifo (const char *path, mode_t mode)
+ {
+   if (path == NULL)
+     {
+diff --git a/io/mkfifoat.c b/io/mkfifoat.c
+index 850d5671fbcefe1e..0a0d04fa7051585e 100644
+--- a/io/mkfifoat.c
++++ b/io/mkfifoat.c
+@@ -25,10 +25,7 @@
+ /* Create a named pipe (FIFO) named PATH relative to FD with
+    protections MODE.  */
+ int
+-mkfifoat (fd, path, mode)
+-     int fd;
+-     const char *path;
+-     mode_t mode;
++mkfifoat (int fd, const char *path, mode_t mode)
+ {
+   if (path == NULL)
+     {
+diff --git a/io/open.c b/io/open.c
+index 1057763fbc721fc7..54c270128e083891 100644
+--- a/io/open.c
++++ b/io/open.c
+@@ -26,9 +26,7 @@
+ /* Open FILE with access OFLAG.  If O_CREAT or O_TMPFILE is in OFLAG,
+    a third argument is the file protection.  */
+ int
+-__libc_open (file, oflag)
+-     const char *file;
+-     int oflag;
++__libc_open (const char *file, int oflag)
+ {
+   int mode;
+ 
+diff --git a/io/open64.c b/io/open64.c
+index 221133eda96545d6..489a9b5ccdb92b5d 100644
+--- a/io/open64.c
++++ b/io/open64.c
+@@ -25,9 +25,7 @@
+ /* Open FILE with access OFLAG.  If O_CREAT or O_TMPFILE is in OFLAG,
+    a third argument is the file protection.  */
+ int
+-__libc_open64 (file, oflag)
+-     const char *file;
+-     int oflag;
++__libc_open64 (const char *file, int oflag)
+ {
+   int mode;
+ 
+diff --git a/io/readlink.c b/io/readlink.c
+index 4a1811b5cfac3e65..4633ebc9fd9ca75c 100644
+--- a/io/readlink.c
++++ b/io/readlink.c
+@@ -22,10 +22,7 @@
+    LEN bytes of BUF.  The contents are not null-terminated.
+    Returns the number of characters read, or -1 for errors.  */
+ ssize_t
+-__readlink (path, buf, len)
+-     const char *path;
+-     char *buf;
+-     size_t len;
++__readlink (const char *path, char *buf, size_t len)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/io/readlinkat.c b/io/readlinkat.c
+index 473f4e9c5b7b86f7..88ff2e383e75ec56 100644
+--- a/io/readlinkat.c
++++ b/io/readlinkat.c
+@@ -23,11 +23,7 @@
+    more than LEN bytes of BUF.  The contents are not null-terminated.
+    Returns the number of characters read, or -1 for errors.  */
+ ssize_t
+-readlinkat (fd, path, buf, len)
+-     int fd;
+-     const char *path;
+-     char *buf;
+-     size_t len;
++readlinkat (int fd, const char *path, char *buf, size_t len)
+ {
+   if (path == NULL)
+     {
+diff --git a/io/rmdir.c b/io/rmdir.c
+index 83c76369e38c2595..4f8685d34716a9fd 100644
+--- a/io/rmdir.c
++++ b/io/rmdir.c
+@@ -22,8 +22,7 @@
+ 
+ /* Remove the directory PATH.  */
+ int
+-__rmdir (path)
+-     const char *path;
++__rmdir (const char *path)
+ {
+   if (path == NULL)
+     {
+diff --git a/io/symlink.c b/io/symlink.c
+index 298854f3b34d0777..b53de4d9413a7f98 100644
+--- a/io/symlink.c
++++ b/io/symlink.c
+@@ -22,9 +22,7 @@
+ 
+ /* Make a link to FROM called TO.  */
+ int
+-__symlink (from, to)
+-     const char *from;
+-     const char *to;
++__symlink (const char *from, const char *to)
+ {
+   if (from == NULL || to == NULL)
+     {
+diff --git a/io/symlinkat.c b/io/symlinkat.c
+index 4937a2eaecd4f523..4552f320f3669ab2 100644
+--- a/io/symlinkat.c
++++ b/io/symlinkat.c
+@@ -23,10 +23,7 @@
+ 
+ /* Make a link to FROM called TO relative to FD.  */
+ int
+-symlinkat (from, fd, to)
+-     const char *from;
+-     int fd;
+-     const char *to;
++symlinkat (const char *from, int fd, const char *to)
+ {
+   if (from == NULL || to == NULL)
+     {
+diff --git a/io/ttyname.c b/io/ttyname.c
+index 8df1fd46bf5ec7f7..7d6baf4e13d8f71a 100644
+--- a/io/ttyname.c
++++ b/io/ttyname.c
+@@ -25,8 +25,7 @@ char *__ttyname = NULL;
+ /* Return the pathname of the terminal FD is open on, or NULL on errors.
+    The returned storage is good only until the next call to this function.  */
+ char *
+-ttyname (fd)
+-     int fd;
++ttyname (int fd)
+ {
+   __set_errno (ENOSYS);
+   return NULL;
+diff --git a/io/ttyname_r.c b/io/ttyname_r.c
+index 6d7dfabd69c2e691..d8c8d13523cb1ba3 100644
+--- a/io/ttyname_r.c
++++ b/io/ttyname_r.c
+@@ -22,10 +22,7 @@
+ /* Store at most BUFLEN characters the pathname of the terminal FD is
+    open on in BUF.  Return 0 on success,  otherwise an error number.  */
+ int
+-__ttyname_r (fd, buf, buflen)
+-     int fd;
+-     char *buf;
+-     size_t buflen;
++__ttyname_r (int fd, char *buf, size_t buflen)
+ {
+   __set_errno (ENOSYS);
+   return ENOSYS;
+diff --git a/io/umask.c b/io/umask.c
+index 07d7150e35a7ac82..13706f1a9d38d068 100644
+--- a/io/umask.c
++++ b/io/umask.c
+@@ -21,8 +21,7 @@
+ 
+ /* Set the file creation mask to MASK, returning the old mask.  */
+ mode_t
+-__umask (mask)
+-     mode_t mask;
++__umask (mode_t mask)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/io/unlink.c b/io/unlink.c
+index b7a6d7cce41f932d..079492ff7efe87a6 100644
+--- a/io/unlink.c
++++ b/io/unlink.c
+@@ -22,8 +22,7 @@
+ 
+ /* Remove the link named NAME.  */
+ int
+-__unlink (name)
+-     const char *name;
++__unlink (const char *name)
+ {
+   if (name == NULL)
+     {
+diff --git a/io/unlinkat.c b/io/unlinkat.c
+index afa505380db56473..684be771d2d832ab 100644
+--- a/io/unlinkat.c
++++ b/io/unlinkat.c
+@@ -23,10 +23,7 @@
+ 
+ /* Remove the link named NAME.  */
+ int
+-unlinkat (fd, name, flag)
+-     int fd;
+-     const char *name;
+-     int flag;
++unlinkat (int fd, const char *name, int flag)
+ {
+   if (name == NULL || (flag & AT_REMOVEDIR) != 0)
+     {
+diff --git a/io/utime.c b/io/utime.c
+index 7b307762dfdb85d7..3384939031efbd5c 100644
+--- a/io/utime.c
++++ b/io/utime.c
+@@ -23,9 +23,7 @@
+ /* Set the access and modification times of FILE to those given in TIMES.
+    If TIMES is NULL, set them to the current time.  */
+ int
+-utime (file, times)
+-     const char *file;
+-     const struct utimbuf *times;
++utime (const char *file, const struct utimbuf *times)
+ {
+   if (file == NULL)
+     {
+diff --git a/libio/clearerr.c b/libio/clearerr.c
+index 79ba45da5f8fcd66..b45b4355dd7edfe1 100644
+--- a/libio/clearerr.c
++++ b/libio/clearerr.c
+@@ -19,8 +19,7 @@
+ #include "stdio.h"
+ 
+ void
+-clearerr (fp)
+-     FILE *fp;
++clearerr (FILE *fp)
+ {
+   CHECK_FILE (fp, /*nothing*/);
+   _IO_flockfile (fp);
+diff --git a/libio/clearerr_u.c b/libio/clearerr_u.c
+index a2c5e6c31e5e417b..9b394adef970ad14 100644
+--- a/libio/clearerr_u.c
++++ b/libio/clearerr_u.c
+@@ -19,8 +19,7 @@
+ #include "stdio.h"
+ 
+ void
+-clearerr_unlocked (fp)
+-     FILE *fp;
++clearerr_unlocked (FILE *fp)
+ {
+   CHECK_FILE (fp, /*nothing*/);
+   _IO_clearerr (fp);
+diff --git a/libio/feof.c b/libio/feof.c
+index 71e775b0616b2656..1e23cdd00c23e6b7 100644
+--- a/libio/feof.c
++++ b/libio/feof.c
+@@ -28,8 +28,7 @@
+ #include "stdio.h"
+ 
+ int
+-_IO_feof (fp)
+-     _IO_FILE* fp;
++_IO_feof (_IO_FILE *fp)
+ {
+   int result;
+   CHECK_FILE (fp, EOF);
+diff --git a/libio/feof_u.c b/libio/feof_u.c
+index aede4da1dd4d90ba..5faf25f2d0479a88 100644
+--- a/libio/feof_u.c
++++ b/libio/feof_u.c
+@@ -30,8 +30,7 @@
+ #undef feof_unlocked
+ 
+ int
+-feof_unlocked (fp)
+-     _IO_FILE* fp;
++feof_unlocked (_IO_FILE *fp)
+ {
+   CHECK_FILE (fp, EOF);
+   return _IO_feof_unlocked (fp);
+diff --git a/libio/ferror.c b/libio/ferror.c
+index 6c8ce615aef9ae4a..22dae5dc35fce4db 100644
+--- a/libio/ferror.c
++++ b/libio/ferror.c
+@@ -28,8 +28,7 @@
+ #include "stdio.h"
+ 
+ int
+-_IO_ferror (fp)
+-     _IO_FILE* fp;
++_IO_ferror (_IO_FILE *fp)
+ {
+   int result;
+   CHECK_FILE (fp, EOF);
+diff --git a/libio/ferror_u.c b/libio/ferror_u.c
+index 234759077caa8e7b..5d6b0595c084ff0b 100644
+--- a/libio/ferror_u.c
++++ b/libio/ferror_u.c
+@@ -30,8 +30,7 @@
+ #undef ferror_unlocked
+ 
+ int
+-ferror_unlocked (fp)
+-     _IO_FILE* fp;
++ferror_unlocked (_IO_FILE *fp)
+ {
+   CHECK_FILE (fp, EOF);
+   return _IO_ferror_unlocked (fp);
+diff --git a/libio/filedoalloc.c b/libio/filedoalloc.c
+index 58641236bc4d5368..c59dc738beb20b66 100644
+--- a/libio/filedoalloc.c
++++ b/libio/filedoalloc.c
+@@ -91,8 +91,7 @@ local_isatty (int fd)
+  */
+ 
+ int
+-_IO_file_doallocate (fp)
+-     _IO_FILE *fp;
++_IO_file_doallocate (_IO_FILE *fp)
+ {
+   _IO_size_t size;
+   char *p;
+diff --git a/libio/fileno.c b/libio/fileno.c
+index 49e239394eac7790..7c2450e0ce9c5f15 100644
+--- a/libio/fileno.c
++++ b/libio/fileno.c
+@@ -28,8 +28,7 @@
+ #include <stdio.h>
+ 
+ int
+-fileno (fp)
+-     _IO_FILE* fp;
++fileno (_IO_FILE *fp)
+ {
+   CHECK_FILE (fp, EOF);
+ 
+diff --git a/libio/fputc.c b/libio/fputc.c
+index 97ec4eac0810dd45..98701cbd9fabbdc5 100644
+--- a/libio/fputc.c
++++ b/libio/fputc.c
+@@ -28,9 +28,7 @@
+ #include "stdio.h"
+ 
+ int
+-fputc (c, fp)
+-     int c;
+-     _IO_FILE *fp;
++fputc (int c, _IO_FILE *fp)
+ {
+   int result;
+   CHECK_FILE (fp, EOF);
+diff --git a/libio/fputc_u.c b/libio/fputc_u.c
+index 24dd9ed774131e6f..4b556eb78ffa69b9 100644
+--- a/libio/fputc_u.c
++++ b/libio/fputc_u.c
+@@ -30,9 +30,7 @@
+ #undef fputc_unlocked
+ 
+ int
+-fputc_unlocked (c, fp)
+-     int c;
+-     _IO_FILE *fp;
++fputc_unlocked (int c, _IO_FILE *fp)
+ {
+   CHECK_FILE (fp, EOF);
+   return _IO_putc_unlocked (c, fp);
+diff --git a/libio/fputwc.c b/libio/fputwc.c
+index e93527f2dcd6b9cb..80accb89310e3c8c 100644
+--- a/libio/fputwc.c
++++ b/libio/fputwc.c
+@@ -28,9 +28,7 @@
+ #include <wchar.h>
+ 
+ wint_t
+-fputwc (wc, fp)
+-     wchar_t wc;
+-     _IO_FILE *fp;
++fputwc (wchar_t wc, _IO_FILE *fp)
+ {
+   wint_t result;
+   CHECK_FILE (fp, EOF);
+diff --git a/libio/fputwc_u.c b/libio/fputwc_u.c
+index 9fcbfc7973154ac5..7066eb0f7bd8b028 100644
+--- a/libio/fputwc_u.c
++++ b/libio/fputwc_u.c
+@@ -30,9 +30,7 @@
+ #undef fputwc_unlocked
+ 
+ wint_t
+-fputwc_unlocked (wc, fp)
+-     wchar_t wc;
+-     _IO_FILE *fp;
++fputwc_unlocked (wchar_t wc, _IO_FILE *fp)
+ {
+   CHECK_FILE (fp, WEOF);
+   if (_IO_fwide (fp, 1) < 0)
+diff --git a/libio/freopen.c b/libio/freopen.c
+index 9303106c367c7ae2..915839e3ff6e5f38 100644
+--- a/libio/freopen.c
++++ b/libio/freopen.c
+@@ -35,11 +35,8 @@
+ 
+ #include <kernel-features.h>
+ 
+-FILE*
+-freopen (filename, mode, fp)
+-     const char* filename;
+-     const char* mode;
+-     FILE* fp;
++FILE *
++freopen (const char *filename, const char *mode, FILE *fp)
+ {
+   FILE *result;
+   CHECK_FILE (fp, NULL);
+diff --git a/libio/freopen64.c b/libio/freopen64.c
+index e47f965e86a682c6..a4b1484535b2fc83 100644
+--- a/libio/freopen64.c
++++ b/libio/freopen64.c
+@@ -35,10 +35,7 @@
+ #include <kernel-features.h>
+ 
+ FILE *
+-freopen64 (filename, mode, fp)
+-     const char* filename;
+-     const char* mode;
+-     FILE *fp;
++freopen64 (const char *filename, const char *mode, FILE *fp)
+ {
+   FILE *result;
+   CHECK_FILE (fp, NULL);
+diff --git a/libio/fseek.c b/libio/fseek.c
+index 7a6869402852b2ab..736b5353a0a3767a 100644
+--- a/libio/fseek.c
++++ b/libio/fseek.c
+@@ -29,10 +29,7 @@
+ #include <stdio.h>
+ 
+ int
+-fseek (fp, offset, whence)
+-     _IO_FILE* fp;
+-     long int offset;
+-     int whence;
++fseek (_IO_FILE *fp, long int offset, int whence)
+ {
+   int result;
+   CHECK_FILE (fp, -1);
+diff --git a/libio/fseeko.c b/libio/fseeko.c
+index 6d37aeaab859837d..c757d72647a2d72f 100644
+--- a/libio/fseeko.c
++++ b/libio/fseeko.c
+@@ -28,10 +28,7 @@
+ #include "stdio.h"
+ 
+ int
+-fseeko (fp, offset, whence)
+-     _IO_FILE* fp;
+-     off_t offset;
+-     int whence;
++fseeko (_IO_FILE *fp, off_t offset, int whence)
+ {
+   int result;
+   CHECK_FILE (fp, -1);
+diff --git a/libio/fseeko64.c b/libio/fseeko64.c
+index 70dc3703c8bf1356..68ce824d14d28c3d 100644
+--- a/libio/fseeko64.c
++++ b/libio/fseeko64.c
+@@ -32,10 +32,7 @@
+ #ifndef __OFF_T_MATCHES_OFF64_T
+ 
+ int
+-fseeko64 (fp, offset, whence)
+-     _IO_FILE* fp;
+-     __off64_t offset;
+-     int whence;
++fseeko64 (_IO_FILE *fp, __off64_t offset, int whence)
+ {
+   int result;
+   CHECK_FILE (fp, -1);
+diff --git a/libio/ftello.c b/libio/ftello.c
+index 90522769eadfee98..53f83c30e1464fc1 100644
+--- a/libio/ftello.c
++++ b/libio/ftello.c
+@@ -31,8 +31,7 @@
+ 
+ 
+ off_t
+-ftello (fp)
+-     _IO_FILE *fp;
++ftello (_IO_FILE *fp)
+ {
+   _IO_off64_t pos;
+   CHECK_FILE (fp, -1L);
+diff --git a/libio/ftello64.c b/libio/ftello64.c
+index 9502f2518fa09734..f9ec1adda39ef242 100644
+--- a/libio/ftello64.c
++++ b/libio/ftello64.c
+@@ -32,8 +32,7 @@
+ #ifndef __OFF_T_MATCHES_OFF64_T
+ 
+ off64_t
+-ftello64 (fp)
+-     _IO_FILE *fp;
++ftello64 (_IO_FILE *fp)
+ {
+   _IO_off64_t pos;
+   CHECK_FILE (fp, -1L);
+diff --git a/libio/fwide.c b/libio/fwide.c
+index 292bbe1ba75d1798..d6ecfa94fb67ecf4 100644
+--- a/libio/fwide.c
++++ b/libio/fwide.c
+@@ -29,9 +29,7 @@
+ #include <wchar.h>
+ 
+ int
+-fwide (fp, mode)
+-     _IO_FILE *fp;
+-     int mode;
++fwide (_IO_FILE *fp, int mode)
+ {
+   int result;
+ 
+diff --git a/libio/genops.c b/libio/genops.c
+index 4e0a40f90c8223dd..bad6ec65e25de31b 100644
+--- a/libio/genops.c
++++ b/libio/genops.c
+@@ -56,8 +56,7 @@ flush_cleanup (void *not_used)
+ #endif
+ 
+ void
+-_IO_un_link (fp)
+-     struct _IO_FILE_plus *fp;
++_IO_un_link (struct _IO_FILE_plus *fp)
+ {
+   if (fp->file._flags & _IO_LINKED)
+     {
+@@ -95,8 +94,7 @@ _IO_un_link (fp)
+ libc_hidden_def (_IO_un_link)
+ 
+ void
+-_IO_link_in (fp)
+-     struct _IO_FILE_plus *fp;
++_IO_link_in (struct _IO_FILE_plus *fp)
+ {
+   if ((fp->file._flags & _IO_LINKED) == 0)
+     {
+@@ -125,9 +123,7 @@ libc_hidden_def (_IO_link_in)
+ _IO_ssize_t _IO_least_marker (_IO_FILE *fp, char *end_p);
+ 
+ _IO_ssize_t
+-_IO_least_marker (fp, end_p)
+-     _IO_FILE *fp;
+-     char *end_p;
++_IO_least_marker (_IO_FILE *fp, char *end_p)
+ {
+   _IO_ssize_t least_so_far = end_p - fp->_IO_read_base;
+   struct _IO_marker *mark;
+@@ -140,8 +136,7 @@ _IO_least_marker (fp, end_p)
+ /* Switch current get area from backup buffer to (start of) main get area. */
+ 
+ void
+-_IO_switch_to_main_get_area (fp)
+-     _IO_FILE *fp;
++_IO_switch_to_main_get_area (_IO_FILE *fp)
+ {
+   char *tmp;
+   fp->_flags &= ~_IO_IN_BACKUP;
+@@ -160,8 +155,7 @@ _IO_switch_to_main_get_area (fp)
+ /* Switch current get area from main get area to (end of) backup area. */
+ 
+ void
+-_IO_switch_to_backup_area (fp)
+-     _IO_FILE *fp;
++_IO_switch_to_backup_area (_IO_FILE *fp)
+ {
+   char *tmp;
+   fp->_flags |= _IO_IN_BACKUP;
+@@ -178,8 +172,7 @@ _IO_switch_to_backup_area (fp)
+ }
+ 
+ int
+-_IO_switch_to_get_mode (fp)
+-     _IO_FILE *fp;
++_IO_switch_to_get_mode (_IO_FILE *fp)
+ {
+   if (fp->_IO_write_ptr > fp->_IO_write_base)
+     if (_IO_OVERFLOW (fp, EOF) == EOF)
+@@ -202,8 +195,7 @@ _IO_switch_to_get_mode (fp)
+ libc_hidden_def (_IO_switch_to_get_mode)
+ 
+ void
+-_IO_free_backup_area (fp)
+-     _IO_FILE *fp;
++_IO_free_backup_area (_IO_FILE *fp)
+ {
+   if (_IO_in_backup (fp))
+     _IO_switch_to_main_get_area (fp);  /* Just in case. */
+@@ -216,8 +208,7 @@ libc_hidden_def (_IO_free_backup_area)
+ 
+ #if 0
+ int
+-_IO_switch_to_put_mode (fp)
+-     _IO_FILE *fp;
++_IO_switch_to_put_mode (_IO_FILE *fp)
+ {
+   fp->_IO_write_base = fp->_IO_read_ptr;
+   fp->_IO_write_ptr = fp->_IO_read_ptr;
+@@ -234,9 +225,7 @@ _IO_switch_to_put_mode (fp)
+ #endif
+ 
+ int
+-__overflow (f, ch)
+-     _IO_FILE *f;
+-     int ch;
++__overflow (_IO_FILE *f, int ch)
+ {
+   /* This is a single-byte stream.  */
+   if (f->_mode == 0)
+@@ -326,8 +315,7 @@ save_for_backup (fp, end_p)
+ }
+ 
+ int
+-__underflow (fp)
+-     _IO_FILE *fp;
++__underflow (_IO_FILE *fp)
+ {
+ #if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T
+   if (_IO_vtable_offset (fp) == 0 && _IO_fwide (fp, -1) != -1)
+@@ -359,8 +347,7 @@ __underflow (fp)
+ libc_hidden_def (__underflow)
+ 
+ int
+-__uflow (fp)
+-     _IO_FILE *fp;
++__uflow (_IO_FILE *fp)
+ {
+ #if defined _LIBC || defined _GLIBCPP_USE_WCHAR_T
+   if (_IO_vtable_offset (fp) == 0 && _IO_fwide (fp, -1) != -1)
+@@ -392,11 +379,7 @@ __uflow (fp)
+ libc_hidden_def (__uflow)
+ 
+ void
+-_IO_setb (f, b, eb, a)
+-     _IO_FILE *f;
+-     char *b;
+-     char *eb;
+-     int a;
++_IO_setb (_IO_FILE *f, char *b, char *eb, int a)
+ {
+   if (f->_IO_buf_base && !(f->_flags & _IO_USER_BUF))
+     FREE_BUF (f->_IO_buf_base, _IO_blen (f));
+@@ -410,8 +393,7 @@ _IO_setb (f, b, eb, a)
+ libc_hidden_def (_IO_setb)
+ 
+ void
+-_IO_doallocbuf (fp)
+-     _IO_FILE *fp;
++_IO_doallocbuf (_IO_FILE *fp)
+ {
+   if (fp->_IO_buf_base)
+     return;
+@@ -423,15 +405,13 @@ _IO_doallocbuf (fp)
+ libc_hidden_def (_IO_doallocbuf)
+ 
+ int
+-_IO_default_underflow (fp)
+-     _IO_FILE *fp;
++_IO_default_underflow (_IO_FILE *fp)
+ {
+   return EOF;
+ }
+ 
+ int
+-_IO_default_uflow (fp)
+-     _IO_FILE *fp;
++_IO_default_uflow (_IO_FILE *fp)
+ {
+   int ch = _IO_UNDERFLOW (fp);
+   if (ch == EOF)
+@@ -441,10 +421,7 @@ _IO_default_uflow (fp)
+ libc_hidden_def (_IO_default_uflow)
+ 
+ _IO_size_t
+-_IO_default_xsputn (f, data, n)
+-     _IO_FILE *f;
+-     const void *data;
+-     _IO_size_t n;
++_IO_default_xsputn (_IO_FILE *f, const void *data, _IO_size_t n)
+ {
+   const char *s = (char *) data;
+   _IO_size_t more = n;
+@@ -487,10 +464,7 @@ _IO_default_xsputn (f, data, n)
+ libc_hidden_def (_IO_default_xsputn)
+ 
+ _IO_size_t
+-_IO_sgetn (fp, data, n)
+-     _IO_FILE *fp;
+-     void *data;
+-     _IO_size_t n;
++_IO_sgetn (_IO_FILE *fp, void *data, _IO_size_t n)
+ {
+   /* FIXME handle putback buffer here! */
+   return _IO_XSGETN (fp, data, n);
+@@ -498,10 +472,7 @@ _IO_sgetn (fp, data, n)
+ libc_hidden_def (_IO_sgetn)
+ 
+ _IO_size_t
+-_IO_default_xsgetn (fp, data, n)
+-     _IO_FILE *fp;
+-     void *data;
+-     _IO_size_t n;
++_IO_default_xsgetn (_IO_FILE *fp, void *data, _IO_size_t n)
+ {
+   _IO_size_t more = n;
+   char *s = (char*) data;
+@@ -543,18 +514,14 @@ libc_hidden_def (_IO_default_xsgetn)
+ #if 0
+ /* Seems not to be needed. --drepper */
+ int
+-_IO_sync (fp)
+-     _IO_FILE *fp;
++_IO_sync (_IO_FILE *fp)
+ {
+   return 0;
+ }
+ #endif
+ 
+ _IO_FILE *
+-_IO_default_setbuf (fp, p, len)
+-     _IO_FILE *fp;
+-     char *p;
+-     _IO_ssize_t len;
++_IO_default_setbuf (_IO_FILE *fp, char *p, _IO_ssize_t len)
+ {
+     if (_IO_SYNC (fp) == EOF)
+ 	return NULL;
+@@ -574,17 +541,13 @@ _IO_default_setbuf (fp, p, len)
+ }
+ 
+ _IO_off64_t
+-_IO_default_seekpos (fp, pos, mode)
+-     _IO_FILE *fp;
+-     _IO_off64_t pos;
+-     int mode;
++_IO_default_seekpos (_IO_FILE *fp, _IO_off64_t pos, int mode)
+ {
+   return _IO_SEEKOFF (fp, pos, 0, mode);
+ }
+ 
+ int
+-_IO_default_doallocate (fp)
+-     _IO_FILE *fp;
++_IO_default_doallocate (_IO_FILE *fp)
+ {
+   char *buf;
+ 
+@@ -595,9 +558,7 @@ _IO_default_doallocate (fp)
+ libc_hidden_def (_IO_default_doallocate)
+ 
+ void
+-_IO_init_internal (fp, flags)
+-     _IO_FILE *fp;
+-     int flags;
++_IO_init_internal (_IO_FILE *fp, int flags)
+ {
+   _IO_no_init (fp, flags, -1, NULL, NULL);
+ }
+@@ -610,9 +571,7 @@ _IO_init (_IO_FILE *fp, int flags)
+ }
+ 
+ void
+-_IO_old_init (fp, flags)
+-     _IO_FILE *fp;
+-     int flags;
++_IO_old_init (_IO_FILE *fp, int flags)
+ {
+   fp->_flags = _IO_MAGIC|flags;
+   fp->_flags2 = 0;
+@@ -673,8 +632,7 @@ _IO_no_init (fp, flags, orientation, wd, jmp)
+ }
+ 
+ int
+-_IO_default_sync (fp)
+-     _IO_FILE *fp;
++_IO_default_sync (_IO_FILE *fp)
+ {
+   return 0;
+ }
+@@ -683,9 +641,7 @@ _IO_default_sync (fp)
+    current implementation, this function can get called twice! */
+ 
+ void
+-_IO_default_finish (fp, dummy)
+-     _IO_FILE *fp;
+-     int dummy;
++_IO_default_finish (_IO_FILE *fp, int dummy)
+ {
+   struct _IO_marker *mark;
+   if (fp->_IO_buf_base && !(fp->_flags & _IO_USER_BUF))
+@@ -713,19 +669,13 @@ _IO_default_finish (fp, dummy)
+ libc_hidden_def (_IO_default_finish)
+ 
+ _IO_off64_t
+-_IO_default_seekoff (fp, offset, dir, mode)
+-     _IO_FILE *fp;
+-     _IO_off64_t offset;
+-     int dir;
+-     int mode;
++_IO_default_seekoff (_IO_FILE *fp, _IO_off64_t offset, int dir, int mode)
+ {
+   return _IO_pos_BAD;
+ }
+ 
+ int
+-_IO_sputbackc (fp, c)
+-     _IO_FILE *fp;
+-     int c;
++_IO_sputbackc (_IO_FILE *fp, int c)
+ {
+   int result;
+ 
+@@ -746,8 +696,7 @@ _IO_sputbackc (fp, c)
+ libc_hidden_def (_IO_sputbackc)
+ 
+ int
+-_IO_sungetc (fp)
+-     _IO_FILE *fp;
++_IO_sungetc (_IO_FILE *fp)
+ {
+   int result;
+ 
+@@ -769,9 +718,7 @@ _IO_sungetc (fp)
+ /* Seems not to be needed.  */
+ #if 0
+ void
+-_IO_set_column (fp, c)
+-     _IO_FILE *fp;
+-     int c;
++_IO_set_column (_IO_FILE *fp, int c)
+ {
+   if (c == -1)
+     fp->_column = -1;
+@@ -780,9 +727,7 @@ _IO_set_column (fp, c)
+ }
+ #else
+ int
+-_IO_set_column (fp, i)
+-     _IO_FILE *fp;
+-     int i;
++_IO_set_column (_IO_FILE *fp, int i)
+ {
+   fp->_cur_column = i + 1;
+   return 0;
+@@ -792,10 +737,7 @@ _IO_set_column (fp, i)
+ 
+ 
+ unsigned
+-_IO_adjust_column (start, line, count)
+-     unsigned start;
+-     const char *line;
+-     int count;
++_IO_adjust_column (unsigned start, const char *line, int count)
+ {
+   const char *ptr = line + count;
+   while (ptr > line)
+@@ -808,8 +750,7 @@ libc_hidden_def (_IO_adjust_column)
+ #if 0
+ /* Seems not to be needed. --drepper */
+ int
+-_IO_get_column (fp)
+-     _IO_FILE *fp;
++_IO_get_column (_IO_FILE *fp)
+ {
+   if (fp->_cur_column)
+     return _IO_adjust_column (fp->_cur_column - 1,
+@@ -1029,9 +970,7 @@ _IO_cleanup (void)
+ 
+ 
+ void
+-_IO_init_marker (marker, fp)
+-     struct _IO_marker *marker;
+-     _IO_FILE *fp;
++_IO_init_marker (struct _IO_marker *marker, _IO_FILE *fp)
+ {
+   marker->_sbuf = fp;
+   if (_IO_in_put_mode (fp))
+@@ -1047,8 +986,7 @@ _IO_init_marker (marker, fp)
+ }
+ 
+ void
+-_IO_remove_marker (marker)
+-     struct _IO_marker *marker;
++_IO_remove_marker (struct _IO_marker *marker)
+ {
+   /* Unlink from sb's chain. */
+   struct _IO_marker **ptr = &marker->_sbuf->_markers;
+@@ -1071,17 +1009,14 @@ _IO_remove_marker (marker)
+ #define BAD_DELTA EOF
+ 
+ int
+-_IO_marker_difference (mark1, mark2)
+-     struct _IO_marker *mark1;
+-     struct _IO_marker *mark2;
++_IO_marker_difference (struct _IO_marker *mark1, struct _IO_marker *mark2)
+ {
+   return mark1->_pos - mark2->_pos;
+ }
+ 
+ /* Return difference between MARK and current position of MARK's stream. */
+ int
+-_IO_marker_delta (mark)
+-     struct _IO_marker *mark;
++_IO_marker_delta (struct _IO_marker *mark)
+ {
+   int cur_pos;
+   if (mark->_sbuf == NULL)
+@@ -1094,10 +1029,7 @@ _IO_marker_delta (mark)
+ }
+ 
+ int
+-_IO_seekmark (fp, mark, delta)
+-     _IO_FILE *fp;
+-     struct _IO_marker *mark;
+-     int delta;
++_IO_seekmark (_IO_FILE *fp, struct _IO_marker *mark, int delta)
+ {
+   if (mark->_sbuf != fp)
+     return EOF;
+@@ -1117,8 +1049,7 @@ _IO_seekmark (fp, mark, delta)
+ }
+ 
+ void
+-_IO_unsave_markers (fp)
+-     _IO_FILE *fp;
++_IO_unsave_markers (_IO_FILE *fp)
+ {
+   struct _IO_marker *mark = fp->_markers;
+   if (mark)
+@@ -1148,9 +1079,7 @@ libc_hidden_def (_IO_unsave_markers)
+ #if 0
+ /* Seems not to be needed. --drepper */
+ int
+-_IO_nobackup_pbackfail (fp, c)
+-     _IO_FILE *fp;
+-     int c;
++_IO_nobackup_pbackfail (_IO_FILE *fp, int c)
+ {
+   if (fp->_IO_read_ptr > fp->_IO_read_base)
+ 	fp->_IO_read_ptr--;
+@@ -1161,9 +1090,7 @@ _IO_nobackup_pbackfail (fp, c)
+ #endif
+ 
+ int
+-_IO_default_pbackfail (fp, c)
+-     _IO_FILE *fp;
+-     int c;
++_IO_default_pbackfail (_IO_FILE *fp, int c)
+ {
+   if (fp->_IO_read_ptr > fp->_IO_read_base && !_IO_in_backup (fp)
+       && (unsigned char) fp->_IO_read_ptr[-1] == c)
+@@ -1220,51 +1147,37 @@ _IO_default_pbackfail (fp, c)
+ libc_hidden_def (_IO_default_pbackfail)
+ 
+ _IO_off64_t
+-_IO_default_seek (fp, offset, dir)
+-     _IO_FILE *fp;
+-     _IO_off64_t offset;
+-     int dir;
++_IO_default_seek (_IO_FILE *fp, _IO_off64_t offset, int dir)
+ {
+   return _IO_pos_BAD;
+ }
+ 
+ int
+-_IO_default_stat (fp, st)
+-     _IO_FILE *fp;
+-     void* st;
++_IO_default_stat (_IO_FILE *fp, void *st)
+ {
+   return EOF;
+ }
+ 
+ _IO_ssize_t
+-_IO_default_read (fp, data, n)
+-     _IO_FILE* fp;
+-     void *data;
+-     _IO_ssize_t n;
++_IO_default_read (_IO_FILE *fp, void *data, _IO_ssize_t n)
+ {
+   return -1;
+ }
+ 
+ _IO_ssize_t
+-_IO_default_write (fp, data, n)
+-     _IO_FILE *fp;
+-     const void *data;
+-     _IO_ssize_t n;
++_IO_default_write (_IO_FILE *fp, const void *data, _IO_ssize_t n)
+ {
+   return 0;
+ }
+ 
+ int
+-_IO_default_showmanyc (fp)
+-     _IO_FILE *fp;
++_IO_default_showmanyc (_IO_FILE *fp)
+ {
+   return -1;
+ }
+ 
+ void
+-_IO_default_imbue (fp, locale)
+-     _IO_FILE *fp;
+-     void *locale;
++_IO_default_imbue (_IO_FILE *fp, void *locale)
+ {
+ }
+ 
+@@ -1283,16 +1196,14 @@ _IO_iter_end (void)
+ libc_hidden_def (_IO_iter_end)
+ 
+ _IO_ITER
+-_IO_iter_next(iter)
+-    _IO_ITER iter;
++_IO_iter_next (_IO_ITER iter)
+ {
+   return iter->_chain;
+ }
+ libc_hidden_def (_IO_iter_next)
+ 
+ _IO_FILE *
+-_IO_iter_file(iter)
+-    _IO_ITER iter;
++_IO_iter_file (_IO_ITER iter)
+ {
+   return iter;
+ }
+diff --git a/libio/getc.c b/libio/getc.c
+index ebb21760875d4b3e..98e7a0bf75eaf417 100644
+--- a/libio/getc.c
++++ b/libio/getc.c
+@@ -31,8 +31,7 @@
+ #undef _IO_getc
+ 
+ int
+-_IO_getc (fp)
+-     FILE *fp;
++_IO_getc (FILE *fp)
+ {
+   int result;
+   CHECK_FILE (fp, EOF);
+diff --git a/libio/getwc.c b/libio/getwc.c
+index 7bd539f43f042b10..c8bcf334b73fc0db 100644
+--- a/libio/getwc.c
++++ b/libio/getwc.c
+@@ -32,8 +32,7 @@
+ #undef _IO_getwc
+ 
+ wint_t
+-_IO_getwc (fp)
+-     FILE *fp;
++_IO_getwc (FILE *fp)
+ {
+   wint_t result;
+   CHECK_FILE (fp, WEOF);
+diff --git a/libio/iofclose.c b/libio/iofclose.c
+index fc049318b6880534..15a91e5dba1f1e7c 100644
+--- a/libio/iofclose.c
++++ b/libio/iofclose.c
+@@ -35,8 +35,7 @@
+ #endif
+ 
+ int
+-_IO_new_fclose (fp)
+-     _IO_FILE *fp;
++_IO_new_fclose (_IO_FILE *fp)
+ {
+   int status;
+ 
+diff --git a/libio/iofdopen.c b/libio/iofdopen.c
+index 6c09289f4763ac4d..87dd6970e3a9b788 100644
+--- a/libio/iofdopen.c
++++ b/libio/iofdopen.c
+@@ -41,9 +41,7 @@
+ #endif
+ 
+ _IO_FILE *
+-_IO_new_fdopen (fd, mode)
+-     int fd;
+-     const char *mode;
++_IO_new_fdopen (int fd, const char *mode)
+ {
+   int read_write;
+   int posix_mode = 0;
+diff --git a/libio/iofflush.c b/libio/iofflush.c
+index 57e0eafab61dd444..733d679a820ac463 100644
+--- a/libio/iofflush.c
++++ b/libio/iofflush.c
+@@ -28,8 +28,7 @@
+ #include <stdio.h>
+ 
+ int
+-_IO_fflush (fp)
+-     _IO_FILE *fp;
++_IO_fflush (_IO_FILE *fp)
+ {
+   if (fp == NULL)
+     return _IO_flush_all ();
+diff --git a/libio/iofflush_u.c b/libio/iofflush_u.c
+index 353c7abf65165c80..5083dd40ede89d6e 100644
+--- a/libio/iofflush_u.c
++++ b/libio/iofflush_u.c
+@@ -28,8 +28,7 @@
+ #include <stdio.h>
+ 
+ int
+-fflush_unlocked (fp)
+-     _IO_FILE *fp;
++fflush_unlocked (_IO_FILE *fp)
+ {
+   if (fp == NULL)
+     return _IO_flush_all ();
+diff --git a/libio/iofgetpos.c b/libio/iofgetpos.c
+index a1d6bb693aac71ad..a997e4b43f01b847 100644
+--- a/libio/iofgetpos.c
++++ b/libio/iofgetpos.c
+@@ -40,9 +40,7 @@
+ #include <shlib-compat.h>
+ 
+ int
+-_IO_new_fgetpos (fp, posp)
+-     _IO_FILE *fp;
+-     _IO_fpos_t *posp;
++_IO_new_fgetpos (_IO_FILE *fp, _IO_fpos_t *posp)
+ {
+   _IO_off64_t pos;
+   int result = 0;
+diff --git a/libio/iofgetpos64.c b/libio/iofgetpos64.c
+index 0d0a2aa26bcb12ab..913e679004ccd172 100644
+--- a/libio/iofgetpos64.c
++++ b/libio/iofgetpos64.c
+@@ -31,9 +31,7 @@
+ #ifndef __OFF_T_MATCHES_OFF64_T
+ 
+ int
+-_IO_new_fgetpos64 (fp, posp)
+-     _IO_FILE *fp;
+-     _IO_fpos64_t *posp;
++_IO_new_fgetpos64 (_IO_FILE *fp, _IO_fpos64_t *posp)
+ {
+   _IO_off64_t pos;
+   int result = 0;
+diff --git a/libio/iofgets.c b/libio/iofgets.c
+index 3621f1c00ec9ea4d..1a66619e7bef7df0 100644
+--- a/libio/iofgets.c
++++ b/libio/iofgets.c
+@@ -28,10 +28,7 @@
+ #include <stdio.h>
+ 
+ char *
+-_IO_fgets (buf, n, fp)
+-     char *buf;
+-     int n;
+-     _IO_FILE *fp;
++_IO_fgets (char *buf, int n, _IO_FILE *fp)
+ {
+   _IO_size_t count;
+   char *result;
+diff --git a/libio/iofgets_u.c b/libio/iofgets_u.c
+index e2cf6373b8178097..563d7e4d755892e0 100644
+--- a/libio/iofgets_u.c
++++ b/libio/iofgets_u.c
+@@ -28,10 +28,7 @@
+ #include <stdio.h>
+ 
+ char *
+-__fgets_unlocked (buf, n, fp)
+-     char *buf;
+-     int n;
+-     _IO_FILE *fp;
++__fgets_unlocked (char *buf, int n, _IO_FILE *fp)
+ {
+   _IO_size_t count;
+   char *result;
+diff --git a/libio/iofgetws.c b/libio/iofgetws.c
+index 3a010a425969b9a2..3aa23c8f55ad248f 100644
+--- a/libio/iofgetws.c
++++ b/libio/iofgetws.c
+@@ -29,10 +29,7 @@
+ #include <wchar.h>
+ 
+ wchar_t *
+-fgetws (buf, n, fp)
+-     wchar_t *buf;
+-     int n;
+-     _IO_FILE *fp;
++fgetws (wchar_t *buf, int n, _IO_FILE *fp)
+ {
+   _IO_size_t count;
+   wchar_t *result;
+diff --git a/libio/iofgetws_u.c b/libio/iofgetws_u.c
+index 070c4a7103f1626a..c3ce71396c9d5725 100644
+--- a/libio/iofgetws_u.c
++++ b/libio/iofgetws_u.c
+@@ -28,10 +28,7 @@
+ #include <wchar.h>
+ 
+ wchar_t *
+-fgetws_unlocked (buf, n, fp)
+-     wchar_t *buf;
+-     int n;
+-     _IO_FILE *fp;
++fgetws_unlocked (wchar_t *buf, int n, _IO_FILE *fp)
+ {
+   _IO_size_t count;
+   wchar_t *result;
+diff --git a/libio/iofopen64.c b/libio/iofopen64.c
+index 159d04ee6702af68..b490001eb4bd5905 100644
+--- a/libio/iofopen64.c
++++ b/libio/iofopen64.c
+@@ -32,9 +32,7 @@
+ #if !defined _LIBC || (defined O_LARGEFILE && O_LARGEFILE != 0)
+ 
+ _IO_FILE *
+-_IO_fopen64 (filename, mode)
+-     const char *filename;
+-     const char *mode;
++_IO_fopen64 (const char *filename, const char *mode)
+ {
+   return __fopen_internal (filename, mode, 0);
+ }
+diff --git a/libio/iofopncook.c b/libio/iofopncook.c
+index 8240601d4eec468b..d5c28f31c377905a 100644
+--- a/libio/iofopncook.c
++++ b/libio/iofopncook.c
+@@ -40,10 +40,7 @@ static _IO_off64_t _IO_cookie_seekoff (_IO_FILE *fp, _IO_off64_t offset,
+ static int _IO_cookie_close (_IO_FILE* fp);
+ 
+ static _IO_ssize_t
+-_IO_cookie_read (fp, buf, size)
+-     _IO_FILE *fp;
+-     void *buf;
+-     _IO_ssize_t size;
++_IO_cookie_read (_IO_FILE *fp, void *buf, _IO_ssize_t size)
+ {
+   struct _IO_cookie_file *cfile = (struct _IO_cookie_file *) fp;
+   cookie_read_function_t *read_cb = cfile->__io_functions.read;
+@@ -56,10 +53,7 @@ _IO_cookie_read (fp, buf, size)
+ }
+ 
+ static _IO_ssize_t
+-_IO_cookie_write (fp, buf, size)
+-     _IO_FILE *fp;
+-     const void *buf;
+-     _IO_ssize_t size;
++_IO_cookie_write (_IO_FILE *fp, const void *buf, _IO_ssize_t size)
+ {
+   struct _IO_cookie_file *cfile = (struct _IO_cookie_file *) fp;
+   cookie_write_function_t *write_cb = cfile->__io_functions.write;
+@@ -79,10 +73,7 @@ _IO_cookie_write (fp, buf, size)
+ }
+ 
+ static _IO_off64_t
+-_IO_cookie_seek (fp, offset, dir)
+-     _IO_FILE *fp;
+-     _IO_off64_t offset;
+-     int dir;
++_IO_cookie_seek (_IO_FILE *fp, _IO_off64_t offset, int dir)
+ {
+   struct _IO_cookie_file *cfile = (struct _IO_cookie_file *) fp;
+   cookie_seek_function_t *seek_cb = cfile->__io_functions.seek;
+@@ -96,8 +87,7 @@ _IO_cookie_seek (fp, offset, dir)
+ }
+ 
+ static int
+-_IO_cookie_close (fp)
+-     _IO_FILE *fp;
++_IO_cookie_close (_IO_FILE *fp)
+ {
+   struct _IO_cookie_file *cfile = (struct _IO_cookie_file *) fp;
+   cookie_close_function_t *close_cb = cfile->__io_functions.close;
+@@ -111,11 +101,7 @@ _IO_cookie_close (fp)
+ 
+ 
+ static _IO_off64_t
+-_IO_cookie_seekoff (fp, offset, dir, mode)
+-     _IO_FILE *fp;
+-     _IO_off64_t offset;
+-     int dir;
+-     int mode;
++_IO_cookie_seekoff (_IO_FILE *fp, _IO_off64_t offset, int dir, int mode)
+ {
+   /* We must force the fileops code to always use seek to determine
+      the position.  */
+@@ -238,10 +224,7 @@ _IO_FILE * _IO_old_fopencookie (void *cookie, const char *mode,
+ 
+ static _IO_off64_t
+ attribute_compat_text_section
+-_IO_old_cookie_seek (fp, offset, dir)
+-     _IO_FILE *fp;
+-     _IO_off64_t offset;
+-     int dir;
++_IO_old_cookie_seek (_IO_FILE *fp, _IO_off64_t offset, int dir)
+ {
+   struct _IO_cookie_file *cfile = (struct _IO_cookie_file *) fp;
+   int (*seek_cb) (_IO_FILE *, _IO_off_t, int)
+diff --git a/libio/iofputs.c b/libio/iofputs.c
+index 98f4b5ddc64247c5..be9e623b97c2f736 100644
+--- a/libio/iofputs.c
++++ b/libio/iofputs.c
+@@ -29,9 +29,7 @@
+ #include <string.h>
+ 
+ int
+-_IO_fputs (str, fp)
+-      const char *str;
+-      _IO_FILE *fp;
++_IO_fputs (const char *str, _IO_FILE *fp)
+ {
+   _IO_size_t len = strlen (str);
+   int result = EOF;
+diff --git a/libio/iofputs_u.c b/libio/iofputs_u.c
+index e90ce86051944a19..aa45106fa10d612b 100644
+--- a/libio/iofputs_u.c
++++ b/libio/iofputs_u.c
+@@ -29,9 +29,7 @@
+ #include <string.h>
+ 
+ int
+-fputs_unlocked (str, fp)
+-      const char *str;
+-      _IO_FILE *fp;
++fputs_unlocked (const char *str, _IO_FILE *fp)
+ {
+   _IO_size_t len = strlen (str);
+   int result = EOF;
+diff --git a/libio/iofputws.c b/libio/iofputws.c
+index bf4e1958ac284f56..4d5bff28721306ab 100644
+--- a/libio/iofputws.c
++++ b/libio/iofputws.c
+@@ -29,9 +29,7 @@
+ #include <wchar.h>
+ 
+ int
+-fputws (str, fp)
+-      const wchar_t *str;
+-      _IO_FILE *fp;
++fputws (const wchar_t *str, _IO_FILE *fp)
+ {
+   _IO_size_t len = __wcslen (str);
+   int result = EOF;
+diff --git a/libio/iofputws_u.c b/libio/iofputws_u.c
+index 95ef15780f2337df..50543ff48146b545 100644
+--- a/libio/iofputws_u.c
++++ b/libio/iofputws_u.c
+@@ -29,9 +29,7 @@
+ #include <wchar.h>
+ 
+ int
+-fputws_unlocked (str, fp)
+-      const wchar_t *str;
+-      _IO_FILE *fp;
++fputws_unlocked (const wchar_t *str, _IO_FILE *fp)
+ {
+   _IO_size_t len = __wcslen (str);
+   int result = EOF;
+diff --git a/libio/iofread.c b/libio/iofread.c
+index 1f04aaec4f7c0ace..886291e0e6fe2df5 100644
+--- a/libio/iofread.c
++++ b/libio/iofread.c
+@@ -27,11 +27,7 @@
+ #include "libioP.h"
+ 
+ _IO_size_t
+-_IO_fread (buf, size, count, fp)
+-     void *buf;
+-     _IO_size_t size;
+-     _IO_size_t count;
+-     _IO_FILE *fp;
++_IO_fread (void *buf, _IO_size_t size, _IO_size_t count, _IO_FILE *fp)
+ {
+   _IO_size_t bytes_requested = size * count;
+   _IO_size_t bytes_read;
+diff --git a/libio/iofread_u.c b/libio/iofread_u.c
+index a314d22e1d2a1367..938a95d0e404a0f1 100644
+--- a/libio/iofread_u.c
++++ b/libio/iofread_u.c
+@@ -30,11 +30,7 @@
+ #undef fread_unlocked
+ 
+ _IO_size_t
+-fread_unlocked (buf, size, count, fp)
+-     void *buf;
+-     _IO_size_t size;
+-     _IO_size_t count;
+-     _IO_FILE *fp;
++fread_unlocked (void *buf, _IO_size_t size, _IO_size_t count, _IO_FILE *fp)
+ {
+   _IO_size_t bytes_requested = size * count;
+   _IO_size_t bytes_read;
+diff --git a/libio/iofsetpos.c b/libio/iofsetpos.c
+index 5e8d444d2ee7e454..e7e00ffb248a2546 100644
+--- a/libio/iofsetpos.c
++++ b/libio/iofsetpos.c
+@@ -39,9 +39,7 @@
+ #include <shlib-compat.h>
+ 
+ int
+-_IO_new_fsetpos (fp, posp)
+-     _IO_FILE *fp;
+-     const _IO_fpos_t *posp;
++_IO_new_fsetpos (_IO_FILE *fp, const _IO_fpos_t *posp)
+ {
+   int result;
+   CHECK_FILE (fp, EOF);
+diff --git a/libio/iofsetpos64.c b/libio/iofsetpos64.c
+index f751255a66d0dc25..332e7233c2378426 100644
+--- a/libio/iofsetpos64.c
++++ b/libio/iofsetpos64.c
+@@ -31,9 +31,7 @@
+ #ifndef __OFF_T_MATCHES_OFF64_T
+ 
+ int
+-_IO_new_fsetpos64 (fp, posp)
+-     _IO_FILE *fp;
+-     const _IO_fpos64_t *posp;
++_IO_new_fsetpos64 (_IO_FILE *fp, const _IO_fpos64_t *posp)
+ {
+   int result;
+   CHECK_FILE (fp, EOF);
+diff --git a/libio/ioftell.c b/libio/ioftell.c
+index a1e06184450f1e85..787884b48986d58e 100644
+--- a/libio/ioftell.c
++++ b/libio/ioftell.c
+@@ -30,8 +30,7 @@
+ /* ANSI explicily requires setting errno to a positive value on failure. */
+ 
+ long int
+-_IO_ftell (fp)
+-     _IO_FILE *fp;
++_IO_ftell (_IO_FILE *fp)
+ {
+   _IO_off64_t pos;
+   CHECK_FILE (fp, -1L);
+diff --git a/libio/iofwrite.c b/libio/iofwrite.c
+index d4610f78cad6bfb1..ab51fd21ba05ccba 100644
+--- a/libio/iofwrite.c
++++ b/libio/iofwrite.c
+@@ -27,11 +27,7 @@
+ #include "libioP.h"
+ 
+ _IO_size_t
+-_IO_fwrite (buf, size, count, fp)
+-     const void *buf;
+-     _IO_size_t size;
+-     _IO_size_t count;
+-     _IO_FILE *fp;
++_IO_fwrite (const void *buf, _IO_size_t size, _IO_size_t count, _IO_FILE *fp)
+ {
+   _IO_size_t request = size * count;
+   _IO_size_t written = 0;
+diff --git a/libio/iogetdelim.c b/libio/iogetdelim.c
+index bf4b0f776a7af3ad..4e14f2e6666602e4 100644
+--- a/libio/iogetdelim.c
++++ b/libio/iogetdelim.c
+@@ -38,11 +38,7 @@
+    null terminator), or -1 on error or EOF.  */
+ 
+ _IO_ssize_t
+-_IO_getdelim (lineptr, n, delimiter, fp)
+-     char **lineptr;
+-     _IO_size_t *n;
+-     int delimiter;
+-     _IO_FILE *fp;
++_IO_getdelim (char **lineptr, _IO_size_t *n, int delimiter, _IO_FILE *fp)
+ {
+   _IO_ssize_t result;
+   _IO_ssize_t cur_len = 0;
+diff --git a/libio/iogets.c b/libio/iogets.c
+index 77353fe14f2c284c..255d5771f8a1f6b1 100644
+--- a/libio/iogets.c
++++ b/libio/iogets.c
+@@ -27,9 +27,8 @@
+ #include "libioP.h"
+ #include <limits.h>
+ 
+-char*
+-_IO_gets (buf)
+-     char *buf;
++char *
++_IO_gets (char *buf)
+ {
+   _IO_size_t count;
+   int ch;
+diff --git a/libio/iopadn.c b/libio/iopadn.c
+index 7e374508f0f511b8..007898d91dfa2c94 100644
+--- a/libio/iopadn.c
++++ b/libio/iopadn.c
+@@ -33,10 +33,7 @@ static char const zeroes[PADSIZE] =
+ {'0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'};
+ 
+ _IO_ssize_t
+-_IO_padn (fp, pad, count)
+-      _IO_FILE *fp;
+-      int pad;
+-      _IO_ssize_t count;
++_IO_padn (_IO_FILE *fp, int pad, _IO_ssize_t count)
+ {
+   char padbuf[PADSIZE];
+   const char *padptr;
+diff --git a/libio/iopopen.c b/libio/iopopen.c
+index 82c30fab8d768b04..530f5dd87b6c292e 100644
+--- a/libio/iopopen.c
++++ b/libio/iopopen.c
+@@ -106,10 +106,7 @@ unlock (void *not_used)
+ #endif
+ 
+ _IO_FILE *
+-_IO_new_proc_open (fp, command, mode)
+-     _IO_FILE *fp;
+-     const char *command;
+-     const char *mode;
++_IO_new_proc_open (_IO_FILE *fp, const char *command, const char *mode)
+ {
+   int read_or_write;
+   int parent_end, child_end;
+@@ -272,9 +269,7 @@ _IO_new_proc_open (fp, command, mode)
+ }
+ 
+ _IO_FILE *
+-_IO_new_popen (command, mode)
+-     const char *command;
+-     const char *mode;
++_IO_new_popen (const char *command, const char *mode)
+ {
+   struct locked_FILE
+   {
+@@ -306,8 +301,7 @@ _IO_new_popen (command, mode)
+ }
+ 
+ int
+-_IO_new_proc_close (fp)
+-     _IO_FILE *fp;
++_IO_new_proc_close (_IO_FILE *fp)
+ {
+   /* This is not name-space clean. FIXME! */
+   int wstatus;
+diff --git a/libio/ioputs.c b/libio/ioputs.c
+index 3a46022764d7d2b6..8f2ea8de7a351e98 100644
+--- a/libio/ioputs.c
++++ b/libio/ioputs.c
+@@ -29,8 +29,7 @@
+ #include <limits.h>
+ 
+ int
+-_IO_puts (str)
+-     const char *str;
++_IO_puts (const char *str)
+ {
+   int result = EOF;
+   _IO_size_t len = strlen (str);
+diff --git a/libio/ioseekoff.c b/libio/ioseekoff.c
+index 7d5cf61af905c1e5..07b02bb7943b7218 100644
+--- a/libio/ioseekoff.c
++++ b/libio/ioseekoff.c
+@@ -35,11 +35,7 @@ extern int errno;
+ #endif
+ 
+ _IO_off64_t
+-_IO_seekoff_unlocked (fp, offset, dir, mode)
+-     _IO_FILE *fp;
+-     _IO_off64_t offset;
+-     int dir;
+-     int mode;
++_IO_seekoff_unlocked (_IO_FILE *fp, _IO_off64_t offset, int dir, int mode)
+ {
+   if (dir != _IO_seek_cur && dir != _IO_seek_set && dir != _IO_seek_end)
+     {
+@@ -71,11 +67,7 @@ _IO_seekoff_unlocked (fp, offset, dir, mode)
+ 
+ 
+ _IO_off64_t
+-_IO_seekoff (fp, offset, dir, mode)
+-     _IO_FILE *fp;
+-     _IO_off64_t offset;
+-     int dir;
+-     int mode;
++_IO_seekoff (_IO_FILE *fp, _IO_off64_t offset, int dir, int mode)
+ {
+   _IO_off64_t retval;
+ 
+diff --git a/libio/ioseekpos.c b/libio/ioseekpos.c
+index 0f0aff9334e84bbd..2bbc7085332361fa 100644
+--- a/libio/ioseekpos.c
++++ b/libio/ioseekpos.c
+@@ -27,10 +27,7 @@
+ #include <libioP.h>
+ 
+ _IO_off64_t
+-_IO_seekpos_unlocked (fp, pos, mode)
+-     _IO_FILE *fp;
+-     _IO_off64_t pos;
+-     int mode;
++_IO_seekpos_unlocked (_IO_FILE *fp, _IO_off64_t pos, int mode)
+ {
+   /* If we have a backup buffer, get rid of it, since the __seekoff
+      callback may not know to do the right thing about it.
+@@ -51,10 +48,7 @@ _IO_seekpos_unlocked (fp, pos, mode)
+ 
+ 
+ _IO_off64_t
+-_IO_seekpos (fp, pos, mode)
+-     _IO_FILE *fp;
+-     _IO_off64_t pos;
+-     int mode;
++_IO_seekpos (_IO_FILE *fp, _IO_off64_t pos, int mode)
+ {
+   _IO_off64_t retval;
+ 
+diff --git a/libio/iosetbuffer.c b/libio/iosetbuffer.c
+index 2b2d461ceed304c7..7a9b594fa958221a 100644
+--- a/libio/iosetbuffer.c
++++ b/libio/iosetbuffer.c
+@@ -27,10 +27,7 @@
+ #include "libioP.h"
+ 
+ void
+-_IO_setbuffer (fp, buf, size)
+-     _IO_FILE *fp;
+-     char *buf;
+-     _IO_size_t size;
++_IO_setbuffer (_IO_FILE *fp, char *buf, _IO_size_t size)
+ {
+   CHECK_FILE (fp, );
+   _IO_acquire_lock (fp);
+diff --git a/libio/iosetvbuf.c b/libio/iosetvbuf.c
+index 3df9d23c86d30f62..676b0f4137812ae9 100644
+--- a/libio/iosetvbuf.c
++++ b/libio/iosetvbuf.c
+@@ -31,11 +31,7 @@
+ #define _IONBF 2 /* No buffering. */
+ 
+ int
+-_IO_setvbuf (fp, buf, mode, size)
+-     _IO_FILE *fp;
+-     char *buf;
+-     int mode;
+-     _IO_size_t size;
++_IO_setvbuf (_IO_FILE *fp, char *buf, int mode, _IO_size_t size)
+ {
+   int result;
+   CHECK_FILE (fp, EOF);
+diff --git a/libio/ioungetc.c b/libio/ioungetc.c
+index 7ebd3e59230c0647..d42d9aa630b64111 100644
+--- a/libio/ioungetc.c
++++ b/libio/ioungetc.c
+@@ -27,9 +27,7 @@
+ #include "libioP.h"
+ 
+ int
+-_IO_ungetc (c, fp)
+-     int c;
+-     _IO_FILE *fp;
++_IO_ungetc (int c, _IO_FILE *fp)
+ {
+   int result;
+   CHECK_FILE (fp, EOF);
+diff --git a/libio/ioungetwc.c b/libio/ioungetwc.c
+index 9ee9a281d048b94d..016070f4fef907c3 100644
+--- a/libio/ioungetwc.c
++++ b/libio/ioungetwc.c
+@@ -28,9 +28,7 @@
+ #include <wchar.h>
+ 
+ wint_t
+-ungetwc (c, fp)
+-     wint_t c;
+-     _IO_FILE *fp;
++ungetwc (wint_t c, _IO_FILE *fp)
+ {
+   wint_t result;
+   CHECK_FILE (fp, WEOF);
+diff --git a/libio/iovdprintf.c b/libio/iovdprintf.c
+index 688c93237f0d8406..dce5badbed3839d9 100644
+--- a/libio/iovdprintf.c
++++ b/libio/iovdprintf.c
+@@ -28,10 +28,7 @@
+ #include <stdio_ext.h>
+ 
+ int
+-_IO_vdprintf (d, format, arg)
+-     int d;
+-     const char *format;
+-     _IO_va_list arg;
++_IO_vdprintf (int d, const char *format, _IO_va_list arg)
+ {
+   struct _IO_FILE_plus tmpfil;
+   struct _IO_wide_data wd;
+diff --git a/libio/iovsscanf.c b/libio/iovsscanf.c
+index 2ae586cd8590ccec..26331c63a4dcd687 100644
+--- a/libio/iovsscanf.c
++++ b/libio/iovsscanf.c
+@@ -28,10 +28,7 @@
+ #include "strfile.h"
+ 
+ int
+-_IO_vsscanf (string, format, args)
+-     const char *string;
+-     const char *format;
+-     _IO_va_list args;
++_IO_vsscanf (const char *string, const char *format, _IO_va_list args)
+ {
+   int ret;
+   _IO_strfile sf;
+diff --git a/libio/iowpadn.c b/libio/iowpadn.c
+index a4b5eddaa4c6f805..b8d258210dd41d0a 100644
+--- a/libio/iowpadn.c
++++ b/libio/iowpadn.c
+@@ -39,10 +39,7 @@ static wchar_t const zeroes[PADSIZE] =
+ };
+ 
+ _IO_ssize_t
+-_IO_wpadn (fp, pad, count)
+-      _IO_FILE *fp;
+-      wint_t pad;
+-      _IO_ssize_t count;
++_IO_wpadn (_IO_FILE *fp, wint_t pad, _IO_ssize_t count)
+ {
+   wchar_t padbuf[PADSIZE];
+   const wchar_t *padptr;
+diff --git a/libio/libc_fatal.c b/libio/libc_fatal.c
+index 93d655d79e35dfcf..773799076c7522a4 100644
+--- a/libio/libc_fatal.c
++++ b/libio/libc_fatal.c
+@@ -19,8 +19,7 @@
+ 
+ /* Abort with an error message.  */
+ void
+-__libc_fatal (message)
+-     const char *message;
++__libc_fatal (const char *message)
+ {
+   /* This function should write MESSAGE out in the most reliable way.
+      It is called in situations like internal stdio lossage.  */
+diff --git a/libio/memstream.c b/libio/memstream.c
+index aa9d609859b5d6dc..e18a7756b297c9f4 100644
+--- a/libio/memstream.c
++++ b/libio/memstream.c
+@@ -61,9 +61,7 @@ static const struct _IO_jump_t _IO_mem_jumps libio_vtable =
+    necessary.  *BUFLOC and *SIZELOC are updated with the buffer's location
+    and the number of characters written on fflush or fclose.  */
+ _IO_FILE *
+-open_memstream (bufloc, sizeloc)
+-     char **bufloc;
+-     _IO_size_t *sizeloc;
++open_memstream (char **bufloc, _IO_size_t *sizeloc)
+ {
+   struct locked_FILE
+   {
+@@ -101,8 +99,7 @@ libc_hidden_def (open_memstream)
+ 
+ 
+ static int
+-_IO_mem_sync (fp)
+-     _IO_FILE* fp;
++_IO_mem_sync (_IO_FILE *fp)
+ {
+   struct _IO_FILE_memstream *mp = (struct _IO_FILE_memstream *) fp;
+ 
+@@ -122,9 +119,7 @@ _IO_mem_sync (fp)
+ 
+ 
+ static void
+-_IO_mem_finish (fp, dummy)
+-     _IO_FILE* fp;
+-     int dummy;
++_IO_mem_finish (_IO_FILE *fp, int dummy)
+ {
+   struct _IO_FILE_memstream *mp = (struct _IO_FILE_memstream *) fp;
+ 
+diff --git a/libio/oldfileops.c b/libio/oldfileops.c
+index 0d778fa253822171..755c73f5a5b1a2cf 100644
+--- a/libio/oldfileops.c
++++ b/libio/oldfileops.c
+@@ -113,8 +113,7 @@ extern int errno;
+ 
+ void
+ attribute_compat_text_section
+-_IO_old_file_init_internal (fp)
+-     struct _IO_FILE_plus *fp;
++_IO_old_file_init_internal (struct _IO_FILE_plus *fp)
+ {
+   /* POSIX.1 allows another file handle to be used to change the position
+      of our file descriptor.  Hence we actually don't know the actual
+@@ -148,8 +147,7 @@ _IO_old_file_init (struct _IO_FILE_plus *fp)
+ 
+ int
+ attribute_compat_text_section
+-_IO_old_file_close_it (fp)
+-     _IO_FILE *fp;
++_IO_old_file_close_it (_IO_FILE *fp)
+ {
+   int write_status, close_status;
+   if (!_IO_file_is_open (fp))
+@@ -177,9 +175,7 @@ _IO_old_file_close_it (fp)
+ 
+ void
+ attribute_compat_text_section
+-_IO_old_file_finish (fp, dummy)
+-     _IO_FILE *fp;
+-     int dummy;
++_IO_old_file_finish (_IO_FILE *fp, int dummy)
+ {
+   if (_IO_file_is_open (fp))
+     {
+@@ -192,10 +188,7 @@ _IO_old_file_finish (fp, dummy)
+ 
+ _IO_FILE *
+ attribute_compat_text_section
+-_IO_old_file_fopen (fp, filename, mode)
+-     _IO_FILE *fp;
+-     const char *filename;
+-     const char *mode;
++_IO_old_file_fopen (_IO_FILE *fp, const char *filename, const char *mode)
+ {
+   int oflags = 0, omode;
+   int read_write, fdesc;
+@@ -242,9 +235,7 @@ _IO_old_file_fopen (fp, filename, mode)
+ 
+ _IO_FILE *
+ attribute_compat_text_section
+-_IO_old_file_attach (fp, fd)
+-     _IO_FILE *fp;
+-     int fd;
++_IO_old_file_attach (_IO_FILE *fp, int fd)
+ {
+   if (_IO_file_is_open (fp))
+     return NULL;
+@@ -262,10 +253,7 @@ _IO_old_file_attach (fp, fd)
+ 
+ _IO_FILE *
+ attribute_compat_text_section
+-_IO_old_file_setbuf (fp, p, len)
+-     _IO_FILE *fp;
+-     char *p;
+-     _IO_ssize_t len;
++_IO_old_file_setbuf (_IO_FILE *fp, char *p, _IO_ssize_t len)
+ {
+     if (_IO_default_setbuf (fp, p, len) == NULL)
+       return NULL;
+@@ -284,10 +272,7 @@ static int old_do_write (_IO_FILE *, const char *, _IO_size_t);
+ 
+ int
+ attribute_compat_text_section
+-_IO_old_do_write (fp, data, to_do)
+-     _IO_FILE *fp;
+-     const char *data;
+-     _IO_size_t to_do;
++_IO_old_do_write (_IO_FILE *fp, const char *data, _IO_size_t to_do)
+ {
+   return (to_do == 0 || (_IO_size_t) old_do_write (fp, data, to_do) == to_do)
+ 	 ? 0 : EOF;
+@@ -295,10 +280,7 @@ _IO_old_do_write (fp, data, to_do)
+ 
+ static int
+ attribute_compat_text_section
+-old_do_write (fp, data, to_do)
+-     _IO_FILE *fp;
+-     const char *data;
+-     _IO_size_t to_do;
++old_do_write (_IO_FILE *fp, const char *data, _IO_size_t to_do)
+ {
+   _IO_size_t count;
+   if (fp->_flags & _IO_IS_APPENDING)
+@@ -328,8 +310,7 @@ old_do_write (fp, data, to_do)
+ 
+ int
+ attribute_compat_text_section
+-_IO_old_file_underflow (fp)
+-     _IO_FILE *fp;
++_IO_old_file_underflow (_IO_FILE *fp)
+ {
+   _IO_ssize_t count;
+ #if 0
+@@ -393,9 +374,7 @@ _IO_old_file_underflow (fp)
+ 
+ int
+ attribute_compat_text_section
+-_IO_old_file_overflow (f, ch)
+-      _IO_FILE *f;
+-      int ch;
++_IO_old_file_overflow (_IO_FILE *f, int ch)
+ {
+   if (f->_flags & _IO_NO_WRITES) /* SET ERROR */
+     {
+@@ -445,8 +424,7 @@ _IO_old_file_overflow (f, ch)
+ 
+ int
+ attribute_compat_text_section
+-_IO_old_file_sync (fp)
+-     _IO_FILE *fp;
++_IO_old_file_sync (_IO_FILE *fp)
+ {
+   _IO_ssize_t delta;
+   int retval = 0;
+@@ -480,11 +458,7 @@ _IO_old_file_sync (fp)
+ 
+ _IO_off64_t
+ attribute_compat_text_section
+-_IO_old_file_seekoff (fp, offset, dir, mode)
+-     _IO_FILE *fp;
+-     _IO_off64_t offset;
+-     int dir;
+-     int mode;
++_IO_old_file_seekoff (_IO_FILE *fp, _IO_off64_t offset, int dir, int mode)
+ {
+   _IO_off_t result;
+   _IO_off64_t delta, new_offset;
+@@ -667,10 +641,7 @@ resync:
+ 
+ _IO_ssize_t
+ attribute_compat_text_section
+-_IO_old_file_write (f, data, n)
+-     _IO_FILE *f;
+-     const void *data;
+-     _IO_ssize_t n;
++_IO_old_file_write (_IO_FILE *f, const void *data, _IO_ssize_t n)
+ {
+   _IO_ssize_t to_do = n;
+   while (to_do > 0)
+@@ -692,10 +663,7 @@ _IO_old_file_write (f, data, n)
+ 
+ _IO_size_t
+ attribute_compat_text_section
+-_IO_old_file_xsputn (f, data, n)
+-     _IO_FILE *f;
+-     const void *data;
+-     _IO_size_t n;
++_IO_old_file_xsputn (_IO_FILE *f, const void *data, _IO_size_t n)
+ {
+   const char *s = (char *) data;
+   _IO_size_t to_do = n;
+diff --git a/libio/oldiofclose.c b/libio/oldiofclose.c
+index ff2e1d9cf3812b08..4e7fba78901cd485 100644
+--- a/libio/oldiofclose.c
++++ b/libio/oldiofclose.c
+@@ -33,8 +33,7 @@
+ 
+ int
+ attribute_compat_text_section
+-_IO_old_fclose (fp)
+-     _IO_FILE *fp;
++_IO_old_fclose (_IO_FILE *fp)
+ {
+   int status;
+ 
+diff --git a/libio/oldiofdopen.c b/libio/oldiofdopen.c
+index bf126970dd09fddc..22ba126bbe1296ae 100644
+--- a/libio/oldiofdopen.c
++++ b/libio/oldiofdopen.c
+@@ -38,9 +38,7 @@
+ 
+ _IO_FILE *
+ attribute_compat_text_section
+-_IO_old_fdopen (fd, mode)
+-     int fd;
+-     const char *mode;
++_IO_old_fdopen (int fd, const char *mode)
+ {
+   int read_write;
+   int posix_mode = 0;
+diff --git a/libio/oldiofgetpos.c b/libio/oldiofgetpos.c
+index b1b326318ba9390a..3f21f8c896a1f9eb 100644
+--- a/libio/oldiofgetpos.c
++++ b/libio/oldiofgetpos.c
+@@ -33,9 +33,7 @@
+ 
+ int
+ attribute_compat_text_section
+-_IO_old_fgetpos (fp, posp)
+-     _IO_FILE *fp;
+-     _IO_fpos_t *posp;
++_IO_old_fgetpos (_IO_FILE *fp, _IO_fpos_t *posp)
+ {
+   _IO_off_t pos;
+   CHECK_FILE (fp, EOF);
+diff --git a/libio/oldiofgetpos64.c b/libio/oldiofgetpos64.c
+index bef8bc45ea26060d..0478d117caf49a57 100644
+--- a/libio/oldiofgetpos64.c
++++ b/libio/oldiofgetpos64.c
+@@ -32,9 +32,7 @@
+ 
+ int
+ attribute_compat_text_section
+-_IO_old_fgetpos64 (fp, posp)
+-     _IO_FILE *fp;
+-     _IO_fpos64_t *posp;
++_IO_old_fgetpos64 (_IO_FILE *fp, _IO_fpos64_t *posp)
+ {
+   _IO_off64_t pos;
+   CHECK_FILE (fp, EOF);
+diff --git a/libio/oldiofopen.c b/libio/oldiofopen.c
+index 869f668d70074943..ec7d9e0b09972b0a 100644
+--- a/libio/oldiofopen.c
++++ b/libio/oldiofopen.c
+@@ -34,9 +34,7 @@
+ 
+ _IO_FILE *
+ attribute_compat_text_section
+-_IO_old_fopen (filename, mode)
+-     const char *filename;
+-     const char *mode;
++_IO_old_fopen (const char *filename, const char *mode)
+ {
+   struct locked_FILE
+   {
+diff --git a/libio/oldiofsetpos.c b/libio/oldiofsetpos.c
+index 2efe76e9d6f5e146..dcdaf4353b247976 100644
+--- a/libio/oldiofsetpos.c
++++ b/libio/oldiofsetpos.c
+@@ -32,9 +32,7 @@
+ #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
+ int
+ attribute_compat_text_section
+-_IO_old_fsetpos (fp, posp)
+-     _IO_FILE *fp;
+-     const _IO_fpos_t *posp;
++_IO_old_fsetpos (_IO_FILE *fp, const _IO_fpos_t *posp)
+ {
+   int result;
+   CHECK_FILE (fp, EOF);
+diff --git a/libio/oldiofsetpos64.c b/libio/oldiofsetpos64.c
+index 23cb693d3a88cea4..4b4416293a7bf509 100644
+--- a/libio/oldiofsetpos64.c
++++ b/libio/oldiofsetpos64.c
+@@ -32,9 +32,7 @@
+ 
+ int
+ attribute_compat_text_section
+-_IO_old_fsetpos64 (fp, posp)
+-     _IO_FILE *fp;
+-     const _IO_fpos64_t *posp;
++_IO_old_fsetpos64 (_IO_FILE *fp, const _IO_fpos64_t *posp)
+ {
+   int result;
+   CHECK_FILE (fp, EOF);
+diff --git a/libio/oldiopopen.c b/libio/oldiopopen.c
+index 2892016be1aab86d..46dacf0f236e3129 100644
+--- a/libio/oldiopopen.c
++++ b/libio/oldiopopen.c
+@@ -115,10 +115,7 @@ unlock (void *not_used)
+ 
+ _IO_FILE *
+ attribute_compat_text_section
+-_IO_old_proc_open (fp, command, mode)
+-     _IO_FILE *fp;
+-     const char *command;
+-     const char *mode;
++_IO_old_proc_open (_IO_FILE *fp, const char *command, const char *mode)
+ {
+   volatile int read_or_write;
+   volatile int parent_end, child_end;
+@@ -194,9 +191,7 @@ _IO_old_proc_open (fp, command, mode)
+ 
+ _IO_FILE *
+ attribute_compat_text_section
+-_IO_old_popen (command, mode)
+-     const char *command;
+-     const char *mode;
++_IO_old_popen (const char *command, const char *mode)
+ {
+   struct locked_FILE
+   {
+@@ -229,8 +224,7 @@ _IO_old_popen (command, mode)
+ 
+ int
+ attribute_compat_text_section
+-_IO_old_proc_close (fp)
+-     _IO_FILE *fp;
++_IO_old_proc_close (_IO_FILE *fp)
+ {
+   /* This is not name-space clean. FIXME! */
+   int wstatus;
+diff --git a/libio/oldpclose.c b/libio/oldpclose.c
+index 4b55eab247e67c21..24d5681e23a5598d 100644
+--- a/libio/oldpclose.c
++++ b/libio/oldpclose.c
+@@ -34,8 +34,7 @@
+ 
+ int
+ attribute_compat_text_section
+-__old_pclose (fp)
+-     FILE *fp;
++__old_pclose (FILE *fp)
+ {
+ #if 0
+   /* Does not actually test that stream was created by popen(). Instead,
+diff --git a/libio/pclose.c b/libio/pclose.c
+index 9abe76beb0f7032b..eb0ec5daae9e4562 100644
+--- a/libio/pclose.c
++++ b/libio/pclose.c
+@@ -30,8 +30,7 @@
+ #include <shlib-compat.h>
+ 
+ int
+-__new_pclose (fp)
+-     FILE *fp;
++__new_pclose (FILE *fp)
+ {
+ #if 0
+   /* Does not actually test that stream was created by popen(). Instead,
+diff --git a/libio/peekc.c b/libio/peekc.c
+index d5bcecdebf3358e1..21f78a435ae3baa2 100644
+--- a/libio/peekc.c
++++ b/libio/peekc.c
+@@ -30,8 +30,7 @@
+ #undef _IO_peekc
+ 
+ int
+-_IO_peekc_locked (fp)
+-     _IO_FILE *fp;
++_IO_peekc_locked (_IO_FILE *fp)
+ {
+   int result;
+   CHECK_FILE (fp, EOF);
+diff --git a/libio/putc.c b/libio/putc.c
+index 4d97b505a00f2719..a2503ffb0230f7a3 100644
+--- a/libio/putc.c
++++ b/libio/putc.c
+@@ -21,9 +21,7 @@
+ #undef _IO_putc
+ 
+ int
+-_IO_putc (c, fp)
+-     int c;
+-     _IO_FILE *fp;
++_IO_putc (int c, _IO_FILE *fp)
+ {
+   int result;
+   CHECK_FILE (fp, EOF);
+diff --git a/libio/putc_u.c b/libio/putc_u.c
+index 927083b661fc5bc0..480b1e6b1387311f 100644
+--- a/libio/putc_u.c
++++ b/libio/putc_u.c
+@@ -21,9 +21,7 @@
+ #undef putc_unlocked
+ 
+ int
+-putc_unlocked (c, fp)
+-     int c;
+-     _IO_FILE *fp;
++putc_unlocked (int c, _IO_FILE *fp)
+ {
+   CHECK_FILE (fp, EOF);
+   return _IO_putc_unlocked (c, fp);
+diff --git a/libio/putchar.c b/libio/putchar.c
+index 7fd54b5beccbeb83..cbcd8a9ec4466aea 100644
+--- a/libio/putchar.c
++++ b/libio/putchar.c
+@@ -21,8 +21,7 @@
+ #undef putchar
+ 
+ int
+-putchar (c)
+-     int c;
++putchar (int c)
+ {
+   int result;
+   _IO_acquire_lock (_IO_stdout);
+diff --git a/libio/putchar_u.c b/libio/putchar_u.c
+index a8c915693dc368fb..b665d241c5bee273 100644
+--- a/libio/putchar_u.c
++++ b/libio/putchar_u.c
+@@ -21,8 +21,7 @@
+ #undef putchar_unlocked
+ 
+ int
+-putchar_unlocked (c)
+-     int c;
++putchar_unlocked (int c)
+ {
+   CHECK_FILE (_IO_stdout, EOF);
+   return _IO_putc_unlocked (c, _IO_stdout);
+diff --git a/libio/putwc.c b/libio/putwc.c
+index 626f40af035ef95d..7a61db29990c028d 100644
+--- a/libio/putwc.c
++++ b/libio/putwc.c
+@@ -20,9 +20,7 @@
+ #include <wchar.h>
+ 
+ wint_t
+-putwc (wc, fp)
+-     wchar_t wc;
+-     _IO_FILE *fp;
++putwc (wchar_t wc, _IO_FILE *fp)
+ {
+   wint_t result;
+   CHECK_FILE (fp, WEOF);
+diff --git a/libio/putwc_u.c b/libio/putwc_u.c
+index 707f6622bcaf43ff..c6156a7961f71cae 100644
+--- a/libio/putwc_u.c
++++ b/libio/putwc_u.c
+@@ -19,9 +19,7 @@
+ #include <wchar.h>
+ 
+ wint_t
+-putwc_unlocked (wc, fp)
+-     wchar_t wc;
+-     _IO_FILE *fp;
++putwc_unlocked (wchar_t wc, _IO_FILE *fp)
+ {
+   CHECK_FILE (fp, WEOF);
+   return _IO_putwc_unlocked (wc, fp);
+diff --git a/libio/putwchar.c b/libio/putwchar.c
+index 608c48829b18fbe2..b917fa33de27615a 100644
+--- a/libio/putwchar.c
++++ b/libio/putwchar.c
+@@ -19,8 +19,7 @@
+ #include <wchar.h>
+ 
+ wint_t
+-putwchar (wc)
+-     wchar_t wc;
++putwchar (wchar_t wc)
+ {
+   wint_t result;
+   _IO_acquire_lock (_IO_stdout);
+diff --git a/libio/putwchar_u.c b/libio/putwchar_u.c
+index 114caec6429e064c..85aa92417d4989e1 100644
+--- a/libio/putwchar_u.c
++++ b/libio/putwchar_u.c
+@@ -19,8 +19,7 @@
+ #include <wchar.h>
+ 
+ wint_t
+-putwchar_unlocked (wc)
+-     wchar_t wc;
++putwchar_unlocked (wchar_t wc)
+ {
+   CHECK_FILE (_IO_stdout, WEOF);
+   return _IO_putwc_unlocked (wc, _IO_stdout);
+diff --git a/libio/rewind.c b/libio/rewind.c
+index 70d41c932631fcc6..8ef281fac5a28656 100644
+--- a/libio/rewind.c
++++ b/libio/rewind.c
+@@ -28,8 +28,7 @@
+ #include <stdio.h>
+ 
+ void
+-rewind (fp)
+-     _IO_FILE *fp;
++rewind (_IO_FILE *fp)
+ {
+   CHECK_FILE (fp, );
+   _IO_acquire_lock (fp);
+diff --git a/libio/setbuf.c b/libio/setbuf.c
+index a20ef1f8f8f612fb..d3c29794584a88e4 100644
+--- a/libio/setbuf.c
++++ b/libio/setbuf.c
+@@ -28,9 +28,7 @@
+ #include "stdio.h"
+ 
+ void
+-setbuf (fp, buf)
+-     _IO_FILE *fp;
+-     char *buf;
++setbuf (_IO_FILE *fp, char *buf)
+ {
+   _IO_setbuffer (fp, buf, _IO_BUFSIZ);
+ }
+diff --git a/libio/setlinebuf.c b/libio/setlinebuf.c
+index e0db23cedeb7057b..fbbafe2a85ea9079 100644
+--- a/libio/setlinebuf.c
++++ b/libio/setlinebuf.c
+@@ -30,8 +30,7 @@
+ #undef setlinebuf
+ 
+ void
+-setlinebuf (stream)
+-     _IO_FILE *stream;
++setlinebuf (_IO_FILE *stream)
+ {
+   _IO_setvbuf (stream, NULL, 1, 0);
+ }
+diff --git a/libio/vasprintf.c b/libio/vasprintf.c
+index 494efa6d0977c1a4..282c86fff0a7ae0e 100644
+--- a/libio/vasprintf.c
++++ b/libio/vasprintf.c
+@@ -32,10 +32,7 @@
+ #include "strfile.h"
+ 
+ int
+-_IO_vasprintf (result_ptr, format, args)
+-     char **result_ptr;
+-     const char *format;
+-     _IO_va_list args;
++_IO_vasprintf (char **result_ptr, const char *format, _IO_va_list args)
+ {
+   /* Initial size of the buffer to be used.  Will be doubled each time an
+      overflow occurs.  */
+diff --git a/libio/vscanf.c b/libio/vscanf.c
+index 12bfb34771889101..393d74323e77e60d 100644
+--- a/libio/vscanf.c
++++ b/libio/vscanf.c
+@@ -30,9 +30,7 @@
+ #undef vscanf
+ 
+ int
+-_IO_vscanf (format, args)
+-     const char *format;
+-     _IO_va_list args;
++_IO_vscanf (const char *format, _IO_va_list args)
+ {
+   return _IO_vfscanf (_IO_stdin, format, args, NULL);
+ }
+diff --git a/libio/vsnprintf.c b/libio/vsnprintf.c
+index 26491e805080ff32..4e76a8c8fc035430 100644
+--- a/libio/vsnprintf.c
++++ b/libio/vsnprintf.c
+@@ -30,9 +30,7 @@
+ static int _IO_strn_overflow (_IO_FILE *fp, int c) __THROW;
+ 
+ static int
+-_IO_strn_overflow (fp, c)
+-     _IO_FILE *fp;
+-     int c;
++_IO_strn_overflow (_IO_FILE *fp, int c)
+ {
+   /* When we come to here this means the user supplied buffer is
+      filled.  But since we must return the number of characters which
+diff --git a/libio/vswprintf.c b/libio/vswprintf.c
+index 030eaa913601c80b..5cd58de2e88939d9 100644
+--- a/libio/vswprintf.c
++++ b/libio/vswprintf.c
+@@ -31,9 +31,7 @@
+ static wint_t _IO_wstrn_overflow (_IO_FILE *fp, wint_t c) __THROW;
+ 
+ static wint_t
+-_IO_wstrn_overflow (fp, c)
+-     _IO_FILE *fp;
+-     wint_t c;
++_IO_wstrn_overflow (_IO_FILE *fp, wint_t c)
+ {
+   /* When we come to here this means the user supplied buffer is
+      filled.  But since we must return the number of characters which
+diff --git a/libio/wfiledoalloc.c b/libio/wfiledoalloc.c
+index 10f4270ce18d2d93..86fc3f5df7f6ccaa 100644
+--- a/libio/wfiledoalloc.c
++++ b/libio/wfiledoalloc.c
+@@ -78,8 +78,7 @@
+  */
+ 
+ int
+-_IO_wfile_doallocate (fp)
+-     _IO_FILE *fp;
++_IO_wfile_doallocate (_IO_FILE *fp)
+ {
+   _IO_size_t size;
+   wchar_t *p;
+diff --git a/libio/wgenops.c b/libio/wgenops.c
+index f8f27b04a9c4d1bb..3f34bbc92d8746be 100644
+--- a/libio/wgenops.c
++++ b/libio/wgenops.c
+@@ -48,9 +48,7 @@ static int save_for_wbackup (_IO_FILE *fp, wchar_t *end_p) __THROW
+ /* Return minimum _pos markers
+    Assumes the current get area is the main get area. */
+ _IO_ssize_t
+-_IO_least_wmarker (fp, end_p)
+-     _IO_FILE *fp;
+-     wchar_t *end_p;
++_IO_least_wmarker (_IO_FILE *fp, wchar_t *end_p)
+ {
+   _IO_ssize_t least_so_far = end_p - fp->_wide_data->_IO_read_base;
+   struct _IO_marker *mark;
+@@ -63,8 +61,7 @@ libc_hidden_def (_IO_least_wmarker)
+ 
+ /* Switch current get area from backup buffer to (start of) main get area. */
+ void
+-_IO_switch_to_main_wget_area (fp)
+-     _IO_FILE *fp;
++_IO_switch_to_main_wget_area (_IO_FILE *fp)
+ {
+   wchar_t *tmp;
+   fp->_flags &= ~_IO_IN_BACKUP;
+@@ -84,8 +81,7 @@ libc_hidden_def (_IO_switch_to_main_wget_area)
+ 
+ /* Switch current get area from main get area to (end of) backup area. */
+ void
+-_IO_switch_to_wbackup_area (fp)
+-     _IO_FILE *fp;
++_IO_switch_to_wbackup_area (_IO_FILE *fp)
+ {
+   wchar_t *tmp;
+   fp->_flags |= _IO_IN_BACKUP;
+@@ -104,11 +100,7 @@ libc_hidden_def (_IO_switch_to_wbackup_area)
+ 
+ 
+ void
+-_IO_wsetb (f, b, eb, a)
+-     _IO_FILE *f;
+-     wchar_t *b;
+-     wchar_t *eb;
+-     int a;
++_IO_wsetb (_IO_FILE *f, wchar_t *b, wchar_t *eb, int a)
+ {
+   if (f->_wide_data->_IO_buf_base && !(f->_flags2 & _IO_FLAGS2_USER_WBUF))
+     FREE_BUF (f->_wide_data->_IO_buf_base, _IO_wblen (f) * sizeof (wchar_t));
+@@ -123,9 +115,7 @@ libc_hidden_def (_IO_wsetb)
+ 
+ 
+ wint_t
+-_IO_wdefault_pbackfail (fp, c)
+-     _IO_FILE *fp;
+-     wint_t c;
++_IO_wdefault_pbackfail (_IO_FILE *fp, wint_t c)
+ {
+   if (fp->_wide_data->_IO_read_ptr > fp->_wide_data->_IO_read_base
+       && !_IO_in_backup (fp)
+@@ -188,9 +178,7 @@ libc_hidden_def (_IO_wdefault_pbackfail)
+ 
+ 
+ void
+-_IO_wdefault_finish (fp, dummy)
+-     _IO_FILE *fp;
+-     int dummy;
++_IO_wdefault_finish (_IO_FILE *fp, int dummy)
+ {
+   struct _IO_marker *mark;
+   if (fp->_wide_data->_IO_buf_base && !(fp->_flags2 & _IO_FLAGS2_USER_WBUF))
+@@ -220,8 +208,7 @@ libc_hidden_def (_IO_wdefault_finish)
+ 
+ 
+ wint_t
+-_IO_wdefault_uflow (fp)
+-     _IO_FILE *fp;
++_IO_wdefault_uflow (_IO_FILE *fp)
+ {
+   wint_t wch;
+   wch = _IO_UNDERFLOW (fp);
+@@ -233,9 +220,7 @@ libc_hidden_def (_IO_wdefault_uflow)
+ 
+ 
+ wint_t
+-__woverflow (f, wch)
+-     _IO_FILE *f;
+-     wint_t wch;
++__woverflow (_IO_FILE *f, wint_t wch)
+ {
+   if (f->_mode == 0)
+     _IO_fwide (f, 1);
+@@ -245,8 +230,7 @@ libc_hidden_def (__woverflow)
+ 
+ 
+ wint_t
+-__wuflow (fp)
+-     _IO_FILE *fp;
++__wuflow (_IO_FILE *fp)
+ {
+   if (fp->_mode < 0 || (fp->_mode == 0 && _IO_fwide (fp, 1) != 1))
+     return WEOF;
+@@ -276,8 +260,7 @@ __wuflow (fp)
+ libc_hidden_def (__wuflow)
+ 
+ wint_t
+-__wunderflow (fp)
+-     _IO_FILE *fp;
++__wunderflow (_IO_FILE *fp)
+ {
+   if (fp->_mode < 0 || (fp->_mode == 0 && _IO_fwide (fp, 1) != 1))
+     return WEOF;
+@@ -308,10 +291,7 @@ libc_hidden_def (__wunderflow)
+ 
+ 
+ _IO_size_t
+-_IO_wdefault_xsputn (f, data, n)
+-     _IO_FILE *f;
+-     const void *data;
+-     _IO_size_t n;
++_IO_wdefault_xsputn (_IO_FILE *f, const void *data, _IO_size_t n)
+ {
+   const wchar_t *s = (const wchar_t *) data;
+   _IO_size_t more = n;
+@@ -359,10 +339,7 @@ libc_hidden_def (_IO_wdefault_xsputn)
+ 
+ 
+ _IO_size_t
+-_IO_wdefault_xsgetn (fp, data, n)
+-     _IO_FILE *fp;
+-     void *data;
+-     _IO_size_t n;
++_IO_wdefault_xsgetn (_IO_FILE *fp, void *data, _IO_size_t n)
+ {
+   _IO_size_t more = n;
+   wchar_t *s = (wchar_t*) data;
+@@ -406,8 +383,7 @@ libc_hidden_def (_IO_wdefault_xsgetn)
+ 
+ 
+ void
+-_IO_wdoallocbuf (fp)
+-     _IO_FILE *fp;
++_IO_wdoallocbuf (_IO_FILE *fp)
+ {
+   if (fp->_wide_data->_IO_buf_base)
+     return;
+@@ -421,8 +397,7 @@ libc_hidden_def (_IO_wdoallocbuf)
+ 
+ 
+ int
+-_IO_wdefault_doallocate (fp)
+-     _IO_FILE *fp;
++_IO_wdefault_doallocate (_IO_FILE *fp)
+ {
+   wchar_t *buf;
+ 
+@@ -434,8 +409,7 @@ libc_hidden_def (_IO_wdefault_doallocate)
+ 
+ 
+ int
+-_IO_switch_to_wget_mode (fp)
+-     _IO_FILE *fp;
++_IO_switch_to_wget_mode (_IO_FILE *fp)
+ {
+   if (fp->_wide_data->_IO_write_ptr > fp->_wide_data->_IO_write_base)
+     if ((wint_t)_IO_WOVERFLOW (fp, WEOF) == WEOF)
+@@ -459,8 +433,7 @@ _IO_switch_to_wget_mode (fp)
+ libc_hidden_def (_IO_switch_to_wget_mode)
+ 
+ void
+-_IO_free_wbackup_area (fp)
+-     _IO_FILE *fp;
++_IO_free_wbackup_area (_IO_FILE *fp)
+ {
+   if (_IO_in_backup (fp))
+     _IO_switch_to_main_wget_area (fp);  /* Just in case. */
+@@ -473,8 +446,7 @@ libc_hidden_def (_IO_free_wbackup_area)
+ 
+ #if 0
+ int
+-_IO_switch_to_wput_mode (fp)
+-     _IO_FILE *fp;
++_IO_switch_to_wput_mode (_IO_FILE *fp)
+ {
+   fp->_wide_data->_IO_write_base = fp->_wide_data->_IO_read_ptr;
+   fp->_wide_data->_IO_write_ptr = fp->_wide_data->_IO_read_ptr;
+@@ -593,9 +565,7 @@ save_for_wbackup (fp, end_p)
+ }
+ 
+ wint_t
+-_IO_sputbackwc (fp, c)
+-     _IO_FILE *fp;
+-     wint_t c;
++_IO_sputbackwc (_IO_FILE *fp, wint_t c)
+ {
+   wint_t result;
+ 
+@@ -616,8 +586,7 @@ _IO_sputbackwc (fp, c)
+ libc_hidden_def (_IO_sputbackwc)
+ 
+ wint_t
+-_IO_sungetwc (fp)
+-     _IO_FILE *fp;
++_IO_sungetwc (_IO_FILE *fp)
+ {
+   wint_t result;
+ 
+@@ -637,10 +606,7 @@ _IO_sungetwc (fp)
+ 
+ 
+ unsigned
+-_IO_adjust_wcolumn (start, line, count)
+-     unsigned start;
+-     const wchar_t *line;
+-     int count;
++_IO_adjust_wcolumn (unsigned start, const wchar_t *line, int count)
+ {
+   const wchar_t *ptr = line + count;
+   while (ptr > line)
+@@ -650,9 +616,7 @@ _IO_adjust_wcolumn (start, line, count)
+ }
+ 
+ void
+-_IO_init_wmarker (marker, fp)
+-     struct _IO_marker *marker;
+-     _IO_FILE *fp;
++_IO_init_wmarker (struct _IO_marker *marker, _IO_FILE *fp)
+ {
+   marker->_sbuf = fp;
+   if (_IO_in_put_mode (fp))
+@@ -672,8 +636,7 @@ _IO_init_wmarker (marker, fp)
+ 
+ /* Return difference between MARK and current position of MARK's stream. */
+ int
+-_IO_wmarker_delta (mark)
+-     struct _IO_marker *mark;
++_IO_wmarker_delta (struct _IO_marker *mark)
+ {
+   int cur_pos;
+   if (mark->_sbuf == NULL)
+@@ -688,10 +651,7 @@ _IO_wmarker_delta (mark)
+ }
+ 
+ int
+-_IO_seekwmark (fp, mark, delta)
+-     _IO_FILE *fp;
+-     struct _IO_marker *mark;
+-     int delta;
++_IO_seekwmark (_IO_FILE *fp, struct _IO_marker *mark, int delta)
+ {
+   if (mark->_sbuf != fp)
+     return EOF;
+@@ -712,8 +672,7 @@ _IO_seekwmark (fp, mark, delta)
+ }
+ 
+ void
+-_IO_unsave_wmarkers (fp)
+-     _IO_FILE *fp;
++_IO_unsave_wmarkers (_IO_FILE *fp)
+ {
+   struct _IO_marker *mark = fp->_markers;
+   if (mark)
+diff --git a/libio/wmemstream.c b/libio/wmemstream.c
+index bbdc08bd1ecfd66a..bd6d1798b1685fe9 100644
+--- a/libio/wmemstream.c
++++ b/libio/wmemstream.c
+@@ -62,9 +62,7 @@ static const struct _IO_jump_t _IO_wmem_jumps libio_vtable =
+    necessary.  *BUFLOC and *SIZELOC are updated with the buffer's location
+    and the number of characters written on fflush or fclose.  */
+ _IO_FILE *
+-open_wmemstream (bufloc, sizeloc)
+-     wchar_t **bufloc;
+-     _IO_size_t *sizeloc;
++open_wmemstream (wchar_t **bufloc, _IO_size_t *sizeloc)
+ {
+   struct locked_FILE
+   {
+@@ -103,8 +101,7 @@ open_wmemstream (bufloc, sizeloc)
+ 
+ 
+ static int
+-_IO_wmem_sync (fp)
+-     _IO_FILE* fp;
++_IO_wmem_sync (_IO_FILE *fp)
+ {
+   struct _IO_FILE_wmemstream *mp = (struct _IO_FILE_wmemstream *) fp;
+ 
+@@ -125,9 +122,7 @@ _IO_wmem_sync (fp)
+ 
+ 
+ static void
+-_IO_wmem_finish (fp, dummy)
+-     _IO_FILE* fp;
+-     int dummy;
++_IO_wmem_finish (_IO_FILE *fp, int dummy)
+ {
+   struct _IO_FILE_wmemstream *mp = (struct _IO_FILE_wmemstream *) fp;
+ 
+diff --git a/locale/nl_langinfo.c b/locale/nl_langinfo.c
+index 86fcad73e514088d..a2b64d2b207ed2dd 100644
+--- a/locale/nl_langinfo.c
++++ b/locale/nl_langinfo.c
+@@ -27,8 +27,7 @@
+ /* Return a string with the data for locale-dependent parameter ITEM.  */
+ 
+ char *
+-nl_langinfo (item)
+-     nl_item item;
++nl_langinfo (nl_item item)
+ {
+   return __nl_langinfo_l (item, _NL_CURRENT_LOCALE);
+ }
+diff --git a/locale/nl_langinfo_l.c b/locale/nl_langinfo_l.c
+index 1c6bc658680bd42c..e826c2073145c1e9 100644
+--- a/locale/nl_langinfo_l.c
++++ b/locale/nl_langinfo_l.c
+@@ -26,9 +26,7 @@
+ /* Return a string with the data for locale-dependent parameter ITEM.  */
+ 
+ char *
+-__nl_langinfo_l (item, l)
+-     nl_item item;
+-     __locale_t l;
++__nl_langinfo_l (nl_item item, __locale_t l)
+ {
+   int category = _NL_ITEM_CATEGORY (item);
+   unsigned int index = _NL_ITEM_INDEX (item);
+diff --git a/locale/programs/simple-hash.c b/locale/programs/simple-hash.c
+index 30d3247d5ce98374..b08e60ac72185ad9 100644
+--- a/locale/programs/simple-hash.c
++++ b/locale/programs/simple-hash.c
+@@ -72,9 +72,7 @@ static int is_prime (unsigned long int candidate);
+ 
+ 
+ int
+-init_hash (htab, init_size)
+-     hash_table *htab;
+-     unsigned long int init_size;
++init_hash (hash_table *htab, unsigned long int init_size)
+ {
+   /* We need the size to be a prime.  */
+   init_size = next_prime (init_size);
+@@ -94,8 +92,7 @@ init_hash (htab, init_size)
+ 
+ 
+ int
+-delete_hash (htab)
+-     hash_table *htab;
++delete_hash (hash_table *htab)
+ {
+   free (htab->table);
+   obstack_free (&htab->mem_pool, NULL);
+@@ -104,11 +101,7 @@ delete_hash (htab)
+ 
+ 
+ int
+-insert_entry (htab, key, keylen, data)
+-     hash_table *htab;
+-     const void *key;
+-     size_t keylen;
+-     void *data;
++insert_entry (hash_table *htab, const void *key, size_t keylen, void *data)
+ {
+   unsigned long int hval = compute_hashval (key, keylen);
+   hash_entry *table = (hash_entry *) htab->table;
+@@ -200,11 +193,7 @@ find_entry (htab, key, keylen, result)
+ 
+ 
+ int
+-set_entry (htab, key, keylen, newval)
+-     hash_table *htab;
+-     const void *key;
+-     size_t keylen;
+-     void *newval;
++set_entry (hash_table *htab, const void *key, size_t keylen, void *newval)
+ {
+   hash_entry *table = (hash_entry *) htab->table;
+   size_t idx = lookup (htab, key, keylen, compute_hashval (key, keylen));
+@@ -293,8 +282,7 @@ lookup (htab, key, keylen, hval)
+ 
+ 
+ unsigned long int
+-next_prime (seed)
+-     unsigned long int seed;
++next_prime (unsigned long int seed)
+ {
+   /* Make it definitely odd.  */
+   seed |= 1;
+@@ -307,8 +295,7 @@ next_prime (seed)
+ 
+ 
+ static int
+-is_prime (candidate)
+-     unsigned long int candidate;
++is_prime (unsigned long int candidate)
+ {
+   /* No even number and none less than 10 will be passed here.  */
+   unsigned long int divn = 3;
+diff --git a/locale/programs/xmalloc.c b/locale/programs/xmalloc.c
+index 33ff5502af3362d3..bfc86ab77c29ef0b 100644
+--- a/locale/programs/xmalloc.c
++++ b/locale/programs/xmalloc.c
+@@ -53,8 +53,7 @@ void free ();
+ int xmalloc_exit_failure = EXIT_FAILURE;
+ 
+ static VOID *
+-fixup_null_alloc (n)
+-     size_t n;
++fixup_null_alloc (size_t n)
+ {
+   VOID *p;
+ 
+@@ -69,8 +68,7 @@ fixup_null_alloc (n)
+ /* Allocate N bytes of memory dynamically, with error checking.  */
+ 
+ VOID *
+-xmalloc (n)
+-     size_t n;
++xmalloc (size_t n)
+ {
+   VOID *p;
+ 
+@@ -99,9 +97,7 @@ xcalloc (n, s)
+    If P is NULL, run xmalloc.  */
+ 
+ VOID *
+-xrealloc (p, n)
+-     VOID *p;
+-     size_t n;
++xrealloc (VOID *p, size_t n)
+ {
+   if (p == 0)
+     return xmalloc (n);
+diff --git a/locale/programs/xstrdup.c b/locale/programs/xstrdup.c
+index fdd637c6333c609f..d56e39958e6469a7 100644
+--- a/locale/programs/xstrdup.c
++++ b/locale/programs/xstrdup.c
+@@ -30,8 +30,7 @@ char *xstrdup (char *string) __THROW;
+ /* Return a newly allocated copy of STRING.  */
+ 
+ char *
+-xstrdup (string)
+-     char *string;
++xstrdup (char *string)
+ {
+   return strcpy (xmalloc (strlen (string) + 1), string);
+ }
+diff --git a/localedata/collate-test.c b/localedata/collate-test.c
+index a84974cef3fa5ccd..b506ad9dcc7c3a50 100644
+--- a/localedata/collate-test.c
++++ b/localedata/collate-test.c
+@@ -121,9 +121,7 @@ main (int argc, char *argv[])
+ 
+ 
+ static int
+-xstrcoll (ptr1, ptr2)
+-     const void *ptr1;
+-     const void *ptr2;
++xstrcoll (const void *ptr1, const void *ptr2)
+ {
+   const struct lines *l1 = (const struct lines *) ptr1;
+   const struct lines *l2 = (const struct lines *) ptr2;
+diff --git a/localedata/xfrm-test.c b/localedata/xfrm-test.c
+index 1ab087440ebe30b4..98031362d7023ef8 100644
+--- a/localedata/xfrm-test.c
++++ b/localedata/xfrm-test.c
+@@ -132,9 +132,7 @@ main (int argc, char *argv[])
+ 
+ 
+ static int
+-xstrcmp (ptr1, ptr2)
+-     const void *ptr1;
+-     const void *ptr2;
++xstrcmp (const void *ptr1, const void *ptr2)
+ {
+   const struct lines *l1 = (const struct lines *) ptr1;
+   const struct lines *l2 = (const struct lines *) ptr2;
+diff --git a/login/getlogin_r.c b/login/getlogin_r.c
+index 7cd7be91591b7789..ab21258cd39769dc 100644
+--- a/login/getlogin_r.c
++++ b/login/getlogin_r.c
+@@ -23,9 +23,7 @@
+    If it cannot be determined or some other error occurred, return the error
+    code.  Otherwise return 0.  */
+ int
+-getlogin_r (name, name_len)
+-     char *name;
+-     size_t name_len;
++getlogin_r (char *name, size_t name_len)
+ {
+   __set_errno (ENOSYS);
+   return errno;
+diff --git a/login/getpt.c b/login/getpt.c
+index 89293d8cdf8d9523..6f38a034c3297949 100644
+--- a/login/getpt.c
++++ b/login/getpt.c
+@@ -31,8 +31,7 @@ weak_alias (__getpt, getpt)
+ 
+ /* We cannot define posix_openpt in general for BSD systems.  */
+ int
+-__posix_openpt (oflag)
+-     int oflag;
++__posix_openpt (int oflag)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/login/login_tty.c b/login/login_tty.c
+index 2ba276d4a96441b7..a94f5cb861d1b36a 100644
+--- a/login/login_tty.c
++++ b/login/login_tty.c
+@@ -39,8 +39,7 @@ static char sccsid[] = "@(#)login_tty.c	8.1 (Berkeley) 6/4/93";
+ #include <utmp.h>
+ 
+ int
+-login_tty(fd)
+-	int fd;
++login_tty (int fd)
+ {
+ 	(void) setsid();
+ #ifdef TIOCSCTTY
+diff --git a/login/setlogin.c b/login/setlogin.c
+index 8a8362bdc864b6b4..6ff9bced3e0358a8 100644
+--- a/login/setlogin.c
++++ b/login/setlogin.c
+@@ -20,8 +20,7 @@
+ 
+ /* Set the login name returned by `getlogin'.  */
+ int
+-setlogin (name)
+-     const char *name;
++setlogin (const char *name)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/mach/msg-destroy.c b/mach/msg-destroy.c
+index 19f96d4e218bb988..5371037028279fd1 100644
+--- a/mach/msg-destroy.c
++++ b/mach/msg-destroy.c
+@@ -58,8 +58,7 @@ static void mach_msg_destroy_memory(vm_offset_t, vm_size_t);
+  */
+ 
+ void
+-__mach_msg_destroy(msg)
+-    mach_msg_header_t *msg;
++__mach_msg_destroy (mach_msg_header_t *msg)
+ {
+     mach_msg_bits_t mbits = msg->msgh_bits;
+ 
+@@ -192,9 +191,7 @@ __mach_msg_destroy(msg)
+ weak_alias (__mach_msg_destroy, mach_msg_destroy)
+ 
+ static void
+-mach_msg_destroy_port(port, type)
+-    mach_port_t port;
+-    mach_msg_type_name_t type;
++mach_msg_destroy_port (mach_port_t port, mach_msg_type_name_t type)
+ {
+     if (MACH_PORT_VALID(port)) switch (type) {
+       case MACH_MSG_TYPE_MOVE_SEND:
+@@ -227,9 +224,7 @@ mach_msg_destroy_port(port, type)
+ }
+ 
+ static void
+-mach_msg_destroy_memory(addr, size)
+-    vm_offset_t addr;
+-    vm_size_t size;
++mach_msg_destroy_memory (vm_offset_t addr, vm_size_t size)
+ {
+     if (size > 0)
+ 	(void) __vm_deallocate(__mach_task_self(), addr, size);
+diff --git a/malloc/mcheck.c b/malloc/mcheck.c
+index 695de42e914e247c..680e03353e03f235 100644
+--- a/malloc/mcheck.c
++++ b/malloc/mcheck.c
+@@ -70,10 +70,7 @@ static int pedantic;
+ #else
+ static void flood (__ptr_t, int, size_t);
+ static void
+-flood (ptr, val, size)
+-     __ptr_t ptr;
+-     int val;
+-     size_t size;
++flood (__ptr_t ptr, int val, size_t size)
+ {
+   char *cp = ptr;
+   while (size--)
+diff --git a/misc/acct.c b/misc/acct.c
+index 8e4713bf132c61cf..d952b6233b72a63c 100644
+--- a/misc/acct.c
++++ b/misc/acct.c
+@@ -22,8 +22,7 @@
+    a record for each process as it terminates, to this file.  If NAME is NULL,
+    turn accounting off.  This call is restricted to the super-user.  */
+ int
+-acct (name)
+-     const char *name;
++acct (const char *name)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/brk.c b/misc/brk.c
+index bcbac643997bb1cf..316e909c7015e531 100644
+--- a/misc/brk.c
++++ b/misc/brk.c
+@@ -24,8 +24,7 @@ void *__curbrk;
+ /* Set the end of the process's data space to ADDR.
+    Return 0 if successful, -1 if not.  */
+ int
+-__brk (addr)
+-     void *addr;
++__brk (void *addr)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/chflags.c b/misc/chflags.c
+index d1a44b24c103cddf..aaa97f9380bac22d 100644
+--- a/misc/chflags.c
++++ b/misc/chflags.c
+@@ -24,9 +24,7 @@
+ int chflags (const char *file, int flags) __THROW;
+ 
+ int
+-chflags (file, flags)
+-     const char *file;
+-     int flags;
++chflags (const char *file, int flags)
+ {
+   if (file == NULL)
+     {
+diff --git a/misc/chroot.c b/misc/chroot.c
+index 1c1bbd8be7536e1b..add7a2a005a35c2d 100644
+--- a/misc/chroot.c
++++ b/misc/chroot.c
+@@ -21,8 +21,7 @@
+ /* Make PATH be the root directory (the starting point for absolute paths).
+    This call is restricted to the super-user.  */
+ int
+-chroot (path)
+-     const char *path;
++chroot (const char *path)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/fchflags.c b/misc/fchflags.c
+index 8277134199b7bf56..73a6a3a6d92bb1f6 100644
+--- a/misc/fchflags.c
++++ b/misc/fchflags.c
+@@ -24,9 +24,7 @@
+ int fchflags (int fd, int flags) __THROW;
+ 
+ int
+-fchflags (fd, flags)
+-     int fd;
+-     int flags;
++fchflags (int fd, int flags)
+ {
+   if (fd < 0)
+     {
+diff --git a/misc/fstab.c b/misc/fstab.c
+index 86680466938ecc04..9981bb4398d35e69 100644
+--- a/misc/fstab.c
++++ b/misc/fstab.c
+@@ -62,8 +62,7 @@ getfsent (void)
+ 
+ 
+ struct fstab *
+-getfsspec (name)
+-     const char *name;
++getfsspec (const char *name)
+ {
+   struct fstab_state *state;
+   struct mntent *m;
+@@ -79,8 +78,7 @@ getfsspec (name)
+ 
+ 
+ struct fstab *
+-getfsfile (name)
+-     const char *name;
++getfsfile (const char *name)
+ {
+   struct fstab_state *state;
+   struct mntent *m;
+diff --git a/misc/fsync.c b/misc/fsync.c
+index a927f72d31b0dde4..64763fbfec1b2669 100644
+--- a/misc/fsync.c
++++ b/misc/fsync.c
+@@ -20,8 +20,7 @@
+ 
+ /* Make all changes done to FD actually appear on disk.  */
+ int
+-fsync (fd)
+-     int fd;
++fsync (int fd)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/ftruncate.c b/misc/ftruncate.c
+index 79bf28794166cfab..486098cc6516b2a9 100644
+--- a/misc/ftruncate.c
++++ b/misc/ftruncate.c
+@@ -21,9 +21,7 @@
+ 
+ /* Truncate the file referenced by FD to LENGTH bytes.  */
+ int
+-__ftruncate (fd, length)
+-     int fd;
+-     off_t length;
++__ftruncate (int fd, off_t length)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/ftruncate64.c b/misc/ftruncate64.c
+index 42f4d700f015d195..bf5e71c73a9ef168 100644
+--- a/misc/ftruncate64.c
++++ b/misc/ftruncate64.c
+@@ -21,9 +21,7 @@
+ 
+ /* Truncate the file referenced by FD to LENGTH bytes.  */
+ int
+-__ftruncate64 (fd, length)
+-     int fd;
+-     off64_t length;
++__ftruncate64 (int fd, off64_t length)
+ {
+   if ((off_t) length != length)
+     {
+diff --git a/misc/getdomain.c b/misc/getdomain.c
+index 7fb8da241dfc64b1..b4c376ffab4e0b6e 100644
+--- a/misc/getdomain.c
++++ b/misc/getdomain.c
+@@ -29,9 +29,7 @@
+ /* The `uname' information includes the domain name.  */
+ 
+ int
+-getdomainname (name, len)
+-    char *name;
+-    size_t len;
++getdomainname (char *name, size_t len)
+ {
+   struct utsname u;
+   size_t u_len;
+@@ -47,9 +45,7 @@ getdomainname (name, len)
+ #else
+ 
+ int
+-getdomainname (name, len)
+-     char *name;
+-     size_t len;
++getdomainname (char *name, size_t len)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/gethostname.c b/misc/gethostname.c
+index 40d3027ec02e6838..e18f49eb97b0e2fb 100644
+--- a/misc/gethostname.c
++++ b/misc/gethostname.c
+@@ -22,9 +22,7 @@
+    The result is null-terminated if LEN is large enough for the full
+    name and the terminator.  */
+ int
+-__gethostname (name, len)
+-     char *name;
+-     size_t len;
++__gethostname (char *name, size_t len)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/getpass.c b/misc/getpass.c
+index d9a51c878a96805f..74b757e19fc4200d 100644
+--- a/misc/getpass.c
++++ b/misc/getpass.c
+@@ -43,8 +43,7 @@ call_fclose (void *arg)
+ }
+ 
+ char *
+-getpass (prompt)
+-     const char *prompt;
++getpass (const char *prompt)
+ {
+   FILE *in, *out;
+   struct termios s, t;
+diff --git a/misc/getttyent.c b/misc/getttyent.c
+index 018789a801b8b764..4344c8f8a936ce3a 100644
+--- a/misc/getttyent.c
++++ b/misc/getttyent.c
+@@ -140,8 +140,7 @@ libc_hidden_def (getttyent)
+  */
+ static char *
+ internal_function
+-skip(p)
+-	char *p;
++skip (char *p)
+ {
+ 	char *t;
+ 	int c, q;
+@@ -175,8 +174,7 @@ skip(p)
+ 
+ static char *
+ internal_function
+-value(p)
+-	char *p;
++value (char *p)
+ {
+ 
+ 	return ((p = index(p, '=')) ? ++p : NULL);
+diff --git a/misc/gtty.c b/misc/gtty.c
+index 2c6ae3f9702beaef..bc73f98331571b23 100644
+--- a/misc/gtty.c
++++ b/misc/gtty.c
+@@ -21,9 +21,7 @@
+ 
+ /* Fill in *PARAMS with terminal parameters associated with FD.  */
+ int
+-gtty (fd, params)
+-     int fd;
+-     struct sgttyb *params;
++gtty (int fd, struct sgttyb *params)
+ {
+   if (params == NULL)
+     {
+diff --git a/misc/hsearch.c b/misc/hsearch.c
+index 26d12a96939f64d6..fe8cf6580a6bb40f 100644
+--- a/misc/hsearch.c
++++ b/misc/hsearch.c
+@@ -24,9 +24,7 @@ static struct hsearch_data htab;
+ 
+ /* Define the non-reentrant function using the reentrant counterparts.  */
+ ENTRY *
+-hsearch (item, action)
+-     ENTRY item;
+-     ACTION action;
++hsearch (ENTRY item, ACTION action)
+ {
+   ENTRY *result;
+ 
+@@ -37,8 +35,7 @@ hsearch (item, action)
+ 
+ 
+ int
+-hcreate (nel)
+-     size_t nel;
++hcreate (size_t nel)
+ {
+   return hcreate_r (nel, &htab);
+ }
+diff --git a/misc/hsearch_r.c b/misc/hsearch_r.c
+index ba37afa000b3ce73..3509fb7b20fe524e 100644
+--- a/misc/hsearch_r.c
++++ b/misc/hsearch_r.c
+@@ -61,9 +61,7 @@ isprime (unsigned int number)
+    The contents of the table is zeroed, especially the field used
+    becomes zero.  */
+ int
+-hcreate_r (nel, htab)
+-     size_t nel;
+-     struct hsearch_data *htab;
++hcreate_r (size_t nel, struct hsearch_data *htab)
+ {
+   /* Test for correct arguments.  */
+   if (htab == NULL)
+@@ -117,8 +115,7 @@ libc_hidden_def (hcreate_r)
+ /* After using the hash table it has to be destroyed. The used memory can
+    be freed and the local static variable can be marked as not used.  */
+ void
+-hdestroy_r (htab)
+-     struct hsearch_data *htab;
++hdestroy_r (struct hsearch_data *htab)
+ {
+   /* Test for correct arguments.  */
+   if (htab == NULL)
+diff --git a/misc/ioctl.c b/misc/ioctl.c
+index f47d90ec4425bac6..211d3c432e5af787 100644
+--- a/misc/ioctl.c
++++ b/misc/ioctl.c
+@@ -21,9 +21,7 @@
+ /* Perform the I/O control operation specified by REQUEST on FD.
+    The actual type and use of ARG and the return value depend on REQUEST.  */
+ int
+-__ioctl (fd, request)
+-     int fd;
+-     unsigned long int request;
++__ioctl (int fd, unsigned long int request)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/mkdtemp.c b/misc/mkdtemp.c
+index b86a06f86f8ff8ae..3b50aa1c29d517ab 100644
+--- a/misc/mkdtemp.c
++++ b/misc/mkdtemp.c
+@@ -24,8 +24,7 @@
+    The directory is created, mode 700, and its name is returned.
+    (This function comes from OpenBSD.) */
+ char *
+-mkdtemp (template)
+-     char *template;
++mkdtemp (char *template)
+ {
+   if (__gen_tempname (template, 0, 0, __GT_DIR))
+     return NULL;
+diff --git a/misc/mkostemp.c b/misc/mkostemp.c
+index 2c5b272537d1c79b..94baf3968dc0f4f6 100644
+--- a/misc/mkostemp.c
++++ b/misc/mkostemp.c
+@@ -27,9 +27,7 @@
+    they are replaced with a string that makes the filename unique.
+    Then open the file and return a fd. */
+ int
+-mkostemp (template, flags)
+-     char *template;
+-     int flags;
++mkostemp (char *template, int flags)
+ {
+   return __gen_tempname (template, 0, flags, __GT_FILE);
+ }
+diff --git a/misc/mkostemp64.c b/misc/mkostemp64.c
+index 104e6d98ad195081..ade0140fd19ba910 100644
+--- a/misc/mkostemp64.c
++++ b/misc/mkostemp64.c
+@@ -27,9 +27,7 @@
+    they are replaced with a string that makes the filename unique.
+    Then open the file and return a fd. */
+ int
+-mkostemp64 (template, flags)
+-     char *template;
+-     int flags;
++mkostemp64 (char *template, int flags)
+ {
+   return __gen_tempname (template, 0, flags | O_LARGEFILE, __GT_FILE);
+ }
+diff --git a/misc/mkostemps.c b/misc/mkostemps.c
+index aca487dca86b2b4b..9106c271be8a1fd5 100644
+--- a/misc/mkostemps.c
++++ b/misc/mkostemps.c
+@@ -28,10 +28,7 @@
+    "XXXXXX"; they are replaced with a string that makes the filename
+    unique.  Then open the file and return a fd. */
+ int
+-mkostemps (template, suffixlen, flags)
+-     char *template;
+-     int suffixlen;
+-     int flags;
++mkostemps (char *template, int suffixlen, int flags)
+ {
+   if (suffixlen < 0)
+     {
+diff --git a/misc/mkostemps64.c b/misc/mkostemps64.c
+index 88d1460f34dc939d..80a0697b426976a9 100644
+--- a/misc/mkostemps64.c
++++ b/misc/mkostemps64.c
+@@ -28,10 +28,7 @@
+    "XXXXXX"; they are replaced with a string that makes the filename
+    unique.  Then open the file and return a fd. */
+ int
+-mkostemps64 (template, suffixlen, flags)
+-     char *template;
+-     int suffixlen;
+-     int flags;
++mkostemps64 (char *template, int suffixlen, int flags)
+ {
+   if (suffixlen < 0)
+     {
+diff --git a/misc/mkstemp.c b/misc/mkstemp.c
+index c10bdd9af074aed4..3bdbab05ae92ba4c 100644
+--- a/misc/mkstemp.c
++++ b/misc/mkstemp.c
+@@ -27,8 +27,7 @@
+    they are replaced with a string that makes the filename unique.
+    Then open the file and return a fd. */
+ int
+-mkstemp (template)
+-     char *template;
++mkstemp (char *template)
+ {
+   return __gen_tempname (template, 0, 0, __GT_FILE);
+ }
+diff --git a/misc/mkstemp64.c b/misc/mkstemp64.c
+index 3667c4b95f7cab92..1d9c412f6f72f37e 100644
+--- a/misc/mkstemp64.c
++++ b/misc/mkstemp64.c
+@@ -27,8 +27,7 @@
+    they are replaced with a string that makes the filename unique.
+    Then open the file and return a fd. */
+ int
+-mkstemp64 (template)
+-     char *template;
++mkstemp64 (char *template)
+ {
+   return __gen_tempname (template, 0, O_LARGEFILE, __GT_FILE);
+ }
+diff --git a/misc/mkstemps.c b/misc/mkstemps.c
+index 79418c58dfe67ba6..14f38b6b53bb2fad 100644
+--- a/misc/mkstemps.c
++++ b/misc/mkstemps.c
+@@ -28,9 +28,7 @@
+    "XXXXXX"; they are replaced with a string that makes the filename
+    unique.  Then open the file and return a fd. */
+ int
+-mkstemps (template, suffixlen)
+-     char *template;
+-     int suffixlen;
++mkstemps (char *template, int suffixlen)
+ {
+   if (suffixlen < 0)
+     {
+diff --git a/misc/mkstemps64.c b/misc/mkstemps64.c
+index 8393a516d1816e17..542cfbff96587783 100644
+--- a/misc/mkstemps64.c
++++ b/misc/mkstemps64.c
+@@ -28,9 +28,7 @@
+    "XXXXXX"; they are replaced with a string that makes the filename
+    unique.  Then open the file and return a fd. */
+ int
+-mkstemps64 (template, suffixlen)
+-     char *template;
+-     int suffixlen;
++mkstemps64 (char *template, int suffixlen)
+ {
+   if (suffixlen < 0)
+     {
+diff --git a/misc/mktemp.c b/misc/mktemp.c
+index 19824f01a11f9af9..71f5651310bd745c 100644
+--- a/misc/mktemp.c
++++ b/misc/mktemp.c
+@@ -22,8 +22,7 @@
+    The last six characters of TEMPLATE must be "XXXXXX";
+    they are replaced with a string that makes the filename unique.  */
+ char *
+-__mktemp (template)
+-     char *template;
++__mktemp (char *template)
+ {
+   if (__gen_tempname (template, 0, 0, __GT_NOCREATE) < 0)
+     /* We return the null string if we can't find a unique file name.  */
+diff --git a/misc/preadv.c b/misc/preadv.c
+index 9ef32a649471df44..6dd86e6ee1378630 100644
+--- a/misc/preadv.c
++++ b/misc/preadv.c
+@@ -26,11 +26,7 @@
+    'pread' (see <unistd.h>) except that data are put in VECTOR instead
+    of a contiguous buffer.  */
+ ssize_t
+-preadv (fd, vector, count, offset)
+-     int fd;
+-     const struct iovec *vector;
+-     int count;
+-     off_t offset;
++preadv (int fd, const struct iovec *vector, int count, off_t offset)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/preadv64.c b/misc/preadv64.c
+index dd4949038bde5e5d..93c51939df7ed846 100644
+--- a/misc/preadv64.c
++++ b/misc/preadv64.c
+@@ -26,11 +26,7 @@
+    'pread' (see <unistd.h>) except that data are put in VECTOR instead
+    of a contiguous buffer.  */
+ ssize_t
+-preadv64 (fd, vector, count, offset)
+-     int fd;
+-     const struct iovec *vector;
+-     int count;
+-     off64_t offset;
++preadv64 (int fd, const struct iovec *vector, int count, off64_t offset)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/pwritev.c b/misc/pwritev.c
+index fba8a5760d9d7c6e..4940a37f39ec6016 100644
+--- a/misc/pwritev.c
++++ b/misc/pwritev.c
+@@ -26,11 +26,7 @@
+    <unistd.h>) except that the data are taken from VECTOR instead of a
+    contiguous buffer.  */
+ ssize_t
+-pwritev (fd, vector, count, offset)
+-     int fd;
+-     const struct iovec *vector;
+-     int count;
+-     off_t offset;
++pwritev (int fd, const struct iovec *vector, int count, off_t offset)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/pwritev64.c b/misc/pwritev64.c
+index c5995111e66120c9..685a2c173356a706 100644
+--- a/misc/pwritev64.c
++++ b/misc/pwritev64.c
+@@ -26,11 +26,7 @@
+    <unistd.h>) except that the data are taken from VECTOR instead of a
+    contiguous buffer.  */
+ ssize_t
+-pwritev64 (fd, vector, count, offset)
+-     int fd;
+-     const struct iovec *vector;
+-     int count;
+-     off64_t offset;
++pwritev64 (int fd, const struct iovec *vector, int count, off64_t offset)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/readv.c b/misc/readv.c
+index 6b165d782b10fe78..5b5f300c676ef892 100644
+--- a/misc/readv.c
++++ b/misc/readv.c
+@@ -25,10 +25,7 @@
+    Operates just like `read' (see <unistd.h>) except that data are
+    put in VECTOR instead of a contiguous buffer.  */
+ ssize_t
+-__libc_readv (fd, vector, count)
+-     int fd;
+-     const struct iovec *vector;
+-     int count;
++__libc_readv (int fd, const struct iovec *vector, int count)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/revoke.c b/misc/revoke.c
+index 2e42a423d26d44b1..2d537825464d8144 100644
+--- a/misc/revoke.c
++++ b/misc/revoke.c
+@@ -20,8 +20,7 @@
+ #include <errno.h>
+ 
+ int
+-revoke (file)
+-     const char *file;
++revoke (const char *file)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/setdomain.c b/misc/setdomain.c
+index 7e6665b4fb6f3652..87198ea7e9ac3d11 100644
+--- a/misc/setdomain.c
++++ b/misc/setdomain.c
+@@ -21,9 +21,7 @@
+ /* Set the name of the current YP domain to NAME, which is LEN bytes long.
+    This call is restricted to the super-user.  */
+ int
+-setdomainname (name, len)
+-     const char *name;
+-     size_t len;
++setdomainname (const char *name, size_t len)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/setegid.c b/misc/setegid.c
+index 219c1b9b08c9d899..79b44dda049c50e3 100644
+--- a/misc/setegid.c
++++ b/misc/setegid.c
+@@ -20,8 +20,7 @@
+ 
+ /* Set the effective group ID of the calling process to GID.  */
+ int
+-setegid (gid)
+-     __gid_t gid;
++setegid (__gid_t gid)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/seteuid.c b/misc/seteuid.c
+index 648b77a429d8326d..89b6cb8485c6c82c 100644
+--- a/misc/seteuid.c
++++ b/misc/seteuid.c
+@@ -20,8 +20,7 @@
+ 
+ /* Set the effective user ID of the calling process to UID.  */
+ int
+-seteuid (uid)
+-     __uid_t uid;
++seteuid (__uid_t uid)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/sethostid.c b/misc/sethostid.c
+index 73dfb33e0264c6a1..aac015f19c9e03e6 100644
+--- a/misc/sethostid.c
++++ b/misc/sethostid.c
+@@ -21,8 +21,7 @@
+ /* Set the current machine's Internet number to ID.
+    This call is restricted to the super-user.  */
+ int
+-sethostid (id)
+-     long int id;
++sethostid (long int id)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/sethostname.c b/misc/sethostname.c
+index 96413586204dad8b..236b973e5bdfe77d 100644
+--- a/misc/sethostname.c
++++ b/misc/sethostname.c
+@@ -21,9 +21,7 @@
+ /* Set the name of the current host to NAME, which is LEN bytes long.
+    This call is restricted to the super-user.  */
+ int
+-sethostname (name, len)
+-     const char *name;
+-     size_t len;
++sethostname (const char *name, size_t len)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/setregid.c b/misc/setregid.c
+index ad7ca4b0fde7b58d..894459bc7fd3dc16 100644
+--- a/misc/setregid.c
++++ b/misc/setregid.c
+@@ -22,9 +22,7 @@
+ /* Set the real group ID of the calling process to RGID,
+    and the effective group ID of the calling process to EGID.  */
+ int
+-__setregid (effective_gid, real_gid)
+-     gid_t effective_gid;
+-     gid_t real_gid;
++__setregid (gid_t effective_gid, gid_t real_gid)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/setreuid.c b/misc/setreuid.c
+index 87fcfc6f332f7285..5cea0ac4e3cf8901 100644
+--- a/misc/setreuid.c
++++ b/misc/setreuid.c
+@@ -22,9 +22,7 @@
+ /* Set the real user ID of the calling process to RUID,
+    and the effective user ID of the calling process to EUID.  */
+ int
+-__setreuid (effective_uid, real_uid)
+-     uid_t effective_uid;
+-     uid_t real_uid;
++__setreuid (uid_t effective_uid, uid_t real_uid)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/sstk.c b/misc/sstk.c
+index 3a4580b8fa8c9f79..5695ef9d86b4b5ad 100644
+--- a/misc/sstk.c
++++ b/misc/sstk.c
+@@ -23,8 +23,7 @@
+ void *sstk (int increment) __THROW;
+ 
+ void *
+-sstk (increment)
+-     int increment;
++sstk (int increment)
+ {
+   __set_errno (ENOSYS);
+   return (void *) -1;
+diff --git a/misc/stty.c b/misc/stty.c
+index 5ce9e23768f42a1d..a6dd83140081245c 100644
+--- a/misc/stty.c
++++ b/misc/stty.c
+@@ -21,9 +21,7 @@
+ 
+ /* Set the terminal parameters associated with FD to *PARAMS.  */
+ int
+-stty (fd, params)
+-     int fd;
+-     const struct sgttyb *params;
++stty (int fd, const struct sgttyb *params)
+ {
+   if (params == NULL)
+     {
+diff --git a/misc/syscall.c b/misc/syscall.c
+index f6dae5750919925d..82bc04d3765a2c2d 100644
+--- a/misc/syscall.c
++++ b/misc/syscall.c
+@@ -23,8 +23,7 @@
+    This only makes sense in certain operating systems.  */
+ 
+ long int
+-syscall (callno)
+-     long int callno;
++syscall (long int callno)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/syslog.c b/misc/syslog.c
+index 70daa9e1f3b7b745..62744f6faf8aaf49 100644
+--- a/misc/syslog.c
++++ b/misc/syslog.c
+@@ -452,8 +452,7 @@ closelog (void)
+ 
+ /* setlogmask -- set the log mask level */
+ int
+-setlogmask(pmask)
+-	int pmask;
++setlogmask (int pmask)
+ {
+ 	int omask;
+ 
+diff --git a/misc/truncate.c b/misc/truncate.c
+index c92acd14916cafd6..8d2b3077f53b04b9 100644
+--- a/misc/truncate.c
++++ b/misc/truncate.c
+@@ -20,9 +20,7 @@
+ 
+ /* Truncate PATH to LENGTH bytes.  */
+ int
+-__truncate (path, length)
+-     const char *path;
+-     off_t length;
++__truncate (const char *path, off_t length)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/truncate64.c b/misc/truncate64.c
+index 4de202237c961a73..c9700355aa7525a6 100644
+--- a/misc/truncate64.c
++++ b/misc/truncate64.c
+@@ -21,9 +21,7 @@
+ 
+ /* Truncate PATH to LENGTH bytes.  */
+ int
+-truncate64 (path, length)
+-     const char *path;
+-     off64_t length;
++truncate64 (const char *path, off64_t length)
+ {
+   if ((off_t) length != length)
+     {
+diff --git a/misc/ualarm.c b/misc/ualarm.c
+index ca66d79a132d3ffa..3a4fa9e2dead60f6 100644
+--- a/misc/ualarm.c
++++ b/misc/ualarm.c
+@@ -24,9 +24,7 @@
+ 
+    Returns the number of microseconds remaining before the alarm.  */
+ useconds_t
+-ualarm (value, interval)
+-     useconds_t value;
+-     useconds_t interval;
++ualarm (useconds_t value, useconds_t interval)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/usleep.c b/misc/usleep.c
+index 674a025646a45520..b8448be9a2cf0556 100644
+--- a/misc/usleep.c
++++ b/misc/usleep.c
+@@ -20,8 +20,7 @@
+ 
+ /* Sleep USECONDS microseconds, or until a previously set timer goes off.  */
+ int
+-usleep (useconds)
+-     useconds_t useconds;
++usleep (useconds_t useconds)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/ustat.c b/misc/ustat.c
+index 2dd92e768c79fca1..e9a7fa126a9191a7 100644
+--- a/misc/ustat.c
++++ b/misc/ustat.c
+@@ -21,9 +21,7 @@
+ #include <sys/ustat.h>
+ 
+ int
+-ustat (dev, ust)
+-     dev_t dev;
+-     struct ustat * ust;
++ustat (dev_t dev, struct ustat *ust)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/writev.c b/misc/writev.c
+index 19bc02889e5c1a33..654d8f3154cba370 100644
+--- a/misc/writev.c
++++ b/misc/writev.c
+@@ -25,10 +25,7 @@
+    Operates just like `write' (see <unistd.h>) except that the data
+    are taken from VECTOR instead of a contiguous buffer.  */
+ ssize_t
+-__libc_writev (fd, vector, count)
+-     int fd;
+-     const struct iovec *vector;
+-     int count;
++__libc_writev (int fd, const struct iovec *vector, int count)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/nptl/cleanup_compat.c b/nptl/cleanup_compat.c
+index c811df2b5f289b2d..67ff5965dd45de61 100644
+--- a/nptl/cleanup_compat.c
++++ b/nptl/cleanup_compat.c
+@@ -38,9 +38,7 @@ strong_alias (_pthread_cleanup_push, __pthread_cleanup_push)
+ 
+ 
+ void
+-_pthread_cleanup_pop (buffer, execute)
+-     struct _pthread_cleanup_buffer *buffer;
+-     int execute;
++_pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer, int execute)
+ {
+   struct pthread *self __attribute ((unused)) = THREAD_SELF;
+ 
+diff --git a/nptl/old_pthread_cond_broadcast.c b/nptl/old_pthread_cond_broadcast.c
+index b271688f88d6aa2f..c6198f7b3ffc7da1 100644
+--- a/nptl/old_pthread_cond_broadcast.c
++++ b/nptl/old_pthread_cond_broadcast.c
+@@ -25,8 +25,7 @@
+ 
+ #if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
+ int
+-__pthread_cond_broadcast_2_0 (cond)
+-     pthread_cond_2_0_t *cond;
++__pthread_cond_broadcast_2_0 (pthread_cond_2_0_t *cond)
+ {
+   if (cond->cond == NULL)
+     {
+diff --git a/nptl/old_pthread_cond_destroy.c b/nptl/old_pthread_cond_destroy.c
+index 8f5af33331a1c6df..541834440d3705b2 100644
+--- a/nptl/old_pthread_cond_destroy.c
++++ b/nptl/old_pthread_cond_destroy.c
+@@ -23,8 +23,7 @@
+ 
+ #if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
+ int
+-__pthread_cond_destroy_2_0 (cond)
+-     pthread_cond_2_0_t *cond;
++__pthread_cond_destroy_2_0 (pthread_cond_2_0_t *cond)
+ {
+   /* Free the memory which was eventually allocated.  */
+   free (cond->cond);
+diff --git a/nptl/old_pthread_cond_signal.c b/nptl/old_pthread_cond_signal.c
+index 78e78cc387fee66d..38547973877a8ce5 100644
+--- a/nptl/old_pthread_cond_signal.c
++++ b/nptl/old_pthread_cond_signal.c
+@@ -25,8 +25,7 @@
+ 
+ #if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
+ int
+-__pthread_cond_signal_2_0 (cond)
+-     pthread_cond_2_0_t *cond;
++__pthread_cond_signal_2_0 (pthread_cond_2_0_t *cond)
+ {
+   if (cond->cond == NULL)
+     {
+diff --git a/nptl/old_pthread_cond_wait.c b/nptl/old_pthread_cond_wait.c
+index 54dcb5e2a6886f72..21bec8715fe72539 100644
+--- a/nptl/old_pthread_cond_wait.c
++++ b/nptl/old_pthread_cond_wait.c
+@@ -25,9 +25,7 @@
+ 
+ #if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
+ int
+-__pthread_cond_wait_2_0 (cond, mutex)
+-     pthread_cond_2_0_t *cond;
+-     pthread_mutex_t *mutex;
++__pthread_cond_wait_2_0 (pthread_cond_2_0_t *cond, pthread_mutex_t *mutex)
+ {
+   if (cond->cond == NULL)
+     {
+diff --git a/nptl/pt-raise.c b/nptl/pt-raise.c
+index 843ce06d3726bb9e..167f6983adc58413 100644
+--- a/nptl/pt-raise.c
++++ b/nptl/pt-raise.c
+@@ -22,8 +22,7 @@
+ 
+ 
+ int
+-raise (sig)
+-     int sig;
++raise (int sig)
+ {
+   /* This is what POSIX says must happen.  */
+   return pthread_kill (pthread_self (), sig);
+diff --git a/nptl/pthread_barrier_destroy.c b/nptl/pthread_barrier_destroy.c
+index 6808d36da261f1b1..f1c221faa99bdec1 100644
+--- a/nptl/pthread_barrier_destroy.c
++++ b/nptl/pthread_barrier_destroy.c
+@@ -22,8 +22,7 @@
+ 
+ 
+ int
+-pthread_barrier_destroy (barrier)
+-     pthread_barrier_t *barrier;
++pthread_barrier_destroy (pthread_barrier_t *barrier)
+ {
+   struct pthread_barrier *ibarrier;
+   int result = EBUSY;
+diff --git a/nptl/pthread_barrier_wait.c b/nptl/pthread_barrier_wait.c
+index 89936a08c7e9fbb5..392817ca9f4f6885 100644
+--- a/nptl/pthread_barrier_wait.c
++++ b/nptl/pthread_barrier_wait.c
+@@ -24,8 +24,7 @@
+ 
+ /* Wait on barrier.  */
+ int
+-pthread_barrier_wait (barrier)
+-     pthread_barrier_t *barrier;
++pthread_barrier_wait (pthread_barrier_t *barrier)
+ {
+   struct pthread_barrier *ibarrier = (struct pthread_barrier *) barrier;
+   int result = 0;
+diff --git a/nptl/pthread_barrierattr_destroy.c b/nptl/pthread_barrierattr_destroy.c
+index a1afb939735f0676..983512b456b7bf7a 100644
+--- a/nptl/pthread_barrierattr_destroy.c
++++ b/nptl/pthread_barrierattr_destroy.c
+@@ -20,8 +20,7 @@
+ 
+ 
+ int
+-pthread_barrierattr_destroy (attr)
+-     pthread_barrierattr_t *attr;
++pthread_barrierattr_destroy (pthread_barrierattr_t *attr)
+ {
+   /* Nothing to do.  */
+ 
+diff --git a/nptl/pthread_barrierattr_init.c b/nptl/pthread_barrierattr_init.c
+index 872e158b29613ce9..748b4ad294c86ee9 100644
+--- a/nptl/pthread_barrierattr_init.c
++++ b/nptl/pthread_barrierattr_init.c
+@@ -20,8 +20,7 @@
+ 
+ 
+ int
+-pthread_barrierattr_init (attr)
+-     pthread_barrierattr_t *attr;
++pthread_barrierattr_init (pthread_barrierattr_t *attr)
+ {
+   ((struct pthread_barrierattr *) attr)->pshared = PTHREAD_PROCESS_PRIVATE;
+ 
+diff --git a/nptl/pthread_barrierattr_setpshared.c b/nptl/pthread_barrierattr_setpshared.c
+index 042e3a89859f5f4f..3552edbc18c962a9 100644
+--- a/nptl/pthread_barrierattr_setpshared.c
++++ b/nptl/pthread_barrierattr_setpshared.c
+@@ -21,9 +21,7 @@
+ 
+ 
+ int
+-pthread_barrierattr_setpshared (attr, pshared)
+-     pthread_barrierattr_t *attr;
+-     int pshared;
++pthread_barrierattr_setpshared (pthread_barrierattr_t *attr, int pshared)
+ {
+   struct pthread_barrierattr *iattr;
+ 
+diff --git a/nptl/pthread_cond_broadcast.c b/nptl/pthread_cond_broadcast.c
+index 7bc76ac0e53f8a03..949efcd6df2b36e2 100644
+--- a/nptl/pthread_cond_broadcast.c
++++ b/nptl/pthread_cond_broadcast.c
+@@ -29,8 +29,7 @@
+ 
+ 
+ int
+-__pthread_cond_broadcast (cond)
+-     pthread_cond_t *cond;
++__pthread_cond_broadcast (pthread_cond_t *cond)
+ {
+   LIBC_PROBE (cond_broadcast, 1, cond);
+ 
+diff --git a/nptl/pthread_cond_destroy.c b/nptl/pthread_cond_destroy.c
+index 5f57b563c09c61fe..12a9524b3534b0d3 100644
+--- a/nptl/pthread_cond_destroy.c
++++ b/nptl/pthread_cond_destroy.c
+@@ -23,8 +23,7 @@
+ 
+ 
+ int
+-__pthread_cond_destroy (cond)
+-     pthread_cond_t *cond;
++__pthread_cond_destroy (pthread_cond_t *cond)
+ {
+   int pshared = (cond->__data.__mutex == (void *) ~0l)
+ 		? LLL_SHARED : LLL_PRIVATE;
+diff --git a/nptl/pthread_cond_init.c b/nptl/pthread_cond_init.c
+index 554fe6fedf1694a9..c03d14f65011ec96 100644
+--- a/nptl/pthread_cond_init.c
++++ b/nptl/pthread_cond_init.c
+@@ -22,9 +22,7 @@
+ 
+ 
+ int
+-__pthread_cond_init (cond, cond_attr)
+-     pthread_cond_t *cond;
+-     const pthread_condattr_t *cond_attr;
++__pthread_cond_init (pthread_cond_t *cond, const pthread_condattr_t *cond_attr)
+ {
+   struct pthread_condattr *icond_attr = (struct pthread_condattr *) cond_attr;
+ 
+diff --git a/nptl/pthread_cond_signal.c b/nptl/pthread_cond_signal.c
+index 063dcbc32a25d0e3..1f0cc6227cfb93be 100644
+--- a/nptl/pthread_cond_signal.c
++++ b/nptl/pthread_cond_signal.c
+@@ -29,8 +29,7 @@
+ 
+ 
+ int
+-__pthread_cond_signal (cond)
+-     pthread_cond_t *cond;
++__pthread_cond_signal (pthread_cond_t *cond)
+ {
+   int pshared = (cond->__data.__mutex == (void *) ~0l)
+ 		? LLL_SHARED : LLL_PRIVATE;
+diff --git a/nptl/pthread_condattr_destroy.c b/nptl/pthread_condattr_destroy.c
+index a64b22f442b8973a..7a5acba0935ea9e4 100644
+--- a/nptl/pthread_condattr_destroy.c
++++ b/nptl/pthread_condattr_destroy.c
+@@ -20,8 +20,7 @@
+ 
+ 
+ int
+-__pthread_condattr_destroy (attr)
+-     pthread_condattr_t *attr;
++__pthread_condattr_destroy (pthread_condattr_t *attr)
+ {
+   /* Nothing to be done.  */
+   return 0;
+diff --git a/nptl/pthread_condattr_getclock.c b/nptl/pthread_condattr_getclock.c
+index de7db3da2e2ffe10..caab2bb6636178e2 100644
+--- a/nptl/pthread_condattr_getclock.c
++++ b/nptl/pthread_condattr_getclock.c
+@@ -20,9 +20,7 @@
+ 
+ 
+ int
+-pthread_condattr_getclock (attr, clock_id)
+-     const pthread_condattr_t *attr;
+-     clockid_t *clock_id;
++pthread_condattr_getclock (const pthread_condattr_t *attr, clockid_t *clock_id)
+ {
+   *clock_id = (((((const struct pthread_condattr *) attr)->value) >> 1)
+ 	       & ((1 << COND_NWAITERS_SHIFT) - 1));
+diff --git a/nptl/pthread_condattr_getpshared.c b/nptl/pthread_condattr_getpshared.c
+index f09e702134c523dd..d8cd987d54cb988a 100644
+--- a/nptl/pthread_condattr_getpshared.c
++++ b/nptl/pthread_condattr_getpshared.c
+@@ -20,9 +20,7 @@
+ 
+ 
+ int
+-pthread_condattr_getpshared (attr, pshared)
+-     const pthread_condattr_t *attr;
+-     int *pshared;
++pthread_condattr_getpshared (const pthread_condattr_t *attr, int *pshared)
+ {
+   *pshared = ((const struct pthread_condattr *) attr)->value & 1;
+ 
+diff --git a/nptl/pthread_condattr_init.c b/nptl/pthread_condattr_init.c
+index dd26e59ae85cf334..b6b2951b3ed7feda 100644
+--- a/nptl/pthread_condattr_init.c
++++ b/nptl/pthread_condattr_init.c
+@@ -21,8 +21,7 @@
+ 
+ 
+ int
+-__pthread_condattr_init (attr)
+-     pthread_condattr_t *attr;
++__pthread_condattr_init (pthread_condattr_t *attr)
+ {
+   memset (attr, '\0', sizeof (*attr));
+ 
+diff --git a/nptl/pthread_condattr_setpshared.c b/nptl/pthread_condattr_setpshared.c
+index cbac0c6606cd9b4a..9069ccde651986d7 100644
+--- a/nptl/pthread_condattr_setpshared.c
++++ b/nptl/pthread_condattr_setpshared.c
+@@ -20,9 +20,7 @@
+ #include <pthreadP.h>
+ 
+ int
+-pthread_condattr_setpshared (attr, pshared)
+-     pthread_condattr_t *attr;
+-     int pshared;
++pthread_condattr_setpshared (pthread_condattr_t *attr, int pshared)
+ {
+   if (pshared != PTHREAD_PROCESS_PRIVATE
+       && __builtin_expect (pshared != PTHREAD_PROCESS_SHARED, 0))
+diff --git a/nptl/pthread_detach.c b/nptl/pthread_detach.c
+index d753fc2b621d032b..c2651ea6cfd2543c 100644
+--- a/nptl/pthread_detach.c
++++ b/nptl/pthread_detach.c
+@@ -22,8 +22,7 @@
+ 
+ 
+ int
+-pthread_detach (th)
+-     pthread_t th;
++pthread_detach (pthread_t th)
+ {
+   struct pthread *pd = (struct pthread *) th;
+ 
+diff --git a/nptl/pthread_equal.c b/nptl/pthread_equal.c
+index 86279e77b7fda14d..e55413c0271dbc82 100644
+--- a/nptl/pthread_equal.c
++++ b/nptl/pthread_equal.c
+@@ -20,9 +20,7 @@
+ 
+ 
+ int
+-__pthread_equal (thread1, thread2)
+-     pthread_t thread1;
+-     pthread_t thread2;
++__pthread_equal (pthread_t thread1, pthread_t thread2)
+ {
+   return thread1 == thread2;
+ }
+diff --git a/nptl/pthread_getcpuclockid.c b/nptl/pthread_getcpuclockid.c
+index 1263c6ff81a9cb0d..ba5d58587b792a0e 100644
+--- a/nptl/pthread_getcpuclockid.c
++++ b/nptl/pthread_getcpuclockid.c
+@@ -22,9 +22,7 @@
+ 
+ 
+ int
+-pthread_getcpuclockid (threadid, clockid)
+-     pthread_t threadid;
+-     clockid_t *clockid;
++pthread_getcpuclockid (pthread_t threadid, clockid_t *clockid)
+ {
+   struct pthread *pd = (struct pthread *) threadid;
+ 
+diff --git a/nptl/pthread_getspecific.c b/nptl/pthread_getspecific.c
+index 17dedda7838fb552..b20337bb20b45aff 100644
+--- a/nptl/pthread_getspecific.c
++++ b/nptl/pthread_getspecific.c
+@@ -21,8 +21,7 @@
+ 
+ 
+ void *
+-__pthread_getspecific (key)
+-     pthread_key_t key;
++__pthread_getspecific (pthread_key_t key)
+ {
+   struct pthread_key_data *data;
+ 
+diff --git a/nptl/pthread_key_delete.c b/nptl/pthread_key_delete.c
+index 5019b8ef7d2ae212..388091ec6ec5b171 100644
+--- a/nptl/pthread_key_delete.c
++++ b/nptl/pthread_key_delete.c
+@@ -22,8 +22,7 @@
+ 
+ 
+ int
+-pthread_key_delete (key)
+-     pthread_key_t key;
++pthread_key_delete (pthread_key_t key)
+ {
+   int result = EINVAL;
+ 
+diff --git a/nptl/pthread_mutex_consistent.c b/nptl/pthread_mutex_consistent.c
+index ee3aabdd8d239406..042c18f04c5ea5c0 100644
+--- a/nptl/pthread_mutex_consistent.c
++++ b/nptl/pthread_mutex_consistent.c
+@@ -21,8 +21,7 @@
+ 
+ 
+ int
+-pthread_mutex_consistent (mutex)
+-     pthread_mutex_t *mutex;
++pthread_mutex_consistent (pthread_mutex_t *mutex)
+ {
+   /* Test whether this is a robust mutex with a dead owner.  */
+   if ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0
+diff --git a/nptl/pthread_mutex_destroy.c b/nptl/pthread_mutex_destroy.c
+index b80b632cd9c84d58..3691340f936ad504 100644
+--- a/nptl/pthread_mutex_destroy.c
++++ b/nptl/pthread_mutex_destroy.c
+@@ -23,8 +23,7 @@
+ 
+ 
+ int
+-__pthread_mutex_destroy (mutex)
+-     pthread_mutex_t *mutex;
++__pthread_mutex_destroy (pthread_mutex_t *mutex)
+ {
+   LIBC_PROBE (mutex_destroy, 1, mutex);
+ 
+diff --git a/nptl/pthread_mutex_getprioceiling.c b/nptl/pthread_mutex_getprioceiling.c
+index bfadd553a224e6cb..ef1eebea5d6ad3e0 100644
+--- a/nptl/pthread_mutex_getprioceiling.c
++++ b/nptl/pthread_mutex_getprioceiling.c
+@@ -22,9 +22,7 @@
+ 
+ 
+ int
+-pthread_mutex_getprioceiling (mutex, prioceiling)
+-     const pthread_mutex_t *mutex;
+-     int *prioceiling;
++pthread_mutex_getprioceiling (const pthread_mutex_t *mutex, int *prioceiling)
+ {
+   if (__builtin_expect ((mutex->__data.__kind
+ 			 & PTHREAD_MUTEX_PRIO_PROTECT_NP) == 0, 0))
+diff --git a/nptl/pthread_mutexattr_destroy.c b/nptl/pthread_mutexattr_destroy.c
+index b354a8403f196005..ce4711bd556f4a52 100644
+--- a/nptl/pthread_mutexattr_destroy.c
++++ b/nptl/pthread_mutexattr_destroy.c
+@@ -20,8 +20,7 @@
+ 
+ 
+ int
+-__pthread_mutexattr_destroy (attr)
+-     pthread_mutexattr_t *attr;
++__pthread_mutexattr_destroy (pthread_mutexattr_t *attr)
+ {
+   return 0;
+ }
+diff --git a/nptl/pthread_mutexattr_getprotocol.c b/nptl/pthread_mutexattr_getprotocol.c
+index 8e91eed268565b37..2a2bb60d34ea9e1a 100644
+--- a/nptl/pthread_mutexattr_getprotocol.c
++++ b/nptl/pthread_mutexattr_getprotocol.c
+@@ -21,9 +21,7 @@
+ 
+ 
+ int
+-pthread_mutexattr_getprotocol (attr, protocol)
+-     const pthread_mutexattr_t *attr;
+-     int *protocol;
++pthread_mutexattr_getprotocol (const pthread_mutexattr_t *attr, int *protocol)
+ {
+   const struct pthread_mutexattr *iattr;
+ 
+diff --git a/nptl/pthread_mutexattr_getpshared.c b/nptl/pthread_mutexattr_getpshared.c
+index d28f37061082e9c7..bdf763a3c295b763 100644
+--- a/nptl/pthread_mutexattr_getpshared.c
++++ b/nptl/pthread_mutexattr_getpshared.c
+@@ -20,9 +20,7 @@
+ 
+ 
+ int
+-pthread_mutexattr_getpshared (attr, pshared)
+-     const pthread_mutexattr_t *attr;
+-     int *pshared;
++pthread_mutexattr_getpshared (const pthread_mutexattr_t *attr, int *pshared)
+ {
+   const struct pthread_mutexattr *iattr;
+ 
+diff --git a/nptl/pthread_mutexattr_getrobust.c b/nptl/pthread_mutexattr_getrobust.c
+index a52fbcd558b5b034..ff5de6528f2616f3 100644
+--- a/nptl/pthread_mutexattr_getrobust.c
++++ b/nptl/pthread_mutexattr_getrobust.c
+@@ -20,9 +20,7 @@
+ 
+ 
+ int
+-pthread_mutexattr_getrobust (attr, robustness)
+-     const pthread_mutexattr_t *attr;
+-     int *robustness;
++pthread_mutexattr_getrobust (const pthread_mutexattr_t *attr, int *robustness)
+ {
+   const struct pthread_mutexattr *iattr;
+ 
+diff --git a/nptl/pthread_mutexattr_gettype.c b/nptl/pthread_mutexattr_gettype.c
+index 3f27f669ff5f44da..923dc706a1653014 100644
+--- a/nptl/pthread_mutexattr_gettype.c
++++ b/nptl/pthread_mutexattr_gettype.c
+@@ -20,9 +20,7 @@
+ 
+ 
+ int
+-pthread_mutexattr_gettype (attr, kind)
+-     const pthread_mutexattr_t *attr;
+-     int *kind;
++pthread_mutexattr_gettype (const pthread_mutexattr_t *attr, int *kind)
+ {
+   const struct pthread_mutexattr *iattr;
+ 
+diff --git a/nptl/pthread_mutexattr_init.c b/nptl/pthread_mutexattr_init.c
+index cc251841fff1c164..314092d76a20264a 100644
+--- a/nptl/pthread_mutexattr_init.c
++++ b/nptl/pthread_mutexattr_init.c
+@@ -21,8 +21,7 @@
+ 
+ 
+ int
+-__pthread_mutexattr_init (attr)
+-     pthread_mutexattr_t *attr;
++__pthread_mutexattr_init (pthread_mutexattr_t *attr)
+ {
+   if (sizeof (struct pthread_mutexattr) != sizeof (pthread_mutexattr_t))
+     memset (attr, '\0', sizeof (*attr));
+diff --git a/nptl/pthread_mutexattr_setprioceiling.c b/nptl/pthread_mutexattr_setprioceiling.c
+index 2939d033d4a34957..19e98ae35767c3dd 100644
+--- a/nptl/pthread_mutexattr_setprioceiling.c
++++ b/nptl/pthread_mutexattr_setprioceiling.c
+@@ -22,9 +22,7 @@
+ 
+ 
+ int
+-pthread_mutexattr_setprioceiling (attr, prioceiling)
+-     pthread_mutexattr_t *attr;
+-     int prioceiling;
++pthread_mutexattr_setprioceiling (pthread_mutexattr_t *attr, int prioceiling)
+ {
+   if (__sched_fifo_min_prio == -1)
+     __init_sched_fifo_prio ();
+diff --git a/nptl/pthread_mutexattr_setprotocol.c b/nptl/pthread_mutexattr_setprotocol.c
+index aec598c1561ae280..f2885ca1252a46aa 100644
+--- a/nptl/pthread_mutexattr_setprotocol.c
++++ b/nptl/pthread_mutexattr_setprotocol.c
+@@ -22,9 +22,7 @@
+ 
+ 
+ int
+-pthread_mutexattr_setprotocol (attr, protocol)
+-     pthread_mutexattr_t *attr;
+-     int protocol;
++pthread_mutexattr_setprotocol (pthread_mutexattr_t *attr, int protocol)
+ {
+   if (protocol != PTHREAD_PRIO_NONE
+       && protocol != PTHREAD_PRIO_INHERIT
+diff --git a/nptl/pthread_mutexattr_setpshared.c b/nptl/pthread_mutexattr_setpshared.c
+index ce16b38e2b5313b6..38063a8804ab0768 100644
+--- a/nptl/pthread_mutexattr_setpshared.c
++++ b/nptl/pthread_mutexattr_setpshared.c
+@@ -21,9 +21,7 @@
+ 
+ 
+ int
+-pthread_mutexattr_setpshared (attr, pshared)
+-     pthread_mutexattr_t *attr;
+-     int pshared;
++pthread_mutexattr_setpshared (pthread_mutexattr_t *attr, int pshared)
+ {
+   struct pthread_mutexattr *iattr;
+ 
+diff --git a/nptl/pthread_mutexattr_setrobust.c b/nptl/pthread_mutexattr_setrobust.c
+index bfca2227f2f14d8a..8893e28e80a7c89d 100644
+--- a/nptl/pthread_mutexattr_setrobust.c
++++ b/nptl/pthread_mutexattr_setrobust.c
+@@ -21,9 +21,7 @@
+ 
+ 
+ int
+-pthread_mutexattr_setrobust (attr, robustness)
+-     pthread_mutexattr_t *attr;
+-     int robustness;
++pthread_mutexattr_setrobust (pthread_mutexattr_t *attr, int robustness)
+ {
+   if (robustness != PTHREAD_MUTEX_STALLED_NP
+       && __builtin_expect (robustness != PTHREAD_MUTEX_ROBUST_NP, 0))
+diff --git a/nptl/pthread_mutexattr_settype.c b/nptl/pthread_mutexattr_settype.c
+index 4a25046d1e9b1655..20521e3693856c9d 100644
+--- a/nptl/pthread_mutexattr_settype.c
++++ b/nptl/pthread_mutexattr_settype.c
+@@ -21,9 +21,7 @@
+ 
+ 
+ int
+-__pthread_mutexattr_settype (attr, kind)
+-     pthread_mutexattr_t *attr;
+-     int kind;
++__pthread_mutexattr_settype (pthread_mutexattr_t *attr, int kind)
+ {
+   struct pthread_mutexattr *iattr;
+ 
+diff --git a/nptl/pthread_rwlock_destroy.c b/nptl/pthread_rwlock_destroy.c
+index 78abe5ecef1c2f4e..e9ecbd8abd87a175 100644
+--- a/nptl/pthread_rwlock_destroy.c
++++ b/nptl/pthread_rwlock_destroy.c
+@@ -21,8 +21,7 @@
+ 
+ 
+ int
+-__pthread_rwlock_destroy (rwlock)
+-     pthread_rwlock_t *rwlock;
++__pthread_rwlock_destroy (pthread_rwlock_t *rwlock)
+ {
+   LIBC_PROBE (rwlock_destroy, 1, rwlock);
+ 
+diff --git a/nptl/pthread_rwlockattr_destroy.c b/nptl/pthread_rwlockattr_destroy.c
+index a9dd2caac8f362ec..2c3e2ef553ec142a 100644
+--- a/nptl/pthread_rwlockattr_destroy.c
++++ b/nptl/pthread_rwlockattr_destroy.c
+@@ -20,8 +20,7 @@
+ 
+ 
+ int
+-pthread_rwlockattr_destroy (attr)
+-     pthread_rwlockattr_t *attr;
++pthread_rwlockattr_destroy (pthread_rwlockattr_t *attr)
+ {
+   /* Nothing to do.  For now.  */
+ 
+diff --git a/nptl/pthread_rwlockattr_getkind_np.c b/nptl/pthread_rwlockattr_getkind_np.c
+index 94117c4ad190e1fa..b42548c0fe90adc5 100644
+--- a/nptl/pthread_rwlockattr_getkind_np.c
++++ b/nptl/pthread_rwlockattr_getkind_np.c
+@@ -20,9 +20,7 @@
+ 
+ 
+ int
+-pthread_rwlockattr_getkind_np (attr, pref)
+-     const pthread_rwlockattr_t *attr;
+-     int *pref;
++pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *attr, int *pref)
+ {
+   *pref = ((const struct pthread_rwlockattr *) attr)->lockkind;
+ 
+diff --git a/nptl/pthread_rwlockattr_getpshared.c b/nptl/pthread_rwlockattr_getpshared.c
+index 7136248e6a7ed947..79d6642a23ea0a43 100644
+--- a/nptl/pthread_rwlockattr_getpshared.c
++++ b/nptl/pthread_rwlockattr_getpshared.c
+@@ -20,9 +20,7 @@
+ 
+ 
+ int
+-pthread_rwlockattr_getpshared (attr, pshared)
+-     const pthread_rwlockattr_t *attr;
+-     int *pshared;
++pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *attr, int *pshared)
+ {
+   *pshared = ((const struct pthread_rwlockattr *) attr)->pshared;
+ 
+diff --git a/nptl/pthread_rwlockattr_init.c b/nptl/pthread_rwlockattr_init.c
+index b5f186d405a2f350..37b7ac72a959bc61 100644
+--- a/nptl/pthread_rwlockattr_init.c
++++ b/nptl/pthread_rwlockattr_init.c
+@@ -20,8 +20,7 @@
+ 
+ 
+ int
+-pthread_rwlockattr_init (attr)
+-     pthread_rwlockattr_t *attr;
++pthread_rwlockattr_init (pthread_rwlockattr_t *attr)
+ {
+   struct pthread_rwlockattr *iattr;
+ 
+diff --git a/nptl/pthread_rwlockattr_setkind_np.c b/nptl/pthread_rwlockattr_setkind_np.c
+index 111207efd0430f6d..78e126a230f9b432 100644
+--- a/nptl/pthread_rwlockattr_setkind_np.c
++++ b/nptl/pthread_rwlockattr_setkind_np.c
+@@ -21,9 +21,7 @@
+ 
+ 
+ int
+-pthread_rwlockattr_setkind_np (attr, pref)
+-     pthread_rwlockattr_t *attr;
+-     int pref;
++pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *attr, int pref)
+ {
+   struct pthread_rwlockattr *iattr;
+ 
+diff --git a/nptl/pthread_rwlockattr_setpshared.c b/nptl/pthread_rwlockattr_setpshared.c
+index 4173cf83e7327295..d306840c10ff4c49 100644
+--- a/nptl/pthread_rwlockattr_setpshared.c
++++ b/nptl/pthread_rwlockattr_setpshared.c
+@@ -21,9 +21,7 @@
+ 
+ 
+ int
+-pthread_rwlockattr_setpshared (attr, pshared)
+-     pthread_rwlockattr_t *attr;
+-     int pshared;
++pthread_rwlockattr_setpshared (pthread_rwlockattr_t *attr, int pshared)
+ {
+   struct pthread_rwlockattr *iattr;
+ 
+diff --git a/nptl/pthread_setcancelstate.c b/nptl/pthread_setcancelstate.c
+index cce59d27d730e551..05fdfffb873aace0 100644
+--- a/nptl/pthread_setcancelstate.c
++++ b/nptl/pthread_setcancelstate.c
+@@ -22,9 +22,7 @@
+ 
+ 
+ int
+-__pthread_setcancelstate (state, oldstate)
+-     int state;
+-     int *oldstate;
++__pthread_setcancelstate (int state, int *oldstate)
+ {
+   volatile struct pthread *self;
+ 
+diff --git a/nptl/pthread_setcanceltype.c b/nptl/pthread_setcanceltype.c
+index 45e5f732d8699738..569795f838c51f93 100644
+--- a/nptl/pthread_setcanceltype.c
++++ b/nptl/pthread_setcanceltype.c
+@@ -22,9 +22,7 @@
+ 
+ 
+ int
+-__pthread_setcanceltype (type, oldtype)
+-     int type;
+-     int *oldtype;
++__pthread_setcanceltype (int type, int *oldtype)
+ {
+   volatile struct pthread *self;
+ 
+diff --git a/nptl/pthread_setconcurrency.c b/nptl/pthread_setconcurrency.c
+index 790638dac8d3413e..c17d459013383292 100644
+--- a/nptl/pthread_setconcurrency.c
++++ b/nptl/pthread_setconcurrency.c
+@@ -25,8 +25,7 @@ int __concurrency_level;
+ 
+ 
+ int
+-pthread_setconcurrency (level)
+-     int level;
++pthread_setconcurrency (int level)
+ {
+   if (level < 0)
+     return EINVAL;
+diff --git a/nptl/pthread_setschedprio.c b/nptl/pthread_setschedprio.c
+index f5f8f48fab513c40..2b1fddf93dc0d001 100644
+--- a/nptl/pthread_setschedprio.c
++++ b/nptl/pthread_setschedprio.c
+@@ -25,9 +25,7 @@
+ 
+ 
+ int
+-pthread_setschedprio (threadid, prio)
+-     pthread_t threadid;
+-     int prio;
++pthread_setschedprio (pthread_t threadid, int prio)
+ {
+   struct pthread *pd = (struct pthread *) threadid;
+ 
+diff --git a/nptl/pthread_setspecific.c b/nptl/pthread_setspecific.c
+index ec0cc9d95ab76e00..584c7625a28e12ae 100644
+--- a/nptl/pthread_setspecific.c
++++ b/nptl/pthread_setspecific.c
+@@ -22,9 +22,7 @@
+ 
+ 
+ int
+-__pthread_setspecific (key, value)
+-     pthread_key_t key;
+-     const void *value;
++__pthread_setspecific (pthread_key_t key, const void *value)
+ {
+   struct pthread *self;
+   unsigned int idx1st;
+diff --git a/nptl/pthread_spin_destroy.c b/nptl/pthread_spin_destroy.c
+index 6e7450608ef57470..8a297c3af493714e 100644
+--- a/nptl/pthread_spin_destroy.c
++++ b/nptl/pthread_spin_destroy.c
+@@ -20,8 +20,7 @@
+ 
+ 
+ int
+-pthread_spin_destroy (lock)
+-     pthread_spinlock_t *lock;
++pthread_spin_destroy (pthread_spinlock_t *lock)
+ {
+   /* Nothing to do.  */
+   return 0;
+diff --git a/nptl/pthread_tryjoin.c b/nptl/pthread_tryjoin.c
+index 7b3ad2bc74c4095f..61a0950e0498063c 100644
+--- a/nptl/pthread_tryjoin.c
++++ b/nptl/pthread_tryjoin.c
+@@ -24,9 +24,7 @@
+ 
+ 
+ int
+-pthread_tryjoin_np (threadid, thread_return)
+-     pthread_t threadid;
+-     void **thread_return;
++pthread_tryjoin_np (pthread_t threadid, void **thread_return)
+ {
+   struct pthread *self;
+   struct pthread *pd = (struct pthread *) threadid;
+diff --git a/nptl/sem_close.c b/nptl/sem_close.c
+index d23065916fcd5db3..98baec97ca4db66a 100644
+--- a/nptl/sem_close.c
++++ b/nptl/sem_close.c
+@@ -40,8 +40,7 @@ walker (const void *inodep, const VISIT which, const int depth)
+ 
+ 
+ int
+-sem_close (sem)
+-     sem_t *sem;
++sem_close (sem_t *sem)
+ {
+   int result = 0;
+ 
+diff --git a/nptl/sem_destroy.c b/nptl/sem_destroy.c
+index f5fb7782d8aa9e62..80f9baa67afefe95 100644
+--- a/nptl/sem_destroy.c
++++ b/nptl/sem_destroy.c
+@@ -22,8 +22,7 @@
+ 
+ 
+ int
+-__new_sem_destroy (sem)
+-     sem_t *sem;
++__new_sem_destroy (sem_t *sem)
+ {
+   /* XXX Check for valid parameter.  */
+ 
+diff --git a/nptl/sem_init.c b/nptl/sem_init.c
+index 1863fb9c525f2438..8ef4f4174b4e3b23 100644
+--- a/nptl/sem_init.c
++++ b/nptl/sem_init.c
+@@ -70,10 +70,7 @@ versioned_symbol (libpthread, __new_sem_init, sem_init, GLIBC_2_1);
+ #if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
+ int
+ attribute_compat_text_section
+-__old_sem_init (sem, pshared, value)
+-     sem_t *sem;
+-     int pshared;
+-     unsigned int value;
++__old_sem_init (sem_t *sem, int pshared, unsigned int value)
+ {
+   /* Parameter sanity check.  */
+   if (__builtin_expect (value > SEM_VALUE_MAX, 0))
+diff --git a/nptl/sigaction.c b/nptl/sigaction.c
+index baf382ba982aa474..d8e3a8dacbacca1f 100644
+--- a/nptl/sigaction.c
++++ b/nptl/sigaction.c
+@@ -29,10 +29,7 @@
+ 
+ 
+ int
+-__sigaction (sig, act, oact)
+-     int sig;
+-     const struct sigaction *act;
+-     struct sigaction *oact;
++__sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+ {
+   if (__builtin_expect (sig == SIGCANCEL || sig == SIGSETXID, 0))
+     {
+diff --git a/nptl/sysdeps/unix/sysv/linux/unregister-atfork.c b/nptl/sysdeps/unix/sysv/linux/unregister-atfork.c
+index ed006c12238174fb..f7a85faf0e5c6626 100644
+--- a/nptl/sysdeps/unix/sysv/linux/unregister-atfork.c
++++ b/nptl/sysdeps/unix/sysv/linux/unregister-atfork.c
+@@ -23,8 +23,7 @@
+ 
+ 
+ void
+-__unregister_atfork (dso_handle)
+-     void *dso_handle;
++__unregister_atfork (void *dso_handle)
+ {
+   /* Check whether there is any entry in the list which we have to
+      remove.  It is likely that this is not the case so don't bother
+diff --git a/posix/_exit.c b/posix/_exit.c
+index ef2b7d719ed26509..d3facbbaf995f1e4 100644
+--- a/posix/_exit.c
++++ b/posix/_exit.c
+@@ -22,8 +22,7 @@
+    terminate program execution, using the low-order 8 bits of the
+    given integer as status.  */
+ void
+-_exit (status)
+-     int status;
++_exit (int status)
+ {
+   status &= 0xff;
+   abort ();
+diff --git a/posix/alarm.c b/posix/alarm.c
+index 3fda9b0c854d78da..a1077238a4ae709d 100644
+--- a/posix/alarm.c
++++ b/posix/alarm.c
+@@ -26,8 +26,7 @@
+    to 0 and check its value after calling `alarm', and this might tell you.
+    The signal may come late due to processor scheduling.  */
+ unsigned int
+-alarm (seconds)
+-     unsigned int seconds;
++alarm (unsigned int seconds)
+ {
+   __set_errno (ENOSYS);
+   return 0;
+diff --git a/posix/confstr.c b/posix/confstr.c
+index 0233ea94707ee627..5e3deabba2908026 100644
+--- a/posix/confstr.c
++++ b/posix/confstr.c
+@@ -29,10 +29,7 @@
+    of BUF with the value corresponding to NAME and zero-terminate BUF.
+    Return the number of bytes required to hold NAME's entire value.  */
+ size_t
+-confstr (name, buf, len)
+-     int name;
+-     char *buf;
+-     size_t len;
++confstr (int name, char *buf, size_t len)
+ {
+   const char *string = "";
+   size_t string_len = 1;
+diff --git a/posix/fpathconf.c b/posix/fpathconf.c
+index 01a08cab8292ebed..98f52f1e337ffd8f 100644
+--- a/posix/fpathconf.c
++++ b/posix/fpathconf.c
+@@ -22,9 +22,7 @@
+ 
+ /* Get file-specific information about descriptor FD.  */
+ long int
+-__fpathconf (fd, name)
+-     int fd;
+-     int name;
++__fpathconf (int fd, int name)
+ {
+   if (fd < 0)
+     {
+diff --git a/posix/getgroups.c b/posix/getgroups.c
+index eed9152eaab5abbf..f7e8a35e1cd90f63 100644
+--- a/posix/getgroups.c
++++ b/posix/getgroups.c
+@@ -26,9 +26,7 @@
+    the calling process is in.  Otherwise, fill in the group IDs
+    of its supplementary groups in LIST and return the number written.  */
+ int
+-__getgroups (size, list)
+-     int size;
+-     gid_t *list;
++__getgroups (int size, gid_t *list)
+ {
+ #if defined (NGROUPS_MAX) && NGROUPS_MAX == 0
+   /* The system has no supplementary groups.  */
+diff --git a/posix/getpgid.c b/posix/getpgid.c
+index fd1bc5a01aa389f7..18c66e510bfe904f 100644
+--- a/posix/getpgid.c
++++ b/posix/getpgid.c
+@@ -20,8 +20,7 @@
+ 
+ /* Get the process group ID of process PID.  */
+ pid_t
+-__getpgid (pid)
+-     pid_t pid;
++__getpgid (pid_t pid)
+ {
+   return pid;
+ }
+diff --git a/posix/group_member.c b/posix/group_member.c
+index 7809229d26800b89..1567664791b3919e 100644
+--- a/posix/group_member.c
++++ b/posix/group_member.c
+@@ -26,8 +26,7 @@
+ #endif
+ 
+ int
+-__group_member (gid)
+-     gid_t gid;
++__group_member (gid_t gid)
+ {
+   int n, size;
+   gid_t *groups;
+diff --git a/posix/pathconf.c b/posix/pathconf.c
+index 6f48b0b575e939fe..e1ca8dc50d746669 100644
+--- a/posix/pathconf.c
++++ b/posix/pathconf.c
+@@ -22,9 +22,7 @@
+ 
+ /* Get file-specific information about PATH.  */
+ long int
+-__pathconf (path, name)
+-     const char *path;
+-     int name;
++__pathconf (const char *path, int name)
+ {
+   if (path == NULL)
+     {
+diff --git a/posix/sched_getaffinity.c b/posix/sched_getaffinity.c
+index 8641b4eac7dc3a74..27d739e52167b09f 100644
+--- a/posix/sched_getaffinity.c
++++ b/posix/sched_getaffinity.c
+@@ -22,10 +22,7 @@
+ 
+ /* Retrieve the CPU affinity mask for a particular process.  */
+ int
+-sched_getaffinity (pid, cpusetsize, cpuset)
+-     pid_t pid;
+-     size_t cpusetsize;
+-     cpu_set_t *cpuset;
++sched_getaffinity (pid_t pid, size_t cpusetsize, cpu_set_t *cpuset)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/posix/sched_setaffinity.c b/posix/sched_setaffinity.c
+index 3cc9bb72cfb5e2bc..43e595e37f890081 100644
+--- a/posix/sched_setaffinity.c
++++ b/posix/sched_setaffinity.c
+@@ -22,10 +22,7 @@
+ 
+ /* Retrieve the CPU affinity mask for a particular process.  */
+ int
+-sched_setaffinity (pid, cpusetsize, cpuset)
+-     pid_t pid;
+-     size_t cpusetsize;
+-     const cpu_set_t *cpuset;
++sched_setaffinity (pid_t pid, size_t cpusetsize, const cpu_set_t *cpuset)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/posix/setgid.c b/posix/setgid.c
+index 3e384aecdd3ded4a..b16f1f3581375d0f 100644
+--- a/posix/setgid.c
++++ b/posix/setgid.c
+@@ -24,8 +24,7 @@
+    and effective group IDs, and the saved set-group-ID to GID;
+    if not, the effective group ID is set to GID.  */
+ int
+-__setgid (gid)
+-     gid_t gid;
++__setgid (gid_t gid)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/posix/setpgid.c b/posix/setpgid.c
+index 146fb745b80d1abc..921e11285035ca08 100644
+--- a/posix/setpgid.c
++++ b/posix/setpgid.c
+@@ -22,9 +22,7 @@
+    If PID is zero, the current process's process group ID is set.
+    If PGID is zero, the process ID of the process is used.  */
+ int
+-__setpgid (pid, pgid)
+-     int pid;
+-     int pgid;
++__setpgid (int pid, int pgid)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/posix/setuid.c b/posix/setuid.c
+index 5892d23579e4b066..99e98b748266c358 100644
+--- a/posix/setuid.c
++++ b/posix/setuid.c
+@@ -24,8 +24,7 @@
+    and effective user IDs, and the saved set-user-ID to UID;
+    if not, the effective user ID is set to UID.  */
+ int
+-__setuid (uid)
+-     uid_t uid;
++__setuid (uid_t uid)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/posix/sleep.c b/posix/sleep.c
+index d7ca5f9c896dbac8..dddf25be40b6f432 100644
+--- a/posix/sleep.c
++++ b/posix/sleep.c
+@@ -28,8 +28,7 @@
+    signal afterwards is undefined.  There is no return value to indicate
+    error, but if `sleep' returns SECONDS, it probably didn't work.  */
+ unsigned int
+-__sleep (seconds)
+-     unsigned int seconds;
++__sleep (unsigned int seconds)
+ {
+   __set_errno (ENOSYS);
+   return seconds;
+diff --git a/posix/sysconf.c b/posix/sysconf.c
+index 8428f79ab3474067..1ca8e430fa91989d 100644
+--- a/posix/sysconf.c
++++ b/posix/sysconf.c
+@@ -29,8 +29,7 @@
+ 
+ /* Get the value of the system variable NAME.  */
+ long int
+-__sysconf (name)
+-     int name;
++__sysconf (int name)
+ {
+   switch (name)
+     {
+diff --git a/posix/times.c b/posix/times.c
+index e6f60030064919b3..30c1835caca9939f 100644
+--- a/posix/times.c
++++ b/posix/times.c
+@@ -24,8 +24,7 @@
+    Return the elapsed real time, or (clock_t) -1 for errors.
+    All times are in CLK_TCKths of a second.  */
+ clock_t
+-__times (buffer)
+-     struct tms *buffer;
++__times (struct tms *buffer)
+ {
+   if (buffer == NULL)
+     {
+diff --git a/posix/uname.c b/posix/uname.c
+index ee00cb2e53b10b05..5d44be9eeb1be114 100644
+--- a/posix/uname.c
++++ b/posix/uname.c
+@@ -25,8 +25,7 @@
+ 
+ /* Put information about the system in NAME.  */
+ int
+-__uname (name)
+-     struct utsname *name;
++__uname (struct utsname *name)
+ {
+   int save;
+ 
+diff --git a/posix/waitid.c b/posix/waitid.c
+index fd2e083eabbdc626..06147be5344b013f 100644
+--- a/posix/waitid.c
++++ b/posix/waitid.c
+@@ -22,11 +22,7 @@
+ #include <sys/wait.h>
+ 
+ int
+-__waitid (idtype, id, infop, options)
+-     idtype_t idtype;
+-     id_t id;
+-     siginfo_t *infop;
+-     int options;
++__waitid (idtype_t idtype, id_t id, siginfo_t *infop, int options)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/pwd/getpw.c b/pwd/getpw.c
+index 72c3e96bb129b8cb..430ac71d5f6aded6 100644
+--- a/pwd/getpw.c
++++ b/pwd/getpw.c
+@@ -29,9 +29,7 @@
+ int __getpw (__uid_t uid, char *buf);
+ 
+ int
+-__getpw (uid, buf)
+-     __uid_t uid;
+-     char *buf;
++__getpw (__uid_t uid, char *buf)
+ {
+   size_t buflen;
+   char *tmpbuf;
+diff --git a/resource/getpriority.c b/resource/getpriority.c
+index 6809c5cf0113d252..dca49b3c9288c021 100644
+--- a/resource/getpriority.c
++++ b/resource/getpriority.c
+@@ -23,9 +23,7 @@
+    or user (as specified by WHO) is used.  A lower priority number means higher
+    priority.  Priorities range from PRIO_MIN to PRIO_MAX.  */
+ int
+-getpriority (which, who)
+-     enum __priority_which which;
+-     id_t who;
++getpriority (enum __priority_which which, id_t who)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/resource/getrusage.c b/resource/getrusage.c
+index 93cf4c95e22d9003..27a473d1148081a4 100644
+--- a/resource/getrusage.c
++++ b/resource/getrusage.c
+@@ -21,9 +21,7 @@
+ /* Return resource usage information on process indicated by WHO
+    and put it in *USAGE.  Returns 0 for success, -1 for failure.  */
+ int
+-__getrusage (who, usage)
+-     enum __rusage_who who;
+-     struct rusage *usage;
++__getrusage (enum __rusage_who who, struct rusage *usage)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/resource/nice.c b/resource/nice.c
+index febf7c066f49cb9c..0fc6d84c823ab313 100644
+--- a/resource/nice.c
++++ b/resource/nice.c
+@@ -21,8 +21,7 @@
+ /* Increment the scheduling priority of the calling process by INCR.
+    The superuser may use a negative INCR to decrement the priority.  */
+ int
+-nice (incr)
+-     int incr;
++nice (int incr)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/resource/setpriority.c b/resource/setpriority.c
+index 5a5b6cc4410f740b..dd474075b216d94b 100644
+--- a/resource/setpriority.c
++++ b/resource/setpriority.c
+@@ -21,10 +21,7 @@
+ /* Set the priority of all processes specified by WHICH and WHO
+    to PRIO.  Returns 0 on success, -1 on errors.  */
+ int
+-setpriority (which, who, prio)
+-     enum __priority_which which;
+-     id_t who;
+-     int prio;
++setpriority (enum __priority_which which, id_t who, int prio)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/resource/setrlimit64.c b/resource/setrlimit64.c
+index 7ad38ef1495f10b4..8b18727de3c99d93 100644
+--- a/resource/setrlimit64.c
++++ b/resource/setrlimit64.c
+@@ -23,9 +23,7 @@
+    Only the super-user can increase hard limits.
+    Return 0 if successful, -1 if not (and sets errno).  */
+ int
+-setrlimit64 (resource, rlimits)
+-     enum __rlimit_resource resource;
+-     const struct rlimit64 *rlimits;
++setrlimit64 (enum __rlimit_resource resource, const struct rlimit64 *rlimits)
+ {
+   struct rlimit rlimits32;
+ 
+diff --git a/resource/vlimit.c b/resource/vlimit.c
+index 9ab3f6a2ee0d1798..4a102e26cbfdbbb2 100644
+--- a/resource/vlimit.c
++++ b/resource/vlimit.c
+@@ -26,9 +26,7 @@
+ /* Set the soft limit for RESOURCE to be VALUE.
+    Returns 0 for success, -1 for failure.  */
+ int
+-vlimit (resource, value)
+-     enum __vlimit_resource resource;
+-     int value;
++vlimit (enum __vlimit_resource resource, int value)
+ {
+   if (resource >= LIM_CPU && resource <= LIM_MAXRSS)
+     {
+diff --git a/resource/vtimes.c b/resource/vtimes.c
+index 3d2459059d530ecd..36630996ec31e56f 100644
+--- a/resource/vtimes.c
++++ b/resource/vtimes.c
+@@ -53,9 +53,7 @@ vtimes_one (struct vtimes *vt, enum __rusage_who who)
+    *CURRENT.  If CHILD is not NULL, write statistics for all terminated child
+    processes into *CHILD.  Returns 0 for success, -1 for failure.  */
+ int
+-vtimes (current, child)
+-     struct vtimes *current;
+-     struct vtimes *child;
++vtimes (struct vtimes *current, struct vtimes *child)
+ {
+   if (vtimes_one (current, RUSAGE_SELF) < 0
+       || vtimes_one (child, RUSAGE_CHILDREN) < 0)
+diff --git a/rt/aio_error.c b/rt/aio_error.c
+index 268dbdd1fcba6653..44c61e682c31cef9 100644
+--- a/rt/aio_error.c
++++ b/rt/aio_error.c
+@@ -30,8 +30,7 @@
+ 
+ 
+ int
+-aio_error (aiocbp)
+-     const struct aiocb *aiocbp;
++aio_error (const struct aiocb *aiocbp)
+ {
+   return aiocbp->__error_code;
+ }
+diff --git a/rt/aio_return.c b/rt/aio_return.c
+index a43c195085d3afb4..3d58113f7a6e42ad 100644
+--- a/rt/aio_return.c
++++ b/rt/aio_return.c
+@@ -30,8 +30,7 @@
+ 
+ 
+ ssize_t
+-aio_return (aiocbp)
+-     struct aiocb *aiocbp;
++aio_return (struct aiocb *aiocbp)
+ {
+   return aiocbp->__return_value;
+ }
+diff --git a/rt/aio_sigqueue.c b/rt/aio_sigqueue.c
+index 28431468d058246e..520b9e5d178594f7 100644
+--- a/rt/aio_sigqueue.c
++++ b/rt/aio_sigqueue.c
+@@ -22,10 +22,7 @@
+ #include <aio_misc.h>
+ 
+ int
+-__aio_sigqueue (sig, val, caller_pid)
+-     int sig;
+-     const union sigval val;
+-     pid_t caller_pid;
++__aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/signal/kill.c b/signal/kill.c
+index da6b49fbd8b5d99b..c974565552bbfb5d 100644
+--- a/signal/kill.c
++++ b/signal/kill.c
+@@ -23,9 +23,7 @@
+    send SIG to all processes in the current process's process group.
+    If PID is < -1, send SIG to all processes in process group - PID.  */
+ int
+-__kill (pid, sig)
+-     int pid;
+-     int sig;
++__kill (int pid, int sig)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/signal/killpg.c b/signal/killpg.c
+index 36bc5baef014da23..a4f8c0d7129ba06f 100644
+--- a/signal/killpg.c
++++ b/signal/killpg.c
+@@ -23,9 +23,7 @@
+    If PGRP is zero, send SIG to all processes in
+    the current process's process group.  */
+ int
+-killpg (pgrp, sig)
+-     __pid_t pgrp;
+-     int sig;
++killpg (__pid_t pgrp, int sig)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/signal/raise.c b/signal/raise.c
+index d8d0914665da1485..f0f1ddb8bc2903af 100644
+--- a/signal/raise.c
++++ b/signal/raise.c
+@@ -20,8 +20,7 @@
+ 
+ /* Raise the signal SIG.  */
+ int
+-raise (sig)
+-     int sig;
++raise (int sig)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/signal/sigaction.c b/signal/sigaction.c
+index 743724dbce4deeed..dede189626cd6f7d 100644
+--- a/signal/sigaction.c
++++ b/signal/sigaction.c
+@@ -22,10 +22,7 @@
+ /* If ACT is not NULL, change the action for SIG to *ACT.
+    If OACT is not NULL, put the old action for SIG in *OACT.  */
+ int
+-__sigaction (sig, act, oact)
+-     int sig;
+-     const struct sigaction *act;
+-     struct sigaction *oact;
++__sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+ {
+   if (sig <= 0 || sig >= NSIG)
+     {
+diff --git a/signal/sigaddset.c b/signal/sigaddset.c
+index aaa0f56d110a2256..318d95f85395fb63 100644
+--- a/signal/sigaddset.c
++++ b/signal/sigaddset.c
+@@ -19,9 +19,7 @@
+ 
+ /* Add SIGNO to SET.  */
+ int
+-sigaddset (set, signo)
+-     sigset_t *set;
+-     int signo;
++sigaddset (sigset_t *set, int signo)
+ {
+   if (set == NULL || signo <= 0 || signo >= NSIG)
+     {
+diff --git a/signal/sigaltstack.c b/signal/sigaltstack.c
+index a540aedb447cc2db..4de58146fcb1bcd2 100644
+--- a/signal/sigaltstack.c
++++ b/signal/sigaltstack.c
+@@ -21,9 +21,7 @@
+ /* Run signals handlers on the stack specified by SS (if not NULL).
+    If OSS is not NULL, it is filled in with the old signal stack status.  */
+ int
+-sigaltstack (ss, oss)
+-     const struct sigaltstack *ss;
+-     struct sigaltstack *oss;
++sigaltstack (const struct sigaltstack *ss, struct sigaltstack *oss)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/signal/sigandset.c b/signal/sigandset.c
+index 3dcf3a7dfc847d61..1162f1fec62b4b15 100644
+--- a/signal/sigandset.c
++++ b/signal/sigandset.c
+@@ -22,10 +22,7 @@
+ 
+ /* Combine sets LEFT and RIGHT by logical AND and place result in DEST.  */
+ int
+-sigandset (dest, left, right)
+-     sigset_t *dest;
+-     const sigset_t *left;
+-     const sigset_t *right;
++sigandset (sigset_t *dest, const sigset_t *left, const sigset_t *right)
+ {
+   if (dest == NULL || left == NULL || right == NULL)
+     {
+diff --git a/signal/sigblock.c b/signal/sigblock.c
+index 7294629541041008..c985f870403ef52c 100644
+--- a/signal/sigblock.c
++++ b/signal/sigblock.c
+@@ -20,8 +20,7 @@
+ 
+ /* Block signals in MASK, returning the old mask.  */
+ int
+-__sigblock (mask)
+-     int mask;
++__sigblock (int mask)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/signal/sigdelset.c b/signal/sigdelset.c
+index 6da57c149ba9a296..ad456db891fb5c62 100644
+--- a/signal/sigdelset.c
++++ b/signal/sigdelset.c
+@@ -19,9 +19,7 @@
+ 
+ /* Add SIGNO to SET.  */
+ int
+-sigdelset (set, signo)
+-     sigset_t *set;
+-     int signo;
++sigdelset (sigset_t *set, int signo)
+ {
+   if (set == NULL || signo <= 0 || signo >= NSIG)
+     {
+diff --git a/signal/sigempty.c b/signal/sigempty.c
+index a71ff5248258041e..4418d4134f9bcfbc 100644
+--- a/signal/sigempty.c
++++ b/signal/sigempty.c
+@@ -21,8 +21,7 @@
+ 
+ /* Clear all signals from SET.  */
+ int
+-sigemptyset (set)
+-     sigset_t *set;
++sigemptyset (sigset_t *set)
+ {
+   if (set == NULL)
+     {
+diff --git a/signal/sigfillset.c b/signal/sigfillset.c
+index cba40ed5e7f4b193..dbef43004403a2cc 100644
+--- a/signal/sigfillset.c
++++ b/signal/sigfillset.c
+@@ -21,8 +21,7 @@
+ 
+ /* Set all signals in SET.  */
+ int
+-sigfillset (set)
+-     sigset_t *set;
++sigfillset (sigset_t *set)
+ {
+   if (set == NULL)
+     {
+diff --git a/signal/sighold.c b/signal/sighold.c
+index 7970beb299e7989f..b0ec219bfc8b9f6f 100644
+--- a/signal/sighold.c
++++ b/signal/sighold.c
+@@ -22,8 +22,7 @@
+ #include <signal.h>
+ 
+ int
+-sighold (sig)
+-     int sig;
++sighold (int sig)
+ {
+   sigset_t set;
+ 
+diff --git a/signal/sigignore.c b/signal/sigignore.c
+index 637dc94895fe05b7..ef38064fe0295f19 100644
+--- a/signal/sigignore.c
++++ b/signal/sigignore.c
+@@ -21,8 +21,7 @@
+ 
+ /* Set the disposition for SIG to SIG_IGN.  */
+ int
+-sigignore (sig)
+-     int sig;
++sigignore (int sig)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/signal/sigintr.c b/signal/sigintr.c
+index 44959509d072782c..edac44e9ff09cb97 100644
+--- a/signal/sigintr.c
++++ b/signal/sigintr.c
+@@ -22,9 +22,7 @@
+    (causing them to fail with EINTR); if INTERRUPT is zero, make system
+    calls be restarted after signal SIG.  */
+ int
+-siginterrupt (sig, interrupt)
+-     int sig;
+-     int interrupt;
++siginterrupt (int sig, int interrupt)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/signal/sigisempty.c b/signal/sigisempty.c
+index 587f2c736828c59c..9d31665653673d68 100644
+--- a/signal/sigisempty.c
++++ b/signal/sigisempty.c
+@@ -22,8 +22,7 @@
+ 
+ /* Test whether SET is empty.  */
+ int
+-sigisemptyset (set)
+-     const sigset_t *set;
++sigisemptyset (const sigset_t *set)
+ {
+   if (set == NULL)
+     {
+diff --git a/signal/sigismem.c b/signal/sigismem.c
+index 5627f4bb527ed50b..66b802eba660eec9 100644
+--- a/signal/sigismem.c
++++ b/signal/sigismem.c
+@@ -19,9 +19,7 @@
+ 
+ /* Return 1 if SIGNO is in SET, 0 if not.  */
+ int
+-sigismember (set, signo)
+-     const sigset_t *set;
+-     int signo;
++sigismember (const sigset_t *set, int signo)
+ {
+   if (set == NULL || signo <= 0 || signo >= NSIG)
+     {
+diff --git a/signal/signal.c b/signal/signal.c
+index bc78d6f5c0c69d83..a0f573ffd6faccae 100644
+--- a/signal/signal.c
++++ b/signal/signal.c
+@@ -22,9 +22,7 @@
+ /* Set the handler for the signal SIG to HANDLER,
+    returning the old handler, or SIG_ERR on error.  */
+ __sighandler_t
+-signal (sig, handler)
+-     int sig;
+-     __sighandler_t handler;
++signal (int sig, __sighandler_t handler)
+ {
+   __set_errno (ENOSYS);
+   return SIG_ERR;
+diff --git a/signal/sigorset.c b/signal/sigorset.c
+index 876983403bb80c2d..3d214f72cb9e2e7f 100644
+--- a/signal/sigorset.c
++++ b/signal/sigorset.c
+@@ -22,10 +22,7 @@
+ 
+ /* Combine sets LEFT and RIGHT by logical OR and place result in DEST.  */
+ int
+-sigorset (dest, left, right)
+-     sigset_t *dest;
+-     const sigset_t *left;
+-     const sigset_t *right;
++sigorset (sigset_t *dest, const sigset_t *left, const sigset_t *right)
+ {
+   if (dest == NULL || left == NULL || right == NULL)
+     {
+diff --git a/signal/sigpause.c b/signal/sigpause.c
+index 78e61fc96056c67c..feca1a30ec86e5da 100644
+--- a/signal/sigpause.c
++++ b/signal/sigpause.c
+@@ -21,9 +21,7 @@
+ #undef sigpause
+ 
+ int
+-__sigpause (sig_or_mask, is_sig)
+-     int sig_or_mask;
+-     int is_sig;
++__sigpause (int sig_or_mask, int is_sig)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/signal/sigpending.c b/signal/sigpending.c
+index 7b48bfebd7fc2851..299bcbfa42d1ad12 100644
+--- a/signal/sigpending.c
++++ b/signal/sigpending.c
+@@ -22,8 +22,7 @@
+ 
+ /* Store in SET all signals that are blocked and pending.  */
+ int
+-sigpending (set)
+-     sigset_t *set;
++sigpending (sigset_t *set)
+ {
+   if (set == NULL)
+     {
+diff --git a/signal/sigprocmask.c b/signal/sigprocmask.c
+index dbe30828a02c38cb..d72b36c299df7f8a 100644
+--- a/signal/sigprocmask.c
++++ b/signal/sigprocmask.c
+@@ -23,10 +23,7 @@
+    according to HOW, which may be SIG_BLOCK, SIG_UNBLOCK or SIG_SETMASK.
+    If OSET is not NULL, store the old set of blocked signals in *OSET.  */
+ int
+-__sigprocmask (how, set, oset)
+-     int how;
+-     const sigset_t *set;
+-     sigset_t *oset;
++__sigprocmask (int how, const sigset_t *set, sigset_t *oset)
+ {
+   switch (how)
+     {
+diff --git a/signal/sigrelse.c b/signal/sigrelse.c
+index 103ebecf01a54027..1be215f47348dba5 100644
+--- a/signal/sigrelse.c
++++ b/signal/sigrelse.c
+@@ -22,8 +22,7 @@
+ #include <signal.h>
+ 
+ int
+-sigrelse (sig)
+-     int sig;
++sigrelse (int sig)
+ {
+   sigset_t set;
+ 
+diff --git a/signal/sigreturn.c b/signal/sigreturn.c
+index 901404ca86076e65..c1bcef5dbc67488b 100644
+--- a/signal/sigreturn.c
++++ b/signal/sigreturn.c
+@@ -19,8 +19,7 @@
+ #include <errno.h>
+ 
+ int
+-__sigreturn (context)
+-     struct sigcontext *context;
++__sigreturn (struct sigcontext *context)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/signal/sigset.c b/signal/sigset.c
+index a87cbcef7ab0cb55..9e363525e36a9257 100644
+--- a/signal/sigset.c
++++ b/signal/sigset.c
+@@ -21,9 +21,7 @@
+ 
+ /* Set the disposition for SIG.  */
+ __sighandler_t
+-sigset (sig, disp)
+-     int sig;
+-     __sighandler_t disp;
++sigset (int sig, __sighandler_t disp)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/signal/sigsetmask.c b/signal/sigsetmask.c
+index 495f30e88eca897a..b44dee62279bbcd3 100644
+--- a/signal/sigsetmask.c
++++ b/signal/sigsetmask.c
+@@ -19,8 +19,7 @@
+ #include <signal.h>
+ 
+ int
+-__sigsetmask (mask)
+-     int mask;
++__sigsetmask (int mask)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/signal/sigstack.c b/signal/sigstack.c
+index 9b6f2b1d9b43249f..e48c95e9123c89b0 100644
+--- a/signal/sigstack.c
++++ b/signal/sigstack.c
+@@ -21,9 +21,7 @@
+ /* Run signals handlers on the stack specified by SS (if not NULL).
+    If OSS is not NULL, it is filled in with the old signal stack status.  */
+ int
+-sigstack (ss, oss)
+-     struct sigstack *ss;
+-     struct sigstack *oss;
++sigstack (struct sigstack *ss, struct sigstack *oss)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/signal/sigsuspend.c b/signal/sigsuspend.c
+index 35be5c6d0c801061..ff9574ee2c985390 100644
+--- a/signal/sigsuspend.c
++++ b/signal/sigsuspend.c
+@@ -22,8 +22,7 @@
+ /* Change the set of blocked signals to SET,
+    wait until a signal arrives, and restore the set of blocked signals.  */
+ int
+-__sigsuspend (set)
+-     const sigset_t *set;
++__sigsuspend (const sigset_t *set)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/signal/sysv_signal.c b/signal/sysv_signal.c
+index aaf940b857650eb7..f62b40835ff1bfd9 100644
+--- a/signal/sysv_signal.c
++++ b/signal/sysv_signal.c
+@@ -21,9 +21,7 @@
+ /* Set the handler for the signal SIG to HANDLER,
+    returning the old handler, or SIG_ERR on error.  */
+ __sighandler_t
+-__sysv_signal (sig, handler)
+-     int sig;
+-     __sighandler_t handler;
++__sysv_signal (int sig, __sighandler_t handler)
+ {
+   /* Check signal extents to protect __sigismember.  */
+   if (handler == SIG_ERR || sig < 1 || sig >= NSIG)
+diff --git a/socket/accept.c b/socket/accept.c
+index c1837956da958f50..39345703549c6ee8 100644
+--- a/socket/accept.c
++++ b/socket/accept.c
+@@ -24,10 +24,7 @@
+    peer and *ADDR_LEN to the address's actual length, and return the
+    new socket's descriptor, or -1 for errors.  */
+ int
+-accept (fd, addr, addr_len)
+-     int fd;
+-     __SOCKADDR_ARG addr;
+-     socklen_t *addr_len;
++accept (int fd, __SOCKADDR_ARG addr, socklen_t *addr_len)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/socket/accept4.c b/socket/accept4.c
+index d65482c11649b0c9..0f551224f7daa2e1 100644
+--- a/socket/accept4.c
++++ b/socket/accept4.c
+@@ -25,11 +25,7 @@
+    new socket's descriptor, or -1 for errors.  The operation can be influenced
+    by the FLAGS parameter.  */
+ int
+-__libc_accept4 (fd, addr, addr_len, flags)
+-     int fd;
+-     __SOCKADDR_ARG addr;
+-     socklen_t *addr_len;
+-     int flags;
++__libc_accept4 (int fd, __SOCKADDR_ARG addr, socklen_t *addr_len, int flags)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/socket/bind.c b/socket/bind.c
+index a1d6fc652168b7c1..93a79bb41774b349 100644
+--- a/socket/bind.c
++++ b/socket/bind.c
+@@ -20,10 +20,7 @@
+ 
+ /* Give the socket FD the local address ADDR (which is LEN bytes long).  */
+ int
+-__bind (fd, addr, len)
+-     int fd;
+-     __CONST_SOCKADDR_ARG addr;
+-     socklen_t len;
++__bind (int fd, __CONST_SOCKADDR_ARG addr, socklen_t len)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/socket/connect.c b/socket/connect.c
+index 4f421f8f3e3f74d4..7059f867e228a72e 100644
+--- a/socket/connect.c
++++ b/socket/connect.c
+@@ -23,10 +23,7 @@
+    and the only address from which to accept transmissions.
+    Return 0 on success, -1 for errors.  */
+ int
+-__connect (fd, addr, len)
+-     int fd;
+-     __CONST_SOCKADDR_ARG addr;
+-     socklen_t len;
++__connect (int fd, __CONST_SOCKADDR_ARG addr, socklen_t len)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/socket/getpeername.c b/socket/getpeername.c
+index 72e44234ffcbbebb..955f644510526d51 100644
+--- a/socket/getpeername.c
++++ b/socket/getpeername.c
+@@ -21,10 +21,7 @@
+ /* Put the address of the peer connected to socket FD into *ADDR
+    (which is *LEN bytes long), and its actual length into *LEN.  */
+ int
+-getpeername (fd, addr, len)
+-     int fd;
+-     __SOCKADDR_ARG addr;
+-     socklen_t *len;
++getpeername (int fd, __SOCKADDR_ARG addr, socklen_t *len)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/socket/getsockname.c b/socket/getsockname.c
+index 14df9bce5bcdd110..8452f7415ff76912 100644
+--- a/socket/getsockname.c
++++ b/socket/getsockname.c
+@@ -20,10 +20,7 @@
+ 
+ /* Put the local address of FD into *ADDR and its length in *LEN.  */
+ int
+-__getsockname (fd, addr, len)
+-     int fd;
+-     __SOCKADDR_ARG addr;
+-     socklen_t *len;
++__getsockname (int fd, __SOCKADDR_ARG addr, socklen_t *len)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/socket/getsockopt.c b/socket/getsockopt.c
+index f172f20df92101a3..6ca2d2a9a2ef982a 100644
+--- a/socket/getsockopt.c
++++ b/socket/getsockopt.c
+@@ -22,12 +22,7 @@
+    into OPTVAL (which is *OPTLEN bytes long), and set *OPTLEN to the value's
+    actual length.  Returns 0 on success, -1 for errors.  */
+ int
+-getsockopt (fd, level, optname, optval, optlen)
+-     int fd;
+-     int level;
+-     int optname;
+-     void *optval;
+-     socklen_t *optlen;
++getsockopt (int fd, int level, int optname, void *optval, socklen_t *optlen)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/socket/listen.c b/socket/listen.c
+index f657d8790568db92..36fd015c8145ce70 100644
+--- a/socket/listen.c
++++ b/socket/listen.c
+@@ -22,9 +22,7 @@
+    N connection requests will be queued before further requests are refused.
+    Returns 0 on success, -1 for errors.  */
+ int
+-__listen (fd, n)
+-     int fd;
+-     int n;
++__listen (int fd, int n)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/socket/recv.c b/socket/recv.c
+index 6efeb4d92aa1e8e7..f9396511d72e9d90 100644
+--- a/socket/recv.c
++++ b/socket/recv.c
+@@ -21,11 +21,7 @@
+ /* Read N bytes into BUF from socket FD.
+    Returns the number read or -1 for errors.  */
+ ssize_t
+-__recv (fd, buf, n, flags)
+-     int fd;
+-     void *buf;
+-     size_t n;
+-     int flags;
++__recv (int fd, void *buf, size_t n, int flags)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/socket/recvmsg.c b/socket/recvmsg.c
+index 0afcc0faf5240e3e..ffab5cbf86eb4fdf 100644
+--- a/socket/recvmsg.c
++++ b/socket/recvmsg.c
+@@ -21,10 +21,7 @@
+ /* Receive a message as described by MESSAGE from socket FD.
+    Returns the number of bytes read or -1 for errors.  */
+ ssize_t
+-__recvmsg (fd, message, flags)
+-     int fd;
+-     struct msghdr *message;
+-     int flags;
++__recvmsg (int fd, struct msghdr *message, int flags)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/socket/send.c b/socket/send.c
+index 1f5220db24c3f34a..c46b3f51ab971906 100644
+--- a/socket/send.c
++++ b/socket/send.c
+@@ -20,11 +20,7 @@
+ 
+ /* Send N bytes of BUF to socket FD.  Returns the number sent or -1.  */
+ ssize_t
+-__send (fd, buf, n, flags)
+-     int fd;
+-     const __ptr_t buf;
+-     size_t n;
+-     int flags;
++__send (int fd, const __ptr_t buf, size_t n, int flags)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/socket/sendmsg.c b/socket/sendmsg.c
+index 8fce470ad70251da..b6dc994ea0eaf21e 100644
+--- a/socket/sendmsg.c
++++ b/socket/sendmsg.c
+@@ -21,10 +21,7 @@
+ /* Send a message described MESSAGE on socket FD.
+    Returns the number of bytes sent, or -1 for errors.  */
+ ssize_t
+-__sendmsg (fd, message, flags)
+-     int fd;
+-     const struct msghdr *message;
+-     int flags;
++__sendmsg (int fd, const struct msghdr *message, int flags)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/socket/shutdown.c b/socket/shutdown.c
+index 5c35cc3b3d1aa7ab..049577995d38b083 100644
+--- a/socket/shutdown.c
++++ b/socket/shutdown.c
+@@ -25,9 +25,7 @@
+      2 = No more receptions or transmissions.
+    Returns 0 on success, -1 for errors.  */
+ int
+-shutdown (fd, how)
+-     int fd;
+-     int how;
++shutdown (int fd, int how)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/socket/sockatmark.c b/socket/sockatmark.c
+index 7970961ee45dc552..6f4f19f6e42bf925 100644
+--- a/socket/sockatmark.c
++++ b/socket/sockatmark.c
+@@ -20,8 +20,7 @@
+ 
+ /* Determine wheter socket is at a out-of-band mark.  */
+ int
+-sockatmark (fd)
+-     int fd;
++sockatmark (int fd)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/socket/socket.c b/socket/socket.c
+index 8cb014edb70b5ee5..af813793c03367e6 100644
+--- a/socket/socket.c
++++ b/socket/socket.c
+@@ -22,10 +22,7 @@
+    protocol PROTOCOL.  If PROTOCOL is zero, one is chosen automatically.
+    Returns a file descriptor for the new socket, or -1 for errors.  */
+ int
+-__socket (domain, type, protocol)
+-     int domain;
+-     int type;
+-     int protocol;
++__socket (int domain, int type, int protocol)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/stdio-common/ctermid.c b/stdio-common/ctermid.c
+index e78c3d083cb0103c..e212aa702a57a698 100644
+--- a/stdio-common/ctermid.c
++++ b/stdio-common/ctermid.c
+@@ -23,8 +23,7 @@
+    If S is not NULL, the name is copied into it (it should be at
+    least L_ctermid bytes long), otherwise a static buffer is used.  */
+ char *
+-ctermid (s)
+-     char *s;
++ctermid (char *s)
+ {
+   __set_errno (ENOSYS);
+   return NULL;
+diff --git a/stdio-common/cuserid.c b/stdio-common/cuserid.c
+index 68056dcfc8dcd807..e8b7f699a09abf9c 100644
+--- a/stdio-common/cuserid.c
++++ b/stdio-common/cuserid.c
+@@ -22,8 +22,7 @@
+    If S is not NULL, it points to a buffer of at least L_cuserid bytes
+    into which the name is copied; otherwise, a static buffer is used.  */
+ char *
+-cuserid (s)
+-     char *s;
++cuserid (char *s)
+ {
+   __set_errno (ENOSYS);
+   return NULL;
+diff --git a/stdio-common/printf-prs.c b/stdio-common/printf-prs.c
+index 32f08bac16c5d170..9e81dce0a338cc1c 100644
+--- a/stdio-common/printf-prs.c
++++ b/stdio-common/printf-prs.c
+@@ -56,10 +56,7 @@
+ 
+ 
+ size_t
+-parse_printf_format (fmt, n, argtypes)
+-      const char *fmt;
+-      size_t n;
+-      int *argtypes;
++parse_printf_format (const char *fmt, size_t n, int *argtypes)
+ {
+   size_t nargs;			/* Number of arguments.  */
+   size_t max_ref_arg;		/* Highest index used in a positional arg.  */
+diff --git a/stdio-common/remove.c b/stdio-common/remove.c
+index 8563b7187503c4fa..2bce30b24f6b44a5 100644
+--- a/stdio-common/remove.c
++++ b/stdio-common/remove.c
+@@ -20,8 +20,7 @@
+ #include <stdio.h>
+ 
+ int
+-remove (file)
+-     const char *file;
++remove (const char *file)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/stdio-common/rename.c b/stdio-common/rename.c
+index 2b3cbcfa14b16fe0..81f77f217e247f22 100644
+--- a/stdio-common/rename.c
++++ b/stdio-common/rename.c
+@@ -21,9 +21,7 @@
+ 
+ /* Rename the file OLD to NEW.  */
+ int
+-rename (old, new)
+-     const char *old;
+-     const char *new;
++rename (const char *old, const char *new)
+ {
+   if (old == NULL || new == NULL)
+     {
+diff --git a/stdio-common/renameat.c b/stdio-common/renameat.c
+index ab2cf428f27fdd0e..a3f161cc8c392320 100644
+--- a/stdio-common/renameat.c
++++ b/stdio-common/renameat.c
+@@ -22,11 +22,7 @@
+ 
+ /* Rename the file OLD relative to OLDFD to NEW relative to NEWFD.  */
+ int
+-renameat (oldfd, old, newfd, new)
+-     int oldfd;
+-     const char *old;
+-     int newfd;
+-     const char *new;
++renameat (int oldfd, const char *old, int newfd, const char *new)
+ {
+   if ((oldfd < 0 && oldfd != AT_FDCWD) || (newfd < 0 && newfd != AT_FDCWD))
+     {
+diff --git a/stdio-common/tempname.c b/stdio-common/tempname.c
+index 30b9fd44550f6924..d600e3708d86be6c 100644
+--- a/stdio-common/tempname.c
++++ b/stdio-common/tempname.c
+@@ -46,11 +46,7 @@ stub_warning (__path_search)
+  */
+ 
+ int
+-__gen_tempname (tmpl, suffixlen, flags, kind)
+-     char *tmpl;
+-     int suffixlen;
+-     int flags;
+-     int kind;
++__gen_tempname (char *tmpl, int suffixlen, int flags, int kind)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/stdio-common/xbug.c b/stdio-common/xbug.c
+index 64ba314cbefec6e6..06f74aff005927f3 100644
+--- a/stdio-common/xbug.c
++++ b/stdio-common/xbug.c
+@@ -14,18 +14,16 @@ void ReadFile (Buffer *buffer, FILE *input);
+ 
+ #define INIT_BUFFER_SIZE 10000
+ 
+-void InitBuffer(b)
+-     Buffer *b;
++void
++InitBuffer (Buffer *b)
+ {
+   b->room = INIT_BUFFER_SIZE;
+   b->used = 0;
+   b->buff = (char *)malloc(INIT_BUFFER_SIZE*sizeof(char));
+ }
+ 
+-void AppendToBuffer(b, str, len)
+-     Buffer *b;
+-     const char *str;
+-     int len;
++void
++AppendToBuffer (Buffer *b, const char *str, int len)
+ {
+   while (b->used + len > b->room) {
+     b->buff = (char *)realloc(b->buff, 2*b->room*(sizeof(char)));
+@@ -35,9 +33,8 @@ void AppendToBuffer(b, str, len)
+   b->used += len;
+ }
+ 
+-void ReadFile(buffer, input)
+-     Buffer *buffer;
+-     FILE *input;
++void
++ReadFile (Buffer *buffer, FILE *input)
+ {
+   char       buf[BUFSIZ + 1];
+   int        bytes;
+diff --git a/stdlib/a64l.c b/stdlib/a64l.c
+index cb9487583b3714fe..60b8ef1b7ef653ea 100644
+--- a/stdlib/a64l.c
++++ b/stdlib/a64l.c
+@@ -36,8 +36,7 @@ static const char a64l_table[TABLE_SIZE] =
+ 
+ 
+ long int
+-a64l (string)
+-     const char *string;
++a64l (const char *string)
+ {
+   const char *ptr = string;
+   unsigned long int result = 0ul;
+diff --git a/stdlib/drand48_r.c b/stdlib/drand48_r.c
+index 936adb5e06276b84..8efccbc1454899a4 100644
+--- a/stdlib/drand48_r.c
++++ b/stdlib/drand48_r.c
+@@ -21,9 +21,7 @@
+ #include <stdlib.h>
+ 
+ int
+-drand48_r (buffer, result)
+-     struct drand48_data *buffer;
+-     double *result;
++drand48_r (struct drand48_data *buffer, double *result)
+ {
+   return __erand48_r (buffer->__x, buffer, result);
+ }
+diff --git a/stdlib/getcontext.c b/stdlib/getcontext.c
+index b197438e424787ca..df4e243443983fd9 100644
+--- a/stdlib/getcontext.c
++++ b/stdlib/getcontext.c
+@@ -19,8 +19,7 @@
+ #include <ucontext.h>
+ 
+ int
+-getcontext (ucp)
+-     ucontext_t *ucp;
++getcontext (ucontext_t *ucp)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/stdlib/getenv.c b/stdlib/getenv.c
+index 8398dab7d419bed1..8bd0e359ee9051c0 100644
+--- a/stdlib/getenv.c
++++ b/stdlib/getenv.c
+@@ -30,8 +30,7 @@
+    two characters which we can access.  By doing this we can avoid using the
+    `strncmp' most of the time.  */
+ char *
+-getenv (name)
+-     const char *name;
++getenv (const char *name)
+ {
+   size_t len = strlen (name);
+   char **ep;
+diff --git a/stdlib/l64a.c b/stdlib/l64a.c
+index 8594bc9075419096..51bd39aef7e5337a 100644
+--- a/stdlib/l64a.c
++++ b/stdlib/l64a.c
+@@ -32,8 +32,7 @@ static const char conv_table[64] =
+ };
+ 
+ char *
+-l64a (n)
+-     long int n;
++l64a (long int n)
+ {
+   unsigned long int m = (unsigned long int) n;
+   static char result[7];
+diff --git a/stdlib/llabs.c b/stdlib/llabs.c
+index caa45ebe09045a96..93a1b60c646dd63e 100644
+--- a/stdlib/llabs.c
++++ b/stdlib/llabs.c
+@@ -23,8 +23,7 @@
+ 
+ /* Return the absolute value of I.  */
+ long long int
+-llabs (i)
+-     long long int i;
++llabs (long long int i)
+ {
+   return i < 0 ? -i : i;
+ }
+diff --git a/stdlib/lldiv.c b/stdlib/lldiv.c
+index c7f49d3af3b1a75c..73baeee142ffa638 100644
+--- a/stdlib/lldiv.c
++++ b/stdlib/lldiv.c
+@@ -21,9 +21,7 @@
+ 
+ /* Return the `lldiv_t' representation of NUMER over DENOM.  */
+ lldiv_t
+-lldiv (numer, denom)
+-     long long int numer;
+-     long long int denom;
++lldiv (long long int numer, long long int denom)
+ {
+   lldiv_t result;
+ 
+diff --git a/stdlib/lrand48_r.c b/stdlib/lrand48_r.c
+index aa9f205132faef34..99c05933466a0769 100644
+--- a/stdlib/lrand48_r.c
++++ b/stdlib/lrand48_r.c
+@@ -19,9 +19,7 @@
+ #include <stdlib.h>
+ 
+ int
+-lrand48_r (buffer, result)
+-     struct drand48_data *buffer;
+-     long int *result;
++lrand48_r (struct drand48_data *buffer, long int *result)
+ {
+   /* Be generous for the arguments, detect some errors.  */
+   if (buffer == NULL)
+diff --git a/stdlib/mrand48_r.c b/stdlib/mrand48_r.c
+index 725903afb4fb0a8a..c3f7865d75b9a93c 100644
+--- a/stdlib/mrand48_r.c
++++ b/stdlib/mrand48_r.c
+@@ -19,9 +19,7 @@
+ #include <stdlib.h>
+ 
+ int
+-mrand48_r (buffer, result)
+-     struct drand48_data *buffer;
+-     long int *result;
++mrand48_r (struct drand48_data *buffer, long int *result)
+ {
+   /* Be generous for the arguments, detect some errors.  */
+   if (buffer == NULL)
+diff --git a/stdlib/putenv.c b/stdlib/putenv.c
+index a9d3146261a42d0d..166b488ad306fd25 100644
+--- a/stdlib/putenv.c
++++ b/stdlib/putenv.c
+@@ -49,8 +49,7 @@ extern char *alloca ();
+ 
+ /* Put STRING, which is of the form "NAME=VALUE", in the environment.  */
+ int
+-putenv (string)
+-     char *string;
++putenv (char *string)
+ {
+   const char *const name_end = strchr (string, '=');
+ 
+diff --git a/stdlib/random.c b/stdlib/random.c
+index 537555c90098d426..618c990216b63b1b 100644
+--- a/stdlib/random.c
++++ b/stdlib/random.c
+@@ -205,8 +205,7 @@ __libc_lock_define_initialized (static, lock)
+    introduced by the L.C.R.N.G.  Note that the initialization of randtbl[]
+    for default usage relies on values produced by this routine.  */
+ void
+-__srandom (x)
+-     unsigned int x;
++__srandom (unsigned int x)
+ {
+   __libc_lock_lock (lock);
+   (void) __srandom_r (x, &unsafe_state);
+@@ -228,10 +227,7 @@ weak_alias (__srandom, srand)
+    setstate so that it doesn't matter when initstate is called.
+    Returns a pointer to the old state.  */
+ char *
+-__initstate (seed, arg_state, n)
+-     unsigned int seed;
+-     char *arg_state;
+-     size_t n;
++__initstate (unsigned int seed, char *arg_state, size_t n)
+ {
+   int32_t *ostate;
+ 
+@@ -257,8 +253,7 @@ weak_alias (__initstate, initstate)
+    same state as the current state
+    Returns a pointer to the old state information.  */
+ char *
+-__setstate (arg_state)
+-     char *arg_state;
++__setstate (char *arg_state)
+ {
+   int32_t *ostate;
+ 
+diff --git a/stdlib/random_r.c b/stdlib/random_r.c
+index a8e211ad4c17784f..5fdf56275601075d 100644
+--- a/stdlib/random_r.c
++++ b/stdlib/random_r.c
+@@ -158,9 +158,7 @@ static const struct random_poly_info random_poly_info =
+    introduced by the L.C.R.N.G.  Note that the initialization of randtbl[]
+    for default usage relies on values produced by this routine.  */
+ int
+-__srandom_r (seed, buf)
+-     unsigned int seed;
+-     struct random_data *buf;
++__srandom_r (unsigned int seed, struct random_data *buf)
+ {
+   int type;
+   int32_t *state;
+@@ -297,9 +295,7 @@ weak_alias (__initstate_r, initstate_r)
+    same state as the current state
+    Returns 0 on success, non-zero on failure.  */
+ int
+-__setstate_r (arg_state, buf)
+-     char *arg_state;
+-     struct random_data *buf;
++__setstate_r (char *arg_state, struct random_data *buf)
+ {
+   int32_t *new_state = 1 + (int32_t *) arg_state;
+   int type;
+@@ -357,9 +353,7 @@ weak_alias (__setstate_r, setstate_r)
+    pointer if the front one has wrapped.  Returns a 31-bit random number.  */
+ 
+ int
+-__random_r (buf, result)
+-     struct random_data *buf;
+-     int32_t *result;
++__random_r (struct random_data *buf, int32_t *result)
+ {
+   int32_t *state;
+ 
+diff --git a/stdlib/secure-getenv.c b/stdlib/secure-getenv.c
+index 7634faea84a0d07e..f47bf22b3180587b 100644
+--- a/stdlib/secure-getenv.c
++++ b/stdlib/secure-getenv.c
+@@ -24,8 +24,7 @@
+    what values to accept from the environment.  This special version
+    checks for SUID or SGID first before doing any work.  */
+ char *
+-__libc_secure_getenv (name)
+-     const char *name;
++__libc_secure_getenv (const char *name)
+ {
+   return __libc_enable_secure ? NULL : getenv (name);
+ }
+diff --git a/stdlib/setcontext.c b/stdlib/setcontext.c
+index 470f238c148902a9..5f148c7c942919c2 100644
+--- a/stdlib/setcontext.c
++++ b/stdlib/setcontext.c
+@@ -19,8 +19,7 @@
+ #include <ucontext.h>
+ 
+ int
+-setcontext (ucp)
+-     const ucontext_t *ucp;
++setcontext (const ucontext_t *ucp)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/stdlib/setenv.c b/stdlib/setenv.c
+index 56b9bc67d93cbcc0..1a4d3c203e90ff83 100644
+--- a/stdlib/setenv.c
++++ b/stdlib/setenv.c
+@@ -293,10 +293,7 @@ __add_to_environ (name, value, combined, replace)
+ }
+ 
+ int
+-setenv (name, value, replace)
+-     const char *name;
+-     const char *value;
+-     int replace;
++setenv (const char *name, const char *value, int replace)
+ {
+   if (name == NULL || *name == '\0' || strchr (name, '=') != NULL)
+     {
+@@ -308,8 +305,7 @@ setenv (name, value, replace)
+ }
+ 
+ int
+-unsetenv (name)
+-     const char *name;
++unsetenv (const char *name)
+ {
+   size_t len;
+   char **ep;
+diff --git a/stdlib/srand48.c b/stdlib/srand48.c
+index ab670ab39244df91..548ebcfb3fce4dda 100644
+--- a/stdlib/srand48.c
++++ b/stdlib/srand48.c
+@@ -20,8 +20,7 @@
+ 
+ 
+ void
+-srand48 (seedval)
+-     long seedval;
++srand48 (long seedval)
+ {
+   (void) __srand48_r (seedval, &__libc_drand48_data);
+ }
+diff --git a/stdlib/srand48_r.c b/stdlib/srand48_r.c
+index a164cee6c254f063..e121ba8a2cafac89 100644
+--- a/stdlib/srand48_r.c
++++ b/stdlib/srand48_r.c
+@@ -20,9 +20,7 @@
+ #include <limits.h>
+ 
+ int
+-__srand48_r (seedval, buffer)
+-     long int seedval;
+-     struct drand48_data *buffer;
++__srand48_r (long int seedval, struct drand48_data *buffer)
+ {
+   /* The standards say we only have 32 bits.  */
+   if (sizeof (long int) > 4)
+diff --git a/stdlib/swapcontext.c b/stdlib/swapcontext.c
+index ee3acb478c160ebb..e7c1f25c10b8a243 100644
+--- a/stdlib/swapcontext.c
++++ b/stdlib/swapcontext.c
+@@ -19,9 +19,7 @@
+ #include <ucontext.h>
+ 
+ int
+-swapcontext (oucp, ucp)
+-     ucontext_t *oucp;
+-     const ucontext_t *ucp;
++swapcontext (ucontext_t *oucp, const ucontext_t *ucp)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/stdlib/system.c b/stdlib/system.c
+index 9bc7e82c6f203b51..9a65b4411df37d1e 100644
+--- a/stdlib/system.c
++++ b/stdlib/system.c
+@@ -21,8 +21,7 @@
+ 
+ /* Execute LINE as a shell command.  */
+ int
+-__libc_system (line)
+-     const char *line;
++__libc_system (const char *line)
+ {
+   if (line == NULL)
+     return 0;			/* This indicates no command processor.  */
+diff --git a/stdlib/tst-strtod.c b/stdlib/tst-strtod.c
+index 1cfb1da8963d7155..6292c34764e7ed81 100644
+--- a/stdlib/tst-strtod.c
++++ b/stdlib/tst-strtod.c
+@@ -182,9 +182,7 @@ main (int argc, char ** argv)
+ }
+ 
+ static void
+-expand (dst, c)
+-     char *dst;
+-     int c;
++expand (char *dst, int c)
+ {
+   if (isprint (c))
+     {
+diff --git a/stdlib/tst-strtol.c b/stdlib/tst-strtol.c
+index 448102a2d9652ee3..5b80622e07bc71dc 100644
+--- a/stdlib/tst-strtol.c
++++ b/stdlib/tst-strtol.c
+@@ -611,9 +611,7 @@ do_test (void)
+ }
+ 
+ static void
+-expand (dst, c)
+-     char *dst;
+-     int c;
++expand (char *dst, int c)
+ {
+   if (isprint (c))
+     {
+diff --git a/stdlib/tst-strtoll.c b/stdlib/tst-strtoll.c
+index 93f1a56a56956bdb..de39ee3a5e12d287 100644
+--- a/stdlib/tst-strtoll.c
++++ b/stdlib/tst-strtoll.c
+@@ -386,9 +386,7 @@ do_test (void)
+ }
+ 
+ static void
+-expand (dst, c)
+-     char *dst;
+-     int c;
++expand (char *dst, int c)
+ {
+   if (isprint (c))
+     {
+diff --git a/streams/fattach.c b/streams/fattach.c
+index 9c84127c18751f34..e54b9be2d71ca8e4 100644
+--- a/streams/fattach.c
++++ b/streams/fattach.c
+@@ -19,9 +19,7 @@
+ #include <stropts.h>
+ 
+ int
+-fattach (fildes, path)
+-     int fildes;
+-     const char *path;
++fattach (int fildes, const char *path)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/streams/fdetach.c b/streams/fdetach.c
+index 04637367340ed2c8..ba88d46e39f5ebd8 100644
+--- a/streams/fdetach.c
++++ b/streams/fdetach.c
+@@ -19,8 +19,7 @@
+ #include <stropts.h>
+ 
+ int
+-fdetach (path)
+-     const char *path;
++fdetach (const char *path)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/streams/getmsg.c b/streams/getmsg.c
+index 2da0ab6eb3355722..e587ada24e73f14a 100644
+--- a/streams/getmsg.c
++++ b/streams/getmsg.c
+@@ -19,11 +19,7 @@
+ #include <stropts.h>
+ 
+ int
+-getmsg (fildes, ctlptr, dataptr, flagsp)
+-     int fildes;
+-     struct strbuf *ctlptr;
+-     struct strbuf *dataptr;
+-     int *flagsp;
++getmsg (int fildes, struct strbuf *ctlptr, struct strbuf *dataptr, int *flagsp)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/streams/isastream.c b/streams/isastream.c
+index 9b9209b855b44ad9..80a9872bfe6116e8 100644
+--- a/streams/isastream.c
++++ b/streams/isastream.c
+@@ -20,8 +20,7 @@
+ #include <stropts.h>
+ 
+ int
+-isastream (fildes)
+-     int fildes;
++isastream (int fildes)
+ {
+   /* In general we do not have a STREAMS implementation and therefore
+      return 0.  But for invalid file descriptors we have to return an
+diff --git a/string/ffs.c b/string/ffs.c
+index 0d2bfb3959e7d88c..f002094a7c2550b1 100644
+--- a/string/ffs.c
++++ b/string/ffs.c
+@@ -24,8 +24,7 @@
+ 
+ /* Find the first bit set in I.  */
+ int
+-__ffs (i)
+-     int i;
++__ffs (int i)
+ {
+   static const unsigned char table[] =
+     {
+diff --git a/string/ffsll.c b/string/ffsll.c
+index 664306c6a1106da9..2005d89cef68866b 100644
+--- a/string/ffsll.c
++++ b/string/ffsll.c
+@@ -24,8 +24,7 @@
+ 
+ /* Find the first bit set in I.  */
+ int
+-ffsll (i)
+-     long long int i;
++ffsll (long long int i)
+ {
+   unsigned long long int x = i & -i;
+ 
+diff --git a/string/memcmp.c b/string/memcmp.c
+index 4a3ef588d36df1a4..2600c9d8038043a6 100644
+--- a/string/memcmp.c
++++ b/string/memcmp.c
+@@ -122,10 +122,7 @@ static int memcmp_common_alignment (long, long, size_t) __THROW;
+    objects (not LEN bytes!).  Both SRCP1 and SRCP2 should be aligned for
+    memory operations on `op_t's.  */
+ static int
+-memcmp_common_alignment (srcp1, srcp2, len)
+-     long int srcp1;
+-     long int srcp2;
+-     size_t len;
++memcmp_common_alignment (long int srcp1, long int srcp2, size_t len)
+ {
+   op_t a0, a1;
+   op_t b0, b1;
+@@ -209,10 +206,7 @@ static int memcmp_not_common_alignment (long, long, size_t) __THROW;
+    `op_t' objects (not LEN bytes!).  SRCP2 should be aligned for memory
+    operations on `op_t', but SRCP1 *should be unaligned*.  */
+ static int
+-memcmp_not_common_alignment (srcp1, srcp2, len)
+-     long int srcp1;
+-     long int srcp2;
+-     size_t len;
++memcmp_not_common_alignment (long int srcp1, long int srcp2, size_t len)
+ {
+   op_t a0, a1, a2, a3;
+   op_t b0, b1, b2, b3;
+@@ -312,10 +306,7 @@ memcmp_not_common_alignment (srcp1, srcp2, len)
+ }
+ 
+ int
+-MEMCMP (s1, s2, len)
+-     const __ptr_t s1;
+-     const __ptr_t s2;
+-     size_t len;
++MEMCMP (const __ptr_t s1, const __ptr_t s2, size_t len)
+ {
+   op_t a0;
+   op_t b0;
+diff --git a/string/memcpy.c b/string/memcpy.c
+index fa1ec24eaca527c4..33852df8fc3ebb51 100644
+--- a/string/memcpy.c
++++ b/string/memcpy.c
+@@ -24,10 +24,7 @@
+ #undef memcpy
+ 
+ void *
+-memcpy (dstpp, srcpp, len)
+-     void *dstpp;
+-     const void *srcpp;
+-     size_t len;
++memcpy (void *dstpp, const void *srcpp, size_t len)
+ {
+   unsigned long int dstp = (long int) dstpp;
+   unsigned long int srcp = (long int) srcpp;
+diff --git a/string/memmove.c b/string/memmove.c
+index 51bff31c0530ba91..0cc4dd57b272a2d8 100644
+--- a/string/memmove.c
++++ b/string/memmove.c
+@@ -41,10 +41,7 @@
+ 
+ rettype
+ inhibit_loop_to_libcall
+-MEMMOVE (a1, a2, len)
+-     a1const void *a1;
+-     a2const void *a2;
+-     size_t len;
++MEMMOVE (a1const void *a1, a2const void *a2, size_t len)
+ {
+   unsigned long int dstp = (long int) dest;
+   unsigned long int srcp = (long int) src;
+diff --git a/string/memset.c b/string/memset.c
+index eb83c1b5a81badde..2acc230f79293a3a 100644
+--- a/string/memset.c
++++ b/string/memset.c
+@@ -22,10 +22,7 @@
+ 
+ void *
+ inhibit_loop_to_libcall
+-memset (dstpp, c, len)
+-     void *dstpp;
+-     int c;
+-     size_t len;
++memset (void *dstpp, int c, size_t len)
+ {
+   long int dstp = (long int) dstpp;
+ 
+diff --git a/string/rawmemchr.c b/string/rawmemchr.c
+index 0e4f192ad1a322dd..add5dfb68a38cc9a 100644
+--- a/string/rawmemchr.c
++++ b/string/rawmemchr.c
+@@ -53,9 +53,7 @@
+ 
+ /* Find the first occurrence of C in S.  */
+ __ptr_t
+-RAWMEMCHR (s, c_in)
+-     const __ptr_t s;
+-     int c_in;
++RAWMEMCHR (const __ptr_t s, int c_in)
+ {
+   const unsigned char *char_ptr;
+   const unsigned long int *longword_ptr;
+diff --git a/string/strchrnul.c b/string/strchrnul.c
+index 39540a3719fb0b91..00446c2469f18c77 100644
+--- a/string/strchrnul.c
++++ b/string/strchrnul.c
+@@ -33,9 +33,7 @@
+ 
+ /* Find the first occurrence of C in S or the final NUL byte.  */
+ char *
+-STRCHRNUL (s, c_in)
+-     const char *s;
+-     int c_in;
++STRCHRNUL (const char *s, int c_in)
+ {
+   const unsigned char *char_ptr;
+   const unsigned long int *longword_ptr;
+diff --git a/string/strerror.c b/string/strerror.c
+index 9d5b7ae280288c9e..6cee0b588c0908c3 100644
+--- a/string/strerror.c
++++ b/string/strerror.c
+@@ -26,8 +26,7 @@
+ libc_freeres_ptr (static char *buf);
+ 
+ char *
+-strerror (errnum)
+-     int errnum;
++strerror (int errnum)
+ {
+   char *ret = __strerror_r (errnum, NULL, 0);
+   int saved_errno;
+diff --git a/string/strndup.c b/string/strndup.c
+index f4caef41952b9e17..8bc93491ac359244 100644
+--- a/string/strndup.c
++++ b/string/strndup.c
+@@ -37,9 +37,7 @@ char *malloc ();
+ #endif
+ 
+ char *
+-__strndup (s, n)
+-     const char *s;
+-     size_t n;
++__strndup (const char *s, size_t n)
+ {
+   size_t len = __strnlen (s, n);
+   char *new = (char *) malloc (len + 1);
+diff --git a/string/strverscmp.c b/string/strverscmp.c
+index d41664296e2f8b88..3d6f730b234bff9f 100644
+--- a/string/strverscmp.c
++++ b/string/strverscmp.c
+@@ -39,9 +39,7 @@
+ */
+ 
+ int
+-__strverscmp (s1, s2)
+-     const char *s1;
+-     const char *s2;
++__strverscmp (const char *s1, const char *s2)
+ {
+   const unsigned char *p1 = (const unsigned char *) s1;
+   const unsigned char *p2 = (const unsigned char *) s2;
+diff --git a/sunrpc/clnt_raw.c b/sunrpc/clnt_raw.c
+index 4004c6b6a8e7665a..6653ee42fbc9edbe 100644
+--- a/sunrpc/clnt_raw.c
++++ b/sunrpc/clnt_raw.c
+@@ -223,10 +223,7 @@ clntraw_geterr (CLIENT *cl, struct rpc_err *err)
+ 
+ 
+ static bool_t
+-clntraw_freeres (cl, xdr_res, res_ptr)
+-     CLIENT *cl;
+-     xdrproc_t xdr_res;
+-     caddr_t res_ptr;
++clntraw_freeres (CLIENT *cl, xdrproc_t xdr_res, caddr_t res_ptr)
+ {
+   struct clntraw_private_s *clp = clntraw_private;
+   XDR *xdrs = &clp->xdr_stream;
+diff --git a/sunrpc/clnt_tcp.c b/sunrpc/clnt_tcp.c
+index b46905fb06eb2a49..901820397dd56cd6 100644
+--- a/sunrpc/clnt_tcp.c
++++ b/sunrpc/clnt_tcp.c
+@@ -332,9 +332,7 @@ call_again:
+ }
+ 
+ static void
+-clnttcp_geterr (h, errp)
+-     CLIENT *h;
+-     struct rpc_err *errp;
++clnttcp_geterr (CLIENT *h, struct rpc_err *errp)
+ {
+   struct ct_data *ct =
+   (struct ct_data *) h->cl_private;
+@@ -343,10 +341,7 @@ clnttcp_geterr (h, errp)
+ }
+ 
+ static bool_t
+-clnttcp_freeres (cl, xdr_res, res_ptr)
+-     CLIENT *cl;
+-     xdrproc_t xdr_res;
+-     caddr_t res_ptr;
++clnttcp_freeres (CLIENT *cl, xdrproc_t xdr_res, caddr_t res_ptr)
+ {
+   struct ct_data *ct = (struct ct_data *) cl->cl_private;
+   XDR *xdrs = &(ct->ct_xdrs);
+diff --git a/sunrpc/clnt_unix.c b/sunrpc/clnt_unix.c
+index 2ad81972561aa6b0..084669dea6819e7c 100644
+--- a/sunrpc/clnt_unix.c
++++ b/sunrpc/clnt_unix.c
+@@ -317,10 +317,7 @@ clntunix_geterr (CLIENT *h, struct rpc_err *errp)
+ }
+ 
+ static bool_t
+-clntunix_freeres (cl, xdr_res, res_ptr)
+-     CLIENT *cl;
+-     xdrproc_t xdr_res;
+-     caddr_t res_ptr;
++clntunix_freeres (CLIENT *cl, xdrproc_t xdr_res, caddr_t res_ptr)
+ {
+   struct ct_data *ct = (struct ct_data *) cl->cl_private;
+   XDR *xdrs = &(ct->ct_xdrs);
+diff --git a/sunrpc/pmap_prot.c b/sunrpc/pmap_prot.c
+index 8df41dc5f2690554..0919d0917ddb454c 100644
+--- a/sunrpc/pmap_prot.c
++++ b/sunrpc/pmap_prot.c
+@@ -38,9 +38,7 @@
+ 
+ 
+ bool_t
+-xdr_pmap (xdrs, regs)
+-     XDR *xdrs;
+-     struct pmap *regs;
++xdr_pmap (XDR *xdrs, struct pmap *regs)
+ {
+ 
+   if (xdr_u_long (xdrs, &regs->pm_prog) &&
+diff --git a/sunrpc/pmap_prot2.c b/sunrpc/pmap_prot2.c
+index 57b08001780118f8..01f158d6b80c4044 100644
+--- a/sunrpc/pmap_prot2.c
++++ b/sunrpc/pmap_prot2.c
+@@ -76,9 +76,7 @@
+  * this sounds like a job for xdr_reference!
+  */
+ bool_t
+-xdr_pmaplist (xdrs, rp)
+-     XDR *xdrs;
+-     struct pmaplist **rp;
++xdr_pmaplist (XDR *xdrs, struct pmaplist **rp)
+ {
+   /*
+    * more_elements is pre-computed in case the direction is
+diff --git a/sunrpc/pmap_rmt.c b/sunrpc/pmap_rmt.c
+index fd8de85589e32c8e..c0adc5b49ac4c54f 100644
+--- a/sunrpc/pmap_rmt.c
++++ b/sunrpc/pmap_rmt.c
+@@ -144,9 +144,7 @@ libc_hidden_nolink_sunrpc (xdr_rmtcall_args, GLIBC_2_0)
+  * written for XDR_DECODE direction only
+  */
+ bool_t
+-xdr_rmtcallres (xdrs, crp)
+-     XDR *xdrs;
+-     struct rmtcallres *crp;
++xdr_rmtcallres (XDR *xdrs, struct rmtcallres *crp)
+ {
+   caddr_t port_ptr;
+ 
+diff --git a/sunrpc/rpc_prot.c b/sunrpc/rpc_prot.c
+index dc24f3673ba5b9fc..f47c6befe423b8b8 100644
+--- a/sunrpc/rpc_prot.c
++++ b/sunrpc/rpc_prot.c
+@@ -130,9 +130,7 @@ static const struct xdr_discrim reply_dscrm[3] =
+  * XDR a reply message
+  */
+ bool_t
+-xdr_replymsg (xdrs, rmsg)
+-     XDR *xdrs;
+-     struct rpc_msg *rmsg;
++xdr_replymsg (XDR *xdrs, struct rpc_msg *rmsg)
+ {
+   if (xdr_u_long (xdrs, &(rmsg->rm_xid)) &&
+       xdr_enum (xdrs, (enum_t *) & (rmsg->rm_direction)) &&
+@@ -151,9 +149,7 @@ libc_hidden_nolink_sunrpc (xdr_replymsg, GLIBC_2_0)
+  * The rm_xid is not really static, but the user can easily munge on the fly.
+  */
+ bool_t
+-xdr_callhdr (xdrs, cmsg)
+-     XDR *xdrs;
+-     struct rpc_msg *cmsg;
++xdr_callhdr (XDR *xdrs, struct rpc_msg *cmsg)
+ {
+ 
+   cmsg->rm_direction = CALL;
+diff --git a/sunrpc/rpcinfo.c b/sunrpc/rpcinfo.c
+index e490a7ee12bae739..2b55eb4a9c99f090 100644
+--- a/sunrpc/rpcinfo.c
++++ b/sunrpc/rpcinfo.c
+@@ -201,10 +201,7 @@ main (int argc, char **argv)
+ }
+ 
+ static void
+-udpping (portnum, argc, argv)
+-     u_short portnum;
+-     int argc;
+-     char **argv;
++udpping (u_short portnum, int argc, char **argv)
+ {
+   struct timeval to;
+   struct sockaddr_in addr;
+@@ -356,10 +353,7 @@ udpping (portnum, argc, argv)
+ }
+ 
+ static void
+-tcpping (portnum, argc, argv)
+-     u_short portnum;
+-     int argc;
+-     char **argv;
++tcpping (u_short portnum, int argc, char **argv)
+ {
+   struct timeval to;
+   struct sockaddr_in addr;
+@@ -505,10 +499,7 @@ tcpping (portnum, argc, argv)
+  * a good error message.
+  */
+ static int
+-pstatus (client, prognum, vers)
+-     register CLIENT *client;
+-     u_long prognum;
+-     u_long vers;
++pstatus (register CLIENT *client, u_long prognum, u_long vers)
+ {
+   struct rpc_err rpcerr;
+ 
+@@ -527,9 +518,7 @@ pstatus (client, prognum, vers)
+ }
+ 
+ static void
+-pmapdump (argc, argv)
+-     int argc;
+-     char **argv;
++pmapdump (int argc, char **argv)
+ {
+   struct sockaddr_in server_addr;
+   register struct hostent *hp;
+@@ -624,9 +613,7 @@ reply_proc (res, who)
+ }
+ 
+ static void
+-brdcst (argc, argv)
+-     int argc;
+-     char **argv;
++brdcst (int argc, char **argv)
+ {
+   enum clnt_stat rpc_stat;
+   u_long prognum, vers;
+@@ -651,9 +638,7 @@ brdcst (argc, argv)
+ }
+ 
+ static void
+-deletereg (argc, argv)
+-     int argc;
+-     char **argv;
++deletereg (int argc, char **argv)
+ {
+   u_long prog_num, version_num;
+ 
+@@ -700,8 +685,7 @@ print_version (void)
+ }
+ 
+ static u_long
+-getprognum (arg)
+-     char *arg;
++getprognum (char *arg)
+ {
+   register struct rpcent *rpc;
+   register u_long prognum;
+@@ -725,8 +709,7 @@ getprognum (arg)
+ }
+ 
+ static u_long
+-getvers (arg)
+-     char *arg;
++getvers (char *arg)
+ {
+   register u_long vers;
+ 
+@@ -735,9 +718,7 @@ getvers (arg)
+ }
+ 
+ static void
+-get_inet_address (addr, host)
+-     struct sockaddr_in *addr;
+-     char *host;
++get_inet_address (struct sockaddr_in *addr, char *host)
+ {
+   register struct hostent *hp;
+ 
+diff --git a/sunrpc/svc_raw.c b/sunrpc/svc_raw.c
+index 7d885574afb3fc34..99bfdfebe87484cb 100644
+--- a/sunrpc/svc_raw.c
++++ b/sunrpc/svc_raw.c
+@@ -97,9 +97,7 @@ svcraw_stat (SVCXPRT *xprt)
+ }
+ 
+ static bool_t
+-svcraw_recv (xprt, msg)
+-     SVCXPRT *xprt;
+-     struct rpc_msg *msg;
++svcraw_recv (SVCXPRT *xprt, struct rpc_msg *msg)
+ {
+   struct svcraw_private_s *srp = svcraw_private;
+   XDR *xdrs;
+diff --git a/sunrpc/svc_udp.c b/sunrpc/svc_udp.c
+index 3324e2a13e65df8c..e99c97680676f509 100644
+--- a/sunrpc/svc_udp.c
++++ b/sunrpc/svc_udp.c
+@@ -205,8 +205,7 @@ libc_hidden_nolink_sunrpc (svcudp_bufcreate, GLIBC_2_0)
+ #endif
+ 
+ SVCXPRT *
+-svcudp_create (sock)
+-     int sock;
++svcudp_create (int sock)
+ {
+   return svcudp_bufcreate (sock, UDPMSGSIZE, UDPMSGSIZE);
+ }
+@@ -217,17 +216,14 @@ libc_hidden_nolink_sunrpc (svcudp_create, GLIBC_2_0)
+ #endif
+ 
+ static enum xprt_stat
+-svcudp_stat (xprt)
+-     SVCXPRT *xprt;
++svcudp_stat (SVCXPRT *xprt)
+ {
+ 
+   return XPRT_IDLE;
+ }
+ 
+ static bool_t
+-svcudp_recv (xprt, msg)
+-     SVCXPRT *xprt;
+-     struct rpc_msg *msg;
++svcudp_recv (SVCXPRT *xprt, struct rpc_msg *msg)
+ {
+   struct svcudp_data *su = su_data (xprt);
+   XDR *xdrs = &(su->su_xdrs);
+@@ -329,9 +325,7 @@ again:
+ }
+ 
+ static bool_t
+-svcudp_reply (xprt, msg)
+-     SVCXPRT *xprt;
+-     struct rpc_msg *msg;
++svcudp_reply (SVCXPRT *xprt, struct rpc_msg *msg)
+ {
+   struct svcudp_data *su = su_data (xprt);
+   XDR *xdrs = &(su->su_xdrs);
+@@ -375,20 +369,14 @@ svcudp_reply (xprt, msg)
+ }
+ 
+ static bool_t
+-svcudp_getargs (xprt, xdr_args, args_ptr)
+-     SVCXPRT *xprt;
+-     xdrproc_t xdr_args;
+-     caddr_t args_ptr;
++svcudp_getargs (SVCXPRT *xprt, xdrproc_t xdr_args, caddr_t args_ptr)
+ {
+ 
+   return (*xdr_args) (&(su_data (xprt)->su_xdrs), args_ptr);
+ }
+ 
+ static bool_t
+-svcudp_freeargs (xprt, xdr_args, args_ptr)
+-     SVCXPRT *xprt;
+-     xdrproc_t xdr_args;
+-     caddr_t args_ptr;
++svcudp_freeargs (SVCXPRT *xprt, xdrproc_t xdr_args, caddr_t args_ptr)
+ {
+   XDR *xdrs = &(su_data (xprt)->su_xdrs);
+ 
+@@ -397,8 +385,7 @@ svcudp_freeargs (xprt, xdr_args, args_ptr)
+ }
+ 
+ static void
+-svcudp_destroy (xprt)
+-     SVCXPRT *xprt;
++svcudp_destroy (SVCXPRT *xprt)
+ {
+   struct svcudp_data *su = su_data (xprt);
+ 
+diff --git a/sunrpc/xdr.c b/sunrpc/xdr.c
+index d0afd34466f73def..9f1f7d417521044d 100644
+--- a/sunrpc/xdr.c
++++ b/sunrpc/xdr.c
+@@ -589,11 +589,7 @@ libc_hidden_nolink_sunrpc (xdr_opaque, GLIBC_2_0)
+  * If *cpp is NULL maxsize bytes are allocated
+  */
+ bool_t
+-xdr_bytes (xdrs, cpp, sizep, maxsize)
+-     XDR *xdrs;
+-     char **cpp;
+-     u_int *sizep;
+-     u_int maxsize;
++xdr_bytes (XDR *xdrs, char **cpp, u_int *sizep, u_int maxsize)
+ {
+   char *sp = *cpp;	/* sp is the actual string pointer */
+   u_int nodesize;
+@@ -655,9 +651,7 @@ libc_hidden_nolink_sunrpc (xdr_bytes, GLIBC_2_0)
+  * Implemented here due to commonality of the object.
+  */
+ bool_t
+-xdr_netobj (xdrs, np)
+-     XDR *xdrs;
+-     struct netobj *np;
++xdr_netobj (XDR *xdrs, struct netobj *np)
+ {
+ 
+   return xdr_bytes (xdrs, &np->n_bytes, &np->n_len, MAX_NETOBJ_SZ);
+@@ -732,10 +726,7 @@ libc_hidden_nolink_sunrpc (xdr_union, GLIBC_2_0)
+  * of the string as specified by a protocol.
+  */
+ bool_t
+-xdr_string (xdrs, cpp, maxsize)
+-     XDR *xdrs;
+-     char **cpp;
+-     u_int maxsize;
++xdr_string (XDR *xdrs, char **cpp, u_int maxsize)
+ {
+   char *sp = *cpp;	/* sp is the actual string pointer */
+   /* Initialize to silence the compiler.  It is not really needed because SIZE
+@@ -816,9 +807,7 @@ libc_hidden_nolink_sunrpc (xdr_string, GLIBC_2_0)
+  * routines like clnt_call
+  */
+ bool_t
+-xdr_wrapstring (xdrs, cpp)
+-     XDR *xdrs;
+-     char **cpp;
++xdr_wrapstring (XDR *xdrs, char **cpp)
+ {
+   if (xdr_string (xdrs, cpp, LASTUNSIGNED))
+     {
+diff --git a/sunrpc/xdr_float.c b/sunrpc/xdr_float.c
+index 78e8f3bd2da567f2..4ce8ae7a9c314e97 100644
+--- a/sunrpc/xdr_float.c
++++ b/sunrpc/xdr_float.c
+@@ -80,9 +80,7 @@ static struct sgl_limits {
+ #endif /* vax */
+ 
+ bool_t
+-xdr_float(xdrs, fp)
+-     XDR *xdrs;
+-     float *fp;
++xdr_float (XDR *xdrs, float *fp)
+ {
+ #ifdef vax
+ 	struct ieee_single is;
+@@ -201,9 +199,7 @@ static struct dbl_limits {
+ 
+ 
+ bool_t
+-xdr_double(xdrs, dp)
+-     XDR *xdrs;
+-     double *dp;
++xdr_double (XDR *xdrs, double *dp)
+ {
+ #ifdef vax
+ 	struct	ieee_double id;
+diff --git a/sunrpc/xdr_mem.c b/sunrpc/xdr_mem.c
+index ba7661aa549b7792..8b9858959476ad8b 100644
+--- a/sunrpc/xdr_mem.c
++++ b/sunrpc/xdr_mem.c
+@@ -172,9 +172,7 @@ xdrmem_getpos (const XDR *xdrs)
+  * xdrs modified
+  */
+ static bool_t
+-xdrmem_setpos (xdrs, pos)
+-     XDR *xdrs;
+-     u_int pos;
++xdrmem_setpos (XDR *xdrs, u_int pos)
+ {
+   caddr_t newaddr = xdrs->x_base + pos;
+   caddr_t lastaddr = xdrs->x_private + xdrs->x_handy;
+diff --git a/sunrpc/xdr_ref.c b/sunrpc/xdr_ref.c
+index 8fb4584a75c4fd54..a7d9264ed6be6fe2 100644
+--- a/sunrpc/xdr_ref.c
++++ b/sunrpc/xdr_ref.c
+@@ -113,11 +113,7 @@ libc_hidden_nolink_sunrpc (xdr_reference, GLIBC_2_0)
+  *
+  */
+ bool_t
+-xdr_pointer (xdrs, objpp, obj_size, xdr_obj)
+-     XDR *xdrs;
+-     char **objpp;
+-     u_int obj_size;
+-     xdrproc_t xdr_obj;
++xdr_pointer (XDR *xdrs, char **objpp, u_int obj_size, xdrproc_t xdr_obj)
+ {
+ 
+   bool_t more_data;
+diff --git a/sysvipc/ftok.c b/sysvipc/ftok.c
+index bc9a44d631a51966..f93c97b9795a97f1 100644
+--- a/sysvipc/ftok.c
++++ b/sysvipc/ftok.c
+@@ -20,9 +20,7 @@
+ #include <sys/stat.h>
+ 
+ key_t
+-ftok (pathname, proj_id)
+-     const char *pathname;
+-     int proj_id;
++ftok (const char *pathname, int proj_id)
+ {
+   struct stat64 st;
+   key_t key;
+diff --git a/sysvipc/msgctl.c b/sysvipc/msgctl.c
+index 16a4f9514016bb23..4905749f9cc2f48e 100644
+--- a/sysvipc/msgctl.c
++++ b/sysvipc/msgctl.c
+@@ -23,10 +23,7 @@
+    objects.  */
+ 
+ int
+-msgctl (msqid, cmd, buf)
+-     int msqid;
+-     int cmd;
+-     struct msqid_ds *buf;
++msgctl (int msqid, int cmd, struct msqid_ds *buf)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/sysvipc/msgget.c b/sysvipc/msgget.c
+index 859c4459627d31d7..5dbb05f358e9689c 100644
+--- a/sysvipc/msgget.c
++++ b/sysvipc/msgget.c
+@@ -23,9 +23,7 @@
+    parameter describes how to proceed with clashing of key values.  */
+ 
+ int
+-msgget (key, msgflg)
+-     key_t key;
+-     int msgflg;
++msgget (key_t key, int msgflg)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/sysvipc/msgrcv.c b/sysvipc/msgrcv.c
+index d49a6a764d3033fb..99f7cccab12de037 100644
+--- a/sysvipc/msgrcv.c
++++ b/sysvipc/msgrcv.c
+@@ -26,12 +26,7 @@
+    in buffer overflow or queue underflow.  */
+ 
+ ssize_t
+-msgrcv (msqid, msgp, msgsz, msgtyp, msgflg)
+-     int msqid;
+-     void *msgp;
+-     size_t msgsz;
+-     long msgtyp;
+-     int msgflg;
++msgrcv (int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/sysvipc/msgsnd.c b/sysvipc/msgsnd.c
+index cf067fa2af8253c5..2c691a8f8dc011b7 100644
+--- a/sysvipc/msgsnd.c
++++ b/sysvipc/msgsnd.c
+@@ -26,11 +26,7 @@
+    when the limit of the message queue length is reached.  */
+ 
+ int
+-msgsnd (msqid, msgp, msgsz, msgflg)
+-     int msqid;
+-     const void *msgp;
+-     size_t msgsz;
+-     int msgflg;
++msgsnd (int msqid, const void *msgp, size_t msgsz, int msgflg)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/sysvipc/semget.c b/sysvipc/semget.c
+index dbac3a388aa864ec..4639b42915b4cd6d 100644
+--- a/sysvipc/semget.c
++++ b/sysvipc/semget.c
+@@ -23,10 +23,7 @@
+    KEY.  */
+ 
+ int
+-semget (key, nsems, semflg)
+-     key_t key;
+-     int nsems;
+-     int semflg;
++semget (key_t key, int nsems, int semflg)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/sysvipc/semop.c b/sysvipc/semop.c
+index 298c8c0695356177..ef3657ec86fdbe0e 100644
+--- a/sysvipc/semop.c
++++ b/sysvipc/semop.c
+@@ -22,10 +22,7 @@
+ /* Perform user-defined atomical operation of array of semaphores.  */
+ 
+ int
+-semop (semid, sops, nsops)
+-     int semid;
+-     struct sembuf *sops;
+-     size_t nsops;
++semop (int semid, struct sembuf *sops, size_t nsops)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/sysvipc/shmat.c b/sysvipc/shmat.c
+index bcd31765d1756256..c5816fbd997e6b7f 100644
+--- a/sysvipc/shmat.c
++++ b/sysvipc/shmat.c
+@@ -24,10 +24,7 @@
+    and where the segment is attached.  */
+ 
+ void *
+-shmat (shmid, shmaddr, shmflg)
+-     int shmid;
+-     const void *shmaddr;
+-     int shmflg;
++shmat (int shmid, const void *shmaddr, int shmflg)
+ {
+   __set_errno (ENOSYS);
+   return (void *) -1;
+diff --git a/sysvipc/shmctl.c b/sysvipc/shmctl.c
+index 9ffec7dc87fa1a48..b59318a4cffd0dd8 100644
+--- a/sysvipc/shmctl.c
++++ b/sysvipc/shmctl.c
+@@ -22,10 +22,7 @@
+ /* Provide operations to control over shared memory segments.  */
+ 
+ int
+-shmctl (shmid, cmd, buf)
+-     int shmid;
+-     int cmd;
+-     struct shmid_ds *buf;
++shmctl (int shmid, int cmd, struct shmid_ds *buf)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/sysvipc/shmdt.c b/sysvipc/shmdt.c
+index 8a400460164cc300..a2af7f281a7f96d2 100644
+--- a/sysvipc/shmdt.c
++++ b/sysvipc/shmdt.c
+@@ -23,8 +23,7 @@
+    from the caller's data segment.  */
+ 
+ int
+-shmdt (shmaddr)
+-     const void *shmaddr;
++shmdt (const void *shmaddr)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/sysvipc/shmget.c b/sysvipc/shmget.c
+index 650603b8f088521e..2b96e1855e3b85f1 100644
+--- a/sysvipc/shmget.c
++++ b/sysvipc/shmget.c
+@@ -23,10 +23,7 @@
+    which is associated with KEY.  */
+ 
+ int
+-shmget (key, size, shmflg)
+-     key_t key;
+-     size_t size;
+-     int shmflg;
++shmget (key_t key, size_t size, int shmflg)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/termios/cfmakeraw.c b/termios/cfmakeraw.c
+index 41cb0992b3d65d71..5103a1a36981f48e 100644
+--- a/termios/cfmakeraw.c
++++ b/termios/cfmakeraw.c
+@@ -19,8 +19,7 @@
+ 
+ /* Set *T to indicate raw mode.  */
+ void
+-cfmakeraw (t)
+-     struct termios *t;
++cfmakeraw (struct termios *t)
+ {
+   t->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);
+   t->c_oflag &= ~OPOST;
+diff --git a/termios/speed.c b/termios/speed.c
+index a76ffcc965d78148..665a6caa3eb42f7b 100644
+--- a/termios/speed.c
++++ b/termios/speed.c
+@@ -22,25 +22,21 @@
+ 
+ /* Return the output baud rate stored in *TERMIOS_P.  */
+ speed_t
+-cfgetospeed (termios_p)
+-     const struct termios *termios_p;
++cfgetospeed (const struct termios *termios_p)
+ {
+   return termios_p->__ospeed;
+ }
+ 
+ /* Return the input baud rate stored in *TERMIOS_P.  */
+ speed_t
+-cfgetispeed (termios_p)
+-     const struct termios *termios_p;
++cfgetispeed (const struct termios *termios_p)
+ {
+   return termios_p->__ispeed;
+ }
+ 
+ /* Set the output baud rate stored in *TERMIOS_P to SPEED.  */
+ int
+-cfsetospeed (termios_p, speed)
+-     struct termios *termios_p;
+-     speed_t speed;
++cfsetospeed (struct termios *termios_p, speed_t speed)
+ {
+   if (termios_p == NULL)
+     {
+@@ -55,9 +51,7 @@ libc_hidden_def (cfsetospeed)
+ 
+ /* Set the input baud rate stored in *TERMIOS_P to SPEED.  */
+ int
+-cfsetispeed (termios_p, speed)
+-     struct termios *termios_p;
+-     speed_t speed;
++cfsetispeed (struct termios *termios_p, speed_t speed)
+ {
+   if (termios_p == NULL)
+     {
+diff --git a/termios/tcflow.c b/termios/tcflow.c
+index 8b064ea3b28f52e9..88f1234118da5dbf 100644
+--- a/termios/tcflow.c
++++ b/termios/tcflow.c
+@@ -20,9 +20,7 @@
+ 
+ /* Suspend or restart transmission on FD.  */
+ int
+-tcflow (fd, action)
+-     int fd;
+-     int action;
++tcflow (int fd, int action)
+ {
+   if (fd < 0)
+     {
+diff --git a/termios/tcflush.c b/termios/tcflush.c
+index 5888411ac33c424b..7ac4f7c483d48fc6 100644
+--- a/termios/tcflush.c
++++ b/termios/tcflush.c
+@@ -20,9 +20,7 @@
+ 
+ /* Flush pending data on FD.  */
+ int
+-tcflush (fd, queue_selector)
+-     int fd;
+-     int queue_selector;
++tcflush (int fd, int queue_selector)
+ {
+   switch (queue_selector)
+     {
+diff --git a/termios/tcgetattr.c b/termios/tcgetattr.c
+index 1ec2aa949731e0d1..42b768520f863c55 100644
+--- a/termios/tcgetattr.c
++++ b/termios/tcgetattr.c
+@@ -21,9 +21,7 @@
+ 
+ /* Put the state of FD into *TERMIOS_P.  */
+ int
+-__tcgetattr (fd, termios_p)
+-     int fd;
+-     struct termios *termios_p;
++__tcgetattr (int fd, struct termios *termios_p)
+ {
+   if (fd < 0)
+     {
+diff --git a/termios/tcgetpgrp.c b/termios/tcgetpgrp.c
+index b013ec65d0fe1b2c..73fbd8fbc66b19b5 100644
+--- a/termios/tcgetpgrp.c
++++ b/termios/tcgetpgrp.c
+@@ -21,8 +21,7 @@
+ 
+ /* Return the foreground process group ID of FD.  */
+ pid_t
+-tcgetpgrp (fd)
+-     int fd;
++tcgetpgrp (int fd)
+ {
+   if (fd < 0)
+     {
+diff --git a/termios/tcgetsid.c b/termios/tcgetsid.c
+index aac3c89d57a84707..f57fe94ddf30c038 100644
+--- a/termios/tcgetsid.c
++++ b/termios/tcgetsid.c
+@@ -23,8 +23,7 @@
+ 
+ /* Return the session ID of FD.  */
+ pid_t
+-tcgetsid (fd)
+-     int fd;
++tcgetsid (int fd)
+ {
+   pid_t pgrp;
+   pid_t sid;
+diff --git a/termios/tcsendbrk.c b/termios/tcsendbrk.c
+index 5e6805df29aca6bf..d5fe774605c0f48c 100644
+--- a/termios/tcsendbrk.c
++++ b/termios/tcsendbrk.c
+@@ -20,9 +20,7 @@
+ 
+ /* Send zero bits on FD.  */
+ int
+-tcsendbreak (fd, duration)
+-     int fd;
+-     int duration;
++tcsendbreak (int fd, int duration)
+ {
+   if (fd < 0)
+     {
+diff --git a/termios/tcsetpgrp.c b/termios/tcsetpgrp.c
+index dea5e96aecd88f98..4dfdd35a7bdc39fb 100644
+--- a/termios/tcsetpgrp.c
++++ b/termios/tcsetpgrp.c
+@@ -21,9 +21,7 @@
+ 
+ /* Set the foreground process group ID of FD set PGRP_ID.  */
+ int
+-tcsetpgrp (fd, pgrp_id)
+-     int fd;
+-     pid_t pgrp_id;
++tcsetpgrp (int fd, pid_t pgrp_id)
+ {
+   if (fd < 0)
+     {
+diff --git a/time/adjtime.c b/time/adjtime.c
+index 1c005c977ca70452..a31144bb76a137f6 100644
+--- a/time/adjtime.c
++++ b/time/adjtime.c
+@@ -23,9 +23,7 @@
+    of time adjustment remaining to be done from the last `__adjtime' call.
+    This call is restricted to the super-user.  */
+ int
+-__adjtime (delta, olddelta)
+-     const struct timeval *delta;
+-     struct timeval *olddelta;
++__adjtime (const struct timeval *delta, struct timeval *olddelta)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/time/dysize.c b/time/dysize.c
+index eb04e3239b282897..8ea445725e6868f4 100644
+--- a/time/dysize.c
++++ b/time/dysize.c
+@@ -18,8 +18,7 @@
+ #include <time.h>
+ 
+ int
+-dysize (year)
+-     int year;
++dysize (int year)
+ {
+   return __isleap (year) ? 366 : 365;
+ }
+diff --git a/time/ftime.c b/time/ftime.c
+index f9076c5a6caa6782..cb8b366dcf0f7342 100644
+--- a/time/ftime.c
++++ b/time/ftime.c
+@@ -20,8 +20,7 @@
+ #include <sys/timeb.h>
+ 
+ int
+-ftime (timebuf)
+-     struct timeb *timebuf;
++ftime (struct timeb *timebuf)
+ {
+   int save = errno;
+   struct tm tp;
+diff --git a/time/getitimer.c b/time/getitimer.c
+index fc0ebf8bfa99e56a..43db5e4ffea4e17b 100644
+--- a/time/getitimer.c
++++ b/time/getitimer.c
+@@ -22,9 +22,7 @@
+ /* Set *VALUE to the current setting of timer WHICH.
+    Return 0 on success, -1 on errors.  */
+ int
+-__getitimer (which, value)
+-     enum __itimer_which which;
+-     struct itimerval *value;
++__getitimer (enum __itimer_which which, struct itimerval *value)
+ {
+   if (value == NULL)
+     {
+diff --git a/time/gettimeofday.c b/time/gettimeofday.c
+index 4528a6a289bdbd83..b7f779cf2c9cc0f8 100644
+--- a/time/gettimeofday.c
++++ b/time/gettimeofday.c
+@@ -22,9 +22,7 @@
+    putting it into *TV and *TZ.  If TZ is NULL, *TZ is not filled.
+    Returns 0 on success, -1 on errors.  */
+ int
+-__gettimeofday (tv, tz)
+-     struct timeval *tv;
+-     struct timezone *tz;
++__gettimeofday (struct timeval *tv, struct timezone *tz)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/time/gmtime.c b/time/gmtime.c
+index 6baa71af21517382..8f04a3c9e1d4ec9f 100644
+--- a/time/gmtime.c
++++ b/time/gmtime.c
+@@ -21,9 +21,7 @@
+ /* Return the `struct tm' representation of *T in UTC,
+    using *TP to store the result.  */
+ struct tm *
+-__gmtime_r (t, tp)
+-     const time_t *t;
+-     struct tm *tp;
++__gmtime_r (const time_t *t, struct tm *tp)
+ {
+   return __tz_convert (t, 0, tp);
+ }
+@@ -33,8 +31,7 @@ weak_alias (__gmtime_r, gmtime_r)
+ 
+ /* Return the `struct tm' representation of *T in UTC.	*/
+ struct tm *
+-gmtime (t)
+-     const time_t *t;
++gmtime (const time_t *t)
+ {
+   return __tz_convert (t, 0, &_tmbuf);
+ }
+diff --git a/time/localtime.c b/time/localtime.c
+index e0ba956756075293..04596812d09f71c3 100644
+--- a/time/localtime.c
++++ b/time/localtime.c
+@@ -25,9 +25,7 @@ struct tm _tmbuf;
+ /* Return the `struct tm' representation of *T in local time,
+    using *TP to store the result.  */
+ struct tm *
+-__localtime_r (t, tp)
+-     const time_t *t;
+-     struct tm *tp;
++__localtime_r (const time_t *t, struct tm *tp)
+ {
+   return __tz_convert (t, 1, tp);
+ }
+@@ -36,8 +34,7 @@ weak_alias (__localtime_r, localtime_r)
+ 
+ /* Return the `struct tm' representation of *T in local time.  */
+ struct tm *
+-localtime (t)
+-     const time_t *t;
++localtime (const time_t *t)
+ {
+   return __tz_convert (t, 1, &_tmbuf);
+ }
+diff --git a/time/offtime.c b/time/offtime.c
+index 56c49f02016ff532..9f1f405bd39cb9b4 100644
+--- a/time/offtime.c
++++ b/time/offtime.c
+@@ -26,10 +26,7 @@
+    and store year, yday, mon, mday, wday, hour, min, sec into *TP.
+    Return nonzero if successful.  */
+ int
+-__offtime (t, offset, tp)
+-     const time_t *t;
+-     long int offset;
+-     struct tm *tp;
++__offtime (const time_t *t, long int offset, struct tm *tp)
+ {
+   time_t days, rem, y;
+   const unsigned short int *ip;
+diff --git a/time/settimeofday.c b/time/settimeofday.c
+index c1ceec0b611dea48..5eaba2bd86711264 100644
+--- a/time/settimeofday.c
++++ b/time/settimeofday.c
+@@ -21,9 +21,7 @@
+ /* Set the current time of day and timezone information.
+    This call is restricted to the super-user.  */
+ int
+-__settimeofday (tv, tz)
+-     const struct timeval *tv;
+-     const struct timezone *tz;
++__settimeofday (const struct timeval *tv, const struct timezone *tz)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/time/stime.c b/time/stime.c
+index 1ea1c17da53fac9b..129bfa6001a98937 100644
+--- a/time/stime.c
++++ b/time/stime.c
+@@ -22,8 +22,7 @@
+ /* Set the system clock to *WHEN.  */
+ 
+ int
+-stime (when)
+-     const time_t *when;
++stime (const time_t *when)
+ {
+   if (when == NULL)
+     {
+diff --git a/time/strftime_l.c b/time/strftime_l.c
+index 21303c9735baeb5f..873605720b837b15 100644
+--- a/time/strftime_l.c
++++ b/time/strftime_l.c
+@@ -366,9 +366,7 @@ memcpy_uppcase (dest, src, len LOCALE_PARAM)
+ # define tm_diff ftime_tm_diff
+ static int tm_diff (const struct tm *, const struct tm *) __THROW;
+ static int
+-tm_diff (a, b)
+-     const struct tm *a;
+-     const struct tm *b;
++tm_diff (const struct tm *a, const struct tm *b)
+ {
+   /* Compute intervening leap days correctly even if year is negative.
+      Take care to avoid int overflow in leap day calculations,
+@@ -403,9 +401,7 @@ static int iso_week_days (int, int) __THROW;
+ __inline__
+ #endif
+ static int
+-iso_week_days (yday, wday)
+-     int yday;
+-     int wday;
++iso_week_days (int yday, int wday)
+ {
+   /* Add enough to the first operand of % to make it nonnegative.  */
+   int big_enough_multiple_of_7 = (-YDAY_MINIMUM / 7 + 2) * 7;
+diff --git a/time/strptime.c b/time/strptime.c
+index a8ead3fdb18b346a..ef008074e03fee0a 100644
+--- a/time/strptime.c
++++ b/time/strptime.c
+@@ -28,10 +28,7 @@
+ 
+ 
+ char *
+-strptime (buf, format, tm)
+-     const char *buf;
+-     const char *format;
+-     struct tm *tm;
++strptime (const char *buf, const char *format, struct tm *tm)
+ {
+   return __strptime_internal (buf, format, tm, NULL, _NL_CURRENT_LOCALE);
+ }
+diff --git a/time/time.c b/time/time.c
+index 15dbb69212ac3cba..be488a191f8b3453 100644
+--- a/time/time.c
++++ b/time/time.c
+@@ -20,8 +20,7 @@
+ 
+ /* Return the time now, and store it in *TIMER if not NULL.  */
+ time_t
+-time (timer)
+-     time_t *timer;
++time (time_t *timer)
+ {
+   __set_errno (ENOSYS);
+ 
+diff --git a/time/timespec_get.c b/time/timespec_get.c
+index 0928515145e4a866..af7293050eb6f9d7 100644
+--- a/time/timespec_get.c
++++ b/time/timespec_get.c
+@@ -20,9 +20,7 @@
+ 
+ /* Set TS to calendar time based in time base BASE.  */
+ int
+-timespec_get (ts, base)
+-     struct timespec *ts;
+-     int base;
++timespec_get (struct timespec *ts, int base)
+ {
+   switch (base)
+     {
+diff --git a/wcsmbs/btowc.c b/wcsmbs/btowc.c
+index d71b1afc4de10553..3925bd27b8f2f1ce 100644
+--- a/wcsmbs/btowc.c
++++ b/wcsmbs/btowc.c
+@@ -29,8 +29,7 @@
+ 
+ 
+ wint_t
+-__btowc (c)
+-     int c;
++__btowc (int c)
+ {
+   const struct gconv_fcts *fcts;
+ 
+diff --git a/wcsmbs/mbrlen.c b/wcsmbs/mbrlen.c
+index 57ab3e4d7630de7a..4e6b6de24fad6805 100644
+--- a/wcsmbs/mbrlen.c
++++ b/wcsmbs/mbrlen.c
+@@ -24,10 +24,7 @@ static mbstate_t internal;
+ 
+ 
+ size_t
+-__mbrlen (s, n, ps)
+-     const char *s;
+-     size_t n;
+-     mbstate_t *ps;
++__mbrlen (const char *s, size_t n, mbstate_t *ps)
+ {
+   return __mbrtowc (NULL, s, n, ps ?: &internal);
+ }
+diff --git a/wcsmbs/mbsinit.c b/wcsmbs/mbsinit.c
+index 1d3d7430e95bcd73..992d3ef5a4f9d72d 100644
+--- a/wcsmbs/mbsinit.c
++++ b/wcsmbs/mbsinit.c
+@@ -31,8 +31,7 @@
+    value collected so far.  Especially, we don't have different shift
+    states.  */
+ int
+-__mbsinit (ps)
+-     const mbstate_t *ps;
++__mbsinit (const mbstate_t *ps)
+ {
+   return ps == NULL || ps->__count == 0;
+ }
+diff --git a/wcsmbs/mbsrtowcs.c b/wcsmbs/mbsrtowcs.c
+index 6a90dff3b95711ce..63327420e72b92b9 100644
+--- a/wcsmbs/mbsrtowcs.c
++++ b/wcsmbs/mbsrtowcs.c
+@@ -24,11 +24,7 @@
+ static mbstate_t state;
+ 
+ size_t
+-__mbsrtowcs (dst, src, len, ps)
+-     wchar_t *dst;
+-     const char **src;
+-     size_t len;
+-     mbstate_t *ps;
++__mbsrtowcs (wchar_t *dst, const char **src, size_t len, mbstate_t *ps)
+ {
+   return __mbsrtowcs_l (dst, src, len, ps ?: &state, _NL_CURRENT_LOCALE);
+ }
+diff --git a/wcsmbs/wcpcpy.c b/wcsmbs/wcpcpy.c
+index f67ba6286e4e7058..86ed9962ed937031 100644
+--- a/wcsmbs/wcpcpy.c
++++ b/wcsmbs/wcpcpy.c
+@@ -27,9 +27,7 @@
+ /* Copy SRC to DEST, returning the address of the terminating L'\0' in
+    DEST.  */
+ wchar_t *
+-__wcpcpy (dest, src)
+-     wchar_t *dest;
+-     const wchar_t *src;
++__wcpcpy (wchar_t *dest, const wchar_t *src)
+ {
+   wchar_t *wcp = (wchar_t *) dest - 1;
+   wint_t c;
+diff --git a/wcsmbs/wcpncpy.c b/wcsmbs/wcpncpy.c
+index 6337a878ef0f4516..63e6c529d04ad4ed 100644
+--- a/wcsmbs/wcpncpy.c
++++ b/wcsmbs/wcpncpy.c
+@@ -25,10 +25,7 @@
+ /* Copy no more than N wide-characters of SRC to DEST, returning the
+    address of the last character written into DEST.  */
+ wchar_t *
+-__wcpncpy (dest, src, n)
+-     wchar_t *dest;
+-     const wchar_t *src;
+-     size_t n;
++__wcpncpy (wchar_t *dest, const wchar_t *src, size_t n)
+ {
+   wint_t c;
+   wchar_t *const s = dest;
+diff --git a/wcsmbs/wcscat.c b/wcsmbs/wcscat.c
+index 89366e1437465988..856b3ea708f7803a 100644
+--- a/wcsmbs/wcscat.c
++++ b/wcsmbs/wcscat.c
+@@ -24,9 +24,7 @@
+ 
+ /* Append SRC on the end of DEST.  */
+ wchar_t *
+-__wcscat (dest, src)
+-     wchar_t *dest;
+-     const wchar_t *src;
++__wcscat (wchar_t *dest, const wchar_t *src)
+ {
+   wchar_t *s1 = dest;
+   const wchar_t *s2 = src;
+diff --git a/wcsmbs/wcschrnul.c b/wcsmbs/wcschrnul.c
+index 48eaf7b011e3a690..5ceed6e2434b42ab 100644
+--- a/wcsmbs/wcschrnul.c
++++ b/wcsmbs/wcschrnul.c
+@@ -23,9 +23,7 @@
+ 
+ /* Find the first occurrence of WC in WCS.  */
+ wchar_t *
+-__wcschrnul (wcs, wc)
+-     const wchar_t *wcs;
+-     const wchar_t wc;
++__wcschrnul (const wchar_t *wcs, const wchar_t wc)
+ {
+   while (*wcs != L'\0')
+     if (*wcs == wc)
+diff --git a/wcsmbs/wcscmp.c b/wcsmbs/wcscmp.c
+index 2fd8cc0dffe252e0..bc35fea8f7d6ede8 100644
+--- a/wcsmbs/wcscmp.c
++++ b/wcsmbs/wcscmp.c
+@@ -26,9 +26,7 @@
+    greater than zero if S1 is lexicographically less than,
+    equal to or greater than S2.	 */
+ int
+-WCSCMP (s1, s2)
+-     const wchar_t *s1;
+-     const wchar_t *s2;
++WCSCMP (const wchar_t *s1, const wchar_t *s2)
+ {
+   wchar_t c1, c2;
+ 
+diff --git a/wcsmbs/wcscpy.c b/wcsmbs/wcscpy.c
+index cec1249051cf4151..23ec49686921575a 100644
+--- a/wcsmbs/wcscpy.c
++++ b/wcsmbs/wcscpy.c
+@@ -25,9 +25,7 @@
+ 
+ /* Copy SRC to DEST.  */
+ wchar_t *
+-WCSCPY (dest, src)
+-     wchar_t *dest;
+-     const wchar_t *src;
++WCSCPY (wchar_t *dest, const wchar_t *src)
+ {
+   wint_t c;
+   wchar_t *wcp;
+diff --git a/wcsmbs/wcscspn.c b/wcsmbs/wcscspn.c
+index cf4205fd5e56baee..026d0cb1e19265f0 100644
+--- a/wcsmbs/wcscspn.c
++++ b/wcsmbs/wcscspn.c
+@@ -25,9 +25,7 @@
+ /* Return the length of the maximum initial segment
+    of WCS which contains only wide-characters not in REJECT.  */
+ size_t
+-wcscspn (wcs, reject)
+-     const wchar_t *wcs;
+-     const wchar_t *reject;
++wcscspn (const wchar_t *wcs, const wchar_t *reject)
+ {
+   size_t count = 0;
+ 
+diff --git a/wcsmbs/wcsdup.c b/wcsmbs/wcsdup.c
+index af1c28cd94f03d73..325693a06d32a4df 100644
+--- a/wcsmbs/wcsdup.c
++++ b/wcsmbs/wcsdup.c
+@@ -23,8 +23,7 @@
+ 
+ /* Duplicate S, returning an identical malloc'd string.	 */
+ wchar_t *
+-wcsdup (s)
+-     const wchar_t *s;
++wcsdup (const wchar_t *s)
+ {
+   size_t len = (__wcslen (s) + 1) * sizeof (wchar_t);
+   void *new = malloc (len);
+diff --git a/wcsmbs/wcslen.c b/wcsmbs/wcslen.c
+index d14ab04b416538f2..95785429b8900a06 100644
+--- a/wcsmbs/wcslen.c
++++ b/wcsmbs/wcslen.c
+@@ -24,8 +24,7 @@
+ #endif
+ 
+ size_t
+-__wcslen (s)
+-     const wchar_t *s;
++__wcslen (const wchar_t *s)
+ {
+   size_t len = 0;
+ 
+diff --git a/wcsmbs/wcsncat.c b/wcsmbs/wcsncat.c
+index 21a3a1e0a997a684..d96b5376eea20850 100644
+--- a/wcsmbs/wcsncat.c
++++ b/wcsmbs/wcsncat.c
+@@ -24,10 +24,7 @@
+ 
+ /* Append no more than N wide-character of SRC onto DEST.  */
+ wchar_t *
+-WCSNCAT (dest, src, n)
+-     wchar_t *dest;
+-     const wchar_t *src;
+-     size_t n;
++WCSNCAT (wchar_t *dest, const wchar_t *src, size_t n)
+ {
+   wchar_t c;
+   wchar_t * const s = dest;
+diff --git a/wcsmbs/wcsncmp.c b/wcsmbs/wcsncmp.c
+index 1522b6f9c0ff2198..c4026a02be0b2a33 100644
+--- a/wcsmbs/wcsncmp.c
++++ b/wcsmbs/wcsncmp.c
+@@ -27,10 +27,7 @@
+    if S1 is lexicographically less than, equal to or
+    greater than S2.  */
+ int
+-WCSNCMP (s1, s2, n)
+-     const wchar_t *s1;
+-     const wchar_t *s2;
+-     size_t n;
++WCSNCMP (const wchar_t *s1, const wchar_t *s2, size_t n)
+ {
+   wchar_t c1 = L'\0';
+   wchar_t c2 = L'\0';
+diff --git a/wcsmbs/wcsncpy.c b/wcsmbs/wcsncpy.c
+index 2e3cebedf5a876d0..f352d3df51f866fe 100644
+--- a/wcsmbs/wcsncpy.c
++++ b/wcsmbs/wcsncpy.c
+@@ -24,10 +24,7 @@
+ 
+ /* Copy no more than N wide-characters of SRC to DEST.	*/
+ wchar_t *
+-__wcsncpy (dest, src, n)
+-     wchar_t *dest;
+-     const wchar_t *src;
+-     size_t n;
++__wcsncpy (wchar_t *dest, const wchar_t *src, size_t n)
+ {
+   wint_t c;
+   wchar_t *const s = dest;
+diff --git a/wcsmbs/wcsnlen.c b/wcsmbs/wcsnlen.c
+index e80392055cf8b835..00ac2a399f0b3432 100644
+--- a/wcsmbs/wcsnlen.c
++++ b/wcsmbs/wcsnlen.c
+@@ -24,9 +24,7 @@
+ 
+ /* Return length of string S at most maxlen.  */
+ size_t
+-__wcsnlen (s, maxlen)
+-     const wchar_t *s;
+-     size_t maxlen;
++__wcsnlen (const wchar_t *s, size_t maxlen)
+ {
+   size_t len = 0;
+ 
+diff --git a/wcsmbs/wcspbrk.c b/wcsmbs/wcspbrk.c
+index ee880709d826fde8..fc8259c14c7f2a6f 100644
+--- a/wcsmbs/wcspbrk.c
++++ b/wcsmbs/wcspbrk.c
+@@ -24,9 +24,7 @@
+ 
+ /* Find the first occurrence in WCS of any wide-character in ACCEPT.  */
+ wchar_t *
+-wcspbrk (wcs, accept)
+-     const wchar_t *wcs;
+-     const wchar_t *accept;
++wcspbrk (const wchar_t *wcs, const wchar_t *accept)
+ {
+   while (*wcs != L'\0')
+     if (wcschr (accept, *wcs) == NULL)
+diff --git a/wcsmbs/wcsrchr.c b/wcsmbs/wcsrchr.c
+index b1771a7e8a7ee8a9..916333e204219b85 100644
+--- a/wcsmbs/wcsrchr.c
++++ b/wcsmbs/wcsrchr.c
+@@ -24,9 +24,7 @@
+ 
+ /* Find the last occurrence of WC in WCS.  */
+ wchar_t *
+-WCSRCHR (wcs, wc)
+-     const wchar_t *wcs;
+-     const wchar_t wc;
++WCSRCHR (const wchar_t *wcs, const wchar_t wc)
+ {
+   const wchar_t *retval = NULL;
+ 
+diff --git a/wcsmbs/wcsspn.c b/wcsmbs/wcsspn.c
+index 4c2db0ffc360e906..3f68a64b5ae852b4 100644
+--- a/wcsmbs/wcsspn.c
++++ b/wcsmbs/wcsspn.c
+@@ -25,9 +25,7 @@
+ /* Return the length of the maximum initial segment
+    of WCS which contains only wide-characters in ACCEPT.  */
+ size_t
+-wcsspn (wcs, accept)
+-     const wchar_t *wcs;
+-     const wchar_t *accept;
++wcsspn (const wchar_t *wcs, const wchar_t *accept)
+ {
+   const wchar_t *p;
+   const wchar_t *a;
+diff --git a/wcsmbs/wcsstr.c b/wcsmbs/wcsstr.c
+index d4a42df01ce1214c..14d8505b635cb686 100644
+--- a/wcsmbs/wcsstr.c
++++ b/wcsmbs/wcsstr.c
+@@ -29,9 +29,7 @@
+ #include <wchar.h>
+ 
+ wchar_t *
+-wcsstr (haystack, needle)
+-     const wchar_t *haystack;
+-     const wchar_t *needle;
++wcsstr (const wchar_t *haystack, const wchar_t *needle)
+ {
+   wchar_t b, c;
+ 
+diff --git a/wcsmbs/wcstok.c b/wcsmbs/wcstok.c
+index 2977981fe9f6f2cd..ecab52fd4e84dbad 100644
+--- a/wcsmbs/wcstok.c
++++ b/wcsmbs/wcstok.c
+@@ -23,10 +23,7 @@
+ /* Parse WCS into tokens separated by characters in DELIM.  If WCS is
+    NULL, the last string wcstok() was called with is used.  */
+ wchar_t *
+-wcstok (wcs, delim, save_ptr)
+-     wchar_t *wcs;
+-     const wchar_t *delim;
+-     wchar_t **save_ptr;
++wcstok (wchar_t *wcs, const wchar_t *delim, wchar_t **save_ptr)
+ {
+   wchar_t *result;
+ 
+diff --git a/wcsmbs/wctob.c b/wcsmbs/wctob.c
+index 72f7373be10ae720..91a017e87b064fb4 100644
+--- a/wcsmbs/wctob.c
++++ b/wcsmbs/wctob.c
+@@ -27,8 +27,7 @@
+ 
+ 
+ int
+-wctob (c)
+-     wint_t c;
++wctob (wint_t c)
+ {
+   unsigned char buf[MB_LEN_MAX];
+   struct __gconv_step_data data;
+diff --git a/wcsmbs/wmemchr.c b/wcsmbs/wmemchr.c
+index b8726838a2951d6e..4b7d96bef57c089e 100644
+--- a/wcsmbs/wmemchr.c
++++ b/wcsmbs/wmemchr.c
+@@ -23,10 +23,7 @@
+ #endif
+ 
+ wchar_t *
+-wmemchr (s, c, n)
+-     const wchar_t *s;
+-     wchar_t c;
+-     size_t n;
++wmemchr (const wchar_t *s, wchar_t c, size_t n)
+ {
+   /* For performance reasons unfold the loop four times.  */
+   while (n >= 4)
+diff --git a/wcsmbs/wmemcmp.c b/wcsmbs/wmemcmp.c
+index bb0a900dc8a5ec49..94901f12b059ee0e 100644
+--- a/wcsmbs/wmemcmp.c
++++ b/wcsmbs/wmemcmp.c
+@@ -23,10 +23,7 @@
+ #endif
+ 
+ int
+-WMEMCMP (s1, s2, n)
+-     const wchar_t *s1;
+-     const wchar_t *s2;
+-     size_t n;
++WMEMCMP (const wchar_t *s1, const wchar_t *s2, size_t n)
+ {
+   wchar_t c1;
+   wchar_t c2;
+diff --git a/wcsmbs/wmemcpy.c b/wcsmbs/wmemcpy.c
+index 51bfab3523e81314..5e4d25cba92caa1b 100644
+--- a/wcsmbs/wmemcpy.c
++++ b/wcsmbs/wmemcpy.c
+@@ -21,10 +21,7 @@
+ 
+ 
+ wchar_t *
+-__wmemcpy (s1, s2, n)
+-     wchar_t *s1;
+-     const wchar_t *s2;
+-     size_t n;
++__wmemcpy (wchar_t *s1, const wchar_t *s2, size_t n)
+ {
+   return (wchar_t *) memcpy ((char *) s1, (char *) s2, n * sizeof (wchar_t));
+ }
+diff --git a/wcsmbs/wmemmove.c b/wcsmbs/wmemmove.c
+index a3f7fe7cbf1ad3e9..e46d4b3c510b148e 100644
+--- a/wcsmbs/wmemmove.c
++++ b/wcsmbs/wmemmove.c
+@@ -21,10 +21,7 @@
+ 
+ 
+ wchar_t *
+-__wmemmove (s1, s2, n)
+-     wchar_t *s1;
+-     const wchar_t *s2;
+-     size_t n;
++__wmemmove (wchar_t *s1, const wchar_t *s2, size_t n)
+ {
+   return (wchar_t *) memmove ((char *) s1, (char *) s2, n * sizeof (wchar_t));
+ }
+diff --git a/wcsmbs/wmempcpy.c b/wcsmbs/wmempcpy.c
+index 32ccef2c46e66841..023c7a2c6ad9ba6d 100644
+--- a/wcsmbs/wmempcpy.c
++++ b/wcsmbs/wmempcpy.c
+@@ -21,10 +21,7 @@
+ 
+ 
+ wchar_t *
+-__wmempcpy (s1, s2, n)
+-     wchar_t *s1;
+-     const wchar_t *s2;
+-     size_t n;
++__wmempcpy (wchar_t *s1, const wchar_t *s2, size_t n)
+ {
+   return (wchar_t *) __mempcpy ((char *) s1, (char *) s2,
+ 				n * sizeof (wchar_t));
+diff --git a/wcsmbs/wmemset.c b/wcsmbs/wmemset.c
+index afc26c7c48f34f3d..42dbd3ba1cc43163 100644
+--- a/wcsmbs/wmemset.c
++++ b/wcsmbs/wmemset.c
+@@ -23,10 +23,7 @@
+ #endif
+ 
+ wchar_t *
+-wmemset (s, c, n)
+-     wchar_t *s;
+-     wchar_t c;
+-     size_t n;
++wmemset (wchar_t *s, wchar_t c, size_t n)
+ {
+   wchar_t *wp = s;
+ 
+diff --git a/wctype/wcfuncs.c b/wctype/wcfuncs.c
+index a6101066506ee952..1f854c353e19898c 100644
+--- a/wctype/wcfuncs.c
++++ b/wctype/wcfuncs.c
+@@ -69,8 +69,7 @@ libc_hidden_weak (iswxdigit)
+ 
+ #undef towlower
+ wint_t
+-towlower (wc)
+-     wint_t wc;
++towlower (wint_t wc)
+ {
+   size_t i = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_OFFSET) + __TOW_tolower;
+   const char *desc = _NL_CURRENT (LC_CTYPE, i);
+@@ -80,8 +79,7 @@ libc_hidden_def (towlower)
+ 
+ #undef towupper
+ wint_t
+-towupper (wc)
+-     wint_t wc;
++towupper (wint_t wc)
+ {
+   size_t i = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_OFFSET) + __TOW_toupper;
+   const char *desc = _NL_CURRENT (LC_CTYPE, i);
diff --git a/SOURCES/glibc-rh1505492-prototypes-12.patch b/SOURCES/glibc-rh1505492-prototypes-12.patch
new file mode 100644
index 0000000..76ac99e
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-12.patch
@@ -0,0 +1,3646 @@
+commit bd2260a2069993cdb14cffcbb2b0dc04b9888aee
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Mon Oct 19 12:04:33 2015 +0000
+
+    Convert 231 sysdeps function definitions to prototype style.
+    
+    This mostly automatically-generated patch converts 231 sysdeps
+    function definitions in glibc from old-style K&R to prototype-style.
+    
+    For __aio_sigqueue and __gai_sigqueue I had to add internal_function
+    to the definitions as noted by Florian in
+    <https://sourceware.org/ml/libc-alpha/2015-10/msg00595.html> to keep
+    the functions compiling on x86 after conversion to prototype
+    definitions.  Otherwise, the patch is automatically generated with all
+    the same exclusions and caveats as in
+    <https://sourceware.org/ml/libc-alpha/2015-10/msg00594.html> except
+    that it's a patch for sysdeps files.
+    
+    Tested for x86_64 and x86 (testsuite, and that installed stripped
+    shared libraries are unchanged by the patch).  Also tested for arm,
+    mips64 and powerpc32 that installed stripped shared libraries are
+    unchanged by the patch.
+    
+            * sysdeps/arm/backtrace.c (__backtrace): Convert to
+            prototype-style function definition.
+            * sysdeps/i386/backtrace.c (__backtrace): Likewise.
+            * sysdeps/i386/ffs.c (__ffs): Likewise.
+            * sysdeps/i386/i686/ffs.c (__ffs): Likewise.
+            * sysdeps/ia64/nptl/pthread_spin_lock.c (pthread_spin_lock):
+            Likewise.
+            * sysdeps/ia64/nptl/pthread_spin_trylock.c (pthread_spin_trylock):
+            Likewise.
+            * sysdeps/ieee754/ldbl-128/e_log2l.c (__ieee754_log2l): Likewise.
+            * sysdeps/ieee754/ldbl-128ibm/e_log2l.c (__ieee754_log2l):
+            Likewise.
+            * sysdeps/m68k/ffs.c (__ffs): Likewise.
+            * sysdeps/m68k/m680x0/fpu/e_acos.c (FUNC): Likewise.
+            * sysdeps/m68k/m680x0/fpu/e_fmod.c (FUNC): Likewise.
+            * sysdeps/mach/adjtime.c (__adjtime): Likewise.
+            * sysdeps/mach/gettimeofday.c (__gettimeofday): Likewise.
+            * sysdeps/mach/hurd/_exit.c (_exit): Likewise.
+            * sysdeps/mach/hurd/access.c (__access): Likewise.
+            * sysdeps/mach/hurd/adjtime.c (__adjtime): Likewise.
+            * sysdeps/mach/hurd/chdir.c (__chdir): Likewise.
+            * sysdeps/mach/hurd/chmod.c (__chmod): Likewise.
+            * sysdeps/mach/hurd/chown.c (__chown): Likewise.
+            * sysdeps/mach/hurd/cthreads.c (cthread_keycreate): Likewise.
+            (cthread_getspecific): Likewise.
+            (cthread_setspecific): Likewise.
+            (__libc_getspecific): Likewise.
+            * sysdeps/mach/hurd/euidaccess.c (__euidaccess): Likewise.
+            * sysdeps/mach/hurd/faccessat.c (faccessat): Likewise.
+            * sysdeps/mach/hurd/fchdir.c (__fchdir): Likewise.
+            * sysdeps/mach/hurd/fchmod.c (__fchmod): Likewise.
+            * sysdeps/mach/hurd/fchmodat.c (fchmodat): Likewise.
+            * sysdeps/mach/hurd/fchown.c (__fchown): Likewise.
+            * sysdeps/mach/hurd/fchownat.c (fchownat): Likewise.
+            * sysdeps/mach/hurd/flock.c (__flock): Likewise.
+            * sysdeps/mach/hurd/fsync.c (fsync): Likewise.
+            * sysdeps/mach/hurd/ftruncate.c (__ftruncate): Likewise.
+            * sysdeps/mach/hurd/getgroups.c (__getgroups): Likewise.
+            * sysdeps/mach/hurd/gethostname.c (__gethostname): Likewise.
+            * sysdeps/mach/hurd/getitimer.c (__getitimer): Likewise.
+            * sysdeps/mach/hurd/getlogin_r.c (__getlogin_r): Likewise.
+            * sysdeps/mach/hurd/getpgid.c (__getpgid): Likewise.
+            * sysdeps/mach/hurd/getrusage.c (__getrusage): Likewise.
+            * sysdeps/mach/hurd/getsockname.c (__getsockname): Likewise.
+            * sysdeps/mach/hurd/group_member.c (__group_member): Likewise.
+            * sysdeps/mach/hurd/isatty.c (__isatty): Likewise.
+            * sysdeps/mach/hurd/lchown.c (__lchown): Likewise.
+            * sysdeps/mach/hurd/link.c (__link): Likewise.
+            * sysdeps/mach/hurd/linkat.c (linkat): Likewise.
+            * sysdeps/mach/hurd/listen.c (__listen): Likewise.
+            * sysdeps/mach/hurd/mkdir.c (__mkdir): Likewise.
+            * sysdeps/mach/hurd/mkdirat.c (mkdirat): Likewise.
+            * sysdeps/mach/hurd/openat.c (__openat): Likewise.
+            * sysdeps/mach/hurd/poll.c (__poll): Likewise.
+            * sysdeps/mach/hurd/readlink.c (__readlink): Likewise.
+            * sysdeps/mach/hurd/readlinkat.c (readlinkat): Likewise.
+            * sysdeps/mach/hurd/recv.c (__recv): Likewise.
+            * sysdeps/mach/hurd/rename.c (rename): Likewise.
+            * sysdeps/mach/hurd/renameat.c (renameat): Likewise.
+            * sysdeps/mach/hurd/revoke.c (revoke): Likewise.
+            * sysdeps/mach/hurd/rewinddir.c (__rewinddir): Likewise.
+            * sysdeps/mach/hurd/rmdir.c (__rmdir): Likewise.
+            * sysdeps/mach/hurd/seekdir.c (seekdir): Likewise.
+            * sysdeps/mach/hurd/send.c (__send): Likewise.
+            * sysdeps/mach/hurd/setdomain.c (setdomainname): Likewise.
+            * sysdeps/mach/hurd/setegid.c (setegid): Likewise.
+            * sysdeps/mach/hurd/seteuid.c (seteuid): Likewise.
+            * sysdeps/mach/hurd/setgid.c (__setgid): Likewise.
+            * sysdeps/mach/hurd/setgroups.c (setgroups): Likewise.
+            * sysdeps/mach/hurd/sethostid.c (sethostid): Likewise.
+            * sysdeps/mach/hurd/sethostname.c (sethostname): Likewise.
+            * sysdeps/mach/hurd/setlogin.c (setlogin): Likewise.
+            * sysdeps/mach/hurd/setpgid.c (__setpgid): Likewise.
+            * sysdeps/mach/hurd/setregid.c (__setregid): Likewise.
+            * sysdeps/mach/hurd/setreuid.c (__setreuid): Likewise.
+            * sysdeps/mach/hurd/settimeofday.c (__settimeofday): Likewise.
+            * sysdeps/mach/hurd/setuid.c (__setuid): Likewise.
+            * sysdeps/mach/hurd/shutdown.c (shutdown): Likewise.
+            * sysdeps/mach/hurd/sigaction.c (__sigaction): Likewise.
+            * sysdeps/mach/hurd/sigaltstack.c (__sigaltstack): Likewise.
+            * sysdeps/mach/hurd/sigpending.c (sigpending): Likewise.
+            * sysdeps/mach/hurd/sigprocmask.c (__sigprocmask): Likewise.
+            * sysdeps/mach/hurd/sigsuspend.c (__sigsuspend): Likewise.
+            * sysdeps/mach/hurd/socket.c (__socket): Likewise.
+            * sysdeps/mach/hurd/symlink.c (__symlink): Likewise.
+            * sysdeps/mach/hurd/symlinkat.c (symlinkat): Likewise.
+            * sysdeps/mach/hurd/telldir.c (telldir): Likewise.
+            * sysdeps/mach/hurd/truncate.c (__truncate): Likewise.
+            * sysdeps/mach/hurd/umask.c (__umask): Likewise.
+            * sysdeps/mach/hurd/unlink.c (__unlink): Likewise.
+            * sysdeps/mach/hurd/unlinkat.c (unlinkat): Likewise.
+            * sysdeps/mips/mips64/__longjmp.c (__longjmp): Likewise.
+            * sysdeps/posix/alarm.c (alarm): Likewise.
+            * sysdeps/posix/cuserid.c (cuserid): Likewise.
+            * sysdeps/posix/dirfd.c (dirfd): Likewise.
+            * sysdeps/posix/dup.c (__dup): Likewise.
+            * sysdeps/posix/dup2.c (__dup2): Likewise.
+            * sysdeps/posix/euidaccess.c (euidaccess): Likewise.
+            (main): Likewise.
+            * sysdeps/posix/flock.c (__flock): Likewise.
+            * sysdeps/posix/fpathconf.c (__fpathconf): Likewise.
+            * sysdeps/posix/getcwd.c (__getcwd): Likewise.
+            * sysdeps/posix/gethostname.c (__gethostname): Likewise.
+            * sysdeps/posix/gettimeofday.c (__gettimeofday): Likewise.
+            * sysdeps/posix/isatty.c (__isatty): Likewise.
+            * sysdeps/posix/killpg.c (killpg): Likewise.
+            * sysdeps/posix/libc_fatal.c (__libc_fatal): Likewise.
+            * sysdeps/posix/mkfifoat.c (mkfifoat): Likewise.
+            * sysdeps/posix/raise.c (raise): Likewise.
+            * sysdeps/posix/remove.c (remove): Likewise.
+            * sysdeps/posix/rename.c (rename): Likewise.
+            * sysdeps/posix/rewinddir.c (__rewinddir): Likewise.
+            * sysdeps/posix/seekdir.c (seekdir): Likewise.
+            * sysdeps/posix/sigblock.c (__sigblock): Likewise.
+            * sysdeps/posix/sigignore.c (sigignore): Likewise.
+            * sysdeps/posix/sigintr.c (siginterrupt): Likewise.
+            * sysdeps/posix/signal.c (__bsd_signal): Likewise.
+            * sysdeps/posix/sigset.c (sigset): Likewise.
+            * sysdeps/posix/sigsuspend.c (__sigsuspend): Likewise.
+            * sysdeps/posix/sysconf.c (__sysconf): Likewise.
+            * sysdeps/posix/sysv_signal.c (__sysv_signal): Likewise.
+            * sysdeps/posix/time.c (time): Likewise.
+            * sysdeps/posix/ttyname.c (getttyname): Likewise.
+            (ttyname): Likewise.
+            * sysdeps/posix/ttyname_r.c (__ttyname_r): Likewise.
+            * sysdeps/posix/utime.c (utime): Likewise.
+            * sysdeps/powerpc/fpu/s_isnan.c (__isnan): Likewise.
+            * sysdeps/powerpc/nptl/pthread_spin_lock.c (pthread_spin_lock):
+            Likewise.
+            * sysdeps/powerpc/nptl/pthread_spin_trylock.c
+            (pthread_spin_trylock): Likewise.
+            * sysdeps/pthread/aio_error.c (aio_error): Likewise.
+            * sysdeps/pthread/aio_read.c (aio_read): Likewise.
+            * sysdeps/pthread/aio_read64.c (aio_read64): Likewise.
+            * sysdeps/pthread/aio_write.c (aio_write): Likewise.
+            * sysdeps/pthread/aio_write64.c (aio_write64): Likewise.
+            * sysdeps/pthread/flockfile.c (__flockfile): Likewise.
+            * sysdeps/pthread/ftrylockfile.c (__ftrylockfile): Likewise.
+            * sysdeps/pthread/funlockfile.c (__funlockfile): Likewise.
+            * sysdeps/pthread/timer_create.c (timer_create): Likewise.
+            * sysdeps/pthread/timer_getoverr.c (timer_getoverrun): Likewise.
+            * sysdeps/pthread/timer_gettime.c (timer_gettime): Likewise.
+            * sysdeps/s390/ffs.c (__ffs): Likewise.
+            * sysdeps/s390/nptl/pthread_spin_lock.c (pthread_spin_lock):
+            Likewise.
+            * sysdeps/s390/nptl/pthread_spin_trylock.c (pthread_spin_trylock):
+            Likewise.
+            * sysdeps/sh/nptl/pthread_spin_lock.c (pthread_spin_lock):
+            Likewise.
+            * sysdeps/sparc/nptl/pthread_barrier_destroy.c
+            (pthread_barrier_destroy): Likewise.
+            * sysdeps/sparc/nptl/pthread_barrier_wait.c
+            (__pthread_barrier_wait): Likewise.
+            * sysdeps/sparc/sparc32/e_sqrt.c (__ieee754_sqrt): Likewise.
+            * sysdeps/sparc/sparc32/pthread_barrier_wait.c
+            (__pthread_barrier_wait): Likewise.
+            * sysdeps/sparc/sparc32/sem_init.c (__old_sem_init): Likewise.
+            * sysdeps/tile/memcmp.c (memcmp_common_alignment): Likewise.
+            (memcmp_not_common_alignment): Likewise.
+            (MEMCMP): Likewise.
+            * sysdeps/tile/wordcopy.c (_wordcopy_fwd_aligned): Likewise.
+            (_wordcopy_fwd_dest_aligned): Likewise.
+            (_wordcopy_bwd_aligned): Likewise.
+            (_wordcopy_bwd_dest_aligned): Likewise.
+            * sysdeps/unix/bsd/ftime.c (ftime): Likewise.
+            * sysdeps/unix/bsd/gtty.c (gtty): Likewise.
+            * sysdeps/unix/bsd/stty.c (stty): Likewise.
+            * sysdeps/unix/bsd/tcflow.c (tcflow): Likewise.
+            * sysdeps/unix/bsd/tcflush.c (tcflush): Likewise.
+            * sysdeps/unix/bsd/tcgetattr.c (__tcgetattr): Likewise.
+            * sysdeps/unix/bsd/tcgetpgrp.c (tcgetpgrp): Likewise.
+            * sysdeps/unix/bsd/tcsendbrk.c (tcsendbreak): Likewise.
+            * sysdeps/unix/bsd/tcsetattr.c (tcsetattr): Likewise.
+            * sysdeps/unix/bsd/tcsetpgrp.c (tcsetpgrp): Likewise.
+            * sysdeps/unix/bsd/ualarm.c (ualarm): Likewise.
+            * sysdeps/unix/bsd/wait3.c (__wait3): Likewise.
+            * sysdeps/unix/getlogin_r.c (__getlogin_r): Likewise.
+            * sysdeps/unix/sockatmark.c (sockatmark): Likewise.
+            * sysdeps/unix/stime.c (stime): Likewise.
+            * sysdeps/unix/sysv/linux/_exit.c (_exit): Likewise.
+            * sysdeps/unix/sysv/linux/aio_sigqueue.c (__aio_sigqueue):
+            Likewise.  Use internal_function.
+            * sysdeps/unix/sysv/linux/arm/sigaction.c (__libc_sigaction):
+            Convert to prototype-style function definition.
+            * sysdeps/unix/sysv/linux/faccessat.c (faccessat): Likewise.
+            * sysdeps/unix/sysv/linux/fchmodat.c (fchmodat): Likewise.
+            * sysdeps/unix/sysv/linux/fpathconf.c (__fpathconf): Likewise.
+            * sysdeps/unix/sysv/linux/gai_sigqueue.c (__gai_sigqueue):
+            Likewise.  Use internal_function.
+            * sysdeps/unix/sysv/linux/gethostid.c (sethostid): Convert to
+            prototype-style function definition
+            * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid):
+            Likewise.
+            (__getlogin_r): Likewise.
+            * sysdeps/unix/sysv/linux/getpt.c (__posix_openpt): Likewise.
+            * sysdeps/unix/sysv/linux/hppa/pthread_cond_broadcast.c
+            (__pthread_cond_broadcast): Likewise.
+            * sysdeps/unix/sysv/linux/hppa/pthread_cond_destroy.c
+            (__pthread_cond_destroy): Likewise.
+            * sysdeps/unix/sysv/linux/hppa/pthread_cond_init.c
+            (__pthread_cond_init): Likewise.
+            * sysdeps/unix/sysv/linux/hppa/pthread_cond_signal.c
+            (__pthread_cond_signal): Likewise.
+            * sysdeps/unix/sysv/linux/hppa/pthread_cond_wait.c
+            (__pthread_cond_wait): Likewise.
+            * sysdeps/unix/sysv/linux/i386/getmsg.c (getmsg): Likewise.
+            * sysdeps/unix/sysv/linux/i386/setegid.c (setegid): Likewise.
+            * sysdeps/unix/sysv/linux/ia64/sigaction.c (__libc_sigaction):
+            Likewise.
+            * sysdeps/unix/sysv/linux/ia64/sigpending.c (sigpending):
+            Likewise.
+            * sysdeps/unix/sysv/linux/ia64/sigprocmask.c (__sigprocmask):
+            Likewise.
+            * sysdeps/unix/sysv/linux/mips/sigaction.c (__libc_sigaction):
+            Likewise.
+            * sysdeps/unix/sysv/linux/msgget.c (msgget): Likewise.
+            * sysdeps/unix/sysv/linux/powerpc/powerpc32/ftruncate64.c
+            (__ftruncate64): Likewise.
+            * sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c
+            (truncate64): Likewise.
+            * sysdeps/unix/sysv/linux/pt-raise.c (raise): Likewise.
+            * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
+            (pthread_getcpuclockid): Likewise.
+            * sysdeps/unix/sysv/linux/pthread_getname.c (pthread_getname_np):
+            Likewise.
+            * sysdeps/unix/sysv/linux/pthread_setname.c (pthread_setname_np):
+            Likewise.
+            * sysdeps/unix/sysv/linux/pthread_sigmask.c (pthread_sigmask):
+            Likewise.
+            * sysdeps/unix/sysv/linux/pthread_sigqueue.c (pthread_sigqueue):
+            Likewise.
+            * sysdeps/unix/sysv/linux/raise.c (raise): Likewise.
+            * sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c
+            (__libc_sigaction): Likewise.
+            * sysdeps/unix/sysv/linux/s390/s390-64/sigpending.c (sigpending):
+            Likewise.
+            * sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c
+            (__sigprocmask): Likewise.
+            * sysdeps/unix/sysv/linux/semget.c (semget): Likewise.
+            * sysdeps/unix/sysv/linux/semop.c (semop): Likewise.
+            * sysdeps/unix/sysv/linux/setrlimit64.c (setrlimit64): Likewise.
+            * sysdeps/unix/sysv/linux/shmat.c (shmat): Likewise.
+            * sysdeps/unix/sysv/linux/shmdt.c (shmdt): Likewise.
+            * sysdeps/unix/sysv/linux/shmget.c (shmget): Likewise.
+            * sysdeps/unix/sysv/linux/sigaction.c (__libc_sigaction):
+            Likewise.
+            * sysdeps/unix/sysv/linux/sigpending.c (sigpending): Likewise.
+            * sysdeps/unix/sysv/linux/sigprocmask.c (__sigprocmask): Likewise.
+            * sysdeps/unix/sysv/linux/sigqueue.c (__sigqueue): Likewise.
+            * sysdeps/unix/sysv/linux/sigstack.c (sigstack): Likewise.
+            * sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c (sigpending):
+            Likewise.
+            * sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
+            (__sigprocmask): Likewise.
+            * sysdeps/unix/sysv/linux/speed.c (cfgetospeed): Likewise.
+            (cfgetispeed): Likewise.
+            (cfsetospeed): Likewise.
+            (cfsetispeed): Likewise.
+            * sysdeps/unix/sysv/linux/tcflow.c (tcflow): Likewise.
+            * sysdeps/unix/sysv/linux/tcflush.c (tcflush): Likewise.
+            * sysdeps/unix/sysv/linux/tcgetattr.c (__tcgetattr): Likewise.
+            * sysdeps/unix/sysv/linux/tcsetattr.c (tcsetattr): Likewise.
+            * sysdeps/unix/sysv/linux/time.c (time): Likewise.
+            * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Likewise.
+            * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Likewise.
+            * sysdeps/unix/sysv/linux/timer_getoverr.c (timer_getoverrun):
+            Likewise.
+            * sysdeps/unix/sysv/linux/timer_gettime.c (timer_gettime):
+            Likewise.
+            * sysdeps/unix/sysv/linux/x86_64/sigpending.c (sigpending):
+            Likewise.
+            * sysdeps/unix/sysv/linux/x86_64/sigprocmask.c (__sigprocmask):
+            Likewise.
+            * sysdeps/x86_64/backtrace.c (__backtrace): Likewise.
+
+Conflicts:
+	sysdeps/mach/hurd/getlogin_r.c
+	  (Missing backport of fix for swbz#18527.)
+	sysdeps/mach/hurd/rewinddir.c
+	sysdeps/posix/rewinddir.c
+	  (Missing backport of fix for swbz#17584.)
+	sysdeps/powerpc/nptl/pthread_spin_lock.c
+	  (Applied to nptl/sysdeps/powerpc/pthread_spin_lock.c.)
+	sysdeps/powerpc/nptl/pthread_spin_trylock.c
+	  (Applied to nptl/sysdeps/powerpc/pthread_spin_trylock.c.)
+	sysdeps/pthread/aio_error.c
+	  (Missing backport of 1cdf2ea1fa44bae7d400b602399e30d490173bf3,
+	  Fix aio_error thread-safety.)
+	sysdeps/pthread/flockfile.c
+	  (Applied to nptl/sysdeps/pthread/flockfile.c.)
+	sysdeps/pthread/ftrylockfile.c
+	  (Applied to nptl/sysdeps/pthread/ftrylockfile.c.)
+	sysdeps/pthread/funlockfile.c
+	  (Applied to nptl/sysdeps/pthread/funlockfile.c.)
+	sysdeps/pthread/timer_create.c
+	  (Applied to nptl/sysdeps/pthread/timer_create.c.)
+	sysdeps/pthread/timer_getoverr.c
+	  (Applied to nptl/sysdeps/pthread/timer_getoverr.c.)
+	sysdeps/pthread/timer_gettime.c
+	  (Applied to nptl/sysdeps/pthread/timer_gettime.c.)
+	sysdeps/s390/nptl/pthread_spin_lock.c
+	  (Applied to nptl/sysdeps/s390/pthread_spin_lock.c.)
+	sysdeps/s390/nptl/pthread_spin_trylock.c
+	  (Applied to nptl/sysdeps/s390/pthread_spin_trylock.c.)
+	sysdeps/sh/nptl/pthread_spin_lock.c
+	  (Applied to nptl/sysdeps/sh/pthread_spin_lock.c.)
+	sysdeps/sparc/nptl/pthread_barrier_destroy.c
+	  (Applied to
+	  nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c.)
+	sysdeps/sparc/nptl/pthread_barrier_wait.c
+	  (Applied to
+	  nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_wait.c.)
+	sysdeps/sparc/sparc32/pthread_barrier_wait.c
+	  (Applied to
+	  nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c.)
+	sysdeps/sparc/sparc32/sem_init.c
+	  (Applied to nptl/sysdeps/unix/sysv/linux/sparc/sem_init.)
+	sysdeps/tile/memcmp.c
+	  (Missing backport of d9cd52e64d7b6b0fd56566de87c826cb6fe3677d,
+	  tile: optimize memcmp; file removed manually.)
+	sysdeps/unix/getlogin_r.c
+	sysdeps/unix/sysv/linux/getlogin_r.c
+          (Missing backport of fix for swbz#18527.)
+	sysdeps/unix/sysv/linux/hppa/pthread_cond_broadcast.c
+	sysdeps/unix/sysv/linux/hppa/pthread_cond_destroy.c
+	sysdeps/unix/sysv/linux/hppa/pthread_cond_init.c
+	sysdeps/unix/sysv/linux/hppa/pthread_cond_signal.c
+	sysdeps/unix/sysv/linux/hppa/pthread_cond_wait.c
+	  (Missing backport of d83f0734e1522a5e5ea2494565f4dcd25a86d6a0,
+	  HPPA: Transition to new non-addon NPTL; files removed manually.)
+	sysdeps/unix/sysv/linux/pt-raise.c
+	  (Applied to nptl/sysdeps/unix/sysv/linux/pt-raise.c.)
+	sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
+	  (Applied to nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c.)
+	sysdeps/unix/sysv/linux/pthread_getname.c
+	  (Applied to nptl/sysdeps/unix/sysv/linux/pthread_getname.c.)
+	sysdeps/unix/sysv/linux/pthread_setname.c
+	  (Applied to nptl/sysdeps/unix/sysv/linux/pthread_setname.c.)
+	sysdeps/unix/sysv/linux/pthread_sigmask.c
+	  (Applied to nptl/sysdeps/pthread/pthread_sigmask.c.)
+	sysdeps/unix/sysv/linux/pthread_sigqueue.c
+	  (Applied to nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c.)
+	sysdeps/unix/sysv/linux/raise.c
+	  (Applied to nptl/sysdeps/unix/sysv/linux/raise.c.)
+	sysdeps/unix/sysv/linux/timer_create.c
+	  (Applied to nptl/sysdeps/unix/sysv/linux/timer_create.c.)
+	sysdeps/unix/sysv/linux/timer_delete.c
+	  (Applied to nptl/sysdeps/unix/sysv/linux/timer_delete.c.)
+	sysdeps/unix/sysv/linux/timer_getoverr.c
+	  (Applied to nptl/sysdeps/unix/sysv/linux/timer_getoverr.c.)
+	sysdeps/unix/sysv/linux/timer_gettime.c
+	  (Applied to nptl/sysdeps/unix/sysv/linux/timer_gettime.c.)
+
+diff --git a/nptl/sysdeps/powerpc/pthread_spin_lock.c b/nptl/sysdeps/powerpc/pthread_spin_lock.c
+index 629dad50cdb753a1..f684325c8e09e06e 100644
+--- a/nptl/sysdeps/powerpc/pthread_spin_lock.c
++++ b/nptl/sysdeps/powerpc/pthread_spin_lock.c
+@@ -19,8 +19,7 @@
+ #include "pthreadP.h"
+ 
+ int
+-pthread_spin_lock (lock)
+-     pthread_spinlock_t *lock;
++pthread_spin_lock (pthread_spinlock_t *lock)
+ {
+   unsigned int __tmp;
+ 
+diff --git a/nptl/sysdeps/powerpc/pthread_spin_trylock.c b/nptl/sysdeps/powerpc/pthread_spin_trylock.c
+index a7956f8fce4109aa..aeb13416db48440e 100644
+--- a/nptl/sysdeps/powerpc/pthread_spin_trylock.c
++++ b/nptl/sysdeps/powerpc/pthread_spin_trylock.c
+@@ -20,8 +20,7 @@
+ #include "pthreadP.h"
+ 
+ int
+-pthread_spin_trylock (lock)
+-     pthread_spinlock_t *lock;
++pthread_spin_trylock (pthread_spinlock_t *lock)
+ {
+   unsigned int old;
+   int err = EBUSY;
+diff --git a/nptl/sysdeps/pthread/flockfile.c b/nptl/sysdeps/pthread/flockfile.c
+index 538e368a082dcec5..1e7d1f0133ed4f40 100644
+--- a/nptl/sysdeps/pthread/flockfile.c
++++ b/nptl/sysdeps/pthread/flockfile.c
+@@ -23,8 +23,7 @@
+ 
+ 
+ void
+-__flockfile (stream)
+-     FILE *stream;
++__flockfile (FILE *stream)
+ {
+   _IO_lock_lock (*stream->_lock);
+ }
+diff --git a/nptl/sysdeps/pthread/ftrylockfile.c b/nptl/sysdeps/pthread/ftrylockfile.c
+index d814258d893afd85..cd78c2812800b223 100644
+--- a/nptl/sysdeps/pthread/ftrylockfile.c
++++ b/nptl/sysdeps/pthread/ftrylockfile.c
+@@ -23,8 +23,7 @@
+ 
+ 
+ int
+-__ftrylockfile (stream)
+-     FILE *stream;
++__ftrylockfile (FILE *stream)
+ {
+   return _IO_lock_trylock (*stream->_lock);
+ }
+diff --git a/nptl/sysdeps/pthread/funlockfile.c b/nptl/sysdeps/pthread/funlockfile.c
+index f45479936741a3ea..51530863671da481 100644
+--- a/nptl/sysdeps/pthread/funlockfile.c
++++ b/nptl/sysdeps/pthread/funlockfile.c
+@@ -23,8 +23,7 @@
+ 
+ 
+ void
+-__funlockfile (stream)
+-     FILE *stream;
++__funlockfile (FILE *stream)
+ {
+   _IO_lock_unlock (*stream->_lock);
+ }
+diff --git a/nptl/sysdeps/pthread/pthread_sigmask.c b/nptl/sysdeps/pthread/pthread_sigmask.c
+index 8db7d18f4d9c2f3f..83d7d881e98d6af3 100644
+--- a/nptl/sysdeps/pthread/pthread_sigmask.c
++++ b/nptl/sysdeps/pthread/pthread_sigmask.c
+@@ -23,10 +23,7 @@
+ 
+ 
+ int
+-pthread_sigmask (how, newmask, oldmask)
+-     int how;
+-     const sigset_t *newmask;
+-     sigset_t *oldmask;
++pthread_sigmask (int how, const sigset_t *newmask, sigset_t *oldmask)
+ {
+   sigset_t local_newmask;
+ 
+diff --git a/nptl/sysdeps/pthread/timer_create.c b/nptl/sysdeps/pthread/timer_create.c
+index f61c5a3eb6d391b7..90770f121fc2c0fc 100644
+--- a/nptl/sysdeps/pthread/timer_create.c
++++ b/nptl/sysdeps/pthread/timer_create.c
+@@ -27,10 +27,7 @@
+ 
+ /* Create new per-process timer using CLOCK.  */
+ int
+-timer_create (clock_id, evp, timerid)
+-     clockid_t clock_id;
+-     struct sigevent *evp;
+-     timer_t *timerid;
++timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
+ {
+   int retval = -1;
+   struct timer_node *newtimer = NULL;
+diff --git a/nptl/sysdeps/pthread/timer_getoverr.c b/nptl/sysdeps/pthread/timer_getoverr.c
+index 6d753e30d6839165..010fa73539bae653 100644
+--- a/nptl/sysdeps/pthread/timer_getoverr.c
++++ b/nptl/sysdeps/pthread/timer_getoverr.c
+@@ -25,8 +25,7 @@
+ 
+ /* Get expiration overrun for timer TIMERID.  */
+ int
+-timer_getoverrun (timerid)
+-     timer_t timerid;
++timer_getoverrun (timer_t timerid)
+ {
+   struct timer_node *timer;
+   int retval = -1;
+diff --git a/nptl/sysdeps/pthread/timer_gettime.c b/nptl/sysdeps/pthread/timer_gettime.c
+index 6bd2b84e2d89f069..b48cc8ebf615bf8c 100644
+--- a/nptl/sysdeps/pthread/timer_gettime.c
++++ b/nptl/sysdeps/pthread/timer_gettime.c
+@@ -25,9 +25,7 @@
+ 
+ /* Get current value of timer TIMERID and store it in VLAUE.  */
+ int
+-timer_gettime (timerid, value)
+-     timer_t timerid;
+-     struct itimerspec *value;
++timer_gettime (timer_t timerid, struct itimerspec *value)
+ {
+   struct timer_node *timer;
+   struct timespec now, expiry;
+diff --git a/nptl/sysdeps/s390/pthread_spin_lock.c b/nptl/sysdeps/s390/pthread_spin_lock.c
+index 17c405a4cce18651..e3d5c1153f387475 100644
+--- a/nptl/sysdeps/s390/pthread_spin_lock.c
++++ b/nptl/sysdeps/s390/pthread_spin_lock.c
+@@ -19,8 +19,7 @@
+ #include "pthreadP.h"
+ 
+ int
+-pthread_spin_lock (lock)
+-     pthread_spinlock_t *lock;
++pthread_spin_lock (pthread_spinlock_t *lock)
+ {
+   int oldval;
+ 
+diff --git a/nptl/sysdeps/s390/pthread_spin_trylock.c b/nptl/sysdeps/s390/pthread_spin_trylock.c
+index 4a4e2cb1e7b73f65..f9e307882ab75651 100644
+--- a/nptl/sysdeps/s390/pthread_spin_trylock.c
++++ b/nptl/sysdeps/s390/pthread_spin_trylock.c
+@@ -20,8 +20,7 @@
+ #include "pthreadP.h"
+ 
+ int
+-pthread_spin_trylock (lock)
+-     pthread_spinlock_t *lock;
++pthread_spin_trylock (pthread_spinlock_t *lock)
+ {
+   int old;
+ 
+diff --git a/nptl/sysdeps/sh/pthread_spin_lock.c b/nptl/sysdeps/sh/pthread_spin_lock.c
+index 798c124ebbee8a98..48d3fc7eb495ea98 100644
+--- a/nptl/sysdeps/sh/pthread_spin_lock.c
++++ b/nptl/sysdeps/sh/pthread_spin_lock.c
+@@ -18,8 +18,7 @@
+ #include "pthreadP.h"
+ 
+ int
+-pthread_spin_lock (lock)
+-     pthread_spinlock_t *lock;
++pthread_spin_lock (pthread_spinlock_t *lock)
+ {
+   unsigned int val;
+ 
+diff --git a/nptl/sysdeps/unix/sysv/linux/pt-raise.c b/nptl/sysdeps/unix/sysv/linux/pt-raise.c
+index 71face45acaacc52..519916a438c96874 100644
+--- a/nptl/sysdeps/unix/sysv/linux/pt-raise.c
++++ b/nptl/sysdeps/unix/sysv/linux/pt-raise.c
+@@ -24,8 +24,7 @@
+ 
+ 
+ int
+-raise (sig)
+-     int sig;
++raise (int sig)
+ {
+   /* raise is an async-safe function.  It could be called while the
+      fork function temporarily invalidated the PID field.  Adjust for
+diff --git a/nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c b/nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
+index 368f2c460517db4f..f2321e056f51e39a 100644
+--- a/nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
++++ b/nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
+@@ -25,9 +25,7 @@
+ 
+ 
+ int
+-pthread_getcpuclockid (threadid, clockid)
+-     pthread_t threadid;
+-     clockid_t *clockid;
++pthread_getcpuclockid (pthread_t threadid, clockid_t *clockid)
+ {
+   struct pthread *pd = (struct pthread *) threadid;
+ 
+diff --git a/nptl/sysdeps/unix/sysv/linux/pthread_getname.c b/nptl/sysdeps/unix/sysv/linux/pthread_getname.c
+index 2a41e1f94a422cc0..60ed6bf170804cdd 100644
+--- a/nptl/sysdeps/unix/sysv/linux/pthread_getname.c
++++ b/nptl/sysdeps/unix/sysv/linux/pthread_getname.c
+@@ -28,10 +28,7 @@
+ 
+ 
+ int
+-pthread_getname_np (th, buf, len)
+-     pthread_t th;
+-     char *buf;
+-     size_t len;
++pthread_getname_np (pthread_t th, char *buf, size_t len)
+ {
+   const struct pthread *pd = (const struct pthread *) th;
+ 
+diff --git a/nptl/sysdeps/unix/sysv/linux/pthread_setname.c b/nptl/sysdeps/unix/sysv/linux/pthread_setname.c
+index 6ea406329bc6b6c1..7c945ac79da5491c 100644
+--- a/nptl/sysdeps/unix/sysv/linux/pthread_setname.c
++++ b/nptl/sysdeps/unix/sysv/linux/pthread_setname.c
+@@ -28,9 +28,7 @@
+ 
+ 
+ int
+-pthread_setname_np (th, name)
+-     pthread_t th;
+-     const char *name;
++pthread_setname_np (pthread_t th, const char *name)
+ {
+   const struct pthread *pd = (const struct pthread *) th;
+ 
+diff --git a/nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c b/nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c
+index 2c0c25773733935f..dc12bb3749333ebc 100644
+--- a/nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c
++++ b/nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c
+@@ -27,10 +27,7 @@
+ 
+ 
+ int
+-pthread_sigqueue (threadid, signo, value)
+-     pthread_t threadid;
+-     int signo;
+-     const union sigval value;
++pthread_sigqueue (pthread_t threadid, int signo, const union sigval value)
+ {
+ #ifdef __NR_rt_tgsigqueueinfo
+   struct pthread *pd = (struct pthread *) threadid;
+diff --git a/nptl/sysdeps/unix/sysv/linux/raise.c b/nptl/sysdeps/unix/sysv/linux/raise.c
+index 268ab46d3f3805b8..378f03c7f2fc0195 100644
+--- a/nptl/sysdeps/unix/sysv/linux/raise.c
++++ b/nptl/sysdeps/unix/sysv/linux/raise.c
+@@ -25,8 +25,7 @@
+ 
+ 
+ int
+-raise (sig)
+-     int sig;
++raise (int sig)
+ {
+   struct pthread *pd = THREAD_SELF;
+   pid_t pid = THREAD_GETMEM (pd, pid);
+diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c b/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c
+index c260d2aa0e6fc366..d0c07b939013d417 100644
+--- a/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c
++++ b/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c
+@@ -21,8 +21,7 @@
+ #include <lowlevellock.h>
+ 
+ int
+-pthread_barrier_destroy (barrier)
+-     pthread_barrier_t *barrier;
++pthread_barrier_destroy (pthread_barrier_t *barrier)
+ {
+   union sparc_pthread_barrier *ibarrier;
+   int result = EBUSY;
+diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_wait.c b/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_wait.c
+index 8c5d9a9837360cdd..6ad85d7e232d5701 100644
+--- a/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_wait.c
++++ b/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_wait.c
+@@ -23,8 +23,7 @@
+ 
+ /* Wait on barrier.  */
+ int
+-pthread_barrier_wait (barrier)
+-     pthread_barrier_t *barrier;
++pthread_barrier_wait (pthread_barrier_t *barrier)
+ {
+   union sparc_pthread_barrier *ibarrier
+     = (union sparc_pthread_barrier *) barrier;
+diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c b/nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c
+index aef2cc52c0daf0ad..ebbcca15cd7a476a 100644
+--- a/nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c
++++ b/nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c
+@@ -60,10 +60,7 @@ versioned_symbol (libpthread, __new_sem_init, sem_init, GLIBC_2_1);
+ #if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
+ int
+ attribute_compat_text_section
+-__old_sem_init (sem, pshared, value)
+-     sem_t *sem;
+-     int pshared;
+-     unsigned int value;
++__old_sem_init (sem_t *sem, int pshared, unsigned int value)
+ {
+   /* Parameter sanity check.  */
+   if (__builtin_expect (value > SEM_VALUE_MAX, 0))
+diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c
+index 157f34973984a4eb..9e8d993ad7f1d5a0 100644
+--- a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c
++++ b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c
+@@ -23,8 +23,7 @@
+ 
+ /* Wait on barrier.  */
+ int
+-pthread_barrier_wait (barrier)
+-     pthread_barrier_t *barrier;
++pthread_barrier_wait (pthread_barrier_t *barrier)
+ {
+   union sparc_pthread_barrier *ibarrier
+     = (union sparc_pthread_barrier *) barrier;
+diff --git a/nptl/sysdeps/unix/sysv/linux/timer_create.c b/nptl/sysdeps/unix/sysv/linux/timer_create.c
+index c2865fb4f3f1729e..5a2cacb73c34bd4f 100644
+--- a/nptl/sysdeps/unix/sysv/linux/timer_create.c
++++ b/nptl/sysdeps/unix/sysv/linux/timer_create.c
+@@ -36,10 +36,7 @@
+ 
+ 
+ int
+-timer_create (clock_id, evp, timerid)
+-     clockid_t clock_id;
+-     struct sigevent *evp;
+-     timer_t *timerid;
++timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid)
+ {
+ #undef timer_create
+   {
+diff --git a/nptl/sysdeps/unix/sysv/linux/timer_delete.c b/nptl/sysdeps/unix/sysv/linux/timer_delete.c
+index 598be8343ef6edf1..f76d9eadd7d13a0a 100644
+--- a/nptl/sysdeps/unix/sysv/linux/timer_delete.c
++++ b/nptl/sysdeps/unix/sysv/linux/timer_delete.c
+@@ -30,8 +30,7 @@
+ 
+ 
+ int
+-timer_delete (timerid)
+-     timer_t timerid;
++timer_delete (timer_t timerid)
+ {
+ #undef timer_delete
+   struct timer *kt = (struct timer *) timerid;
+diff --git a/nptl/sysdeps/unix/sysv/linux/timer_getoverr.c b/nptl/sysdeps/unix/sysv/linux/timer_getoverr.c
+index 6d48d4c14df23d6c..b80715e995918868 100644
+--- a/nptl/sysdeps/unix/sysv/linux/timer_getoverr.c
++++ b/nptl/sysdeps/unix/sysv/linux/timer_getoverr.c
+@@ -29,8 +29,7 @@
+ 
+ 
+ int
+-timer_getoverrun (timerid)
+-     timer_t timerid;
++timer_getoverrun (timer_t timerid)
+ {
+ #undef timer_getoverrun
+   struct timer *kt = (struct timer *) timerid;
+diff --git a/nptl/sysdeps/unix/sysv/linux/timer_gettime.c b/nptl/sysdeps/unix/sysv/linux/timer_gettime.c
+index 6d9933a99c2ccb2b..deee74a238e91aca 100644
+--- a/nptl/sysdeps/unix/sysv/linux/timer_gettime.c
++++ b/nptl/sysdeps/unix/sysv/linux/timer_gettime.c
+@@ -30,9 +30,7 @@
+ 
+ 
+ int
+-timer_gettime (timerid, value)
+-     timer_t timerid;
+-     struct itimerspec *value;
++timer_gettime (timer_t timerid, struct itimerspec *value)
+ {
+ #undef timer_gettime
+   struct timer *kt = (struct timer *) timerid;
+diff --git a/sysdeps/arm/backtrace.c b/sysdeps/arm/backtrace.c
+index 3d839e628c1ff89b..ce7a0ceda42486e5 100644
+--- a/sysdeps/arm/backtrace.c
++++ b/sysdeps/arm/backtrace.c
+@@ -87,9 +87,7 @@ backtrace_helper (struct _Unwind_Context *ctx, void *a)
+ }
+ 
+ int
+-__backtrace (array, size)
+-     void **array;
+-     int size;
++__backtrace (void **array, int size)
+ {
+   struct trace_arg arg = { .array = array, .size = size, .cnt = -1 };
+ #ifdef SHARED
+diff --git a/sysdeps/i386/backtrace.c b/sysdeps/i386/backtrace.c
+index 13c7856249a2a1ea..c226814c17790e31 100644
+--- a/sysdeps/i386/backtrace.c
++++ b/sysdeps/i386/backtrace.c
+@@ -109,9 +109,7 @@ struct layout
+ 
+ 
+ int
+-__backtrace (array, size)
+-     void **array;
+-     int size;
++__backtrace (void **array, int size)
+ {
+   struct trace_arg arg = { .array = array, .size = size, .cnt = -1 };
+ #ifdef SHARED
+diff --git a/sysdeps/i386/ffs.c b/sysdeps/i386/ffs.c
+index f53bdd1c160cd800..35fa6e91f0628269 100644
+--- a/sysdeps/i386/ffs.c
++++ b/sysdeps/i386/ffs.c
+@@ -26,8 +26,7 @@
+ #ifdef	__GNUC__
+ 
+ int
+-__ffs (x)
+-     int x;
++__ffs (int x)
+ {
+   int cnt;
+   int tmp;
+diff --git a/sysdeps/i386/i686/ffs.c b/sysdeps/i386/i686/ffs.c
+index 452adbf288bdd342..aca1c5b69402877a 100644
+--- a/sysdeps/i386/i686/ffs.c
++++ b/sysdeps/i386/i686/ffs.c
+@@ -26,8 +26,7 @@
+ #ifdef	__GNUC__
+ 
+ int
+-__ffs (x)
+-     int x;
++__ffs (int x)
+ {
+   int cnt;
+   int tmp;
+diff --git a/sysdeps/ia64/nptl/pthread_spin_lock.c b/sysdeps/ia64/nptl/pthread_spin_lock.c
+index 42b37882f5cb3da5..cfe71160c5716bf0 100644
+--- a/sysdeps/ia64/nptl/pthread_spin_lock.c
++++ b/sysdeps/ia64/nptl/pthread_spin_lock.c
+@@ -19,8 +19,7 @@
+ #include "pthreadP.h"
+ 
+ int
+-pthread_spin_lock (lock)
+-     pthread_spinlock_t *lock;
++pthread_spin_lock (pthread_spinlock_t *lock)
+ {
+   int *p = (int *) lock;
+ 
+diff --git a/sysdeps/ia64/nptl/pthread_spin_trylock.c b/sysdeps/ia64/nptl/pthread_spin_trylock.c
+index 9efd3b586be3bbe2..020d79e4aae8788d 100644
+--- a/sysdeps/ia64/nptl/pthread_spin_trylock.c
++++ b/sysdeps/ia64/nptl/pthread_spin_trylock.c
+@@ -20,8 +20,7 @@
+ #include "pthreadP.h"
+ 
+ int
+-pthread_spin_trylock (lock)
+-     pthread_spinlock_t *lock;
++pthread_spin_trylock (pthread_spinlock_t *lock)
+ {
+   return __sync_val_compare_and_swap ((int *) lock, 0, 1) == 0 ? 0 : EBUSY;
+ }
+diff --git a/sysdeps/ieee754/ldbl-128/e_log2l.c b/sysdeps/ieee754/ldbl-128/e_log2l.c
+index 6c7da0e44b9e1997..ebb75a0754feed8b 100644
+--- a/sysdeps/ieee754/ldbl-128/e_log2l.c
++++ b/sysdeps/ieee754/ldbl-128/e_log2l.c
+@@ -171,8 +171,7 @@ deval (long double x, const long double *p, int n)
+ 
+ 
+ long double
+-__ieee754_log2l (x)
+-     long double x;
++__ieee754_log2l (long double x)
+ {
+   long double z;
+   long double y;
+diff --git a/sysdeps/ieee754/ldbl-128ibm/e_log2l.c b/sysdeps/ieee754/ldbl-128ibm/e_log2l.c
+index 323ded0c0fa5e2e1..ad05678057f9072b 100644
+--- a/sysdeps/ieee754/ldbl-128ibm/e_log2l.c
++++ b/sysdeps/ieee754/ldbl-128ibm/e_log2l.c
+@@ -171,8 +171,7 @@ deval (long double x, const long double *p, int n)
+ 
+ 
+ long double
+-__ieee754_log2l (x)
+-     long double x;
++__ieee754_log2l (long double x)
+ {
+   long double z;
+   long double y;
+diff --git a/sysdeps/m68k/ffs.c b/sysdeps/m68k/ffs.c
+index 3f45a03eaf624db1..2625596ed561feb6 100644
+--- a/sysdeps/m68k/ffs.c
++++ b/sysdeps/m68k/ffs.c
+@@ -26,8 +26,7 @@
+ #if	defined (__GNUC__) && defined (__mc68020__)
+ 
+ int
+-__ffs (x)
+-     int x;
++__ffs (int x)
+ {
+   int cnt;
+ 
+diff --git a/sysdeps/m68k/m680x0/fpu/e_acos.c b/sysdeps/m68k/m680x0/fpu/e_acos.c
+index f8a0a352a12260f0..94057e55be048a5b 100644
+--- a/sysdeps/m68k/m680x0/fpu/e_acos.c
++++ b/sysdeps/m68k/m680x0/fpu/e_acos.c
+@@ -28,8 +28,7 @@
+ #endif
+ 
+ float_type
+-FUNC (x)
+-     float_type x;
++FUNC (float_type x)
+ {
+   return __m81_u(FUNC)(x);
+ }
+diff --git a/sysdeps/m68k/m680x0/fpu/e_fmod.c b/sysdeps/m68k/m680x0/fpu/e_fmod.c
+index 671e3b83a404131d..db997ff08a88bded 100644
+--- a/sysdeps/m68k/m680x0/fpu/e_fmod.c
++++ b/sysdeps/m68k/m680x0/fpu/e_fmod.c
+@@ -28,9 +28,7 @@
+ #endif
+ 
+ float_type
+-FUNC (x, y)
+-     float_type x;
+-     float_type y;
++FUNC (float_type x, float_type y)
+ {
+   return __m81_u(FUNC)(x, y);
+ }
+diff --git a/sysdeps/mach/adjtime.c b/sysdeps/mach/adjtime.c
+index dc043bbe085689af..3f31861cf5849068 100644
+--- a/sysdeps/mach/adjtime.c
++++ b/sysdeps/mach/adjtime.c
+@@ -24,9 +24,7 @@
+    of time adjustment remaining to be done from the last `__adjtime' call.
+    This call is restricted to the super-user.  */
+ int
+-__adjtime (delta, olddelta)
+-     const struct timeval *delta;
+-     struct timeval *olddelta;
++__adjtime (const struct timeval *delta, struct timeval *olddelta)
+ {
+   error_t err;
+   mach_port_t hostpriv;
+diff --git a/sysdeps/mach/gettimeofday.c b/sysdeps/mach/gettimeofday.c
+index 293a77595b417dfa..f1d783c53dfce0b8 100644
+--- a/sysdeps/mach/gettimeofday.c
++++ b/sysdeps/mach/gettimeofday.c
+@@ -24,9 +24,7 @@
+    putting it into *TV and *TZ.  If TZ is NULL, *TZ is not filled.
+    Returns 0 on success, -1 on errors.  */
+ int
+-__gettimeofday (tv, tz)
+-     struct timeval *tv;
+-     struct timezone *tz;
++__gettimeofday (struct timeval *tv, struct timezone *tz)
+ {
+   kern_return_t err;
+ 
+diff --git a/sysdeps/mach/hurd/_exit.c b/sysdeps/mach/hurd/_exit.c
+index 667c57204877d7de..272dad329aaf9e6e 100644
+--- a/sysdeps/mach/hurd/_exit.c
++++ b/sysdeps/mach/hurd/_exit.c
+@@ -46,8 +46,7 @@ _hurd_exit (int status)
+ }
+ 
+ void
+-_exit (status)
+-     int status;
++_exit (int status)
+ {
+   _hurd_exit (W_EXITCODE (status, 0));
+ }
+diff --git a/sysdeps/mach/hurd/access.c b/sysdeps/mach/hurd/access.c
+index 0a5dfade9901fa04..0ff6b29a5afabd54 100644
+--- a/sysdeps/mach/hurd/access.c
++++ b/sysdeps/mach/hurd/access.c
+@@ -24,9 +24,7 @@
+ 
+ /* Test for access to FILE by our real user and group IDs.  */
+ int
+-__access (file, type)
+-     const char *file;
+-     int type;
++__access (const char *file, int type)
+ {
+   error_t err;
+   file_t rcrdir, rcwdir, io;
+diff --git a/sysdeps/mach/hurd/adjtime.c b/sysdeps/mach/hurd/adjtime.c
+index feaa2b7b7c4ea06e..f917ed3d579b7c4e 100644
+--- a/sysdeps/mach/hurd/adjtime.c
++++ b/sysdeps/mach/hurd/adjtime.c
+@@ -24,9 +24,7 @@
+    of time adjustment remaining to be done from the last `__adjtime' call.
+    This call is restricted to the super-user.  */
+ int
+-__adjtime (delta, olddelta)
+-     const struct timeval *delta;
+-     struct timeval *olddelta;
++__adjtime (const struct timeval *delta, struct timeval *olddelta)
+ {
+   error_t err;
+   mach_port_t hostpriv;
+diff --git a/sysdeps/mach/hurd/chdir.c b/sysdeps/mach/hurd/chdir.c
+index 0369d7eaf6ccd739..1eee39608135b615 100644
+--- a/sysdeps/mach/hurd/chdir.c
++++ b/sysdeps/mach/hurd/chdir.c
+@@ -22,8 +22,7 @@
+ 
+ /* Change the current directory to FILE_NAME.  */
+ int
+-__chdir (file_name)
+-     const char *file_name;
++__chdir (const char *file_name)
+ {
+   return _hurd_change_directory_port_from_name (&_hurd_ports[INIT_PORT_CWDIR],
+ 						file_name);
+diff --git a/sysdeps/mach/hurd/chmod.c b/sysdeps/mach/hurd/chmod.c
+index 053f244efe982348..a54a631dd741962a 100644
+--- a/sysdeps/mach/hurd/chmod.c
++++ b/sysdeps/mach/hurd/chmod.c
+@@ -22,9 +22,7 @@
+ 
+ /* Change the protections of FILE to MODE.  */
+ int
+-__chmod (file, mode)
+-     const char *file;
+-     mode_t mode;
++__chmod (const char *file, mode_t mode)
+ {
+   error_t err;
+   file_t port = __file_name_lookup (file, 0, 0);
+diff --git a/sysdeps/mach/hurd/chown.c b/sysdeps/mach/hurd/chown.c
+index b12a95972702da52..414a5f0a17d5b1e2 100644
+--- a/sysdeps/mach/hurd/chown.c
++++ b/sysdeps/mach/hurd/chown.c
+@@ -22,10 +22,7 @@
+ 
+ /* Change the owner and group of FILE.  */
+ int
+-__chown (file, owner, group)
+-     const char *file;
+-     uid_t owner;
+-     gid_t group;
++__chown (const char *file, uid_t owner, gid_t group)
+ {
+   error_t err;
+   file_t port = __file_name_lookup (file, 0, 0);
+diff --git a/sysdeps/mach/hurd/cthreads.c b/sysdeps/mach/hurd/cthreads.c
+index b9f8ab8b13409447..3831862b730aad76 100644
+--- a/sysdeps/mach/hurd/cthreads.c
++++ b/sysdeps/mach/hurd/cthreads.c
+@@ -22,8 +22,7 @@
+ /* Placeholder for key creation routine from Hurd cthreads library.  */
+ int
+ weak_function
+-cthread_keycreate (key)
+-     cthread_key_t *key;
++cthread_keycreate (cthread_key_t *key)
+ {
+   __set_errno (ENOSYS);
+  *key = -1;
+@@ -33,9 +32,7 @@ cthread_keycreate (key)
+ /* Placeholder for key retrieval routine from Hurd cthreads library.  */
+ int
+ weak_function
+-cthread_getspecific (key, pval)
+-     cthread_key_t key;
+-     void **pval;
++cthread_getspecific (cthread_key_t key, void **pval)
+ {
+   *pval = NULL;
+   __set_errno (ENOSYS);
+@@ -45,9 +42,7 @@ cthread_getspecific (key, pval)
+ /* Placeholder for key setting routine from Hurd cthreads library.  */
+ int
+ weak_function
+-cthread_setspecific (key, val)
+-     cthread_key_t key;
+-     void *val;
++cthread_setspecific (cthread_key_t key, void *val)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+@@ -56,8 +51,7 @@ cthread_setspecific (key, val)
+ /* Call cthread_getspecific which gets a pointer to the return value instead
+    of just returning it.  */
+ void *
+-__libc_getspecific (key)
+-     cthread_key_t key;
++__libc_getspecific (cthread_key_t key)
+ {
+   void *val;
+   cthread_getspecific (key, &val);
+diff --git a/sysdeps/mach/hurd/euidaccess.c b/sysdeps/mach/hurd/euidaccess.c
+index 79db43839906b83d..9e258840a89d8ea6 100644
+--- a/sysdeps/mach/hurd/euidaccess.c
++++ b/sysdeps/mach/hurd/euidaccess.c
+@@ -23,9 +23,7 @@
+ #include <hurd.h>
+ 
+ int
+-__euidaccess (file, type)
+-     const char *file;
+-     int type;
++__euidaccess (const char *file, int type)
+ {
+   error_t err;
+   file_t port;
+diff --git a/sysdeps/mach/hurd/faccessat.c b/sysdeps/mach/hurd/faccessat.c
+index 8c6be4b86fee954d..5f4626a8867207fd 100644
+--- a/sysdeps/mach/hurd/faccessat.c
++++ b/sysdeps/mach/hurd/faccessat.c
+@@ -25,11 +25,7 @@
+ #include <hurd/fd.h>
+ 
+ int
+-faccessat (fd, file, type, flag)
+-     int fd;
+-     const char *file;
+-     int type;
+-     int flag;
++faccessat (int fd, const char *file, int type, int flag)
+ {
+   error_t err;
+   file_t port;
+diff --git a/sysdeps/mach/hurd/fchdir.c b/sysdeps/mach/hurd/fchdir.c
+index cce9468f10b6b0ae..a5f2f2c16f6c4c35 100644
+--- a/sysdeps/mach/hurd/fchdir.c
++++ b/sysdeps/mach/hurd/fchdir.c
+@@ -24,8 +24,7 @@
+ /* Change the current directory to FD.  */
+ 
+ int
+-__fchdir (fd)
+-     int fd;
++__fchdir (int fd)
+ {
+   return _hurd_change_directory_port_from_fd (&_hurd_ports[INIT_PORT_CWDIR],
+ 					      fd);
+diff --git a/sysdeps/mach/hurd/fchmod.c b/sysdeps/mach/hurd/fchmod.c
+index f32105b9b2031277..ccf03dfa4aaa67c4 100644
+--- a/sysdeps/mach/hurd/fchmod.c
++++ b/sysdeps/mach/hurd/fchmod.c
+@@ -23,9 +23,7 @@
+ 
+ /* Change the permissions of the file referenced by FD to MODE.  */
+ int
+-__fchmod (fd, mode)
+-     int fd;
+-     mode_t mode;
++__fchmod (int fd, mode_t mode)
+ {
+   error_t err;
+ 
+diff --git a/sysdeps/mach/hurd/fchmodat.c b/sysdeps/mach/hurd/fchmodat.c
+index f3c048ff36da7170..4dc45c321a815d1e 100644
+--- a/sysdeps/mach/hurd/fchmodat.c
++++ b/sysdeps/mach/hurd/fchmodat.c
+@@ -25,11 +25,7 @@
+ #include <hurd/fd.h>
+ 
+ int
+-fchmodat (fd, file, mode, flag)
+-     int fd;
+-     const char *file;
+-     mode_t mode;
+-     int flag;
++fchmodat (int fd, const char *file, mode_t mode, int flag)
+ {
+   error_t err;
+   file_t port = __file_name_lookup_at (fd, flag, file, 0, 0);
+diff --git a/sysdeps/mach/hurd/fchown.c b/sysdeps/mach/hurd/fchown.c
+index 09fea4ec7ad93aff..b471604162a1f0c1 100644
+--- a/sysdeps/mach/hurd/fchown.c
++++ b/sysdeps/mach/hurd/fchown.c
+@@ -23,10 +23,7 @@
+ 
+ /* Change the owner and group of the file referred to by FD.  */
+ int
+-__fchown (fd, owner, group)
+-     int fd;
+-     uid_t owner;
+-     gid_t group;
++__fchown (int fd, uid_t owner, gid_t group)
+ {
+   error_t err;
+ 
+diff --git a/sysdeps/mach/hurd/fchownat.c b/sysdeps/mach/hurd/fchownat.c
+index 58546e46c9c89fcb..d0a0f5c8cbdd5be1 100644
+--- a/sysdeps/mach/hurd/fchownat.c
++++ b/sysdeps/mach/hurd/fchownat.c
+@@ -26,12 +26,7 @@
+ 
+ /* Change the owner and group of FILE.  */
+ int
+-fchownat (fd, file, owner, group, flag)
+-     int fd;
+-     const char *file;
+-     uid_t owner;
+-     gid_t group;
+-     int flag;
++fchownat (int fd, const char *file, uid_t owner, gid_t group, int flag)
+ {
+   error_t err;
+   file_t port = __file_name_lookup_at (fd, flag, file, 0, 0);
+diff --git a/sysdeps/mach/hurd/flock.c b/sysdeps/mach/hurd/flock.c
+index a9e70ac2740dbb55..39c298112323c499 100644
+--- a/sysdeps/mach/hurd/flock.c
++++ b/sysdeps/mach/hurd/flock.c
+@@ -23,9 +23,7 @@
+ /* Apply or remove an advisory lock, according to OPERATION,
+    on the file FD refers to.  */
+ int
+-__flock (fd, operation)
+-     int fd;
+-     int operation;
++__flock (int fd, int operation)
+ {
+   error_t err;
+ 
+diff --git a/sysdeps/mach/hurd/fsync.c b/sysdeps/mach/hurd/fsync.c
+index fe3e044a3aee5e83..e17e0142ea05d1e9 100644
+--- a/sysdeps/mach/hurd/fsync.c
++++ b/sysdeps/mach/hurd/fsync.c
+@@ -22,8 +22,7 @@
+ 
+ /* Make all changes done to FD actually appear on disk.  */
+ int
+-fsync (fd)
+-     int fd;
++fsync (int fd)
+ {
+   error_t err = HURD_DPORT_USE (fd, __file_sync (port, 1, 0));
+   if (err)
+diff --git a/sysdeps/mach/hurd/ftruncate.c b/sysdeps/mach/hurd/ftruncate.c
+index 51b65638a7c37d2a..4a3897faa6aa6ca6 100644
+--- a/sysdeps/mach/hurd/ftruncate.c
++++ b/sysdeps/mach/hurd/ftruncate.c
+@@ -23,9 +23,7 @@
+ 
+ /* Truncate the file referenced by FD to LENGTH bytes.  */
+ int
+-__ftruncate (fd, length)
+-     int fd;
+-     __off_t length;
++__ftruncate (int fd, __off_t length)
+ {
+   error_t err;
+   if (err = HURD_DPORT_USE (fd, __file_set_size (port, length)))
+diff --git a/sysdeps/mach/hurd/getgroups.c b/sysdeps/mach/hurd/getgroups.c
+index 35b219ef66c36606..8e2a580ced7f71e2 100644
+--- a/sysdeps/mach/hurd/getgroups.c
++++ b/sysdeps/mach/hurd/getgroups.c
+@@ -22,9 +22,7 @@
+ #include <string.h>
+ 
+ int
+-__getgroups (n, gidset)
+-     int n;
+-     gid_t *gidset;
++__getgroups (int n, gid_t *gidset)
+ {
+   error_t err;
+   int ngids;
+diff --git a/sysdeps/mach/hurd/gethostname.c b/sysdeps/mach/hurd/gethostname.c
+index fb03b7e8192820dc..dc32a47b7a1324eb 100644
+--- a/sysdeps/mach/hurd/gethostname.c
++++ b/sysdeps/mach/hurd/gethostname.c
+@@ -22,9 +22,7 @@
+    The result is null-terminated if LEN is large enough for the full
+    name and the terminator.  */
+ int
+-__gethostname (name, len)
+-     char *name;
+-     size_t len;
++__gethostname (char *name, size_t len)
+ {
+   /* The host name is just the contents of the file /etc/hostname.  */
+   ssize_t n = _hurd_get_host_config ("/etc/hostname", name, len);
+diff --git a/sysdeps/mach/hurd/getitimer.c b/sysdeps/mach/hurd/getitimer.c
+index 3a9b53b677eed78f..da0d78da22950c48 100644
+--- a/sysdeps/mach/hurd/getitimer.c
++++ b/sysdeps/mach/hurd/getitimer.c
+@@ -42,9 +42,7 @@ subtract_timeval (struct timeval *from, const struct timeval *subtract)
+ /* Set *VALUE to the current setting of timer WHICH.
+    Return 0 on success, -1 on errors.  */
+ int
+-__getitimer (which, value)
+-     enum __itimer_which which;
+-     struct itimerval *value;
++__getitimer (enum __itimer_which which, struct itimerval *value)
+ {
+   struct itimerval val;
+   struct timeval elapsed;
+diff --git a/sysdeps/mach/hurd/getlogin_r.c b/sysdeps/mach/hurd/getlogin_r.c
+index 5410709e71d59d79..bbae17b0380b3727 100644
+--- a/sysdeps/mach/hurd/getlogin_r.c
++++ b/sysdeps/mach/hurd/getlogin_r.c
+@@ -25,9 +25,7 @@
+    If it cannot be determined or some other error occurred, return the error
+    code.  Otherwise return 0.  */
+ int
+-getlogin_r (name, name_len)
+-     char *name;
+-     size_t name_len;
++getlogin_r (char *name, size_t name_len)
+ {
+   string_t login;
+   error_t err;
+diff --git a/sysdeps/mach/hurd/getpgid.c b/sysdeps/mach/hurd/getpgid.c
+index 69b316abfe3e4421..4071c182ac341f52 100644
+--- a/sysdeps/mach/hurd/getpgid.c
++++ b/sysdeps/mach/hurd/getpgid.c
+@@ -22,8 +22,7 @@
+ 
+ /* Get the process group ID of process PID.  */
+ int
+-__getpgid (pid)
+-     pid_t pid;
++__getpgid (pid_t pid)
+ {
+   error_t err;
+   pid_t pgrp;
+diff --git a/sysdeps/mach/hurd/getrusage.c b/sysdeps/mach/hurd/getrusage.c
+index b2cc58969a1a6b08..2d5e41bf4ba15437 100644
+--- a/sysdeps/mach/hurd/getrusage.c
++++ b/sysdeps/mach/hurd/getrusage.c
+@@ -26,9 +26,7 @@
+ /* Return resource usage information on process indicated by WHO
+    and put it in *USAGE.  Returns 0 for success, -1 for failure.  */
+ int
+-__getrusage (who, usage)
+-     enum __rusage_who who;
+-     struct rusage *usage;
++__getrusage (enum __rusage_who who, struct rusage *usage)
+ {
+   struct task_basic_info bi;
+   struct task_events_info ei;
+diff --git a/sysdeps/mach/hurd/getsockname.c b/sysdeps/mach/hurd/getsockname.c
+index 65a69dfdb0833b9c..5d9fc6de3b02283c 100644
+--- a/sysdeps/mach/hurd/getsockname.c
++++ b/sysdeps/mach/hurd/getsockname.c
+@@ -24,10 +24,7 @@
+ 
+ /* Put the local address of FD into *ADDR and its length in *LEN.  */
+ int
+-__getsockname (fd, addrarg, len)
+-     int fd;
+-     __SOCKADDR_ARG addrarg;
+-     socklen_t *len;
++__getsockname (int fd, __SOCKADDR_ARG addrarg, socklen_t *len)
+ {
+   error_t err;
+   struct sockaddr *addr = addrarg.__sockaddr__;
+diff --git a/sysdeps/mach/hurd/group_member.c b/sysdeps/mach/hurd/group_member.c
+index 2021a98af79f6e7a..a6eafe944898a45b 100644
+--- a/sysdeps/mach/hurd/group_member.c
++++ b/sysdeps/mach/hurd/group_member.c
+@@ -22,8 +22,7 @@
+ #include <hurd/id.h>
+ 
+ int
+-__group_member (gid)
+-     gid_t gid;
++__group_member (gid_t gid)
+ {
+   int member = 0;
+   error_t err;
+diff --git a/sysdeps/mach/hurd/isatty.c b/sysdeps/mach/hurd/isatty.c
+index 76cb971b130a8c4b..fc23a7fb069a727f 100644
+--- a/sysdeps/mach/hurd/isatty.c
++++ b/sysdeps/mach/hurd/isatty.c
+@@ -22,8 +22,7 @@
+ 
+ /* Return 1 if FD is a terminal, 0 if not.  */
+ int
+-__isatty (fd)
+-     int fd;
++__isatty (int fd)
+ {
+   error_t err;
+   mach_port_t id;
+diff --git a/sysdeps/mach/hurd/lchown.c b/sysdeps/mach/hurd/lchown.c
+index 93973ad64383755e..4bd22088917e59eb 100644
+--- a/sysdeps/mach/hurd/lchown.c
++++ b/sysdeps/mach/hurd/lchown.c
+@@ -24,10 +24,7 @@
+ /* Change the owner and group of FILE; if it's a link, do the link and
+    not the target.  */
+ int
+-__lchown (file, owner, group)
+-     const char *file;
+-     uid_t owner;
+-     gid_t group;
++__lchown (const char *file, uid_t owner, gid_t group)
+ {
+   error_t err;
+   file_t port = __file_name_lookup (file, O_NOLINK, 0);
+diff --git a/sysdeps/mach/hurd/link.c b/sysdeps/mach/hurd/link.c
+index 4a887694557a2840..26e71924364d5695 100644
+--- a/sysdeps/mach/hurd/link.c
++++ b/sysdeps/mach/hurd/link.c
+@@ -22,9 +22,7 @@
+ 
+ /* Make a link to FROM called TO.  */
+ int
+-__link (from, to)
+-     const char *from;
+-     const char *to;
++__link (const char *from, const char *to)
+ {
+   error_t err;
+   file_t oldfile, linknode, todir;
+diff --git a/sysdeps/mach/hurd/linkat.c b/sysdeps/mach/hurd/linkat.c
+index 48963abab7d6f3ec..5c8fc03f5a323593 100644
+--- a/sysdeps/mach/hurd/linkat.c
++++ b/sysdeps/mach/hurd/linkat.c
+@@ -26,12 +26,7 @@
+ 
+ /* Make a link to FROM relative to FROMFD called TO relative to TOFD.  */
+ int
+-linkat (fromfd, from, tofd, to, flags)
+-     int fromfd;
+-     const char *from;
+-     int tofd;
+-     const char *to;
+-     int flags;
++linkat (int fromfd, const char *from, int tofd, const char *to, int flags)
+ {
+   error_t err;
+   file_t oldfile, linknode, todir;
+diff --git a/sysdeps/mach/hurd/listen.c b/sysdeps/mach/hurd/listen.c
+index 86b39e9a74e9fdf8..b04042a9d53ab58b 100644
+--- a/sysdeps/mach/hurd/listen.c
++++ b/sysdeps/mach/hurd/listen.c
+@@ -26,9 +26,7 @@
+    Returns 0 on success, -1 for errors.  */
+ 
+ int
+-__listen (fd, n)
+-     int fd;
+-     int n;
++__listen (int fd, int n)
+ {
+   error_t err = HURD_DPORT_USE (fd, __socket_listen (port, n));
+   if (err)
+diff --git a/sysdeps/mach/hurd/mkdir.c b/sysdeps/mach/hurd/mkdir.c
+index 8ad648e0a3ebaa0f..9d4b52779523ae55 100644
+--- a/sysdeps/mach/hurd/mkdir.c
++++ b/sysdeps/mach/hurd/mkdir.c
+@@ -23,9 +23,7 @@
+ 
+ /* Create a directory named FILE_NAME with protections MODE.  */
+ int
+-__mkdir (file_name, mode)
+-     const char *file_name;
+-     mode_t mode;
++__mkdir (const char *file_name, mode_t mode)
+ {
+   error_t err;
+   const char *name;
+diff --git a/sysdeps/mach/hurd/mkdirat.c b/sysdeps/mach/hurd/mkdirat.c
+index d6d672ead91c3d21..f4227cd877c78d53 100644
+--- a/sysdeps/mach/hurd/mkdirat.c
++++ b/sysdeps/mach/hurd/mkdirat.c
+@@ -24,10 +24,7 @@
+ #include <string.h>
+ 
+ int
+-mkdirat (fd, path, mode)
+-     int fd;
+-     const char *path;
+-     mode_t mode;
++mkdirat (int fd, const char *path, mode_t mode)
+ {
+   error_t err;
+   const char *name;
+diff --git a/sysdeps/mach/hurd/openat.c b/sysdeps/mach/hurd/openat.c
+index 402b89e1f0726c08..36170eac08e4ff0a 100644
+--- a/sysdeps/mach/hurd/openat.c
++++ b/sysdeps/mach/hurd/openat.c
+@@ -29,10 +29,7 @@
+    the directory associated with FD.  If O_CREAT or O_TMPFILE is in OFLAG, a
+    third argument is the file protection.  */
+ int
+-__openat (fd, file, oflag)
+-     int fd;
+-     const char *file;
+-     int oflag;
++__openat (int fd, const char *file, int oflag)
+ {
+   mode_t mode;
+   io_t port;
+diff --git a/sysdeps/mach/hurd/poll.c b/sysdeps/mach/hurd/poll.c
+index a78d10db4269bca0..040d541204002651 100644
+--- a/sysdeps/mach/hurd/poll.c
++++ b/sysdeps/mach/hurd/poll.c
+@@ -28,10 +28,7 @@
+    or -1 for errors.  */
+ 
+ int
+-__poll (fds, nfds, timeout)
+-     struct pollfd *fds;
+-     nfds_t nfds;
+-     int timeout;
++__poll (struct pollfd *fds, nfds_t nfds, int timeout)
+ {
+   struct timespec ts, *to;
+ 
+diff --git a/sysdeps/mach/hurd/readlink.c b/sysdeps/mach/hurd/readlink.c
+index fec50acde112534e..4a9f990edc70922e 100644
+--- a/sysdeps/mach/hurd/readlink.c
++++ b/sysdeps/mach/hurd/readlink.c
+@@ -25,10 +25,7 @@
+    LEN bytes of BUF.  The contents are not null-terminated.
+    Returns the number of characters read, or -1 for errors.  */
+ ssize_t
+-__readlink (file_name, buf, len)
+-     const char *file_name;
+-     char *buf;
+-     size_t len;
++__readlink (const char *file_name, char *buf, size_t len)
+ {
+   error_t err;
+   file_t file;
+diff --git a/sysdeps/mach/hurd/readlinkat.c b/sysdeps/mach/hurd/readlinkat.c
+index c46522a48e1c5ceb..d4cdadec13330622 100644
+--- a/sysdeps/mach/hurd/readlinkat.c
++++ b/sysdeps/mach/hurd/readlinkat.c
+@@ -26,11 +26,7 @@
+    than LEN bytes of BUF.  The contents are not null-terminated.
+    Returns the number of characters read, or -1 for errors.  */
+ ssize_t
+-readlinkat (fd, file_name, buf, len)
+-     int fd;
+-     const char *file_name;
+-     char *buf;
+-     size_t len;
++readlinkat (int fd, const char *file_name, char *buf, size_t len)
+ {
+   error_t err;
+   file_t file;
+diff --git a/sysdeps/mach/hurd/recv.c b/sysdeps/mach/hurd/recv.c
+index 590f4c01dc93e80d..b6683394fa78595c 100644
+--- a/sysdeps/mach/hurd/recv.c
++++ b/sysdeps/mach/hurd/recv.c
+@@ -26,11 +26,7 @@
+    Returns the number read or -1 for errors.  */
+ 
+ ssize_t
+-__recv (fd, buf, n, flags)
+-     int fd;
+-     void *buf;
+-     size_t n;
+-     int flags;
++__recv (int fd, void *buf, size_t n, int flags)
+ {
+   error_t err;
+   mach_port_t addrport;
+diff --git a/sysdeps/mach/hurd/rename.c b/sysdeps/mach/hurd/rename.c
+index c34cbcc24a331d8e..2f7d2b65861614ed 100644
+--- a/sysdeps/mach/hurd/rename.c
++++ b/sysdeps/mach/hurd/rename.c
+@@ -20,9 +20,7 @@
+ 
+ /* Rename the file OLD to NEW.  */
+ int
+-rename (old, new)
+-     const char *old;
+-     const char *new;
++rename (const char *old, const char *new)
+ {
+   error_t err;
+   file_t olddir, newdir;
+diff --git a/sysdeps/mach/hurd/renameat.c b/sysdeps/mach/hurd/renameat.c
+index 8ab5906a6742f0a0..98082a7b9575e106 100644
+--- a/sysdeps/mach/hurd/renameat.c
++++ b/sysdeps/mach/hurd/renameat.c
+@@ -22,11 +22,7 @@
+ 
+ /* Rename the file OLD relative to OLDFD to NEW relative to NEWFD.  */
+ int
+-renameat (oldfd, old, newfd, new)
+-     int oldfd;
+-     const char *old;
+-     int newfd;
+-     const char *new;
++renameat (int oldfd, const char *old, int newfd, const char *new)
+ {
+   error_t err;
+   file_t olddir, newdir;
+diff --git a/sysdeps/mach/hurd/revoke.c b/sysdeps/mach/hurd/revoke.c
+index b80cb4a8146dc29b..ef60154e2fdc12d3 100644
+--- a/sysdeps/mach/hurd/revoke.c
++++ b/sysdeps/mach/hurd/revoke.c
+@@ -21,8 +21,7 @@
+ #include <hurd.h>
+ 
+ int
+-revoke (file_name)
+-     const char *file_name;
++revoke (const char *file_name)
+ {
+   error_t err;
+   file_t file = __file_name_lookup (file_name, 0, 0);
+diff --git a/sysdeps/mach/hurd/rewinddir.c b/sysdeps/mach/hurd/rewinddir.c
+index 30ceac5e5e208a7a..26adb0115845b64c 100644
+--- a/sysdeps/mach/hurd/rewinddir.c
++++ b/sysdeps/mach/hurd/rewinddir.c
+@@ -22,8 +22,7 @@
+ 
+ /* Rewind DIRP to the beginning of the directory.  */
+ void
+-rewinddir (dirp)
+-     DIR *dirp;
++rewinddir (DIR *dirp)
+ {
+   seekdir (dirp, (off_t) 0L);
+ }
+diff --git a/sysdeps/mach/hurd/rmdir.c b/sysdeps/mach/hurd/rmdir.c
+index 2a5d5f371fabfb93..09a6167a3e75f05f 100644
+--- a/sysdeps/mach/hurd/rmdir.c
++++ b/sysdeps/mach/hurd/rmdir.c
+@@ -22,8 +22,7 @@
+ 
+ /* Remove the directory FILE_NAME.  */
+ int
+-__rmdir (file_name)
+-     const char *file_name;
++__rmdir (const char *file_name)
+ {
+   error_t err;
+   const char *name;
+diff --git a/sysdeps/mach/hurd/seekdir.c b/sysdeps/mach/hurd/seekdir.c
+index 70c3a87432f2afae..1d07b7f929c06e5e 100644
+--- a/sysdeps/mach/hurd/seekdir.c
++++ b/sysdeps/mach/hurd/seekdir.c
+@@ -24,9 +24,7 @@
+ /* Seek to position POS in DIRP.  */
+ /* XXX should be __seekdir ? */
+ void
+-seekdir (dirp, pos)
+-     DIR *dirp;
+-     long int pos;
++seekdir (DIR *dirp, long int pos)
+ {
+   __libc_lock_lock (dirp->__lock);
+   /* Change our entry index pointer to POS and discard any data already
+diff --git a/sysdeps/mach/hurd/send.c b/sysdeps/mach/hurd/send.c
+index 500c6a26e5856b8a..3ef1b153fa5eb213 100644
+--- a/sysdeps/mach/hurd/send.c
++++ b/sysdeps/mach/hurd/send.c
+@@ -23,11 +23,7 @@
+ 
+ /* Send N bytes of BUF to socket FD.  Returns the number sent or -1.  */
+ ssize_t
+-__send (fd, buf, n, flags)
+-     int fd;
+-     const void *buf;
+-     size_t n;
+-     int flags;
++__send (int fd, const void *buf, size_t n, int flags)
+ {
+   error_t err;
+   size_t wrote;
+diff --git a/sysdeps/mach/hurd/setdomain.c b/sysdeps/mach/hurd/setdomain.c
+index f3b05172436ae9b0..e9db0ddd517b11de 100644
+--- a/sysdeps/mach/hurd/setdomain.c
++++ b/sysdeps/mach/hurd/setdomain.c
+@@ -21,9 +21,7 @@
+ /* Set the name of the current YP domain to NAME, which is LEN bytes long.
+    This call is restricted to the super-user.  */
+ int
+-setdomainname (name, len)
+-     const char *name;
+-     size_t len;
++setdomainname (const char *name, size_t len)
+ {
+   /* The NIS domain name is just the contents of the file /etc/nisdomain.  */
+   ssize_t n = _hurd_set_host_config ("/etc/nisdomain", name, len);
+diff --git a/sysdeps/mach/hurd/setegid.c b/sysdeps/mach/hurd/setegid.c
+index cff169f3f39bb754..6485be03a4879a8c 100644
+--- a/sysdeps/mach/hurd/setegid.c
++++ b/sysdeps/mach/hurd/setegid.c
+@@ -24,8 +24,7 @@
+ 
+ /* Set the effective user ID of the calling process to GID.  */
+ int
+-setegid (gid)
+-     gid_t gid;
++setegid (gid_t gid)
+ {
+   auth_t newauth;
+   error_t err;
+diff --git a/sysdeps/mach/hurd/seteuid.c b/sysdeps/mach/hurd/seteuid.c
+index 200bbda8f487d134..47935fab59917de6 100644
+--- a/sysdeps/mach/hurd/seteuid.c
++++ b/sysdeps/mach/hurd/seteuid.c
+@@ -24,8 +24,7 @@
+ 
+ /* Set the effective user ID of the calling process to UID.  */
+ int
+-seteuid (uid)
+-     uid_t uid;
++seteuid (uid_t uid)
+ {
+   auth_t newauth;
+   error_t err;
+diff --git a/sysdeps/mach/hurd/setgid.c b/sysdeps/mach/hurd/setgid.c
+index b4dcd142cc5f627f..0bd73ea8b2c32602 100644
+--- a/sysdeps/mach/hurd/setgid.c
++++ b/sysdeps/mach/hurd/setgid.c
+@@ -27,8 +27,7 @@
+    and effective group IDs, and the saved set-group-ID to UID;
+    if not, the effective group ID is set to GID.  */
+ int
+-__setgid (gid)
+-     gid_t gid;
++__setgid (gid_t gid)
+ {
+   auth_t newauth;
+   error_t err;
+diff --git a/sysdeps/mach/hurd/setgroups.c b/sysdeps/mach/hurd/setgroups.c
+index 4b4b40eac6f8a67e..bdc8d052d8a8c3ff 100644
+--- a/sysdeps/mach/hurd/setgroups.c
++++ b/sysdeps/mach/hurd/setgroups.c
+@@ -23,9 +23,7 @@
+ 
+ /* Set the group set for the current user to GROUPS (N of them).  */
+ int
+-setgroups (n, groups)
+-     size_t n;
+-     const gid_t *groups;
++setgroups (size_t n, const gid_t *groups)
+ {
+   error_t err;
+   auth_t newauth;
+diff --git a/sysdeps/mach/hurd/sethostid.c b/sysdeps/mach/hurd/sethostid.c
+index 7fadf6aa8503876e..0a763f31e26e33fb 100644
+--- a/sysdeps/mach/hurd/sethostid.c
++++ b/sysdeps/mach/hurd/sethostid.c
+@@ -25,8 +25,7 @@
+ /* XXX should be __sethostid?
+        isn't hostid supposed to be hardwired and unchangeable? */
+ int
+-sethostid (id)
+-     long int id;
++sethostid (long int id)
+ {
+   char buf[8], *bp;
+   ssize_t n;
+diff --git a/sysdeps/mach/hurd/sethostname.c b/sysdeps/mach/hurd/sethostname.c
+index 433efa32f7125ce5..f0e63c7ea5175da5 100644
+--- a/sysdeps/mach/hurd/sethostname.c
++++ b/sysdeps/mach/hurd/sethostname.c
+@@ -22,9 +22,7 @@
+    This call is restricted to the super-user.  */
+ /* XXX should be __sethostname ? */
+ int
+-sethostname (name, len)
+-     const char *name;
+-     size_t len;
++sethostname (const char *name, size_t len)
+ {
+   /* The host name is just the contents of the file /etc/hostname.  */
+   ssize_t n = _hurd_set_host_config ("/etc/hostname", name, len);
+diff --git a/sysdeps/mach/hurd/setlogin.c b/sysdeps/mach/hurd/setlogin.c
+index 16c230685e91a411..48ab43b302c7dc2a 100644
+--- a/sysdeps/mach/hurd/setlogin.c
++++ b/sysdeps/mach/hurd/setlogin.c
+@@ -21,8 +21,7 @@
+ 
+ /* Set the login name returned by `getlogin'.  */
+ int
+-setlogin (name)
+-     const char *name;
++setlogin (const char *name)
+ {
+   error_t err;
+   if (err = __USEPORT (PROC, __proc_setlogin (port, name)))
+diff --git a/sysdeps/mach/hurd/setpgid.c b/sysdeps/mach/hurd/setpgid.c
+index f3696fc60c0d7cfe..ddce0b7229d1766e 100644
+--- a/sysdeps/mach/hurd/setpgid.c
++++ b/sysdeps/mach/hurd/setpgid.c
+@@ -24,9 +24,7 @@
+    If PID is zero, the current process's process group ID is set.
+    If PGID is zero, the process ID of the process is used.  */
+ int
+-__setpgid (pid, pgid)
+-     pid_t pid;
+-     pid_t pgid;
++__setpgid (pid_t pid, pid_t pgid)
+ {
+   error_t err;
+   unsigned int stamp;
+diff --git a/sysdeps/mach/hurd/setregid.c b/sysdeps/mach/hurd/setregid.c
+index f44685731e8aa185..f0f1eb9a383c3bba 100644
+--- a/sysdeps/mach/hurd/setregid.c
++++ b/sysdeps/mach/hurd/setregid.c
+@@ -23,9 +23,7 @@
+ #include <string.h>
+ 
+ int
+-__setregid (rgid, egid)
+-     gid_t rgid;
+-     gid_t egid;
++__setregid (gid_t rgid, gid_t egid)
+ {
+   auth_t newauth;
+   error_t err;
+diff --git a/sysdeps/mach/hurd/setreuid.c b/sysdeps/mach/hurd/setreuid.c
+index 72d42c7e15289c18..b68e1e8d43ad44ca 100644
+--- a/sysdeps/mach/hurd/setreuid.c
++++ b/sysdeps/mach/hurd/setreuid.c
+@@ -23,9 +23,7 @@
+ #include <string.h>
+ 
+ int
+-__setreuid (ruid, euid)
+-     uid_t ruid;
+-     uid_t euid;
++__setreuid (uid_t ruid, uid_t euid)
+ {
+   auth_t newauth;
+   error_t err;
+diff --git a/sysdeps/mach/hurd/settimeofday.c b/sysdeps/mach/hurd/settimeofday.c
+index ce9bfafa9002f388..6f7fa007b21ff67e 100644
+--- a/sysdeps/mach/hurd/settimeofday.c
++++ b/sysdeps/mach/hurd/settimeofday.c
+@@ -23,9 +23,7 @@
+ /* Set the current time of day and timezone information.
+    This call is restricted to the super-user.  */
+ int
+-__settimeofday (tv, tz)
+-     const struct timeval *tv;
+-     const struct timezone *tz;
++__settimeofday (const struct timeval *tv, const struct timezone *tz)
+ {
+   error_t err;
+   mach_port_t hostpriv;
+diff --git a/sysdeps/mach/hurd/setuid.c b/sysdeps/mach/hurd/setuid.c
+index b749159528988ee8..dcf98b6b48d34f01 100644
+--- a/sysdeps/mach/hurd/setuid.c
++++ b/sysdeps/mach/hurd/setuid.c
+@@ -27,8 +27,7 @@
+    and effective user IDs, and the saved set-user-ID to UID;
+    if not, the effective user ID is set to UID.  */
+ int
+-__setuid (uid)
+-     uid_t uid;
++__setuid (uid_t uid)
+ {
+   auth_t newauth;
+   error_t err;
+diff --git a/sysdeps/mach/hurd/shutdown.c b/sysdeps/mach/hurd/shutdown.c
+index 8cf9d2fbc21e68b8..c2b643896c5a62ab 100644
+--- a/sysdeps/mach/hurd/shutdown.c
++++ b/sysdeps/mach/hurd/shutdown.c
+@@ -29,9 +29,7 @@
+    Returns 0 on success, -1 for errors.  */
+ /* XXX should be __shutdown ? */
+ int
+-shutdown (fd, how)
+-     int fd;
+-     int how;
++shutdown (int fd, int how)
+ {
+   error_t err = HURD_DPORT_USE (fd, __socket_shutdown (port, how));
+   if (err)
+diff --git a/sysdeps/mach/hurd/sigaction.c b/sysdeps/mach/hurd/sigaction.c
+index 5e97dcdb13a8170b..6e2c738e8aa03c1c 100644
+--- a/sysdeps/mach/hurd/sigaction.c
++++ b/sysdeps/mach/hurd/sigaction.c
+@@ -25,10 +25,7 @@
+ /* If ACT is not NULL, change the action for SIG to *ACT.
+    If OACT is not NULL, put the old action for SIG in *OACT.  */
+ int
+-__sigaction (sig, act, oact)
+-     int sig;
+-     const struct sigaction *act;
+-     struct sigaction *oact;
++__sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+ {
+   struct hurd_sigstate *ss;
+   struct sigaction a, old;
+diff --git a/sysdeps/mach/hurd/sigaltstack.c b/sysdeps/mach/hurd/sigaltstack.c
+index cf87b0059021a5a5..6feea790903f9742 100644
+--- a/sysdeps/mach/hurd/sigaltstack.c
++++ b/sysdeps/mach/hurd/sigaltstack.c
+@@ -22,9 +22,7 @@
+ /* Run signals handlers on the stack specified by SS (if not NULL).
+    If OSS is not NULL, it is filled in with the old signal stack status.  */
+ int
+-__sigaltstack (argss, oss)
+-     const struct sigaltstack *argss;
+-     struct sigaltstack *oss;
++__sigaltstack (const struct sigaltstack *argss, struct sigaltstack *oss)
+ {
+   struct hurd_sigstate *s;
+   struct sigaltstack ss, old;
+diff --git a/sysdeps/mach/hurd/sigpending.c b/sysdeps/mach/hurd/sigpending.c
+index 59e5a8e69a8fddff..28c5e3590234db98 100644
+--- a/sysdeps/mach/hurd/sigpending.c
++++ b/sysdeps/mach/hurd/sigpending.c
+@@ -24,8 +24,7 @@
+ /* Store in SET all signals that are blocked and pending.  */
+ /* XXX should be __sigpending ? */
+ int
+-sigpending (set)
+-     sigset_t *set;
++sigpending (sigset_t *set)
+ {
+   struct hurd_sigstate *ss;
+   sigset_t pending;
+diff --git a/sysdeps/mach/hurd/sigprocmask.c b/sysdeps/mach/hurd/sigprocmask.c
+index e90a5f3ebbaa335f..ee62563f3a90bd73 100644
+--- a/sysdeps/mach/hurd/sigprocmask.c
++++ b/sysdeps/mach/hurd/sigprocmask.c
+@@ -25,10 +25,7 @@
+    according to HOW, which may be SIG_BLOCK, SIG_UNBLOCK or SIG_SETMASK.
+    If OSET is not NULL, store the old set of blocked signals in *OSET.  */
+ int
+-__sigprocmask (how, set, oset)
+-     int how;
+-     const sigset_t *set;
+-     sigset_t *oset;
++__sigprocmask (int how, const sigset_t *set, sigset_t *oset)
+ {
+   struct hurd_sigstate *ss;
+   sigset_t old, new;
+diff --git a/sysdeps/mach/hurd/sigsuspend.c b/sysdeps/mach/hurd/sigsuspend.c
+index 3e611f80afc4b662..10ff5ca6a97d5566 100644
+--- a/sysdeps/mach/hurd/sigsuspend.c
++++ b/sysdeps/mach/hurd/sigsuspend.c
+@@ -25,8 +25,7 @@
+ /* Change the set of blocked signals to SET,
+    wait until a signal arrives, and restore the set of blocked signals.  */
+ int
+-__sigsuspend (set)
+-     const sigset_t *set;
++__sigsuspend (const sigset_t *set)
+ {
+   struct hurd_sigstate *ss;
+   sigset_t newmask, oldmask, pending;
+diff --git a/sysdeps/mach/hurd/socket.c b/sysdeps/mach/hurd/socket.c
+index 00f57b5fbeb9d006..1a0c1f94197b9da8 100644
+--- a/sysdeps/mach/hurd/socket.c
++++ b/sysdeps/mach/hurd/socket.c
+@@ -26,10 +26,7 @@
+    protocol PROTOCOL.  If PROTOCOL is zero, one is chosen automatically.
+    Returns a file descriptor for the new socket, or -1 for errors.  */
+ int
+-__socket (domain, type, protocol)
+-     int domain;
+-     int type;
+-     int protocol;
++__socket (int domain, int type, int protocol)
+ {
+   error_t err;
+   socket_t sock, server;
+diff --git a/sysdeps/mach/hurd/symlink.c b/sysdeps/mach/hurd/symlink.c
+index 0754b1893b03d839..eac5f5ba70d4d409 100644
+--- a/sysdeps/mach/hurd/symlink.c
++++ b/sysdeps/mach/hurd/symlink.c
+@@ -23,9 +23,7 @@
+ 
+ /* Make a link to FROM called TO.  */
+ int
+-__symlink (from, to)
+-     const char *from;
+-     const char *to;
++__symlink (const char *from, const char *to)
+ {
+   error_t err;
+   file_t dir, node;
+diff --git a/sysdeps/mach/hurd/symlinkat.c b/sysdeps/mach/hurd/symlinkat.c
+index ff11ecdc166bc1a3..5342444451ef71c7 100644
+--- a/sysdeps/mach/hurd/symlinkat.c
++++ b/sysdeps/mach/hurd/symlinkat.c
+@@ -28,10 +28,7 @@
+ 
+ /* Make a link to FROM called TO relative to FD.  */
+ int
+-symlinkat (from, fd, to)
+-     const char *from;
+-     int fd;
+-     const char *to;
++symlinkat (const char *from, int fd, const char *to)
+ {
+   error_t err;
+   file_t dir, node;
+diff --git a/sysdeps/mach/hurd/telldir.c b/sysdeps/mach/hurd/telldir.c
+index 983e1fc667e9d7ce..bae50b10b60050a5 100644
+--- a/sysdeps/mach/hurd/telldir.c
++++ b/sysdeps/mach/hurd/telldir.c
+@@ -25,8 +25,7 @@
+ /* Return the current position of DIRP.  */
+ /* XXX should be __telldir ? */
+ long int
+-telldir (dirp)
+-     DIR *dirp;
++telldir (DIR *dirp)
+ {
+   return dirp->__entry_ptr;
+ }
+diff --git a/sysdeps/mach/hurd/truncate.c b/sysdeps/mach/hurd/truncate.c
+index d93daffda751f6b1..6c530493ecc5ee07 100644
+--- a/sysdeps/mach/hurd/truncate.c
++++ b/sysdeps/mach/hurd/truncate.c
+@@ -23,9 +23,7 @@
+ 
+ /* Truncate FILE_NAME to LENGTH bytes.  */
+ int
+-__truncate (file_name, length)
+-     const char *file_name;
+-     off_t length;
++__truncate (const char *file_name, off_t length)
+ {
+   error_t err;
+   file_t file = __file_name_lookup (file_name, O_WRITE, 0);
+diff --git a/sysdeps/mach/hurd/umask.c b/sysdeps/mach/hurd/umask.c
+index 81d6d69f03ec172d..a7f0ca479a3d344f 100644
+--- a/sysdeps/mach/hurd/umask.c
++++ b/sysdeps/mach/hurd/umask.c
+@@ -20,8 +20,7 @@
+ 
+ /* Set the file creation mask to MASK, returning the old mask.  */
+ mode_t
+-__umask (mask)
+-     mode_t mask;
++__umask (mode_t mask)
+ {
+   mode_t omask;
+   mask &= 0777;
+diff --git a/sysdeps/mach/hurd/unlink.c b/sysdeps/mach/hurd/unlink.c
+index e3a0b419c41fdde1..fe6f092348b1954f 100644
+--- a/sysdeps/mach/hurd/unlink.c
++++ b/sysdeps/mach/hurd/unlink.c
+@@ -23,8 +23,7 @@
+ 
+ /* Remove the link named NAME.  */
+ int
+-__unlink (name)
+-     const char *name;
++__unlink (const char *name)
+ {
+   error_t err;
+   file_t dir;
+diff --git a/sysdeps/mach/hurd/unlinkat.c b/sysdeps/mach/hurd/unlinkat.c
+index 7ee4d37a64d0063b..a756446a9315789c 100644
+--- a/sysdeps/mach/hurd/unlinkat.c
++++ b/sysdeps/mach/hurd/unlinkat.c
+@@ -26,10 +26,7 @@
+ 
+ /* Remove the link named NAME.  */
+ int
+-unlinkat (fd, name, flag)
+-     int fd;
+-     const char *name;
+-     int flag;
++unlinkat (int fd, const char *name, int flag)
+ {
+   error_t err;
+   file_t dir;
+diff --git a/sysdeps/mips/mips64/__longjmp.c b/sysdeps/mips/mips64/__longjmp.c
+index a6f31cb5adfd8ff8..608dee8ab1eb16ea 100644
+--- a/sysdeps/mips/mips64/__longjmp.c
++++ b/sysdeps/mips/mips64/__longjmp.c
+@@ -26,9 +26,7 @@
+ #endif
+ 
+ void
+-__longjmp (env_arg, val_arg)
+-     __jmp_buf env_arg;
+-     int val_arg;
++__longjmp (__jmp_buf env_arg, int val_arg)
+ {
+   /* gcc 1.39.19 miscompiled the longjmp routine (as it did setjmp before
+      the hack around it); force it to use $a1 for the longjmp value.
+diff --git a/sysdeps/posix/alarm.c b/sysdeps/posix/alarm.c
+index 730f2c4c770baa61..2b731c9d73e18301 100644
+--- a/sysdeps/posix/alarm.c
++++ b/sysdeps/posix/alarm.c
+@@ -26,8 +26,7 @@
+    to 0 and check its value after calling `alarm', and this might tell you.
+    The signal may come late due to processor scheduling.  */
+ unsigned int
+-alarm (seconds)
+-     unsigned int seconds;
++alarm (unsigned int seconds)
+ {
+   struct itimerval old, new;
+   unsigned int retval;
+diff --git a/sysdeps/posix/cuserid.c b/sysdeps/posix/cuserid.c
+index 2134f6835282512e..891b5f53c4d5b298 100644
+--- a/sysdeps/posix/cuserid.c
++++ b/sysdeps/posix/cuserid.c
+@@ -25,8 +25,7 @@
+    If S is not NULL, it points to a buffer of at least L_cuserid bytes
+    into which the name is copied; otherwise, a static buffer is used.  */
+ char *
+-cuserid (s)
+-     char *s;
++cuserid (char *s)
+ {
+   static char name[L_cuserid];
+   char buf[NSS_BUFLEN_PASSWD];
+diff --git a/sysdeps/posix/dirfd.c b/sysdeps/posix/dirfd.c
+index 536c44e30e4bdd08..e841863e2e8fb81a 100644
+--- a/sysdeps/posix/dirfd.c
++++ b/sysdeps/posix/dirfd.c
+@@ -22,8 +22,7 @@
+ #undef dirfd
+ 
+ int
+-dirfd (dirp)
+-     DIR *dirp;
++dirfd (DIR *dirp)
+ {
+   return dirp->fd;
+ }
+diff --git a/sysdeps/posix/dup.c b/sysdeps/posix/dup.c
+index ff9eab3d27b16cbf..da65148ea9975903 100644
+--- a/sysdeps/posix/dup.c
++++ b/sysdeps/posix/dup.c
+@@ -22,8 +22,7 @@
+ 
+ /* Duplicate FD, returning a new file descriptor open on the same file.  */
+ int
+-__dup (fd)
+-     int fd;
++__dup (int fd)
+ {
+   return fcntl (fd, F_DUPFD, 0);
+ }
+diff --git a/sysdeps/posix/dup2.c b/sysdeps/posix/dup2.c
+index 3dafd83abcb47ac3..e4a009d7a286c689 100644
+--- a/sysdeps/posix/dup2.c
++++ b/sysdeps/posix/dup2.c
+@@ -23,9 +23,7 @@
+ /* Duplicate FD to FD2, closing the old FD2 and making FD2 be
+    open the same file as FD is.  Return FD2 or -1.  */
+ int
+-__dup2 (fd, fd2)
+-     int fd;
+-     int fd2;
++__dup2 (int fd, int fd2)
+ {
+   int save;
+ 
+diff --git a/sysdeps/posix/euidaccess.c b/sysdeps/posix/euidaccess.c
+index e7901866bddce39b..2250ec90e50746cb 100644
+--- a/sysdeps/posix/euidaccess.c
++++ b/sysdeps/posix/euidaccess.c
+@@ -117,9 +117,7 @@ int group_member ();
+    filesystem, text busy, etc. */
+ 
+ int
+-euidaccess (path, mode)
+-     const char *path;
+-     int mode;
++euidaccess (const char *path, int mode)
+ {
+   struct stat64 stats;
+   int granted;
+@@ -196,9 +194,7 @@ weak_alias (__euidaccess, eaccess)
+ char *program_name;
+ 
+ int
+-main (argc, argv)
+-     int argc;
+-     char **argv;
++main (int argc, char **argv)
+ {
+   char *file;
+   int mode;
+diff --git a/sysdeps/posix/flock.c b/sysdeps/posix/flock.c
+index 4b9b9ac9ce990922..39ccdeb1a2e24ba4 100644
+--- a/sysdeps/posix/flock.c
++++ b/sysdeps/posix/flock.c
+@@ -27,9 +27,7 @@
+ /* Apply or remove an advisory lock, according to OPERATION,
+    on the file FD refers to.  */
+ int
+-__flock (fd, operation)
+-     int fd;
+-     int operation;
++__flock (int fd, int operation)
+ {
+   struct flock lbuf;
+ 
+diff --git a/sysdeps/posix/fpathconf.c b/sysdeps/posix/fpathconf.c
+index 7b072fa3ca155929..f5b33d2361a31ec4 100644
+--- a/sysdeps/posix/fpathconf.c
++++ b/sysdeps/posix/fpathconf.c
+@@ -27,9 +27,7 @@
+ 
+ /* Get file-specific information about descriptor FD.  */
+ long int
+-__fpathconf (fd, name)
+-     int fd;
+-     int name;
++__fpathconf (int fd, int name)
+ {
+   if (fd < 0)
+     {
+diff --git a/sysdeps/posix/getcwd.c b/sysdeps/posix/getcwd.c
+index 366abb34575c5809..2df6e6e26efc566e 100644
+--- a/sysdeps/posix/getcwd.c
++++ b/sysdeps/posix/getcwd.c
+@@ -218,9 +218,7 @@ static int __rtld_have_atfcts;
+    unless SIZE == 0, in which case it is as big as necessary.  */
+ 
+ GETCWD_RETURN_TYPE
+-__getcwd (buf, size)
+-     char *buf;
+-     size_t size;
++__getcwd (char *buf, size_t size)
+ {
+ #ifndef __ASSUME_ATFCTS
+   static const char dots[]
+diff --git a/sysdeps/posix/gethostname.c b/sysdeps/posix/gethostname.c
+index a63845b02bd651f0..8510c58066a356e7 100644
+--- a/sysdeps/posix/gethostname.c
++++ b/sysdeps/posix/gethostname.c
+@@ -24,9 +24,7 @@
+    The result is null-terminated if LEN is large enough for the full
+    name and the terminator.  */
+ int
+-__gethostname (name, len)
+-     char *name;
+-     size_t len;
++__gethostname (char *name, size_t len)
+ {
+   struct utsname buf;
+   size_t node_len;
+diff --git a/sysdeps/posix/gettimeofday.c b/sysdeps/posix/gettimeofday.c
+index 1108ff016705d73d..6ee918585713a95a 100644
+--- a/sysdeps/posix/gettimeofday.c
++++ b/sysdeps/posix/gettimeofday.c
+@@ -23,9 +23,7 @@
+    putting it into *TV and *TZ.  If TZ is NULL, *TZ is not filled.
+    Returns 0 on success, -1 on errors.  */
+ int
+-__gettimeofday (tv, tz)
+-     struct timeval *tv;
+-     struct timezone *tz;
++__gettimeofday (struct timeval *tv, struct timezone *tz)
+ {
+   if (tv == NULL)
+     {
+diff --git a/sysdeps/posix/isatty.c b/sysdeps/posix/isatty.c
+index 0226bf4f7d447506..16ce14c0963bd40d 100644
+--- a/sysdeps/posix/isatty.c
++++ b/sysdeps/posix/isatty.c
+@@ -20,8 +20,7 @@
+ 
+ /* Return 1 if FD is a terminal, 0 if not.  */
+ int
+-__isatty (fd)
+-     int fd;
++__isatty (int fd)
+ {
+   struct termios term;
+ 
+diff --git a/sysdeps/posix/killpg.c b/sysdeps/posix/killpg.c
+index 570ac90b562da74b..7e4918621e293ba6 100644
+--- a/sysdeps/posix/killpg.c
++++ b/sysdeps/posix/killpg.c
+@@ -23,9 +23,7 @@
+    If PGRP is zero, send SIG to all processes in
+    the current process's process group.  */
+ int
+-killpg (pgrp, sig)
+-     __pid_t pgrp;
+-     int sig;
++killpg (__pid_t pgrp, int sig)
+ {
+   if (pgrp < 0)
+     {
+diff --git a/sysdeps/posix/libc_fatal.c b/sysdeps/posix/libc_fatal.c
+index 6b741297ce818235..c74bc5818cb33778 100644
+--- a/sysdeps/posix/libc_fatal.c
++++ b/sysdeps/posix/libc_fatal.c
+@@ -164,8 +164,7 @@ __libc_message (int do_abort, const char *fmt, ...)
+ 
+ 
+ void
+-__libc_fatal (message)
+-     const char *message;
++__libc_fatal (const char *message)
+ {
+   /* The loop is added only to keep gcc happy.  */
+   while (1)
+diff --git a/sysdeps/posix/mkfifoat.c b/sysdeps/posix/mkfifoat.c
+index 33fa6bde7118aa83..cc752e5a0891dd54 100644
+--- a/sysdeps/posix/mkfifoat.c
++++ b/sysdeps/posix/mkfifoat.c
+@@ -21,10 +21,7 @@
+ /* Create a new FIFO with permission bits MODE.  But interpret
+    relative PATH names relative to the directory associated with FD.  */
+ int
+-mkfifoat (fd, file, mode)
+-     int fd;
+-     const char *file;
+-     mode_t mode;
++mkfifoat (int fd, const char *file, mode_t mode)
+ {
+   dev_t dev = 0;
+   return __xmknodat (_MKNOD_VER, fd, file, mode | S_IFIFO, &dev);
+diff --git a/sysdeps/posix/raise.c b/sysdeps/posix/raise.c
+index 58d13fc194da5ed6..7d011bd0bdd90080 100644
+--- a/sysdeps/posix/raise.c
++++ b/sysdeps/posix/raise.c
+@@ -20,8 +20,7 @@
+ 
+ /* Raise the signal SIG.  */
+ int
+-raise (sig)
+-     int sig;
++raise (int sig)
+ {
+   return __kill (__getpid (), sig);
+ }
+diff --git a/sysdeps/posix/remove.c b/sysdeps/posix/remove.c
+index be0c5ad1280ef50d..135c6359f3c9d5e4 100644
+--- a/sysdeps/posix/remove.c
++++ b/sysdeps/posix/remove.c
+@@ -27,8 +27,7 @@
+ 
+ 
+ int
+-remove (file)
+-     const char *file;
++remove (const char *file)
+ {
+   /* First try to unlink since this is more frequently the necessary action. */
+   if (__unlink (file) != 0
+diff --git a/sysdeps/posix/rename.c b/sysdeps/posix/rename.c
+index 8bb6a04c17b15478..4cb2f20bd45ac8e4 100644
+--- a/sysdeps/posix/rename.c
++++ b/sysdeps/posix/rename.c
+@@ -21,9 +21,7 @@
+ 
+ /* Rename the file OLD to NEW.  */
+ int
+-rename (old, new)
+-     const char *old;
+-     const char *new;
++rename (const char *old, const char *new)
+ {
+   int save = errno;
+   if (__link (old, new) < 0)
+diff --git a/sysdeps/posix/rewinddir.c b/sysdeps/posix/rewinddir.c
+index f8f411e36af7b022..5b91982060c2a140 100644
+--- a/sysdeps/posix/rewinddir.c
++++ b/sysdeps/posix/rewinddir.c
+@@ -23,8 +23,7 @@
+ 
+ /* Rewind DIRP to the beginning of the directory.  */
+ void
+-rewinddir (dirp)
+-     DIR *dirp;
++rewinddir (DIR *dirp)
+ {
+ #if IS_IN (libc)
+   __libc_lock_lock (dirp->lock);
+diff --git a/sysdeps/posix/seekdir.c b/sysdeps/posix/seekdir.c
+index 88e34ee28ffa8273..691048137a15d5b4 100644
+--- a/sysdeps/posix/seekdir.c
++++ b/sysdeps/posix/seekdir.c
+@@ -24,9 +24,7 @@
+ /* Seek to position POS in DIRP.  */
+ /* XXX should be __seekdir ? */
+ void
+-seekdir (dirp, pos)
+-     DIR *dirp;
+-     long int pos;
++seekdir (DIR *dirp, long int pos)
+ {
+   __libc_lock_lock (dirp->lock);
+   (void) __lseek (dirp->fd, pos, SEEK_SET);
+diff --git a/sysdeps/posix/sigblock.c b/sysdeps/posix/sigblock.c
+index a5d01fe7456ede38..767bd491c4d04d63 100644
+--- a/sysdeps/posix/sigblock.c
++++ b/sysdeps/posix/sigblock.c
+@@ -22,8 +22,7 @@
+ 
+ /* Block signals in MASK, returning the old mask.  */
+ int
+-__sigblock (mask)
+-     int mask;
++__sigblock (int mask)
+ {
+   sigset_t set, oset;
+ 
+diff --git a/sysdeps/posix/sigignore.c b/sysdeps/posix/sigignore.c
+index 71e9d087fb5e74af..c0e848bec18912c6 100644
+--- a/sysdeps/posix/sigignore.c
++++ b/sysdeps/posix/sigignore.c
+@@ -25,8 +25,7 @@
+ 
+ 
+ int
+-sigignore (sig)
+-     int sig;
++sigignore (int sig)
+ {
+   struct sigaction act;
+ 
+diff --git a/sysdeps/posix/sigintr.c b/sysdeps/posix/sigintr.c
+index 86ae054d9dcbd828..5bafe610923b25d2 100644
+--- a/sysdeps/posix/sigintr.c
++++ b/sysdeps/posix/sigintr.c
+@@ -23,9 +23,7 @@
+    (causing them to fail with EINTR); if INTERRUPT is zero, make system
+    calls be restarted after signal SIG.  */
+ int
+-siginterrupt (sig, interrupt)
+-     int sig;
+-     int interrupt;
++siginterrupt (int sig, int interrupt)
+ {
+ #ifdef	SA_RESTART
+   extern sigset_t _sigintr attribute_hidden;	/* Defined in signal.c.  */
+diff --git a/sysdeps/posix/signal.c b/sysdeps/posix/signal.c
+index 33805be881729e72..6311cfcfa74749a7 100644
+--- a/sysdeps/posix/signal.c
++++ b/sysdeps/posix/signal.c
+@@ -27,9 +27,7 @@ sigset_t _sigintr attribute_hidden;		/* Set by siginterrupt.  */
+ /* Set the handler for the signal SIG to HANDLER,
+    returning the old handler, or SIG_ERR on error.  */
+ __sighandler_t
+-__bsd_signal (sig, handler)
+-     int sig;
+-     __sighandler_t handler;
++__bsd_signal (int sig, __sighandler_t handler)
+ {
+   struct sigaction act, oact;
+ 
+diff --git a/sysdeps/posix/sigset.c b/sysdeps/posix/sigset.c
+index a9c9e8174134828b..3b4b8049a6de9f2c 100644
+--- a/sysdeps/posix/sigset.c
++++ b/sysdeps/posix/sigset.c
+@@ -24,9 +24,7 @@
+ 
+ /* Set the disposition for SIG.  */
+ __sighandler_t
+-sigset (sig, disp)
+-     int sig;
+-     __sighandler_t disp;
++sigset (int sig, __sighandler_t disp)
+ {
+   struct sigaction act;
+   struct sigaction oact;
+diff --git a/sysdeps/posix/sigsuspend.c b/sysdeps/posix/sigsuspend.c
+index 6b84162525b571a3..63e7c08e48e8e73e 100644
+--- a/sysdeps/posix/sigsuspend.c
++++ b/sysdeps/posix/sigsuspend.c
+@@ -24,8 +24,7 @@
+ /* Change the set of blocked signals to SET,
+    wait until a signal arrives, and restore the set of blocked signals.  */
+ int
+-__sigsuspend (set)
+-     const sigset_t *set;
++__sigsuspend (const sigset_t *set)
+ {
+   sigset_t oset;
+   int save;
+diff --git a/sysdeps/posix/sysconf.c b/sysdeps/posix/sysconf.c
+index 88aa151422dc56f9..4d74d57c8a65dc29 100644
+--- a/sysdeps/posix/sysconf.c
++++ b/sysdeps/posix/sysconf.c
+@@ -48,8 +48,7 @@ static long int __sysconf_check_spec (const char *spec);
+ 
+ /* Get the value of the system variable NAME.  */
+ long int
+-__sysconf (name)
+-     int name;
++__sysconf (int name)
+ {
+   switch (name)
+     {
+diff --git a/sysdeps/posix/sysv_signal.c b/sysdeps/posix/sysv_signal.c
+index f280696233042b09..a8fb2b157578e90a 100644
+--- a/sysdeps/posix/sysv_signal.c
++++ b/sysdeps/posix/sysv_signal.c
+@@ -34,9 +34,7 @@
+ /* Set the handler for the signal SIG to HANDLER,
+    returning the old handler, or SIG_ERR on error.  */
+ __sighandler_t
+-__sysv_signal (sig, handler)
+-     int sig;
+-     __sighandler_t handler;
++__sysv_signal (int sig, __sighandler_t handler)
+ {
+   struct sigaction act, oact;
+ 
+diff --git a/sysdeps/posix/time.c b/sysdeps/posix/time.c
+index e026a384df6fbd6d..39042030f20235b4 100644
+--- a/sysdeps/posix/time.c
++++ b/sysdeps/posix/time.c
+@@ -23,8 +23,7 @@
+ /* Return the current time as a `time_t' and also put it in *T if T is
+    not NULL.  Time is represented as seconds from Jan 1 00:00:00 1970.  */
+ time_t
+-time (t)
+-     time_t *t;
++time (time_t *t)
+ {
+   struct timeval tv;
+   time_t result;
+diff --git a/sysdeps/posix/ttyname.c b/sysdeps/posix/ttyname.c
+index 1fe985984591559f..16af52c5083bbd62 100644
+--- a/sysdeps/posix/ttyname.c
++++ b/sysdeps/posix/ttyname.c
+@@ -35,12 +35,7 @@ libc_freeres_ptr (static char *getttyname_name);
+ 
+ static char *
+ internal_function
+-getttyname (fd, mydev, myino, save, dostat)
+-     int fd;
+-     dev_t mydev;
+-     ino_t myino;
+-     int save;
+-     int *dostat;
++getttyname (int fd, dev_t mydev, ino_t myino, int save, int *dostat)
+ {
+   static const char dev[] = "/dev";
+   static size_t namelen;
+@@ -101,8 +96,7 @@ getttyname (fd, mydev, myino, save, dostat)
+ /* Return the pathname of the terminal FD is open on, or NULL on errors.
+    The returned storage is good only until the next call to this function.  */
+ char *
+-ttyname (fd)
+-     int fd;
++ttyname (int fd)
+ {
+   struct stat st;
+   int dostat = 0;
+diff --git a/sysdeps/posix/ttyname_r.c b/sysdeps/posix/ttyname_r.c
+index e8ef55fc19a3d3c8..bf8399d36d0e4541 100644
+--- a/sysdeps/posix/ttyname_r.c
++++ b/sysdeps/posix/ttyname_r.c
+@@ -101,10 +101,7 @@ getttyname_r (fd, buf, buflen, mydev, myino, save, dostat)
+ /* Store at most BUFLEN character of the pathname of the terminal FD is
+    open on in BUF.  Return 0 on success,  otherwise an error number.  */
+ int
+-__ttyname_r (fd, buf, buflen)
+-     int fd;
+-     char *buf;
+-     size_t buflen;
++__ttyname_r (int fd, char *buf, size_t buflen)
+ {
+   struct stat st;
+   int dostat = 0;
+diff --git a/sysdeps/posix/utime.c b/sysdeps/posix/utime.c
+index a750ecc290f6f678..a031fbe9da00f2be 100644
+--- a/sysdeps/posix/utime.c
++++ b/sysdeps/posix/utime.c
+@@ -26,9 +26,7 @@
+ /* Set the access and modification times of FILE to those given in TIMES.
+    If TIMES is NULL, set them to the current time.  */
+ int
+-utime (file, times)
+-     const char *file;
+-     const struct utimbuf *times;
++utime (const char *file, const struct utimbuf *times)
+ {
+   struct timeval timevals[2];
+   struct timeval *tvp;
+diff --git a/sysdeps/powerpc/fpu/s_isnan.c b/sysdeps/powerpc/fpu/s_isnan.c
+index 777d3518f6ec5afb..cd396eb7369ea1e4 100644
+--- a/sysdeps/powerpc/fpu/s_isnan.c
++++ b/sysdeps/powerpc/fpu/s_isnan.c
+@@ -36,8 +36,7 @@ hidden_proto (__isnanf)
+ 
+ 
+ int
+-__isnan (x)
+-     double x;
++__isnan (double x)
+ {
+   fenv_t savedstate;
+   int result;
+diff --git a/sysdeps/pthread/aio_read.c b/sysdeps/pthread/aio_read.c
+index d02eb7b855611492..7ffeb29abafb5257 100644
+--- a/sysdeps/pthread/aio_read.c
++++ b/sysdeps/pthread/aio_read.c
+@@ -23,8 +23,7 @@
+ 
+ 
+ int
+-aio_read (aiocbp)
+-     struct aiocb *aiocbp;
++aio_read (struct aiocb *aiocbp)
+ {
+   return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_READ) == NULL
+ 	  ? -1 : 0);
+diff --git a/sysdeps/pthread/aio_read64.c b/sysdeps/pthread/aio_read64.c
+index 2fcf39fb9156421c..d426a05c5a902eaa 100644
+--- a/sysdeps/pthread/aio_read64.c
++++ b/sysdeps/pthread/aio_read64.c
+@@ -23,8 +23,7 @@
+ 
+ 
+ int
+-aio_read64 (aiocbp)
+-     struct aiocb64 *aiocbp;
++aio_read64 (struct aiocb64 *aiocbp)
+ {
+   return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_READ64) == NULL
+ 	  ? -1 : 0);
+diff --git a/sysdeps/pthread/aio_write.c b/sysdeps/pthread/aio_write.c
+index 823e365c867ef251..0ad0fde8640016ed 100644
+--- a/sysdeps/pthread/aio_write.c
++++ b/sysdeps/pthread/aio_write.c
+@@ -23,8 +23,7 @@
+ 
+ 
+ int
+-aio_write (aiocbp)
+-     struct aiocb *aiocbp;
++aio_write (struct aiocb *aiocbp)
+ {
+   return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_WRITE) == NULL
+ 	  ? -1 : 0);
+diff --git a/sysdeps/pthread/aio_write64.c b/sysdeps/pthread/aio_write64.c
+index 0cec64d292d490b4..1d3905a4b6437ebe 100644
+--- a/sysdeps/pthread/aio_write64.c
++++ b/sysdeps/pthread/aio_write64.c
+@@ -23,8 +23,7 @@
+ 
+ 
+ int
+-aio_write64 (aiocbp)
+-     struct aiocb64 *aiocbp;
++aio_write64 (struct aiocb64 *aiocbp)
+ {
+   return (__aio_enqueue_request ((aiocb_union *) aiocbp, LIO_WRITE64) == NULL
+ 	  ? -1 : 0);
+diff --git a/sysdeps/s390/ffs.c b/sysdeps/s390/ffs.c
+index 1e22f635939284c0..a01c5e3060badf81 100644
+--- a/sysdeps/s390/ffs.c
++++ b/sysdeps/s390/ffs.c
+@@ -29,8 +29,7 @@
+    differs in spirit from the above ffz (man ffs).  */
+ 
+ int
+-__ffs (x)
+-     int x;
++__ffs (int x)
+ {
+ 	int r;
+ 
+diff --git a/sysdeps/sparc/sparc32/e_sqrt.c b/sysdeps/sparc/sparc32/e_sqrt.c
+index 30165192c65854c6..f47e9601f00d0d2e 100644
+--- a/sysdeps/sparc/sparc32/e_sqrt.c
++++ b/sysdeps/sparc/sparc32/e_sqrt.c
+@@ -24,8 +24,7 @@
+ 
+ /* Return the square root of X.  */
+ double
+-__ieee754_sqrt (x)
+-     double x;
++__ieee754_sqrt (double x)
+ {
+   register double result;
+   asm ("fsqrtd %1, %0" : "=f" (result) : "f" (x));
+diff --git a/sysdeps/tile/wordcopy.c b/sysdeps/tile/wordcopy.c
+index f978d8fdcb14e73a..d939eaa09d0075a8 100644
+--- a/sysdeps/tile/wordcopy.c
++++ b/sysdeps/tile/wordcopy.c
+@@ -42,10 +42,7 @@
+    Both SRCP and DSTP should be aligned for memory operations on `op_t's.  */
+ 
+ void
+-_wordcopy_fwd_aligned (dstp, srcp, len)
+-     long int dstp;
+-     long int srcp;
+-     size_t len;
++_wordcopy_fwd_aligned (long int dstp, long int srcp, size_t len)
+ {
+   op_t a0, a1;
+ 
+@@ -156,10 +153,7 @@ _wordcopy_fwd_aligned (dstp, srcp, len)
+    *not* be aligned.  */
+ 
+ void
+-_wordcopy_fwd_dest_aligned (dstp, srcp, len)
+-     long int dstp;
+-     long int srcp;
+-     size_t len;
++_wordcopy_fwd_dest_aligned (long int dstp, long int srcp, size_t len)
+ {
+   void * srci;
+   op_t a0, a1, a2, a3;
+@@ -246,10 +240,7 @@ _wordcopy_fwd_dest_aligned (dstp, srcp, len)
+    operations on `op_t's.  */
+ 
+ void
+-_wordcopy_bwd_aligned (dstp, srcp, len)
+-     long int dstp;
+-     long int srcp;
+-     size_t len;
++_wordcopy_bwd_aligned (long int dstp, long int srcp, size_t len)
+ {
+   op_t a0, a1;
+   long int srcp1;
+@@ -357,10 +348,7 @@ _wordcopy_bwd_aligned (dstp, srcp, len)
+    operations on `op_t', but SRCP must *not* be aligned.  */
+ 
+ void
+-_wordcopy_bwd_dest_aligned (dstp, srcp, len)
+-     long int dstp;
+-     long int srcp;
+-     size_t len;
++_wordcopy_bwd_dest_aligned (long int dstp, long int srcp, size_t len)
+ {
+   void * srci;
+   op_t a0, a1, a2, a3;
+diff --git a/sysdeps/unix/bsd/ftime.c b/sysdeps/unix/bsd/ftime.c
+index 7c6dd29390dccff6..c7dda3fea71e96a9 100644
+--- a/sysdeps/unix/bsd/ftime.c
++++ b/sysdeps/unix/bsd/ftime.c
+@@ -19,8 +19,7 @@
+ #include <sys/time.h>
+ 
+ int
+-ftime (timebuf)
+-     struct timeb *timebuf;
++ftime (struct timeb *timebuf)
+ {
+   struct timeval tv;
+   struct timezone tz;
+diff --git a/sysdeps/unix/bsd/gtty.c b/sysdeps/unix/bsd/gtty.c
+index 4e1b7a2153e69578..8fd6e8a0e2742713 100644
+--- a/sysdeps/unix/bsd/gtty.c
++++ b/sysdeps/unix/bsd/gtty.c
+@@ -20,9 +20,7 @@
+ 
+ /* Fill in *PARAMS with terminal parameters associated with FD.  */
+ int
+-gtty (fd, params)
+-     int fd;
+-     struct sgttyb *params;
++gtty (int fd, struct sgttyb *params)
+ {
+   return ioctl (fd, TIOCGETP, (void *) params);
+ }
+diff --git a/sysdeps/unix/bsd/stty.c b/sysdeps/unix/bsd/stty.c
+index 1d630dc0b9ad365d..a13876028bf5d953 100644
+--- a/sysdeps/unix/bsd/stty.c
++++ b/sysdeps/unix/bsd/stty.c
+@@ -20,9 +20,7 @@
+ 
+ /* Set the terminal parameters associated with FD to *PARAMS.  */
+ int
+-stty (fd, params)
+-     int fd;
+-     const struct sgttyb *params;
++stty (int fd, const struct sgttyb *params)
+ {
+   return ioctl (fd, TIOCSETP, (void *) params);
+ }
+diff --git a/sysdeps/unix/bsd/tcflow.c b/sysdeps/unix/bsd/tcflow.c
+index dff63a5f28582165..4461395baa46836b 100644
+--- a/sysdeps/unix/bsd/tcflow.c
++++ b/sysdeps/unix/bsd/tcflow.c
+@@ -24,9 +24,7 @@
+ 
+ /* Suspend or restart transmission on FD.  */
+ int
+-tcflow (fd, action)
+-     int fd;
+-     int action;
++tcflow (int fd, int action)
+ {
+   switch (action)
+     {
+diff --git a/sysdeps/unix/bsd/tcflush.c b/sysdeps/unix/bsd/tcflush.c
+index 15d86e00541872fc..c87201222017d3d8 100644
+--- a/sysdeps/unix/bsd/tcflush.c
++++ b/sysdeps/unix/bsd/tcflush.c
+@@ -24,9 +24,7 @@
+ 
+ /* Flush pending data on FD.  */
+ int
+-tcflush (fd, queue_selector)
+-     int fd;
+-     int queue_selector;
++tcflush (int fd, int queue_selector)
+ {
+   int arg;
+ 
+diff --git a/sysdeps/unix/bsd/tcgetattr.c b/sysdeps/unix/bsd/tcgetattr.c
+index 140262f17d82fbdf..93b94e57d5d0752b 100644
+--- a/sysdeps/unix/bsd/tcgetattr.c
++++ b/sysdeps/unix/bsd/tcgetattr.c
+@@ -30,9 +30,7 @@
+ 
+ /* Put the state of FD into *TERMIOS_P.  */
+ int
+-__tcgetattr (fd, termios_p)
+-     int fd;
+-     struct termios *termios_p;
++__tcgetattr (int fd, struct termios *termios_p)
+ {
+   return __ioctl (fd, TIOCGETA, termios_p);
+ }
+diff --git a/sysdeps/unix/bsd/tcgetpgrp.c b/sysdeps/unix/bsd/tcgetpgrp.c
+index 6f675a89a86f62ba..3bfb74082963493e 100644
+--- a/sysdeps/unix/bsd/tcgetpgrp.c
++++ b/sysdeps/unix/bsd/tcgetpgrp.c
+@@ -22,8 +22,7 @@
+ 
+ /* Return the foreground process group ID of FD.  */
+ pid_t
+-tcgetpgrp (fd)
+-     int fd;
++tcgetpgrp (int fd)
+ {
+   int pgrp;
+ 
+diff --git a/sysdeps/unix/bsd/tcsendbrk.c b/sysdeps/unix/bsd/tcsendbrk.c
+index af6a71b34de0165c..61216f7442dfe468 100644
+--- a/sysdeps/unix/bsd/tcsendbrk.c
++++ b/sysdeps/unix/bsd/tcsendbrk.c
+@@ -27,9 +27,7 @@
+ 
+ /* Send zero bits on FD.  */
+ int
+-tcsendbreak (fd, duration)
+-     int fd;
+-     int duration;
++tcsendbreak (int fd, int duration)
+ {
+   struct timeval delay;
+ 
+diff --git a/sysdeps/unix/bsd/tcsetattr.c b/sysdeps/unix/bsd/tcsetattr.c
+index 8a5f71e713a2d17c..89b315a2e77aa314 100644
+--- a/sysdeps/unix/bsd/tcsetattr.c
++++ b/sysdeps/unix/bsd/tcsetattr.c
+@@ -32,10 +32,7 @@
+ 
+ /* Set the state of FD to *TERMIOS_P.  */
+ int
+-tcsetattr (fd, optional_actions, termios_p)
+-     int fd;
+-     int optional_actions;
+-     const struct termios *termios_p;
++tcsetattr (int fd, int optional_actions, const struct termios *termios_p)
+ {
+   struct termios myt;
+ 
+diff --git a/sysdeps/unix/bsd/tcsetpgrp.c b/sysdeps/unix/bsd/tcsetpgrp.c
+index 25ffb7fc35d5fc70..3d3347ee7cf1e9ad 100644
+--- a/sysdeps/unix/bsd/tcsetpgrp.c
++++ b/sysdeps/unix/bsd/tcsetpgrp.c
+@@ -22,9 +22,7 @@
+ 
+ /* Set the foreground process group ID of FD set PGRP_ID.  */
+ int
+-tcsetpgrp (fd, pgrp_id)
+-     int fd;
+-     pid_t pgrp_id;
++tcsetpgrp (int fd, pid_t pgrp_id)
+ {
+   return __ioctl (fd, TIOCSPGRP, &pgrp_id);
+ }
+diff --git a/sysdeps/unix/bsd/ualarm.c b/sysdeps/unix/bsd/ualarm.c
+index 9505d214819d68d5..c2f899baa5c05b05 100644
+--- a/sysdeps/unix/bsd/ualarm.c
++++ b/sysdeps/unix/bsd/ualarm.c
+@@ -24,9 +24,7 @@
+ 
+    Returns the number of microseconds remaining before the alarm.  */
+ useconds_t
+-ualarm (value, interval)
+-     useconds_t value;
+-     useconds_t interval;
++ualarm (useconds_t value, useconds_t interval)
+ {
+   struct itimerval timer, otimer;
+ 
+diff --git a/sysdeps/unix/bsd/wait3.c b/sysdeps/unix/bsd/wait3.c
+index d3056c1fd700b3df..97170d15ad34a4d9 100644
+--- a/sysdeps/unix/bsd/wait3.c
++++ b/sysdeps/unix/bsd/wait3.c
+@@ -25,10 +25,7 @@
+    there.  If the WUNTRACED bit is set in OPTIONS, return status for stopped
+    children; otherwise don't.  */
+ pid_t
+-__wait3 (stat_loc, options, usage)
+-     __WAIT_STATUS stat_loc;
+-     int options;
+-     struct rusage *usage;
++__wait3 (__WAIT_STATUS stat_loc, int options, struct rusage *usage)
+ {
+   return __wait4 (WAIT_ANY, stat_loc, options, usage);
+ }
+diff --git a/sysdeps/unix/getlogin_r.c b/sysdeps/unix/getlogin_r.c
+index 84c019fe6af28150..1957db10b51b3721 100644
+--- a/sysdeps/unix/getlogin_r.c
++++ b/sysdeps/unix/getlogin_r.c
+@@ -34,9 +34,7 @@
+ STATIC
+ #endif
+ int
+-getlogin_r (name, name_len)
+-     char *name;
+-     size_t name_len;
++getlogin_r (char *name, size_t name_len)
+ {
+   char tty_pathname[2 + 2 * NAME_MAX];
+   char *real_tty_path = tty_pathname;
+diff --git a/sysdeps/unix/sockatmark.c b/sysdeps/unix/sockatmark.c
+index 94ae1384462fecdb..30f76c2d7a504cc9 100644
+--- a/sysdeps/unix/sockatmark.c
++++ b/sysdeps/unix/sockatmark.c
+@@ -20,8 +20,7 @@
+ 
+ /* Determine wheter socket is at a out-of-band mark.  */
+ int
+-sockatmark (fd)
+-     int fd;
++sockatmark (int fd)
+ {
+   int answ;
+ 
+diff --git a/sysdeps/unix/stime.c b/sysdeps/unix/stime.c
+index ca011c94d820f88f..77895a7cea558010 100644
+--- a/sysdeps/unix/stime.c
++++ b/sysdeps/unix/stime.c
+@@ -23,8 +23,7 @@
+ /* Set the system clock to *WHEN.  */
+ 
+ int
+-stime (when)
+-     const time_t *when;
++stime (const time_t *when)
+ {
+   struct timeval tv;
+ 
+diff --git a/sysdeps/unix/sysv/linux/_exit.c b/sysdeps/unix/sysv/linux/_exit.c
+index 18c4fce07d10f5cb..44773888ae6d702a 100644
+--- a/sysdeps/unix/sysv/linux/_exit.c
++++ b/sysdeps/unix/sysv/linux/_exit.c
+@@ -23,8 +23,7 @@
+ 
+ 
+ void
+-_exit (status)
+-     int status;
++_exit (int status)
+ {
+   while (1)
+     {
+diff --git a/sysdeps/unix/sysv/linux/aio_sigqueue.c b/sysdeps/unix/sysv/linux/aio_sigqueue.c
+index 9ad149fe32fb214b..2ae83f1c2e6f6673 100644
+--- a/sysdeps/unix/sysv/linux/aio_sigqueue.c
++++ b/sysdeps/unix/sysv/linux/aio_sigqueue.c
+@@ -31,10 +31,8 @@
+ 
+ /* Return any pending signal or wait for one for the given time.  */
+ int
+-__aio_sigqueue (sig, val, caller_pid)
+-     int sig;
+-     const union sigval val;
+-     pid_t caller_pid;
++internal_function
++__aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
+ {
+   siginfo_t info;
+ 
+diff --git a/sysdeps/unix/sysv/linux/arm/sigaction.c b/sysdeps/unix/sysv/linux/arm/sigaction.c
+index 02b47e79e2139e0e..5214b34289a74545 100644
+--- a/sysdeps/unix/sysv/linux/arm/sigaction.c
++++ b/sysdeps/unix/sysv/linux/arm/sigaction.c
+@@ -55,10 +55,7 @@ extern void __default_rt_sa_restorer_v2(void);
+ /* If ACT is not NULL, change the action for SIG to *ACT.
+    If OACT is not NULL, put the old action for SIG in *OACT.  */
+ int
+-__libc_sigaction (sig, act, oact)
+-     int sig;
+-     const struct sigaction *act;
+-     struct sigaction *oact;
++__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+ {
+   int result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/faccessat.c b/sysdeps/unix/sysv/linux/faccessat.c
+index b015d55cab193ccc..abacaed1eb4e00da 100644
+--- a/sysdeps/unix/sysv/linux/faccessat.c
++++ b/sysdeps/unix/sysv/linux/faccessat.c
+@@ -29,11 +29,7 @@
+ 
+ 
+ int
+-faccessat (fd, file, mode, flag)
+-     int fd;
+-     const char *file;
+-     int mode;
+-     int flag;
++faccessat (int fd, const char *file, int mode, int flag)
+ {
+   if (flag & ~(AT_SYMLINK_NOFOLLOW | AT_EACCESS))
+     {
+diff --git a/sysdeps/unix/sysv/linux/fchmodat.c b/sysdeps/unix/sysv/linux/fchmodat.c
+index b9a033b0736ce129..fc743fdfe116cf21 100644
+--- a/sysdeps/unix/sysv/linux/fchmodat.c
++++ b/sysdeps/unix/sysv/linux/fchmodat.c
+@@ -28,11 +28,7 @@
+ #include <sysdep.h>
+ 
+ int
+-fchmodat (fd, file, mode, flag)
+-     int fd;
+-     const char *file;
+-     mode_t mode;
+-     int flag;
++fchmodat (int fd, const char *file, mode_t mode, int flag)
+ {
+   if (flag & ~AT_SYMLINK_NOFOLLOW)
+     {
+diff --git a/sysdeps/unix/sysv/linux/fpathconf.c b/sysdeps/unix/sysv/linux/fpathconf.c
+index 1e840edfa687d667..378a42c3e0e8dd0d 100644
+--- a/sysdeps/unix/sysv/linux/fpathconf.c
++++ b/sysdeps/unix/sysv/linux/fpathconf.c
+@@ -29,9 +29,7 @@ static long int posix_fpathconf (int fd, int name);
+ 
+ /* Get file-specific information about descriptor FD.  */
+ long int
+-__fpathconf (fd, name)
+-     int fd;
+-     int name;
++__fpathconf (int fd, int name)
+ {
+   struct statfs fsbuf;
+ 
+diff --git a/sysdeps/unix/sysv/linux/gai_sigqueue.c b/sysdeps/unix/sysv/linux/gai_sigqueue.c
+index 3896df0cd345bc8b..4da7fbbef40f03e8 100644
+--- a/sysdeps/unix/sysv/linux/gai_sigqueue.c
++++ b/sysdeps/unix/sysv/linux/gai_sigqueue.c
+@@ -30,10 +30,8 @@
+ 
+ /* Return any pending signal or wait for one for the given time.  */
+ int
+-__gai_sigqueue (sig, val, caller_pid)
+-     int sig;
+-     const union sigval val;
+-     pid_t caller_pid;
++internal_function
++__gai_sigqueue (int sig, const union sigval val, pid_t caller_pid)
+ {
+   siginfo_t info;
+ 
+diff --git a/sysdeps/unix/sysv/linux/gethostid.c b/sysdeps/unix/sysv/linux/gethostid.c
+index c9f4b4cbcbad6bdb..64100abcc7ece115 100644
+--- a/sysdeps/unix/sysv/linux/gethostid.c
++++ b/sysdeps/unix/sysv/linux/gethostid.c
+@@ -27,8 +27,7 @@
+ 
+ #ifdef SET_PROCEDURE
+ int
+-sethostid (id)
+-     long int id;
++sethostid (long int id)
+ {
+   int fd;
+   ssize_t written;
+diff --git a/sysdeps/unix/sysv/linux/getlogin_r.c b/sysdeps/unix/sysv/linux/getlogin_r.c
+index 187a7a1dcf197a79..157f8a661a5d24ad 100644
+--- a/sysdeps/unix/sysv/linux/getlogin_r.c
++++ b/sysdeps/unix/sysv/linux/getlogin_r.c
+@@ -32,9 +32,7 @@ static int getlogin_r_fd0 (char *name, size_t namesize);
+ 
+ int
+ attribute_hidden
+-__getlogin_r_loginuid (name, namesize)
+-     char *name;
+-     size_t namesize;
++__getlogin_r_loginuid (char *name, size_t namesize)
+ {
+   int fd = open_not_cancel_2 ("/proc/self/loginuid", O_RDONLY);
+   if (fd == -1)
+@@ -109,9 +107,7 @@ __getlogin_r_loginuid (name, namesize)
+    code.  Otherwise return 0.  */
+ 
+ int
+-getlogin_r (name, namesize)
+-     char *name;
+-     size_t namesize;
++getlogin_r (char *name, size_t namesize)
+ {
+   int res = __getlogin_r_loginuid (name, namesize);
+   if (res >= 0)
+diff --git a/sysdeps/unix/sysv/linux/getpt.c b/sysdeps/unix/sysv/linux/getpt.c
+index 30b14067e8811b08..4b6be2e9520e2ef9 100644
+--- a/sysdeps/unix/sysv/linux/getpt.c
++++ b/sysdeps/unix/sysv/linux/getpt.c
+@@ -35,8 +35,7 @@ int __bsd_getpt (void);
+ 
+ /* Open a master pseudo terminal and return its file descriptor.  */
+ int
+-__posix_openpt (oflag)
+-     int oflag;
++__posix_openpt (int oflag)
+ {
+   static int have_no_dev_ptmx;
+   int fd;
+diff --git a/sysdeps/unix/sysv/linux/i386/getmsg.c b/sysdeps/unix/sysv/linux/i386/getmsg.c
+index 12881b25afd546fe..c9133c89c7053705 100644
+--- a/sysdeps/unix/sysv/linux/i386/getmsg.c
++++ b/sysdeps/unix/sysv/linux/i386/getmsg.c
+@@ -24,11 +24,7 @@
+ 
+ #ifdef __NR_getpmsg
+ int
+-getmsg (fildes, ctlptr, dataptr, flagsp)
+-     int fildes;
+-     struct strbuf *ctlptr;
+-     struct strbuf *dataptr;
+-     int *flagsp;
++getmsg (int fildes, struct strbuf *ctlptr, struct strbuf *dataptr, int *flagsp)
+ {
+   return INLINE_SYSCALL (getpmsg, 5, fildes, ctlptr, dataptr, NULL, flagsp);
+ }
+diff --git a/sysdeps/unix/sysv/linux/i386/setegid.c b/sysdeps/unix/sysv/linux/i386/setegid.c
+index 20170e327e2a631d..0d663fba929525e9 100644
+--- a/sysdeps/unix/sysv/linux/i386/setegid.c
++++ b/sysdeps/unix/sysv/linux/i386/setegid.c
+@@ -21,8 +21,7 @@
+ 
+ 
+ int
+-setegid (gid)
+-     gid_t gid;
++setegid (gid_t gid)
+ {
+   int result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/ia64/sigaction.c b/sysdeps/unix/sysv/linux/ia64/sigaction.c
+index 403b6d8fd0c9b92f..cce54adabc1aa386 100644
+--- a/sysdeps/unix/sysv/linux/ia64/sigaction.c
++++ b/sysdeps/unix/sysv/linux/ia64/sigaction.c
+@@ -34,10 +34,7 @@
+ /* If ACT is not NULL, change the action for SIG to *ACT.
+    If OACT is not NULL, put the old action for SIG in *OACT.  */
+ int
+-__libc_sigaction (sig, act, oact)
+-     int sig;
+-     const struct sigaction *act;
+-     struct sigaction *oact;
++__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+ {
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+diff --git a/sysdeps/unix/sysv/linux/ia64/sigpending.c b/sysdeps/unix/sysv/linux/ia64/sigpending.c
+index c56147c97802108b..a281fe1bb5dbc9e9 100644
+--- a/sysdeps/unix/sysv/linux/ia64/sigpending.c
++++ b/sysdeps/unix/sysv/linux/ia64/sigpending.c
+@@ -28,8 +28,7 @@
+ /* Change the set of blocked signals to SET,
+    wait until a signal arrives, and restore the set of blocked signals.  */
+ int
+-sigpending (set)
+-     sigset_t *set;
++sigpending (sigset_t *set)
+ {
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+diff --git a/sysdeps/unix/sysv/linux/ia64/sigprocmask.c b/sysdeps/unix/sysv/linux/ia64/sigprocmask.c
+index 97fd364073bfd4f4..7465c9f61bc1ec32 100644
+--- a/sysdeps/unix/sysv/linux/ia64/sigprocmask.c
++++ b/sysdeps/unix/sysv/linux/ia64/sigprocmask.c
+@@ -29,10 +29,7 @@
+ 
+ /* Get and/or change the set of blocked signals.  */
+ int
+-__sigprocmask (how, set, oset)
+-     int how;
+-     const sigset_t *set;
+-     sigset_t *oset;
++__sigprocmask (int how, const sigset_t *set, sigset_t *oset)
+ {
+ 
+   /* XXX The size argument hopefully will have to be changed to the
+diff --git a/sysdeps/unix/sysv/linux/mips/sigaction.c b/sysdeps/unix/sysv/linux/mips/sigaction.c
+index b6e6811a271344a3..76eb278349808a32 100644
+--- a/sysdeps/unix/sysv/linux/mips/sigaction.c
++++ b/sysdeps/unix/sysv/linux/mips/sigaction.c
+@@ -45,10 +45,7 @@ static void restore (void) asm ("__restore");
+ /* If ACT is not NULL, change the action for SIG to *ACT.
+    If OACT is not NULL, put the old action for SIG in *OACT.  */
+ int
+-__libc_sigaction (sig, act, oact)
+-     int sig;
+-     const struct sigaction *act;
+-     struct sigaction *oact;
++__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+ {
+   int result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/msgget.c b/sysdeps/unix/sysv/linux/msgget.c
+index 6f32b4579bba8e06..183273e4f0f1af42 100644
+--- a/sysdeps/unix/sysv/linux/msgget.c
++++ b/sysdeps/unix/sysv/linux/msgget.c
+@@ -28,9 +28,7 @@
+    parameter describes how to proceed with clashing of key values.  */
+ 
+ int
+-msgget (key, msgflg)
+-     key_t key;
+-     int msgflg;
++msgget (key_t key, int msgflg)
+ {
+   return INLINE_SYSCALL (ipc, 5, IPCOP_msgget, key, msgflg, 0, NULL);
+ }
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/ftruncate64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/ftruncate64.c
+index 494d898b2f07530a..d8d0214f9a1332a0 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/ftruncate64.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/ftruncate64.c
+@@ -24,9 +24,7 @@
+ 
+ /* Truncate the file referenced by FD to LENGTH bytes.  */
+ int
+-__ftruncate64 (fd, length)
+-     int fd;
+-     off64_t length;
++__ftruncate64 (int fd, off64_t length)
+ {
+   /* On PPC32 64bit values are aligned in odd/even register pairs.  */
+   int result = INLINE_SYSCALL (ftruncate64, 4, fd, 0,
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c
+index 6f416599e9ebdd1d..c97410f4076fa835 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c
+@@ -24,9 +24,7 @@
+ 
+ /* Truncate the file referenced by FD to LENGTH bytes.  */
+ int
+-truncate64 (path, length)
+-     const char *path;
+-     off64_t length;
++truncate64 (const char *path, off64_t length)
+ {
+   /* On PPC32 64bit values are aligned in odd/even register pairs.  */
+   int result = INLINE_SYSCALL (truncate64, 4, path, 0,
+diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c b/sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c
+index 58004063e4e044c3..ff4ae7d00dc1a137 100644
+--- a/sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c
++++ b/sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c
+@@ -32,10 +32,7 @@
+ /* If ACT is not NULL, change the action for SIG to *ACT.
+    If OACT is not NULL, put the old action for SIG in *OACT.  */
+ int
+-__libc_sigaction (sig, act, oact)
+-     int sig;
+-     const struct sigaction *act;
+-     struct sigaction *oact;
++__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+ {
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sigpending.c b/sysdeps/unix/sysv/linux/s390/s390-64/sigpending.c
+index e3bae5492d61923f..0e1a7852e41f1214 100644
+--- a/sysdeps/unix/sysv/linux/s390/s390-64/sigpending.c
++++ b/sysdeps/unix/sysv/linux/s390/s390-64/sigpending.c
+@@ -28,8 +28,7 @@
+ /* Change the set of blocked signals to SET,
+    wait until a signal arrives, and restore the set of blocked signals.  */
+ int
+-sigpending (set)
+-     sigset_t *set;
++sigpending (sigset_t *set)
+ {
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c b/sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c
+index c96ee352323ae791..af30e9401eac5b92 100644
+--- a/sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c
++++ b/sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c
+@@ -27,10 +27,7 @@
+ 
+ /* Get and/or change the set of blocked signals.  */
+ int
+-__sigprocmask (how, set, oset)
+-     int how;
+-     const sigset_t *set;
+-     sigset_t *oset;
++__sigprocmask (int how, const sigset_t *set, sigset_t *oset)
+ {
+ 
+   /* XXX The size argument hopefully will have to be changed to the
+diff --git a/sysdeps/unix/sysv/linux/semget.c b/sysdeps/unix/sysv/linux/semget.c
+index 8b69e64e136ad582..30c0e00b7d5f9cd2 100644
+--- a/sysdeps/unix/sysv/linux/semget.c
++++ b/sysdeps/unix/sysv/linux/semget.c
+@@ -28,10 +28,7 @@
+    KEY.  */
+ 
+ int
+-semget (key, nsems, semflg)
+-     key_t key;
+-     int nsems;
+-     int semflg;
++semget (key_t key, int nsems, int semflg)
+ {
+   return INLINE_SYSCALL (ipc, 5, IPCOP_semget, key, nsems, semflg, NULL);
+ }
+diff --git a/sysdeps/unix/sysv/linux/semop.c b/sysdeps/unix/sysv/linux/semop.c
+index 4cd6891976858cc2..9dd3519bb3a33918 100644
+--- a/sysdeps/unix/sysv/linux/semop.c
++++ b/sysdeps/unix/sysv/linux/semop.c
+@@ -26,10 +26,7 @@
+ /* Perform user-defined atomical operation of array of semaphores.  */
+ 
+ int
+-semop (semid, sops, nsops)
+-     int semid;
+-     struct sembuf *sops;
+-     size_t nsops;
++semop (int semid, struct sembuf *sops, size_t nsops)
+ {
+   return INLINE_SYSCALL (ipc, 5, IPCOP_semop, semid, (int) nsops, 0, sops);
+ }
+diff --git a/sysdeps/unix/sysv/linux/setrlimit64.c b/sysdeps/unix/sysv/linux/setrlimit64.c
+index 5ab8068e50f59b4b..44aa2f452f8bc0d1 100644
+--- a/sysdeps/unix/sysv/linux/setrlimit64.c
++++ b/sysdeps/unix/sysv/linux/setrlimit64.c
+@@ -25,9 +25,7 @@
+    Only the super-user can increase hard limits.
+    Return 0 if successful, -1 if not (and sets errno).  */
+ int
+-setrlimit64 (resource, rlimits)
+-     enum __rlimit_resource resource;
+-     const struct rlimit64 *rlimits;
++setrlimit64 (enum __rlimit_resource resource, const struct rlimit64 *rlimits)
+ {
+ #ifdef __ASSUME_PRLIMIT64
+   return INLINE_SYSCALL (prlimit64, 4, 0, resource, rlimits, NULL);
+diff --git a/sysdeps/unix/sysv/linux/shmat.c b/sysdeps/unix/sysv/linux/shmat.c
+index 401f00b7c01a6a14..02ed357ffa1cbd12 100644
+--- a/sysdeps/unix/sysv/linux/shmat.c
++++ b/sysdeps/unix/sysv/linux/shmat.c
+@@ -29,10 +29,7 @@
+    and where the segment is attached.  */
+ 
+ void *
+-shmat (shmid, shmaddr, shmflg)
+-     int shmid;
+-     const void *shmaddr;
+-     int shmflg;
++shmat (int shmid, const void *shmaddr, int shmflg)
+ {
+   INTERNAL_SYSCALL_DECL(err);
+   unsigned long resultvar;
+diff --git a/sysdeps/unix/sysv/linux/shmdt.c b/sysdeps/unix/sysv/linux/shmdt.c
+index c7fd62d3c1c82ffb..fd503c5054133cb5 100644
+--- a/sysdeps/unix/sysv/linux/shmdt.c
++++ b/sysdeps/unix/sysv/linux/shmdt.c
+@@ -27,8 +27,7 @@
+    from the caller's data segment.  */
+ 
+ int
+-shmdt (shmaddr)
+-     const void *shmaddr;
++shmdt (const void *shmaddr)
+ {
+   return INLINE_SYSCALL (ipc, 5, IPCOP_shmdt, 0, 0, 0, (void *) shmaddr);
+ }
+diff --git a/sysdeps/unix/sysv/linux/shmget.c b/sysdeps/unix/sysv/linux/shmget.c
+index 60d448a3bca43508..244321f35da55f95 100644
+--- a/sysdeps/unix/sysv/linux/shmget.c
++++ b/sysdeps/unix/sysv/linux/shmget.c
+@@ -28,10 +28,7 @@
+    which is associated with KEY.  */
+ 
+ int
+-shmget (key, size, shmflg)
+-     key_t key;
+-     size_t size;
+-     int shmflg;
++shmget (key_t key, size_t size, int shmflg)
+ {
+   return INLINE_SYSCALL (ipc, 5, IPCOP_shmget, key, size, shmflg, NULL);
+ }
+diff --git a/sysdeps/unix/sysv/linux/sigaction.c b/sysdeps/unix/sysv/linux/sigaction.c
+index 0eee8e6b0322399a..37bf4e85f892be81 100644
+--- a/sysdeps/unix/sysv/linux/sigaction.c
++++ b/sysdeps/unix/sysv/linux/sigaction.c
+@@ -33,10 +33,7 @@
+ /* If ACT is not NULL, change the action for SIG to *ACT.
+    If OACT is not NULL, put the old action for SIG in *OACT.  */
+ int
+-__libc_sigaction (sig, act, oact)
+-     int sig;
+-     const struct sigaction *act;
+-     struct sigaction *oact;
++__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
+ {
+   int result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/sigpending.c b/sysdeps/unix/sysv/linux/sigpending.c
+index bd6126143923ab8e..312e71f603a50d59 100644
+--- a/sysdeps/unix/sysv/linux/sigpending.c
++++ b/sysdeps/unix/sysv/linux/sigpending.c
+@@ -28,8 +28,7 @@
+ /* Change the set of blocked signals to SET,
+    wait until a signal arrives, and restore the set of blocked signals.  */
+ int
+-sigpending (set)
+-     sigset_t *set;
++sigpending (sigset_t *set)
+ {
+   return INLINE_SYSCALL (rt_sigpending, 2, set, _NSIG / 8);
+ }
+diff --git a/sysdeps/unix/sysv/linux/sigprocmask.c b/sysdeps/unix/sysv/linux/sigprocmask.c
+index 8d69613049c9629c..4b171201b75a747e 100644
+--- a/sysdeps/unix/sysv/linux/sigprocmask.c
++++ b/sysdeps/unix/sysv/linux/sigprocmask.c
+@@ -28,10 +28,7 @@
+ 
+ /* Get and/or change the set of blocked signals.  */
+ int
+-__sigprocmask (how, set, oset)
+-     int how;
+-     const sigset_t *set;
+-     sigset_t *oset;
++__sigprocmask (int how, const sigset_t *set, sigset_t *oset)
+ {
+ #ifdef SIGCANCEL
+   sigset_t local_newmask;
+diff --git a/sysdeps/unix/sysv/linux/sigqueue.c b/sysdeps/unix/sysv/linux/sigqueue.c
+index e4470d4ca660f9b8..703e60b28ae54321 100644
+--- a/sysdeps/unix/sysv/linux/sigqueue.c
++++ b/sysdeps/unix/sysv/linux/sigqueue.c
+@@ -26,10 +26,7 @@
+ #ifdef __NR_rt_sigqueueinfo
+ /* Return any pending signal or wait for one for the given time.  */
+ int
+-__sigqueue (pid, sig, val)
+-     pid_t pid;
+-     int sig;
+-     const union sigval val;
++__sigqueue (pid_t pid, int sig, const union sigval val)
+ {
+   siginfo_t info;
+ 
+diff --git a/sysdeps/unix/sysv/linux/sigstack.c b/sysdeps/unix/sysv/linux/sigstack.c
+index 81e752bf4cbbfa35..13cb3552244a2879 100644
+--- a/sysdeps/unix/sysv/linux/sigstack.c
++++ b/sysdeps/unix/sysv/linux/sigstack.c
+@@ -24,9 +24,7 @@
+ 
+ #ifdef __NR_sigaltstack
+ int
+-sigstack (ss, oss)
+-     struct sigstack *ss;
+-     struct sigstack *oss;
++sigstack (struct sigstack *ss, struct sigstack *oss)
+ {
+   stack_t sas;
+   stack_t *sasp = NULL;
+diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c b/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c
+index 7548435ca29ae294..06a0d93ec1821173 100644
+--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c
++++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigpending.c
+@@ -25,8 +25,7 @@
+ /* Change the set of blocked signals to SET,
+    wait until a signal arrives, and restore the set of blocked signals.  */
+ int
+-sigpending (set)
+-     sigset_t *set;
++sigpending (sigset_t *set)
+ {
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c b/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
+index 60f95b4f554d7966..2e8d3bed5a0a299e 100644
+--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
++++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c
+@@ -24,10 +24,7 @@
+ 
+ /* Get and/or change the set of blocked signals.  */
+ int
+-__sigprocmask (how, set, oset)
+-     int how;
+-     const sigset_t *set;
+-     sigset_t *oset;
++__sigprocmask (int how, const sigset_t *set, sigset_t *oset)
+ {
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+diff --git a/sysdeps/unix/sysv/linux/speed.c b/sysdeps/unix/sysv/linux/speed.c
+index e41a9c0399c5c581..7be18dc3f7093a4c 100644
+--- a/sysdeps/unix/sysv/linux/speed.c
++++ b/sysdeps/unix/sysv/linux/speed.c
+@@ -35,8 +35,7 @@
+ 
+ /* Return the output baud rate stored in *TERMIOS_P.  */
+ speed_t
+-cfgetospeed (termios_p)
+-     const struct termios *termios_p;
++cfgetospeed (const struct termios *termios_p)
+ {
+   return termios_p->c_cflag & (CBAUD | CBAUDEX);
+ }
+@@ -46,8 +45,7 @@ cfgetospeed (termios_p)
+    speed, the numerical 0 is a special case for the input baud rate. It
+    should set the input baud rate to the output baud rate. */
+ speed_t
+-cfgetispeed (termios_p)
+-     const struct termios *termios_p;
++cfgetispeed (const struct termios *termios_p)
+ {
+   return ((termios_p->c_iflag & IBAUD0)
+ 	  ? 0 : termios_p->c_cflag & (CBAUD | CBAUDEX));
+@@ -55,9 +53,7 @@ cfgetispeed (termios_p)
+ 
+ /* Set the output baud rate stored in *TERMIOS_P to SPEED.  */
+ int
+-cfsetospeed  (termios_p, speed)
+-     struct termios *termios_p;
+-     speed_t speed;
++cfsetospeed (struct termios *termios_p, speed_t speed)
+ {
+   if ((speed & ~CBAUD) != 0
+       && (speed < B57600 || speed > __MAX_BAUD))
+@@ -82,9 +78,7 @@ libc_hidden_def (cfsetospeed)
+    speed, the numerical 0 is a special case for the input baud rate.  It
+    should set the input baud rate to the output baud rate.  */
+ int
+-cfsetispeed (termios_p, speed)
+-     struct termios *termios_p;
+-     speed_t speed;
++cfsetispeed (struct termios *termios_p, speed_t speed)
+ {
+   if ((speed & ~CBAUD) != 0
+       && (speed < B57600 || speed > __MAX_BAUD))
+diff --git a/sysdeps/unix/sysv/linux/tcflow.c b/sysdeps/unix/sysv/linux/tcflow.c
+index 6c0a2390b5852ed1..e494581da46466f6 100644
+--- a/sysdeps/unix/sysv/linux/tcflow.c
++++ b/sysdeps/unix/sysv/linux/tcflow.c
+@@ -22,9 +22,7 @@
+ 
+ /* Suspend or restart transmission on FD.  */
+ int
+-tcflow (fd, action)
+-     int fd;
+-     int action;
++tcflow (int fd, int action)
+ {
+   return __ioctl (fd, TCXONC, action);
+ }
+diff --git a/sysdeps/unix/sysv/linux/tcflush.c b/sysdeps/unix/sysv/linux/tcflush.c
+index 72b89e3c1431da6a..5eb5a31694fbc7d6 100644
+--- a/sysdeps/unix/sysv/linux/tcflush.c
++++ b/sysdeps/unix/sysv/linux/tcflush.c
+@@ -22,9 +22,7 @@
+ 
+ /* Flush pending data on FD.  */
+ int
+-tcflush (fd, queue_selector)
+-     int fd;
+-     int queue_selector;
++tcflush (int fd, int queue_selector)
+ {
+   return __ioctl (fd, TCFLSH, queue_selector);
+ }
+diff --git a/sysdeps/unix/sysv/linux/tcgetattr.c b/sysdeps/unix/sysv/linux/tcgetattr.c
+index d05b5f3a0693110c..a4f5e99b768c5116 100644
+--- a/sysdeps/unix/sysv/linux/tcgetattr.c
++++ b/sysdeps/unix/sysv/linux/tcgetattr.c
+@@ -30,9 +30,7 @@
+ 
+ /* Put the state of FD into *TERMIOS_P.  */
+ int
+-__tcgetattr (fd, termios_p)
+-      int fd;
+-      struct termios *termios_p;
++__tcgetattr (int fd, struct termios *termios_p)
+ {
+   struct __kernel_termios k_termios;
+   int retval;
+diff --git a/sysdeps/unix/sysv/linux/tcsetattr.c b/sysdeps/unix/sysv/linux/tcsetattr.c
+index 62ed93993f3ede81..7409e30270735c11 100644
+--- a/sysdeps/unix/sysv/linux/tcsetattr.c
++++ b/sysdeps/unix/sysv/linux/tcsetattr.c
+@@ -41,10 +41,7 @@
+ 
+ /* Set the state of FD to *TERMIOS_P.  */
+ int
+-tcsetattr (fd, optional_actions, termios_p)
+-     int fd;
+-     int optional_actions;
+-     const struct termios *termios_p;
++tcsetattr (int fd, int optional_actions, const struct termios *termios_p)
+ {
+   struct __kernel_termios k_termios;
+   unsigned long int cmd;
+diff --git a/sysdeps/unix/sysv/linux/time.c b/sysdeps/unix/sysv/linux/time.c
+index a73783e3629b3bbd..f3aa234bd2c5c9eb 100644
+--- a/sysdeps/unix/sysv/linux/time.c
++++ b/sysdeps/unix/sysv/linux/time.c
+@@ -23,8 +23,7 @@
+ #ifdef __NR_time
+ 
+ time_t
+-time (t)
+-     time_t *t;
++time (time_t *t)
+ {
+   INTERNAL_SYSCALL_DECL (err);
+   time_t res = INTERNAL_SYSCALL (time, err, 1, NULL);
+diff --git a/sysdeps/unix/sysv/linux/x86_64/sigpending.c b/sysdeps/unix/sysv/linux/x86_64/sigpending.c
+index 7e448c0327cbcd19..16dd2e72f83a6431 100644
+--- a/sysdeps/unix/sysv/linux/x86_64/sigpending.c
++++ b/sysdeps/unix/sysv/linux/x86_64/sigpending.c
+@@ -28,8 +28,7 @@
+ /* Change the set of blocked signals to SET,
+    wait until a signal arrives, and restore the set of blocked signals.  */
+ int
+-sigpending (set)
+-     sigset_t *set;
++sigpending (sigset_t *set)
+ {
+   /* XXX The size argument hopefully will have to be changed to the
+      real size of the user-level sigset_t.  */
+diff --git a/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c b/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c
+index 210fd97f9f33521e..8e7e9ffa34077f56 100644
+--- a/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c
++++ b/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c
+@@ -28,10 +28,7 @@
+ 
+ /* Get and/or change the set of blocked signals.  */
+ int
+-__sigprocmask (how, set, oset)
+-     int how;
+-     const sigset_t *set;
+-     sigset_t *oset;
++__sigprocmask (int how, const sigset_t *set, sigset_t *oset)
+ {
+ 
+   /* XXX The size argument hopefully will have to be changed to the
+diff --git a/sysdeps/x86_64/backtrace.c b/sysdeps/x86_64/backtrace.c
+index 8d6599ac1e3780ac..753a003f0368e10d 100644
+--- a/sysdeps/x86_64/backtrace.c
++++ b/sysdeps/x86_64/backtrace.c
+@@ -92,9 +92,7 @@ backtrace_helper (struct _Unwind_Context *ctx, void *a)
+ }
+ 
+ int
+-__backtrace (array, size)
+-     void **array;
+-     int size;
++__backtrace (void **array, int size)
+ {
+   struct trace_arg arg = { .array = array, .cfa = 0, .size = size, .cnt = -1 };
+ #ifdef SHARED
diff --git a/SOURCES/glibc-rh1505492-prototypes-13.patch b/SOURCES/glibc-rh1505492-prototypes-13.patch
new file mode 100644
index 0000000..09a5735
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-13.patch
@@ -0,0 +1,1329 @@
+commit f63f2bfdfaad591305863a79c4fd2c3f50015f26
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Mon Oct 19 21:23:47 2015 +0000
+
+    Convert 69 more function definitions to prototype style (line wrap cases).
+    
+    This automatically-generated patch converts 69 function definitions in
+    glibc from old-style K&R to prototype-style.
+    
+    This patch, covering both sysdeps and non-sysdeps files, deals with
+    cases where the prototype needed to be wrapped over more than one
+    line.  Otherwise, exclusions and caveats are as for
+    <https://sourceware.org/ml/libc-alpha/2015-10/msg00594.html> and
+    <https://sourceware.org/ml/libc-alpha/2015-10/msg00599.html>.
+    
+    Tested for x86_64 and x86 (testsuite, and that installed stripped
+    shared libraries are unchanged by the patch).
+    
+            * crypt/crypt-entry.c (__crypt_r): Convert to prototype-style
+            function definition.
+            * crypt/crypt_util.c (__encrypt_r): Likewise.
+            * libio/genops.c (_IO_no_init): Likewise.
+            * libio/iofopncook.c (_IO_fopencookie): Likewise.
+            (_IO_old_fopencookie): Likewise.
+            * libio/iofwrite_u.c (fwrite_unlocked): Likewise.
+            * libio/iogetline.c (_IO_getline): Likewise.
+            (_IO_getline_info): Likewise.
+            * libio/iogetwline.c (_IO_getwline): Likewise.
+            (_IO_getwline_info): Likewise.
+            * libio/vsnprintf.c (_IO_vsnprintf): Likewise.
+            * libio/vswprintf.c (_IO_vswprintf): Likewise.
+            * locale/programs/simple-hash.c (insert_entry_2): Likewise.
+            (find_entry): Likewise.
+            (iterate_table): Likewise.
+            (lookup): Likewise.
+            * login/forkpty.c (forkpty): Likewise.
+            * misc/hsearch_r.c (__hsearch_r): Likewise.
+            * misc/select.c (__select): Likewise.
+            * nptl/cleanup_defer_compat.c (_pthread_cleanup_pop_restore):
+            Likewise.
+            * nptl/old_pthread_cond_init.c (__pthread_cond_init_2_0):
+            Likewise.
+            * nptl/old_pthread_cond_timedwait.c
+            (__pthread_cond_timedwait_2_0): Likewise.
+            * nptl/pthread_barrier_init.c (__pthread_barrier_init): Likewise.
+            * nptl/pthread_barrierattr_getpshared.c
+            (pthread_barrierattr_getpshared): Likewise.
+            * nptl/pthread_getschedparam.c (__pthread_getschedparam):
+            Likewise.
+            * nptl/pthread_mutex_setprioceiling.c
+            (pthread_mutex_setprioceiling): Likewise.
+            * nptl/pthread_mutexattr_getprioceiling.c
+            (pthread_mutexattr_getprioceiling): Likewise.
+            * nptl/pthread_rwlock_init.c (__pthread_rwlock_init): Likewise.
+            * nptl/pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
+            Likewise.
+            * nptl/pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
+            Likewise.
+            * nptl/pthread_setschedparam.c (__pthread_setschedparam):
+            Likewise.
+            * socket/recvfrom.c (__recvfrom): Likewise.
+            * socket/sendto.c (__sendto): Likewise.
+            * socket/setsockopt.c (__setsockopt): Likewise.
+            * stdio-common/_itoa.c (_itoa): Likewise.
+            * stdio-common/_itowa.c (_itowa): Likewise.
+            * stdio-common/reg-printf.c (__register_printf_specifier):
+            Likewise.
+            (__register_printf_function): Likewise.
+            * stdio-common/tempname.c (__path_search): Likewise.
+            * stdlib/addmul_1.c (mpn_addmul_1): Likewise.
+            * stdlib/mul_1.c (mpn_mul_1): Likewise.
+            * stdlib/random_r.c (__initstate_r): Likewise.
+            * stdlib/setenv.c (__add_to_environ): Likewise.
+            * stdlib/submul_1.c (mpn_submul_1): Likewise.
+            * streams/getpmsg.c (getpmsg): Likewise.
+            * streams/putmsg.c (putmsg): Likewise.
+            * streams/putpmsg.c (putpmsg): Likewise.
+            * sunrpc/clnt_raw.c (clntraw_call): Likewise.
+            * sunrpc/clnt_tcp.c (clnttcp_call): Likewise.
+            * sunrpc/clnt_udp.c (clntudp_create): Likewise.
+            * sunrpc/clnt_unix.c (clntunix_call): Likewise.
+            * sunrpc/pm_getport.c (pmap_getport): Likewise.
+            * sunrpc/svc_udp.c (cache_get): Likewise.
+            * sunrpc/xdr_array.c (xdr_vector): Likewise.
+            * sysdeps/mach/hurd/getcwd.c
+            (__canonicalize_directory_name_internal): Likewise.
+            * sysdeps/mach/hurd/pselect.c (__pselect): Likewise.
+            * sysdeps/mach/hurd/recvfrom.c (__recvfrom): Likewise.
+            * sysdeps/mach/hurd/select.c (__select): Likewise.
+            * sysdeps/posix/ttyname_r.c (getttyname_r): Likewise.
+            * sysdeps/pthread/timer_settime.c (timer_settime): Likewise.
+            * sysdeps/sparc/nptl/pthread_barrier_init.c
+            (__pthread_barrier_init): Likewise.
+            * sysdeps/unix/sysv/linux/hppa/pthread_cond_timedwait.c
+            (__pthread_cond_timedwait): Likewise.
+            * sysdeps/unix/sysv/linux/i386/putmsg.c (putmsg): Likewise.
+            * sysdeps/unix/sysv/linux/s390/semtimedop.c (semtimedop):
+            Likewise.
+            * sysdeps/unix/sysv/linux/semtimedop.c (semtimedop): Likewise.
+            * sysdeps/unix/sysv/linux/timer_settime.c (timer_settime):
+            Likewise.
+            * sysvipc/semtimedop.c (semtimedop): Likewise.
+            * time/setitimer.c (__setitimer): Likewise.
+            * time/strftime_l.c (emacs_strftime): Likewise.
+
+Conflicts:
+	misc/hsearch_r.c
+	  (Missing backport of fix for swbz#17996.)
+	nptl/pthread_barrier_init.c
+	  (Missing backport of fix for swbz#18544.)
+	sysdeps/pthread/timer_settime.c
+	  (Applied to nptl/sysdeps/pthread/timer_settime.c.)
+	sysdeps/sparc/nptl/pthread_barrier_init.c
+	  (Missing fix for swbz#18544.  Applied to
+	  nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c.)
+	sysdeps/unix/sysv/linux/hppa/pthread_cond_timedwait.c
+	  (Missing backport of d83f0734e1522a5e5ea2494565f4dcd25a86d6a0,
+	  HPPA: Transition to new non-addon NPTL; files removed manually.)
+	sysdeps/unix/sysv/linux/timer_settime.c
+	  (Applied to nptl/sysdeps/unix/sysv/linux/timer_settime.c.)
+
+diff --git a/crypt/crypt-entry.c b/crypt/crypt-entry.c
+index 1ad36c7d05e7b7c1..647debc9ec98f3fb 100644
+--- a/crypt/crypt-entry.c
++++ b/crypt/crypt-entry.c
+@@ -81,10 +81,8 @@ extern struct crypt_data _ufc_foobar;
+  */
+ 
+ char *
+-__crypt_r (key, salt, data)
+-     const char *key;
+-     const char *salt;
+-     struct crypt_data * __restrict data;
++__crypt_r (const char *key, const char *salt,
++	   struct crypt_data * __restrict data)
+ {
+   ufc_long res[4];
+   char ktab[9];
+diff --git a/crypt/crypt_util.c b/crypt/crypt_util.c
+index bbb2ca2b58490e35..954bbfcfebd169b6 100644
+--- a/crypt/crypt_util.c
++++ b/crypt/crypt_util.c
+@@ -805,10 +805,8 @@ _ufc_output_conversion_r(v1, v2, salt, __data)
+  */
+ 
+ void
+-__encrypt_r(__block, __edflag, __data)
+-     char *__block;
+-     int __edflag;
+-     struct crypt_data * __restrict __data;
++__encrypt_r (char *__block, int __edflag,
++	     struct crypt_data * __restrict __data)
+ {
+   ufc_long l1, l2, r1, r2, res[4];
+   int i;
+diff --git a/libio/genops.c b/libio/genops.c
+index bad6ec65e25de31b..09a9c2eacf1fcaea 100644
+--- a/libio/genops.c
++++ b/libio/genops.c
+@@ -600,12 +600,8 @@ _IO_old_init (_IO_FILE *fp, int flags)
+ }
+ 
+ void
+-_IO_no_init (fp, flags, orientation, wd, jmp)
+-     _IO_FILE *fp;
+-     int flags;
+-     int orientation;
+-     struct _IO_wide_data *wd;
+-     const struct _IO_jump_t *jmp;
++_IO_no_init (_IO_FILE *fp, int flags, int orientation,
++	     struct _IO_wide_data *wd, const struct _IO_jump_t *jmp)
+ {
+   _IO_old_init (fp, flags);
+   fp->_mode = orientation;
+diff --git a/libio/iofopncook.c b/libio/iofopncook.c
+index d5c28f31c377905a..f1ac641ee6537fd6 100644
+--- a/libio/iofopncook.c
++++ b/libio/iofopncook.c
+@@ -170,10 +170,8 @@ _IO_cookie_init (struct _IO_cookie_file *cfile, int read_write,
+ 
+ 
+ _IO_FILE *
+-_IO_fopencookie (cookie, mode, io_functions)
+-     void *cookie;
+-     const char *mode;
+-     _IO_cookie_io_functions_t io_functions;
++_IO_fopencookie (void *cookie, const char *mode,
++		 _IO_cookie_io_functions_t io_functions)
+ {
+   int read_write;
+   struct locked_FILE
+@@ -264,10 +262,8 @@ static const struct _IO_jump_t _IO_old_cookie_jumps libio_vtable = {
+ 
+ _IO_FILE *
+ attribute_compat_text_section
+-_IO_old_fopencookie (cookie, mode, io_functions)
+-     void *cookie;
+-     const char *mode;
+-     _IO_cookie_io_functions_t io_functions;
++_IO_old_fopencookie (void *cookie, const char *mode,
++		     _IO_cookie_io_functions_t io_functions)
+ {
+   _IO_FILE *ret;
+ 
+diff --git a/libio/iofwrite_u.c b/libio/iofwrite_u.c
+index a1077eeb922640d3..99b049cc37beb6de 100644
+--- a/libio/iofwrite_u.c
++++ b/libio/iofwrite_u.c
+@@ -30,11 +30,8 @@
+ #undef fwrite_unlocked
+ 
+ _IO_size_t
+-fwrite_unlocked (buf, size, count, fp)
+-     const void *buf;
+-     _IO_size_t size;
+-     _IO_size_t count;
+-     _IO_FILE *fp;
++fwrite_unlocked (const void *buf, _IO_size_t size, _IO_size_t count,
++		 _IO_FILE *fp)
+ {
+   _IO_size_t request = size * count;
+   _IO_size_t written = 0;
+diff --git a/libio/iogetline.c b/libio/iogetline.c
+index bdb35b30fbcf1bee..a521e94949c42d4e 100644
+--- a/libio/iogetline.c
++++ b/libio/iogetline.c
+@@ -28,12 +28,8 @@
+ #include <string.h>
+ 
+ _IO_size_t
+-_IO_getline (fp, buf, n, delim, extract_delim)
+-     _IO_FILE *fp;
+-     char *buf;
+-     _IO_size_t n;
+-     int delim;
+-     int extract_delim;
++_IO_getline (_IO_FILE *fp, char *buf, _IO_size_t n, int delim,
++	     int extract_delim)
+ {
+   return _IO_getline_info (fp, buf, n, delim, extract_delim, (int *) 0);
+ }
+@@ -48,13 +44,8 @@ libc_hidden_def (_IO_getline)
+    If extract_delim > 0, insert delim in output. */
+ 
+ _IO_size_t
+-_IO_getline_info (fp, buf, n, delim, extract_delim, eof)
+-     _IO_FILE *fp;
+-     char *buf;
+-     _IO_size_t n;
+-     int delim;
+-     int extract_delim;
+-     int *eof;
++_IO_getline_info (_IO_FILE *fp, char *buf, _IO_size_t n, int delim,
++		  int extract_delim, int *eof)
+ {
+   char *ptr = buf;
+   if (eof != NULL)
+diff --git a/libio/iogetwline.c b/libio/iogetwline.c
+index 63b7da67201b3f10..b14aa615e4537fda 100644
+--- a/libio/iogetwline.c
++++ b/libio/iogetwline.c
+@@ -33,12 +33,8 @@
+ #endif
+ 
+ _IO_size_t
+-_IO_getwline (fp, buf, n, delim, extract_delim)
+-     _IO_FILE *fp;
+-     wchar_t *buf;
+-     _IO_size_t n;
+-     wint_t delim;
+-     int extract_delim;
++_IO_getwline (_IO_FILE *fp, wchar_t *buf, _IO_size_t n, wint_t delim,
++	      int extract_delim)
+ {
+   return _IO_getwline_info (fp, buf, n, delim, extract_delim, (wint_t *) 0);
+ }
+@@ -52,13 +48,8 @@ _IO_getwline (fp, buf, n, delim, extract_delim)
+    If extract_delim > 0, insert delim in output. */
+ 
+ _IO_size_t
+-_IO_getwline_info (fp, buf, n, delim, extract_delim, eof)
+-     _IO_FILE *fp;
+-     wchar_t *buf;
+-     _IO_size_t n;
+-     wint_t delim;
+-     int extract_delim;
+-     wint_t *eof;
++_IO_getwline_info (_IO_FILE *fp, wchar_t *buf, _IO_size_t n, wint_t delim,
++		   int extract_delim, wint_t *eof)
+ {
+   wchar_t *ptr = buf;
+   if (eof != NULL)
+diff --git a/libio/vsnprintf.c b/libio/vsnprintf.c
+index 4e76a8c8fc035430..8711767fb1df32e8 100644
+--- a/libio/vsnprintf.c
++++ b/libio/vsnprintf.c
+@@ -90,11 +90,8 @@ const struct _IO_jump_t _IO_strn_jumps libio_vtable attribute_hidden =
+ 
+ 
+ int
+-_IO_vsnprintf (string, maxlen, format, args)
+-     char *string;
+-     _IO_size_t maxlen;
+-     const char *format;
+-     _IO_va_list args;
++_IO_vsnprintf (char *string, _IO_size_t maxlen, const char *format,
++	       _IO_va_list args)
+ {
+   _IO_strnfile sf;
+   int ret;
+diff --git a/libio/vswprintf.c b/libio/vswprintf.c
+index 5cd58de2e88939d9..b42333822052fda4 100644
+--- a/libio/vswprintf.c
++++ b/libio/vswprintf.c
+@@ -89,11 +89,8 @@ const struct _IO_jump_t _IO_wstrn_jumps libio_vtable attribute_hidden =
+ 
+ 
+ int
+-_IO_vswprintf (string, maxlen, format, args)
+-     wchar_t *string;
+-     _IO_size_t maxlen;
+-     const wchar_t *format;
+-     _IO_va_list args;
++_IO_vswprintf (wchar_t *string, _IO_size_t maxlen, const wchar_t *format,
++	       _IO_va_list args)
+ {
+   _IO_wstrnfile sf;
+   int ret;
+diff --git a/locale/programs/simple-hash.c b/locale/programs/simple-hash.c
+index b08e60ac72185ad9..a7e2d2bb988686a7 100644
+--- a/locale/programs/simple-hash.c
++++ b/locale/programs/simple-hash.c
+@@ -120,13 +120,8 @@ insert_entry (hash_table *htab, const void *key, size_t keylen, void *data)
+ }
+ 
+ static void
+-insert_entry_2 (htab, key, keylen, hval, idx, data)
+-     hash_table *htab;
+-     const void *key;
+-     size_t keylen;
+-     unsigned long int hval;
+-     size_t idx;
+-     void *data;
++insert_entry_2 (hash_table *htab, const void *key, size_t keylen,
++		unsigned long int hval, size_t idx, void *data)
+ {
+   hash_entry *table = (hash_entry *) htab->table;
+ 
+@@ -175,11 +170,8 @@ insert_entry_2 (htab, key, keylen, hval, idx, data)
+ 
+ 
+ int
+-find_entry (htab, key, keylen, result)
+-     const hash_table *htab;
+-     const void *key;
+-     size_t keylen;
+-     void **result;
++find_entry (const hash_table *htab, const void *key, size_t keylen,
++	    void **result)
+ {
+   hash_entry *table = (hash_entry *) htab->table;
+   size_t idx = lookup (htab, key, keylen, compute_hashval (key, keylen));
+@@ -207,12 +199,8 @@ set_entry (hash_table *htab, const void *key, size_t keylen, void *newval)
+ 
+ 
+ int
+-iterate_table (htab, ptr, key, keylen, data)
+-     const hash_table *htab;
+-     void **ptr;
+-     const void **key;
+-     size_t *keylen;
+-     void **data;
++iterate_table (const hash_table *htab, void **ptr, const void **key,
++	       size_t *keylen, void **data)
+ {
+   if (*ptr == NULL)
+     {
+@@ -239,11 +227,8 @@ iterate_table (htab, ptr, key, keylen, data)
+    [Knuth]	      The Art of Computer Programming, part3 (6.4) */
+ 
+ static size_t
+-lookup (htab, key, keylen, hval)
+-     const hash_table *htab;
+-     const void *key;
+-     size_t keylen;
+-     unsigned long int hval;
++lookup (const hash_table *htab, const void *key, size_t keylen,
++	unsigned long int hval)
+ {
+   unsigned long int hash;
+   size_t idx;
+diff --git a/login/forkpty.c b/login/forkpty.c
+index e5e2873534801140..397d60dd63fc3171 100644
+--- a/login/forkpty.c
++++ b/login/forkpty.c
+@@ -23,11 +23,8 @@
+ #include <pty.h>
+ 
+ int
+-forkpty (amaster, name, termp, winp)
+-     int *amaster;
+-     char *name;
+-     const struct termios *termp;
+-     const struct winsize *winp;
++forkpty (int *amaster, char *name, const struct termios *termp,
++	 const struct winsize *winp)
+ {
+   int master, slave, pid;
+ 
+diff --git a/misc/hsearch_r.c b/misc/hsearch_r.c
+index 3509fb7b20fe524e..a71bb7d3412bf242 100644
+--- a/misc/hsearch_r.c
++++ b/misc/hsearch_r.c
+@@ -147,11 +147,8 @@ libc_hidden_def (hdestroy_r)
+    equality of the stored and the parameter value. This helps to prevent
+    unnecessary expensive calls of strcmp.  */
+ int
+-hsearch_r (item, action, retval, htab)
+-     ENTRY item;
+-     ACTION action;
+-     ENTRY **retval;
+-     struct hsearch_data *htab;
++hsearch_r (ENTRY item, ACTION action, ENTRY **retval,
++	   struct hsearch_data *htab)
+ {
+   unsigned int hval;
+   unsigned int count;
+diff --git a/misc/select.c b/misc/select.c
+index 8f5cb0d2af26b573..f134b0453d9be90c 100644
+--- a/misc/select.c
++++ b/misc/select.c
+@@ -25,12 +25,8 @@
+    after waiting the interval specified therein.  Returns the number of ready
+    descriptors, or -1 for errors.  */
+ int
+-__select (nfds, readfds, writefds, exceptfds, timeout)
+-     int nfds;
+-     fd_set *readfds;
+-     fd_set *writefds;
+-     fd_set *exceptfds;
+-     struct timeval *timeout;
++__select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
++	  struct timeval *timeout)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/nptl/cleanup_defer_compat.c b/nptl/cleanup_defer_compat.c
+index 88fd43ca8d8c45ab..e15723611c71d55a 100644
+--- a/nptl/cleanup_defer_compat.c
++++ b/nptl/cleanup_defer_compat.c
+@@ -59,9 +59,8 @@ strong_alias (_pthread_cleanup_push_defer, __pthread_cleanup_push_defer)
+ 
+ 
+ void
+-_pthread_cleanup_pop_restore (buffer, execute)
+-     struct _pthread_cleanup_buffer *buffer;
+-     int execute;
++_pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer,
++			      int execute)
+ {
+   struct pthread *self = THREAD_SELF;
+ 
+diff --git a/nptl/old_pthread_cond_init.c b/nptl/old_pthread_cond_init.c
+index 5ec4cf2ea3137274..38873877107fec86 100644
+--- a/nptl/old_pthread_cond_init.c
++++ b/nptl/old_pthread_cond_init.c
+@@ -23,9 +23,8 @@
+ 
+ #if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
+ int
+-__pthread_cond_init_2_0 (cond, cond_attr)
+-     pthread_cond_2_0_t *cond;
+-     const pthread_condattr_t *cond_attr;
++__pthread_cond_init_2_0 (pthread_cond_2_0_t *cond,
++			 const pthread_condattr_t *cond_attr)
+ {
+   struct pthread_condattr *icond_attr = (struct pthread_condattr *) cond_attr;
+ 
+diff --git a/nptl/old_pthread_cond_timedwait.c b/nptl/old_pthread_cond_timedwait.c
+index a8d113f9a5273c0c..fe95f96d1b8ef8e5 100644
+--- a/nptl/old_pthread_cond_timedwait.c
++++ b/nptl/old_pthread_cond_timedwait.c
+@@ -25,10 +25,8 @@
+ 
+ #if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
+ int
+-__pthread_cond_timedwait_2_0 (cond, mutex, abstime)
+-     pthread_cond_2_0_t *cond;
+-     pthread_mutex_t *mutex;
+-     const struct timespec *abstime;
++__pthread_cond_timedwait_2_0 (pthread_cond_2_0_t *cond, pthread_mutex_t *mutex,
++			      const struct timespec *abstime)
+ {
+   if (cond->cond == NULL)
+     {
+diff --git a/nptl/pthread_barrier_init.c b/nptl/pthread_barrier_init.c
+index 8cd6f0e56ee6be1b..55849b7948e34fac 100644
+--- a/nptl/pthread_barrier_init.c
++++ b/nptl/pthread_barrier_init.c
+@@ -29,10 +29,8 @@ static const struct pthread_barrierattr default_barrierattr =
+ 
+ 
+ int
+-pthread_barrier_init (barrier, attr, count)
+-     pthread_barrier_t *barrier;
+-     const pthread_barrierattr_t *attr;
+-     unsigned int count;
++pthread_barrier_init (pthread_barrier_t *barrier,
++		      const pthread_barrierattr_t *attr, unsigned int count)
+ {
+   struct pthread_barrier *ibarrier;
+ 
+diff --git a/nptl/pthread_barrierattr_getpshared.c b/nptl/pthread_barrierattr_getpshared.c
+index 937d02428e52718a..dbe4893619cb17ef 100644
+--- a/nptl/pthread_barrierattr_getpshared.c
++++ b/nptl/pthread_barrierattr_getpshared.c
+@@ -20,9 +20,8 @@
+ 
+ 
+ int
+-pthread_barrierattr_getpshared (attr, pshared)
+-     const pthread_barrierattr_t *attr;
+-     int *pshared;
++pthread_barrierattr_getpshared (const pthread_barrierattr_t *attr,
++				int *pshared)
+ {
+   *pshared = ((const struct pthread_barrierattr *) attr)->pshared;
+ 
+diff --git a/nptl/pthread_getschedparam.c b/nptl/pthread_getschedparam.c
+index de81dbc068148ad5..dbff8a984196e6e4 100644
+--- a/nptl/pthread_getschedparam.c
++++ b/nptl/pthread_getschedparam.c
+@@ -23,10 +23,8 @@
+ 
+ 
+ int
+-__pthread_getschedparam (threadid, policy, param)
+-     pthread_t threadid;
+-     int *policy;
+-     struct sched_param *param;
++__pthread_getschedparam (pthread_t threadid, int *policy,
++			 struct sched_param *param)
+ {
+   struct pthread *pd = (struct pthread *) threadid;
+ 
+diff --git a/nptl/pthread_mutex_setprioceiling.c b/nptl/pthread_mutex_setprioceiling.c
+index a0dcc7896305daeb..f9b5609bf10cd81a 100644
+--- a/nptl/pthread_mutex_setprioceiling.c
++++ b/nptl/pthread_mutex_setprioceiling.c
+@@ -23,10 +23,8 @@
+ 
+ 
+ int
+-pthread_mutex_setprioceiling (mutex, prioceiling, old_ceiling)
+-     pthread_mutex_t *mutex;
+-     int prioceiling;
+-     int *old_ceiling;
++pthread_mutex_setprioceiling (pthread_mutex_t *mutex, int prioceiling,
++			      int *old_ceiling)
+ {
+   /* The low bits of __kind aren't ever changed after pthread_mutex_init,
+      so we don't need a lock yet.  */
+diff --git a/nptl/pthread_mutexattr_getprioceiling.c b/nptl/pthread_mutexattr_getprioceiling.c
+index 56d103278dc44c83..2fa97d9024686e24 100644
+--- a/nptl/pthread_mutexattr_getprioceiling.c
++++ b/nptl/pthread_mutexattr_getprioceiling.c
+@@ -21,9 +21,8 @@
+ 
+ 
+ int
+-pthread_mutexattr_getprioceiling (attr, prioceiling)
+-     const pthread_mutexattr_t *attr;
+-     int *prioceiling;
++pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *attr,
++				  int *prioceiling)
+ {
+   const struct pthread_mutexattr *iattr;
+   int ceiling;
+diff --git a/nptl/pthread_rwlock_init.c b/nptl/pthread_rwlock_init.c
+index 2f6c8fad0f262778..0acd59b223984c37 100644
+--- a/nptl/pthread_rwlock_init.c
++++ b/nptl/pthread_rwlock_init.c
+@@ -29,9 +29,8 @@ static const struct pthread_rwlockattr default_rwlockattr =
+ 
+ 
+ int
+-__pthread_rwlock_init (rwlock, attr)
+-     pthread_rwlock_t *rwlock;
+-     const pthread_rwlockattr_t *attr;
++__pthread_rwlock_init (pthread_rwlock_t *rwlock,
++		       const pthread_rwlockattr_t *attr)
+ {
+   const struct pthread_rwlockattr *iattr;
+ 
+diff --git a/nptl/pthread_rwlock_timedrdlock.c b/nptl/pthread_rwlock_timedrdlock.c
+index b7622abfa2478283..59f871d0eebb1202 100644
+--- a/nptl/pthread_rwlock_timedrdlock.c
++++ b/nptl/pthread_rwlock_timedrdlock.c
+@@ -25,9 +25,8 @@
+ 
+ /* Try to acquire read lock for RWLOCK or return after specfied time.  */
+ int
+-pthread_rwlock_timedrdlock (rwlock, abstime)
+-     pthread_rwlock_t *rwlock;
+-     const struct timespec *abstime;
++pthread_rwlock_timedrdlock (pthread_rwlock_t *rwlock,
++			    const struct timespec *abstime)
+ {
+   int result = 0;
+ 
+diff --git a/nptl/pthread_rwlock_timedwrlock.c b/nptl/pthread_rwlock_timedwrlock.c
+index 5f2399f91e884b78..e344005f1017384e 100644
+--- a/nptl/pthread_rwlock_timedwrlock.c
++++ b/nptl/pthread_rwlock_timedwrlock.c
+@@ -25,9 +25,8 @@
+ 
+ /* Try to acquire write lock for RWLOCK or return after specfied time.	*/
+ int
+-pthread_rwlock_timedwrlock (rwlock, abstime)
+-     pthread_rwlock_t *rwlock;
+-     const struct timespec *abstime;
++pthread_rwlock_timedwrlock (pthread_rwlock_t *rwlock,
++			    const struct timespec *abstime)
+ {
+   int result = 0;
+ 
+diff --git a/nptl/pthread_setschedparam.c b/nptl/pthread_setschedparam.c
+index 15d26b4116bfc1c5..a0fa578821ceea51 100644
+--- a/nptl/pthread_setschedparam.c
++++ b/nptl/pthread_setschedparam.c
+@@ -24,10 +24,8 @@
+ 
+ 
+ int
+-__pthread_setschedparam (threadid, policy, param)
+-     pthread_t threadid;
+-     int policy;
+-     const struct sched_param *param;
++__pthread_setschedparam (pthread_t threadid, int policy,
++			 const struct sched_param *param)
+ {
+   struct pthread *pd = (struct pthread *) threadid;
+ 
+diff --git a/nptl/sysdeps/pthread/timer_settime.c b/nptl/sysdeps/pthread/timer_settime.c
+index da0908b0bcad6da7..e86d0a3d231faf09 100644
+--- a/nptl/sysdeps/pthread/timer_settime.c
++++ b/nptl/sysdeps/pthread/timer_settime.c
+@@ -25,11 +25,8 @@
+ 
+ /* Set timer TIMERID to VALUE, returning old value in OVLAUE.  */
+ int
+-timer_settime (timerid, flags, value, ovalue)
+-     timer_t timerid;
+-     int flags;
+-     const struct itimerspec *value;
+-     struct itimerspec *ovalue;
++timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
++	       struct itimerspec *ovalue)
+ {
+   struct timer_node *timer;
+   struct thread_node *thread = NULL;
+diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c b/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c
+index 5e3774fbd4ed3754..2782e93411ce01b8 100644
+--- a/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c
++++ b/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c
+@@ -21,10 +21,8 @@
+ #include <lowlevellock.h>
+ 
+ int
+-pthread_barrier_init (barrier, attr, count)
+-     pthread_barrier_t *barrier;
+-     const pthread_barrierattr_t *attr;
+-     unsigned int count;
++pthread_barrier_init (pthread_barrier_t *barrier,
++		      const pthread_barrierattr_t *attr, unsigned int count)
+ {
+   union sparc_pthread_barrier *ibarrier;
+ 
+diff --git a/nptl/sysdeps/unix/sysv/linux/timer_settime.c b/nptl/sysdeps/unix/sysv/linux/timer_settime.c
+index 5b522ec75040f12c..94acc60a0f86b72c 100644
+--- a/nptl/sysdeps/unix/sysv/linux/timer_settime.c
++++ b/nptl/sysdeps/unix/sysv/linux/timer_settime.c
+@@ -30,11 +30,8 @@
+ 
+ 
+ int
+-timer_settime (timerid, flags, value, ovalue)
+-     timer_t timerid;
+-     int flags;
+-     const struct itimerspec *value;
+-     struct itimerspec *ovalue;
++timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
++	       struct itimerspec *ovalue)
+ {
+ #undef timer_settime
+   struct timer *kt = (struct timer *) timerid;
+diff --git a/socket/recvfrom.c b/socket/recvfrom.c
+index b99774f368501b55..f652b1478b7a6e32 100644
+--- a/socket/recvfrom.c
++++ b/socket/recvfrom.c
+@@ -22,13 +22,8 @@
+    at address ADDR (which is ADDR_LEN bytes long).
+    Returns the number read or -1 for errors.  */
+ ssize_t
+-__recvfrom (fd, buf, n, flags, addr, addr_len)
+-     int fd;
+-     void *buf;
+-     size_t n;
+-     int flags;
+-     __SOCKADDR_ARG addr;
+-     socklen_t *addr_len;
++__recvfrom (int fd, void *buf, size_t n, int flags, __SOCKADDR_ARG addr,
++	    socklen_t *addr_len)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/socket/sendto.c b/socket/sendto.c
+index ae06a54cc6947a7f..090fd000799c9347 100644
+--- a/socket/sendto.c
++++ b/socket/sendto.c
+@@ -21,13 +21,8 @@
+ /* Send N bytes of BUF on socket FD to peer at address ADDR (which is
+    ADDR_LEN bytes long).  Returns the number sent, or -1 for errors.  */
+ ssize_t
+-__sendto (fd, buf, n, flags, addr, addr_len)
+-     int fd;
+-     const __ptr_t buf;
+-     size_t n;
+-     int flags;
+-     __CONST_SOCKADDR_ARG addr;
+-     socklen_t addr_len;
++__sendto (int fd, const __ptr_t buf, size_t n, int flags,
++	  __CONST_SOCKADDR_ARG addr, socklen_t addr_len)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/socket/setsockopt.c b/socket/setsockopt.c
+index 9e1e7a3d800b4bdb..bf08491d63ff2292 100644
+--- a/socket/setsockopt.c
++++ b/socket/setsockopt.c
+@@ -22,12 +22,8 @@
+    to *OPTVAL (which is OPTLEN bytes long).
+    Returns 0 on success, -1 for errors.  */
+ int
+-__setsockopt (fd, level, optname, optval, optlen)
+-     int fd;
+-     int level;
+-     int optname;
+-     const __ptr_t optval;
+-     socklen_t optlen;
++__setsockopt (int fd, int level, int optname, const __ptr_t optval,
++	      socklen_t optlen)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/stdio-common/_itoa.c b/stdio-common/_itoa.c
+index 67592318866b553e..dbf4c7c72f1173c8 100644
+--- a/stdio-common/_itoa.c
++++ b/stdio-common/_itoa.c
+@@ -191,11 +191,8 @@ _itoa_word (_ITOA_WORD_TYPE value, char *buflim,
+ 
+ #if _ITOA_NEEDED
+ char *
+-_itoa (value, buflim, base, upper_case)
+-     unsigned long long int value;
+-     char *buflim;
+-     unsigned int base;
+-     int upper_case;
++_itoa (unsigned long long int value, char *buflim, unsigned int base,
++       int upper_case)
+ {
+   const char *digits = (upper_case
+ 			? _itoa_upper_digits
+diff --git a/stdio-common/_itowa.c b/stdio-common/_itowa.c
+index f50893dfcd79ea33..0cf3f773806dfc67 100644
+--- a/stdio-common/_itowa.c
++++ b/stdio-common/_itowa.c
+@@ -87,11 +87,8 @@ extern const wchar_t _itowa_upper_digits[] attribute_hidden;
+ 
+ #if _ITOA_NEEDED
+ wchar_t *
+-_itowa (value, buflim, base, upper_case)
+-     unsigned long long int value;
+-     wchar_t *buflim;
+-     unsigned int base;
+-     int upper_case;
++_itowa (unsigned long long int value, wchar_t *buflim, unsigned int base,
++	int upper_case)
+ {
+   const wchar_t *digits = (upper_case
+ 			   ? _itowa_upper_digits : _itowa_lower_digits);
+diff --git a/stdio-common/reg-printf.c b/stdio-common/reg-printf.c
+index 30bf7dadd6343874..90d8558fca86196e 100644
+--- a/stdio-common/reg-printf.c
++++ b/stdio-common/reg-printf.c
+@@ -38,10 +38,8 @@ int __register_printf_function (int, printf_function,
+ 
+ /* Register FUNC to be called to format SPEC specifiers.  */
+ int
+-__register_printf_specifier (spec, converter, arginfo)
+-     int spec;
+-     printf_function converter;
+-     printf_arginfo_size_function arginfo;
++__register_printf_specifier (int spec, printf_function converter,
++			     printf_arginfo_size_function arginfo)
+ {
+   if (spec < 0 || spec > (int) UCHAR_MAX)
+     {
+@@ -79,10 +77,8 @@ weak_alias (__register_printf_specifier, register_printf_specifier)
+ 
+ /* Register FUNC to be called to format SPEC specifiers.  */
+ int
+-__register_printf_function (spec, converter, arginfo)
+-     int spec;
+-     printf_function converter;
+-     printf_arginfo_function arginfo;
++__register_printf_function (int spec, printf_function converter,
++			    printf_arginfo_function arginfo)
+ {
+   return __register_printf_specifier (spec, converter,
+ 				      (printf_arginfo_size_function*) arginfo);
+diff --git a/stdio-common/tempname.c b/stdio-common/tempname.c
+index d600e3708d86be6c..23b64e624b11765e 100644
+--- a/stdio-common/tempname.c
++++ b/stdio-common/tempname.c
+@@ -24,12 +24,8 @@
+    template suitable for use in __gen_tempname into TMPL, bounded
+    by TMPL_LEN. */
+ int
+-__path_search (tmpl, tmpl_len, dir, pfx, try_tmpdir)
+-     char *tmpl;
+-     size_t tmpl_len;
+-     const char *dir;
+-     const char *pfx;
+-     int try_tmpdir;
++__path_search (char *tmpl, size_t tmpl_len, const char *dir, const char *pfx,
++	       int try_tmpdir)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/stdlib/addmul_1.c b/stdlib/addmul_1.c
+index 8e8342a07ff3ad5f..276a379bef7d9bf0 100644
+--- a/stdlib/addmul_1.c
++++ b/stdlib/addmul_1.c
+@@ -26,11 +26,8 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
+ #include "longlong.h"
+ 
+ mp_limb_t
+-mpn_addmul_1 (res_ptr, s1_ptr, s1_size, s2_limb)
+-     register mp_ptr res_ptr;
+-     register mp_srcptr s1_ptr;
+-     mp_size_t s1_size;
+-     register mp_limb_t s2_limb;
++mpn_addmul_1 (register mp_ptr res_ptr, register mp_srcptr s1_ptr,
++	      mp_size_t s1_size, register mp_limb_t s2_limb)
+ {
+   register mp_limb_t cy_limb;
+   register mp_size_t j;
+diff --git a/stdlib/mul_1.c b/stdlib/mul_1.c
+index 87ab98189aef442a..9e7fcf6f27ec779e 100644
+--- a/stdlib/mul_1.c
++++ b/stdlib/mul_1.c
+@@ -24,11 +24,8 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
+ #include "longlong.h"
+ 
+ mp_limb_t
+-mpn_mul_1 (res_ptr, s1_ptr, s1_size, s2_limb)
+-     register mp_ptr res_ptr;
+-     register mp_srcptr s1_ptr;
+-     mp_size_t s1_size;
+-     register mp_limb_t s2_limb;
++mpn_mul_1 (register mp_ptr res_ptr, register mp_srcptr s1_ptr,
++	   mp_size_t s1_size, register mp_limb_t s2_limb)
+ {
+   register mp_limb_t cy_limb;
+   register mp_size_t j;
+diff --git a/stdlib/random_r.c b/stdlib/random_r.c
+index 5fdf56275601075d..1c9addd32395a99c 100644
+--- a/stdlib/random_r.c
++++ b/stdlib/random_r.c
+@@ -227,11 +227,8 @@ weak_alias (__srandom_r, srandom_r)
+    setstate so that it doesn't matter when initstate is called.
+    Returns 0 on success, non-zero on failure.  */
+ int
+-__initstate_r (seed, arg_state, n, buf)
+-     unsigned int seed;
+-     char *arg_state;
+-     size_t n;
+-     struct random_data *buf;
++__initstate_r (unsigned int seed, char *arg_state, size_t n,
++	       struct random_data *buf)
+ {
+   if (buf == NULL)
+     goto fail;
+diff --git a/stdlib/setenv.c b/stdlib/setenv.c
+index 1a4d3c203e90ff83..45efe2e3f2b157ab 100644
+--- a/stdlib/setenv.c
++++ b/stdlib/setenv.c
+@@ -106,11 +106,8 @@ static char **last_environ;
+    to reuse values once generated for a `setenv' call since we can never
+    free the strings.  */
+ int
+-__add_to_environ (name, value, combined, replace)
+-     const char *name;
+-     const char *value;
+-     const char *combined;
+-     int replace;
++__add_to_environ (const char *name, const char *value, const char *combined,
++		  int replace)
+ {
+   char **ep;
+   size_t size;
+diff --git a/stdlib/submul_1.c b/stdlib/submul_1.c
+index 9eafe7e00b93bff3..8cad60307c3d8c75 100644
+--- a/stdlib/submul_1.c
++++ b/stdlib/submul_1.c
+@@ -26,11 +26,8 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
+ #include "longlong.h"
+ 
+ mp_limb_t
+-mpn_submul_1 (res_ptr, s1_ptr, s1_size, s2_limb)
+-     register mp_ptr res_ptr;
+-     register mp_srcptr s1_ptr;
+-     mp_size_t s1_size;
+-     register mp_limb_t s2_limb;
++mpn_submul_1 (register mp_ptr res_ptr, register mp_srcptr s1_ptr,
++	      mp_size_t s1_size, register mp_limb_t s2_limb)
+ {
+   register mp_limb_t cy_limb;
+   register mp_size_t j;
+diff --git a/streams/getpmsg.c b/streams/getpmsg.c
+index acb25b585f5aedb2..05d90d0801c8590d 100644
+--- a/streams/getpmsg.c
++++ b/streams/getpmsg.c
+@@ -19,12 +19,8 @@
+ #include <stropts.h>
+ 
+ int
+-getpmsg (fildes, ctlptr, dataptr, bandp, flagsp)
+-     int fildes;
+-     struct strbuf *ctlptr;
+-     struct strbuf *dataptr;
+-     int *bandp;
+-     int *flagsp;
++getpmsg (int fildes, struct strbuf *ctlptr, struct strbuf *dataptr, int *bandp,
++	 int *flagsp)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/streams/putmsg.c b/streams/putmsg.c
+index 2d776bc96ab737b6..814e2a7e8c7d61a0 100644
+--- a/streams/putmsg.c
++++ b/streams/putmsg.c
+@@ -19,11 +19,8 @@
+ #include <stropts.h>
+ 
+ int
+-putmsg (fildes, ctlptr, dataptr, flags)
+-     int fildes;
+-     const struct strbuf *ctlptr;
+-     const struct strbuf *dataptr;
+-     int flags;
++putmsg (int fildes, const struct strbuf *ctlptr, const struct strbuf *dataptr,
++	int flags)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/streams/putpmsg.c b/streams/putpmsg.c
+index c2fa820e6f2adf5b..fb9bfebf2072ecf9 100644
+--- a/streams/putpmsg.c
++++ b/streams/putpmsg.c
+@@ -19,12 +19,8 @@
+ #include <stropts.h>
+ 
+ int
+-putpmsg (fildes, ctlptr, dataptr, band, flags)
+-     int fildes;
+-     const struct strbuf *ctlptr;
+-     const struct strbuf *dataptr;
+-     int band;
+-     int flags;
++putpmsg (int fildes, const struct strbuf *ctlptr, const struct strbuf *dataptr,
++	 int band, int flags)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/sunrpc/clnt_raw.c b/sunrpc/clnt_raw.c
+index 6653ee42fbc9edbe..a149bf419b1b1d09 100644
+--- a/sunrpc/clnt_raw.c
++++ b/sunrpc/clnt_raw.c
+@@ -132,14 +132,8 @@ clntraw_create (u_long prog, u_long vers)
+ libc_hidden_nolink_sunrpc (clntraw_create, GLIBC_2_0)
+ 
+ static enum clnt_stat
+-clntraw_call (h, proc, xargs, argsp, xresults, resultsp, timeout)
+-     CLIENT *h;
+-     u_long proc;
+-     xdrproc_t xargs;
+-     caddr_t argsp;
+-     xdrproc_t xresults;
+-     caddr_t resultsp;
+-     struct timeval timeout;
++clntraw_call (CLIENT *h, u_long proc, xdrproc_t xargs, caddr_t argsp,
++	      xdrproc_t xresults, caddr_t resultsp, struct timeval timeout)
+ {
+   struct clntraw_private_s *clp = clntraw_private;
+   XDR *xdrs = &clp->xdr_stream;
+diff --git a/sunrpc/clnt_tcp.c b/sunrpc/clnt_tcp.c
+index 901820397dd56cd6..99a7101d3ac816fb 100644
+--- a/sunrpc/clnt_tcp.c
++++ b/sunrpc/clnt_tcp.c
+@@ -224,14 +224,9 @@ libc_hidden_nolink_sunrpc (clnttcp_create, GLIBC_2_0)
+ #endif
+ 
+ static enum clnt_stat
+-clnttcp_call (h, proc, xdr_args, args_ptr, xdr_results, results_ptr, timeout)
+-     CLIENT *h;
+-     u_long proc;
+-     xdrproc_t xdr_args;
+-     caddr_t args_ptr;
+-     xdrproc_t xdr_results;
+-     caddr_t results_ptr;
+-     struct timeval timeout;
++clnttcp_call (CLIENT *h, u_long proc, xdrproc_t xdr_args, caddr_t args_ptr,
++	      xdrproc_t xdr_results, caddr_t results_ptr,
++	      struct timeval timeout)
+ {
+   struct ct_data *ct = (struct ct_data *) h->cl_private;
+   XDR *xdrs = &(ct->ct_xdrs);
+diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c
+index 808603c827af6f98..1e0c7d45d33d23a1 100644
+--- a/sunrpc/clnt_udp.c
++++ b/sunrpc/clnt_udp.c
+@@ -256,12 +256,8 @@ clntudp_bufcreate (struct sockaddr_in *raddr, u_long program, u_long version,
+ libc_hidden_nolink_sunrpc (clntudp_bufcreate, GLIBC_2_0)
+ 
+ CLIENT *
+-clntudp_create (raddr, program, version, wait, sockp)
+-     struct sockaddr_in *raddr;
+-     u_long program;
+-     u_long version;
+-     struct timeval wait;
+-     int *sockp;
++clntudp_create (struct sockaddr_in *raddr, u_long program, u_long version,
++		struct timeval wait, int *sockp)
+ {
+   return __libc_clntudp_bufcreate (raddr, program, version, wait,
+ 				   sockp, UDPMSGSIZE, UDPMSGSIZE, 0);
+diff --git a/sunrpc/clnt_unix.c b/sunrpc/clnt_unix.c
+index 084669dea6819e7c..3e008353b56cf437 100644
+--- a/sunrpc/clnt_unix.c
++++ b/sunrpc/clnt_unix.c
+@@ -203,14 +203,9 @@ fooy:
+ libc_hidden_nolink_sunrpc (clntunix_create, GLIBC_2_1)
+ 
+ static enum clnt_stat
+-clntunix_call (h, proc, xdr_args, args_ptr, xdr_results, results_ptr, timeout)
+-     CLIENT *h;
+-     u_long proc;
+-     xdrproc_t xdr_args;
+-     caddr_t args_ptr;
+-     xdrproc_t xdr_results;
+-     caddr_t results_ptr;
+-     struct timeval timeout;
++clntunix_call (CLIENT *h, u_long proc, xdrproc_t xdr_args, caddr_t args_ptr,
++	       xdrproc_t xdr_results, caddr_t results_ptr,
++	       struct timeval timeout)
+ {
+   struct ct_data *ct = (struct ct_data *) h->cl_private;
+   XDR *xdrs = &(ct->ct_xdrs);
+diff --git a/sunrpc/pm_getport.c b/sunrpc/pm_getport.c
+index f10f87250d2784d7..5c43acc0609d7377 100644
+--- a/sunrpc/pm_getport.c
++++ b/sunrpc/pm_getport.c
+@@ -152,11 +152,8 @@ libc_hidden_nolink_sunrpc (__libc_rpc_getport, GLIBC_PRIVATE)
+  * Returns 0 if no map exists.
+  */
+ u_short
+-pmap_getport (address, program, version, protocol)
+-     struct sockaddr_in *address;
+-     u_long program;
+-     u_long version;
+-     u_int protocol;
++pmap_getport (struct sockaddr_in *address, u_long program, u_long version,
++	      u_int protocol)
+ {
+   return __libc_rpc_getport (address, program, version, protocol, 5, 60);
+ }
+diff --git a/sunrpc/svc_udp.c b/sunrpc/svc_udp.c
+index e99c97680676f509..d1c8788d20b6805c 100644
+--- a/sunrpc/svc_udp.c
++++ b/sunrpc/svc_udp.c
+@@ -585,11 +585,8 @@ cache_set (SVCXPRT *xprt, u_long replylen)
+  * return 1 if found, 0 if not found
+  */
+ static int
+-cache_get (xprt, msg, replyp, replylenp)
+-     SVCXPRT *xprt;
+-     struct rpc_msg *msg;
+-     char **replyp;
+-     u_long *replylenp;
++cache_get (SVCXPRT *xprt, struct rpc_msg *msg, char **replyp,
++	   u_long *replylenp)
+ {
+   u_int loc;
+   cache_ptr ent;
+diff --git a/sunrpc/xdr_array.c b/sunrpc/xdr_array.c
+index a6348612788cf338..fd9d1fb42f744844 100644
+--- a/sunrpc/xdr_array.c
++++ b/sunrpc/xdr_array.c
+@@ -141,12 +141,8 @@ libc_hidden_nolink_sunrpc (xdr_array, GLIBC_2_0)
+  * > xdr_elem: routine to XDR each element
+  */
+ bool_t
+-xdr_vector (xdrs, basep, nelem, elemsize, xdr_elem)
+-     XDR *xdrs;
+-     char *basep;
+-     u_int nelem;
+-     u_int elemsize;
+-     xdrproc_t xdr_elem;
++xdr_vector (XDR *xdrs, char *basep, u_int nelem, u_int elemsize,
++	    xdrproc_t xdr_elem)
+ {
+   u_int i;
+   char *elptr;
+diff --git a/sysdeps/mach/hurd/getcwd.c b/sysdeps/mach/hurd/getcwd.c
+index 6945e4d1c5c12237..16a3a6e3a112d9fd 100644
+--- a/sysdeps/mach/hurd/getcwd.c
++++ b/sysdeps/mach/hurd/getcwd.c
+@@ -285,10 +285,8 @@ _hurd_canonicalize_directory_name_internal (file_t thisdir,
+ }
+ 
+ char *
+-__canonicalize_directory_name_internal (thisdir, buf, size)
+-     const char *thisdir;
+-     char *buf;
+-     size_t size;
++__canonicalize_directory_name_internal (const char *thisdir, char *buf,
++					size_t size)
+ {
+   char *result;
+   file_t port = __file_name_lookup (thisdir, 0, 0);
+diff --git a/sysdeps/mach/hurd/pselect.c b/sysdeps/mach/hurd/pselect.c
+index ada99094e4e0a44d..90287f6a6dd898db 100644
+--- a/sysdeps/mach/hurd/pselect.c
++++ b/sysdeps/mach/hurd/pselect.c
+@@ -30,13 +30,8 @@
+    SIGMASK for this call.  Returns the number of ready descriptors, or -1 for
+    errors.  */
+ int
+-__pselect (nfds, readfds, writefds, exceptfds, timeout, sigmask)
+-     int nfds;
+-     fd_set *readfds;
+-     fd_set *writefds;
+-     fd_set *exceptfds;
+-     const struct timespec *timeout;
+-     const sigset_t *sigmask;
++__pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
++	   const struct timespec *timeout, const sigset_t *sigmask)
+ {
+   return _hurd_select (nfds, NULL,
+ 		       readfds, writefds, exceptfds, timeout, sigmask);
+diff --git a/sysdeps/mach/hurd/recvfrom.c b/sysdeps/mach/hurd/recvfrom.c
+index 3a094aa0d2c9fda1..cde89fdcfb56ca0b 100644
+--- a/sysdeps/mach/hurd/recvfrom.c
++++ b/sysdeps/mach/hurd/recvfrom.c
+@@ -27,13 +27,8 @@
+    the sender, and store the actual size of the address in *ADDR_LEN.
+    Returns the number of bytes read or -1 for errors.  */
+ ssize_t
+-__recvfrom (fd, buf, n, flags, addrarg, addr_len)
+-     int fd;
+-     void *buf;
+-     size_t n;
+-     int flags;
+-     __SOCKADDR_ARG addrarg;
+-     socklen_t *addr_len;
++__recvfrom (int fd, void *buf, size_t n, int flags, __SOCKADDR_ARG addrarg,
++	    socklen_t *addr_len)
+ {
+   error_t err;
+   mach_port_t addrport;
+diff --git a/sysdeps/mach/hurd/select.c b/sysdeps/mach/hurd/select.c
+index e679637d95b18033..22f6e3b221fb8d82 100644
+--- a/sysdeps/mach/hurd/select.c
++++ b/sysdeps/mach/hurd/select.c
+@@ -26,12 +26,8 @@
+    after waiting the interval specified therein.  Returns the number of ready
+    descriptors, or -1 for errors.  */
+ int
+-__select (nfds, readfds, writefds, exceptfds, timeout)
+-     int nfds;
+-     fd_set *readfds;
+-     fd_set *writefds;
+-     fd_set *exceptfds;
+-     struct timeval *timeout;
++__select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
++	  struct timeval *timeout)
+ {
+   struct timespec ts, *to;
+ 
+diff --git a/sysdeps/posix/ttyname_r.c b/sysdeps/posix/ttyname_r.c
+index bf8399d36d0e4541..7d2701da33c08624 100644
+--- a/sysdeps/posix/ttyname_r.c
++++ b/sysdeps/posix/ttyname_r.c
+@@ -37,14 +37,8 @@ static int getttyname_r (int fd, char *buf, size_t buflen,
+ 
+ static int
+ internal_function
+-getttyname_r (fd, buf, buflen, mydev, myino, save, dostat)
+-     int fd;
+-     char *buf;
+-     size_t buflen;
+-     dev_t mydev;
+-     ino_t myino;
+-     int save;
+-     int *dostat;
++getttyname_r (int fd, char *buf, size_t buflen, dev_t mydev, ino_t myino,
++	      int save, int *dostat)
+ {
+   struct stat st;
+   DIR *dirstream;
+diff --git a/sysdeps/unix/sysv/linux/i386/putmsg.c b/sysdeps/unix/sysv/linux/i386/putmsg.c
+index a413d8ce77d2f35d..84d54744c6d38c9f 100644
+--- a/sysdeps/unix/sysv/linux/i386/putmsg.c
++++ b/sysdeps/unix/sysv/linux/i386/putmsg.c
+@@ -24,11 +24,8 @@
+ 
+ #ifdef __NR_putpmsg
+ int
+-putmsg (fildes, ctlptr, dataptr, flags)
+-     int fildes;
+-     const struct strbuf *ctlptr;
+-     const struct strbuf *dataptr;
+-     int flags;
++putmsg (int fildes, const struct strbuf *ctlptr, const struct strbuf *dataptr,
++	int flags)
+ {
+   return INLINE_SYSCALL (putpmsg, 5, fildes, ctlptr, dataptr, -1, flags);
+ }
+diff --git a/sysdeps/unix/sysv/linux/s390/semtimedop.c b/sysdeps/unix/sysv/linux/s390/semtimedop.c
+index 53b82324dcb9f7e4..5628171762561c2e 100644
+--- a/sysdeps/unix/sysv/linux/s390/semtimedop.c
++++ b/sysdeps/unix/sysv/linux/s390/semtimedop.c
+@@ -26,11 +26,8 @@
+ /* Perform user-defined atomical operation of array of semaphores.  */
+ 
+ int
+-semtimedop (semid, sops, nsops, timeout)
+-     int semid;
+-     struct sembuf *sops;
+-     size_t nsops;
+-     const struct timespec *timeout;
++semtimedop (int semid, struct sembuf *sops, size_t nsops,
++	    const struct timespec *timeout)
+ {
+   return INLINE_SYSCALL (ipc, 5, IPCOP_semtimedop,
+ 			 semid, (int) nsops, timeout, sops);
+diff --git a/sysdeps/unix/sysv/linux/semtimedop.c b/sysdeps/unix/sysv/linux/semtimedop.c
+index 5a43f53975aeafcc..f9f04f5d28def4e1 100644
+--- a/sysdeps/unix/sysv/linux/semtimedop.c
++++ b/sysdeps/unix/sysv/linux/semtimedop.c
+@@ -26,11 +26,8 @@
+ /* Perform user-defined atomical operation of array of semaphores.  */
+ 
+ int
+-semtimedop (semid, sops, nsops, timeout)
+-     int semid;
+-     struct sembuf *sops;
+-     size_t nsops;
+-     const struct timespec *timeout;
++semtimedop (int semid, struct sembuf *sops, size_t nsops,
++	    const struct timespec *timeout)
+ {
+   return INLINE_SYSCALL (ipc, 6, IPCOP_semtimedop,
+ 			 semid, (int) nsops, 0, sops,
+diff --git a/sysvipc/semtimedop.c b/sysvipc/semtimedop.c
+index e7c631ac94e12f6a..5d776fe2d01f8438 100644
+--- a/sysvipc/semtimedop.c
++++ b/sysvipc/semtimedop.c
+@@ -22,11 +22,8 @@
+ /* Perform user-defined atomical operation of array of semaphores.  */
+ 
+ int
+-semtimedop (semid, sops, nsops, timeout)
+-     int semid;
+-     struct sembuf *sops;
+-     size_t nsops;
+-     const struct timespec *timeout;
++semtimedop (int semid, struct sembuf *sops, size_t nsops,
++	    const struct timespec *timeout)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/time/setitimer.c b/time/setitimer.c
+index 40880f8210adc6b8..903558767fbad824 100644
+--- a/time/setitimer.c
++++ b/time/setitimer.c
+@@ -23,10 +23,8 @@
+    set *OLD to the old value of timer WHICH.
+    Returns 0 on success, -1 on errors.  */
+ int
+-__setitimer (which, new, old)
+-     enum __itimer_which which;
+-     const struct itimerval *new;
+-     struct itimerval *old;
++__setitimer (enum __itimer_which which, const struct itimerval *new,
++	     struct itimerval *old)
+ {
+   if (new == NULL)
+     {
+diff --git a/time/strftime_l.c b/time/strftime_l.c
+index 873605720b837b15..0f6ac83d34d43755 100644
+--- a/time/strftime_l.c
++++ b/time/strftime_l.c
+@@ -1438,11 +1438,8 @@ __strftime_internal (s, maxsize, format, tp, tzset_called ut_argument
+    strftime function and does not have the extra information whether the
+    TP arguments comes from a `gmtime' call or not.  */
+ size_t
+-emacs_strftime (s, maxsize, format, tp)
+-      char *s;
+-      size_t maxsize;
+-      const char *format;
+-      const struct tm *tp;
++emacs_strftime (char *s, size_t maxsize, const char *format,
++		const struct tm *tp)
+ {
+   return my_strftime (s, maxsize, format, tp, 0);
+ }
diff --git a/SOURCES/glibc-rh1505492-prototypes-14.patch b/SOURCES/glibc-rh1505492-prototypes-14.patch
new file mode 100644
index 0000000..ba2b148
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-14.patch
@@ -0,0 +1,408 @@
+commit a72ddc1424d5bfcab14d90f1149cbb9b492f0120
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Tue Oct 20 11:51:03 2015 +0000
+
+    Convert 24 more function definitions to prototype style (array parameters).
+    
+    This automatically-generated patch converts 24 function definitions in
+    glibc from old-style K&R to prototype-style.  Following my other
+    recent such patches, this one deals with the case of functions with
+    array parameters.
+    
+    Tested for x86_64 and x86 (testsuite, and that installed stripped
+    shared libraries are unchanged by the patch).
+    
+            * crypt/cert.c (main): Convert to prototype-style function
+            definition.
+            * io/pipe.c (__pipe): Likewise.
+            * io/pipe2.c (__pipe2): Likewise.
+            * misc/futimesat.c (futimesat): Likewise.
+            * misc/utimes.c (__utimes): Likewise.
+            * posix/execve.c (__execve): Likewise.
+            * posix/execvp.c (execvp): Likewise.
+            * posix/execvpe.c (__execvpe): Likewise.
+            * posix/fexecve.c (fexecve): Likewise.
+            * socket/socketpair.c (socketpair): Likewise.
+            * stdlib/drand48-iter.c (__drand48_iterate): Likewise.
+            * stdlib/erand48.c (erand48): Likewise.
+            * stdlib/erand48_r.c (__erand48_r): Likewise.
+            * stdlib/jrand48.c (jrand48): Likewise.
+            * stdlib/jrand48_r.c (__jrand48_r): Likewise.
+            * stdlib/lcong48.c (lcong48): Likewise.
+            * stdlib/lcong48_r.c (__lcong48_r): Likewise.
+            * stdlib/nrand48.c (nrand48): Likewise.
+            * stdlib/nrand48_r.c (__nrand48_r): Likewise.
+            * stdlib/seed48.c (seed48): Likewise.
+            * stdlib/seed48_r.c (__seed48_r): Likewise.
+            * sysdeps/mach/hurd/execve.c (__execve): Likewise.
+            * sysdeps/mach/hurd/utimes.c (__utimes): Likewise.
+            * sysdeps/unix/sysv/linux/fexecve.c (fexecve): Likewise.
+
+diff --git a/crypt/cert.c b/crypt/cert.c
+index d651108860f0052a..80029e9078c1cdc0 100644
+--- a/crypt/cert.c
++++ b/crypt/cert.c
+@@ -30,9 +30,7 @@ good_bye (void)
+ }
+ 
+ int
+-main(argc, argv)
+-     int argc;
+-     char *argv[];
++main (int argc, char *argv[])
+ {
+ 	char key[64],plain[64],cipher[64],answer[64];
+ 	int i;
+diff --git a/io/pipe.c b/io/pipe.c
+index 1f1c03f0d5b44fe6..2223ac169c2b9d95 100644
+--- a/io/pipe.c
++++ b/io/pipe.c
+@@ -24,8 +24,7 @@
+    bytes written on PIPEDES[1] can be read from PIPEDES[0].
+    Returns 0 if successful, -1 if not.  */
+ int
+-__pipe (__pipedes)
+-     int __pipedes[2];
++__pipe (int __pipedes[2])
+ {
+   if (__pipedes == NULL)
+     {
+diff --git a/io/pipe2.c b/io/pipe2.c
+index 2478fc3c6128c981..9bfc8291330f899b 100644
+--- a/io/pipe2.c
++++ b/io/pipe2.c
+@@ -24,9 +24,7 @@
+    PIPEDES[1] can be read from PIPEDES[0].  Apply FLAGS to the new
+    file descriptors.  Returns 0 if successful, -1 if not.  */
+ int
+-__pipe2 (pipedes, flags)
+-     int pipedes[2];
+-     int flags;
++__pipe2 (int pipedes[2], int flags)
+ {
+   if (pipedes == NULL)
+     {
+diff --git a/misc/futimesat.c b/misc/futimesat.c
+index b33939e0a1cf4b88..b428852aeb9a2590 100644
+--- a/misc/futimesat.c
++++ b/misc/futimesat.c
+@@ -24,10 +24,7 @@
+ /* Change the access time of FILE relative to FD to TVP[0] and
+    the modification time of FILE to TVP[1].  */
+ int
+-futimesat (fd, file, tvp)
+-     int fd;
+-     const char *file;
+-     const struct timeval tvp[2];
++futimesat (int fd, const char *file, const struct timeval tvp[2])
+ {
+   if (fd < 0
+       && (file == NULL
+diff --git a/misc/utimes.c b/misc/utimes.c
+index 5cdfe6ca5e594e42..9c94f6be646bd955 100644
+--- a/misc/utimes.c
++++ b/misc/utimes.c
+@@ -22,9 +22,7 @@
+ /* Change the access time of FILE to TVP[0] and
+    the modification time of FILE to TVP[1].  */
+ int
+-__utimes (file, tvp)
+-     const char *file;
+-     const struct timeval tvp[2];
++__utimes (const char *file, const struct timeval tvp[2])
+ {
+   if (file == NULL)
+     {
+diff --git a/posix/execve.c b/posix/execve.c
+index 893cec2b19a39527..27b063fe7d31a59e 100644
+--- a/posix/execve.c
++++ b/posix/execve.c
+@@ -23,10 +23,7 @@
+ /* Replace the current process, executing PATH with arguments ARGV and
+    environment ENVP.  ARGV and ENVP are terminated by NULL pointers.  */
+ int
+-__execve (path, argv, envp)
+-     const char *path;
+-     char *const argv[];
+-     char *const envp[];
++__execve (const char *path, char *const argv[], char *const envp[])
+ {
+   if (path == NULL || argv == NULL || envp == NULL)
+     {
+diff --git a/posix/execvp.c b/posix/execvp.c
+index 5f2e155cd55db43e..9140b93d27896d26 100644
+--- a/posix/execvp.c
++++ b/posix/execvp.c
+@@ -22,9 +22,7 @@
+ /* Execute FILE, searching in the `PATH' environment variable if it contains
+    no slashes, with arguments ARGV and environment from `environ'.  */
+ int
+-execvp (file, argv)
+-     const char *file;
+-     char *const argv[];
++execvp (const char *file, char *const argv[])
+ {
+   return __execvpe (file, argv, __environ);
+ }
+diff --git a/posix/execvpe.c b/posix/execvpe.c
+index 48f777a9d57928fb..b607235c8bc27026 100644
+--- a/posix/execvpe.c
++++ b/posix/execvpe.c
+@@ -46,10 +46,7 @@ scripts_argv (const char *file, char *const argv[], int argc, char **new_argv)
+ /* Execute FILE, searching in the `PATH' environment variable if it contains
+    no slashes, with arguments ARGV and environment from ENVP.  */
+ int
+-__execvpe (file, argv, envp)
+-     const char *file;
+-     char *const argv[];
+-     char *const envp[];
++__execvpe (const char *file, char *const argv[], char *const envp[])
+ {
+   if (*file == '\0')
+     {
+diff --git a/posix/fexecve.c b/posix/fexecve.c
+index 6a22a194e34d0789..1ebbbc6fe942e716 100644
+--- a/posix/fexecve.c
++++ b/posix/fexecve.c
+@@ -23,10 +23,7 @@
+ /* Execute the file FD refers to, overlaying the running program image.
+    ARGV and ENVP are passed to the new program, as for `execve'.  */
+ int
+-fexecve (fd, argv, envp)
+-     int fd;
+-     char *const argv[];
+-     char *const envp[];
++fexecve (int fd, char *const argv[], char *const envp[])
+ {
+   if (fd < 0 || argv == NULL || envp == NULL)
+     {
+diff --git a/socket/socketpair.c b/socket/socketpair.c
+index 031674831f88cd61..4da27fb3b616d26f 100644
+--- a/socket/socketpair.c
++++ b/socket/socketpair.c
+@@ -23,11 +23,7 @@
+    descriptors for them in FDS[0] and FDS[1].  If PROTOCOL is zero,
+    one will be chosen automatically.  Returns 0 on success, -1 for errors.  */
+ int
+-socketpair (domain, type, protocol, fds)
+-     int domain;
+-     int type;
+-     int protocol;
+-     int fds[2];
++socketpair (int domain, int type, int protocol, int fds[2])
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/stdlib/drand48-iter.c b/stdlib/drand48-iter.c
+index 9270aab068170970..0cb988028f25a405 100644
+--- a/stdlib/drand48-iter.c
++++ b/stdlib/drand48-iter.c
+@@ -27,9 +27,7 @@ struct drand48_data __libc_drand48_data;
+ 
+ 
+ int
+-__drand48_iterate (xsubi, buffer)
+-     unsigned short int xsubi[3];
+-     struct drand48_data *buffer;
++__drand48_iterate (unsigned short int xsubi[3], struct drand48_data *buffer)
+ {
+   uint64_t X;
+   uint64_t result;
+diff --git a/stdlib/erand48.c b/stdlib/erand48.c
+index d2cf5af967b6663e..ff128ab72bb43e05 100644
+--- a/stdlib/erand48.c
++++ b/stdlib/erand48.c
+@@ -20,8 +20,7 @@
+ 
+ 
+ double
+-erand48 (xsubi)
+-     unsigned short int xsubi[3];
++erand48 (unsigned short int xsubi[3])
+ {
+   double result;
+ 
+diff --git a/stdlib/erand48_r.c b/stdlib/erand48_r.c
+index cdd02c9c963c89ed..9cf062da0ad1b89c 100644
+--- a/stdlib/erand48_r.c
++++ b/stdlib/erand48_r.c
+@@ -22,10 +22,8 @@
+ 
+ 
+ int
+-__erand48_r (xsubi, buffer, result)
+-     unsigned short int xsubi[3];
+-     struct drand48_data *buffer;
+-     double *result;
++__erand48_r (unsigned short int xsubi[3], struct drand48_data *buffer,
++	     double *result)
+ {
+   union ieee754_double temp;
+ 
+diff --git a/stdlib/jrand48.c b/stdlib/jrand48.c
+index af6bf6809155963c..a6d2f3ab0a1e0c9d 100644
+--- a/stdlib/jrand48.c
++++ b/stdlib/jrand48.c
+@@ -20,8 +20,7 @@
+ 
+ 
+ long int
+-jrand48 (xsubi)
+-     unsigned short int xsubi[3];
++jrand48 (unsigned short int xsubi[3])
+ {
+   long int result;
+ 
+diff --git a/stdlib/jrand48_r.c b/stdlib/jrand48_r.c
+index 78c57dbaa285f968..b0170e11d30fcf5e 100644
+--- a/stdlib/jrand48_r.c
++++ b/stdlib/jrand48_r.c
+@@ -19,10 +19,8 @@
+ #include <stdlib.h>
+ 
+ int
+-__jrand48_r (xsubi, buffer, result)
+-     unsigned short int xsubi[3];
+-     struct drand48_data *buffer;
+-     long int *result;
++__jrand48_r (unsigned short int xsubi[3], struct drand48_data *buffer,
++	     long int *result)
+ {
+   /* Compute next state.  */
+   if (__drand48_iterate (xsubi, buffer) < 0)
+diff --git a/stdlib/lcong48.c b/stdlib/lcong48.c
+index 31f403e01c10f104..b7943605041e99c0 100644
+--- a/stdlib/lcong48.c
++++ b/stdlib/lcong48.c
+@@ -20,8 +20,7 @@
+ 
+ 
+ void
+-lcong48 (param)
+-     unsigned short int param[7];
++lcong48 (unsigned short int param[7])
+ {
+   (void) __lcong48_r (param, &__libc_drand48_data);
+ }
+diff --git a/stdlib/lcong48_r.c b/stdlib/lcong48_r.c
+index 03ffcd7eb03742de..063baa3c8753a6f9 100644
+--- a/stdlib/lcong48_r.c
++++ b/stdlib/lcong48_r.c
+@@ -22,9 +22,7 @@
+ #include <limits.h>
+ 
+ int
+-__lcong48_r (param, buffer)
+-     unsigned short int param[7];
+-     struct drand48_data *buffer;
++__lcong48_r (unsigned short int param[7], struct drand48_data *buffer)
+ {
+   /* Store the given values.  */
+   memcpy (buffer->__x, &param[0], sizeof (buffer->__x));
+diff --git a/stdlib/nrand48.c b/stdlib/nrand48.c
+index 927e7d25534292a0..9f9f2f550faf3d88 100644
+--- a/stdlib/nrand48.c
++++ b/stdlib/nrand48.c
+@@ -20,8 +20,7 @@
+ 
+ 
+ long int
+-nrand48 (xsubi)
+-     unsigned short int xsubi[3];
++nrand48 (unsigned short int xsubi[3])
+ {
+   long int result;
+ 
+diff --git a/stdlib/nrand48_r.c b/stdlib/nrand48_r.c
+index 15a9b0c20589198a..f57e34cdcc44ff9f 100644
+--- a/stdlib/nrand48_r.c
++++ b/stdlib/nrand48_r.c
+@@ -19,10 +19,8 @@
+ #include <stdlib.h>
+ 
+ int
+-__nrand48_r (xsubi, buffer, result)
+-     unsigned short int xsubi[3];
+-     struct drand48_data *buffer;
+-     long int *result;
++__nrand48_r (unsigned short int xsubi[3], struct drand48_data *buffer,
++	     long int *result)
+ {
+   /* Compute next state.  */
+   if (__drand48_iterate (xsubi, buffer) < 0)
+diff --git a/stdlib/seed48.c b/stdlib/seed48.c
+index 9808213eaeff876d..941c870977062bb3 100644
+--- a/stdlib/seed48.c
++++ b/stdlib/seed48.c
+@@ -20,8 +20,7 @@
+ 
+ 
+ unsigned short int *
+-seed48 (seed16v)
+-     unsigned short int seed16v[3];
++seed48 (unsigned short int seed16v[3])
+ {
+   (void) __seed48_r (seed16v, &__libc_drand48_data);
+ 
+diff --git a/stdlib/seed48_r.c b/stdlib/seed48_r.c
+index b821d2349d8bb0c1..c8d9262123200c1b 100644
+--- a/stdlib/seed48_r.c
++++ b/stdlib/seed48_r.c
+@@ -21,9 +21,7 @@
+ #include <limits.h>
+ 
+ int
+-__seed48_r (seed16v, buffer)
+-     unsigned short int seed16v[3];
+-     struct drand48_data *buffer;
++__seed48_r (unsigned short int seed16v[3], struct drand48_data *buffer)
+ {
+   /* Save old value at a private place to be used as return value.  */
+   memcpy (buffer->__old_x, buffer->__x, sizeof (buffer->__x));
+diff --git a/sysdeps/mach/hurd/execve.c b/sysdeps/mach/hurd/execve.c
+index 716cea7bf8fd0eba..72e509b7870085d0 100644
+--- a/sysdeps/mach/hurd/execve.c
++++ b/sysdeps/mach/hurd/execve.c
+@@ -22,10 +22,7 @@
+ /* Replace the current process, executing FILE_NAME with arguments ARGV and
+    environment ENVP.  ARGV and ENVP are terminated by NULL pointers.  */
+ int
+-__execve (file_name, argv, envp)
+-     const char *file_name;
+-     char *const argv[];
+-     char *const envp[];
++__execve (const char *file_name, char *const argv[], char *const envp[])
+ {
+   error_t err;
+   file_t file = __file_name_lookup (file_name, O_EXEC, 0);
+diff --git a/sysdeps/mach/hurd/utimes.c b/sysdeps/mach/hurd/utimes.c
+index ae3d375b2dfb3c72..d915fae5bfee9e6e 100644
+--- a/sysdeps/mach/hurd/utimes.c
++++ b/sysdeps/mach/hurd/utimes.c
+@@ -24,9 +24,7 @@
+ /* Change the access time of FILE to TVP[0] and
+    the modification time of FILE to TVP[1].  */
+ int
+-__utimes (file, tvp)
+-     const char *file;
+-     const struct timeval tvp[2];
++__utimes (const char *file, const struct timeval tvp[2])
+ {
+   union tv
+   {
+diff --git a/sysdeps/unix/sysv/linux/fexecve.c b/sysdeps/unix/sysv/linux/fexecve.c
+index 032e680742507e70..df341cde0a3ea21b 100644
+--- a/sysdeps/unix/sysv/linux/fexecve.c
++++ b/sysdeps/unix/sysv/linux/fexecve.c
+@@ -25,10 +25,7 @@
+ /* Execute the file FD refers to, overlaying the running program image.
+    ARGV and ENVP are passed to the new program, as for `execve'.  */
+ int
+-fexecve (fd, argv, envp)
+-     int fd;
+-     char *const argv[];
+-     char *const envp[];
++fexecve (int fd, char *const argv[], char *const envp[])
+ {
+   if (fd < 0 || argv == NULL || envp == NULL)
+     {
diff --git a/SOURCES/glibc-rh1505492-prototypes-15.patch b/SOURCES/glibc-rh1505492-prototypes-15.patch
new file mode 100644
index 0000000..166af36
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-15.patch
@@ -0,0 +1,442 @@
+commit 41075ae3e7f406e67d51da8cc5e89e397710d54b
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Tue Oct 20 11:52:27 2015 +0000
+
+    Convert 29 more function definitions to prototype style (multiple parameters in one K&R parameter declaration).
+    
+    This automatically-generated patch converts 29 function definitions in
+    glibc (including one in an example in the manual) from old-style K&R
+    to prototype-style.  Following my other recent such patches, this one
+    deals with the case of function definitions where one K&R parameter
+    declaration declares multiple parameters, as in:
+    
+    void
+    foo (a, b)
+         int a, *b;
+    {
+    }
+    
+    Tested for x86_64 and x86 (testsuite, and that installed stripped
+    shared libraries are unchanged by the patch).
+    
+            * crypt/crypt.c (_ufc_doit_r): Convert to prototype-style function
+            definition.
+            (_ufc_doit_r): Likewise.
+            * crypt/crypt_util.c (_ufc_copymem): Likewise.
+            (_ufc_output_conversion_r): Likewise.
+            * inet/inet_mkadr.c (__inet_makeaddr): Likewise.
+            * inet/rcmd.c (rcmd_af): Likewise.
+            (rcmd): Likewise.
+            (ruserok_af): Likewise.
+            (ruserok): Likewise.
+            (ruserok2_sa): Likewise.
+            (ruserok_sa): Likewise.
+            (iruserok_af): Likewise.
+            (iruserok): Likewise.
+            (__ivaliduser): Likewise.
+            (__validuser2_sa): Likewise.
+            * inet/rexec.c (rexec_af): Likewise.
+            (rexec): Likewise.
+            * inet/ruserpass.c (ruserpass): Likewise.
+            * locale/programs/xmalloc.c (xcalloc): Likewise.
+            * manual/examples/timeval_subtract.c (timeval_subtract): Likewise.
+            * math/w_drem.c (__drem): Likewise.
+            * math/w_dremf.c (__dremf): Likewise.
+            * math/w_dreml.c (__dreml): Likewise.
+            * misc/daemon.c (daemon): Likewise.
+            * resolv/res_debug.c (p_fqnname): Likewise.
+            * stdlib/div.c (div): Likewise.
+            * string/memcmp.c (memcmp_bytes): Likewise.
+            * sunrpc/pmap_rmt.c (pmap_rmtcall): Likewise.
+            * sunrpc/svc_udp.c (svcudp_bufcreate): Likewise.
+
+diff --git a/crypt/crypt.c b/crypt/crypt.c
+index 34b8f2e280263f7a..c86f8a8ab0663f47 100644
+--- a/crypt/crypt.c
++++ b/crypt/crypt.c
+@@ -36,9 +36,8 @@
+ #define SBA(sb, v) (*(long32*)((char*)(sb)+(v)))
+ 
+ void
+-_ufc_doit_r(itr, __data, res)
+-     ufc_long itr, *res;
+-     struct crypt_data * __restrict __data;
++_ufc_doit_r (ufc_long itr, struct crypt_data * __restrict __data,
++	     ufc_long *res)
+ {
+   int i;
+   long32 s, *k;
+@@ -82,9 +81,8 @@ _ufc_doit_r(itr, __data, res)
+ #define SBA(sb, v) (*(long64*)((char*)(sb)+(v)))
+ 
+ void
+-_ufc_doit_r(itr, __data, res)
+-     ufc_long itr, *res;
+-     struct crypt_data * __restrict __data;
++_ufc_doit_r (ufc_long itr, struct crypt_data * __restrict __data,
++	     ufc_long *res)
+ {
+   int i;
+   long64 l, r, s, *k;
+diff --git a/crypt/crypt_util.c b/crypt/crypt_util.c
+index 954bbfcfebd169b6..9a48e27a81ea7eb3 100644
+--- a/crypt/crypt_util.c
++++ b/crypt/crypt_util.c
+@@ -312,9 +312,7 @@ _ufc_clearmem (char *start, int cnt)
+ }
+ 
+ void
+-_ufc_copymem(from, to, cnt)
+-     char *from, *to;
+-     int cnt;
++_ufc_copymem (char *from, char *to, int cnt)
+ {
+   while(cnt--)
+     *to++ = *from++;
+@@ -770,10 +768,8 @@ _ufc_dofinalperm_r (ufc_long *res, struct crypt_data * __restrict __data)
+  */
+ 
+ void
+-_ufc_output_conversion_r(v1, v2, salt, __data)
+-     ufc_long v1, v2;
+-     const char *salt;
+-     struct crypt_data * __restrict __data;
++_ufc_output_conversion_r (ufc_long v1, ufc_long v2, const char *salt,
++			  struct crypt_data * __restrict __data)
+ {
+   int i, s, shf;
+ 
+diff --git a/inet/rcmd.c b/inet/rcmd.c
+index efca27d674720e9c..9f7455eb1ca29045 100644
+--- a/inet/rcmd.c
++++ b/inet/rcmd.c
+@@ -103,12 +103,8 @@ libc_hidden_proto (iruserok_af)
+ libc_freeres_ptr(static char *ahostbuf);
+ 
+ int
+-rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
+-	char **ahost;
+-	u_short rport;
+-	const char *locuser, *remuser, *cmd;
+-	int *fd2p;
+-	sa_family_t af;
++rcmd_af (char **ahost, u_short rport, const char *locuser, const char *remuser,
++	 const char *cmd, int *fd2p, sa_family_t af)
+ {
+ 	char paddr[INET6_ADDRSTRLEN];
+ 	struct addrinfo hints, *res, *ai;
+@@ -360,11 +356,8 @@ bad:
+ libc_hidden_def (rcmd_af)
+ 
+ int
+-rcmd(ahost, rport, locuser, remuser, cmd, fd2p)
+-	char **ahost;
+-	u_short rport;
+-	const char *locuser, *remuser, *cmd;
+-	int *fd2p;
++rcmd (char **ahost, u_short rport, const char *locuser, const char *remuser,
++      const char *cmd, int *fd2p)
+ {
+   return rcmd_af (ahost, rport, locuser, remuser, cmd, fd2p, AF_INET);
+ }
+@@ -434,10 +427,8 @@ int	__check_rhosts_file = 1;
+ char	*__rcmd_errstr;
+ 
+ int
+-ruserok_af(rhost, superuser, ruser, luser, af)
+-	const char *rhost, *ruser, *luser;
+-	int superuser;
+-	sa_family_t af;
++ruserok_af (const char *rhost, int superuser, const char *ruser,
++	    const char *luser, sa_family_t af)
+ {
+ 	struct addrinfo hints, *res, *res0;
+ 	int gai;
+@@ -461,9 +452,8 @@ ruserok_af(rhost, superuser, ruser, luser, af)
+ libc_hidden_def (ruserok_af)
+ 
+ int
+-ruserok(rhost, superuser, ruser, luser)
+-	const char *rhost, *ruser, *luser;
+-	int superuser;
++ruserok (const char *rhost, int superuser, const char *ruser,
++	 const char *luser)
+ {
+ 	return ruserok_af(rhost, superuser, ruser, luser, AF_INET);
+ }
+@@ -523,11 +513,8 @@ iruserfopen (const char *file, uid_t okuser)
+  * Returns 0 if ok, -1 if not ok.
+  */
+ static int
+-ruserok2_sa (ra, ralen, superuser, ruser, luser, rhost)
+-     struct sockaddr *ra;
+-     size_t ralen;
+-     int superuser;
+-     const char *ruser, *luser, *rhost;
++ruserok2_sa (struct sockaddr *ra, size_t ralen, int superuser,
++	     const char *ruser, const char *luser, const char *rhost)
+ {
+   FILE *hostf = NULL;
+   int isbad = -1;
+@@ -584,22 +571,17 @@ ruserok2_sa (ra, ralen, superuser, ruser, luser, rhost)
+  * ruserok_sa() is now discussed on ipng, so
+  * currently disabled for external use
+  */
+-static int ruserok_sa(ra, ralen, superuser, ruser, luser)
+-     struct sockaddr *ra;
+-     size_t ralen;
+-     int superuser;
+-     const char *ruser, *luser;
++static int
++ruserok_sa (struct sockaddr *ra, size_t ralen, int superuser,
++	    const char *ruser, const char *luser)
+ {
+   return ruserok2_sa(ra, ralen, superuser, ruser, luser, "-");
+ }
+ 
+ /* This is the exported version.  */
+ int
+-iruserok_af (raddr, superuser, ruser, luser, af)
+-     const void *raddr;
+-     int superuser;
+-     const char *ruser, *luser;
+-     sa_family_t af;
++iruserok_af (const void *raddr, int superuser, const char *ruser,
++	     const char *luser, sa_family_t af)
+ {
+   struct sockaddr_storage ra;
+   size_t ralen;
+@@ -626,10 +608,7 @@ iruserok_af (raddr, superuser, ruser, luser, af)
+ libc_hidden_def (iruserok_af)
+ 
+ int
+-iruserok (raddr, superuser, ruser, luser)
+-     u_int32_t raddr;
+-     int superuser;
+-     const char *ruser, *luser;
++iruserok (u_int32_t raddr, int superuser, const char *ruser, const char *luser)
+ {
+   return iruserok_af (&raddr, superuser, ruser, luser, AF_INET);
+ }
+@@ -646,10 +625,8 @@ iruserok (raddr, superuser, ruser, luser)
+  * Returns 0 if ok, -1 if not ok.
+  */
+ int
+-__ivaliduser(hostf, raddr, luser, ruser)
+-	FILE *hostf;
+-	u_int32_t raddr;
+-	const char *luser, *ruser;
++__ivaliduser (FILE *hostf, u_int32_t raddr, const char *luser,
++	      const char *ruser)
+ {
+ 	struct sockaddr_in ra;
+ 	memset(&ra, '\0', sizeof(ra));
+@@ -760,11 +737,8 @@ __isempty (char *p)
+  * Returns 0 if positive match, -1 if _not_ ok.
+  */
+ static int
+-__validuser2_sa(hostf, ra, ralen, luser, ruser, rhost)
+-	FILE *hostf;
+-	struct sockaddr *ra;
+-	size_t ralen;
+-	const char *luser, *ruser, *rhost;
++__validuser2_sa (FILE *hostf, struct sockaddr *ra, size_t ralen,
++		 const char *luser, const char *ruser, const char *rhost)
+ {
+     const char *user;
+     char *p;
+diff --git a/inet/rexec.c b/inet/rexec.c
+index 75bb47082b3fa4f2..4e6d48d6b8060b07 100644
+--- a/inet/rexec.c
++++ b/inet/rexec.c
+@@ -49,12 +49,8 @@ int	rexecoptions;
+ libc_freeres_ptr (static char *ahostbuf);
+ 
+ int
+-rexec_af(ahost, rport, name, pass, cmd, fd2p, af)
+-	char **ahost;
+-	int rport;
+-	const char *name, *pass, *cmd;
+-	int *fd2p;
+-	sa_family_t af;
++rexec_af (char **ahost, int rport, const char *name, const char *pass,
++	  const char *cmd, int *fd2p, sa_family_t af)
+ {
+ 	struct sockaddr_storage from;
+ 	struct addrinfo hints, *res0;
+@@ -198,11 +194,8 @@ bad:
+ libc_hidden_def (rexec_af)
+ 
+ int
+-rexec(ahost, rport, name, pass, cmd, fd2p)
+-	char **ahost;
+-	int rport;
+-	const char *name, *pass, *cmd;
+-	int *fd2p;
++rexec (char **ahost, int rport, const char *name, const char *pass,
++       const char *cmd, int *fd2p)
+ {
+ 	return rexec_af(ahost, rport, name, pass, cmd, fd2p, AF_INET);
+ }
+diff --git a/inet/ruserpass.c b/inet/ruserpass.c
+index f64ca3f1c12d478e..ec0acb4d46a1bb43 100644
+--- a/inet/ruserpass.c
++++ b/inet/ruserpass.c
+@@ -94,8 +94,7 @@ static const struct toktab {
+ 
+ 
+ int
+-ruserpass(host, aname, apass)
+-	const char *host, **aname, **apass;
++ruserpass (const char *host, const char **aname, const char **apass)
+ {
+ 	char *hdir, *buf, *tmp;
+ 	char myname[1024], *mydomain;
+diff --git a/locale/programs/xmalloc.c b/locale/programs/xmalloc.c
+index bfc86ab77c29ef0b..4415664d45b4bddd 100644
+--- a/locale/programs/xmalloc.c
++++ b/locale/programs/xmalloc.c
+@@ -81,8 +81,7 @@ xmalloc (size_t n)
+ /* Allocate memory for N elements of S bytes, with error checking.  */
+ 
+ VOID *
+-xcalloc (n, s)
+-     size_t n, s;
++xcalloc (size_t n, size_t s)
+ {
+   VOID *p;
+ 
+diff --git a/manual/examples/timeval_subtract.c b/manual/examples/timeval_subtract.c
+index 232d4b199c9d8b1a..bff6f0204e4cdc34 100644
+--- a/manual/examples/timeval_subtract.c
++++ b/manual/examples/timeval_subtract.c
+@@ -20,8 +20,7 @@
+    Return 1 if the difference is negative, otherwise 0.  */
+ 
+ int
+-timeval_subtract (result, x, y)
+-     struct timeval *result, *x, *y;
++timeval_subtract (struct timeval *result, struct timeval *x, struct timeval *y)
+ {
+   /* Perform the carry for the later subtraction by updating @var{y}. */
+   if (x->tv_usec < y->tv_usec) {
+diff --git a/math/w_drem.c b/math/w_drem.c
+index 9e2b1e7472cc565b..843b67aa80335849 100644
+--- a/math/w_drem.c
++++ b/math/w_drem.c
+@@ -8,8 +8,7 @@
+ #include <math.h>
+ 
+ double
+-__drem(x, y)
+-	double x, y;
++__drem (double x, double y)
+ {
+ 	return __remainder(x, y);
+ }
+diff --git a/math/w_dremf.c b/math/w_dremf.c
+index 4ec4baffd4c4fa3f..029e6bdf7f811e08 100644
+--- a/math/w_dremf.c
++++ b/math/w_dremf.c
+@@ -9,8 +9,7 @@
+ #include <math_private.h>
+ 
+ float
+-__dremf(x, y)
+-	float x, y;
++__dremf (float x, float y)
+ {
+ 	return __remainderf(x, y);
+ }
+diff --git a/math/w_dreml.c b/math/w_dreml.c
+index aa73eedc496bca65..8d0139ac28061ccc 100644
+--- a/math/w_dreml.c
++++ b/math/w_dreml.c
+@@ -10,8 +10,7 @@
+ #include <math.h>
+ 
+ long double
+-__dreml(x, y)
+-	long double x, y;
++__dreml (long double x, long double y)
+ {
+ 	return __remainderl(x, y);
+ }
+diff --git a/misc/daemon.c b/misc/daemon.c
+index 7597ce9996d5fde1..9d186b24bdc8ead0 100644
+--- a/misc/daemon.c
++++ b/misc/daemon.c
+@@ -41,8 +41,7 @@ static char sccsid[] = "@(#)daemon.c	8.1 (Berkeley) 6/4/93";
+ #include <not-cancel.h>
+ 
+ int
+-daemon(nochdir, noclose)
+-	int nochdir, noclose;
++daemon (int nochdir, int noclose)
+ {
+ 	int fd;
+ 
+diff --git a/stdlib/div.c b/stdlib/div.c
+index a388080ed2852792..f4367c8770cff758 100644
+--- a/stdlib/div.c
++++ b/stdlib/div.c
+@@ -51,8 +51,7 @@
+ 
+ /* Return the `div_t' representation of NUMER over DENOM.  */
+ div_t
+-div (numer, denom)
+-     int numer, denom;
++div (int numer, int denom)
+ {
+   div_t result;
+ 
+diff --git a/string/memcmp.c b/string/memcmp.c
+index 2600c9d8038043a6..dbb286c7061fcbd6 100644
+--- a/string/memcmp.c
++++ b/string/memcmp.c
+@@ -97,8 +97,7 @@ static int memcmp_bytes (op_t, op_t) __THROW;
+ __inline
+ # endif
+ static int
+-memcmp_bytes (a, b)
+-     op_t a, b;
++memcmp_bytes (op_t a, op_t b)
+ {
+   long int srcp1 = (long int) &a;
+   long int srcp2 = (long int) &b;
+diff --git a/sunrpc/pmap_rmt.c b/sunrpc/pmap_rmt.c
+index c0adc5b49ac4c54f..c8a8011ea5474b3b 100644
+--- a/sunrpc/pmap_rmt.c
++++ b/sunrpc/pmap_rmt.c
+@@ -64,13 +64,9 @@ static const struct timeval timeout = {3, 0};
+  * programs to do a lookup and call in one step.
+  */
+ enum clnt_stat
+-pmap_rmtcall (addr, prog, vers, proc, xdrargs, argsp, xdrres, resp, tout, port_ptr)
+-     struct sockaddr_in *addr;
+-     u_long prog, vers, proc;
+-     xdrproc_t xdrargs, xdrres;
+-     caddr_t argsp, resp;
+-     struct timeval tout;
+-     u_long *port_ptr;
++pmap_rmtcall (struct sockaddr_in *addr, u_long prog, u_long vers, u_long proc,
++	      xdrproc_t xdrargs, caddr_t argsp, xdrproc_t xdrres, caddr_t resp,
++	      struct timeval tout, u_long *port_ptr)
+ {
+   int socket = -1;
+   CLIENT *client;
+diff --git a/sunrpc/svc_udp.c b/sunrpc/svc_udp.c
+index d1c8788d20b6805c..c1139b035317e886 100644
+--- a/sunrpc/svc_udp.c
++++ b/sunrpc/svc_udp.c
+@@ -118,9 +118,7 @@ struct svcudp_data
+  * The routines returns NULL if a problem occurred.
+  */
+ SVCXPRT *
+-svcudp_bufcreate (sock, sendsz, recvsz)
+-     int sock;
+-     u_int sendsz, recvsz;
++svcudp_bufcreate (int sock, u_int sendsz, u_int recvsz)
+ {
+   bool_t madesock = FALSE;
+   SVCXPRT *xprt;
diff --git a/SOURCES/glibc-rh1505492-prototypes-16.patch b/SOURCES/glibc-rh1505492-prototypes-16.patch
new file mode 100644
index 0000000..2052427
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-16.patch
@@ -0,0 +1,1736 @@
+commit 9dd346ff431fc761f1b748bd4da8bb59f7652094
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Tue Oct 20 11:54:09 2015 +0000
+
+    Convert 113 more function definitions to prototype style (files with assertions).
+    
+    This mostly automatically-generated patch converts 113 function
+    definitions in glibc from old-style K&R to prototype-style.  Following
+    my other recent such patches, this one deals with the case of function
+    definitions in files that either contain assertions or where grep
+    suggested they might contain assertions - and thus where it isn't
+    possible to use a simple object code comparison as a sanity check on
+    the correctness of the patch, because line numbers are changed.
+    
+    A few such automatically-generated changes needed to be supplemented
+    by manual changes for the result to compile.  openat64 had a prototype
+    declaration with "..." but an old-style definition in
+    sysdeps/unix/sysv/linux/dl-openat64.c, and "..." needed adding to the
+    generated prototype in the definition (I've filed
+    <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68024> for diagnosing
+    such cases in GCC; the old state was undefined behavior not requiring
+    a diagnostic, but one seems a good idea).  In addition, as Florian has
+    noted regparm attribute mismatches between declaration and definition
+    are only diagnosed for prototype definitions, and five functions
+    needed internal_function added to their definitions (in the case of
+    __pthread_mutex_cond_lock, via the macro definition of
+    __pthread_mutex_lock) to compile on i386.
+    
+    After this patch is in, remaining old-style definitions are probably
+    most readily fixed manually before we can turn on
+    -Wold-style-definition for all builds.
+    
+    Tested for x86_64 and x86 (testsuite).
+    
+            * crypt/md5-crypt.c (__md5_crypt_r): Convert to prototype-style
+            function definition.
+            * crypt/sha256-crypt.c (__sha256_crypt_r): Likewise.
+            * crypt/sha512-crypt.c (__sha512_crypt_r): Likewise.
+            * debug/backtracesyms.c (__backtrace_symbols): Likewise.
+            * elf/dl-minimal.c (_itoa): Likewise.
+            * hurd/hurdmalloc.c (malloc): Likewise.
+            (free): Likewise.
+            (realloc): Likewise.
+            * inet/inet6_option.c (inet6_option_space): Likewise.
+            (inet6_option_init): Likewise.
+            (inet6_option_append): Likewise.
+            (inet6_option_alloc): Likewise.
+            (inet6_option_next): Likewise.
+            (inet6_option_find): Likewise.
+            * io/ftw.c (FTW_NAME): Likewise.
+            (NFTW_NAME): Likewise.
+            (NFTW_NEW_NAME): Likewise.
+            (NFTW_OLD_NAME): Likewise.
+            * libio/iofwide.c (_IO_fwide): Likewise.
+            * libio/strops.c (_IO_str_init_static_internal): Likewise.
+            (_IO_str_init_static): Likewise.
+            (_IO_str_init_readonly): Likewise.
+            (_IO_str_overflow): Likewise.
+            (_IO_str_underflow): Likewise.
+            (_IO_str_count): Likewise.
+            (_IO_str_seekoff): Likewise.
+            (_IO_str_pbackfail): Likewise.
+            (_IO_str_finish): Likewise.
+            * libio/wstrops.c (_IO_wstr_init_static): Likewise.
+            (_IO_wstr_overflow): Likewise.
+            (_IO_wstr_underflow): Likewise.
+            (_IO_wstr_count): Likewise.
+            (_IO_wstr_seekoff): Likewise.
+            (_IO_wstr_pbackfail): Likewise.
+            (_IO_wstr_finish): Likewise.
+            * locale/programs/localedef.c (normalize_codeset): Likewise.
+            * locale/programs/locarchive.c (add_locale_to_archive): Likewise.
+            (add_locales_to_archive): Likewise.
+            (delete_locales_from_archive): Likewise.
+            * malloc/malloc.c (__libc_mallinfo): Likewise.
+            * math/gen-auto-libm-tests.c (init_fp_formats): Likewise.
+            * misc/tsearch.c (__tfind): Likewise.
+            * nptl/pthread_attr_destroy.c (__pthread_attr_destroy): Likewise.
+            * nptl/pthread_attr_getdetachstate.c
+            (__pthread_attr_getdetachstate): Likewise.
+            * nptl/pthread_attr_getguardsize.c (pthread_attr_getguardsize):
+            Likewise.
+            * nptl/pthread_attr_getinheritsched.c
+            (__pthread_attr_getinheritsched): Likewise.
+            * nptl/pthread_attr_getschedparam.c
+            (__pthread_attr_getschedparam): Likewise.
+            * nptl/pthread_attr_getschedpolicy.c
+            (__pthread_attr_getschedpolicy): Likewise.
+            * nptl/pthread_attr_getscope.c (__pthread_attr_getscope):
+            Likewise.
+            * nptl/pthread_attr_getstack.c (__pthread_attr_getstack):
+            Likewise.
+            * nptl/pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr):
+            Likewise.
+            * nptl/pthread_attr_getstacksize.c (__pthread_attr_getstacksize):
+            Likewise.
+            * nptl/pthread_attr_init.c (__pthread_attr_init_2_1): Likewise.
+            (__pthread_attr_init_2_0): Likewise.
+            * nptl/pthread_attr_setdetachstate.c
+            (__pthread_attr_setdetachstate): Likewise.
+            * nptl/pthread_attr_setguardsize.c (pthread_attr_setguardsize):
+            Likewise.
+            * nptl/pthread_attr_setinheritsched.c
+            (__pthread_attr_setinheritsched): Likewise.
+            * nptl/pthread_attr_setschedparam.c
+            (__pthread_attr_setschedparam): Likewise.
+            * nptl/pthread_attr_setschedpolicy.c
+            (__pthread_attr_setschedpolicy): Likewise.
+            * nptl/pthread_attr_setscope.c (__pthread_attr_setscope):
+            Likewise.
+            * nptl/pthread_attr_setstack.c (__pthread_attr_setstack):
+            Likewise.
+            * nptl/pthread_attr_setstackaddr.c (__pthread_attr_setstackaddr):
+            Likewise.
+            * nptl/pthread_attr_setstacksize.c (__pthread_attr_setstacksize):
+            Likewise.
+            * nptl/pthread_condattr_setclock.c (pthread_condattr_setclock):
+            Likewise.
+            * nptl/pthread_create.c (__find_in_stack_list): Likewise.
+            * nptl/pthread_getattr_np.c (pthread_getattr_np): Likewise.
+            * nptl/pthread_mutex_cond_lock.c (__pthread_mutex_lock): Define to
+            use internal_function.
+            * nptl/pthread_mutex_init.c (__pthread_mutex_init): Convert to
+            prototype-style function definition.
+            * nptl/pthread_mutex_lock.c (__pthread_mutex_lock): Likewise.
+            (__pthread_mutex_cond_lock_adjust): Likewise.  Use
+            internal_function.
+            * nptl/pthread_mutex_timedlock.c (pthread_mutex_timedlock):
+            Convert to prototype-style function definition.
+            * nptl/pthread_mutex_trylock.c (__pthread_mutex_trylock):
+            Likewise.
+            * nptl/pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt):
+            Likewise.
+            (__pthread_mutex_unlock): Likewise.
+            * nptl_db/td_ta_clear_event.c (td_ta_clear_event): Likewise.
+            * nptl_db/td_ta_set_event.c (td_ta_set_event): Likewise.
+            * nptl_db/td_thr_clear_event.c (td_thr_clear_event): Likewise.
+            * nptl_db/td_thr_event_enable.c (td_thr_event_enable): Likewise.
+            * nptl_db/td_thr_set_event.c (td_thr_set_event): Likewise.
+            * nss/makedb.c (process_input): Likewise.
+            * posix/fnmatch.c (__strchrnul): Likewise.
+            (__wcschrnul): Likewise.
+            (fnmatch): Likewise.
+            * posix/fnmatch_loop.c (FCT): Likewise.
+            * posix/glob.c (globfree): Likewise.
+            (__glob_pattern_type): Likewise.
+            (__glob_pattern_p): Likewise.
+            * posix/regcomp.c (re_compile_pattern): Likewise.
+            (re_set_syntax): Likewise.
+            (re_compile_fastmap): Likewise.
+            (regcomp): Likewise.
+            (regerror): Likewise.
+            (regfree): Likewise.
+            * posix/regexec.c (regexec): Likewise.
+            (re_match): Likewise.
+            (re_search): Likewise.
+            (re_match_2): Likewise.
+            (re_search_2): Likewise.
+            (re_search_stub): Likewise.  Use internal_function
+            (re_copy_regs): Likewise.
+            (re_set_registers): Convert to prototype-style function
+            definition.
+            (prune_impossible_nodes): Likewise.  Use internal_function.
+            * resolv/inet_net_pton.c (inet_net_pton): Convert to
+            prototype-style function definition.
+            (inet_net_pton_ipv4): Likewise.
+            * stdlib/strtod_l.c (____STRTOF_INTERNAL): Likewise.
+            * sysdeps/pthread/aio_cancel.c (aio_cancel): Likewise.
+            * sysdeps/pthread/aio_suspend.c (aio_suspend): Likewise.
+            * sysdeps/pthread/timer_delete.c (timer_delete): Likewise.
+            * sysdeps/unix/sysv/linux/dl-openat64.c (openat64): Likewise.
+            Make variadic.
+            * time/strptime_l.c (localtime_r): Convert to prototype-style
+            function definition.
+            * wcsmbs/mbsnrtowcs.c (__mbsnrtowcs): Likewise.
+            * wcsmbs/mbsrtowcs_l.c (__mbsrtowcs_l): Likewise.
+            * wcsmbs/wcsnrtombs.c (__wcsnrtombs): Likewise.
+            * wcsmbs/wcsrtombs.c (__wcsrtombs): Likewise.
+
+Conflicts:
+	malloc/malloc.c
+	  (Textual conflict due to malloc reformatting.)
+	math/gen-auto-libm-tests.c
+	  (Missing backport of ffb536d0ac914a110c160c48d01097d132e20531,
+	  Start generating libm tests automatically with MPFR; file
+	  deleted manually.)
+	sysdeps/pthread/timer_delete.c
+	  (Applied to nptl/sysdeps/pthread/timer_delete.c.)
+
+diff --git a/crypt/md5-crypt.c b/crypt/md5-crypt.c
+index db4ea9c6f1f42f00..e8db37641ac50573 100644
+--- a/crypt/md5-crypt.c
++++ b/crypt/md5-crypt.c
+@@ -93,11 +93,7 @@ extern char *__md5_crypt (const char *key, const char *salt);
+ /* This entry point is equivalent to the `crypt' function in Unix
+    libcs.  */
+ char *
+-__md5_crypt_r (key, salt, buffer, buflen)
+-     const char *key;
+-     const char *salt;
+-     char *buffer;
+-     int buflen;
++__md5_crypt_r (const char *key, const char *salt, char *buffer, int buflen)
+ {
+   unsigned char alt_result[16]
+     __attribute__ ((__aligned__ (__alignof__ (md5_uint32))));
+diff --git a/crypt/sha256-crypt.c b/crypt/sha256-crypt.c
+index 440933ac015ab2f6..7532d7ddbb558e9a 100644
+--- a/crypt/sha256-crypt.c
++++ b/crypt/sha256-crypt.c
+@@ -101,11 +101,7 @@ extern char *__sha256_crypt (const char *key, const char *salt);
+ 
+ 
+ char *
+-__sha256_crypt_r (key, salt, buffer, buflen)
+-     const char *key;
+-     const char *salt;
+-     char *buffer;
+-     int buflen;
++__sha256_crypt_r (const char *key, const char *salt, char *buffer, int buflen)
+ {
+   unsigned char alt_result[32]
+     __attribute__ ((__aligned__ (__alignof__ (uint32_t))));
+diff --git a/crypt/sha512-crypt.c b/crypt/sha512-crypt.c
+index e5d9cacfdac437a1..8cba4264d2a871e5 100644
+--- a/crypt/sha512-crypt.c
++++ b/crypt/sha512-crypt.c
+@@ -101,11 +101,7 @@ extern char *__sha512_crypt (const char *key, const char *salt);
+ 
+ 
+ char *
+-__sha512_crypt_r (key, salt, buffer, buflen)
+-     const char *key;
+-     const char *salt;
+-     char *buffer;
+-     int buflen;
++__sha512_crypt_r (const char *key, const char *salt, char *buffer, int buflen)
+ {
+   unsigned char alt_result[64]
+     __attribute__ ((__aligned__ (__alignof__ (uint64_t))));
+diff --git a/debug/backtracesyms.c b/debug/backtracesyms.c
+index 3fabf26a8be2289c..938f5f6ff6b38b8a 100644
+--- a/debug/backtracesyms.c
++++ b/debug/backtracesyms.c
+@@ -34,9 +34,7 @@
+ 
+ 
+ char **
+-__backtrace_symbols (array, size)
+-     void *const *array;
+-     int size;
++__backtrace_symbols (void *const *array, int size)
+ {
+   Dl_info info[size];
+   int status[size];
+diff --git a/elf/dl-minimal.c b/elf/dl-minimal.c
+index a8b2d4f339e4c3dd..55ee1af9829bd8f1 100644
+--- a/elf/dl-minimal.c
++++ b/elf/dl-minimal.c
+@@ -309,11 +309,8 @@ __strtoul_internal (const char *nptr, char **endptr, int base, int group)
+    also has to be present and it is never about speed when these
+    functions are used.  */
+ char *
+-_itoa (value, buflim, base, upper_case)
+-     unsigned long long int value;
+-     char *buflim;
+-     unsigned int base;
+-     int upper_case;
++_itoa (unsigned long long int value, char *buflim, unsigned int base,
++       int upper_case)
+ {
+   assert (! upper_case);
+ 
+diff --git a/hurd/hurdmalloc.c b/hurd/hurdmalloc.c
+index da611653b602975f..8d1ac3069758bd2d 100644
+--- a/hurd/hurdmalloc.c
++++ b/hurd/hurdmalloc.c
+@@ -202,8 +202,7 @@ more_memory(int size, free_list_t fl)
+ 
+ /* Declaration changed to standard one for GNU.  */
+ void *
+-malloc(size)
+-	size_t size;
++malloc (size_t size)
+ {
+ 	int i, n;
+ 	free_list_t fl;
+@@ -269,8 +268,7 @@ malloc(size)
+ 
+ /* Declaration changed to standard one for GNU.  */
+ void
+-free(base)
+-	void *base;
++free (void *base)
+ {
+ 	header_t h;
+ 	free_list_t fl;
+@@ -318,9 +316,7 @@ free(base)
+ 
+ /* Declaration changed to standard one for GNU.  */
+ void *
+-realloc(old_base, new_size)
+-        void *old_base;
+-        size_t new_size;
++realloc (void *old_base, size_t new_size)
+ {
+ 	header_t h;
+ 	free_list_t fl;
+diff --git a/inet/inet6_option.c b/inet/inet6_option.c
+index b5ca2a604126b93a..d8c202b867bbe9f6 100644
+--- a/inet/inet6_option.c
++++ b/inet/inet6_option.c
+@@ -88,8 +88,7 @@ static uint8_t *option_alloc (struct cmsghdr *cmsg, int datalen, int multx,
+    beginning (the value y in the alignment term "xn + y"), the type
+    byte, the length byte, and the option data.  */
+ int
+-inet6_option_space (nbytes)
+-     int nbytes;
++inet6_option_space (int nbytes)
+ {
+   /* Add room for the extension header.  */
+   nbytes += sizeof (struct ip6_ext);
+@@ -106,10 +105,7 @@ link_warning (inet6_option_space,
+    contain either Hop-by-Hop or Destination options.  It returns 0 on
+    success or -1 on an error.  */
+ int
+-inet6_option_init (bp, cmsgp, type)
+-     void *bp;
+-     struct cmsghdr **cmsgp;
+-     int type;
++inet6_option_init (void *bp, struct cmsghdr **cmsgp, int type)
+ {
+   /* Only Hop-by-Hop or Destination options allowed.  */
+   if (type != IPV6_HOPOPTS && type != IPV6_DSTOPTS)
+@@ -143,11 +139,8 @@ link_warning (inet6_option_init,
+    inet6_option_init().  This function returns 0 if it succeeds or -1 on
+    an error.  */
+ int
+-inet6_option_append (cmsg, typep, multx, plusy)
+-     struct cmsghdr *cmsg;
+-     const uint8_t *typep;
+-     int multx;
+-     int plusy;
++inet6_option_append (struct cmsghdr *cmsg, const uint8_t *typep, int multx,
++		     int plusy)
+ {
+   /* typep is a pointer to the 8-bit option type.  It is assumed that this
+      field is immediately followed by the 8-bit option data length field,
+@@ -223,11 +216,7 @@ option_alloc (struct cmsghdr *cmsg, int datalen, int multx, int plusy)
+ 
+ 
+ uint8_t *
+-inet6_option_alloc (cmsg, datalen, multx, plusy)
+-     struct cmsghdr *cmsg;
+-     int datalen;
+-     int multx;
+-     int plusy;
++inet6_option_alloc (struct cmsghdr *cmsg, int datalen, int multx, int plusy)
+ {
+   return option_alloc (cmsg, datalen, multx, plusy);
+ }
+@@ -245,9 +234,7 @@ link_warning (inet6_option_alloc,
+    to be processed, the return value is -1 and *tptrp is NULL.  If an
+    error occurs, the return value is -1 and *tptrp is not NULL.  */
+ int
+-inet6_option_next (cmsg, tptrp)
+-     const struct cmsghdr *cmsg;
+-     uint8_t **tptrp;
++inet6_option_next (const struct cmsghdr *cmsg, uint8_t **tptrp)
+ {
+   /* Make sure it is an option of the right type.  */
+   if (cmsg->cmsg_level != IPPROTO_IPV6
+@@ -303,10 +290,7 @@ link_warning (inet6_option_next,
+    pointer to cmsghdr structure of which cmsg_level equals IPPROTO_IPV6
+    and cmsg_type equals either IPV6_HOPOPTS or IPV6_DSTOPTS.  */
+ int
+-inet6_option_find (cmsg, tptrp, type)
+-     const struct cmsghdr *cmsg;
+-     uint8_t **tptrp;
+-     int type;
++inet6_option_find (const struct cmsghdr *cmsg, uint8_t **tptrp, int type)
+ {
+   /* Make sure it is an option of the right type.  */
+   if (cmsg->cmsg_level != IPPROTO_IPV6
+diff --git a/io/ftw.c b/io/ftw.c
+index ffdb4b02dc7ca4d5..57777b3de86e417c 100644
+--- a/io/ftw.c
++++ b/io/ftw.c
+@@ -817,21 +817,14 @@ ftw_startup (const char *dir, int is_nftw, void *func, int descriptors,
+ /* Entry points.  */
+ 
+ int
+-FTW_NAME (path, func, descriptors)
+-     const char *path;
+-     FTW_FUNC_T func;
+-     int descriptors;
++FTW_NAME (const char *path, FTW_FUNC_T func, int descriptors)
+ {
+   return ftw_startup (path, 0, func, descriptors, 0);
+ }
+ 
+ #ifndef _LIBC
+ int
+-NFTW_NAME (path, func, descriptors, flags)
+-     const char *path;
+-     NFTW_FUNC_T func;
+-     int descriptors;
+-     int flags;
++NFTW_NAME (const char *path, NFTW_FUNC_T func, int descriptors, int flags)
+ {
+   return ftw_startup (path, 1, func, descriptors, flags);
+ }
+@@ -842,11 +835,7 @@ NFTW_NAME (path, func, descriptors, flags)
+ int NFTW_NEW_NAME (const char *, NFTW_FUNC_T, int, int);
+ 
+ int
+-NFTW_NEW_NAME (path, func, descriptors, flags)
+-     const char *path;
+-     NFTW_FUNC_T func;
+-     int descriptors;
+-     int flags;
++NFTW_NEW_NAME (const char *path, NFTW_FUNC_T func, int descriptors, int flags)
+ {
+   if (flags
+       & ~(FTW_PHYS | FTW_MOUNT | FTW_CHDIR | FTW_DEPTH | FTW_ACTIONRETVAL))
+@@ -867,11 +856,7 @@ int NFTW_OLD_NAME (const char *, NFTW_FUNC_T, int, int);
+ 
+ int
+ attribute_compat_text_section
+-NFTW_OLD_NAME (path, func, descriptors, flags)
+-     const char *path;
+-     NFTW_FUNC_T func;
+-     int descriptors;
+-     int flags;
++NFTW_OLD_NAME (const char *path, NFTW_FUNC_T func, int descriptors, int flags)
+ {
+   flags &= (FTW_PHYS | FTW_MOUNT | FTW_CHDIR | FTW_DEPTH);
+   return ftw_startup (path, 1, func, descriptors, flags);
+diff --git a/libio/iofwide.c b/libio/iofwide.c
+index 675fbccc794ffe79..fe685402001a5336 100644
+--- a/libio/iofwide.c
++++ b/libio/iofwide.c
+@@ -93,9 +93,7 @@ const struct __gconv_trans_data __libio_translit attribute_hidden =
+    the orientation first.  */
+ #undef _IO_fwide
+ int
+-_IO_fwide (fp, mode)
+-     _IO_FILE *fp;
+-     int mode;
++_IO_fwide (_IO_FILE *fp, int mode)
+ {
+   /* Normalize the value.  */
+   mode = mode < 0 ? -1 : (mode == 0 ? 0 : 1);
+diff --git a/libio/strops.c b/libio/strops.c
+index a5b76af963e77877..fdd113a60811e593 100644
+--- a/libio/strops.c
++++ b/libio/strops.c
+@@ -31,11 +31,8 @@
+ #include <stdio_ext.h>
+ 
+ void
+-_IO_str_init_static_internal (sf, ptr, size, pstart)
+-     _IO_strfile *sf;
+-     char *ptr;
+-     _IO_size_t size;
+-     char *pstart;
++_IO_str_init_static_internal (_IO_strfile *sf, char *ptr, _IO_size_t size,
++			      char *pstart)
+ {
+   _IO_FILE *fp = &sf->_sbf._f;
+   char *end;
+@@ -81,9 +78,7 @@ _IO_str_init_readonly (_IO_strfile *sf, const char *ptr, int size)
+ }
+ 
+ int
+-_IO_str_overflow (fp, c)
+-     _IO_FILE *fp;
+-     int c;
++_IO_str_overflow (_IO_FILE *fp, int c)
+ {
+   int flush_only = c == EOF;
+   _IO_size_t pos;
+@@ -144,8 +139,7 @@ _IO_str_overflow (fp, c)
+ libc_hidden_def (_IO_str_overflow)
+ 
+ int
+-_IO_str_underflow (fp)
+-     _IO_FILE *fp;
++_IO_str_underflow (_IO_FILE *fp)
+ {
+   if (fp->_IO_write_ptr > fp->_IO_read_end)
+     fp->_IO_read_end = fp->_IO_write_ptr;
+@@ -165,8 +159,7 @@ libc_hidden_def (_IO_str_underflow)
+ /* The size of the valid part of the buffer.  */
+ 
+ _IO_ssize_t
+-_IO_str_count (fp)
+-     _IO_FILE *fp;
++_IO_str_count (_IO_FILE *fp)
+ {
+   return ((fp->_IO_write_ptr > fp->_IO_read_end
+ 	   ? fp->_IO_write_ptr : fp->_IO_read_end)
+@@ -239,11 +232,7 @@ enlarge_userbuf (_IO_FILE *fp, _IO_off64_t offset, int reading)
+ 
+ 
+ _IO_off64_t
+-_IO_str_seekoff (fp, offset, dir, mode)
+-     _IO_FILE *fp;
+-     _IO_off64_t offset;
+-     int dir;
+-     int mode;
++_IO_str_seekoff (_IO_FILE *fp, _IO_off64_t offset, int dir, int mode)
+ {
+   _IO_off64_t new_pos;
+ 
+@@ -316,9 +305,7 @@ _IO_str_seekoff (fp, offset, dir, mode)
+ libc_hidden_def (_IO_str_seekoff)
+ 
+ int
+-_IO_str_pbackfail (fp, c)
+-     _IO_FILE *fp;
+-     int c;
++_IO_str_pbackfail (_IO_FILE *fp, int c)
+ {
+   if ((fp->_flags & _IO_NO_WRITES) && c != EOF)
+     return EOF;
+@@ -327,9 +314,7 @@ _IO_str_pbackfail (fp, c)
+ libc_hidden_def (_IO_str_pbackfail)
+ 
+ void
+-_IO_str_finish (fp, dummy)
+-     _IO_FILE *fp;
+-     int dummy;
++_IO_str_finish (_IO_FILE *fp, int dummy)
+ {
+   if (fp->_IO_buf_base && !(fp->_flags & _IO_USER_BUF))
+     (((_IO_strfile *) fp)->_s._free_buffer) (fp->_IO_buf_base);
+diff --git a/libio/wstrops.c b/libio/wstrops.c
+index d84c5883ad7ca20d..7a9a33ab8763b8ff 100644
+--- a/libio/wstrops.c
++++ b/libio/wstrops.c
+@@ -32,11 +32,8 @@
+ #include <stdio_ext.h>
+ 
+ void
+-_IO_wstr_init_static (fp, ptr, size, pstart)
+-     _IO_FILE *fp;
+-     wchar_t *ptr;
+-     _IO_size_t size;
+-     wchar_t *pstart;
++_IO_wstr_init_static (_IO_FILE *fp, wchar_t *ptr, _IO_size_t size,
++		      wchar_t *pstart)
+ {
+   wchar_t *end;
+ 
+@@ -70,9 +67,7 @@ _IO_wstr_init_static (fp, ptr, size, pstart)
+ }
+ 
+ _IO_wint_t
+-_IO_wstr_overflow (fp, c)
+-     _IO_FILE *fp;
+-     _IO_wint_t c;
++_IO_wstr_overflow (_IO_FILE *fp, _IO_wint_t c)
+ {
+   int flush_only = c == WEOF;
+   _IO_size_t pos;
+@@ -142,8 +137,7 @@ _IO_wstr_overflow (fp, c)
+ 
+ 
+ _IO_wint_t
+-_IO_wstr_underflow (fp)
+-     _IO_FILE *fp;
++_IO_wstr_underflow (_IO_FILE *fp)
+ {
+   if (fp->_wide_data->_IO_write_ptr > fp->_wide_data->_IO_read_end)
+     fp->_wide_data->_IO_read_end = fp->_wide_data->_IO_write_ptr;
+@@ -162,8 +156,7 @@ _IO_wstr_underflow (fp)
+ 
+ /* The size of the valid part of the buffer.  */
+ _IO_ssize_t
+-_IO_wstr_count (fp)
+-     _IO_FILE *fp;
++_IO_wstr_count (_IO_FILE *fp)
+ {
+   struct _IO_wide_data *wd = fp->_wide_data;
+ 
+@@ -244,11 +237,7 @@ enlarge_userbuf (_IO_FILE *fp, _IO_off64_t offset, int reading)
+ 
+ 
+ _IO_off64_t
+-_IO_wstr_seekoff (fp, offset, dir, mode)
+-     _IO_FILE *fp;
+-     _IO_off64_t offset;
+-     int dir;
+-     int mode;
++_IO_wstr_seekoff (_IO_FILE *fp, _IO_off64_t offset, int dir, int mode)
+ {
+   _IO_off64_t new_pos;
+ 
+@@ -326,9 +315,7 @@ _IO_wstr_seekoff (fp, offset, dir, mode)
+ }
+ 
+ _IO_wint_t
+-_IO_wstr_pbackfail (fp, c)
+-     _IO_FILE *fp;
+-     _IO_wint_t c;
++_IO_wstr_pbackfail (_IO_FILE *fp, _IO_wint_t c)
+ {
+   if ((fp->_flags & _IO_NO_WRITES) && c != WEOF)
+     return WEOF;
+@@ -336,9 +323,7 @@ _IO_wstr_pbackfail (fp, c)
+ }
+ 
+ void
+-_IO_wstr_finish (fp, dummy)
+-     _IO_FILE *fp;
+-     int dummy;
++_IO_wstr_finish (_IO_FILE *fp, int dummy)
+ {
+   if (fp->_wide_data->_IO_buf_base && !(fp->_flags2 & _IO_FLAGS2_USER_WBUF))
+     (((_IO_strfile *) fp)->_s._free_buffer) (fp->_wide_data->_IO_buf_base);
+diff --git a/locale/programs/localedef.c b/locale/programs/localedef.c
+index d1a8916888d21235..4a63f68dd8309ec7 100644
+--- a/locale/programs/localedef.c
++++ b/locale/programs/localedef.c
+@@ -491,9 +491,7 @@ construct_output_path (char *path)
+    names.  Normalization allows the user to use any of the common
+    names.  */
+ static const char *
+-normalize_codeset (codeset, name_len)
+-     const char *codeset;
+-     size_t name_len;
++normalize_codeset (const char *codeset, size_t name_len)
+ {
+   int len = 0;
+   int only_digit = 1;
+diff --git a/locale/programs/locarchive.c b/locale/programs/locarchive.c
+index 1eae271186bc80a9..de98b994425474ba 100644
+--- a/locale/programs/locarchive.c
++++ b/locale/programs/locarchive.c
+@@ -1059,11 +1059,8 @@ add_locale (struct locarhandle *ah,
+    of the files if necessary.  Add all the names, possibly overwriting
+    old files.  */
+ int
+-add_locale_to_archive (ah, name, data, replace)
+-     struct locarhandle *ah;
+-     const char *name;
+-     locale_data_t data;
+-     bool replace;
++add_locale_to_archive (struct locarhandle *ah, const char *name,
++		       locale_data_t data, bool replace)
+ {
+   char *normalized_name = NULL;
+   uint32_t locrec_offset;
+@@ -1260,10 +1257,7 @@ add_locale_to_archive (ah, name, data, replace)
+ 
+ 
+ int
+-add_locales_to_archive (nlist, list, replace)
+-     size_t nlist;
+-     char *list[];
+-     bool replace;
++add_locales_to_archive (size_t nlist, char *list[], bool replace)
+ {
+   struct locarhandle ah;
+   int result = 0;
+@@ -1460,9 +1454,7 @@ add_locales_to_archive (nlist, list, replace)
+ 
+ 
+ int
+-delete_locales_from_archive (nlist, list)
+-     size_t nlist;
+-     char *list[];
++delete_locales_from_archive (size_t nlist, char *list[])
+ {
+   struct locarhandle ah;
+   struct locarhead *head;
+diff --git a/malloc/malloc.c b/malloc/malloc.c
+index 3e7b9bf9e8d71247..1de07de97bb421d6 100644
+--- a/malloc/malloc.c
++++ b/malloc/malloc.c
+@@ -4662,7 +4662,8 @@ int_mallinfo(mstate av, struct mallinfo *m)
+ }
+ 
+ 
+-struct mallinfo __libc_mallinfo()
++struct mallinfo
++__libc_mallinfo (void)
+ {
+   struct mallinfo m;
+   mstate ar_ptr;
+diff --git a/misc/tsearch.c b/misc/tsearch.c
+index eb4d97d7eee89a89..5f012e9ba9f678dc 100644
+--- a/misc/tsearch.c
++++ b/misc/tsearch.c
+@@ -300,10 +300,7 @@ weak_alias (__tsearch, tsearch)
+    KEY is the key to be located, ROOTP is the address of tree root,
+    COMPAR the ordering function.  */
+ void *
+-__tfind (key, vrootp, compar)
+-     const void *key;
+-     void *const *vrootp;
+-     __compar_fn_t compar;
++__tfind (const void *key, void *const *vrootp, __compar_fn_t compar)
+ {
+   node *rootp = (node *) vrootp;
+ 
+diff --git a/nptl/pthread_attr_destroy.c b/nptl/pthread_attr_destroy.c
+index c79752d89d05e158..ccdb5cc41f10bcdf 100644
+--- a/nptl/pthread_attr_destroy.c
++++ b/nptl/pthread_attr_destroy.c
+@@ -24,8 +24,7 @@
+ #include <shlib-compat.h>
+ 
+ int
+-__pthread_attr_destroy (attr)
+-     pthread_attr_t *attr;
++__pthread_attr_destroy (pthread_attr_t *attr)
+ {
+   struct pthread_attr *iattr;
+ 
+diff --git a/nptl/pthread_attr_getdetachstate.c b/nptl/pthread_attr_getdetachstate.c
+index 1c800323bf165a9d..601c5e77483bb5dc 100644
+--- a/nptl/pthread_attr_getdetachstate.c
++++ b/nptl/pthread_attr_getdetachstate.c
+@@ -21,9 +21,7 @@
+ 
+ 
+ int
+-__pthread_attr_getdetachstate (attr, detachstate)
+-     const pthread_attr_t *attr;
+-     int *detachstate;
++__pthread_attr_getdetachstate (const pthread_attr_t *attr, int *detachstate)
+ {
+   struct pthread_attr *iattr;
+ 
+diff --git a/nptl/pthread_attr_getguardsize.c b/nptl/pthread_attr_getguardsize.c
+index 497010dc17002951..3fba0b8c548305f5 100644
+--- a/nptl/pthread_attr_getguardsize.c
++++ b/nptl/pthread_attr_getguardsize.c
+@@ -21,9 +21,7 @@
+ 
+ 
+ int
+-pthread_attr_getguardsize (attr, guardsize)
+-     const pthread_attr_t *attr;
+-     size_t *guardsize;
++pthread_attr_getguardsize (const pthread_attr_t *attr, size_t *guardsize)
+ {
+   struct pthread_attr *iattr;
+ 
+diff --git a/nptl/pthread_attr_getinheritsched.c b/nptl/pthread_attr_getinheritsched.c
+index b25d808247cd26f1..df2c31dfa5955677 100644
+--- a/nptl/pthread_attr_getinheritsched.c
++++ b/nptl/pthread_attr_getinheritsched.c
+@@ -21,9 +21,7 @@
+ 
+ 
+ int
+-__pthread_attr_getinheritsched (attr, inherit)
+-     const pthread_attr_t *attr;
+-     int *inherit;
++__pthread_attr_getinheritsched (const pthread_attr_t *attr, int *inherit)
+ {
+   struct pthread_attr *iattr;
+ 
+diff --git a/nptl/pthread_attr_getschedparam.c b/nptl/pthread_attr_getschedparam.c
+index 352ecb54f31e0cd5..f8a0b8be60bc059b 100644
+--- a/nptl/pthread_attr_getschedparam.c
++++ b/nptl/pthread_attr_getschedparam.c
+@@ -22,9 +22,8 @@
+ 
+ 
+ int
+-__pthread_attr_getschedparam (attr, param)
+-     const pthread_attr_t *attr;
+-     struct sched_param *param;
++__pthread_attr_getschedparam (const pthread_attr_t *attr,
++			      struct sched_param *param)
+ {
+   struct pthread_attr *iattr;
+ 
+diff --git a/nptl/pthread_attr_getschedpolicy.c b/nptl/pthread_attr_getschedpolicy.c
+index badec6b4e73ebe4c..4140876527bf833f 100644
+--- a/nptl/pthread_attr_getschedpolicy.c
++++ b/nptl/pthread_attr_getschedpolicy.c
+@@ -21,9 +21,7 @@
+ 
+ 
+ int
+-__pthread_attr_getschedpolicy (attr, policy)
+-     const pthread_attr_t *attr;
+-     int *policy;
++__pthread_attr_getschedpolicy (const pthread_attr_t *attr, int *policy)
+ {
+   struct pthread_attr *iattr;
+ 
+diff --git a/nptl/pthread_attr_getscope.c b/nptl/pthread_attr_getscope.c
+index b2e1b141b6d109e9..fc79b8e95a779e99 100644
+--- a/nptl/pthread_attr_getscope.c
++++ b/nptl/pthread_attr_getscope.c
+@@ -21,9 +21,7 @@
+ 
+ 
+ int
+-__pthread_attr_getscope (attr, scope)
+-     const pthread_attr_t *attr;
+-     int *scope;
++__pthread_attr_getscope (const pthread_attr_t *attr, int *scope)
+ {
+   struct pthread_attr *iattr;
+ 
+diff --git a/nptl/pthread_attr_getstack.c b/nptl/pthread_attr_getstack.c
+index 0ede9e77a1260997..df77a35380be68a4 100644
+--- a/nptl/pthread_attr_getstack.c
++++ b/nptl/pthread_attr_getstack.c
+@@ -21,10 +21,8 @@
+ 
+ 
+ int
+-__pthread_attr_getstack (attr, stackaddr, stacksize)
+-     const pthread_attr_t *attr;
+-     void **stackaddr;
+-     size_t *stacksize;
++__pthread_attr_getstack (const pthread_attr_t *attr, void **stackaddr,
++			 size_t *stacksize)
+ {
+   struct pthread_attr *iattr;
+ 
+diff --git a/nptl/pthread_attr_getstackaddr.c b/nptl/pthread_attr_getstackaddr.c
+index 958a856f5842c0c1..859eb7dec98568b7 100644
+--- a/nptl/pthread_attr_getstackaddr.c
++++ b/nptl/pthread_attr_getstackaddr.c
+@@ -22,9 +22,7 @@
+ 
+ 
+ int
+-__pthread_attr_getstackaddr (attr, stackaddr)
+-     const pthread_attr_t *attr;
+-     void **stackaddr;
++__pthread_attr_getstackaddr (const pthread_attr_t *attr, void **stackaddr)
+ {
+   struct pthread_attr *iattr;
+ 
+diff --git a/nptl/pthread_attr_getstacksize.c b/nptl/pthread_attr_getstacksize.c
+index 7c63e55942536cc3..53d65257ebdcd408 100644
+--- a/nptl/pthread_attr_getstacksize.c
++++ b/nptl/pthread_attr_getstacksize.c
+@@ -21,9 +21,7 @@
+ 
+ 
+ int
+-__pthread_attr_getstacksize (attr, stacksize)
+-     const pthread_attr_t *attr;
+-     size_t *stacksize;
++__pthread_attr_getstacksize (const pthread_attr_t *attr, size_t *stacksize)
+ {
+   struct pthread_attr *iattr;
+ 
+diff --git a/nptl/pthread_attr_init.c b/nptl/pthread_attr_init.c
+index a7add4b80d248cc8..e5b800b72e100acf 100644
+--- a/nptl/pthread_attr_init.c
++++ b/nptl/pthread_attr_init.c
+@@ -30,8 +30,7 @@ int __attr_list_lock = LLL_LOCK_INITIALIZER;
+ 
+ 
+ int
+-__pthread_attr_init_2_1 (attr)
+-     pthread_attr_t *attr;
++__pthread_attr_init_2_1 (pthread_attr_t *attr)
+ {
+   struct pthread_attr *iattr;
+ 
+@@ -54,8 +53,7 @@ versioned_symbol (libpthread, __pthread_attr_init_2_1, pthread_attr_init,
+ 
+ #if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
+ int
+-__pthread_attr_init_2_0 (attr)
+-     pthread_attr_t *attr;
++__pthread_attr_init_2_0 (pthread_attr_t *attr)
+ {
+   /* This code is specific to the old LinuxThread code which has a too
+      small pthread_attr_t definition.  The struct looked like
+diff --git a/nptl/pthread_attr_setdetachstate.c b/nptl/pthread_attr_setdetachstate.c
+index 9ce8651f0b5906d3..9d22974536c07822 100644
+--- a/nptl/pthread_attr_setdetachstate.c
++++ b/nptl/pthread_attr_setdetachstate.c
+@@ -22,9 +22,7 @@
+ 
+ 
+ int
+-__pthread_attr_setdetachstate (attr, detachstate)
+-     pthread_attr_t *attr;
+-     int detachstate;
++__pthread_attr_setdetachstate (pthread_attr_t *attr, int detachstate)
+ {
+   struct pthread_attr *iattr;
+ 
+diff --git a/nptl/pthread_attr_setguardsize.c b/nptl/pthread_attr_setguardsize.c
+index b9f1436054577e15..475054642f406517 100644
+--- a/nptl/pthread_attr_setguardsize.c
++++ b/nptl/pthread_attr_setguardsize.c
+@@ -21,9 +21,7 @@
+ 
+ 
+ int
+-pthread_attr_setguardsize (attr, guardsize)
+-     pthread_attr_t *attr;
+-     size_t guardsize;
++pthread_attr_setguardsize (pthread_attr_t *attr, size_t guardsize)
+ {
+   struct pthread_attr *iattr;
+ 
+diff --git a/nptl/pthread_attr_setinheritsched.c b/nptl/pthread_attr_setinheritsched.c
+index 2cc8c0ee06149f96..1107c64866f7e078 100644
+--- a/nptl/pthread_attr_setinheritsched.c
++++ b/nptl/pthread_attr_setinheritsched.c
+@@ -22,9 +22,7 @@
+ 
+ 
+ int
+-__pthread_attr_setinheritsched (attr, inherit)
+-     pthread_attr_t *attr;
+-     int inherit;
++__pthread_attr_setinheritsched (pthread_attr_t *attr, int inherit)
+ {
+   struct pthread_attr *iattr;
+ 
+diff --git a/nptl/pthread_attr_setschedparam.c b/nptl/pthread_attr_setschedparam.c
+index 239a41bfcc764903..ad7488688cc8d51d 100644
+--- a/nptl/pthread_attr_setschedparam.c
++++ b/nptl/pthread_attr_setschedparam.c
+@@ -23,9 +23,8 @@
+ 
+ 
+ int
+-__pthread_attr_setschedparam (attr, param)
+-     pthread_attr_t *attr;
+-     const struct sched_param *param;
++__pthread_attr_setschedparam (pthread_attr_t *attr,
++			      const struct sched_param *param)
+ {
+   assert (sizeof (*attr) >= sizeof (struct pthread_attr));
+   struct pthread_attr *iattr = (struct pthread_attr *) attr;
+diff --git a/nptl/pthread_attr_setschedpolicy.c b/nptl/pthread_attr_setschedpolicy.c
+index 0ba38a022eb564bf..ccab923cabe9f20b 100644
+--- a/nptl/pthread_attr_setschedpolicy.c
++++ b/nptl/pthread_attr_setschedpolicy.c
+@@ -22,9 +22,7 @@
+ 
+ 
+ int
+-__pthread_attr_setschedpolicy (attr, policy)
+-     pthread_attr_t *attr;
+-     int policy;
++__pthread_attr_setschedpolicy (pthread_attr_t *attr, int policy)
+ {
+   struct pthread_attr *iattr;
+ 
+diff --git a/nptl/pthread_attr_setscope.c b/nptl/pthread_attr_setscope.c
+index eb03731cb2563e5a..62d250c4fdb34497 100644
+--- a/nptl/pthread_attr_setscope.c
++++ b/nptl/pthread_attr_setscope.c
+@@ -22,9 +22,7 @@
+ 
+ 
+ int
+-__pthread_attr_setscope (attr, scope)
+-     pthread_attr_t *attr;
+-     int scope;
++__pthread_attr_setscope (pthread_attr_t *attr, int scope)
+ {
+   struct pthread_attr *iattr;
+ 
+diff --git a/nptl/pthread_attr_setstack.c b/nptl/pthread_attr_setstack.c
+index 72eaee218474de88..e8c2b8515dc5912b 100644
+--- a/nptl/pthread_attr_setstack.c
++++ b/nptl/pthread_attr_setstack.c
+@@ -28,10 +28,8 @@
+ 
+ 
+ int
+-__pthread_attr_setstack (attr, stackaddr, stacksize)
+-     pthread_attr_t *attr;
+-     void *stackaddr;
+-     size_t stacksize;
++__pthread_attr_setstack (pthread_attr_t *attr, void *stackaddr,
++			 size_t stacksize)
+ {
+   struct pthread_attr *iattr;
+ 
+diff --git a/nptl/pthread_attr_setstackaddr.c b/nptl/pthread_attr_setstackaddr.c
+index b1a33d8c3f7043c3..e20eff61fa591364 100644
+--- a/nptl/pthread_attr_setstackaddr.c
++++ b/nptl/pthread_attr_setstackaddr.c
+@@ -22,9 +22,7 @@
+ 
+ 
+ int
+-__pthread_attr_setstackaddr (attr, stackaddr)
+-     pthread_attr_t *attr;
+-     void *stackaddr;
++__pthread_attr_setstackaddr (pthread_attr_t *attr, void *stackaddr)
+ {
+   struct pthread_attr *iattr;
+ 
+diff --git a/nptl/pthread_attr_setstacksize.c b/nptl/pthread_attr_setstacksize.c
+index 954cc0f4d0b5a56e..890d3a492bc83030 100644
+--- a/nptl/pthread_attr_setstacksize.c
++++ b/nptl/pthread_attr_setstacksize.c
+@@ -27,9 +27,7 @@
+ 
+ 
+ int
+-__pthread_attr_setstacksize (attr, stacksize)
+-     pthread_attr_t *attr;
+-     size_t stacksize;
++__pthread_attr_setstacksize (pthread_attr_t *attr, size_t stacksize)
+ {
+   struct pthread_attr *iattr;
+ 
+diff --git a/nptl/pthread_condattr_setclock.c b/nptl/pthread_condattr_setclock.c
+index 8b05dc84e923cf63..fd0b7328088e6f30 100644
+--- a/nptl/pthread_condattr_setclock.c
++++ b/nptl/pthread_condattr_setclock.c
+@@ -26,9 +26,7 @@
+ 
+ 
+ int
+-pthread_condattr_setclock (attr, clock_id)
+-     pthread_condattr_t *attr;
+-     clockid_t clock_id;
++pthread_condattr_setclock (pthread_condattr_t *attr, clockid_t clock_id)
+ {
+   /* Only a few clocks are allowed.  */
+   if (clock_id != CLOCK_MONOTONIC && clock_id != CLOCK_REALTIME)
+diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
+index 1083d6faacca5ab6..987469ba58e7bffa 100644
+--- a/nptl/pthread_create.c
++++ b/nptl/pthread_create.c
+@@ -60,8 +60,7 @@ unsigned int __nptl_nthreads = 1;
+ 
+ struct pthread *
+ internal_function
+-__find_in_stack_list (pd)
+-     struct pthread *pd;
++__find_in_stack_list (struct pthread *pd)
+ {
+   list_t *entry;
+   struct pthread *result = NULL;
+diff --git a/nptl/pthread_getattr_np.c b/nptl/pthread_getattr_np.c
+index 72361c9f0497e048..8df7f6feb93ca0bb 100644
+--- a/nptl/pthread_getattr_np.c
++++ b/nptl/pthread_getattr_np.c
+@@ -30,9 +30,7 @@
+ 
+ 
+ int
+-pthread_getattr_np (thread_id, attr)
+-     pthread_t thread_id;
+-     pthread_attr_t *attr;
++pthread_getattr_np (pthread_t thread_id, pthread_attr_t *attr)
+ {
+   struct pthread *thread = (struct pthread *) thread_id;
+   struct pthread_attr *iattr = (struct pthread_attr *) attr;
+diff --git a/nptl/pthread_mutex_init.c b/nptl/pthread_mutex_init.c
+index 2979468fa516c587..0aec130f4d1754d9 100644
+--- a/nptl/pthread_mutex_init.c
++++ b/nptl/pthread_mutex_init.c
+@@ -37,9 +37,8 @@ static int tpi_supported;
+ 
+ 
+ int
+-__pthread_mutex_init (mutex, mutexattr)
+-     pthread_mutex_t *mutex;
+-     const pthread_mutexattr_t *mutexattr;
++__pthread_mutex_init (pthread_mutex_t *mutex,
++		      const pthread_mutexattr_t *mutexattr)
+ {
+   const struct pthread_mutexattr *imutexattr;
+ 
+diff --git a/nptl/pthread_mutex_lock.c b/nptl/pthread_mutex_lock.c
+index f8c9b217efbce91b..d17e6b5ea5947f6e 100644
+--- a/nptl/pthread_mutex_lock.c
++++ b/nptl/pthread_mutex_lock.c
+@@ -58,8 +58,7 @@ static int __pthread_mutex_lock_full (pthread_mutex_t *mutex)
+      __attribute_noinline__;
+ 
+ int
+-__pthread_mutex_lock (mutex)
+-     pthread_mutex_t *mutex;
++__pthread_mutex_lock (pthread_mutex_t *mutex)
+ {
+   assert (sizeof (mutex->__size) >= sizeof (mutex->__data));
+ 
+@@ -517,8 +516,8 @@ hidden_def (__pthread_mutex_lock)
+ 
+ #ifdef NO_INCR
+ void
+-__pthread_mutex_cond_lock_adjust (mutex)
+-     pthread_mutex_t *mutex;
++internal_function
++__pthread_mutex_cond_lock_adjust (pthread_mutex_t *mutex)
+ {
+   assert ((mutex->__data.__kind & PTHREAD_MUTEX_PRIO_INHERIT_NP) != 0);
+   assert ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0);
+diff --git a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c
+index 7959885a244c6d95..f035b29f621cebd6 100644
+--- a/nptl/pthread_mutex_timedlock.c
++++ b/nptl/pthread_mutex_timedlock.c
+@@ -38,9 +38,8 @@
+ #endif
+ 
+ int
+-pthread_mutex_timedlock (mutex, abstime)
+-     pthread_mutex_t *mutex;
+-     const struct timespec *abstime;
++pthread_mutex_timedlock (pthread_mutex_t *mutex,
++			 const struct timespec *abstime)
+ {
+   int oldval;
+   pid_t id = THREAD_GETMEM (THREAD_SELF, tid);
+diff --git a/nptl/pthread_mutex_trylock.c b/nptl/pthread_mutex_trylock.c
+index 7e96ec48f81dfc2c..40ba3e9fa9664756 100644
+--- a/nptl/pthread_mutex_trylock.c
++++ b/nptl/pthread_mutex_trylock.c
+@@ -34,8 +34,7 @@
+    lock state if the lock was actually busy.  */
+ 
+ int
+-__pthread_mutex_trylock (mutex)
+-     pthread_mutex_t *mutex;
++__pthread_mutex_trylock (pthread_mutex_t *mutex)
+ {
+   int oldval;
+   pid_t id = THREAD_GETMEM (THREAD_SELF, tid);
+diff --git a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c
+index 69e18f5057b5c6a5..27055ea7b2c8c493 100644
+--- a/nptl/pthread_mutex_unlock.c
++++ b/nptl/pthread_mutex_unlock.c
+@@ -34,9 +34,7 @@ __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr)
+ 
+ int
+ internal_function attribute_hidden
+-__pthread_mutex_unlock_usercnt (mutex, decr)
+-     pthread_mutex_t *mutex;
+-     int decr;
++__pthread_mutex_unlock_usercnt (pthread_mutex_t *mutex, int decr)
+ {
+   int type = PTHREAD_MUTEX_TYPE_ELISION (mutex);
+   if (__builtin_expect (type &
+@@ -304,8 +302,7 @@ __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr)
+ 
+ 
+ int
+-__pthread_mutex_unlock (mutex)
+-     pthread_mutex_t *mutex;
++__pthread_mutex_unlock (pthread_mutex_t *mutex)
+ {
+   return __pthread_mutex_unlock_usercnt (mutex, 1);
+ }
+diff --git a/nptl/sysdeps/pthread/timer_delete.c b/nptl/sysdeps/pthread/timer_delete.c
+index a529d73925e9ed0d..546d19bf3f4a418a 100644
+--- a/nptl/sysdeps/pthread/timer_delete.c
++++ b/nptl/sysdeps/pthread/timer_delete.c
+@@ -26,8 +26,7 @@
+ 
+ /* Delete timer TIMERID.  */
+ int
+-timer_delete (timerid)
+-     timer_t timerid;
++timer_delete (timer_t timerid)
+ {
+   struct timer_node *timer;
+   int retval = -1;
+diff --git a/nptl/sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c b/nptl/sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c
+index 7b6fbc18aa5f1153..2ac421fd63af3b75 100644
+--- a/nptl/sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c
++++ b/nptl/sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c
+@@ -14,7 +14,7 @@
+ #define LLL_ROBUST_MUTEX_LOCK(mutex, id) \
+   lll_robust_cond_lock ((mutex)->__data.__lock, id, \
+ 			PTHREAD_ROBUST_MUTEX_PSHARED (mutex))
+-#define __pthread_mutex_lock __pthread_mutex_cond_lock
++#define __pthread_mutex_lock internal_function __pthread_mutex_cond_lock
+ #define __pthread_mutex_lock_full __pthread_mutex_cond_lock_full
+ #define NO_INCR
+ 
+diff --git a/nptl_db/td_ta_clear_event.c b/nptl_db/td_ta_clear_event.c
+index 0c5f808496a0040b..74d22f964c80adb8 100644
+--- a/nptl_db/td_ta_clear_event.c
++++ b/nptl_db/td_ta_clear_event.c
+@@ -21,9 +21,7 @@
+ 
+ 
+ td_err_e
+-td_ta_clear_event (ta_arg, event)
+-     const td_thragent_t *ta_arg;
+-     td_thr_events_t *event;
++td_ta_clear_event (const td_thragent_t *ta_arg, td_thr_events_t *event)
+ {
+   td_thragent_t *const ta = (td_thragent_t *) ta_arg;
+   td_err_e err;
+diff --git a/nptl_db/td_ta_set_event.c b/nptl_db/td_ta_set_event.c
+index e51e4b5c8762bf96..940b3472549406db 100644
+--- a/nptl_db/td_ta_set_event.c
++++ b/nptl_db/td_ta_set_event.c
+@@ -21,9 +21,7 @@
+ 
+ 
+ td_err_e
+-td_ta_set_event (ta_arg, event)
+-     const td_thragent_t *ta_arg;
+-     td_thr_events_t *event;
++td_ta_set_event (const td_thragent_t *ta_arg, td_thr_events_t *event)
+ {
+   td_thragent_t *const ta = (td_thragent_t *) ta_arg;
+   td_err_e err;
+diff --git a/nptl_db/td_thr_clear_event.c b/nptl_db/td_thr_clear_event.c
+index 8ee9ac146aa8036b..4f2ccf3ae179dcc7 100644
+--- a/nptl_db/td_thr_clear_event.c
++++ b/nptl_db/td_thr_clear_event.c
+@@ -23,9 +23,7 @@
+ 
+ 
+ td_err_e
+-td_thr_clear_event (th, event)
+-     const td_thrhandle_t *th;
+-     td_thr_events_t *event;
++td_thr_clear_event (const td_thrhandle_t *th, td_thr_events_t *event)
+ {
+   td_err_e err;
+   psaddr_t eventmask;
+diff --git a/nptl_db/td_thr_event_enable.c b/nptl_db/td_thr_event_enable.c
+index fed7f70655092365..fd94580112ba3eb0 100644
+--- a/nptl_db/td_thr_event_enable.c
++++ b/nptl_db/td_thr_event_enable.c
+@@ -21,9 +21,7 @@
+ 
+ 
+ td_err_e
+-td_thr_event_enable (th, onoff)
+-     const td_thrhandle_t *th;
+-     int onoff;
++td_thr_event_enable (const td_thrhandle_t *th, int onoff)
+ {
+   LOG ("td_thr_event_enable");
+ 
+diff --git a/nptl_db/td_thr_set_event.c b/nptl_db/td_thr_set_event.c
+index edc4efb35b78cf50..20989c5bfcddde3b 100644
+--- a/nptl_db/td_thr_set_event.c
++++ b/nptl_db/td_thr_set_event.c
+@@ -23,9 +23,7 @@
+ 
+ 
+ td_err_e
+-td_thr_set_event (th, event)
+-     const td_thrhandle_t *th;
+-     td_thr_events_t *event;
++td_thr_set_event (const td_thrhandle_t *th, td_thr_events_t *event)
+ {
+   td_err_e err;
+   psaddr_t eventmask;
+diff --git a/nss/makedb.c b/nss/makedb.c
+index e372f5d77e5273bc..9c96724fd214981d 100644
+--- a/nss/makedb.c
++++ b/nss/makedb.c
+@@ -417,11 +417,7 @@ valstr_compare (const void *p1, const void *p2)
+ 
+ 
+ static int
+-process_input (input, inname, to_lowercase, be_quiet)
+-     FILE *input;
+-     const char *inname;
+-     int to_lowercase;
+-     int be_quiet;
++process_input (FILE *input, const char *inname, int to_lowercase, int be_quiet)
+ {
+   char *line;
+   size_t linelen;
+diff --git a/posix/fnmatch.c b/posix/fnmatch.c
+index eed12b7b515e390c..107ba1010059c07f 100644
+--- a/posix/fnmatch.c
++++ b/posix/fnmatch.c
+@@ -167,9 +167,7 @@ static int posixly_correct;
+ 
+ # if !defined HAVE___STRCHRNUL && !defined _LIBC
+ static char *
+-__strchrnul (s, c)
+-     const char *s;
+-     int c;
++__strchrnul (const char *s, int c)
+ {
+   char *result = strchr (s, c);
+   if (result == NULL)
+@@ -180,9 +178,7 @@ __strchrnul (s, c)
+ 
+ # if HANDLE_MULTIBYTE && !defined HAVE___STRCHRNUL && !defined _LIBC
+ static wchar_t *
+-__wcschrnul (s, c)
+-     const wchar_t *s;
+-     wint_t c;
++__wcschrnul (const wchar_t *s, wint_t c)
+ {
+   wchar_t *result = wcschr (s, c);
+   if (result == NULL)
+@@ -320,10 +316,7 @@ is_char_class (const wchar_t *wcs)
+ 
+ 
+ int
+-fnmatch (pattern, string, flags)
+-     const char *pattern;
+-     const char *string;
+-     int flags;
++fnmatch (const char *pattern, const char *string, int flags)
+ {
+ # if HANDLE_MULTIBYTE
+   if (__builtin_expect (MB_CUR_MAX, 1) != 1)
+diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
+index 2bd788f3942c6e7d..da1fe0c987f21942 100644
+--- a/posix/fnmatch_loop.c
++++ b/posix/fnmatch_loop.c
+@@ -37,14 +37,8 @@ static const CHAR *END (const CHAR *patternp) internal_function;
+ 
+ static int
+ internal_function
+-FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+-     const CHAR *pattern;
+-     const CHAR *string;
+-     const CHAR *string_end;
+-     int no_leading_period;
+-     int flags;
+-     struct STRUCT *ends;
+-     size_t alloca_used;
++FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
++     int no_leading_period, int flags, struct STRUCT *ends, size_t alloca_used)
+ {
+   const CHAR *p = pattern, *n = string;
+   UCHAR c;
+diff --git a/posix/glob.c b/posix/glob.c
+index 8c7a80085128475a..e3d6fe0f15f7d9ce 100644
+--- a/posix/glob.c
++++ b/posix/glob.c
+@@ -1263,8 +1263,7 @@ libc_hidden_def (glob)
+ 
+ /* Free storage allocated in PGLOB by a previous `glob' call.  */
+ void
+-globfree (pglob)
+-     glob_t *pglob;
++globfree (glob_t *pglob)
+ {
+   if (pglob->gl_pathv != NULL)
+     {
+@@ -1359,9 +1358,7 @@ prefix_array (const char *dirname, char **array, size_t n)
+ /* We must not compile this function twice.  */
+ #if !defined _LIBC || !defined NO_GLOB_PATTERN_P
+ int
+-__glob_pattern_type (pattern, quote)
+-     const char *pattern;
+-     int quote;
++__glob_pattern_type (const char *pattern, int quote)
+ {
+   const char *p;
+   int ret = 0;
+@@ -1398,9 +1395,7 @@ __glob_pattern_type (pattern, quote)
+ /* Return nonzero if PATTERN contains any metacharacters.
+    Metacharacters can be quoted with backslashes if QUOTE is nonzero.  */
+ int
+-__glob_pattern_p (pattern, quote)
+-     const char *pattern;
+-     int quote;
++__glob_pattern_p (const char *pattern, int quote)
+ {
+   return __glob_pattern_type (pattern, quote) == 1;
+ }
+diff --git a/posix/regcomp.c b/posix/regcomp.c
+index 99fee76b8a8cbb12..80359e58db504ed6 100644
+--- a/posix/regcomp.c
++++ b/posix/regcomp.c
+@@ -210,10 +210,8 @@ const size_t __re_error_msgid_idx[] attribute_hidden =
+    are set in BUFP on entry.  */
+ 
+ const char *
+-re_compile_pattern (pattern, length, bufp)
+-    const char *pattern;
+-    size_t length;
+-    struct re_pattern_buffer *bufp;
++re_compile_pattern (const char *pattern, size_t length,
++		    struct re_pattern_buffer *bufp)
+ {
+   reg_errcode_t ret;
+ 
+@@ -251,8 +249,7 @@ reg_syntax_t re_syntax_options;
+    defined in regex.h.  We return the old syntax.  */
+ 
+ reg_syntax_t
+-re_set_syntax (syntax)
+-    reg_syntax_t syntax;
++re_set_syntax (reg_syntax_t syntax)
+ {
+   reg_syntax_t ret = re_syntax_options;
+ 
+@@ -264,8 +261,7 @@ weak_alias (__re_set_syntax, re_set_syntax)
+ #endif
+ 
+ int
+-re_compile_fastmap (bufp)
+-    struct re_pattern_buffer *bufp;
++re_compile_fastmap (struct re_pattern_buffer *bufp)
+ {
+   re_dfa_t *dfa = (re_dfa_t *) bufp->buffer;
+   char *fastmap = bufp->fastmap;
+@@ -463,10 +459,7 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state,
+    the return codes and their meanings.)  */
+ 
+ int
+-regcomp (preg, pattern, cflags)
+-    regex_t *__restrict preg;
+-    const char *__restrict pattern;
+-    int cflags;
++regcomp (regex_t *__restrict preg, const char *__restrict pattern, int cflags)
+ {
+   reg_errcode_t ret;
+   reg_syntax_t syntax = ((cflags & REG_EXTENDED) ? RE_SYNTAX_POSIX_EXTENDED
+@@ -525,11 +518,8 @@ weak_alias (__regcomp, regcomp)
+    from either regcomp or regexec.   We don't use PREG here.  */
+ 
+ size_t
+-regerror (errcode, preg, errbuf, errbuf_size)
+-    int errcode;
+-    const regex_t *__restrict preg;
+-    char *__restrict errbuf;
+-    size_t errbuf_size;
++regerror (int errcode, const regex_t *__restrict preg, char *__restrict errbuf,
++	  size_t errbuf_size)
+ {
+   const char *msg;
+   size_t msg_size;
+@@ -633,8 +623,7 @@ free_dfa_content (re_dfa_t *dfa)
+ /* Free dynamically allocated space used by PREG.  */
+ 
+ void
+-regfree (preg)
+-    regex_t *preg;
++regfree (regex_t *preg)
+ {
+   re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+   if (BE (dfa != NULL, 1))
+diff --git a/posix/regexec.c b/posix/regexec.c
+index 5b31f5bbd7e5115a..f315149af88ac6bb 100644
+--- a/posix/regexec.c
++++ b/posix/regexec.c
+@@ -217,12 +217,8 @@ static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len)
+    We return 0 if we find a match and REG_NOMATCH if not.  */
+ 
+ int
+-regexec (preg, string, nmatch, pmatch, eflags)
+-    const regex_t *__restrict preg;
+-    const char *__restrict string;
+-    size_t nmatch;
+-    regmatch_t pmatch[];
+-    int eflags;
++regexec (const regex_t *__restrict preg, const char *__restrict string,
++	 size_t nmatch, regmatch_t pmatch[], int eflags)
+ {
+   reg_errcode_t err;
+   int start, length;
+@@ -303,11 +299,8 @@ compat_symbol (libc, __compat_regexec, regexec, GLIBC_2_0);
+    match was found and -2 indicates an internal error.  */
+ 
+ int
+-re_match (bufp, string, length, start, regs)
+-    struct re_pattern_buffer *bufp;
+-    const char *string;
+-    int length, start;
+-    struct re_registers *regs;
++re_match (struct re_pattern_buffer *bufp, const char *string, int length,
++	  int start, struct re_registers *regs)
+ {
+   return re_search_stub (bufp, string, length, start, 0, length, regs, 1);
+ }
+@@ -316,11 +309,8 @@ weak_alias (__re_match, re_match)
+ #endif
+ 
+ int
+-re_search (bufp, string, length, start, range, regs)
+-    struct re_pattern_buffer *bufp;
+-    const char *string;
+-    int length, start, range;
+-    struct re_registers *regs;
++re_search (struct re_pattern_buffer *bufp, const char *string, int length,
++	   int start, int range, struct re_registers *regs)
+ {
+   return re_search_stub (bufp, string, length, start, range, length, regs, 0);
+ }
+@@ -329,11 +319,9 @@ weak_alias (__re_search, re_search)
+ #endif
+ 
+ int
+-re_match_2 (bufp, string1, length1, string2, length2, start, regs, stop)
+-    struct re_pattern_buffer *bufp;
+-    const char *string1, *string2;
+-    int length1, length2, start, stop;
+-    struct re_registers *regs;
++re_match_2 (struct re_pattern_buffer *bufp, const char *string1, int length1,
++	    const char *string2, int length2, int start,
++	    struct re_registers *regs, int stop)
+ {
+   return re_search_2_stub (bufp, string1, length1, string2, length2,
+ 			   start, 0, regs, stop, 1);
+@@ -343,11 +331,9 @@ weak_alias (__re_match_2, re_match_2)
+ #endif
+ 
+ int
+-re_search_2 (bufp, string1, length1, string2, length2, start, range, regs, stop)
+-    struct re_pattern_buffer *bufp;
+-    const char *string1, *string2;
+-    int length1, length2, start, range, stop;
+-    struct re_registers *regs;
++re_search_2 (struct re_pattern_buffer *bufp, const char *string1, int length1,
++	     const char *string2, int length2, int start, int range,
++	     struct re_registers *regs, int stop)
+ {
+   return re_search_2_stub (bufp, string1, length1, string2, length2,
+ 			   start, range, regs, stop, 0);
+@@ -404,11 +390,10 @@ re_search_2_stub (bufp, string1, length1, string2, length2, start, range, regs,
+    otherwise the position of the match is returned.  */
+ 
+ static int
+-re_search_stub (bufp, string, length, start, range, stop, regs, ret_len)
+-    struct re_pattern_buffer *bufp;
+-    const char *string;
+-    int length, start, range, stop, ret_len;
+-    struct re_registers *regs;
++internal_function
++re_search_stub (struct re_pattern_buffer *bufp, const char *string, int length,
++		int start, int range, int stop, struct re_registers *regs,
++		int ret_len)
+ {
+   reg_errcode_t result;
+   regmatch_t *pmatch;
+@@ -493,10 +478,9 @@ re_search_stub (bufp, string, length, start, range, stop, regs, ret_len)
+ }
+ 
+ static unsigned
+-re_copy_regs (regs, pmatch, nregs, regs_allocated)
+-    struct re_registers *regs;
+-    regmatch_t *pmatch;
+-    int nregs, regs_allocated;
++internal_function
++re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, int nregs,
++	      int regs_allocated)
+ {
+   int rval = REGS_REALLOCATE;
+   int i;
+@@ -573,11 +557,8 @@ re_copy_regs (regs, pmatch, nregs, regs_allocated)
+    freeing the old data.  */
+ 
+ void
+-re_set_registers (bufp, regs, num_regs, starts, ends)
+-    struct re_pattern_buffer *bufp;
+-    struct re_registers *regs;
+-    unsigned num_regs;
+-    regoff_t *starts, *ends;
++re_set_registers (struct re_pattern_buffer *bufp, struct re_registers *regs,
++		  unsigned num_regs, regoff_t *starts, regoff_t *ends)
+ {
+   if (num_regs)
+     {
+@@ -951,9 +932,8 @@ re_search_internal (preg, string, length, start, range, stop, nmatch, pmatch,
+ }
+ 
+ static reg_errcode_t
+-__attribute_warn_unused_result__
+-prune_impossible_nodes (mctx)
+-     re_match_context_t *mctx;
++internal_function __attribute_warn_unused_result__
++prune_impossible_nodes (re_match_context_t *mctx)
+ {
+   const re_dfa_t *const dfa = mctx->dfa;
+   int halt_node, match_last;
+diff --git a/stdlib/strtod_l.c b/stdlib/strtod_l.c
+index 2047203a4cee1111..e5b30d443106ee91 100644
+--- a/stdlib/strtod_l.c
++++ b/stdlib/strtod_l.c
+@@ -472,11 +472,8 @@ __mpn_lshift_1 (mp_limb_t *ptr, mp_size_t size, unsigned int count,
+    return 0.0.  If the number is too big to be represented, set `errno' to
+    ERANGE and return HUGE_VAL with the appropriate sign.  */
+ FLOAT
+-____STRTOF_INTERNAL (nptr, endptr, group, loc)
+-     const STRING_TYPE *nptr;
+-     STRING_TYPE **endptr;
+-     int group;
+-     __locale_t loc;
++____STRTOF_INTERNAL (const STRING_TYPE *nptr, STRING_TYPE **endptr, int group,
++		     __locale_t loc)
+ {
+   int negative;			/* The sign of the number.  */
+   MPN_VAR (num);		/* MP representation of the number.  */
+diff --git a/sysdeps/pthread/aio_cancel.c b/sysdeps/pthread/aio_cancel.c
+index e405e66cdf40951d..e6170a4fd82895a9 100644
+--- a/sysdeps/pthread/aio_cancel.c
++++ b/sysdeps/pthread/aio_cancel.c
+@@ -38,9 +38,7 @@
+ 
+ 
+ int
+-aio_cancel (fildes, aiocbp)
+-     int fildes;
+-     struct aiocb *aiocbp;
++aio_cancel (int fildes, struct aiocb *aiocbp)
+ {
+   struct requestlist *req = NULL;
+   int result = AIO_ALLDONE;
+diff --git a/sysdeps/pthread/aio_suspend.c b/sysdeps/pthread/aio_suspend.c
+index 9d3c8f996a2839ad..27d6d24e6610d98b 100644
+--- a/sysdeps/pthread/aio_suspend.c
++++ b/sysdeps/pthread/aio_suspend.c
+@@ -105,10 +105,8 @@ do_aio_misc_wait(int *cntr, const struct timespec *timeout)
+ #endif
+ 
+ int
+-aio_suspend (list, nent, timeout)
+-     const struct aiocb *const list[];
+-     int nent;
+-     const struct timespec *timeout;
++aio_suspend (const struct aiocb *const list[], int nent,
++	     const struct timespec *timeout)
+ {
+   if (__builtin_expect (nent < 0, 0))
+     {
+diff --git a/sysdeps/unix/sysv/linux/dl-openat64.c b/sysdeps/unix/sysv/linux/dl-openat64.c
+index 69f02f65b1cca130..673eb1dde673370a 100644
+--- a/sysdeps/unix/sysv/linux/dl-openat64.c
++++ b/sysdeps/unix/sysv/linux/dl-openat64.c
+@@ -23,10 +23,7 @@
+ 
+ 
+ int
+-openat64 (dfd, file, oflag)
+-     int dfd;
+-     const char *file;
+-     int oflag;
++openat64 (int dfd, const char *file, int oflag, ...)
+ {
+   assert (!__OPEN_NEEDS_MODE (oflag));
+ 
+diff --git a/time/strptime_l.c b/time/strptime_l.c
+index 14d50a2e879a2c5c..cb2b8faa6d740748 100644
+--- a/time/strptime_l.c
++++ b/time/strptime_l.c
+@@ -41,9 +41,7 @@
+ #  define localtime_r my_localtime_r
+ static struct tm *localtime_r (const time_t *, struct tm *);
+ static struct tm *
+-localtime_r (t, tp)
+-     const time_t *t;
+-     struct tm *tp;
++localtime_r (const time_t *t, struct tm *tp)
+ {
+   struct tm *l = localtime (t);
+   if (! l)
+diff --git a/wcsmbs/mbsnrtowcs.c b/wcsmbs/mbsnrtowcs.c
+index fc8396c00dc074a4..36cfed0a010f2873 100644
+--- a/wcsmbs/mbsnrtowcs.c
++++ b/wcsmbs/mbsnrtowcs.c
+@@ -38,12 +38,8 @@ static mbstate_t state;
+    implementation of stdio because we have to deal with unterminated
+    buffers.  At most NMC bytes will be converted.  */
+ size_t
+-__mbsnrtowcs (dst, src, nmc, len, ps)
+-     wchar_t *dst;
+-     const char **src;
+-     size_t nmc;
+-     size_t len;
+-     mbstate_t *ps;
++__mbsnrtowcs (wchar_t *dst, const char **src, size_t nmc, size_t len,
++	      mbstate_t *ps)
+ {
+   const unsigned char *srcend;
+   struct __gconv_step_data data;
+diff --git a/wcsmbs/mbsrtowcs_l.c b/wcsmbs/mbsrtowcs_l.c
+index d489266d38bddfd5..ec8b7bebb0a2cc9a 100644
+--- a/wcsmbs/mbsrtowcs_l.c
++++ b/wcsmbs/mbsrtowcs_l.c
+@@ -37,12 +37,8 @@
+ 
+ size_t
+ attribute_hidden
+-__mbsrtowcs_l (dst, src, len, ps, l)
+-     wchar_t *dst;
+-     const char **src;
+-     size_t len;
+-     mbstate_t *ps;
+-     __locale_t l;
++__mbsrtowcs_l (wchar_t *dst, const char **src, size_t len, mbstate_t *ps,
++	       __locale_t l)
+ {
+   struct __gconv_step_data data;
+   size_t result;
+diff --git a/wcsmbs/wcsnrtombs.c b/wcsmbs/wcsnrtombs.c
+index e5e5db86b57fee44..7c0efad7a27c2920 100644
+--- a/wcsmbs/wcsnrtombs.c
++++ b/wcsmbs/wcsnrtombs.c
+@@ -37,12 +37,8 @@ static mbstate_t state;
+    implementation of stdio because we have to deal with unterminated
+    buffers.  At most NWC wide character will be converted.  */
+ size_t
+-__wcsnrtombs (dst, src, nwc, len, ps)
+-     char *dst;
+-     const wchar_t **src;
+-     size_t nwc;
+-     size_t len;
+-     mbstate_t *ps;
++__wcsnrtombs (char *dst, const wchar_t **src, size_t nwc, size_t len,
++	      mbstate_t *ps)
+ {
+   struct __gconv_step_data data;
+   const wchar_t *srcend;
+diff --git a/wcsmbs/wcsrtombs.c b/wcsmbs/wcsrtombs.c
+index dfb28d31254ec201..ab843f6dc47edc52 100644
+--- a/wcsmbs/wcsrtombs.c
++++ b/wcsmbs/wcsrtombs.c
+@@ -35,11 +35,7 @@
+ static mbstate_t state;
+ 
+ size_t
+-__wcsrtombs (dst, src, len, ps)
+-     char *dst;
+-     const wchar_t **src;
+-     size_t len;
+-     mbstate_t *ps;
++__wcsrtombs (char *dst, const wchar_t **src, size_t len, mbstate_t *ps)
+ {
+   struct __gconv_step_data data;
+   int status;
diff --git a/SOURCES/glibc-rh1505492-prototypes-17.patch b/SOURCES/glibc-rh1505492-prototypes-17.patch
new file mode 100644
index 0000000..0c04f3a
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-17.patch
@@ -0,0 +1,1358 @@
+commit 80d9be8122d1fe181d2476b5dad9f4ce37204958
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Tue Oct 20 21:27:22 2015 +0000
+
+    Convert miscellaneous function definitions to prototype style.
+    
+    This patch converts various miscellaneous functions definitions in
+    glibc, found with grep and not covered by my previous scripted
+    conversions, from old-style K&R to prototype-style.  These changes
+    were made manually.  This is not necessarily exhaustive as formatting
+    variants may have prevented my grep from finding some such
+    definitions.
+    
+    Regarding the changes to files from GMP, they may originally have been
+    omitted when removing __STDC__ conditionals because of the files
+    coming from another package, but (a) GMP no longer has __STDC__
+    conditionals there anyway and (b) we don't try to keep these files
+    verbatim in sync with GMP (and there are licensing differences), so
+    making the change to them in glibc seems reasonable.
+    
+    Tested for x86_64 and x86 (testsuite - this patch affects files
+    containing assertions).
+    
+            * debug/fortify_fail.c (__fortify_fail): Convert to
+            prototype-style function definition.  Use internal_function.
+            * libio/genops.c (save_for_backup): Convert to prototype-style
+            function definition.
+            * libio/wgenops.c (save_for_wbackup): Likewise.
+            * login/grantpt.c (grantpt): Likewise.
+            * login/ptsname.c (ptsname): Likewise.
+            (__ptsname_r): Likewise.
+            * login/unlockpt.c (unlockpt): Likewise.
+            * mach/msgserver.c (__mach_msg_server): Likewise.
+            * misc/efgcvt.c (__APPEND (FUNC_PREFIX, fcvt)): Likewise.
+            (__APPEND (FUNC_PREFIX, ecvt)): Likewise.
+            (__APPEND (FUNC_PREFIX, gcvt)): Likewise.
+            * misc/efgcvt_r.c (__APPEND (FUNC_PREFIX, fcvt_r)): Likewise.
+            (__APPEND (FUNC_PREFIX, ecvt_r)): Likewise.
+            * nptl/cleanup_compat.c (_pthread_cleanup_push): Likewise.
+            * nptl/cleanup_defer_compat.c (_pthread_cleanup_push_defer):
+            Likewise.
+            * nptl/libc_pthread_init.c (__libc_pthread_init): Likewise.  Use
+            internal_function.
+            * nptl/pthread_atfork.c (__pthread_atfork): Convert to
+            prototype-style function definition.
+            * nptl/pthread_create.c (__pthread_create_2_1): Likewise.
+            [SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)]
+            (__pthread_create_2_0): Likewise.
+            * nptl/pthread_key_create.c (__pthread_key_create): Likewise.
+            * nptl/register-atfork.c (__register_atfork): Likewise.
+            * posix/glob.c (glob): Likewise.
+            * posix/regcomp.c (re_comp): Likewise.
+            * posix/regexec.c (re_exec): Likewise.
+            * stdlib/add_n.c [__STDC__]: Make code unconditional.
+            [!__STDC__]: Remove conditional code.
+            * stdlib/cmp.c [__STDC__]: Make code unconditional.
+            [!__STDC__]: Remove conditional code.
+            * stdlib/divmod_1.c [__STDC__]: Make code unconditional.
+            [!__STDC__]: Remove conditional code.
+            * stdlib/divrem.c [__STDC__]: Make code unconditional.
+            [!__STDC__]: Remove conditional code.
+            * stdlib/lshift.c [__STDC__]: Make code unconditional.
+            [!__STDC__]: Remove conditional code.
+            * stdlib/mod_1.c [__STDC__]: Make code unconditional.
+            [!__STDC__]: Remove conditional code.
+            * stdlib/mul.c [__STDC__]: Make code unconditional.
+            [!__STDC__]: Remove conditional code.
+            * stdlib/mul_n.c [__STDC__]: Make code unconditional.
+            [!__STDC__]: Remove conditional code.
+            * stdlib/rshift.c [__STDC__]: Make code unconditional.
+            [!__STDC__]: Remove conditional code.
+            * stdlib/strtod.c (INTERNAL (STRTOF)): Convert to prototype-style
+            function definition.
+            (STRTOF): Likewise.
+            * stdlib/strtod_l.c (__STRTOF): Likewise.
+            * stdlib/strtol.c (INTERNAL (strtol)): Likewise.
+            * stdlib/strtol_l.c (INTERNAL (__strtol_l)): Likewise.
+            (__strtol_l): Likewise.
+            * stdlib/sub_n.c [__STDC__]: Make code unconditional.
+            [!__STDC__]: Remove conditional code.
+            * string/memrchr.c (MEMRCHR): Convert to prototype-style function
+            definition.
+            * string/strcasecmp.c (LOCALE_PARAM_DECL): Remove macro.
+            [USE_IN_EXTENDED_LOCALE_MODEL] (LOCALE_PARAM): Include argument
+            type.
+            (__strcasecmp): Convert to prototype-style function definition.
+            * string/strncase.c (LOCALE_PARAM_DECL): Remove macro.
+            [USE_IN_EXTENDED_LOCALE_MODEL] (LOCALE_PARAM): Include argument
+            type.
+            (__strncasecmp): Convert to prototype-style function definition.
+            * sunrpc/pm_getport.c (__libc_rpc_getport): Likewise.
+            * sunrpc/xdr.c (xdr_union): Likewise.
+            * sunrpc/xdr_array.c (xdr_array): Likewise.
+            * sunrpc/xdr_ref.c (xdr_reference): Likewise.
+            * sysdeps/m68k/m680x0/fpu/s_atan.c (__CONCATX(__,FUNC)): Likewise.
+            * sysdeps/m68k/m680x0/fpu/s_isinf.c (__CONCATX(__,FUNC)):
+            Likewise.
+            * sysdeps/m68k/m680x0/fpu/s_scalbn.c (__CONCATX(__scalbn,suffix):
+            Likewise.
+            * sysdeps/m68k/m680x0/fpu/s_sincos.c (CONCATX(__,FUNC)): Likewise.
+            * sysdeps/unix/sysv/linux/i386/scandir64.c (__old_scandir64):
+            Likewise.
+            * time/strftime_l.c (LOCALE_PARAM_DECL): Remove macro.
+            (LOCALE_PARAM_PROTO): Likewise.
+            [_LIBC && USE_IN_EXTENDED_LOCALE_MODEL] (LOCALE_PARAM): Include
+            argument type.
+            (ut_argument_spec): Remove macro.
+            (ut_argument_spec_iso): Rename to ut_argument_spec.
+            (memcpy_lowcase): Use LOCALE_PARAM in declaration.  Convert to
+            prototype-style function definition.
+            (memcpy_uppcase): Likewise.
+            (__strftime_internal): Likewise.
+            (my_strftime): Likewise.
+            * time/strptime_l.c (LOCALE_PARAM_PROTO): Remove macro.
+            (LOCALE_PARAM_DECL): Likewise.
+            [_LIBC] (LOCALE_PARAM): Include argument type.
+            (__strptime_internal): Convert to prototype-style function
+            definition.
+            (strptime): Likewise.
+            * wcsmbs/wcscasecmp.c (LOCALE_PARAM_DECL): Remove macro.
+            [USE_IN_EXTENDED_LOCALE_MODEL] (LOCALE_PARAM): Include argument
+            type.
+            (__wcscasecmp): Convert to prototype-style function definition.
+            * wcsmbs/wcsncase.c (LOCALE_PARAM_DECL): Remove macro.
+            [USE_IN_EXTENDED_LOCALE_MODEL] (LOCALE_PARAM): Include argument
+            type.
+            (__wcsncasecmp): Convert to prototype-style function definition.
+
+Conflicts:
+	nptl/libc_pthread_init.c
+	  (Applied to nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c.)
+	nptl/register-atfork.c
+	  (Applied to nptl/sysdeps/unix/sysv/linux/register-atfork.c.)
+
+diff --git a/debug/fortify_fail.c b/debug/fortify_fail.c
+index c5621ea6b5806603..d76ab3718e7814e4 100644
+--- a/debug/fortify_fail.c
++++ b/debug/fortify_fail.c
+@@ -22,9 +22,8 @@
+ extern char **__libc_argv attribute_hidden;
+ 
+ void
+-__attribute__ ((noreturn))
+-__fortify_fail (msg)
+-     const char *msg;
++__attribute__ ((noreturn)) internal_function
++__fortify_fail (const char *msg)
+ {
+   /* The loop is added only to keep gcc happy.  */
+   while (1)
+diff --git a/libio/genops.c b/libio/genops.c
+index 09a9c2eacf1fcaea..1362fd15a88130d8 100644
+--- a/libio/genops.c
++++ b/libio/genops.c
+@@ -244,9 +244,7 @@ static int
+ #ifdef _LIBC
+ internal_function
+ #endif
+-save_for_backup (fp, end_p)
+-     _IO_FILE *fp;
+-     char *end_p;
++save_for_backup (_IO_FILE *fp, char *end_p)
+ {
+   /* Append [_IO_read_base..end_p] to backup area. */
+   _IO_ssize_t least_mark = _IO_least_marker (fp, end_p);
+diff --git a/libio/wgenops.c b/libio/wgenops.c
+index 3f34bbc92d8746be..7ec7ae0c0c2c8976 100644
+--- a/libio/wgenops.c
++++ b/libio/wgenops.c
+@@ -468,9 +468,7 @@ static int
+ #ifdef _LIBC
+ internal_function
+ #endif
+-save_for_wbackup (fp, end_p)
+-     _IO_FILE *fp;
+-     wchar_t *end_p;
++save_for_wbackup (_IO_FILE *fp, wchar_t *end_p)
+ {
+   /* Append [_IO_read_base..end_p] to backup area. */
+   _IO_ssize_t least_mark = _IO_least_wmarker (fp, end_p);
+diff --git a/login/grantpt.c b/login/grantpt.c
+index fd7ee6c0bcf2f6b9..62d48b3c489b004f 100644
+--- a/login/grantpt.c
++++ b/login/grantpt.c
+@@ -23,8 +23,7 @@
+    with the slave to the calling process, and set its group and
+    mode appropriately.  Note that this is an unprivileged operation. */
+ int
+-grantpt (fd)
+-     int fd __attribute__ ((unused));
++grantpt (int fd __attribute__ ((unused)))
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/login/ptsname.c b/login/ptsname.c
+index d22ec4136257e1e1..5fe85a938558a0eb 100644
+--- a/login/ptsname.c
++++ b/login/ptsname.c
+@@ -24,18 +24,16 @@
+    of the associated slave. */
+ 
+ char *
+-ptsname (fd)
+-     int fd __attribute__ ((unused));
++ptsname (int fd __attribute__ ((unused)))
+ {
+   __set_errno (ENOSYS);
+   return NULL;
+ }
+ 
+ int
+-__ptsname_r (fd, buf, len)
+-     int fd __attribute__ ((unused));
+-     char *buf __attribute__ ((unused));
+-     size_t len __attribute__ ((unused));
++__ptsname_r (int fd __attribute__ ((unused)),
++	     char *buf __attribute__ ((unused)),
++	     size_t len __attribute__ ((unused)))
+ {
+   __set_errno (ENOSYS);
+   return ENOSYS;
+diff --git a/login/unlockpt.c b/login/unlockpt.c
+index f00d88f9c1a5d8c4..14057d0fcdd4809c 100644
+--- a/login/unlockpt.c
++++ b/login/unlockpt.c
+@@ -23,8 +23,7 @@
+    the slave can be opened.  This is to avoid a race between opening the
+    master and calling grantpt() to take possession of the slave. */
+ int
+-unlockpt (fd)
+-     int fd __attribute__ ((unused));
++unlockpt (int fd __attribute__ ((unused)))
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/mach/msgserver.c b/mach/msgserver.c
+index b087e7263511b554..d1d90cdee476b2fc 100644
+--- a/mach/msgserver.c
++++ b/mach/msgserver.c
+@@ -187,10 +187,10 @@ __mach_msg_server_timeout (boolean_t (*demux) (mach_msg_header_t *request,
+ weak_alias (__mach_msg_server_timeout, mach_msg_server_timeout)
+ 
+ mach_msg_return_t
+-__mach_msg_server (demux, max_size, rcv_name)
+-     boolean_t (*demux) (mach_msg_header_t *in, mach_msg_header_t *out);
+-     mach_msg_size_t max_size;
+-     mach_port_t rcv_name;
++__mach_msg_server (boolean_t (*demux) (mach_msg_header_t *in,
++				       mach_msg_header_t *out),
++		   mach_msg_size_t max_size,
++		   mach_port_t rcv_name)
+ {
+   return __mach_msg_server_timeout (demux, max_size, rcv_name,
+ 				    MACH_MSG_OPTION_NONE,
+diff --git a/misc/efgcvt.c b/misc/efgcvt.c
+index d7d15a1846ce1be4..e1304592dc8f36a9 100644
+--- a/misc/efgcvt.c
++++ b/misc/efgcvt.c
+@@ -65,9 +65,8 @@ static char ECVT_BUFFER[MAXDIG];
+ libc_freeres_ptr (static char *FCVT_BUFPTR);
+ 
+ char *
+-__APPEND (FUNC_PREFIX, fcvt) (value, ndigit, decpt, sign)
+-     FLOAT_TYPE value;
+-     int ndigit, *decpt, *sign;
++__APPEND (FUNC_PREFIX, fcvt) (FLOAT_TYPE value, int ndigit, int *decpt,
++			      int *sign)
+ {
+   if (FCVT_BUFPTR == NULL)
+     {
+@@ -88,9 +87,8 @@ __APPEND (FUNC_PREFIX, fcvt) (value, ndigit, decpt, sign)
+ 
+ 
+ char *
+-__APPEND (FUNC_PREFIX, ecvt) (value, ndigit, decpt, sign)
+-     FLOAT_TYPE value;
+-     int ndigit, *decpt, *sign;
++__APPEND (FUNC_PREFIX, ecvt) (FLOAT_TYPE value, int ndigit, int *decpt,
++			      int *sign)
+ {
+   (void) __APPEND (FUNC_PREFIX, ecvt_r) (value, ndigit, decpt, sign,
+ 					 ECVT_BUFFER, MAXDIG);
+@@ -99,10 +97,7 @@ __APPEND (FUNC_PREFIX, ecvt) (value, ndigit, decpt, sign)
+ }
+ 
+ char *
+-__APPEND (FUNC_PREFIX, gcvt) (value, ndigit, buf)
+-     FLOAT_TYPE value;
+-     int ndigit;
+-     char *buf;
++__APPEND (FUNC_PREFIX, gcvt) (FLOAT_TYPE value, int ndigit, char *buf)
+ {
+   sprintf (buf, "%.*" FLOAT_FMT_FLAG "g", MIN (ndigit, NDIGIT_MAX), value);
+   return buf;
+diff --git a/misc/efgcvt_r.c b/misc/efgcvt_r.c
+index e9f32d673132279d..4cd040fadc008399 100644
+--- a/misc/efgcvt_r.c
++++ b/misc/efgcvt_r.c
+@@ -72,11 +72,8 @@
+ 
+ 
+ int
+-__APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign, buf, len)
+-     FLOAT_TYPE value;
+-     int ndigit, *decpt, *sign;
+-     char *buf;
+-     size_t len;
++__APPEND (FUNC_PREFIX, fcvt_r) (FLOAT_TYPE value, int ndigit, int *decpt,
++				int *sign, char *buf, size_t len)
+ {
+   ssize_t n;
+   ssize_t i;
+@@ -170,11 +167,8 @@ __APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign, buf, len)
+ }
+ 
+ int
+-__APPEND (FUNC_PREFIX, ecvt_r) (value, ndigit, decpt, sign, buf, len)
+-     FLOAT_TYPE value;
+-     int ndigit, *decpt, *sign;
+-     char *buf;
+-     size_t len;
++__APPEND (FUNC_PREFIX, ecvt_r) (FLOAT_TYPE value, int ndigit, int *decpt,
++				int *sign, char *buf, size_t len)
+ {
+   int exponent = 0;
+ 
+diff --git a/nptl/cleanup_compat.c b/nptl/cleanup_compat.c
+index 67ff5965dd45de61..ba36268f8af78085 100644
+--- a/nptl/cleanup_compat.c
++++ b/nptl/cleanup_compat.c
+@@ -21,10 +21,8 @@
+ 
+ 
+ void
+-_pthread_cleanup_push (buffer, routine, arg)
+-     struct _pthread_cleanup_buffer *buffer;
+-     void (*routine) (void *);
+-     void *arg;
++_pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
++		       void (*routine) (void *), void *arg)
+ {
+   struct pthread *self = THREAD_SELF;
+ 
+diff --git a/nptl/cleanup_defer_compat.c b/nptl/cleanup_defer_compat.c
+index e15723611c71d55a..96db28a26be0f7d4 100644
+--- a/nptl/cleanup_defer_compat.c
++++ b/nptl/cleanup_defer_compat.c
+@@ -20,10 +20,8 @@
+ 
+ 
+ void
+-_pthread_cleanup_push_defer (buffer, routine, arg)
+-     struct _pthread_cleanup_buffer *buffer;
+-     void (*routine) (void *);
+-     void *arg;
++_pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer,
++			     void (*routine) (void *), void *arg)
+ {
+   struct pthread *self = THREAD_SELF;
+ 
+diff --git a/nptl/pthread_atfork.c b/nptl/pthread_atfork.c
+index 7da2fd65d227931a..749f417c308c16cc 100644
+--- a/nptl/pthread_atfork.c
++++ b/nptl/pthread_atfork.c
+@@ -48,10 +48,8 @@ int
+ /* Don't mark the compatibility function as hidden.  */
+ attribute_hidden
+ #endif
+-__pthread_atfork (prepare, parent, child)
+-     void (*prepare) (void);
+-     void (*parent) (void);
+-     void (*child) (void);
++__pthread_atfork (void (*prepare) (void), void (*parent) (void),
++		  void (*child) (void))
+ {
+   return __register_atfork (prepare, parent, child,
+ 			    &__dso_handle == NULL ? NULL : __dso_handle);
+diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
+index 987469ba58e7bffa..7cd0003e57f5e759 100644
+--- a/nptl/pthread_create.c
++++ b/nptl/pthread_create.c
+@@ -432,11 +432,8 @@ start_thread (void *arg)
+ 
+ 
+ int
+-__pthread_create_2_1 (newthread, attr, start_routine, arg)
+-     pthread_t *newthread;
+-     const pthread_attr_t *attr;
+-     void *(*start_routine) (void *);
+-     void *arg;
++__pthread_create_2_1 (pthread_t *newthread, const pthread_attr_t *attr,
++		      void *(*start_routine) (void *), void *arg)
+ {
+   STACK_VARIABLES;
+ 
+@@ -560,11 +557,8 @@ versioned_symbol (libpthread, __pthread_create_2_1, pthread_create, GLIBC_2_1);
+ 
+ #if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
+ int
+-__pthread_create_2_0 (newthread, attr, start_routine, arg)
+-     pthread_t *newthread;
+-     const pthread_attr_t *attr;
+-     void *(*start_routine) (void *);
+-     void *arg;
++__pthread_create_2_0 (pthread_t *newthread, const pthread_attr_t *attr,
++		      void *(*start_routine) (void *), void *arg)
+ {
+   /* The ATTR attribute is not really of type `pthread_attr_t *'.  It has
+      the old size and access to the new members might crash the program.
+diff --git a/nptl/pthread_key_create.c b/nptl/pthread_key_create.c
+index 96e21ce6d6674b34..2654e6cc8f73fa24 100644
+--- a/nptl/pthread_key_create.c
++++ b/nptl/pthread_key_create.c
+@@ -22,9 +22,7 @@
+ 
+ 
+ int
+-__pthread_key_create (key, destr)
+-     pthread_key_t *key;
+-     void (*destr) (void *);
++__pthread_key_create (pthread_key_t *key, void (*destr) (void *))
+ {
+   /* Find a slot in __pthread_kyes which is unused.  */
+   for (size_t cnt = 0; cnt < PTHREAD_KEYS_MAX; ++cnt)
+diff --git a/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c b/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c
+index adf0819f59c9d1f1..49bd2b47fe2d41cc 100644
+--- a/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c
++++ b/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c
+@@ -35,10 +35,9 @@ extern int __libc_multiple_threads attribute_hidden;
+ 
+ int *
+ #endif
+-__libc_pthread_init (ptr, reclaim, functions)
+-     unsigned long int *ptr;
+-     void (*reclaim) (void);
+-     const struct pthread_functions *functions;
++internal_function
++__libc_pthread_init (unsigned long int *ptr, void (*reclaim) (void),
++		     const struct pthread_functions *functions)
+ {
+   /* Remember the pointer to the generation counter in libpthread.  */
+   __fork_generation_pointer = ptr;
+diff --git a/nptl/sysdeps/unix/sysv/linux/register-atfork.c b/nptl/sysdeps/unix/sysv/linux/register-atfork.c
+index 8b5557d89288d9b3..54b950f71c984ee2 100644
+--- a/nptl/sysdeps/unix/sysv/linux/register-atfork.c
++++ b/nptl/sysdeps/unix/sysv/linux/register-atfork.c
+@@ -78,11 +78,8 @@ fork_handler_alloc (void)
+ 
+ 
+ int
+-__register_atfork (prepare, parent, child, dso_handle)
+-     void (*prepare) (void);
+-     void (*parent) (void);
+-     void (*child) (void);
+-     void *dso_handle;
++__register_atfork (void (*prepare) (void), void (*parent) (void),
++		   void (*child) (void), void *dso_handle)
+ {
+   /* Get the lock to not conflict with other allocations.  */
+   lll_lock (__fork_lock, LLL_PRIVATE);
+diff --git a/posix/glob.c b/posix/glob.c
+index e3d6fe0f15f7d9ce..01a1f2cba3d1d3da 100644
+--- a/posix/glob.c
++++ b/posix/glob.c
+@@ -251,11 +251,8 @@ int
+ #ifdef GLOB_ATTRIBUTE
+ GLOB_ATTRIBUTE
+ #endif
+-glob (pattern, flags, errfunc, pglob)
+-     const char *pattern;
+-     int flags;
+-     int (*errfunc) (const char *, int);
+-     glob_t *pglob;
++glob (const char *pattern, int flags, int (*errfunc) (const char *, int),
++      glob_t *pglob)
+ {
+   const char *filename;
+   char *dirname = NULL;
+diff --git a/posix/regcomp.c b/posix/regcomp.c
+index 80359e58db504ed6..049522f6efbee0c2 100644
+--- a/posix/regcomp.c
++++ b/posix/regcomp.c
+@@ -656,8 +656,7 @@ char *
+    regcomp/regexec above without link errors.  */
+ weak_function
+ # endif
+-re_comp (s)
+-     const char *s;
++re_comp (const char *s)
+ {
+   reg_errcode_t ret;
+   char *fastmap;
+diff --git a/posix/regexec.c b/posix/regexec.c
+index f315149af88ac6bb..6ca865dc9a7d44d5 100644
+--- a/posix/regexec.c
++++ b/posix/regexec.c
+@@ -586,8 +586,7 @@ int
+ # ifdef _LIBC
+ weak_function
+ # endif
+-re_exec (s)
+-     const char *s;
++re_exec (const char *s)
+ {
+   return 0 == regexec (&re_comp_buf, s, 0, NULL, 0);
+ }
+diff --git a/stdlib/add_n.c b/stdlib/add_n.c
+index afb8e09306d7ecc7..fc5a6dbf71c70c7d 100644
+--- a/stdlib/add_n.c
++++ b/stdlib/add_n.c
+@@ -22,15 +22,7 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
+ #include "gmp-impl.h"
+ 
+ mp_limb_t
+-#if __STDC__
+ mpn_add_n (mp_ptr res_ptr, mp_srcptr s1_ptr, mp_srcptr s2_ptr, mp_size_t size)
+-#else
+-mpn_add_n (res_ptr, s1_ptr, s2_ptr, size)
+-     register mp_ptr res_ptr;
+-     register mp_srcptr s1_ptr;
+-     register mp_srcptr s2_ptr;
+-     mp_size_t size;
+-#endif
+ {
+   register mp_limb_t x, y, cy;
+   register mp_size_t j;
+diff --git a/stdlib/cmp.c b/stdlib/cmp.c
+index 003b9aa236cf9d6d..90a41bbf990e14ae 100644
+--- a/stdlib/cmp.c
++++ b/stdlib/cmp.c
+@@ -27,14 +27,7 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
+    Return 1 if OP1 > OP2, 0 if they are equal, and -1 if OP1 < OP2.  */
+ 
+ int
+-#if __STDC__
+ mpn_cmp (mp_srcptr op1_ptr, mp_srcptr op2_ptr, mp_size_t size)
+-#else
+-mpn_cmp (op1_ptr, op2_ptr, size)
+-     mp_srcptr op1_ptr;
+-     mp_srcptr op2_ptr;
+-     mp_size_t size;
+-#endif
+ {
+   mp_size_t i;
+   mp_limb_t op1_word, op2_word;
+diff --git a/stdlib/divmod_1.c b/stdlib/divmod_1.c
+index 4e6966bc913927a3..275dceff87094b8a 100644
+--- a/stdlib/divmod_1.c
++++ b/stdlib/divmod_1.c
+@@ -40,17 +40,9 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
+    here (not udiv_qrnnd).  */
+ 
+ mp_limb_t
+-#if __STDC__
+ mpn_divmod_1 (mp_ptr quot_ptr,
+ 	      mp_srcptr dividend_ptr, mp_size_t dividend_size,
+ 	      mp_limb_t divisor_limb)
+-#else
+-mpn_divmod_1 (quot_ptr, dividend_ptr, dividend_size, divisor_limb)
+-     mp_ptr quot_ptr;
+-     mp_srcptr dividend_ptr;
+-     mp_size_t dividend_size;
+-     mp_limb_t divisor_limb;
+-#endif
+ {
+   mp_size_t i;
+   mp_limb_t n1, n0, r;
+diff --git a/stdlib/divrem.c b/stdlib/divrem.c
+index c0abb4d9fbcfc0cf..0c5b2da7df0f6880 100644
+--- a/stdlib/divrem.c
++++ b/stdlib/divrem.c
+@@ -40,19 +40,9 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
+    3. NSIZE >= DSIZE, even if QEXTRA_LIMBS is non-zero.  */
+ 
+ mp_limb_t
+-#if __STDC__
+ mpn_divrem (mp_ptr qp, mp_size_t qextra_limbs,
+ 	    mp_ptr np, mp_size_t nsize,
+ 	    mp_srcptr dp, mp_size_t dsize)
+-#else
+-mpn_divrem (qp, qextra_limbs, np, nsize, dp, dsize)
+-     mp_ptr qp;
+-     mp_size_t qextra_limbs;
+-     mp_ptr np;
+-     mp_size_t nsize;
+-     mp_srcptr dp;
+-     mp_size_t dsize;
+-#endif
+ {
+   mp_limb_t most_significant_q_limb = 0;
+ 
+diff --git a/stdlib/lshift.c b/stdlib/lshift.c
+index deb264177a5710f8..d2608e06e9113c4a 100644
+--- a/stdlib/lshift.c
++++ b/stdlib/lshift.c
+@@ -31,17 +31,9 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
+ */
+ 
+ mp_limb_t
+-#if __STDC__
+ mpn_lshift (register mp_ptr wp,
+ 	    register mp_srcptr up, mp_size_t usize,
+ 	    register unsigned int cnt)
+-#else
+-mpn_lshift (wp, up, usize, cnt)
+-     register mp_ptr wp;
+-     register mp_srcptr up;
+-     mp_size_t usize;
+-     register unsigned int cnt;
+-#endif
+ {
+   register mp_limb_t high_limb, low_limb;
+   register unsigned sh_1, sh_2;
+diff --git a/stdlib/mod_1.c b/stdlib/mod_1.c
+index d325a931adef007c..72d8ff8110e2c9e2 100644
+--- a/stdlib/mod_1.c
++++ b/stdlib/mod_1.c
+@@ -37,15 +37,8 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
+    here (not udiv_qrnnd).  */
+ 
+ mp_limb_t
+-#if __STDC__
+ mpn_mod_1 (mp_srcptr dividend_ptr, mp_size_t dividend_size,
+ 	   mp_limb_t divisor_limb)
+-#else
+-mpn_mod_1 (dividend_ptr, dividend_size, divisor_limb)
+-     mp_srcptr dividend_ptr;
+-     mp_size_t dividend_size;
+-     mp_limb_t divisor_limb;
+-#endif
+ {
+   mp_size_t i;
+   mp_limb_t n1, n0, r;
+diff --git a/stdlib/mul.c b/stdlib/mul.c
+index cab3e2b134080f08..1cb9d73ef96a4559 100644
+--- a/stdlib/mul.c
++++ b/stdlib/mul.c
+@@ -42,18 +42,9 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
+ #endif
+ 
+ mp_limb_t
+-#if __STDC__
+ mpn_mul (mp_ptr prodp,
+ 	 mp_srcptr up, mp_size_t usize,
+ 	 mp_srcptr vp, mp_size_t vsize)
+-#else
+-mpn_mul (prodp, up, usize, vp, vsize)
+-     mp_ptr prodp;
+-     mp_srcptr up;
+-     mp_size_t usize;
+-     mp_srcptr vp;
+-     mp_size_t vsize;
+-#endif
+ {
+   mp_ptr prod_endp = prodp + usize + vsize - 1;
+   mp_limb_t cy;
+diff --git a/stdlib/mul_n.c b/stdlib/mul_n.c
+index 36876c2473e46295..ac2ab42dc887389e 100644
+--- a/stdlib/mul_n.c
++++ b/stdlib/mul_n.c
+@@ -49,15 +49,7 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
+    algorithm below.  */
+ 
+ void
+-#if __STDC__
+ impn_mul_n_basecase (mp_ptr prodp, mp_srcptr up, mp_srcptr vp, mp_size_t size)
+-#else
+-impn_mul_n_basecase (prodp, up, vp, size)
+-     mp_ptr prodp;
+-     mp_srcptr up;
+-     mp_srcptr vp;
+-     mp_size_t size;
+-#endif
+ {
+   mp_size_t i;
+   mp_limb_t cy_limb;
+@@ -100,17 +92,8 @@ impn_mul_n_basecase (prodp, up, vp, size)
+ }
+ 
+ void
+-#if __STDC__
+ impn_mul_n (mp_ptr prodp,
+ 	     mp_srcptr up, mp_srcptr vp, mp_size_t size, mp_ptr tspace)
+-#else
+-impn_mul_n (prodp, up, vp, size, tspace)
+-     mp_ptr prodp;
+-     mp_srcptr up;
+-     mp_srcptr vp;
+-     mp_size_t size;
+-     mp_ptr tspace;
+-#endif
+ {
+   if ((size & 1) != 0)
+     {
+@@ -219,14 +202,7 @@ impn_mul_n (prodp, up, vp, size, tspace)
+ }
+ 
+ void
+-#if __STDC__
+ impn_sqr_n_basecase (mp_ptr prodp, mp_srcptr up, mp_size_t size)
+-#else
+-impn_sqr_n_basecase (prodp, up, size)
+-     mp_ptr prodp;
+-     mp_srcptr up;
+-     mp_size_t size;
+-#endif
+ {
+   mp_size_t i;
+   mp_limb_t cy_limb;
+@@ -269,16 +245,8 @@ impn_sqr_n_basecase (prodp, up, size)
+ }
+ 
+ void
+-#if __STDC__
+ impn_sqr_n (mp_ptr prodp,
+ 	     mp_srcptr up, mp_size_t size, mp_ptr tspace)
+-#else
+-impn_sqr_n (prodp, up, size, tspace)
+-     mp_ptr prodp;
+-     mp_srcptr up;
+-     mp_size_t size;
+-     mp_ptr tspace;
+-#endif
+ {
+   if ((size & 1) != 0)
+     {
+@@ -358,15 +326,7 @@ impn_sqr_n (prodp, up, size, tspace)
+ 
+ /* This should be made into an inline function in gmp.h.  */
+ void
+-#if __STDC__
+ mpn_mul_n (mp_ptr prodp, mp_srcptr up, mp_srcptr vp, mp_size_t size)
+-#else
+-mpn_mul_n (prodp, up, vp, size)
+-     mp_ptr prodp;
+-     mp_srcptr up;
+-     mp_srcptr vp;
+-     mp_size_t size;
+-#endif
+ {
+   TMP_DECL (marker);
+   TMP_MARK (marker);
+diff --git a/stdlib/rshift.c b/stdlib/rshift.c
+index 13a12be35c673971..96562d474fca72a7 100644
+--- a/stdlib/rshift.c
++++ b/stdlib/rshift.c
+@@ -31,17 +31,9 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
+ */
+ 
+ mp_limb_t
+-#if __STDC__
+ mpn_rshift (register mp_ptr wp,
+ 	    register mp_srcptr up, mp_size_t usize,
+ 	    register unsigned int cnt)
+-#else
+-mpn_rshift (wp, up, usize, cnt)
+-     register mp_ptr wp;
+-     register mp_srcptr up;
+-     mp_size_t usize;
+-     register unsigned int cnt;
+-#endif
+ {
+   register mp_limb_t high_limb, low_limb;
+   register unsigned sh_1, sh_2;
+diff --git a/stdlib/strtod.c b/stdlib/strtod.c
+index 570780cdecbffde0..657d95de82169358 100644
+--- a/stdlib/strtod.c
++++ b/stdlib/strtod.c
+@@ -46,10 +46,7 @@
+ 
+ 
+ FLOAT
+-INTERNAL (STRTOF) (nptr, endptr, group)
+-     const STRING_TYPE *nptr;
+-     STRING_TYPE **endptr;
+-     int group;
++INTERNAL (STRTOF) (const STRING_TYPE *nptr, STRING_TYPE **endptr, int group)
+ {
+   return INTERNAL(STRTOF_L) (nptr, endptr, group, _NL_CURRENT_LOCALE);
+ }
+@@ -62,9 +59,7 @@ FLOAT
+ #ifdef weak_function
+ weak_function
+ #endif
+-STRTOF (nptr, endptr)
+-     const STRING_TYPE *nptr;
+-     STRING_TYPE **endptr;
++STRTOF (const STRING_TYPE *nptr, STRING_TYPE **endptr)
+ {
+   return INTERNAL(STRTOF_L) (nptr, endptr, 0, _NL_CURRENT_LOCALE);
+ }
+diff --git a/stdlib/strtod_l.c b/stdlib/strtod_l.c
+index e5b30d443106ee91..bfbe9b4d96222823 100644
+--- a/stdlib/strtod_l.c
++++ b/stdlib/strtod_l.c
+@@ -1738,10 +1738,7 @@ FLOAT
+ #ifdef weak_function
+ weak_function
+ #endif
+-__STRTOF (nptr, endptr, loc)
+-     const STRING_TYPE *nptr;
+-     STRING_TYPE **endptr;
+-     __locale_t loc;
++__STRTOF (const STRING_TYPE *nptr, STRING_TYPE **endptr, __locale_t loc)
+ {
+   return ____STRTOF_INTERNAL (nptr, endptr, 0, loc);
+ }
+diff --git a/stdlib/strtol.c b/stdlib/strtol.c
+index 67d758c57973b5d5..68b81ef557a6274c 100644
+--- a/stdlib/strtol.c
++++ b/stdlib/strtol.c
+@@ -89,11 +89,8 @@ extern INT INTERNAL (__strtol_l) (const STRING_TYPE *, STRING_TYPE **, int,
+ 
+ 
+ INT
+-INTERNAL (strtol) (nptr, endptr, base, group)
+-     const STRING_TYPE *nptr;
+-     STRING_TYPE **endptr;
+-     int base;
+-     int group;
++INTERNAL (strtol) (const STRING_TYPE *nptr, STRING_TYPE **endptr,
++		   int base, int group)
+ {
+   return INTERNAL (__strtol_l) (nptr, endptr, base, group, _NL_CURRENT_LOCALE);
+ }
+diff --git a/stdlib/strtol_l.c b/stdlib/strtol_l.c
+index 8174d22f060c2149..3e686acec1484118 100644
+--- a/stdlib/strtol_l.c
++++ b/stdlib/strtol_l.c
+@@ -222,12 +222,8 @@ extern const unsigned char __strtol_ull_rem_tab[] attribute_hidden;
+    one converted is stored in *ENDPTR.  */
+ 
+ INT
+-INTERNAL (__strtol_l) (nptr, endptr, base, group, loc)
+-     const STRING_TYPE *nptr;
+-     STRING_TYPE **endptr;
+-     int base;
+-     int group;
+-     __locale_t loc;
++INTERNAL (__strtol_l) (const STRING_TYPE *nptr, STRING_TYPE **endptr,
++		       int base, int group, __locale_t loc)
+ {
+   int negative;
+   unsigned LONG int cutoff;
+@@ -546,11 +542,8 @@ INT
+ #ifdef weak_function
+ weak_function
+ #endif
+-__strtol_l (nptr, endptr, base, loc)
+-     const STRING_TYPE *nptr;
+-     STRING_TYPE **endptr;
+-     int base;
+-     __locale_t loc;
++__strtol_l (const STRING_TYPE *nptr, STRING_TYPE **endptr,
++	    int base, __locale_t loc)
+ {
+   return INTERNAL (__strtol_l) (nptr, endptr, base, 0, loc);
+ }
+diff --git a/stdlib/sub_n.c b/stdlib/sub_n.c
+index 7e8ca2354554d062..db6928d82df8499d 100644
+--- a/stdlib/sub_n.c
++++ b/stdlib/sub_n.c
+@@ -22,15 +22,7 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
+ #include "gmp-impl.h"
+ 
+ mp_limb_t
+-#if __STDC__
+ mpn_sub_n (mp_ptr res_ptr, mp_srcptr s1_ptr, mp_srcptr s2_ptr, mp_size_t size)
+-#else
+-mpn_sub_n (res_ptr, s1_ptr, s2_ptr, size)
+-     register mp_ptr res_ptr;
+-     register mp_srcptr s1_ptr;
+-     register mp_srcptr s2_ptr;
+-     mp_size_t size;
+-#endif
+ {
+   register mp_limb_t x, y, cy;
+   register mp_size_t j;
+diff --git a/string/memrchr.c b/string/memrchr.c
+index 2826f1305626fb7c..79d19aa18ff5bd3e 100644
+--- a/string/memrchr.c
++++ b/string/memrchr.c
+@@ -61,10 +61,7 @@ __memrchr
+ #else
+ MEMRCHR
+ #endif
+-     (s, c_in, n)
+-     const __ptr_t s;
+-     int c_in;
+-     size_t n;
++     (const __ptr_t s, int c_in, size_t n)
+ {
+   const unsigned char *char_ptr;
+   const unsigned long int *longword_ptr;
+diff --git a/string/strcasecmp.c b/string/strcasecmp.c
+index e7a3c4481b27e954..73581256fc13cbb8 100644
+--- a/string/strcasecmp.c
++++ b/string/strcasecmp.c
+@@ -35,21 +35,16 @@
+ #endif
+ 
+ #ifdef USE_IN_EXTENDED_LOCALE_MODEL
+-# define LOCALE_PARAM , loc
+-# define LOCALE_PARAM_DECL __locale_t loc;
++# define LOCALE_PARAM , __locale_t loc
+ #else
+ # define LOCALE_PARAM
+-# define LOCALE_PARAM_DECL
+ #endif
+ 
+ /* Compare S1 and S2, ignoring case, returning less than, equal to or
+    greater than zero if S1 is lexicographically less than,
+    equal to or greater than S2.  */
+ int
+-__strcasecmp (s1, s2 LOCALE_PARAM)
+-     const char *s1;
+-     const char *s2;
+-     LOCALE_PARAM_DECL
++__strcasecmp (const char *s1, const char *s2 LOCALE_PARAM)
+ {
+ #if defined _LIBC && !defined USE_IN_EXTENDED_LOCALE_MODEL
+   __locale_t loc = _NL_CURRENT_LOCALE;
+diff --git a/string/strncase.c b/string/strncase.c
+index 02fd51fd40a8ee94..fbd85f3a2329850d 100644
+--- a/string/strncase.c
++++ b/string/strncase.c
+@@ -36,11 +36,9 @@
+ #endif
+ 
+ #ifdef USE_IN_EXTENDED_LOCALE_MODEL
+-# define LOCALE_PARAM , loc
+-# define LOCALE_PARAM_DECL __locale_t loc;
++# define LOCALE_PARAM , __locale_t loc
+ #else
+ # define LOCALE_PARAM
+-# define LOCALE_PARAM_DECL
+ #endif
+ 
+ /* Compare no more than N characters of S1 and S2,
+@@ -48,11 +46,7 @@
+    greater than zero if S1 is lexicographically less
+    than, equal to or greater than S2.  */
+ int
+-__strncasecmp (s1, s2, n LOCALE_PARAM)
+-     const char *s1;
+-     const char *s2;
+-     size_t n;
+-     LOCALE_PARAM_DECL
++__strncasecmp (const char *s1, const char *s2, size_t n LOCALE_PARAM)
+ {
+ #if defined _LIBC && !defined USE_IN_EXTENDED_LOCALE_MODEL
+   __locale_t loc = _NL_CURRENT_LOCALE;
+diff --git a/sunrpc/pm_getport.c b/sunrpc/pm_getport.c
+index 5c43acc0609d7377..f1fd462e181f7a8b 100644
+--- a/sunrpc/pm_getport.c
++++ b/sunrpc/pm_getport.c
+@@ -82,14 +82,9 @@ __get_socket (struct sockaddr_in *saddr)
+  */
+ u_short
+ internal_function
+-__libc_rpc_getport (address, program, version, protocol, timeout_sec,
+-		    tottimeout_sec)
+-     struct sockaddr_in *address;
+-     u_long program;
+-     u_long version;
+-     u_int protocol;
+-     time_t timeout_sec;
+-     time_t tottimeout_sec;
++__libc_rpc_getport (struct sockaddr_in *address, u_long program,
++		    u_long version, u_int protocol, time_t timeout_sec,
++		    time_t tottimeout_sec)
+ {
+   const struct timeval timeout = {timeout_sec, 0};
+   const struct timeval tottimeout = {tottimeout_sec, 0};
+diff --git a/sunrpc/xdr.c b/sunrpc/xdr.c
+index 9f1f7d417521044d..32dfa0aa1ab1e76a 100644
+--- a/sunrpc/xdr.c
++++ b/sunrpc/xdr.c
+@@ -674,12 +674,15 @@ libc_hidden_nolink_sunrpc (xdr_netobj, GLIBC_2_0)
+  * If there is no specific or default routine an error is returned.
+  */
+ bool_t
+-xdr_union (xdrs, dscmp, unp, choices, dfault)
+-     XDR *xdrs;
+-     enum_t *dscmp;		/* enum to decide which arm to work on */
+-     char *unp;			/* the union itself */
+-     const struct xdr_discrim *choices;	/* [value, xdr proc] for each arm */
+-     xdrproc_t dfault;		/* default xdr routine */
++xdr_union (XDR *xdrs,
++	   /* enum to decide which arm to work on */
++	   enum_t *dscmp,
++	   /* the union itself */
++	   char *unp,
++	   /* [value, xdr proc] for each arm */
++	   const struct xdr_discrim *choices,
++	   /* default xdr routine */
++	   xdrproc_t dfault)
+ {
+   enum_t dscm;
+ 
+diff --git a/sunrpc/xdr_array.c b/sunrpc/xdr_array.c
+index fd9d1fb42f744844..99a1d5d24520572f 100644
+--- a/sunrpc/xdr_array.c
++++ b/sunrpc/xdr_array.c
+@@ -53,13 +53,17 @@
+  * xdr procedure to call to handle each element of the array.
+  */
+ bool_t
+-xdr_array (xdrs, addrp, sizep, maxsize, elsize, elproc)
+-     XDR *xdrs;
+-     caddr_t *addrp;		/* array pointer */
+-     u_int *sizep;		/* number of elements */
+-     u_int maxsize;		/* max numberof elements */
+-     u_int elsize;		/* size in bytes of each element */
+-     xdrproc_t elproc;		/* xdr routine to handle each element */
++xdr_array (XDR *xdrs,
++	   /* array pointer */
++	   caddr_t *addrp,
++	   /* number of elements */
++	   u_int *sizep,
++	   /* max numberof elements */
++	   u_int maxsize,
++	   /* size in bytes of each element */
++	   u_int elsize,
++	   /* xdr routine to handle each element */
++	   xdrproc_t elproc)
+ {
+   u_int i;
+   caddr_t target = *addrp;
+diff --git a/sunrpc/xdr_ref.c b/sunrpc/xdr_ref.c
+index a7d9264ed6be6fe2..2b7ebc8e11ca4dab 100644
+--- a/sunrpc/xdr_ref.c
++++ b/sunrpc/xdr_ref.c
+@@ -54,11 +54,13 @@
+  * proc is the routine to handle the referenced structure.
+  */
+ bool_t
+-xdr_reference (xdrs, pp, size, proc)
+-     XDR *xdrs;
+-     caddr_t *pp;		/* the pointer to work on */
+-     u_int size;		/* size of the object pointed to */
+-     xdrproc_t proc;		/* xdr routine to handle the object */
++xdr_reference (XDR *xdrs,
++	       /* the pointer to work on */
++	       caddr_t *pp,
++	       /* size of the object pointed to */
++	       u_int size,
++	       /* xdr routine to handle the object */
++	       xdrproc_t proc)
+ {
+   caddr_t loc = *pp;
+   bool_t stat;
+diff --git a/sysdeps/m68k/m680x0/fpu/s_atan.c b/sysdeps/m68k/m680x0/fpu/s_atan.c
+index c7bba83f30a4174d..acb6900d82d5c77d 100644
+--- a/sysdeps/m68k/m680x0/fpu/s_atan.c
++++ b/sysdeps/m68k/m680x0/fpu/s_atan.c
+@@ -27,8 +27,7 @@
+ #define __CONCATX(a,b) __CONCAT(a,b)
+ 
+ float_type
+-__CONCATX(__,FUNC) (x)
+-     float_type x;
++__CONCATX(__,FUNC) (float_type x)
+ {
+   return __m81_u(__CONCATX(__,FUNC))(x);
+ }
+diff --git a/sysdeps/m68k/m680x0/fpu/s_isinf.c b/sysdeps/m68k/m680x0/fpu/s_isinf.c
+index 20872da536619d09..dfb9d99be8f8560c 100644
+--- a/sysdeps/m68k/m680x0/fpu/s_isinf.c
++++ b/sysdeps/m68k/m680x0/fpu/s_isinf.c
+@@ -27,8 +27,7 @@
+ #define __CONCATX(a,b) __CONCAT(a,b)
+ 
+ int
+-__CONCATX(__,FUNC) (x)
+-     float_type x;
++__CONCATX(__,FUNC) (float_type x)
+ {
+   return __m81_u(__CONCATX(__,FUNC))(x);
+ }
+diff --git a/sysdeps/m68k/m680x0/fpu/s_scalbn.c b/sysdeps/m68k/m680x0/fpu/s_scalbn.c
+index ce1b92a22c2107df..8861f7a522cc00f4 100644
+--- a/sysdeps/m68k/m680x0/fpu/s_scalbn.c
++++ b/sysdeps/m68k/m680x0/fpu/s_scalbn.c
+@@ -39,9 +39,7 @@
+ #define __CONCATX(a,b) __CONCAT(a,b)
+ 
+ float_type
+-__CONCATX(__scalbn,suffix) (x, exp)
+-     float_type x;
+-     int exp;
++__CONCATX(__scalbn,suffix) (float_type x, int exp)
+ {
+   return __m81_u(__CONCATX(__scalbn,suffix))(x, exp);
+ }
+diff --git a/sysdeps/m68k/m680x0/fpu/s_sincos.c b/sysdeps/m68k/m680x0/fpu/s_sincos.c
+index f7a40a3704204240..d2eb192363d6c907 100644
+--- a/sysdeps/m68k/m680x0/fpu/s_sincos.c
++++ b/sysdeps/m68k/m680x0/fpu/s_sincos.c
+@@ -27,8 +27,7 @@
+ #define CONCATX(a,b) __CONCAT(a,b)
+ 
+ void
+-CONCATX(__,FUNC) (x, sinx, cosx)
+-     float_type x, *sinx, *cosx;
++CONCATX(__,FUNC) (float_type x, float_type *sinx, float_type *cosx)
+ {
+   __m81_u(CONCATX(__,FUNC))(x, sinx, cosx);
+ }
+diff --git a/sysdeps/unix/sysv/linux/i386/scandir64.c b/sysdeps/unix/sysv/linux/i386/scandir64.c
+index aca505a320b99473..485c84bee3e09aea 100644
+--- a/sysdeps/unix/sysv/linux/i386/scandir64.c
++++ b/sysdeps/unix/sysv/linux/i386/scandir64.c
+@@ -39,12 +39,10 @@ versioned_symbol (libc, __scandir64, scandir64, GLIBC_2_2);
+ # include "olddirent.h"
+ 
+ int
+-__old_scandir64 (dir, namelist, select, cmp)
+-     const char *dir;
+-     struct __old_dirent64 ***namelist;
+-     int (*select) (const struct __old_dirent64 *);
+-     int (*cmp) (const struct __old_dirent64 **,
+-		 const struct __old_dirent64 **);
++__old_scandir64 (const char *dir, struct __old_dirent64 ***namelist,
++		 int (*select) (const struct __old_dirent64 *),
++		 int (*cmp) (const struct __old_dirent64 **,
++			     const struct __old_dirent64 **))
+ {
+   DIR *dp = __opendir (dir);
+   struct __old_dirent64 **v = NULL;
+diff --git a/time/strftime_l.c b/time/strftime_l.c
+index 0f6ac83d34d43755..a1fe2714d221f4f3 100644
+--- a/time/strftime_l.c
++++ b/time/strftime_l.c
+@@ -284,16 +284,12 @@ static const CHAR_T zeroes[16] = /* "0000000000000000" */
+ # undef _NL_CURRENT
+ # define _NL_CURRENT(category, item) \
+   (current->values[_NL_ITEM_INDEX (item)].string)
+-# define LOCALE_PARAM , loc
++# define LOCALE_PARAM , __locale_t loc
+ # define LOCALE_ARG , loc
+-# define LOCALE_PARAM_DECL  __locale_t loc;
+-# define LOCALE_PARAM_PROTO , __locale_t loc
+ # define HELPER_LOCALE_ARG  , current
+ #else
+ # define LOCALE_PARAM
+-# define LOCALE_PARAM_PROTO
+ # define LOCALE_ARG
+-# define LOCALE_PARAM_DECL
+ # ifdef _LIBC
+ #  define HELPER_LOCALE_ARG , _NL_CURRENT_DATA (LC_TIME)
+ # else
+@@ -330,14 +326,10 @@ static const CHAR_T zeroes[16] = /* "0000000000000000" */
+ #define ISDIGIT(Ch) ((unsigned int) (Ch) - L_('0') <= 9)
+ 
+ static CHAR_T *memcpy_lowcase (CHAR_T *dest, const CHAR_T *src,
+-			       size_t len LOCALE_PARAM_PROTO) __THROW;
++			       size_t len LOCALE_PARAM) __THROW;
+ 
+ static CHAR_T *
+-memcpy_lowcase (dest, src, len LOCALE_PARAM)
+-     CHAR_T *dest;
+-     const CHAR_T *src;
+-     size_t len;
+-     LOCALE_PARAM_DECL
++memcpy_lowcase (CHAR_T *dest, const CHAR_T *src, size_t len LOCALE_PARAM)
+ {
+   while (len-- > 0)
+     dest[len] = TOLOWER ((UCHAR_T) src[len], loc);
+@@ -345,14 +337,10 @@ memcpy_lowcase (dest, src, len LOCALE_PARAM)
+ }
+ 
+ static CHAR_T *memcpy_uppcase (CHAR_T *dest, const CHAR_T *src,
+-			       size_t len LOCALE_PARAM_PROTO) __THROW;
++			       size_t len LOCALE_PARAM) __THROW;
+ 
+ static CHAR_T *
+-memcpy_uppcase (dest, src, len LOCALE_PARAM)
+-     CHAR_T *dest;
+-     const CHAR_T *src;
+-     size_t len;
+-     LOCALE_PARAM_DECL
++memcpy_uppcase (CHAR_T *dest, const CHAR_T *src, size_t len LOCALE_PARAM)
+ {
+   while (len-- > 0)
+     dest[len] = TOUPPER ((UCHAR_T) src[len], loc);
+@@ -429,8 +417,7 @@ static CHAR_T const month_name[][10] =
+ #ifdef emacs
+ # define my_strftime emacs_strftimeu
+ # define ut_argument , ut
+-# define ut_argument_spec int ut;
+-# define ut_argument_spec_iso , int ut
++# define ut_argument_spec , int ut
+ #else
+ # ifdef COMPILE_WIDE
+ #  define my_strftime wcsftime
+@@ -441,15 +428,14 @@ static CHAR_T const month_name[][10] =
+ # endif
+ # define ut_argument
+ # define ut_argument_spec
+-# define ut_argument_spec_iso
+ /* We don't have this information in general.  */
+ # define ut 0
+ #endif
+ 
+ static size_t __strftime_internal (CHAR_T *, size_t, const CHAR_T *,
+ 				   const struct tm *, bool *
+-				   ut_argument_spec_iso
+-				   LOCALE_PARAM_PROTO) __THROW;
++				   ut_argument_spec
++				   LOCALE_PARAM) __THROW;
+ 
+ /* Write information from TP into S according to the format
+    string FORMAT, writing no more that MAXSIZE characters
+@@ -459,13 +445,8 @@ static size_t __strftime_internal (CHAR_T *, size_t, const CHAR_T *,
+    written, use NULL for S and (size_t) UINT_MAX for MAXSIZE.  */
+ 
+ size_t
+-my_strftime (s, maxsize, format, tp ut_argument LOCALE_PARAM)
+-     CHAR_T *s;
+-     size_t maxsize;
+-     const CHAR_T *format;
+-     const struct tm *tp;
+-     ut_argument_spec
+-     LOCALE_PARAM_DECL
++my_strftime (CHAR_T *s, size_t maxsize, const CHAR_T *format,
++	     const struct tm *tp ut_argument_spec LOCALE_PARAM)
+ {
+ #if !defined _LIBC && HAVE_TZNAME && HAVE_TZSET
+   /* Solaris 2.5 tzset sometimes modifies the storage returned by localtime.
+@@ -483,15 +464,9 @@ libc_hidden_def (my_strftime)
+ #endif
+ 
+ static size_t
+-__strftime_internal (s, maxsize, format, tp, tzset_called ut_argument
+-		     LOCALE_PARAM)
+-      CHAR_T *s;
+-      size_t maxsize;
+-      const CHAR_T *format;
+-      const struct tm *tp;
+-      bool *tzset_called;
+-      ut_argument_spec
+-      LOCALE_PARAM_DECL
++__strftime_internal (CHAR_T *s, size_t maxsize, const CHAR_T *format,
++		     const struct tm *tp, bool *tzset_called
++		     ut_argument_spec LOCALE_PARAM)
+ {
+ #if defined _LIBC && defined USE_IN_EXTENDED_LOCALE_MODEL
+   struct __locale_data *const current = loc->__locales[LC_TIME];
+diff --git a/time/strptime_l.c b/time/strptime_l.c
+index cb2b8faa6d740748..7f1efa13374c5eb4 100644
+--- a/time/strptime_l.c
++++ b/time/strptime_l.c
+@@ -181,17 +181,13 @@ static const unsigned short int __mon_yday[2][13] =
+ # undef _NL_CURRENT_WORD
+ # define _NL_CURRENT_WORD(category, item) \
+   (current->values[_NL_ITEM_INDEX (item)].word)
+-# define LOCALE_PARAM , locale
++# define LOCALE_PARAM , __locale_t locale
+ # define LOCALE_ARG , locale
+-# define LOCALE_PARAM_PROTO , __locale_t locale
+-# define LOCALE_PARAM_DECL __locale_t locale;
+ # define HELPER_LOCALE_ARG , current
+ # define ISSPACE(Ch) __isspace_l (Ch, locale)
+ #else
+ # define LOCALE_PARAM
+ # define LOCALE_ARG
+-# define LOCALE_PARAM_DECL
+-# define LOCALE_PARAM_PROTO
+ # define HELPER_LOCALE_ARG
+ # define ISSPACE(Ch) isspace (Ch)
+ #endif
+@@ -239,12 +235,8 @@ internal_function
+ #else
+ static char *
+ #endif
+-__strptime_internal (rp, fmt, tmp, statep LOCALE_PARAM)
+-     const char *rp;
+-     const char *fmt;
+-     struct tm *tmp;
+-     void *statep;
+-     LOCALE_PARAM_DECL
++__strptime_internal (const char *rp, const char *fmt, struct tm *tmp,
++		     void *statep LOCALE_PARAM)
+ {
+ #ifdef _LIBC
+   struct __locale_data *const current = locale->__locales[LC_TIME];
+@@ -1204,11 +1196,7 @@ __strptime_internal (rp, fmt, tmp, statep LOCALE_PARAM)
+ 
+ 
+ char *
+-strptime (buf, format, tm LOCALE_PARAM)
+-     const char *buf;
+-     const char *format;
+-     struct tm *tm;
+-     LOCALE_PARAM_DECL
++strptime (const char *buf, const char *format, struct tm *tm LOCALE_PARAM)
+ {
+   return __strptime_internal (buf, format, tm, NULL LOCALE_ARG);
+ }
+diff --git a/wcsmbs/wcscasecmp.c b/wcsmbs/wcscasecmp.c
+index f970057f504999c8..4943bb5b9b410426 100644
+--- a/wcsmbs/wcscasecmp.c
++++ b/wcsmbs/wcscasecmp.c
+@@ -35,21 +35,16 @@
+ #endif
+ 
+ #ifdef USE_IN_EXTENDED_LOCALE_MODEL
+-# define LOCALE_PARAM , loc
+-# define LOCALE_PARAM_DECL __locale_t loc;
++# define LOCALE_PARAM , __locale_t loc
+ #else
+ # define LOCALE_PARAM
+-# define LOCALE_PARAM_DECL
+ #endif
+ 
+ /* Compare S1 and S2, ignoring case, returning less than, equal to or
+    greater than zero if S1 is lexicographically less than,
+    equal to or greater than S2.  */
+ int
+-__wcscasecmp (s1, s2 LOCALE_PARAM)
+-     const wchar_t *s1;
+-     const wchar_t *s2;
+-     LOCALE_PARAM_DECL
++__wcscasecmp (const wchar_t *s1, const wchar_t *s2 LOCALE_PARAM)
+ {
+   wint_t c1, c2;
+ 
+diff --git a/wcsmbs/wcsncase.c b/wcsmbs/wcsncase.c
+index 8b216b48184f793d..3e56ce5d25197a60 100644
+--- a/wcsmbs/wcsncase.c
++++ b/wcsmbs/wcsncase.c
+@@ -37,11 +37,9 @@
+ #endif
+ 
+ #ifdef USE_IN_EXTENDED_LOCALE_MODEL
+-# define LOCALE_PARAM , loc
+-# define LOCALE_PARAM_DECL __locale_t loc;
++# define LOCALE_PARAM , __locale_t loc
+ #else
+ # define LOCALE_PARAM
+-# define LOCALE_PARAM_DECL
+ #endif
+ 
+ /* Compare no more than N wide characters of S1 and S2,
+@@ -49,11 +47,7 @@
+    greater than zero if S1 is lexicographically less
+    than, equal to or greater than S2.  */
+ int
+-__wcsncasecmp (s1, s2, n LOCALE_PARAM)
+-     const wchar_t *s1;
+-     const wchar_t *s2;
+-     size_t n;
+-     LOCALE_PARAM_DECL
++__wcsncasecmp (const wchar_t *s1, const wchar_t *s2, size_t n LOCALE_PARAM)
+ {
+   wint_t c1, c2;
+ 
diff --git a/SOURCES/glibc-rh1505492-prototypes-18.patch b/SOURCES/glibc-rh1505492-prototypes-18.patch
new file mode 100644
index 0000000..1ba9bb7
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-18.patch
@@ -0,0 +1,261 @@
+commit 85231522bb178ebe0957529de20b7f3dda81168c
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Wed Oct 21 11:57:23 2015 +0000
+
+    Convert a few more function definitions to prototype style.
+    
+    This patch converts a few more function definitions in glibc from
+    old-style K&R to prototype style.  This is sufficient to build and
+    test on x86_64 and x86 with -Wold-style-definition (I'll test on some
+    more architectures before proposing the actual addition of
+    -Wold-style-definition).
+    
+    Tested for x86_64 and x86 with -Wold-style-definition in use
+    (testsuite - this patch affects files containing assertions).
+    
+            * io/fts.c (fts_open): Convert to prototype-style function
+            definition.
+            * malloc/mcheck.c (mcheck): Likewise.
+            (mcheck_pedantic): Likewise.
+            * posix/regexec.c (re_search_2_stub): Likewise.  Use
+            internal_function.
+            (re_search_internal): Likewise.
+            * resolv/res_init.c [RESOLVSORT] (net_mask): Convert to
+            prototype-style function definition.
+            * sunrpc/clnt_udp.c (clntudp_call): Likewise.
+            * sunrpc/pmap_rmt.c (clnt_broadcast): Likewise.
+            * sunrpc/rpcsvc/rusers.x (xdr_utmp): Likewise.
+            (xdr_utmpptr): Likewise.
+            (xdr_utmparr): Likewise.
+            (xdr_utmpidle): Likewise.
+            (xdr_utmpidleptr): Likewise.
+            (xdr_utmpidlearr): Likewise.
+
+Conflicts:
+	malloc/mcheck.c
+	  (Textual conflict due to malloc reformatting upstream.)
+	resolv/res_init.c
+	  (Already part of the stub resolver rebase in
+	  glibc-rh677316-resolv.patch.)
+
+diff --git a/io/fts.c b/io/fts.c
+index 275608591739ce63..49d2de946b78f483 100644
+--- a/io/fts.c
++++ b/io/fts.c
+@@ -85,10 +85,8 @@ static int      fts_safe_changedir (FTS *, FTSENT *, int, const char *)
+ #define	BREAD		3		/* fts_read */
+ 
+ FTS *
+-fts_open(argv, options, compar)
+-	char * const *argv;
+-	int options;
+-	int (*compar) (const FTSENT **, const FTSENT **);
++fts_open (char * const *argv, int options,
++	  int (*compar) (const FTSENT **, const FTSENT **))
+ {
+ 	FTS *sp;
+ 	FTSENT *p, *root;
+diff --git a/malloc/mcheck.c b/malloc/mcheck.c
+index 680e03353e03f235..fa6b0309c5f28e79 100644
+--- a/malloc/mcheck.c
++++ b/malloc/mcheck.c
+@@ -370,8 +370,7 @@ mabort (enum mcheck_status status)
+ ({ __typeof (x) __x = x; __asm ("" : "+m" (__x)); __x; })
+ 
+ int
+-mcheck (func)
+-     void (*func) (enum mcheck_status);
++mcheck (void (*func) (enum mcheck_status))
+ {
+   abortfunc = (func != NULL) ? func : &mabort;
+ 
+@@ -402,8 +401,7 @@ libc_hidden_def (mcheck)
+ #endif
+ 
+ int
+-mcheck_pedantic (func)
+-      void (*func) (enum mcheck_status);
++mcheck_pedantic (void (*func) (enum mcheck_status))
+ {
+   int res = mcheck (func);
+   if (res == 0)
+diff --git a/posix/regexec.c b/posix/regexec.c
+index 6ca865dc9a7d44d5..7e1618561e61e41d 100644
+--- a/posix/regexec.c
++++ b/posix/regexec.c
+@@ -343,12 +343,11 @@ weak_alias (__re_search_2, re_search_2)
+ #endif
+ 
+ static int
+-re_search_2_stub (bufp, string1, length1, string2, length2, start, range, regs,
+-		  stop, ret_len)
+-    struct re_pattern_buffer *bufp;
+-    const char *string1, *string2;
+-    int length1, length2, start, range, stop, ret_len;
+-    struct re_registers *regs;
++internal_function
++re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1,
++		  int length1, const char *string2, int length2, int start,
++		  int range, struct re_registers *regs,
++		  int stop, int ret_len)
+ {
+   const char *str;
+   int rval;
+@@ -604,14 +603,10 @@ re_exec (const char *s)
+    (START + RANGE >= 0 && START + RANGE <= LENGTH)  */
+ 
+ static reg_errcode_t
+-__attribute_warn_unused_result__
+-re_search_internal (preg, string, length, start, range, stop, nmatch, pmatch,
+-		    eflags)
+-    const regex_t *preg;
+-    const char *string;
+-    int length, start, range, stop, eflags;
+-    size_t nmatch;
+-    regmatch_t pmatch[];
++__attribute_warn_unused_result__ internal_function
++re_search_internal (const regex_t *preg, const char *string, int length,
++		    int start, int range, int stop, size_t nmatch,
++		    regmatch_t pmatch[], int eflags)
+ {
+   reg_errcode_t err;
+   const re_dfa_t *dfa = (const re_dfa_t *) preg->buffer;
+diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c
+index 1e0c7d45d33d23a1..069768ac213aa116 100644
+--- a/sunrpc/clnt_udp.c
++++ b/sunrpc/clnt_udp.c
+@@ -293,14 +293,20 @@ is_network_up (int sock)
+ }
+ 
+ static enum clnt_stat
+-clntudp_call (cl, proc, xargs, argsp, xresults, resultsp, utimeout)
+-     CLIENT *cl;	/* client handle */
+-     u_long proc;		/* procedure number */
+-     xdrproc_t xargs;		/* xdr routine for args */
+-     caddr_t argsp;		/* pointer to args */
+-     xdrproc_t xresults;	/* xdr routine for results */
+-     caddr_t resultsp;		/* pointer to results */
+-     struct timeval utimeout;	/* seconds to wait before giving up */
++clntudp_call (/* client handle */
++	      CLIENT *cl,
++	      /* procedure number */
++	      u_long proc,
++	      /* xdr routine for args */
++	      xdrproc_t xargs,
++	      /* pointer to args */
++	      caddr_t argsp,
++	      /* xdr routine for results */
++	      xdrproc_t xresults,
++	      /* pointer to results */
++	      caddr_t resultsp,
++	      /* seconds to wait before giving up */
++	      struct timeval utimeout)
+ {
+   struct cu_data *cu = (struct cu_data *) cl->cl_private;
+   XDR *xdrs;
+diff --git a/sunrpc/pmap_rmt.c b/sunrpc/pmap_rmt.c
+index c8a8011ea5474b3b..e54fe1447004c6b1 100644
+--- a/sunrpc/pmap_rmt.c
++++ b/sunrpc/pmap_rmt.c
+@@ -196,15 +196,22 @@ getbroadcastnets (struct in_addr *addrs, int naddrs)
+ 
+ 
+ enum clnt_stat
+-clnt_broadcast (prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult)
+-     u_long prog;		/* program number */
+-     u_long vers;		/* version number */
+-     u_long proc;		/* procedure number */
+-     xdrproc_t xargs;		/* xdr routine for args */
+-     caddr_t argsp;		/* pointer to args */
+-     xdrproc_t xresults;	/* xdr routine for results */
+-     caddr_t resultsp;		/* pointer to results */
+-     resultproc_t eachresult;	/* call with each result obtained */
++clnt_broadcast (/* program number */
++		u_long prog,
++		/* version number */
++		u_long vers,
++		/* procedure number */
++		u_long proc,
++		/* xdr routine for args */
++		xdrproc_t xargs,
++		/* pointer to args */
++		caddr_t argsp,
++		/* xdr routine for results */
++		xdrproc_t xresults,
++		/* pointer to results */
++		caddr_t resultsp,
++		/* call with each result obtained */
++		resultproc_t eachresult)
+ {
+   enum clnt_stat stat = RPC_FAILED;
+   AUTH *unix_auth = authunix_create_default ();
+diff --git a/sunrpc/rpcsvc/rusers.x b/sunrpc/rpcsvc/rusers.x
+index 476ed7400c445d2a..5bbfe97e79e27aa2 100644
+--- a/sunrpc/rpcsvc/rusers.x
++++ b/sunrpc/rpcsvc/rusers.x
+@@ -137,9 +137,7 @@ program RUSERSPROG {
+ %bool_t xdr_utmp (XDR *xdrs, struct ru_utmp *objp);
+ %
+ %bool_t
+-%xdr_utmp(xdrs, objp)
+-%	XDR *xdrs;
+-%	struct ru_utmp *objp;
++%xdr_utmp (XDR *xdrs, struct ru_utmp *objp)
+ %{
+ %	/* Since the fields are char foo [xxx], we should not free them. */
+ %	if (xdrs->x_op != XDR_FREE)
+@@ -171,9 +169,7 @@ program RUSERSPROG {
+ %bool_t xdr_utmpptr(XDR *xdrs, struct ru_utmp **objpp);
+ %
+ %bool_t
+-%xdr_utmpptr(xdrs, objpp)
+-%	XDR *xdrs;
+-%	struct ru_utmp **objpp;
++%xdr_utmpptr (XDR *xdrs, struct ru_utmp **objpp)
+ %{
+ %	if (!xdr_reference(xdrs, (char **) objpp, sizeof (struct ru_utmp),
+ %			   (xdrproc_t) xdr_utmp)) {
+@@ -183,9 +179,7 @@ program RUSERSPROG {
+ %}
+ %
+ %bool_t
+-%xdr_utmparr(xdrs, objp)
+-%	XDR *xdrs;
+-%	struct utmparr *objp;
++%xdr_utmparr (XDR *xdrs, struct utmparr *objp)
+ %{
+ %	if (!xdr_array(xdrs, (char **)&objp->uta_arr, (u_int *)&objp->uta_cnt,
+ %		       MAXUSERS, sizeof(struct ru_utmp *),
+@@ -198,9 +192,7 @@ program RUSERSPROG {
+ %bool_t xdr_utmpidle(XDR *xdrs, struct utmpidle *objp);
+ %
+ %bool_t
+-%xdr_utmpidle(xdrs, objp)
+-%	XDR *xdrs;
+-%	struct utmpidle *objp;
++%xdr_utmpidle (XDR *xdrs, struct utmpidle *objp)
+ %{
+ %	if (!xdr_utmp(xdrs, &objp->ui_utmp)) {
+ %		return (FALSE);
+@@ -214,9 +206,7 @@ program RUSERSPROG {
+ %bool_t xdr_utmpidleptr(XDR *xdrs, struct utmpidle **objp);
+ %
+ %bool_t
+-%xdr_utmpidleptr(xdrs, objpp)
+-%	XDR *xdrs;
+-%	struct utmpidle **objpp;
++%xdr_utmpidleptr (XDR *xdrs, struct utmpidle **objpp)
+ %{
+ %	if (!xdr_reference(xdrs, (char **) objpp, sizeof (struct utmpidle),
+ %			   (xdrproc_t) xdr_utmpidle)) {
+@@ -226,9 +216,7 @@ program RUSERSPROG {
+ %}
+ %
+ %bool_t
+-%xdr_utmpidlearr(xdrs, objp)
+-%	XDR *xdrs;
+-%	struct utmpidlearr *objp;
++%xdr_utmpidlearr (XDR *xdrs, struct utmpidlearr *objp)
+ %{
+ %	if (!xdr_array(xdrs, (char **)&objp->uia_arr, (u_int *)&objp->uia_cnt,
+ %		       MAXUSERS, sizeof(struct utmpidle *),
diff --git a/SOURCES/glibc-rh1505492-prototypes-2.patch b/SOURCES/glibc-rh1505492-prototypes-2.patch
new file mode 100644
index 0000000..c60fc32
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-2.patch
@@ -0,0 +1,20 @@
+commit 5cc45e102bdc19dec494e4ae8f0eb832f11af3e5
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Fri Mar 8 16:47:43 2013 +0000
+
+    Use ISO C prototype for __default_morecore.
+
+diff --git a/malloc/morecore.c b/malloc/morecore.c
+index 1e7b77749ff1700d..de013bda22ff6fb9 100644
+--- a/malloc/morecore.c
++++ b/malloc/morecore.c
+@@ -42,8 +42,7 @@ libc_hidden_proto (__sbrk)
+    and return the start of data space, or NULL on errors.
+    If INCREMENT is negative, shrink data space.  */
+ __malloc_ptr_t
+-__default_morecore (increment)
+-     ptrdiff_t increment;
++__default_morecore (ptrdiff_t increment)
+ {
+   __malloc_ptr_t result = (__malloc_ptr_t) __sbrk (increment);
+   if (result == (__malloc_ptr_t) -1)
diff --git a/SOURCES/glibc-rh1505492-prototypes-3.patch b/SOURCES/glibc-rh1505492-prototypes-3.patch
new file mode 100644
index 0000000..d6b7848
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-3.patch
@@ -0,0 +1,1222 @@
+commit 60d2f8f3c7f1cdacafcbd60dc004e32cc90035ca
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Sat Jun 8 00:22:23 2013 +0000
+
+    Use (void) in no-arguments function definitions.
+
+Conflicts:
+	resolv/compat-gethnamaddr.c
+
+Changes were already port of the stub resolver rebase in
+glibc-rh677316-resolv.patch.
+
+diff --git a/catgets/gencat.c b/catgets/gencat.c
+index 5078e3c8282cfa00..28dd8a5b05e5b0a0 100644
+--- a/catgets/gencat.c
++++ b/catgets/gencat.c
+@@ -260,7 +260,7 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
+ /* The address of this function will be assigned to the hook in the
+    error functions.  */
+ static void
+-error_print ()
++error_print (void)
+ {
+   /* We don't want the program name to be printed in messages.  Emacs'
+      compile.el does not like this.  */
+diff --git a/crypt/crypt_util.c b/crypt/crypt_util.c
+index e08dd8fa994a3ab1..1ae7711915822715 100644
+--- a/crypt/crypt_util.c
++++ b/crypt/crypt_util.c
+@@ -554,7 +554,7 @@ small_tables_done:
+ }
+ 
+ void
+-__init_des()
++__init_des (void)
+ {
+   __init_des_r(&_ufc_foobar);
+ }
+diff --git a/crypt/speeds.c b/crypt/speeds.c
+index 7362391892aabe55..3afefb954216d8f2 100644
+--- a/crypt/speeds.c
++++ b/crypt/speeds.c
+@@ -42,7 +42,7 @@ struct tms tstart, tfinish;
+ char *crypt(), *fcrypt();
+ 
+ void
+-Stop ()
++Stop (void)
+ {
+     double elapsed;
+ #ifdef NO_ITIMER
+@@ -76,7 +76,7 @@ static void clearmem(start, cnt)
+       *start++ = '\0';
+   }
+ 
+-main ()
++main (void)
+ {
+    char *s;
+ #ifdef NO_ITIMER
+diff --git a/hurd/hurdmalloc.c b/hurd/hurdmalloc.c
+index 886b40208da56866..da611653b602975f 100644
+--- a/hurd/hurdmalloc.c
++++ b/hurd/hurdmalloc.c
+@@ -380,7 +380,7 @@ realloc(old_base, new_size)
+ 
+ #ifdef	DEBUG
+ void
+-print_malloc_free_list()
++print_malloc_free_list (void)
+ {
+   	int i, size;
+ 	free_list_t fl;
+diff --git a/inet/ruserpass.c b/inet/ruserpass.c
+index 71a734dfdac934b7..f64ca3f1c12d478e 100644
+--- a/inet/ruserpass.c
++++ b/inet/ruserpass.c
+@@ -289,7 +289,7 @@ bad:
+ libc_hidden_def (ruserpass)
+ 
+ static int
+-token()
++token (void)
+ {
+ 	char *cp;
+ 	int c;
+diff --git a/intl/finddomain.c b/intl/finddomain.c
+index fec3156985051234..4fff9dad5de54dad 100644
+--- a/intl/finddomain.c
++++ b/intl/finddomain.c
+@@ -171,7 +171,7 @@ out:
+ /* This is called from iconv/gconv_db.c's free_mem, as locales must
+    be freed before freeing gconv steps arrays.  */
+ void __libc_freeres_fn_section
+-_nl_finddomain_subfreeres ()
++_nl_finddomain_subfreeres (void)
+ {
+   struct loaded_l10nfile *runp = _nl_loaded_domains;
+ 
+diff --git a/intl/localealias.c b/intl/localealias.c
+index 1341228716241ffe..2f067dfe2cd7a130 100644
+--- a/intl/localealias.c
++++ b/intl/localealias.c
+@@ -362,7 +362,7 @@ out:
+ 
+ 
+ static int
+-extend_alias_table ()
++extend_alias_table (void)
+ {
+   size_t new_size;
+   struct alias_map *new_map;
+diff --git a/intl/plural-exp.c b/intl/plural-exp.c
+index 2fa27bd7f3afca65..e157bba4adfca8df 100644
+--- a/intl/plural-exp.c
++++ b/intl/plural-exp.c
+@@ -72,7 +72,7 @@ static struct expression plone;
+ struct expression GERMANIC_PLURAL;
+ 
+ static void
+-init_germanic_plural ()
++init_germanic_plural (void)
+ {
+   if (plone.val.num == 0)
+     {
+diff --git a/libio/fcloseall.c b/libio/fcloseall.c
+index 0864690a85504969..46184f6c4a7ad741 100644
+--- a/libio/fcloseall.c
++++ b/libio/fcloseall.c
+@@ -28,7 +28,7 @@
+ #include <stdio.h>
+ 
+ int
+-__fcloseall ()
++__fcloseall (void)
+ {
+   /* Close all streams.  */
+   return _IO_cleanup ();
+diff --git a/libio/genops.c b/libio/genops.c
+index 02d7dfd02ac3ea7c..4e0a40f90c8223dd 100644
+--- a/libio/genops.c
++++ b/libio/genops.c
+@@ -876,7 +876,7 @@ _IO_flush_all_lockp (int do_lock)
+ 
+ 
+ int
+-_IO_flush_all ()
++_IO_flush_all (void)
+ {
+   /* We want locking.  */
+   return _IO_flush_all_lockp (1);
+@@ -884,7 +884,7 @@ _IO_flush_all ()
+ libc_hidden_def (_IO_flush_all)
+ 
+ void
+-_IO_flush_all_linebuffered ()
++_IO_flush_all_linebuffered (void)
+ {
+   struct _IO_FILE *fp;
+   int last_stamp;
+@@ -1009,7 +1009,7 @@ libc_freeres_fn (buffer_free)
+ 
+ 
+ int
+-_IO_cleanup ()
++_IO_cleanup (void)
+ {
+   /* We do *not* want locking.  Some threads might use streams but
+      that is their problem, we flush them underneath them.  */
+@@ -1269,14 +1269,14 @@ _IO_default_imbue (fp, locale)
+ }
+ 
+ _IO_ITER
+-_IO_iter_begin()
++_IO_iter_begin (void)
+ {
+   return (_IO_ITER) _IO_list_all;
+ }
+ libc_hidden_def (_IO_iter_begin)
+ 
+ _IO_ITER
+-_IO_iter_end()
++_IO_iter_end (void)
+ {
+   return NULL;
+ }
+@@ -1299,7 +1299,7 @@ _IO_iter_file(iter)
+ libc_hidden_def (_IO_iter_file)
+ 
+ void
+-_IO_list_lock()
++_IO_list_lock (void)
+ {
+ #ifdef _IO_MTSAFE_IO
+   _IO_lock_lock (list_all_lock);
+@@ -1308,7 +1308,7 @@ _IO_list_lock()
+ libc_hidden_def (_IO_list_lock)
+ 
+ void
+-_IO_list_unlock()
++_IO_list_unlock (void)
+ {
+ #ifdef _IO_MTSAFE_IO
+   _IO_lock_unlock (list_all_lock);
+@@ -1317,7 +1317,7 @@ _IO_list_unlock()
+ libc_hidden_def (_IO_list_unlock)
+ 
+ void
+-_IO_list_resetlock()
++_IO_list_resetlock (void)
+ {
+ #ifdef _IO_MTSAFE_IO
+   _IO_lock_init (list_all_lock);
+diff --git a/libio/getchar.c b/libio/getchar.c
+index 3e35a0e524ef5236..d34398e69b9d42c2 100644
+--- a/libio/getchar.c
++++ b/libio/getchar.c
+@@ -30,7 +30,7 @@
+ #undef getchar
+ 
+ int
+-getchar ()
++getchar (void)
+ {
+   int result;
+   _IO_acquire_lock (_IO_stdin);
+diff --git a/libio/getchar_u.c b/libio/getchar_u.c
+index de0d1498737bb36a..4821163a486c8474 100644
+--- a/libio/getchar_u.c
++++ b/libio/getchar_u.c
+@@ -30,7 +30,7 @@
+ #undef getchar_unlocked
+ 
+ int
+-getchar_unlocked ()
++getchar_unlocked (void)
+ {
+   return _IO_getc_unlocked (_IO_stdin);
+ }
+diff --git a/libio/getwchar.c b/libio/getwchar.c
+index 8a9cb5cde21b5dfa..8344998f6fd2de65 100644
+--- a/libio/getwchar.c
++++ b/libio/getwchar.c
+@@ -30,7 +30,7 @@
+ #undef getwchar
+ 
+ wint_t
+-getwchar ()
++getwchar (void)
+ {
+   wint_t result;
+   _IO_acquire_lock (_IO_stdin);
+diff --git a/libio/getwchar_u.c b/libio/getwchar_u.c
+index 4ac335b4fce84b7a..a395fd6e78309944 100644
+--- a/libio/getwchar_u.c
++++ b/libio/getwchar_u.c
+@@ -30,7 +30,7 @@
+ #undef getwchar_unlocked
+ 
+ wint_t
+-getwchar_unlocked ()
++getwchar_unlocked (void)
+ {
+   return _IO_getwc_unlocked (_IO_stdin);
+ }
+diff --git a/libio/oldstdfiles.c b/libio/oldstdfiles.c
+index 5a67d73e27cc7e3b..870cb0536c52024f 100644
+--- a/libio/oldstdfiles.c
++++ b/libio/oldstdfiles.c
+@@ -73,7 +73,7 @@ static void _IO_check_libio (void) __THROW __attribute__ ((constructor));
+    _IO_list_all accordingly. */
+ 
+ static void
+-_IO_check_libio ()
++_IO_check_libio (void)
+ {
+   if (&_IO_stdin_used == NULL)
+     {
+diff --git a/login/getpt.c b/login/getpt.c
+index 4b9b037b986de2cc..89293d8cdf8d9523 100644
+--- a/login/getpt.c
++++ b/login/getpt.c
+@@ -22,7 +22,7 @@
+ /* Open the master side of a pseudoterminal and return its file
+    descriptor, or -1 on error. */
+ int
+-__getpt ()
++__getpt (void)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/login/tst-utmp.c b/login/tst-utmp.c
+index cce79b4980ed4841..7cc39cb2b7ff2dba 100644
+--- a/login/tst-utmp.c
++++ b/login/tst-utmp.c
+@@ -395,7 +395,7 @@ do_test (int argc, char *argv[])
+ 
+ /* No field 'ut_type' in struct utmp.  */
+ int
+-main ()
++main (void)
+ {
+   return 0;
+ }
+diff --git a/malloc/hooks.c b/malloc/hooks.c
+index a63668fdd07e89ef..e7bfb7e002b4fcdc 100644
+--- a/malloc/hooks.c
++++ b/malloc/hooks.c
+@@ -69,7 +69,7 @@ static int disallow_malloc_check;
+ 
+ /* Activate a standard set of debugging hooks. */
+ void
+-__malloc_check_init()
++__malloc_check_init (void)
+ {
+   if (disallow_malloc_check) {
+     disallow_malloc_check = 0;
+diff --git a/malloc/malloc.c b/malloc/malloc.c
+index cad40661cd0a6b8a..fc86b344ee3b3a7c 100644
+--- a/malloc/malloc.c
++++ b/malloc/malloc.c
+@@ -4708,7 +4708,7 @@ struct mallinfo __libc_mallinfo()
+ */
+ 
+ void
+-__malloc_stats()
++__malloc_stats (void)
+ {
+   int i;
+   mstate ar_ptr;
+diff --git a/malloc/mtrace.c b/malloc/mtrace.c
+index 0a26ccc65d81bd2a..34ec2a85b219882c 100644
+--- a/malloc/mtrace.c
++++ b/malloc/mtrace.c
+@@ -72,7 +72,7 @@ static __ptr_t (*tr_old_memalign_hook) (size_t __alignment, size_t __size,
+ extern void tr_break (void) __THROW;
+ libc_hidden_proto (tr_break)
+ void
+-tr_break ()
++tr_break (void)
+ {
+ }
+ libc_hidden_def (tr_break)
+@@ -293,7 +293,7 @@ release_libc_mem (void)
+    don't forget to set a breakpoint on tr_break!  */
+ 
+ void
+-mtrace ()
++mtrace (void)
+ {
+ #ifdef _LIBC
+   static int added_atexit_handler;
+@@ -358,7 +358,7 @@ mtrace ()
+ }
+ 
+ void
+-muntrace ()
++muntrace (void)
+ {
+   if (mallstream == NULL)
+     return;
+diff --git a/misc/fstab.c b/misc/fstab.c
+index d53845a9087771ec..86680466938ecc04 100644
+--- a/misc/fstab.c
++++ b/misc/fstab.c
+@@ -96,7 +96,7 @@ getfsfile (name)
+ 
+ 
+ void
+-endfsent ()
++endfsent (void)
+ {
+   struct fstab_state *state;
+ 
+diff --git a/misc/getclktck.c b/misc/getclktck.c
+index fe8e1338b11f19b9..5f9918c0121c02e5 100644
+--- a/misc/getclktck.c
++++ b/misc/getclktck.c
+@@ -19,7 +19,7 @@
+ 
+ /* Return frequency of times().  */
+ int
+-__getclktck ()
++__getclktck (void)
+ {
+ #ifdef	CLK_TCK
+   return CLK_TCK;
+diff --git a/misc/getdtsz.c b/misc/getdtsz.c
+index 7c6f7e633998daee..5c08127f82ee10dd 100644
+--- a/misc/getdtsz.c
++++ b/misc/getdtsz.c
+@@ -21,7 +21,7 @@
+ /* Return the maximum number of file descriptors
+    the current process could possibly have.  */
+ int
+-__getdtablesize ()
++__getdtablesize (void)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/misc/gethostid.c b/misc/gethostid.c
+index 876c83c691994d92..09e2e6bf76a55b41 100644
+--- a/misc/gethostid.c
++++ b/misc/gethostid.c
+@@ -20,7 +20,7 @@
+ 
+ /* Return the current machine's Internet number.  */
+ long int
+-gethostid ()
++gethostid (void)
+ {
+   __set_errno (ENOSYS);
+   return -1L;
+diff --git a/misc/getpagesize.c b/misc/getpagesize.c
+index 6d3821aef1be0a45..1374a208511a47e3 100644
+--- a/misc/getpagesize.c
++++ b/misc/getpagesize.c
+@@ -20,7 +20,7 @@
+ 
+ /* Return the system page size.  */
+ int
+-__getpagesize ()
++__getpagesize (void)
+ {
+   __set_errno (ENOSYS);
+   return 0;
+diff --git a/misc/getsysstats.c b/misc/getsysstats.c
+index c5ce2fdb9fec724a..9ad2ad22c32c7f10 100644
+--- a/misc/getsysstats.c
++++ b/misc/getsysstats.c
+@@ -21,7 +21,7 @@
+ #include <sys/sysinfo.h>
+ 
+ int
+-__get_nprocs_conf ()
++__get_nprocs_conf (void)
+ {
+   /* We don't know how to determine the number.  Simply return always 1.  */
+   return 1;
+@@ -33,7 +33,7 @@ link_warning (get_nprocs_conf, "warning: get_nprocs_conf will always return 1")
+ 
+ 
+ int
+-__get_nprocs ()
++__get_nprocs (void)
+ {
+   /* We don't know how to determine the number.  Simply return always 1.  */
+   return 1;
+@@ -44,7 +44,7 @@ link_warning (get_nprocs, "warning: get_nprocs will always return 1")
+ 
+ 
+ long int
+-__get_phys_pages ()
++__get_phys_pages (void)
+ {
+   /* We have no general way to determine this value.  */
+   __set_errno (ENOSYS);
+@@ -56,7 +56,7 @@ stub_warning (get_phys_pages)
+ 
+ 
+ long int
+-__get_avphys_pages ()
++__get_avphys_pages (void)
+ {
+   /* We have no general way to determine this value.  */
+   __set_errno (ENOSYS);
+diff --git a/misc/getttyent.c b/misc/getttyent.c
+index 18944e2b99150aea..864f65f523de2522 100644
+--- a/misc/getttyent.c
++++ b/misc/getttyent.c
+@@ -61,7 +61,7 @@ static char *skip (char *) __THROW internal_function;
+ static char *value (char *) __THROW internal_function;
+ 
+ struct ttyent *
+-getttyent()
++getttyent (void)
+ {
+ 	static struct ttyent tty;
+ 	int c;
+@@ -184,7 +184,7 @@ value(p)
+ }
+ 
+ int
+-setttyent()
++setttyent (void)
+ {
+ 
+ 	if (tf) {
+@@ -200,7 +200,7 @@ setttyent()
+ libc_hidden_def (setttyent)
+ 
+ int
+-endttyent()
++endttyent (void)
+ {
+ 	int rval;
+ 
+diff --git a/misc/getusershell.c b/misc/getusershell.c
+index 677377c3f7fb9081..fc2c43b771439c08 100644
+--- a/misc/getusershell.c
++++ b/misc/getusershell.c
+@@ -62,7 +62,7 @@ static char **initshells (void) __THROW;
+  * Get a list of shells from _PATH_SHELLS, if it exists.
+  */
+ char *
+-getusershell()
++getusershell (void)
+ {
+ 	char *ret;
+ 
+@@ -75,7 +75,7 @@ getusershell()
+ }
+ 
+ void
+-endusershell()
++endusershell (void)
+ {
+ 
+ 	free(shells);
+@@ -86,14 +86,14 @@ endusershell()
+ }
+ 
+ void
+-setusershell()
++setusershell (void)
+ {
+ 
+ 	curshell = initshells();
+ }
+ 
+ static char **
+-initshells()
++initshells (void)
+ {
+ 	char **sp, *cp;
+ 	FILE *fp;
+diff --git a/misc/hsearch.c b/misc/hsearch.c
+index 928b192a5df9197c..26d12a96939f64d6 100644
+--- a/misc/hsearch.c
++++ b/misc/hsearch.c
+@@ -45,7 +45,7 @@ hcreate (nel)
+ 
+ 
+ void
+-__hdestroy ()
++__hdestroy (void)
+ {
+   hdestroy_r (&htab);
+ }
+diff --git a/misc/sync.c b/misc/sync.c
+index 01a1696ce2e1d5e5..d71d4334368d3e2e 100644
+--- a/misc/sync.c
++++ b/misc/sync.c
+@@ -20,7 +20,7 @@
+ 
+ /* Make all changes done to all files actually appear on disk.  */
+ void
+-sync ()
++sync (void)
+ {
+   __set_errno (ENOSYS);
+ }
+diff --git a/misc/syslog.c b/misc/syslog.c
+index 4976e89b6ea56364..70daa9e1f3b7b745 100644
+--- a/misc/syslog.c
++++ b/misc/syslog.c
+@@ -425,7 +425,7 @@ sigpipe_handler (int signo)
+ #endif
+ 
+ static void
+-closelog_internal()
++closelog_internal (void)
+ {
+   if (!connected)
+     return;
+@@ -436,7 +436,7 @@ closelog_internal()
+ }
+ 
+ void
+-closelog ()
++closelog (void)
+ {
+   /* Protect against multiple users and cancellation.  */
+   __libc_cleanup_push (cancel_handler, NULL);
+diff --git a/misc/ttyslot.c b/misc/ttyslot.c
+index 75ca6a2d42d2c79d..9c69589daee2b164 100644
+--- a/misc/ttyslot.c
++++ b/misc/ttyslot.c
+@@ -38,7 +38,7 @@ static char sccsid[] = "@(#)ttyslot.c	8.1 (Berkeley) 6/4/93";
+ #include <unistd.h>
+ 
+ int
+-ttyslot()
++ttyslot (void)
+ {
+ 	struct ttyent *ttyp;
+ 	int slot;
+diff --git a/misc/vhangup.c b/misc/vhangup.c
+index 0d8ce287c999e08f..1f86262f9c9fcd56 100644
+--- a/misc/vhangup.c
++++ b/misc/vhangup.c
+@@ -22,7 +22,7 @@
+    with the control terminal, and then send a SIGHUP signal to the process
+    group of the control terminal.  */
+ int
+-vhangup ()
++vhangup (void)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/ports/sysdeps/unix/sysv/linux/ia64/getpagesize.c b/ports/sysdeps/unix/sysv/linux/ia64/getpagesize.c
+index ade9123a3a79d621..007cc09646352fdb 100644
+--- a/ports/sysdeps/unix/sysv/linux/ia64/getpagesize.c
++++ b/ports/sysdeps/unix/sysv/linux/ia64/getpagesize.c
+@@ -29,7 +29,7 @@
+    as mmap and friends.  --davidm 99/11/30 */
+ 
+ int
+-__getpagesize ()
++__getpagesize (void)
+ {
+   assert (GLRO(dl_pagesize) != 0);
+   return GLRO(dl_pagesize);
+diff --git a/ports/sysdeps/unix/sysv/linux/m68k/getpagesize.c b/ports/sysdeps/unix/sysv/linux/m68k/getpagesize.c
+index 9e6000a196e3fe70..c50bc00a21a59020 100644
+--- a/ports/sysdeps/unix/sysv/linux/m68k/getpagesize.c
++++ b/ports/sysdeps/unix/sysv/linux/m68k/getpagesize.c
+@@ -26,7 +26,7 @@
+ 
+ /* Return the system page size.  */
+ int
+-__getpagesize ()
++__getpagesize (void)
+ {
+ #ifdef __NR_getpagesize
+   int result;
+diff --git a/posix/fork.c b/posix/fork.c
+index 08c69b69bd9cbbe3..107b76e293c155ad 100644
+--- a/posix/fork.c
++++ b/posix/fork.c
+@@ -23,7 +23,7 @@
+    Return -1 for errors, 0 to the new process,
+    and the process ID of the new process to the old process.  */
+ int
+-__fork ()
++__fork (void)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/posix/getegid.c b/posix/getegid.c
+index 6692bc0837ec0066..1cffdc4e10b8e749 100644
+--- a/posix/getegid.c
++++ b/posix/getegid.c
+@@ -20,7 +20,7 @@
+ 
+ /* Get the effective group ID of the calling process.  */
+ __gid_t
+-__getegid ()
++__getegid (void)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/posix/geteuid.c b/posix/geteuid.c
+index eb59db35d88d522a..9e2087babc4dc02c 100644
+--- a/posix/geteuid.c
++++ b/posix/geteuid.c
+@@ -21,7 +21,7 @@
+ 
+ /* Get the effective user ID of the calling process.  */
+ __uid_t
+-__geteuid ()
++__geteuid (void)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/posix/getgid.c b/posix/getgid.c
+index 54c7d18705c971a5..464f03f9b2727d0d 100644
+--- a/posix/getgid.c
++++ b/posix/getgid.c
+@@ -21,7 +21,7 @@
+ 
+ /* Get the real group ID of the calling process.  */
+ gid_t
+-__getgid ()
++__getgid (void)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/posix/getpid.c b/posix/getpid.c
+index 3c3bb6a2afe4d5c5..5b5f11b0c091fe0a 100644
+--- a/posix/getpid.c
++++ b/posix/getpid.c
+@@ -20,7 +20,7 @@
+ 
+ /* Get the process ID of the calling process.  */
+ int
+-__getpid ()
++__getpid (void)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/posix/getppid.c b/posix/getppid.c
+index 92c8b9b6dfca4592..7e3baacce8b98140 100644
+--- a/posix/getppid.c
++++ b/posix/getppid.c
+@@ -21,7 +21,7 @@
+ 
+ /* Get the parent process ID of the calling process.  */
+ int
+-__getppid ()
++__getppid (void)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/posix/getuid.c b/posix/getuid.c
+index 2afbe583fd76f520..c16a72a4ae5182cc 100644
+--- a/posix/getuid.c
++++ b/posix/getuid.c
+@@ -21,7 +21,7 @@
+ 
+ /* Get the real user ID of the calling process.  */
+ uid_t
+-__getuid ()
++__getuid (void)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/posix/pause.c b/posix/pause.c
+index 095051002bb62799..6440f68562dc07b0 100644
+--- a/posix/pause.c
++++ b/posix/pause.c
+@@ -23,7 +23,7 @@
+    This is supposed to always return -1 and set errno to EINTR,
+    but rules were meant to be broken.  */
+ int
+-pause ()
++pause (void)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/posix/setpgrp.c b/posix/setpgrp.c
+index 3f89a3218e6089de..31ff59518a966340 100644
+--- a/posix/setpgrp.c
++++ b/posix/setpgrp.c
+@@ -18,7 +18,7 @@
+ #include <unistd.h>
+ 
+ int
+-setpgrp ()
++setpgrp (void)
+ {
+   return __setpgid (0, 0);
+ }
+diff --git a/posix/setsid.c b/posix/setsid.c
+index a4f05254e136ba5e..5ccc2d6710dd7ac2 100644
+--- a/posix/setsid.c
++++ b/posix/setsid.c
+@@ -23,7 +23,7 @@
+    The process group IDs of the session and the calling process
+    are set to the process ID of the calling process, which is returned.  */
+ int
+-__setsid ()
++__setsid (void)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/posix/test-vfork.c b/posix/test-vfork.c
+index c4904e36e130d928..6dfb7d47e36a65eb 100644
+--- a/posix/test-vfork.c
++++ b/posix/test-vfork.c
+@@ -37,6 +37,6 @@ main (void)
+ }
+ 
+ void
+-noop ()
++noop (void)
+ {
+ }
+diff --git a/stdlib/drand48.c b/stdlib/drand48.c
+index 9b54e4bc0db1eca1..d70e8ebaa0b611ad 100644
+--- a/stdlib/drand48.c
++++ b/stdlib/drand48.c
+@@ -20,7 +20,7 @@
+ 
+ 
+ double
+-drand48 ()
++drand48 (void)
+ {
+   double result;
+ 
+diff --git a/stdlib/lrand48.c b/stdlib/lrand48.c
+index e38ce91dd2b46306..70db2ab852dbc09d 100644
+--- a/stdlib/lrand48.c
++++ b/stdlib/lrand48.c
+@@ -20,7 +20,7 @@
+ 
+ 
+ long int
+-lrand48 ()
++lrand48 (void)
+ {
+   long int result;
+ 
+diff --git a/stdlib/mrand48.c b/stdlib/mrand48.c
+index 248781b767da3786..d2257bd542312ad8 100644
+--- a/stdlib/mrand48.c
++++ b/stdlib/mrand48.c
+@@ -20,7 +20,7 @@
+ 
+ 
+ long int
+-mrand48 ()
++mrand48 (void)
+ {
+   long int result;
+ 
+diff --git a/stdlib/rand.c b/stdlib/rand.c
+index 92916e833f7fc94a..15b2a647dcaea6a4 100644
+--- a/stdlib/rand.c
++++ b/stdlib/rand.c
+@@ -22,7 +22,7 @@
+ 
+ /* Return a random integer between 0 and RAND_MAX.  */
+ int
+-rand ()
++rand (void)
+ {
+   return (int) __random ();
+ }
+diff --git a/stdlib/random.c b/stdlib/random.c
+index ff6bdd2b5d5a8f76..537555c90098d426 100644
+--- a/stdlib/random.c
++++ b/stdlib/random.c
+@@ -288,7 +288,7 @@ weak_alias (__setstate, setstate)
+    pointer if the front one has wrapped.  Returns a 31-bit random number.  */
+ 
+ long int
+-__random ()
++__random (void)
+ {
+   int32_t retval;
+ 
+diff --git a/stdlib/setenv.c b/stdlib/setenv.c
+index 6185c69243464623..56b9bc67d93cbcc0 100644
+--- a/stdlib/setenv.c
++++ b/stdlib/setenv.c
+@@ -349,7 +349,7 @@ unsetenv (name)
+    never made it.  Nevertheless the POSIX.9 standard (POSIX bindings
+    for Fortran 77) requires this function.  */
+ int
+-clearenv ()
++clearenv (void)
+ {
+   LOCK;
+ 
+diff --git a/sunrpc/clnt_tcp.c b/sunrpc/clnt_tcp.c
+index ec85930e44730415..b46905fb06eb2a49 100644
+--- a/sunrpc/clnt_tcp.c
++++ b/sunrpc/clnt_tcp.c
+@@ -356,7 +356,7 @@ clnttcp_freeres (cl, xdr_res, res_ptr)
+ }
+ 
+ static void
+-clnttcp_abort ()
++clnttcp_abort (void)
+ {
+ }
+ 
+diff --git a/sunrpc/clnt_unix.c b/sunrpc/clnt_unix.c
+index 9b5d7ca82256290b..2ad81972561aa6b0 100644
+--- a/sunrpc/clnt_unix.c
++++ b/sunrpc/clnt_unix.c
+@@ -330,7 +330,7 @@ clntunix_freeres (cl, xdr_res, res_ptr)
+ }
+ 
+ static void
+-clntunix_abort ()
++clntunix_abort (void)
+ {
+ }
+ 
+diff --git a/sysdeps/mach/getpagesize.c b/sysdeps/mach/getpagesize.c
+index a4c59715acdc46f9..7586ffd455ae8a6d 100644
+--- a/sysdeps/mach/getpagesize.c
++++ b/sysdeps/mach/getpagesize.c
+@@ -20,7 +20,7 @@
+ 
+ /* Return the system page size.  */
+ int
+-__getpagesize ()
++__getpagesize (void)
+ {
+   return __vm_page_size;
+ }
+diff --git a/sysdeps/mach/getsysstats.c b/sysdeps/mach/getsysstats.c
+index 4820b35113aca031..8765004d9b48185d 100644
+--- a/sysdeps/mach/getsysstats.c
++++ b/sysdeps/mach/getsysstats.c
+@@ -24,7 +24,7 @@
+ 
+ /* Return the number of processors configured on the system. */
+ int
+-__get_nprocs_conf ()
++__get_nprocs_conf (void)
+ {
+   struct host_basic_info hbi;
+   kern_return_t err;
+@@ -43,7 +43,7 @@ weak_alias (__get_nprocs_conf, get_nprocs_conf)
+ 
+ /* Return the number of processors currently available on the system. */
+ int
+-__get_nprocs ()
++__get_nprocs (void)
+ {
+   struct host_basic_info hbi;
+   kern_return_t err;
+@@ -62,7 +62,7 @@ weak_alias (__get_nprocs, get_nprocs)
+ 
+ /* Return the number of physical pages on the system. */
+ long int
+-__get_phys_pages ()
++__get_phys_pages (void)
+ {
+   struct host_basic_info hbi;
+   kern_return_t err;
+@@ -81,7 +81,7 @@ weak_alias (__get_phys_pages, get_phys_pages)
+ 
+ /* Return the number of available physical pages */
+ long int
+-__get_avphys_pages ()
++__get_avphys_pages (void)
+ {
+   vm_statistics_data_t vs;
+   kern_return_t err;
+diff --git a/sysdeps/mach/hurd/dl-sysdep.c b/sysdeps/mach/hurd/dl-sysdep.c
+index 4eefe3af04f845c3..c3f31e2c8eb6bc2f 100644
+--- a/sysdeps/mach/hurd/dl-sysdep.c
++++ b/sysdeps/mach/hurd/dl-sysdep.c
+@@ -554,7 +554,7 @@ __access (const char *file, int type)
+ }
+ 
+ pid_t weak_function
+-__getpid ()
++__getpid (void)
+ {
+   pid_t pid, ppid;
+   int orphaned;
+diff --git a/sysdeps/mach/hurd/getclktck.c b/sysdeps/mach/hurd/getclktck.c
+index 5ea4781c1b40cade..d3cebc17778a3633 100644
+--- a/sysdeps/mach/hurd/getclktck.c
++++ b/sysdeps/mach/hurd/getclktck.c
+@@ -21,7 +21,7 @@
+ /* Return frequency of `times'.
+    Since Mach reports CPU times in microseconds, we always use 1 million.  */
+ int
+-__getclktck ()
++__getclktck (void)
+ {
+   return 1000000;
+ }
+diff --git a/sysdeps/mach/hurd/getdtsz.c b/sysdeps/mach/hurd/getdtsz.c
+index 9c754a79041f31ec..527a0e3130cc52a3 100644
+--- a/sysdeps/mach/hurd/getdtsz.c
++++ b/sysdeps/mach/hurd/getdtsz.c
+@@ -24,7 +24,7 @@
+ /* Return the maximum number of file descriptors the current process
+    could possibly have (until it raises the resource limit).  */
+ int
+-__getdtablesize ()
++__getdtablesize (void)
+ {
+   rlim_t limit;
+ 
+diff --git a/sysdeps/mach/hurd/getegid.c b/sysdeps/mach/hurd/getegid.c
+index cb1955356bba6304..8e63d640ca917688 100644
+--- a/sysdeps/mach/hurd/getegid.c
++++ b/sysdeps/mach/hurd/getegid.c
+@@ -22,7 +22,7 @@
+ 
+ /* Get the effective group ID of the calling process.  */
+ gid_t
+-__getegid ()
++__getegid (void)
+ {
+   error_t err;
+   gid_t egid;
+diff --git a/sysdeps/mach/hurd/geteuid.c b/sysdeps/mach/hurd/geteuid.c
+index 4bcf6f56acedc2aa..5b5228958d9733a0 100644
+--- a/sysdeps/mach/hurd/geteuid.c
++++ b/sysdeps/mach/hurd/geteuid.c
+@@ -22,7 +22,7 @@
+ 
+ /* Get the effective user ID of the calling process.  */
+ uid_t
+-__geteuid ()
++__geteuid (void)
+ {
+   error_t err;
+   uid_t euid;
+diff --git a/sysdeps/mach/hurd/getgid.c b/sysdeps/mach/hurd/getgid.c
+index a479ddf41429ecf2..0c297c392d69ee6d 100644
+--- a/sysdeps/mach/hurd/getgid.c
++++ b/sysdeps/mach/hurd/getgid.c
+@@ -22,7 +22,7 @@
+ 
+ /* Get the real group ID of the calling process.  */
+ gid_t
+-__getgid ()
++__getgid (void)
+ {
+   error_t err;
+   gid_t gid;
+diff --git a/sysdeps/mach/hurd/gethostid.c b/sysdeps/mach/hurd/gethostid.c
+index 0a8bbbe1b9b4ee52..4265b9574e7d97c2 100644
+--- a/sysdeps/mach/hurd/gethostid.c
++++ b/sysdeps/mach/hurd/gethostid.c
+@@ -21,7 +21,7 @@
+ 
+ /* Return the current machine's Internet number.  */
+ long int
+-gethostid ()
++gethostid (void)
+ {
+   /* The hostid is just the contents of the file /etc/hostid,
+      kept as text of hexadecimal digits.  */
+diff --git a/sysdeps/mach/hurd/getlogin.c b/sysdeps/mach/hurd/getlogin.c
+index 0f94c631a927ce68..83d1bfca649b70ef 100644
+--- a/sysdeps/mach/hurd/getlogin.c
++++ b/sysdeps/mach/hurd/getlogin.c
+@@ -23,7 +23,7 @@
+ /* Return the login name of the user, or NULL if it can't be determined.
+    The returned pointer, if not NULL, is good only until the next call.  */
+ char *
+-getlogin ()
++getlogin (void)
+ {
+   static char login[1024];	/* XXX */
+   error_t err;
+diff --git a/sysdeps/mach/hurd/getpid.c b/sysdeps/mach/hurd/getpid.c
+index 4698f3ce729f82b0..89c2dc138b90be5b 100644
+--- a/sysdeps/mach/hurd/getpid.c
++++ b/sysdeps/mach/hurd/getpid.c
+@@ -21,7 +21,7 @@
+ 
+ /* Get the process ID of the calling process.  */
+ pid_t
+-__getpid ()
++__getpid (void)
+ {
+   /* Assumes atomic word fetch and store, so doesn't lock _hurd_pid_lock.  */
+   return _hurd_pid;
+diff --git a/sysdeps/mach/hurd/getppid.c b/sysdeps/mach/hurd/getppid.c
+index a775b7a73e486cdc..4a8bca8d4a155197 100644
+--- a/sysdeps/mach/hurd/getppid.c
++++ b/sysdeps/mach/hurd/getppid.c
+@@ -23,7 +23,7 @@
+ 
+ /* Get the parent process ID of the calling process.  */
+ pid_t
+-__getppid ()
++__getppid (void)
+ {
+   /* Assumes atomic word fetch and store, so doesn't lock _hurd_pid_lock.  */
+   return _hurd_ppid;
+diff --git a/sysdeps/mach/hurd/getuid.c b/sysdeps/mach/hurd/getuid.c
+index b9feb903964b734e..e6d047a2bb281584 100644
+--- a/sysdeps/mach/hurd/getuid.c
++++ b/sysdeps/mach/hurd/getuid.c
+@@ -22,7 +22,7 @@
+ 
+ /* Get the real user ID of the calling process.  */
+ uid_t
+-__getuid ()
++__getuid (void)
+ {
+   error_t err;
+   uid_t uid;
+diff --git a/sysdeps/mach/hurd/sync.c b/sysdeps/mach/hurd/sync.c
+index 4042cb1625b8dbfa..e97aed373c982e2c 100644
+--- a/sysdeps/mach/hurd/sync.c
++++ b/sysdeps/mach/hurd/sync.c
+@@ -21,7 +21,7 @@
+ 
+ /* Make all changes done to all files actually appear on disk.  */
+ void
+-sync ()
++sync (void)
+ {
+   /* This is not actually synchronous; we don't wait.  */
+   error_t err = __USEPORT (CRDIR, __file_syncfs (port, 0, 1));
+diff --git a/sysdeps/posix/clock.c b/sysdeps/posix/clock.c
+index f670a35a6e5b2db1..78ee5806bf53293c 100644
+--- a/sysdeps/posix/clock.c
++++ b/sysdeps/posix/clock.c
+@@ -20,7 +20,7 @@
+ 
+ /* Return the time used by the program so far (user time + system time).  */
+ clock_t
+-clock ()
++clock (void)
+ {
+   struct tms buf;
+ 
+diff --git a/sysdeps/unix/bsd/setsid.c b/sysdeps/unix/bsd/setsid.c
+index dbad2711ce78ceda..ac8930eefa8b46e2 100644
+--- a/sysdeps/unix/bsd/setsid.c
++++ b/sysdeps/unix/bsd/setsid.c
+@@ -25,7 +25,7 @@
+    The process group IDs of the session and the calling process
+    are set to the process ID of the calling process, which is returned.  */
+ int
+-__setsid ()
++__setsid (void)
+ {
+   pid_t pid = getpid ();
+   int tty;
+diff --git a/sysdeps/unix/getpagesize.c b/sysdeps/unix/getpagesize.c
+index bcd5dca4aa634e0f..68d18ec47cdfb815 100644
+--- a/sysdeps/unix/getpagesize.c
++++ b/sysdeps/unix/getpagesize.c
+@@ -20,7 +20,7 @@
+ 
+ /* Return the system page size.  */
+ int
+-__getpagesize ()
++__getpagesize (void)
+ {
+ #ifdef	EXEC_PAGESIZE
+   return EXEC_PAGESIZE;
+diff --git a/sysdeps/unix/sysv/linux/getclktck.c b/sysdeps/unix/sysv/linux/getclktck.c
+index 3866bf9aa56bb95a..a1e036ebeb0372b9 100644
+--- a/sysdeps/unix/sysv/linux/getclktck.c
++++ b/sysdeps/unix/sysv/linux/getclktck.c
+@@ -25,7 +25,7 @@
+ 
+ /* Return frequency of times().  */
+ int
+-__getclktck ()
++__getclktck (void)
+ {
+   return GLRO(dl_clktck) ?: SYSTEM_CLK_TCK;
+ }
+diff --git a/sysdeps/unix/sysv/linux/gethostid.c b/sysdeps/unix/sysv/linux/gethostid.c
+index 9441bb2f9b313c6d..c9f4b4cbcbad6bdb 100644
+--- a/sysdeps/unix/sysv/linux/gethostid.c
++++ b/sysdeps/unix/sysv/linux/gethostid.c
+@@ -67,7 +67,7 @@ sethostid (id)
+ # include <netinet/in.h>
+ 
+ long int
+-gethostid ()
++gethostid (void)
+ {
+   char hostname[MAXHOSTNAMELEN + 1];
+   size_t buflen;
+diff --git a/sysdeps/unix/sysv/linux/getpagesize.c b/sysdeps/unix/sysv/linux/getpagesize.c
+index a09bda8c9a527aa3..420e97235118efd0 100644
+--- a/sysdeps/unix/sysv/linux/getpagesize.c
++++ b/sysdeps/unix/sysv/linux/getpagesize.c
+@@ -25,7 +25,7 @@
+ 
+ /* Return the system page size.  */
+ int
+-__getpagesize ()
++__getpagesize (void)
+ {
+   assert (GLRO(dl_pagesize) != 0);
+   return GLRO(dl_pagesize);
+diff --git a/sysdeps/unix/sysv/linux/getsysstats.c b/sysdeps/unix/sysv/linux/getsysstats.c
+index 9082b1a7ab29a9f9..7478e735c6333104 100644
+--- a/sysdeps/unix/sysv/linux/getsysstats.c
++++ b/sysdeps/unix/sysv/linux/getsysstats.c
+@@ -124,7 +124,7 @@ next_line (int fd, char *const buffer, char **cp, char **re,
+ 
+ 
+ int
+-__get_nprocs ()
++__get_nprocs (void)
+ {
+   static int cached_result;
+   static time_t timestamp;
+@@ -234,7 +234,7 @@ weak_alias (__get_nprocs, get_nprocs)
+ /* On some architectures it is possible to distinguish between configured
+    and active cpus.  */
+ int
+-__get_nprocs_conf ()
++__get_nprocs_conf (void)
+ {
+   /* XXX Here will come a test for the new system call.  */
+ 
+@@ -333,7 +333,7 @@ phys_pages_info (const char *format)
+    But not all systems have support for the /proc filesystem.  If it
+    is not available we return -1 as an error signal.  */
+ long int
+-__get_phys_pages ()
++__get_phys_pages (void)
+ {
+   /* XXX Here will come a test for the new system call.  */
+ 
+@@ -354,7 +354,7 @@ weak_alias (__get_phys_pages, get_phys_pages)
+    But not all systems have support for the /proc filesystem.  If it
+    is not available we return -1 as an error signal.  */
+ long int
+-__get_avphys_pages ()
++__get_avphys_pages (void)
+ {
+   /* XXX Here will come a test for the new system call.  */
+ 
+diff --git a/time/clock.c b/time/clock.c
+index 2e10fd3e3aaa1561..918a97c4d3077fe4 100644
+--- a/time/clock.c
++++ b/time/clock.c
+@@ -21,7 +21,7 @@
+ 
+ /* Return the time used by the program so far (user time + system time).  */
+ clock_t
+-clock ()
++clock (void)
+ {
+   __set_errno (ENOSYS);
+   return (clock_t) -1;
diff --git a/SOURCES/glibc-rh1505492-prototypes-4.patch b/SOURCES/glibc-rh1505492-prototypes-4.patch
new file mode 100644
index 0000000..d89789c
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-4.patch
@@ -0,0 +1,127 @@
+commit c13a72b7c4864f23b9f2e96a3369e5875ed3b51b
+Author: Will Newton <will.newton@linaro.org>
+Date:   Thu Feb 6 08:54:20 2014 +0000
+
+    malloc/mtrace.c: Cosmetic cleanup.
+    
+    Remove an unused #define and use ANSI prototypes.
+    
+    Generated code identical on x86_64-unknown-linux-gnu.
+    
+    ChangeLog:
+    
+    2014-02-11  Will Newton  <will.newton@linaro.org>
+    
+            * malloc/mtrace.c (attribute_hidden): Remove unused macro
+            definition.  (tr_where, tr_freehook, tr_mallochook,
+            tr_reallochook, tr_memalignhook): Use ANSI protoype.
+
+Conflicts:
+	malloc/mtrace.c
+
+Textual conflicts due to missing backport of commit
+6c8dbf00f536d78b1937b5af6f57be47fd376344 (Reformat malloc to gnu
+style.).
+
+diff --git a/malloc/mtrace.c b/malloc/mtrace.c
+index 34ec2a85b219882c..5c4deda5a55a799c 100644
+--- a/malloc/mtrace.c
++++ b/malloc/mtrace.c
+@@ -41,10 +41,6 @@
+ 
+ #include <kernel-features.h>
+ 
+-#ifndef attribute_hidden
+-# define attribute_hidden
+-#endif
+-
+ #define TRACE_BUFFER_SIZE 512
+ 
+ static FILE *mallstream;
+@@ -77,12 +73,8 @@ tr_break (void)
+ }
+ libc_hidden_def (tr_break)
+ 
+-static void tr_where (const __ptr_t, Dl_info *) __THROW internal_function;
+-static void
+-internal_function
+-tr_where (caller, info)
+-     const __ptr_t caller;
+-     Dl_info *info;
++static void internal_function
++tr_where (const __ptr_t caller, Dl_info *info)
+ {
+   if (caller != NULL)
+     {
+@@ -115,7 +107,6 @@ tr_where (caller, info)
+     }
+ }
+ 
+-
+ static Dl_info *
+ lock_and_info (const __ptr_t caller, Dl_info *mem)
+ {
+@@ -129,12 +120,8 @@ lock_and_info (const __ptr_t caller, Dl_info *mem)
+   return res;
+ }
+ 
+-
+-static void tr_freehook (__ptr_t, const __ptr_t) __THROW;
+ static void
+-tr_freehook (ptr, caller)
+-     __ptr_t ptr;
+-     const __ptr_t caller;
++tr_freehook (__ptr_t ptr, const __ptr_t caller)
+ {
+   if (ptr == NULL)
+     return;
+@@ -159,11 +146,8 @@ tr_freehook (ptr, caller)
+   __libc_lock_unlock (lock);
+ }
+ 
+-static __ptr_t tr_mallochook (size_t, const __ptr_t) __THROW;
+ static __ptr_t
+-tr_mallochook (size, caller)
+-     size_t size;
+-     const __ptr_t caller;
++tr_mallochook (size_t size, const __ptr_t caller)
+ {
+   __ptr_t hdr;
+ 
+@@ -189,13 +173,8 @@ tr_mallochook (size, caller)
+   return hdr;
+ }
+ 
+-static __ptr_t tr_reallochook (__ptr_t, size_t, const __ptr_t)
+-     __THROW;
+ static __ptr_t
+-tr_reallochook (ptr, size, caller)
+-     __ptr_t ptr;
+-     size_t size;
+-     const __ptr_t caller;
++tr_reallochook (__ptr_t ptr, size_t size, const __ptr_t caller)
+ {
+   __ptr_t hdr;
+ 
+@@ -237,12 +216,8 @@ tr_reallochook (ptr, size, caller)
+   return hdr;
+ }
+ 
+-static __ptr_t tr_memalignhook (size_t, size_t,
+-				const __ptr_t) __THROW;
+ static __ptr_t
+-tr_memalignhook (alignment, size, caller)
+-     size_t alignment, size;
+-     const __ptr_t caller;
++tr_memalignhook (size_t alignment, size_t size, const __ptr_t caller)
+ {
+   __ptr_t hdr;
+ 
+@@ -271,7 +246,6 @@ tr_memalignhook (alignment, size, caller)
+ }
+ 
+ 
+-
+ #ifdef _LIBC
+ 
+ /* This function gets called to make sure all memory the library
diff --git a/SOURCES/glibc-rh1505492-prototypes-5.patch b/SOURCES/glibc-rh1505492-prototypes-5.patch
new file mode 100644
index 0000000..70d8505
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-5.patch
@@ -0,0 +1,192 @@
+commit 8667f90ec51aa88146dce815a9105daf23d9bd07
+Author: Will Newton <will.newton@linaro.org>
+Date:   Mon Mar 31 13:47:56 2014 +0100
+
+    string: Cosmetic cleanup of string functions
+    
+    Clean up string functions that do not have a version in gnulib on
+    the assumption that glibc is the canonical upstream copy of this
+    code. basename has a copy in gnulib but it is largely written to
+    handle Windows paths so merging it is not really viable. The changes
+    mostly consist of switching to ANSI function prototypes and removing
+    unused includes.
+    
+    As many of these functions do not get built in a typical build due
+    to architecture optimized versions being used instead I built these
+    by hand to verify there were no build warnings and the code was
+    identical.
+    
+    2014-04-07  Will Newton  <will.newton@linaro.org>
+    
+            * string/basename.c [HAVE_CONFIG_H]: Remove #ifdef and
+            and contents.  [!_LIBC] Remove #ifndef and contents.
+            (basename): Use ANSI prototype.  [_LIBC] Remove #idef.
+            * string/memccpy.c (__memccpy): Use ANSI prototype.
+            * string/memfrob.c (memfrob): Likewise.
+            * string/strcoll.c (STRCOLL): Likewise.
+            * string/strlen.c (strlen): Likewise.
+            * string/strtok.c (STRTOK): Likewise.
+            * string/strcat.c: Remove unused #include of memcopy.h.
+            (strcat): Use ANSI prototype.
+            * string/strchr.c: Remove unused #include of memcopy.h.
+            (strchr): Use ANSI prototype.
+            * string/strcmp.c: Remove unused #include of memcopy.h.
+            (strcmp): Use ANSI prototype.
+            * string/strcpy.c: Remove unused #include of memcopy.h.
+            (strcpy): Use ANSI prototype.
+
+Conflicts:
+	string/strcat.c
+	string/strchr.c
+	string/strcmp.c
+	string/strlen.c
+
+Textual conflicts due to previous backports in glibc-rh1268008-*.patch.
+
+diff --git a/string/basename.c b/string/basename.c
+index c42b81c70fc761be..37fcebc56685e596 100644
+--- a/string/basename.c
++++ b/string/basename.c
+@@ -16,26 +16,12 @@
+    License along with the GNU C Library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+ 
+-#ifdef HAVE_CONFIG_H
+-# include <config.h>
+-#endif
+-
+ #include <string.h>
+ 
+-#ifndef _LIBC
+-/* We cannot generally use the name `basename' since XPG defines an unusable
+-   variant of the function but we cannot use it.  */
+-# define basename gnu_basename
+-#endif
+-
+-
+ char *
+-basename (filename)
+-     const char *filename;
++basename (const char *filename)
+ {
+   char *p = strrchr (filename, '/');
+   return p ? p + 1 : (char *) filename;
+ }
+-#ifdef _LIBC
+ libc_hidden_def (basename)
+-#endif
+diff --git a/string/memccpy.c b/string/memccpy.c
+index 64c3c0196845f102..b2e4e399b75b5d84 100644
+--- a/string/memccpy.c
++++ b/string/memccpy.c
+@@ -28,11 +28,7 @@
+    Return the position in DEST one byte past where C was copied, or
+    NULL if C was not found in the first N bytes of SRC.  */
+ void *
+-__memccpy (dest, src, c, n)
+-      void *dest;
+-      const void *src;
+-      int c;
+-      size_t n;
++__memccpy (void *dest, const void *src, int c, size_t n)
+ {
+   const char *s = src;
+   char *d = dest;
+diff --git a/string/memfrob.c b/string/memfrob.c
+index 6ef996ce3f70b642..320fae7e850dd05c 100644
+--- a/string/memfrob.c
++++ b/string/memfrob.c
+@@ -18,9 +18,7 @@
+ #include <string.h>
+ 
+ void *
+-memfrob (s, n)
+-     void *s;
+-     size_t n;
++memfrob (void *s, size_t n)
+ {
+   char *p = (char *) s;
+ 
+diff --git a/string/strcat.c b/string/strcat.c
+index 017bb41ebb490fbc..1ed18b5015e00a72 100644
+--- a/string/strcat.c
++++ b/string/strcat.c
+@@ -16,7 +16,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <string.h>
+-#include <memcopy.h>
+ 
+ #undef strcat
+ 
+diff --git a/string/strchr.c b/string/strchr.c
+index 69a9cd9b1bdd7368..9ca5bcd3496a5ee9 100644
+--- a/string/strchr.c
++++ b/string/strchr.c
+@@ -22,7 +22,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <string.h>
+-#include <memcopy.h>
+ #include <stdlib.h>
+ 
+ #undef strchr
+diff --git a/string/strcmp.c b/string/strcmp.c
+index 47fd2827ad9d64cf..cc96a99f7bb6ebcd 100644
+--- a/string/strcmp.c
++++ b/string/strcmp.c
+@@ -16,7 +16,6 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include <string.h>
+-#include <memcopy.h>
+ 
+ #undef strcmp
+ 
+@@ -28,9 +27,7 @@
+    greater than zero if S1 is lexicographically less than,
+    equal to or greater than S2.  */
+ int
+-STRCMP (p1, p2)
+-     const char *p1;
+-     const char *p2;
++STRCMP (const char *p1, const char *p2)
+ {
+   const unsigned char *s1 = (const unsigned char *) p1;
+   const unsigned char *s2 = (const unsigned char *) p2;
+diff --git a/string/strcoll.c b/string/strcoll.c
+index 02cb61e8e4f45d81..80a62f37d8640325 100644
+--- a/string/strcoll.c
++++ b/string/strcoll.c
+@@ -29,9 +29,7 @@
+ 
+ 
+ int
+-STRCOLL (s1, s2)
+-     const STRING_TYPE *s1;
+-     const STRING_TYPE *s2;
++STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2)
+ {
+   return STRCOLL_L (s1, s2, _NL_CURRENT_LOCALE);
+ }
+diff --git a/string/strcpy.c b/string/strcpy.c
+index 22467bb88dc8cef8..f726d6bd8993271c 100644
+--- a/string/strcpy.c
++++ b/string/strcpy.c
+@@ -17,15 +17,12 @@
+ 
+ #include <stddef.h>
+ #include <string.h>
+-#include <memcopy.h>
+ 
+ #undef strcpy
+ 
+ /* Copy SRC to DEST.  */
+ char *
+-strcpy (dest, src)
+-     char *dest;
+-     const char *src;
++strcpy (char *dest, const char *src)
+ {
+   char c;
+   char *s = (char *) src;
diff --git a/SOURCES/glibc-rh1505492-prototypes-6.patch b/SOURCES/glibc-rh1505492-prototypes-6.patch
new file mode 100644
index 0000000..2d62390
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-6.patch
@@ -0,0 +1,81 @@
+commit c079afb7724ce4b9ff2d6b1ca4d7e3cdebcbcd1f
+Author: Roland McGrath <roland@hack.frob.com>
+Date:   Fri Sep 12 14:58:55 2014 -0700
+
+    Don't use a nested function in rpmatch.
+
+diff --git a/stdlib/rpmatch.c b/stdlib/rpmatch.c
+index 31285879ee7e6ff6..8c6290551bae1bcf 100644
+--- a/stdlib/rpmatch.c
++++ b/stdlib/rpmatch.c
+@@ -22,42 +22,40 @@
+ #include <regex.h>
+ 
+ 
+-int
+-rpmatch (response)
+-     const char *response;
++/* Match against one of the response patterns, compiling the pattern
++   first if necessary.  */
++static int
++try (const char *response,
++     const int tag, const int match, const int nomatch,
++     const char **lastp, regex_t *re)
+ {
+-  /* Match against one of the response patterns, compiling the pattern
+-     first if necessary.  */
+-  auto int try (const int tag, const int match, const int nomatch,
+-		const char **lastp, regex_t *re);
+-
+-  int try (const int tag, const int match, const int nomatch,
+-	   const char **lastp, regex_t *re)
++  const char *pattern = nl_langinfo (tag);
++  if (pattern != *lastp)
+     {
+-      const char *pattern = nl_langinfo (tag);
+-      if (pattern != *lastp)
+-	{
+-	  /* The pattern has changed.  */
+-	  if (*lastp)
+-	    {
+-	      /* Free the old compiled pattern.  */
+-	      __regfree (re);
+-	      *lastp = NULL;
+-	    }
+-	  /* Compile the pattern and cache it for future runs.  */
+-	  if (__regcomp (re, pattern, REG_EXTENDED) != 0)
+-	    return -1;
+-	  *lastp = pattern;
+-	}
+-
+-      /* Try the pattern.  */
+-      return __regexec (re, response, 0, NULL, 0) == 0 ? match : nomatch;
++      /* The pattern has changed.  */
++      if (*lastp != NULL)
++        {
++          /* Free the old compiled pattern.  */
++          __regfree (re);
++          *lastp = NULL;
++        }
++      /* Compile the pattern and cache it for future runs.  */
++      if (__regcomp (re, pattern, REG_EXTENDED) != 0)
++        return -1;
++      *lastp = pattern;
+     }
+ 
++  /* Try the pattern.  */
++  return __regexec (re, response, 0, NULL, 0) == 0 ? match : nomatch;
++}
++
++int
++rpmatch (const char *response)
++{
+   /* We cache the response patterns and compiled regexps here.  */
+   static const char *yesexpr, *noexpr;
+   static regex_t yesre, nore;
+ 
+-  return (try (YESEXPR, 1, 0, &yesexpr, &yesre) ?:
+-	  try (NOEXPR, 0, -1, &noexpr, &nore));
++  return (try (response, YESEXPR, 1, 0, &yesexpr, &yesre) ?:
++	  try (response, NOEXPR, 0, -1, &noexpr, &nore));
+ }
diff --git a/SOURCES/glibc-rh1505492-prototypes-7.patch b/SOURCES/glibc-rh1505492-prototypes-7.patch
new file mode 100644
index 0000000..3a4665e
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-7.patch
@@ -0,0 +1,34 @@
+commit 70996a373dd38296254029423ae6d87c02e7184a
+Author: Roland McGrath <roland@hack.frob.com>
+Date:   Fri Oct 24 12:37:36 2014 -0700
+
+    Prototypify htonl and htons definitions.
+
+diff --git a/inet/htonl.c b/inet/htonl.c
+index 1d2d25f0498ba468..40145e55e0e7931f 100644
+--- a/inet/htonl.c
++++ b/inet/htonl.c
+@@ -21,8 +21,7 @@
+ #undef	ntohl
+ 
+ uint32_t
+-htonl (x)
+-     uint32_t x;
++htonl (uint32_t x)
+ {
+ #if BYTE_ORDER == BIG_ENDIAN
+   return x;
+diff --git a/inet/htons.c b/inet/htons.c
+index 92cb4ea56786a91c..9651ebbd3a83fdbb 100644
+--- a/inet/htons.c
++++ b/inet/htons.c
+@@ -21,8 +21,7 @@
+ #undef	ntohs
+ 
+ uint16_t
+-htons (x)
+-     uint16_t x;
++htons (uint16_t x)
+ {
+ #if BYTE_ORDER == BIG_ENDIAN
+   return x;
diff --git a/SOURCES/glibc-rh1505492-prototypes-8.patch b/SOURCES/glibc-rh1505492-prototypes-8.patch
new file mode 100644
index 0000000..c6bec53
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-8.patch
@@ -0,0 +1,35 @@
+commit bf438382bd8ffcc614b01e9a273a577b3ed54f9f
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Thu Nov 13 21:37:53 2014 +0000
+
+    Use prototype definition for __strtol.
+    
+    This patch fixes those warnings by using a prototype definition for
+    __strtol.
+    
+    Tested for x86_64 that stripped installed shared libraries are
+    unchanged by this patch.
+    
+            * stdlib/strtol.c (__strtol): Use prototype definition.
+
+Conflicts:
+	stdlib/strtol.c
+
+Adjusted for missing backport of the fix for swbz#17594.
+
+diff --git a/stdlib/strtol.c b/stdlib/strtol.c
+index 44e2af472ddc4144..67d758c57973b5d5 100644
+--- a/stdlib/strtol.c
++++ b/stdlib/strtol.c
+@@ -101,10 +101,7 @@ libc_hidden_def (INTERNAL (strtol))
+ 
+ 
+ INT
+-strtol (nptr, endptr, base)
+-     const STRING_TYPE *nptr;
+-     STRING_TYPE **endptr;
+-     int base;
++strtol (const STRING_TYPE *nptr, STRING_TYPE **endptr, int base)
+ {
+   return INTERNAL (__strtol_l) (nptr, endptr, base, 0, _NL_CURRENT_LOCALE);
+ }
diff --git a/SOURCES/glibc-rh1505492-prototypes-9.patch b/SOURCES/glibc-rh1505492-prototypes-9.patch
new file mode 100644
index 0000000..f8d1375
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-9.patch
@@ -0,0 +1,420 @@
+commit 24b9788285effddba3d52f174d483583cf820d19
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Thu Dec 4 08:45:55 2014 +0530
+
+    Fix up function definition style
+    
+    Don't use K&R style for function definitions.
+
+Conflicts:
+	libio/fileops.c
+
+Due to vtable hardening in glibc-rh1398413.patch.
+
+diff --git a/libio/fileops.c b/libio/fileops.c
+index ae56437168efc524..29aec8265a0317f6 100644
+--- a/libio/fileops.c
++++ b/libio/fileops.c
+@@ -139,8 +139,7 @@ extern struct __gconv_trans_data __libio_translit attribute_hidden;
+ 
+ 
+ void
+-_IO_new_file_init_internal (fp)
+-     struct _IO_FILE_plus *fp;
++_IO_new_file_init_internal (struct _IO_FILE_plus *fp)
+ {
+   /* POSIX.1 allows another file handle to be used to change the position
+      of our file descriptor.  Hence we actually don't know the actual
+@@ -162,8 +161,7 @@ _IO_new_file_init (struct _IO_FILE_plus *fp)
+ }
+ 
+ int
+-_IO_new_file_close_it (fp)
+-     _IO_FILE *fp;
++_IO_new_file_close_it (_IO_FILE *fp)
+ {
+   int write_status;
+   if (!_IO_file_is_open (fp))
+@@ -205,9 +203,7 @@ _IO_new_file_close_it (fp)
+ libc_hidden_ver (_IO_new_file_close_it, _IO_file_close_it)
+ 
+ void
+-_IO_new_file_finish (fp, dummy)
+-     _IO_FILE *fp;
+-     int dummy;
++_IO_new_file_finish (_IO_FILE *fp, int dummy)
+ {
+   if (_IO_file_is_open (fp))
+     {
+@@ -220,13 +216,8 @@ _IO_new_file_finish (fp, dummy)
+ libc_hidden_ver (_IO_new_file_finish, _IO_file_finish)
+ 
+ _IO_FILE *
+-_IO_file_open (fp, filename, posix_mode, prot, read_write, is32not64)
+-     _IO_FILE *fp;
+-     const char *filename;
+-     int posix_mode;
+-     int prot;
+-     int read_write;
+-     int is32not64;
++_IO_file_open (_IO_FILE *fp, const char *filename, int posix_mode, int prot,
++	       int read_write, int is32not64)
+ {
+   int fdesc;
+ #ifdef _LIBC
+@@ -260,11 +251,8 @@ _IO_file_open (fp, filename, posix_mode, prot, read_write, is32not64)
+ libc_hidden_def (_IO_file_open)
+ 
+ _IO_FILE *
+-_IO_new_file_fopen (fp, filename, mode, is32not64)
+-     _IO_FILE *fp;
+-     const char *filename;
+-     const char *mode;
+-     int is32not64;
++_IO_new_file_fopen (_IO_FILE *fp, const char *filename, const char *mode,
++		    int is32not64)
+ {
+   int oflags = 0, omode;
+   int read_write;
+@@ -439,9 +427,7 @@ _IO_new_file_fopen (fp, filename, mode, is32not64)
+ libc_hidden_ver (_IO_new_file_fopen, _IO_file_fopen)
+ 
+ _IO_FILE *
+-_IO_new_file_attach (fp, fd)
+-     _IO_FILE *fp;
+-     int fd;
++_IO_new_file_attach (_IO_FILE *fp, int fd)
+ {
+   if (_IO_file_is_open (fp))
+     return NULL;
+@@ -461,10 +447,7 @@ _IO_new_file_attach (fp, fd)
+ libc_hidden_ver (_IO_new_file_attach, _IO_file_attach)
+ 
+ _IO_FILE *
+-_IO_new_file_setbuf (fp, p, len)
+-     _IO_FILE *fp;
+-     char *p;
+-     _IO_ssize_t len;
++_IO_new_file_setbuf (_IO_FILE *fp, char *p, _IO_ssize_t len)
+ {
+   if (_IO_default_setbuf (fp, p, len) == NULL)
+     return NULL;
+@@ -479,10 +462,7 @@ libc_hidden_ver (_IO_new_file_setbuf, _IO_file_setbuf)
+ 
+ 
+ _IO_FILE *
+-_IO_file_setbuf_mmap (fp, p, len)
+-     _IO_FILE *fp;
+-     char *p;
+-     _IO_ssize_t len;
++_IO_file_setbuf_mmap (_IO_FILE *fp, char *p, _IO_ssize_t len)
+ {
+   _IO_FILE *result;
+ 
+@@ -509,10 +489,7 @@ static _IO_size_t new_do_write (_IO_FILE *, const char *, _IO_size_t);
+    Then mark FP as having empty buffers. */
+ 
+ int
+-_IO_new_do_write (fp, data, to_do)
+-     _IO_FILE *fp;
+-     const char *data;
+-     _IO_size_t to_do;
++_IO_new_do_write (_IO_FILE *fp, const char *data, _IO_size_t to_do)
+ {
+   return (to_do == 0
+ 	  || (_IO_size_t) new_do_write (fp, data, to_do) == to_do) ? 0 : EOF;
+@@ -521,10 +498,7 @@ libc_hidden_ver (_IO_new_do_write, _IO_do_write)
+ 
+ static
+ _IO_size_t
+-new_do_write (fp, data, to_do)
+-     _IO_FILE *fp;
+-     const char *data;
+-     _IO_size_t to_do;
++new_do_write (_IO_FILE *fp, const char *data, _IO_size_t to_do)
+ {
+   _IO_size_t count;
+   if (fp->_flags & _IO_IS_APPENDING)
+@@ -554,8 +528,7 @@ new_do_write (fp, data, to_do)
+ }
+ 
+ int
+-_IO_new_file_underflow (fp)
+-     _IO_FILE *fp;
++_IO_new_file_underflow (_IO_FILE *fp)
+ {
+   _IO_ssize_t count;
+ #if 0
+@@ -825,9 +798,7 @@ _IO_file_underflow_maybe_mmap (_IO_FILE *fp)
+ 
+ 
+ int
+-_IO_new_file_overflow (f, ch)
+-      _IO_FILE *f;
+-      int ch;
++_IO_new_file_overflow (_IO_FILE *f, int ch)
+ {
+   if (f->_flags & _IO_NO_WRITES) /* SET ERROR */
+     {
+@@ -888,8 +859,7 @@ _IO_new_file_overflow (f, ch)
+ libc_hidden_ver (_IO_new_file_overflow, _IO_file_overflow)
+ 
+ int
+-_IO_new_file_sync (fp)
+-     _IO_FILE *fp;
++_IO_new_file_sync (_IO_FILE *fp)
+ {
+   _IO_ssize_t delta;
+   int retval = 0;
+@@ -1007,11 +977,7 @@ do_ftell (_IO_FILE *fp)
+ }
+ 
+ _IO_off64_t
+-_IO_new_file_seekoff (fp, offset, dir, mode)
+-     _IO_FILE *fp;
+-     _IO_off64_t offset;
+-     int dir;
+-     int mode;
++_IO_new_file_seekoff (_IO_FILE *fp, _IO_off64_t offset, int dir, int mode)
+ {
+   _IO_off64_t result;
+   _IO_off64_t delta, new_offset;
+@@ -1167,11 +1133,7 @@ resync:
+ libc_hidden_ver (_IO_new_file_seekoff, _IO_file_seekoff)
+ 
+ _IO_off64_t
+-_IO_file_seekoff_mmap (fp, offset, dir, mode)
+-     _IO_FILE *fp;
+-     _IO_off64_t offset;
+-     int dir;
+-     int mode;
++_IO_file_seekoff_mmap (_IO_FILE *fp, _IO_off64_t offset, int dir, int mode)
+ {
+   _IO_off64_t result;
+ 
+@@ -1242,10 +1204,7 @@ _IO_file_seekoff_maybe_mmap (_IO_FILE *fp, _IO_off64_t offset, int dir,
+ }
+ 
+ _IO_ssize_t
+-_IO_file_read (fp, buf, size)
+-     _IO_FILE *fp;
+-     void *buf;
+-     _IO_ssize_t size;
++_IO_file_read (_IO_FILE *fp, void *buf, _IO_ssize_t size)
+ {
+   return (__builtin_expect (fp->_flags2 & _IO_FLAGS2_NOTCANCEL, 0)
+ 	  ? read_not_cancel (fp->_fileno, buf, size)
+@@ -1254,27 +1213,21 @@ _IO_file_read (fp, buf, size)
+ libc_hidden_def (_IO_file_read)
+ 
+ _IO_off64_t
+-_IO_file_seek (fp, offset, dir)
+-     _IO_FILE *fp;
+-     _IO_off64_t offset;
+-     int dir;
++_IO_file_seek (_IO_FILE *fp, _IO_off64_t offset, int dir)
+ {
+   return __lseek64 (fp->_fileno, offset, dir);
+ }
+ libc_hidden_def (_IO_file_seek)
+ 
+ int
+-_IO_file_stat (fp, st)
+-     _IO_FILE *fp;
+-     void *st;
++_IO_file_stat (_IO_FILE *fp, void *st)
+ {
+   return __fxstat64 (_STAT_VER, fp->_fileno, (struct stat64 *) st);
+ }
+ libc_hidden_def (_IO_file_stat)
+ 
+ int
+-_IO_file_close_mmap (fp)
+-     _IO_FILE *fp;
++_IO_file_close_mmap (_IO_FILE *fp)
+ {
+   /* In addition to closing the file descriptor we have to unmap the file.  */
+   (void) __munmap (fp->_IO_buf_base, fp->_IO_buf_end - fp->_IO_buf_base);
+@@ -1285,8 +1238,7 @@ _IO_file_close_mmap (fp)
+ }
+ 
+ int
+-_IO_file_close (fp)
+-     _IO_FILE *fp;
++_IO_file_close (_IO_FILE *fp)
+ {
+   /* Cancelling close should be avoided if possible since it leaves an
+      unrecoverable state behind.  */
+@@ -1295,10 +1247,7 @@ _IO_file_close (fp)
+ libc_hidden_def (_IO_file_close)
+ 
+ _IO_ssize_t
+-_IO_new_file_write (f, data, n)
+-     _IO_FILE *f;
+-     const void *data;
+-     _IO_ssize_t n;
++_IO_new_file_write (_IO_FILE *f, const void *data, _IO_ssize_t n)
+ {
+   _IO_ssize_t to_do = n;
+   while (to_do > 0)
+@@ -1322,10 +1271,7 @@ _IO_new_file_write (f, data, n)
+ }
+ 
+ _IO_size_t
+-_IO_new_file_xsputn (f, data, n)
+-     _IO_FILE *f;
+-     const void *data;
+-     _IO_size_t n;
++_IO_new_file_xsputn (_IO_FILE *f, const void *data, _IO_size_t n)
+ {
+   const char *s = (const char *) data;
+   _IO_size_t to_do = n;
+@@ -1405,10 +1351,7 @@ _IO_new_file_xsputn (f, data, n)
+ libc_hidden_ver (_IO_new_file_xsputn, _IO_file_xsputn)
+ 
+ _IO_size_t
+-_IO_file_xsgetn (fp, data, n)
+-     _IO_FILE *fp;
+-     void *data;
+-     _IO_size_t n;
++_IO_file_xsgetn (_IO_FILE *fp, void *data, _IO_size_t n)
+ {
+   _IO_size_t want, have;
+   _IO_ssize_t count;
+@@ -1505,12 +1448,8 @@ _IO_file_xsgetn (fp, data, n)
+ }
+ libc_hidden_def (_IO_file_xsgetn)
+ 
+-static _IO_size_t _IO_file_xsgetn_mmap (_IO_FILE *, void *, _IO_size_t);
+ static _IO_size_t
+-_IO_file_xsgetn_mmap (fp, data, n)
+-     _IO_FILE *fp;
+-     void *data;
+-     _IO_size_t n;
++_IO_file_xsgetn_mmap (_IO_FILE *fp, void *data, _IO_size_t n)
+ {
+   _IO_size_t have;
+   char *read_ptr = fp->_IO_read_ptr;
+@@ -1564,12 +1503,8 @@ _IO_file_xsgetn_mmap (fp, data, n)
+   return s - (char *) data;
+ }
+ 
+-static _IO_size_t _IO_file_xsgetn_maybe_mmap (_IO_FILE *, void *, _IO_size_t);
+ static _IO_size_t
+-_IO_file_xsgetn_maybe_mmap (fp, data, n)
+-     _IO_FILE *fp;
+-     void *data;
+-     _IO_size_t n;
++_IO_file_xsgetn_maybe_mmap (_IO_FILE *fp, void *data, _IO_size_t n)
+ {
+   /* We only get here if this is the first attempt to read something.
+      Decide which operations to use and then punt to the chosen one.  */
+diff --git a/libio/iofopen.c b/libio/iofopen.c
+index 44ba253e072ef18d..9262038a57b96215 100644
+--- a/libio/iofopen.c
++++ b/libio/iofopen.c
+@@ -35,8 +35,7 @@
+ #endif
+ 
+ _IO_FILE *
+-__fopen_maybe_mmap (fp)
+-     _IO_FILE *fp;
++__fopen_maybe_mmap (_IO_FILE *fp)
+ {
+ #ifdef _G_HAVE_MMAP
+   if ((fp->_flags2 & _IO_FLAGS2_MMAP) && (fp->_flags & _IO_NO_WRITES))
+@@ -58,10 +57,7 @@ __fopen_maybe_mmap (fp)
+ 
+ 
+ _IO_FILE *
+-__fopen_internal (filename, mode, is32)
+-     const char *filename;
+-     const char *mode;
+-     int is32;
++__fopen_internal (const char *filename, const char *mode, int is32)
+ {
+   struct locked_FILE
+   {
+@@ -96,9 +92,7 @@ __fopen_internal (filename, mode, is32)
+ }
+ 
+ _IO_FILE *
+-_IO_new_fopen (filename, mode)
+-     const char *filename;
+-     const char *mode;
++_IO_new_fopen (const char *filename, const char *mode)
+ {
+   return __fopen_internal (filename, mode, 1);
+ }
+diff --git a/libio/wfileops.c b/libio/wfileops.c
+index 5ed1a922ae6ccbd0..d26b6e9f0a769d0b 100644
+--- a/libio/wfileops.c
++++ b/libio/wfileops.c
+@@ -54,10 +54,7 @@
+ /* Convert TO_DO wide character from DATA to FP.
+    Then mark FP as having empty buffers. */
+ int
+-_IO_wdo_write (fp, data, to_do)
+-     _IO_FILE *fp;
+-     const wchar_t *data;
+-     _IO_size_t to_do;
++_IO_wdo_write (_IO_FILE *fp, const wchar_t *data, _IO_size_t to_do)
+ {
+   struct _IO_codecvt *cc = fp->_codecvt;
+ 
+@@ -116,8 +113,7 @@ libc_hidden_def (_IO_wdo_write)
+ 
+ 
+ wint_t
+-_IO_wfile_underflow (fp)
+-     _IO_FILE *fp;
++_IO_wfile_underflow (_IO_FILE *fp)
+ {
+   struct _IO_codecvt *cd;
+   enum __codecvt_result status;
+@@ -410,9 +406,7 @@ _IO_wfile_underflow_maybe_mmap (_IO_FILE *fp)
+ 
+ 
+ wint_t
+-_IO_wfile_overflow (f, wch)
+-     _IO_FILE *f;
+-     wint_t wch;
++_IO_wfile_overflow (_IO_FILE *f, wint_t wch)
+ {
+   if (f->_flags & _IO_NO_WRITES) /* SET ERROR */
+     {
+@@ -484,8 +478,7 @@ _IO_wfile_overflow (f, wch)
+ libc_hidden_def (_IO_wfile_overflow)
+ 
+ wint_t
+-_IO_wfile_sync (fp)
+-     _IO_FILE *fp;
++_IO_wfile_sync (_IO_FILE *fp)
+ {
+   _IO_ssize_t delta;
+   wint_t retval = 0;
+@@ -746,11 +739,7 @@ do_ftell_wide (_IO_FILE *fp)
+ }
+ 
+ _IO_off64_t
+-_IO_wfile_seekoff (fp, offset, dir, mode)
+-     _IO_FILE *fp;
+-     _IO_off64_t offset;
+-     int dir;
+-     int mode;
++_IO_wfile_seekoff (_IO_FILE *fp, _IO_off64_t offset, int dir, int mode)
+ {
+   _IO_off64_t result;
+   _IO_off64_t delta, new_offset;
+@@ -961,10 +950,7 @@ libc_hidden_def (_IO_wfile_seekoff)
+ 
+ 
+ _IO_size_t
+-_IO_wfile_xsputn (f, data, n)
+-     _IO_FILE *f;
+-     const void *data;
+-     _IO_size_t n;
++_IO_wfile_xsputn (_IO_FILE *f, const void *data, _IO_size_t n)
+ {
+   const wchar_t *s = (const wchar_t *) data;
+   _IO_size_t to_do = n;
diff --git a/SOURCES/glibc-rh1505492-prototypes-Xat.patch b/SOURCES/glibc-rh1505492-prototypes-Xat.patch
new file mode 100644
index 0000000..636ed0a
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-Xat.patch
@@ -0,0 +1,143 @@
+Introduce prototype-style definitions for various *at functions.
+Upstream, these function definitions were removed in:
+
+commit 754a15c61cd6834685386a134d0a0fed5f3ac4c1
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Tue Sep 30 14:32:08 2014 +0000
+
+    Move some *at definitions to syscalls.list (bug 14138).
+
+diff --git a/sysdeps/unix/sysv/linux/fchownat.c b/sysdeps/unix/sysv/linux/fchownat.c
+index 624804fa8cbfd8a1..0673118ad1c72958 100644
+--- a/sysdeps/unix/sysv/linux/fchownat.c
++++ b/sysdeps/unix/sysv/linux/fchownat.c
+@@ -29,12 +29,7 @@
+ 
+ /* Change the owner and group of FILE.  */
+ int
+-fchownat (fd, file, owner, group, flag)
+-     int fd;
+-     const char *file;
+-     uid_t owner;
+-     gid_t group;
+-     int flag;
++fchownat (int fd, const char *file, uid_t owner, gid_t group, int flag)
+ {
+   int result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/futimesat.c b/sysdeps/unix/sysv/linux/futimesat.c
+index e3d034f800dfe61b..77f320d94aef5435 100644
+--- a/sysdeps/unix/sysv/linux/futimesat.c
++++ b/sysdeps/unix/sysv/linux/futimesat.c
+@@ -29,10 +29,7 @@
+ /* Change the access time of FILE relative to FD to TVP[0] and
+    the modification time of FILE to TVP[1].  */
+ int
+-futimesat (fd, file, tvp)
+-     int fd;
+-     const char *file;
+-     const struct timeval tvp[2];
++futimesat (int fd, const char *file, const struct timeval tvp[2])
+ {
+   int result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/linkat.c b/sysdeps/unix/sysv/linux/linkat.c
+index 90e0a79a7014ab72..0526861c007d773f 100644
+--- a/sysdeps/unix/sysv/linux/linkat.c
++++ b/sysdeps/unix/sysv/linux/linkat.c
+@@ -27,12 +27,7 @@
+ /* Make a link to FROM named TO but relative paths in TO and FROM are
+    interpreted relative to FROMFD and TOFD respectively.  */
+ int
+-linkat (fromfd, from, tofd, to, flags)
+-     int fromfd;
+-     const char *from;
+-     int tofd;
+-     const char *to;
+-     int flags;
++linkat (int fromfd, const char *from, int tofd, const char *to, int flags)
+ {
+   int result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/mkdirat.c b/sysdeps/unix/sysv/linux/mkdirat.c
+index c5ac40ad70c78b62..3989c13f6d511389 100644
+--- a/sysdeps/unix/sysv/linux/mkdirat.c
++++ b/sysdeps/unix/sysv/linux/mkdirat.c
+@@ -28,10 +28,7 @@
+ /* Create a new directory with permission bits MODE.  But interpret
+    relative PATH names relative to the directory associated with FD.  */
+ int
+-mkdirat (fd, file, mode)
+-     int fd;
+-     const char *file;
+-     mode_t mode;
++mkdirat (int fd, const char *file, mode_t mode)
+ {
+   int res;
+ 
+diff --git a/sysdeps/unix/sysv/linux/readlinkat.c b/sysdeps/unix/sysv/linux/readlinkat.c
+index 1638cbb38063477e..05ac0c31743e0d09 100644
+--- a/sysdeps/unix/sysv/linux/readlinkat.c
++++ b/sysdeps/unix/sysv/linux/readlinkat.c
+@@ -29,11 +29,7 @@
+ /* Read the contents of the symbolic link PATH relative to FD into no
+    more than LEN bytes of BUF.  */
+ ssize_t
+-readlinkat (fd, path, buf, len)
+-     int fd;
+-     const char *path;
+-     char *buf;
+-     size_t len;
++readlinkat (int fd, const char *path, char *buf, size_t len)
+ {
+   int result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/renameat.c b/sysdeps/unix/sysv/linux/renameat.c
+index 7623f5230306baaf..6b9e87016b17ab6c 100644
+--- a/sysdeps/unix/sysv/linux/renameat.c
++++ b/sysdeps/unix/sysv/linux/renameat.c
+@@ -104,11 +104,7 @@ __atfct_seterrno_2 (int errval, int fd1, const char *buf1, int fd2,
+ 
+ /* Rename the file OLD relative to OLDFD to NEW relative to NEWFD.  */
+ int
+-renameat (oldfd, old, newfd, new)
+-     int oldfd;
+-     const char *old;
+-     int newfd;
+-     const char *new;
++renameat (int oldfd, const char *old, int newfd, const char *new)
+ {
+   int result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/symlinkat.c b/sysdeps/unix/sysv/linux/symlinkat.c
+index 7e3812914c99ad8c..c8f8be9892dc41db 100644
+--- a/sysdeps/unix/sysv/linux/symlinkat.c
++++ b/sysdeps/unix/sysv/linux/symlinkat.c
+@@ -28,10 +28,7 @@
+ 
+ /* Make a symbolic link to FROM named TO relative to TOFD.  */
+ int
+-symlinkat (from, tofd, to)
+-     const char *from;
+-     int tofd;
+-     const char *to;
++symlinkat (const char *from, int tofd, const char *to)
+ {
+   int result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/unlinkat.c b/sysdeps/unix/sysv/linux/unlinkat.c
+index 7c50a2a914486808..d4beb82b065068f7 100644
+--- a/sysdeps/unix/sysv/linux/unlinkat.c
++++ b/sysdeps/unix/sysv/linux/unlinkat.c
+@@ -29,10 +29,7 @@
+ 
+ /* Remove the link named NAME.  */
+ int
+-unlinkat (fd, file, flag)
+-     int fd;
+-     const char *file;
+-     int flag;
++unlinkat (int fd, const char *file, int flag)
+ {
+   int result;
+ 
diff --git a/SOURCES/glibc-rh1505492-prototypes-activate.patch b/SOURCES/glibc-rh1505492-prototypes-activate.patch
new file mode 100644
index 0000000..bd375e4
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-activate.patch
@@ -0,0 +1,52 @@
+commit 8e2f7c68111ba8fae795ee08b6822e21ab8cfa38
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Wed Oct 21 15:14:13 2015 +0000
+
+    Use -Wold-style-definition.
+    
+    This patch makes glibc build with -Wold-style-definition to avoid
+    old-style function definitions creeping back in by accident.
+    
+    Tested for x86_64 and x86 (testsuite, and that installed shared
+    libraries are unchanged by the patch).  Also tested build for arm,
+    mips64 and powerpc32.  Hopefully there aren't any remaining
+    system-specific files with old-style definitions whose formatting
+    evaded my searches, but if there are, they will be easy to fix.
+    
+            * Makeconfig (+gccwarn-c): Add -Wold-style-definition.
+            * Makefile ($(objpfx)c++-types-check.out): Filter out
+            $(+gccwarn-c) instead of -Wstrict-prototypes.
+
+Conflicts:
+	Makefile
+
+Resolved conflict due to missing $(evaluate-test) in the tree (commit
+f0881698bf244bcb16c394d2d6258d975a11baef, Generate .test-result files
+for tests with special rules.).
+
+diff --git a/Makeconfig b/Makeconfig
+index 3c0d4abc5f5f30df..f8313c9774d47522 100644
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -647,7 +647,7 @@ endif
+ ifeq ($(enable-werror),yes)
+ +gccwarn += -Werror
+ endif
+-+gccwarn-c = -Wstrict-prototypes
+++gccwarn-c = -Wstrict-prototypes -Wold-style-definition
+ 
+ # We do not depend on the address of constants in different files to be
+ # actually different, so allow the compiler to merge them all.
+diff --git a/Makefile b/Makefile
+index bebb0a865a150a3a..f4128c2627dd0bb9 100644
+--- a/Makefile
++++ b/Makefile
+@@ -279,7 +279,7 @@ ifneq ($(CXX),no)
+ vpath c++-types.data $(+sysdep_dirs)
+ 
+ $(objpfx)c++-types-check.out: c++-types.data scripts/check-c++-types.sh
+-	scripts/check-c++-types.sh $< $(CXX) $(filter-out -std=gnu99 -Wstrict-prototypes,$(CFLAGS)) $(CPPFLAGS) > $@
++	scripts/check-c++-types.sh $< $(CXX) $(filter-out -std=gnu99 $(+gccwarn-c),$(CFLAGS)) $(CPPFLAGS) > $@
+ endif
+ 
+ $(objpfx)check-local-headers.out: scripts/check-local-headers.sh
diff --git a/SOURCES/glibc-rh1505492-prototypes-bzero.patch b/SOURCES/glibc-rh1505492-prototypes-bzero.patch
new file mode 100644
index 0000000..ce9199e
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-bzero.patch
@@ -0,0 +1,25 @@
+Introduce prototype-style function definition for bzero.  This happened
+upstream as part of:
+
+commit ddcf6798d35beca3c4eec80ea448b57fd45558f4
+Author: Wilco Dijkstra <wdijkstr@arm.com>
+Date:   Fri Feb 27 14:41:46 2015 +0000
+
+    Rather than using a C implementation of memset, directly call memset, which
+    typically has a much faster optimized implementation.
+
+diff --git a/string/bzero.c b/string/bzero.c
+index b7a88ec9253bdf0c..c3276e7752935801 100644
+--- a/string/bzero.c
++++ b/string/bzero.c
+@@ -23,9 +23,7 @@
+ 
+ /* Set N bytes of S to 0.  */
+ void
+-__bzero (s, len)
+-     void *s;
+-     size_t len;
++__bzero (void *s, size_t len)
+ {
+   long int dstp = (long int) s;
+   const op_t zero = 0;
diff --git a/SOURCES/glibc-rh1505492-prototypes-ctermid.patch b/SOURCES/glibc-rh1505492-prototypes-ctermid.patch
new file mode 100644
index 0000000..52e8d9c
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-ctermid.patch
@@ -0,0 +1,23 @@
+Introduce prototype-style function definition for ctermid.  Upstream,
+this was part of:
+
+commit 7729e0e91afbf8d45bb322d7e2d53f417fab01ed
+Author: Alexandre Oliva <aoliva@redhat.com>
+Date:   Fri Nov 21 02:06:22 2014 -0200
+
+    ctermid: return string literal, document MT-Safety pitfall
+
+diff --git a/sysdeps/posix/ctermid.c b/sysdeps/posix/ctermid.c
+index 8a0ebac8afaf23ff..94c0a6d25a5b430e 100644
+--- a/sysdeps/posix/ctermid.c
++++ b/sysdeps/posix/ctermid.c
+@@ -23,8 +23,7 @@
+    If S is not NULL, the name is copied into it (it should be at
+    least L_ctermid bytes long), otherwise a static buffer is used.  */
+ char *
+-ctermid (s)
+-     char *s;
++ctermid (char *s)
+ {
+   static char name[L_ctermid];
+ 
diff --git a/SOURCES/glibc-rh1505492-prototypes-debug.patch b/SOURCES/glibc-rh1505492-prototypes-debug.patch
new file mode 100644
index 0000000..0303921
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-debug.patch
@@ -0,0 +1,41 @@
+Convert __stpcpy_chk and __strcpy_chk to prototype-style function
+definitions.  Upstream, this happened as part of:
+
+commit 0d0325ed4b1052f32069eb3a51f7e16485a73568
+Author: Ondřej Bílka <neleai@seznam.cz>
+Date:   Tue Aug 25 12:23:24 2015 +0200
+
+    Fix strcpy_chk and stpcpy_chk performance.
+
+diff --git a/debug/stpcpy_chk.c b/debug/stpcpy_chk.c
+index 3934d132d930093c..ba8058051857ef16 100644
+--- a/debug/stpcpy_chk.c
++++ b/debug/stpcpy_chk.c
+@@ -24,10 +24,7 @@
+ 
+ /* Copy SRC to DEST, returning the address of the terminating '\0' in DEST.  */
+ char *
+-__stpcpy_chk (dest, src, destlen)
+-     char *dest;
+-     const char *src;
+-     size_t destlen;
++__stpcpy_chk (char *dest, const char *src, size_t destlen)
+ {
+   char *d = dest;
+   const char *s = src;
+diff --git a/debug/strcpy_chk.c b/debug/strcpy_chk.c
+index ee22b11cd33afdde..7cbe14a327dc7992 100644
+--- a/debug/strcpy_chk.c
++++ b/debug/strcpy_chk.c
+@@ -23,10 +23,7 @@
+ 
+ /* Copy SRC to DEST with checking of destination buffer overflow.  */
+ char *
+-__strcpy_chk (dest, src, destlen)
+-     char *dest;
+-     const char *src;
+-     size_t destlen;
++__strcpy_chk (char *dest, const char *src, size_t destlen)
+ {
+   char c;
+   char *s = (char *) src;
diff --git a/SOURCES/glibc-rh1505492-prototypes-execve.patch b/SOURCES/glibc-rh1505492-prototypes-execve.patch
new file mode 100644
index 0000000..475607d
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-execve.patch
@@ -0,0 +1,25 @@
+Introduce prototype-style definition for execve.  Upstream, the
+old-style function definition was removed in:
+
+commit 6268f532b6c6be7971cb57883d042bd771966548
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Wed Oct 1 20:58:20 2014 +0000
+
+    Move execve to syscalls.list (bug 14138).
+
+diff --git a/sysdeps/unix/sysv/linux/execve.c b/sysdeps/unix/sysv/linux/execve.c
+index 34fd14bf6afc5417..872b150784d41007 100644
+--- a/sysdeps/unix/sysv/linux/execve.c
++++ b/sysdeps/unix/sysv/linux/execve.c
+@@ -25,10 +25,7 @@
+ /* Consider moving to syscalls.list.  */
+ 
+ int
+-__execve (file, argv, envp)
+-     const char *file;
+-     char *const argv[];
+-     char *const envp[];
++__execve (const char *file, char *const argv[], char *const envp[])
+ {
+   return INLINE_SYSCALL (execve, 3, file, argv, envp);
+ }
diff --git a/SOURCES/glibc-rh1505492-prototypes-gettimeofday.patch b/SOURCES/glibc-rh1505492-prototypes-gettimeofday.patch
new file mode 100644
index 0000000..5880780
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-gettimeofday.patch
@@ -0,0 +1,41 @@
+Introduce prototype-style function definitions for architecture-specific
+gettimeofday implementations.
+
+Upstream did this as part of:
+
+commit 97554e4382e5d85eccf146b58f85aaad7e3d687c
+Author: Adhemerval Zanella <adhemerval.zanella@linaro.com>
+Date:   Fri Apr 17 11:48:51 2015 -0300
+
+    Consolidate gettimeofday across aarch64/s390/tile
+
+diff --git a/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c b/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c
+index 90d115577bad42ec..0a43a1bf94432006 100644
+--- a/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c
++++ b/sysdeps/unix/sysv/linux/aarch64/gettimeofday.c
+@@ -27,9 +27,7 @@
+    putting it into *tv and *tz.  If tz is null, *tz is not filled.
+    Returns 0 on success, -1 on errors.  */
+ int
+-__gettimeofday (tv, tz)
+-     struct timeval *tv;
+-     struct timezone *tz;
++__gettimeofday (struct timeval *tv, struct timezone *tz)
+ {
+   return INLINE_VSYSCALL (gettimeofday, 2, tv, tz);
+ }
+diff --git a/sysdeps/unix/sysv/linux/s390/gettimeofday.c b/sysdeps/unix/sysv/linux/s390/gettimeofday.c
+index d897e1a6b68c069a..10777d17828fa9d0 100644
+--- a/sysdeps/unix/sysv/linux/s390/gettimeofday.c
++++ b/sysdeps/unix/sysv/linux/s390/gettimeofday.c
+@@ -28,9 +28,7 @@
+    Returns 0 on success, -1 on errors.  */
+ 
+ int
+-__gettimeofday (tv, tz)
+-     struct timeval *tv;
+-     struct timezone *tz;
++__gettimeofday (struct timeval *tv, struct timezone *tz)
+ {
+   return INLINE_VSYSCALL (gettimeofday, 2, tv, tz);
+ }
diff --git a/SOURCES/glibc-rh1505492-prototypes-getttynam.patch b/SOURCES/glibc-rh1505492-prototypes-getttynam.patch
new file mode 100644
index 0000000..42fbb76
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-getttynam.patch
@@ -0,0 +1,23 @@
+Introduce prototype-style function definition for getttynam.  Upstream,
+this was part of:
+
+commit abccad04b4172d552dbdae948c0e567ba266ad76
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Wed Jun 17 20:21:19 2015 +0000
+
+    Fix ttyslot namespace (bug 18547).
+
+diff --git a/misc/getttyent.c b/misc/getttyent.c
+index 864f65f523de2522..018789a801b8b764 100644
+--- a/misc/getttyent.c
++++ b/misc/getttyent.c
+@@ -44,8 +44,7 @@ static char zapchar;
+ static FILE *tf;
+ 
+ struct ttyent *
+-getttynam(tty)
+-	const char *tty;
++getttynam (const char *tty)
+ {
+ 	struct ttyent *t;
+ 
diff --git a/SOURCES/glibc-rh1505492-prototypes-intl.patch b/SOURCES/glibc-rh1505492-prototypes-intl.patch
new file mode 100644
index 0000000..09b5985
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-intl.patch
@@ -0,0 +1,725 @@
+Introduce prototype-style function definitions in the intl
+subdirectory.  Upstream, this was done as part of a gnulib import:
+
+commit 6d248857845aee307440a77062a93b167cd2ac9c
+Author: Will Newton <will.newton@linaro.org>
+Date:   Wed Dec 10 12:03:53 2014 +0000
+
+    intl: Merge with gettext version 0.19.3
+
+diff --git a/intl/bindtextdom.c b/intl/bindtextdom.c
+index 98a3606db1353957..64c683384e62ce36 100644
+--- a/intl/bindtextdom.c
++++ b/intl/bindtextdom.c
+@@ -96,10 +96,8 @@ static void set_binding_values PARAMS ((const char *domainname,
+    If DIRNAMEP or CODESETP is NULL, the corresponding attribute is neither
+    modified nor returned.  */
+ static void
+-set_binding_values (domainname, dirnamep, codesetp)
+-     const char *domainname;
+-     const char **dirnamep;
+-     const char **codesetp;
++set_binding_values (const char *domainname, const char **dirnamep,
++		    const char **codesetp)
+ {
+   struct binding *binding;
+   int modified;
+@@ -341,9 +339,7 @@ set_binding_values (domainname, dirnamep, codesetp)
+ /* Specify that the DOMAINNAME message catalog will be found
+    in DIRNAME rather than in the system locale data base.  */
+ char *
+-BINDTEXTDOMAIN (domainname, dirname)
+-     const char *domainname;
+-     const char *dirname;
++BINDTEXTDOMAIN (const char *domainname, const char *dirname)
+ {
+   set_binding_values (domainname, &dirname, NULL);
+   return (char *) dirname;
+@@ -352,9 +348,7 @@ BINDTEXTDOMAIN (domainname, dirname)
+ /* Specify the character encoding in which the messages from the
+    DOMAINNAME message catalog will be returned.  */
+ char *
+-BIND_TEXTDOMAIN_CODESET (domainname, codeset)
+-     const char *domainname;
+-     const char *codeset;
++BIND_TEXTDOMAIN_CODESET (const char *domainname, const char *codeset)
+ {
+   set_binding_values (domainname, NULL, &codeset);
+   return (char *) codeset;
+diff --git a/intl/dcgettext.c b/intl/dcgettext.c
+index 0f2942be4556ef97..a54c747e346b7599 100644
+--- a/intl/dcgettext.c
++++ b/intl/dcgettext.c
+@@ -44,10 +44,7 @@
+ /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+    locale.  */
+ char *
+-DCGETTEXT (domainname, msgid, category)
+-     const char *domainname;
+-     const char *msgid;
+-     int category;
++DCGETTEXT (const char *domainname, const char *msgid, int category)
+ {
+   return DCIGETTEXT (domainname, msgid, NULL, 0, 0, category);
+ }
+diff --git a/intl/dcigettext.c b/intl/dcigettext.c
+index c005f1b88d2da1a5..02eb8ad10ebd6eb4 100644
+--- a/intl/dcigettext.c
++++ b/intl/dcigettext.c
+@@ -225,9 +225,7 @@ static void *root;
+ /* Function to compare two entries in the table of known translations.  */
+ static int transcmp PARAMS ((const void *p1, const void *p2));
+ static int
+-transcmp (p1, p2)
+-     const void *p1;
+-     const void *p2;
++transcmp (const void *p1, const void *p2)
+ {
+   const struct known_translation_t *s1;
+   const struct known_translation_t *s2;
+@@ -407,13 +405,8 @@ static int enable_secure;
+    CATEGORY locale and, if PLURAL is nonzero, search over string
+    depending on the plural form determined by N.  */
+ char *
+-DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
+-     const char *domainname;
+-     const char *msgid1;
+-     const char *msgid2;
+-     int plural;
+-     unsigned long int n;
+-     int category;
++DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2,
++	    int plural, unsigned long int n, int category)
+ {
+ #ifndef HAVE_ALLOCA
+   struct block_list *block_list = NULL;
+@@ -743,12 +736,8 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
+ 
+ char *
+ internal_function
+-_nl_find_msg (domain_file, domainbinding, msgid, convert, lengthp)
+-     struct loaded_l10nfile *domain_file;
+-     struct binding *domainbinding;
+-     const char *msgid;
+-     int convert;
+-     size_t *lengthp;
++_nl_find_msg (struct loaded_l10nfile *domain_file, struct binding *domainbinding,
++	      const char *msgid, int convert, size_t *lengthp)
+ {
+   struct loaded_domain *domain;
+   nls_uint32 nstrings;
+@@ -1242,11 +1231,8 @@ _nl_find_msg (domain_file, domainbinding, msgid, convert, lengthp)
+ /* Look up a plural variant.  */
+ static char *
+ internal_function
+-plural_lookup (domain, n, translation, translation_len)
+-     struct loaded_l10nfile *domain;
+-     unsigned long int n;
+-     const char *translation;
+-     size_t translation_len;
++plural_lookup (struct loaded_l10nfile *domain, unsigned long int n,
++	       const char *translation, size_t translation_len)
+ {
+   struct loaded_domain *domaindata = (struct loaded_domain *) domain->data;
+   unsigned long int index;
+@@ -1283,8 +1269,7 @@ plural_lookup (domain, n, translation, translation_len)
+ /* Return string representation of locale CATEGORY.  */
+ static const char *
+ internal_function
+-category_to_name (category)
+-     int category;
++category_to_name (int category)
+ {
+   const char *retval;
+ 
+@@ -1344,9 +1329,7 @@ category_to_name (category)
+ /* Guess value of current locale from value of the environment variables.  */
+ static const char *
+ internal_function
+-guess_category_value (category, categoryname)
+-     int category;
+-     const char *categoryname;
++guess_category_value (int category, const char *categoryname)
+ {
+   const char *language;
+   const char *retval;
+@@ -1374,8 +1357,7 @@ guess_category_value (category, categoryname)
+ /* Returns the output charset.  */
+ static const char *
+ internal_function
+-get_output_charset (domainbinding)
+-     struct binding *domainbinding;
++get_output_charset (struct binding *domainbinding)
+ {
+   /* The output charset should normally be determined by the locale.  But
+      sometimes the locale is not used or not correctly set up, so we provide
+@@ -1433,9 +1415,7 @@ get_output_charset (domainbinding)
+    to be defined.  */
+ #if !_LIBC && !HAVE_STPCPY
+ static char *
+-stpcpy (dest, src)
+-     char *dest;
+-     const char *src;
++stpcpy (char *dest, const char *src)
+ {
+   while ((*dest++ = *src++) != '\0')
+     /* Do nothing. */ ;
+@@ -1445,10 +1425,7 @@ stpcpy (dest, src)
+ 
+ #if !_LIBC && !HAVE_MEMPCPY
+ static void *
+-mempcpy (dest, src, n)
+-     void *dest;
+-     const void *src;
+-     size_t n;
++mempcpy (void *dest, const void *src, size_t n)
+ {
+   return (void *) ((char *) memcpy (dest, src, n) + n);
+ }
+diff --git a/intl/dcngettext.c b/intl/dcngettext.c
+index b0e2ee8d8cb214ea..1a64fd1f818823c8 100644
+--- a/intl/dcngettext.c
++++ b/intl/dcngettext.c
+@@ -44,12 +44,8 @@
+ /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+    locale.  */
+ char *
+-DCNGETTEXT (domainname, msgid1, msgid2, n, category)
+-     const char *domainname;
+-     const char *msgid1;
+-     const char *msgid2;
+-     unsigned long int n;
+-     int category;
++DCNGETTEXT (const char *domainname, const char *msgid1, const char *msgid2,
++            unsigned long int n, int category)
+ {
+   return DCIGETTEXT (domainname, msgid1, msgid2, 1, n, category);
+ }
+diff --git a/intl/dgettext.c b/intl/dgettext.c
+index 7718f4e4e021bbfd..eba96b745c0c24c7 100644
+--- a/intl/dgettext.c
++++ b/intl/dgettext.c
+@@ -46,9 +46,7 @@
+ /* Look up MSGID in the DOMAINNAME message catalog of the current
+    LC_MESSAGES locale.  */
+ char *
+-DGETTEXT (domainname, msgid)
+-     const char *domainname;
+-     const char *msgid;
++DGETTEXT (const char *domainname, const char *msgid)
+ {
+   return DCGETTEXT (domainname, msgid, LC_MESSAGES);
+ }
+diff --git a/intl/dngettext.c b/intl/dngettext.c
+index 18ff68e94e7b19b3..8b62b1b7d60608b3 100644
+--- a/intl/dngettext.c
++++ b/intl/dngettext.c
+@@ -46,11 +46,8 @@
+ /* Look up MSGID in the DOMAINNAME message catalog of the current
+    LC_MESSAGES locale and skip message according to the plural form.  */
+ char *
+-DNGETTEXT (domainname, msgid1, msgid2, n)
+-     const char *domainname;
+-     const char *msgid1;
+-     const char *msgid2;
+-     unsigned long int n;
++DNGETTEXT (const char *domainname, const char *msgid1, const char *msgid2,
++           unsigned long int n)
+ {
+   return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES);
+ }
+diff --git a/intl/explodename.c b/intl/explodename.c
+index 52506c4c70671a29..679deebfc4a8a628 100644
+--- a/intl/explodename.c
++++ b/intl/explodename.c
+@@ -40,8 +40,7 @@
+ static char *_nl_find_language PARAMS ((const char *name));
+ 
+ static char *
+-_nl_find_language (name)
+-     const char *name;
++_nl_find_language (const char *name)
+ {
+   while (name[0] != '\0' && name[0] != '_' && name[0] != '@' && name[0] != '.')
+     ++name;
+@@ -51,14 +50,9 @@ _nl_find_language (name)
+ 
+ 
+ int
+-_nl_explode_name (name, language, modifier, territory, codeset,
+-		  normalized_codeset)
+-     char *name;
+-     const char **language;
+-     const char **modifier;
+-     const char **territory;
+-     const char **codeset;
+-     const char **normalized_codeset;
++_nl_explode_name (char *name, const char **language, const char **modifier,
++		  const char **territory, const char **codeset,
++		  const char **normalized_codeset)
+ {
+   char *cp;
+   int mask;
+diff --git a/intl/finddomain.c b/intl/finddomain.c
+index 4fff9dad5de54dad..6c3b80b26b6fc88f 100644
+--- a/intl/finddomain.c
++++ b/intl/finddomain.c
+@@ -49,11 +49,8 @@ static struct loaded_l10nfile *_nl_loaded_domains;
+    established bindings.  */
+ struct loaded_l10nfile *
+ internal_function
+-_nl_find_domain (dirname, locale, domainname, domainbinding)
+-     const char *dirname;
+-     char *locale;
+-     const char *domainname;
+-     struct binding *domainbinding;
++_nl_find_domain (const char *dirname, char *locale, const char *domainname,
++		 struct binding *domainbinding)
+ {
+   struct loaded_l10nfile *retval;
+   const char *language;
+diff --git a/intl/gettext.c b/intl/gettext.c
+index fbc598407d9a7e3a..028f0e713971b475 100644
+--- a/intl/gettext.c
++++ b/intl/gettext.c
+@@ -52,8 +52,7 @@
+    LC_MESSAGES locale.  If not found, returns MSGID itself (the default
+    text).  */
+ char *
+-GETTEXT (msgid)
+-     const char *msgid;
++GETTEXT (const char *msgid)
+ {
+   return DCGETTEXT (NULL, msgid, LC_MESSAGES);
+ }
+diff --git a/intl/hash-string.c b/intl/hash-string.c
+index 1b6cfa01b683a9f2..cf267492cc8d3834 100644
+--- a/intl/hash-string.c
++++ b/intl/hash-string.c
+@@ -23,8 +23,7 @@
+    [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools,
+    1986, 1987 Bell Telephone Laboratories, Inc.]  */
+ unsigned long int
+-__hash_string (str_param)
+-     const char *str_param;
++__hash_string (const char *str_param)
+ {
+   unsigned long int hval, g;
+   const char *str = str_param;
+diff --git a/intl/l10nflist.c b/intl/l10nflist.c
+index 424f2dffc3d7b8e6..7bc2ec81bbbc3d9c 100644
+--- a/intl/l10nflist.c
++++ b/intl/l10nflist.c
+@@ -69,9 +69,7 @@ static char *stpcpy PARAMS ((char *dest, const char *src));
+ static size_t argz_count__ PARAMS ((const char *argz, size_t len));
+ 
+ static size_t
+-argz_count__ (argz, len)
+-     const char *argz;
+-     size_t len;
++argz_count__ (const char *argz, size_t len)
+ {
+   size_t count = 0;
+   while (len > 0)
+@@ -93,10 +91,7 @@ argz_count__ (argz, len)
+ static void argz_stringify__ PARAMS ((char *argz, size_t len, int sep));
+ 
+ static void
+-argz_stringify__ (argz, len, sep)
+-     char *argz;
+-     size_t len;
+-     int sep;
++argz_stringify__ (char *argz, size_t len, int sep)
+ {
+   while (len > 0)
+     {
+@@ -116,10 +111,7 @@ static char *argz_next__ PARAMS ((char *argz, size_t argz_len,
+ 				  const char *entry));
+ 
+ static char *
+-argz_next__ (argz, argz_len, entry)
+-     char *argz;
+-     size_t argz_len;
+-     const char *entry;
++argz_next__ (char *argz, size_t argz_len, const char *entry)
+ {
+   if (entry)
+     {
+@@ -144,8 +136,7 @@ argz_next__ (argz, argz_len, entry)
+ static int pop PARAMS ((int x));
+ 
+ static inline int
+-pop (x)
+-     int x;
++pop (int x)
+ {
+   /* We assume that no more than 16 bits are used.  */
+   x = ((x & ~0x5555) >> 1) + (x & 0x5555);
+@@ -159,20 +150,12 @@ pop (x)
+ 
+ 
+ struct loaded_l10nfile *
+-_nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
+-		    territory, codeset, normalized_codeset, modifier,
+-		    filename, do_allocate)
+-     struct loaded_l10nfile **l10nfile_list;
+-     const char *dirlist;
+-     size_t dirlist_len;
+-     int mask;
+-     const char *language;
+-     const char *territory;
+-     const char *codeset;
+-     const char *normalized_codeset;
+-     const char *modifier;
+-     const char *filename;
+-     int do_allocate;
++_nl_make_l10nflist (struct loaded_l10nfile **l10nfile_list,
++		    const char *dirlist, size_t dirlist_len,
++		    int mask, const char *language,
++		    const char *territory, const char *codeset,
++		    const char *normalized_codeset, const char *modifier,
++		    const char *filename, int do_allocate)
+ {
+   char *abs_filename;
+   struct loaded_l10nfile *last = NULL;
+@@ -315,9 +298,7 @@ _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
+    names.  The return value is dynamically allocated and has to be
+    freed by the caller.  */
+ const char *
+-_nl_normalize_codeset (codeset, name_len)
+-     const char *codeset;
+-     size_t name_len;
++_nl_normalize_codeset (const char *codeset, size_t name_len)
+ {
+   int len = 0;
+   int only_digit = 1;
+@@ -368,9 +349,7 @@ _nl_normalize_codeset (codeset, name_len)
+    to be defined.  */
+ #if !_LIBC && !HAVE_STPCPY
+ static char *
+-stpcpy (dest, src)
+-     char *dest;
+-     const char *src;
++stpcpy (char *dest, const char *src)
+ {
+   while ((*dest++ = *src++) != '\0')
+     /* Do nothing. */ ;
+diff --git a/intl/loadmsgcat.c b/intl/loadmsgcat.c
+index 243783a9ac4d0929..8ee719d9c3034724 100644
+--- a/intl/loadmsgcat.c
++++ b/intl/loadmsgcat.c
+@@ -487,8 +487,7 @@ int _nl_msg_cat_cntr;
+ 
+ /* Expand a system dependent string segment.  Return NULL if unsupported.  */
+ static const char *
+-get_sysdep_segment_value (name)
+-     const char *name;
++get_sysdep_segment_value (const char *name)
+ {
+   /* Test for an ISO C 99 section 7.8.1 format string directive.
+      Syntax:
+@@ -757,9 +756,8 @@ get_sysdep_segment_value (name)
+    message catalog do nothing.  */
+ void
+ internal_function
+-_nl_load_domain (domain_file, domainbinding)
+-     struct loaded_l10nfile *domain_file;
+-     struct binding *domainbinding;
++_nl_load_domain (struct loaded_l10nfile *domain_file,
++		 struct binding *domainbinding)
+ {
+   __libc_lock_define_initialized_recursive (static, lock);
+   int fd = -1;
+@@ -1278,8 +1276,7 @@ _nl_load_domain (domain_file, domainbinding)
+ #ifdef _LIBC
+ void
+ internal_function __libc_freeres_fn_section
+-_nl_unload_domain (domain)
+-     struct loaded_domain *domain;
++_nl_unload_domain (struct loaded_domain *domain)
+ {
+   size_t i;
+ 
+diff --git a/intl/localealias.c b/intl/localealias.c
+index 2f067dfe2cd7a130..29eef89c9e3d86bc 100644
+--- a/intl/localealias.c
++++ b/intl/localealias.c
+@@ -137,8 +137,7 @@ static int alias_compare PARAMS ((const struct alias_map *map1,
+ 
+ 
+ const char *
+-_nl_expand_alias (name)
+-    const char *name;
++_nl_expand_alias (const char *name)
+ {
+   static const char *locale_alias_path = LOCALE_ALIAS_PATH;
+   struct alias_map *retval;
+@@ -200,9 +199,7 @@ _nl_expand_alias (name)
+ 
+ static size_t
+ internal_function
+-read_alias_file (fname, fname_len)
+-     const char *fname;
+-     int fname_len;
++read_alias_file (const char *fname, int fname_len)
+ {
+   FILE *fp;
+   char *full_fname;
+@@ -381,9 +378,7 @@ extend_alias_table (void)
+ 
+ 
+ static int
+-alias_compare (map1, map2)
+-     const struct alias_map *map1;
+-     const struct alias_map *map2;
++alias_compare (const struct alias_map *map1, const struct alias_map *map2)
+ {
+ #if defined _LIBC || defined HAVE_STRCASECMP
+   return strcasecmp (map1->alias, map2->alias);
+diff --git a/intl/ngettext.c b/intl/ngettext.c
+index 109e9da0e5cdc5d4..f3f8e076a1fc55aa 100644
+--- a/intl/ngettext.c
++++ b/intl/ngettext.c
+@@ -54,10 +54,7 @@
+    LC_MESSAGES locale.  If not found, returns MSGID itself (the default
+    text).  */
+ char *
+-NGETTEXT (msgid1, msgid2, n)
+-     const char *msgid1;
+-     const char *msgid2;
+-     unsigned long int n;
++NGETTEXT (const char *msgid1, const char *msgid2, unsigned long int n)
+ {
+   return DCNGETTEXT (NULL, msgid1, msgid2, n, LC_MESSAGES);
+ }
+diff --git a/intl/plural-eval.c b/intl/plural-eval.c
+index e692e379b14100b7..d44eb257e466e852 100644
+--- a/intl/plural-eval.c
++++ b/intl/plural-eval.c
+@@ -22,9 +22,7 @@ static unsigned long int plural_eval (const struct expression *pexp,
+ 
+ static unsigned long int
+ internal_function
+-plural_eval (pexp, n)
+-     const struct expression *pexp;
+-     unsigned long int n;
++plural_eval (const struct expression *pexp, unsigned long int n)
+ {
+   switch (pexp->nargs)
+     {
+diff --git a/intl/plural-exp.c b/intl/plural-exp.c
+index e157bba4adfca8df..abfbf0a1ef26a76d 100644
+--- a/intl/plural-exp.c
++++ b/intl/plural-exp.c
+@@ -96,10 +96,9 @@ init_germanic_plural (void)
+ 
+ void
+ internal_function
+-EXTRACT_PLURAL_EXPRESSION (nullentry, pluralp, npluralsp)
+-     const char *nullentry;
+-     const struct expression **pluralp;
+-     unsigned long int *npluralsp;
++EXTRACT_PLURAL_EXPRESSION (const char *nullentry,
++			   const struct expression **pluralp,
++			   unsigned long int *npluralsp)
+ {
+   if (nullentry != NULL)
+     {
+diff --git a/intl/plural.c b/intl/plural.c
+index 0d8bf4c6d59ff646..3898ab6aeaadcc2d 100644
+--- a/intl/plural.c
++++ b/intl/plural.c
+@@ -212,10 +212,7 @@ static void yyerror PARAMS ((const char *str));
+ /* Allocation of expressions.  */
+ 
+ static struct expression *
+-new_exp (nargs, op, args)
+-     int nargs;
+-     enum operator op;
+-     struct expression * const *args;
++new_exp (int nargs, enum operator op, struct expression * const *args)
+ {
+   int i;
+   struct expression *newp;
+@@ -244,16 +241,13 @@ new_exp (nargs, op, args)
+ }
+ 
+ static inline struct expression *
+-new_exp_0 (op)
+-     enum operator op;
++new_exp_0 (enum operator op)
+ {
+   return new_exp (0, op, NULL);
+ }
+ 
+ static inline struct expression *
+-new_exp_1 (op, right)
+-     enum operator op;
+-     struct expression *right;
++new_exp_1 (enum operator op, struct expression *right)
+ {
+   struct expression *args[1];
+ 
+@@ -262,10 +256,7 @@ new_exp_1 (op, right)
+ }
+ 
+ static struct expression *
+-new_exp_2 (op, left, right)
+-     enum operator op;
+-     struct expression *left;
+-     struct expression *right;
++new_exp_2 (enum operator op, struct expression *left, struct expression *right)
+ {
+   struct expression *args[2];
+ 
+@@ -275,11 +266,8 @@ new_exp_2 (op, left, right)
+ }
+ 
+ static inline struct expression *
+-new_exp_3 (op, bexp, tbranch, fbranch)
+-     enum operator op;
+-     struct expression *bexp;
+-     struct expression *tbranch;
+-     struct expression *fbranch;
++new_exp_3 (enum operator op, struct expression *bexp,
++	   struct expression *tbranch, struct expression *fbranch)
+ {
+   struct expression *args[3];
+ 
+@@ -1874,8 +1862,7 @@ yyreturn:
+ 
+ void
+ internal_function
+-FREE_EXPRESSION (exp)
+-     struct expression *exp;
++FREE_EXPRESSION (struct expression *exp)
+ {
+   if (exp == NULL)
+     return;
+@@ -1901,9 +1888,7 @@ FREE_EXPRESSION (exp)
+ 
+ 
+ static int
+-yylex (lval, pexp)
+-     YYSTYPE *lval;
+-     const char **pexp;
++yylex (YYSTYPE *lval, const char **pexp)
+ {
+   const char *exp = *pexp;
+   int result;
+@@ -2046,8 +2031,7 @@ yylex (lval, pexp)
+ 
+ 
+ static void
+-yyerror (str)
+-     const char *str;
++yyerror (const char *str)
+ {
+   /* Do nothing.  We don't print error messages here.  */
+ }
+diff --git a/intl/plural.y b/intl/plural.y
+index 2df3604dcf7ecfb6..7cfac172bd157b8a 100644
+--- a/intl/plural.y
++++ b/intl/plural.y
+@@ -72,10 +72,7 @@ static void yyerror PARAMS ((const char *str));
+ /* Allocation of expressions.  */
+ 
+ static struct expression *
+-new_exp (nargs, op, args)
+-     int nargs;
+-     enum operator op;
+-     struct expression * const *args;
++new_exp (int nargs, enum operator op, struct expression * const *args)
+ {
+   int i;
+   struct expression *newp;
+@@ -104,16 +101,13 @@ new_exp (nargs, op, args)
+ }
+ 
+ static inline struct expression *
+-new_exp_0 (op)
+-     enum operator op;
++new_exp_0 (enum operator op)
+ {
+   return new_exp (0, op, NULL);
+ }
+ 
+ static inline struct expression *
+-new_exp_1 (op, right)
+-     enum operator op;
+-     struct expression *right;
++new_exp_1 (enum operator op, struct expression *right)
+ {
+   struct expression *args[1];
+ 
+@@ -122,10 +116,7 @@ new_exp_1 (op, right)
+ }
+ 
+ static struct expression *
+-new_exp_2 (op, left, right)
+-     enum operator op;
+-     struct expression *left;
+-     struct expression *right;
++new_exp_2 (enum operator op, struct expression *left, struct expression *right)
+ {
+   struct expression *args[2];
+ 
+@@ -135,11 +126,8 @@ new_exp_2 (op, left, right)
+ }
+ 
+ static inline struct expression *
+-new_exp_3 (op, bexp, tbranch, fbranch)
+-     enum operator op;
+-     struct expression *bexp;
+-     struct expression *tbranch;
+-     struct expression *fbranch;
++new_exp_3 (enum operator op, struct expression *bexp,
++	   struct expression *tbranch, struct expression *fbranch)
+ {
+   struct expression *args[3];
+ 
+@@ -230,8 +218,7 @@ exp:	  exp '?' exp ':' exp
+ 
+ void
+ internal_function
+-FREE_EXPRESSION (exp)
+-     struct expression *exp;
++FREE_EXPRESSION (struct expression *exp)
+ {
+   if (exp == NULL)
+     return;
+@@ -257,9 +244,7 @@ FREE_EXPRESSION (exp)
+ 
+ 
+ static int
+-yylex (lval, pexp)
+-     YYSTYPE *lval;
+-     const char **pexp;
++yylex (YYSTYPE *lval, const char **pexp)
+ {
+   const char *exp = *pexp;
+   int result;
+@@ -402,8 +387,7 @@ yylex (lval, pexp)
+ 
+ 
+ static void
+-yyerror (str)
+-     const char *str;
++yyerror (const char *str)
+ {
+   /* Do nothing.  We don't print error messages here.  */
+ }
+diff --git a/intl/textdomain.c b/intl/textdomain.c
+index 35fb2e4c9951fe74..7d1029fa02ffdb34 100644
+--- a/intl/textdomain.c
++++ b/intl/textdomain.c
+@@ -77,8 +77,7 @@ __libc_rwlock_define (extern, _nl_state_lock attribute_hidden)
+    If DOMAINNAME is null, return the current default.
+    If DOMAINNAME is "", reset to the default of "messages".  */
+ char *
+-TEXTDOMAIN (domainname)
+-     const char *domainname;
++TEXTDOMAIN (const char *domainname)
+ {
+   char *new_domain;
+   char *old_domain;
diff --git a/SOURCES/glibc-rh1505492-prototypes-libc_fatal.patch b/SOURCES/glibc-rh1505492-prototypes-libc_fatal.patch
new file mode 100644
index 0000000..f0485a0
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-libc_fatal.patch
@@ -0,0 +1,23 @@
+Introduce prototype-style definition for __libc_fatal.  Upstream, this
+was done as part of:
+
+commit a600e5cef53e10147932d910cdb2fdfc62afae4e
+Author: Roland McGrath <roland@hack.frob.com>
+Date:   Tue Mar 19 17:07:15 2013 -0700
+
+    Consolidate Linux and POSIX libc_fatal code.
+
+diff --git a/sysdeps/unix/sysv/linux/libc_fatal.c b/sysdeps/unix/sysv/linux/libc_fatal.c
+index 6cc96d76e98fe191..90dd6265152824e5 100644
+--- a/sysdeps/unix/sysv/linux/libc_fatal.c
++++ b/sysdeps/unix/sysv/linux/libc_fatal.c
+@@ -199,8 +199,7 @@ __libc_message (int do_abort, const char *fmt, ...)
+ 
+ 
+ void
+-__libc_fatal (message)
+-     const char *message;
++__libc_fatal (const char *message)
+ {
+   /* The loop is added only to keep gcc happy.  */
+   while (1)
diff --git a/SOURCES/glibc-rh1505492-prototypes-memchr.patch b/SOURCES/glibc-rh1505492-prototypes-memchr.patch
new file mode 100644
index 0000000..1bc7a67
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-memchr.patch
@@ -0,0 +1,25 @@
+Introduce prototype-style function definitin for generic memchr.
+Upstream did this as part of:
+
+commit 1570a72bb8359c9a3a64c4e22d9ea47ce6fcff31
+Author: Will Newton <will.newton@linaro.org>
+Date:   Thu Jun 26 16:00:44 2014 +0100
+
+    string/memchr.c: Merge from gnulib
+
+diff --git a/string/memchr.c b/string/memchr.c
+index d1880cfbaed951a6..f4650672e01385de 100644
+--- a/string/memchr.c
++++ b/string/memchr.c
+@@ -57,10 +57,7 @@
+ 
+ /* Search no more than N bytes of S for C.  */
+ __ptr_t
+-MEMCHR (s, c_in, n)
+-     const __ptr_t s;
+-     int c_in;
+-     size_t n;
++MEMCHR (const __ptr_t s, int c_in, size_t n)
+ {
+   const unsigned char *char_ptr;
+   const unsigned long int *longword_ptr;
diff --git a/SOURCES/glibc-rh1505492-prototypes-no_cancellation.patch b/SOURCES/glibc-rh1505492-prototypes-no_cancellation.patch
new file mode 100644
index 0000000..0c7e7c6
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-no_cancellation.patch
@@ -0,0 +1,25 @@
+Adjust various functions to prototype style which are defined under
+NO_CANCELLATION conditionals.
+
+Upstream, the function definitions were removed in:
+
+commit c6bb095eb544aa32d3f4b8e9aa434d686915446e
+Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+Date:   Sun Sep 28 08:46:23 2014 -0300
+
+    nptl: Rewrite cancellation macros
+
+diff --git a/sysdeps/unix/sysv/linux/sigsuspend.c b/sysdeps/unix/sysv/linux/sigsuspend.c
+index 1cd1de88d303fd66..e5ae86382bc74c7d 100644
+--- a/sysdeps/unix/sysv/linux/sigsuspend.c
++++ b/sysdeps/unix/sysv/linux/sigsuspend.c
+@@ -53,8 +53,7 @@ strong_alias (__sigsuspend, __libc_sigsuspend)
+ 
+ #ifndef NO_CANCELLATION
+ int
+-__sigsuspend_nocancel (set)
+-     const sigset_t *set;
++__sigsuspend_nocancel (const sigset_t *set)
+ {
+   return do_sigsuspend (set);
+ }
diff --git a/SOURCES/glibc-rh1505492-prototypes-powerpc-memmove.patch b/SOURCES/glibc-rh1505492-prototypes-powerpc-memmove.patch
new file mode 100644
index 0000000..624fe58
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-powerpc-memmove.patch
@@ -0,0 +1,25 @@
+Introduce prototype-style function definition for POWER memmove.
+Upstream removed the old-style definition in:
+
+commit d6f68bbef4427850c2901728a1d13efc0e687297
+Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+Date:   Tue Jun 24 06:42:31 2014 -0500
+
+    PowerPC: memmove default implementation cleanup
+
+diff --git a/sysdeps/powerpc/memmove.c b/sysdeps/powerpc/memmove.c
+index 50734e45458352c5..7d736bc0b0eb7d63 100644
+--- a/sysdeps/powerpc/memmove.c
++++ b/sysdeps/powerpc/memmove.c
+@@ -40,10 +40,7 @@
+ #endif
+ 
+ rettype
+-MEMMOVE (a1, a2, len)
+-     a1const void *a1;
+-     a2const void *a2;
+-     size_t len;
++MEMMOVE (a1const void *a1, a2const void *a2, size_t len)
+ {
+   unsigned long int dstp = (long int) dest;
+   unsigned long int srcp = (long int) src;
diff --git a/SOURCES/glibc-rh1505492-prototypes-powerpc-pread-pwrite.patch b/SOURCES/glibc-rh1505492-prototypes-powerpc-pread-pwrite.patch
new file mode 100644
index 0000000..4877e57
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-powerpc-pread-pwrite.patch
@@ -0,0 +1,78 @@
+Introduce prototype-style function definitions for pread, pwrite,
+pread64, pwrite64.  Upstream removed the old-style function definitions
+in:
+
+commit 94a42455257226361fedf37a0ad7fc1d9d131645
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Fri Oct 31 21:13:32 2014 +0000
+
+    Move powerpc64 pread/pwrite definitions to syscalls.list (bug 14138).
+
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c
+index 43ead1af67b0c0da..010fca1b6bb0d4b0 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c
+@@ -29,11 +29,7 @@
+ /* Consider moving to syscalls.list.  */
+ 
+ ssize_t
+-__libc_pread (fd, buf, count, offset)
+-     int fd;
+-     void *buf;
+-     size_t count;
+-     off_t offset;
++__libc_pread (int fd, void *buf, size_t count, off_t offset)
+ {
+   ssize_t result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c
+index dc9fc81c4ccf067e..bcf1bebd75ebf8f5 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c
+@@ -28,11 +28,7 @@
+ /* Consider moving to syscalls.list.  */
+ 
+ ssize_t
+-__libc_pread64 (fd, buf, count, offset)
+-     int fd;
+-     void *buf;
+-     size_t count;
+-     off64_t offset;
++__libc_pread64 (int fd, void *buf, size_t count, off64_t offset)
+ {
+   ssize_t result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c
+index 57c62bdb74805836..ff9f5c4d8ef3e26d 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c
+@@ -29,11 +29,7 @@
+ /* Consider moving to syscalls.list.  */
+ 
+ ssize_t
+-__libc_pwrite (fd, buf, count, offset)
+-     int fd;
+-     const void *buf;
+-     size_t count;
+-     off_t offset;
++__libc_pwrite (int fd, const void *buf, size_t count, off_t offset)
+ {
+   ssize_t result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c
+index 430bb4ef2bd2eb3e..b2f630396cf53b39 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c
+@@ -28,11 +28,7 @@
+ /* Consider moving to syscalls.list.  */
+ 
+ ssize_t
+-__libc_pwrite64 (fd, buf, count, offset)
+-     int fd;
+-     const void *buf;
+-     size_t count;
+-     off64_t offset;
++__libc_pwrite64 (int fd, const void *buf, size_t count, off64_t offset)
+ {
+   ssize_t result;
+ 
diff --git a/SOURCES/glibc-rh1505492-prototypes-powerpc-wcscpy.patch b/SOURCES/glibc-rh1505492-prototypes-powerpc-wcscpy.patch
new file mode 100644
index 0000000..1ddf7c4
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-powerpc-wcscpy.patch
@@ -0,0 +1,24 @@
+Introduce prototype-style function definition for wcscpy on 32-bit
+POWER.  The old-style function definition was removed upstream in:
+
+commit 93be09e7259caf227dd586404f3c74b61c830cb4
+Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+Date:   Mon Oct 14 09:43:31 2013 -0500
+
+    PowerPC: multiarch wcscpy for PowerPC32
+
+diff --git a/sysdeps/powerpc/powerpc32/power6/wcscpy.c b/sysdeps/powerpc/powerpc32/power6/wcscpy.c
+index 9bd907788e6f2337..0af09793f7ce43e0 100644
+--- a/sysdeps/powerpc/powerpc32/power6/wcscpy.c
++++ b/sysdeps/powerpc/powerpc32/power6/wcscpy.c
+@@ -22,9 +22,7 @@
+ 
+ /* Copy SRC to DEST.  */
+ wchar_t *
+-wcscpy (dest, src)
+-     wchar_t *dest;
+-     const wchar_t *src;
++wcscpy (wchar_t *dest, const wchar_t *src)
+ {
+   wint_t c,d;
+   wchar_t *wcp, *wcp2;
diff --git a/SOURCES/glibc-rh1505492-prototypes-powerpc-wordcopy.patch b/SOURCES/glibc-rh1505492-prototypes-powerpc-wordcopy.patch
new file mode 100644
index 0000000..2333102
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-powerpc-wordcopy.patch
@@ -0,0 +1,113 @@
+Introduce prototype-style function definitions for the POWER wordcopy
+functions.  Upstream, this happened as a side-effect of this commit:
+
+commit ea5a72f882f878a5ea00d69e56a19c2fc3fd2d2a
+Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+Date:   Mon Oct 14 09:59:59 2013 -0500
+
+    PowerPC: multiarch wordcopy routines for PowerPC32
+
+diff --git a/sysdeps/powerpc/powerpc32/power4/wordcopy.c b/sysdeps/powerpc/powerpc32/power4/wordcopy.c
+index e8a35eaeef6e92fe..233a183cd8d8cf8b 100644
+--- a/sysdeps/powerpc/powerpc32/power4/wordcopy.c
++++ b/sysdeps/powerpc/powerpc32/power4/wordcopy.c
+@@ -27,10 +27,7 @@
+    Both SRCP and DSTP should be aligned for memory operations on `op_t's.  */
+ 
+ void
+-_wordcopy_fwd_aligned (dstp, srcp, len)
+-     long int dstp;
+-     long int srcp;
+-     size_t len;
++_wordcopy_fwd_aligned (long int dstp, long int srcp, size_t len)
+ {
+   op_t a0, a1;
+ 
+@@ -65,10 +62,7 @@ _wordcopy_fwd_aligned (dstp, srcp, len)
+    *not* be aligned.  */
+ 
+ void
+-_wordcopy_fwd_dest_aligned (dstp, srcp, len)
+-     long int dstp;
+-     long int srcp;
+-     size_t len;
++_wordcopy_fwd_dest_aligned (long int dstp, long int srcp, size_t len)
+ {
+   op_t a0, a1, a2;
+   int sh_1, sh_2;
+@@ -119,10 +113,7 @@ _wordcopy_fwd_dest_aligned (dstp, srcp, len)
+    operations on `op_t's.  */
+ 
+ void
+-_wordcopy_bwd_aligned (dstp, srcp, len)
+-     long int dstp;
+-     long int srcp;
+-     size_t len;
++_wordcopy_bwd_aligned (long int dstp, long int srcp, size_t len)
+ {
+   op_t a0, a1;
+ 
+@@ -158,10 +149,7 @@ _wordcopy_bwd_aligned (dstp, srcp, len)
+    operations on `op_t', but SRCP must *not* be aligned.  */
+ 
+ void
+-_wordcopy_bwd_dest_aligned (dstp, srcp, len)
+-     long int dstp;
+-     long int srcp;
+-     size_t len;
++_wordcopy_bwd_dest_aligned (long int dstp, long int srcp, size_t len)
+ {
+   op_t a0, a1, a2;
+   int sh_1, sh_2;
+diff --git a/sysdeps/powerpc/powerpc32/power6/wordcopy.c b/sysdeps/powerpc/powerpc32/power6/wordcopy.c
+index 698b82f4fbda9445..bee5e9d53e5fd780 100644
+--- a/sysdeps/powerpc/powerpc32/power6/wordcopy.c
++++ b/sysdeps/powerpc/powerpc32/power6/wordcopy.c
+@@ -28,10 +28,7 @@
+    Both SRCP and DSTP should be aligned for memory operations on `op_t's.  */
+ 
+ void
+-_wordcopy_fwd_aligned (dstp, srcp, len)
+-     long int dstp;
+-     long int srcp;
+-     size_t len;
++_wordcopy_fwd_aligned (long int dstp, long int srcp, size_t len)
+ {
+   op_t a0, a1;
+ 
+@@ -80,10 +77,7 @@ _wordcopy_fwd_aligned (dstp, srcp, len)
+   while (len != 0)
+ 
+ void
+-_wordcopy_fwd_dest_aligned (dstp, srcp, len)
+-     long int dstp;
+-     long int srcp;
+-     size_t len;
++_wordcopy_fwd_dest_aligned (long int dstp, long int srcp, size_t len)
+ {
+   op_t a0, a1, a2;
+   int sh_1, sh_2;
+@@ -125,10 +119,7 @@ _wordcopy_fwd_dest_aligned (dstp, srcp, len)
+    operations on `op_t's.  */
+ 
+ void
+-_wordcopy_bwd_aligned (dstp, srcp, len)
+-     long int dstp;
+-     long int srcp;
+-     size_t len;
++_wordcopy_bwd_aligned (long int dstp, long int srcp, size_t len)
+ {
+   op_t a0, a1;
+ 
+@@ -178,10 +169,7 @@ _wordcopy_bwd_aligned (dstp, srcp, len)
+    operations on `op_t', but SRCP must *not* be aligned.  */
+ 
+ void
+-_wordcopy_bwd_dest_aligned (dstp, srcp, len)
+-     long int dstp;
+-     long int srcp;
+-     size_t len;
++_wordcopy_bwd_dest_aligned (long int dstp, long int srcp, size_t len)
+ {
+   op_t a0, a1, a2;
+   int sh_1, sh_2;
diff --git a/SOURCES/glibc-rh1505492-prototypes-putXent.patch b/SOURCES/glibc-rh1505492-prototypes-putXent.patch
new file mode 100644
index 0000000..4dc5b1e
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-putXent.patch
@@ -0,0 +1,39 @@
+Introduce prototype-style definitions for putgrent, putpwent.  Upstream,
+this was done as part of this commit (not backported here):
+
+commit 676599b36a92f3c201c5682ee7a5caddd9f370a4
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Fri Oct 2 11:34:13 2015 +0200
+
+    Harden putpwent, putgrent, putspent, putspent against injection [BZ #18724]
+
+diff --git a/grp/putgrent.c b/grp/putgrent.c
+index 176a7a15d8bb6ec2..1d69136c30c81bcd 100644
+--- a/grp/putgrent.c
++++ b/grp/putgrent.c
+@@ -27,9 +27,7 @@
+ /* Write an entry to the given stream.
+    This must know the format of the group file.  */
+ int
+-putgrent (gr, stream)
+-     const struct group *gr;
+-     FILE *stream;
++putgrent (const struct group *gr, FILE *stream)
+ {
+   int retval;
+ 
+diff --git a/pwd/putpwent.c b/pwd/putpwent.c
+index e9470ed1012a1789..9a9f04dcf4b596ee 100644
+--- a/pwd/putpwent.c
++++ b/pwd/putpwent.c
+@@ -24,9 +24,7 @@
+ /* Write an entry to the given stream.
+    This must know the format of the password file.  */
+ int
+-putpwent (p, stream)
+-     const struct passwd *p;
+-     FILE *stream;
++putpwent (const struct passwd *p, FILE *stream)
+ {
+   if (p == NULL || stream == NULL)
+     {
diff --git a/SOURCES/glibc-rh1505492-prototypes-readv-writev.patch b/SOURCES/glibc-rh1505492-prototypes-readv-writev.patch
new file mode 100644
index 0000000..63d3fd9
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-readv-writev.patch
@@ -0,0 +1,41 @@
+Introduce prototype-style function definitions for readv and writev.
+Upstream, the old-style function definitions were removed in:
+
+commit 42b7f5d48549b85386a9b28a1a90e66fd81ba273
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Mon Oct 20 15:49:08 2014 +0000
+
+    Move readv and writev definitions to syscalls.list (bug 14138).
+
+diff --git a/sysdeps/unix/sysv/linux/readv.c b/sysdeps/unix/sysv/linux/readv.c
+index e8acd65ce377963a..e49d54ede39d45af 100644
+--- a/sysdeps/unix/sysv/linux/readv.c
++++ b/sysdeps/unix/sysv/linux/readv.c
+@@ -39,10 +39,7 @@ static ssize_t __atomic_readv_replacement (int, const struct iovec *,
+ 
+ 
+ ssize_t
+-__libc_readv (fd, vector, count)
+-     int fd;
+-     const struct iovec *vector;
+-     int count;
++__libc_readv (int fd, const struct iovec *vector, int count)
+ {
+   ssize_t result;
+ 
+diff --git a/sysdeps/unix/sysv/linux/writev.c b/sysdeps/unix/sysv/linux/writev.c
+index 8b018ecdf6fbc323..847a1057aa443238 100644
+--- a/sysdeps/unix/sysv/linux/writev.c
++++ b/sysdeps/unix/sysv/linux/writev.c
+@@ -38,10 +38,7 @@ static ssize_t __atomic_writev_replacement (int, const struct iovec *,
+ 
+ 
+ ssize_t
+-__libc_writev (fd, vector, count)
+-     int fd;
+-     const struct iovec *vector;
+-     int count;
++__libc_writev (int fd, const struct iovec *vector, int count)
+ {
+   ssize_t result;
+ 
diff --git a/SOURCES/glibc-rh1505492-prototypes-rtkaio.patch b/SOURCES/glibc-rh1505492-prototypes-rtkaio.patch
new file mode 100644
index 0000000..c58846f
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-rtkaio.patch
@@ -0,0 +1,63 @@
+Introduce prototype-style function definitions to rtkaio (which is not
+upstream).
+
+diff --git a/rtkaio/sysdeps/unix/sysv/linux/kaio_cancel.c b/rtkaio/sysdeps/unix/sysv/linux/kaio_cancel.c
+index 018ccb6941d49e26..a531f7d5047860b8 100644
+--- a/rtkaio/sysdeps/unix/sysv/linux/kaio_cancel.c
++++ b/rtkaio/sysdeps/unix/sysv/linux/kaio_cancel.c
+@@ -42,9 +42,7 @@
+ #include <errno.h>
+ 
+ int
+-aio_cancel (fildes, aiocbp)
+-     int fildes;
+-     struct aiocb *aiocbp;
++aio_cancel (int fildes, struct aiocb *aiocbp)
+ {
+   struct requestlist *req = NULL;
+   int result = AIO_ALLDONE;
+diff --git a/rtkaio/sysdeps/unix/sysv/linux/kaio_error.c b/rtkaio/sysdeps/unix/sysv/linux/kaio_error.c
+index 23859c363a42bfc2..bc582cd3395b622e 100644
+--- a/rtkaio/sysdeps/unix/sysv/linux/kaio_error.c
++++ b/rtkaio/sysdeps/unix/sysv/linux/kaio_error.c
+@@ -37,8 +37,7 @@
+ #include <errno.h>
+ 
+ int
+-aio_error (aiocbp)
+-     const struct aiocb *aiocbp;
++aio_error (const struct aiocb *aiocbp)
+ {
+   int ret = aiocbp->__error_code;
+ 
+diff --git a/rtkaio/sysdeps/unix/sysv/linux/kaio_return.c b/rtkaio/sysdeps/unix/sysv/linux/kaio_return.c
+index 1d9f6cbabb8436e1..9d052d47b6f6b4b5 100644
+--- a/rtkaio/sysdeps/unix/sysv/linux/kaio_return.c
++++ b/rtkaio/sysdeps/unix/sysv/linux/kaio_return.c
+@@ -38,8 +38,7 @@
+ #include <errno.h>
+ 
+ ssize_t
+-aio_return (aiocbp)
+-     struct aiocb *aiocbp;
++aio_return (struct aiocb *aiocbp)
+ {
+   if (aiocbp->__error_code == EINPROGRESS)
+     __aio_read_one_event ();
+diff --git a/rtkaio/sysdeps/unix/sysv/linux/kaio_suspend.c b/rtkaio/sysdeps/unix/sysv/linux/kaio_suspend.c
+index 6c7b59c6fb0783b5..011393ea4c311d79 100644
+--- a/rtkaio/sysdeps/unix/sysv/linux/kaio_suspend.c
++++ b/rtkaio/sysdeps/unix/sysv/linux/kaio_suspend.c
+@@ -102,10 +102,8 @@ cleanup (void *arg)
+ 
+ 
+ int
+-aio_suspend (list, nent, timeout)
+-     const struct aiocb *const list[];
+-     int nent;
+-     const struct timespec *timeout;
++aio_suspend (const struct aiocb *const list[], int nent,
++	     const struct timespec *timeout)
+ {
+   if (__builtin_expect (nent < 0, 0))
+     {
diff --git a/SOURCES/glibc-rh1505492-prototypes-rwlock.patch b/SOURCES/glibc-rh1505492-prototypes-rwlock.patch
new file mode 100644
index 0000000..f308e9b
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-rwlock.patch
@@ -0,0 +1,38 @@
+Introduce prototype-style function definitions for
+__pthread_rwlock_rdlock, __pthread_rwlock_wrlock.  Upstream did this as
+part of:
+
+commit a832bdd36203fcb37fa5ad25200ef3c1ae205efe
+Author: Andi Kleen <ak@linux.intel.com>
+Date:   Mon Mar 17 05:48:28 2014 -0700
+
+    Add a fast path for C rd/wrlock v2
+
+diff --git a/nptl/pthread_rwlock_rdlock.c b/nptl/pthread_rwlock_rdlock.c
+index 2c176c7cb9ab4b7f..4c397d784b82a510 100644
+--- a/nptl/pthread_rwlock_rdlock.c
++++ b/nptl/pthread_rwlock_rdlock.c
+@@ -26,8 +26,7 @@
+ 
+ /* Acquire read lock for RWLOCK.  */
+ int
+-__pthread_rwlock_rdlock (rwlock)
+-     pthread_rwlock_t *rwlock;
++__pthread_rwlock_rdlock (pthread_rwlock_t *rwlock)
+ {
+   int result = 0;
+ 
+diff --git a/nptl/pthread_rwlock_wrlock.c b/nptl/pthread_rwlock_wrlock.c
+index 1476d1370d56475a..3dcc42b774eef8de 100644
+--- a/nptl/pthread_rwlock_wrlock.c
++++ b/nptl/pthread_rwlock_wrlock.c
+@@ -26,8 +26,7 @@
+ 
+ /* Acquire write lock for RWLOCK.  */
+ int
+-__pthread_rwlock_wrlock (rwlock)
+-     pthread_rwlock_t *rwlock;
++__pthread_rwlock_wrlock (pthread_rwlock_t *rwlock)
+ {
+   int result = 0;
+ 
diff --git a/SOURCES/glibc-rh1505492-prototypes-s390-pthread_once.patch b/SOURCES/glibc-rh1505492-prototypes-s390-pthread_once.patch
new file mode 100644
index 0000000..93d5f57
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-s390-pthread_once.patch
@@ -0,0 +1,24 @@
+Introduce protype-style function definition for S390 pthread_once.  The
+old-style function definition was removed upstream in:
+
+commit bc89c0fc70ba952f78fc27fc261ec209be0a6732
+Author: Torvald Riegel <triegel@redhat.com>
+Date:   Mon Dec 8 18:32:14 2014 +0100
+
+    Remove custom pthread_once implementation on s390.
+
+diff --git a/nptl/sysdeps/unix/sysv/linux/s390/pthread_once.c b/nptl/sysdeps/unix/sysv/linux/s390/pthread_once.c
+index cd53d77c163661c5..4bce7fec13ea3bb2 100644
+--- a/nptl/sysdeps/unix/sysv/linux/s390/pthread_once.c
++++ b/nptl/sysdeps/unix/sysv/linux/s390/pthread_once.c
+@@ -34,9 +34,7 @@ clear_once_control (void *arg)
+ 
+ 
+ int
+-__pthread_once (once_control, init_routine)
+-     pthread_once_t *once_control;
+-     void (*init_routine) (void);
++__pthread_once (pthread_once_t *once_control, void (*init_routine) (void))
+ {
+   while (1)
+     {
diff --git a/SOURCES/glibc-rh1505492-prototypes-scandir.patch b/SOURCES/glibc-rh1505492-prototypes-scandir.patch
new file mode 100644
index 0000000..8d94766
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-scandir.patch
@@ -0,0 +1,51 @@
+Introduce prototypes for scandir, scandirat.  This was implemented
+upstream in:
+
+commit d2ee815ad677bba720c4f0275c1d6065f5809e7a
+Author: Roland McGrath <roland@hack.frob.com>
+Date:   Wed May 13 12:34:11 2015 -0700
+
+    Refactor scandir/scandirat to use common tail.
+
+Not backported here because of its dependency on the fix for
+swbz#17999.
+
+diff --git a/dirent/scandir.c b/dirent/scandir.c
+index 6dce54d64a3effa2..39c4c20e2b22804d 100644
+--- a/dirent/scandir.c
++++ b/dirent/scandir.c
+@@ -34,11 +34,9 @@
+ 
+ 
+ int
+-SCANDIR (dir, namelist, select, cmp)
+-     const char *dir;
+-     DIRENT_TYPE ***namelist;
+-     int (*select) (const DIRENT_TYPE *);
+-     int (*cmp) (const DIRENT_TYPE **, const DIRENT_TYPE **);
++SCANDIR (const char *dir, DIRENT_TYPE ***namelist,
++         int (*select) (const DIRENT_TYPE *),
++         int (*cmp) (const DIRENT_TYPE **, const DIRENT_TYPE **))
+ {
+   return SCANDIRAT (AT_FDCWD, dir, namelist, select, cmp);
+ }
+diff --git a/dirent/scandirat.c b/dirent/scandirat.c
+index c2704baa88ef71d0..0200171a64139933 100644
+--- a/dirent/scandirat.c
++++ b/dirent/scandirat.c
+@@ -52,12 +52,9 @@ __scandir_cancel_handler (void *arg)
+ 
+ 
+ int
+-SCANDIRAT (dfd, dir, namelist, select, cmp)
+-     int dfd;
+-     const char *dir;
+-     DIRENT_TYPE ***namelist;
+-     int (*select) (const DIRENT_TYPE *);
+-     int (*cmp) (const DIRENT_TYPE **, const DIRENT_TYPE **);
++SCANDIRAT (int dfd, const char *dir, DIRENT_TYPE ***namelist,
++	   int (*select) (const DIRENT_TYPE *),
++	   int (*cmp) (const DIRENT_TYPE **, const DIRENT_TYPE **))
+ {
+   DIR *dp = __opendirat (dfd, dir);
+   DIRENT_TYPE **v = NULL;
diff --git a/SOURCES/glibc-rh1505492-prototypes-sem_unlink.patch b/SOURCES/glibc-rh1505492-prototypes-sem_unlink.patch
new file mode 100644
index 0000000..77adeac
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-sem_unlink.patch
@@ -0,0 +1,23 @@
+Introduce prototype-style function definition for sem_unlink.  This
+happened upstream as part of:
+
+commit e4f639e4a106d90c6f3159230788653fd6e40a26
+Author: Roland McGrath <roland@hack.frob.com>
+Date:   Fri Dec 12 13:17:21 2014 -0800
+
+    NPTL: Refactor named semaphore code to use shm-directory.h
+
+diff --git a/nptl/sem_unlink.c b/nptl/sem_unlink.c
+index 610d82e7a6fe5bd1..1523522c41a52d76 100644
+--- a/nptl/sem_unlink.c
++++ b/nptl/sem_unlink.c
+@@ -25,8 +25,7 @@
+ 
+ 
+ int
+-sem_unlink (name)
+-     const char *name;
++sem_unlink (const char *name)
+ {
+   char *fname;
+   size_t namelen;
diff --git a/SOURCES/glibc-rh1505492-prototypes-sigvec.patch b/SOURCES/glibc-rh1505492-prototypes-sigvec.patch
new file mode 100644
index 0000000..ab2582f
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-sigvec.patch
@@ -0,0 +1,63 @@
+Change function declarations and definitions related to sigvec.
+Addressed upstream with the removal of sigvec in this commit:
+
+commit 0781a7772ae1385fe8d7a734fdb35df81b1e6590
+Author: Roland McGrath <roland@hack.frob.com>
+Date:   Fri Nov 14 10:52:16 2014 -0800
+
+    Remove sigvec.
+
+diff --git a/include/signal.h b/include/signal.h
+index a019395882176073..d9f279c9bf0aca3d 100644
+--- a/include/signal.h
++++ b/include/signal.h
+@@ -40,6 +40,7 @@ extern int __sigtimedwait (const sigset_t *__set, siginfo_t *__info,
+ libc_hidden_proto (__sigtimedwait)
+ extern int __sigqueue (__pid_t __pid, int __sig,
+ 		       const union sigval __val);
++struct sigvec;
+ extern int __sigvec (int __sig, const struct sigvec *__vec,
+ 		     struct sigvec *__ovec);
+ extern int __sigreturn (struct sigcontext *__scp);
+diff --git a/signal/sigvec.c b/signal/sigvec.c
+index e44daf1ab6fd2f39..21e304d944e46c18 100644
+--- a/signal/sigvec.c
++++ b/signal/sigvec.c
+@@ -24,10 +24,7 @@
+    reset to SIG_DFL before `sv_handler' is entered.  If OVEC is non-NULL,
+    it is filled in with the old information for SIG.  */
+ int
+-__sigvec (sig, vec, ovec)
+-     int sig;
+-     const struct sigvec *vec;
+-     struct sigvec *ovec;
++__sigvec (int sig, const struct sigvec *vec, struct sigvec *ovec)
+ {
+   __set_errno (ENOSYS);
+   return -1;
+diff --git a/sysdeps/posix/sigvec.c b/sysdeps/posix/sigvec.c
+index 89e3d44d88ce3ee5..6a3ccc8eaf8ae0a5 100644
+--- a/sysdeps/posix/sigvec.c
++++ b/sysdeps/posix/sigvec.c
+@@ -43,10 +43,7 @@ static struct sigvec_wrapper_data sigvec_wrapper_data[NSIG];
+    reset to SIG_DFL before `sv_handler' is entered.  If OVEC is non-NULL,
+    it is filled in with the old information for SIG.  */
+ int
+-__sigvec (sig, vec, ovec)
+-     int sig;
+-     const struct sigvec *vec;
+-     struct sigvec *ovec;
++__sigvec (int sig, const struct sigvec *vec, struct sigvec *ovec)
+ {
+   struct sigaction old;
+ 
+@@ -159,8 +156,7 @@ weak_alias (__sigvec, sigvec)
+ 
+ #ifndef SA_RESETHAND
+ static void
+-sigvec_wrapper_handler (sig)
+-     int sig;
++sigvec_wrapper_handler (int sig)
+ {
+   struct sigvec_wrapper_data *data;
+   struct sigaction act;
diff --git a/SOURCES/glibc-rh1505492-prototypes-stpcpy.patch b/SOURCES/glibc-rh1505492-prototypes-stpcpy.patch
new file mode 100644
index 0000000..3490a18
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-stpcpy.patch
@@ -0,0 +1,24 @@
+Introduce prototype-style function definition for generic stpcpy.
+Upstream part of:
+
+commit 142e0a9953059bcf5667921f2670efec377be3d5
+Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
+Date:   Tue Jul 28 17:12:25 2015 -0300
+
+    powerpc: Use default strcpy optimization for POWER7
+
+diff --git a/string/stpcpy.c b/string/stpcpy.c
+index b74f6e2b489e1f18..8b2c4c5bb7e1ee74 100644
+--- a/string/stpcpy.c
++++ b/string/stpcpy.c
+@@ -36,9 +36,7 @@ extern __typeof (__stpcpy) STPCPY;
+ 
+ /* Copy SRC to DEST, returning the address of the terminating '\0' in DEST.  */
+ char *
+-__stpcpy (dest, src)
+-     char *dest;
+-     const char *src;
++__stpcpy (char *dest, const char *src)
+ {
+   char *d = dest;
+   const char *s = src;
diff --git a/SOURCES/glibc-rh1505492-prototypes-timespec_get.patch b/SOURCES/glibc-rh1505492-prototypes-timespec_get.patch
new file mode 100644
index 0000000..aae534e
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-timespec_get.patch
@@ -0,0 +1,24 @@
+Introduce prototype-style function definition for timespec_get.
+Upstream, this was part of this commit:
+
+commit f534255e4d276ee7b20b45637d16a00b122e5df3
+Author: Adhemerval Zanella <adhemerval.zanella@linaro.com>
+Date:   Fri Apr 17 10:58:31 2015 -0300
+
+    Consolidate vDSO macros and usage
+
+diff --git a/sysdeps/unix/sysv/linux/timespec_get.c b/sysdeps/unix/sysv/linux/timespec_get.c
+index b037abee20c7d30c..8c5c8eae0cc0e579 100644
+--- a/sysdeps/unix/sysv/linux/timespec_get.c
++++ b/sysdeps/unix/sysv/linux/timespec_get.c
+@@ -34,9 +34,7 @@
+ 
+ /* Set TS to calendar time based in time base BASE.  */
+ int
+-timespec_get (ts, base)
+-     struct timespec *ts;
+-     int base;
++timespec_get (struct timespec *ts, int base)
+ {
+   switch (base)
+     {
diff --git a/SOURCES/glibc-rh1505492-prototypes-wcschr-1.patch b/SOURCES/glibc-rh1505492-prototypes-wcschr-1.patch
new file mode 100644
index 0000000..0d53399
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-wcschr-1.patch
@@ -0,0 +1,24 @@
+Prototype-style function definition for wcschr for POWER.  Upstream,
+this was part of:
+
+commit 05b5cd1ce51247f986e66b90ad672e89b4b98333
+Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+Date:   Mon Oct 14 09:23:12 2013 -0500
+
+    PowerPC: multiarch wcschr for PowerPC32
+
+diff --git a/sysdeps/powerpc/powerpc32/power6/wcschr.c b/sysdeps/powerpc/powerpc32/power6/wcschr.c
+index 3b4cca15face81da..70efc574f5a13e5a 100644
+--- a/sysdeps/powerpc/powerpc32/power6/wcschr.c
++++ b/sysdeps/powerpc/powerpc32/power6/wcschr.c
+@@ -21,9 +21,7 @@
+ 
+ /* Find the first occurrence of WC in WCS.  */
+ wchar_t *
+-wcschr (wcs, wc)
+-     const wchar_t *wcs;
+-     const wchar_t wc;
++wcschr (const wchar_t *wcs, const wchar_t wc)
+ {
+   const wchar_t *wcs2 = wcs + 1;
+ 
diff --git a/SOURCES/glibc-rh1505492-prototypes-wcschr-2.patch b/SOURCES/glibc-rh1505492-prototypes-wcschr-2.patch
new file mode 100644
index 0000000..9c3e32d
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-wcschr-2.patch
@@ -0,0 +1,24 @@
+Introduce prototype-style definition for wcschr.  This happened upstream
+in:
+
+commit fb78612a963cfe1299b33b1c60a0c24a206276c3
+Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+Date:   Wed Feb 25 16:22:10 2015 -0300
+
+    powerpc: Fix __wcschr static build
+
+diff --git a/wcsmbs/wcschr.c b/wcsmbs/wcschr.c
+index 56511d88176fa1f0..b3fded42692b1797 100644
+--- a/wcsmbs/wcschr.c
++++ b/wcsmbs/wcschr.c
+@@ -23,9 +23,7 @@
+ #endif
+ 
+ wchar_t *
+-wcschr (wcs, wc)
+-     const wchar_t *wcs;
+-     const wchar_t wc;
++wcschr (const wchar_t *wcs, const wchar_t wc)
+ {
+   do
+     if (*wcs == wc)
diff --git a/SOURCES/glibc-rh1505492-prototypes-wcsrchr.patch b/SOURCES/glibc-rh1505492-prototypes-wcsrchr.patch
new file mode 100644
index 0000000..14ad686
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-prototypes-wcsrchr.patch
@@ -0,0 +1,24 @@
+Introduce prototype-style function definition for 32-bit POWER wcsrchr.
+Upstream removed the old-style function definition in:
+
+commit bb04e529f60df7138a4fe5f1ed016dd87ade59a3
+Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+Date:   Mon Oct 14 09:26:07 2013 -0500
+
+    PowerPC: multiarch wcsrchr for PowerPC32
+
+diff --git a/sysdeps/powerpc/powerpc32/power6/wcsrchr.c b/sysdeps/powerpc/powerpc32/power6/wcsrchr.c
+index 333650190afff171..4deb44966915679f 100644
+--- a/sysdeps/powerpc/powerpc32/power6/wcsrchr.c
++++ b/sysdeps/powerpc/powerpc32/power6/wcsrchr.c
+@@ -21,9 +21,7 @@
+ 
+ /* Find the last occurrence of WC in WCS.  */
+ wchar_t *
+-wcsrchr (wcs, wc)
+-     const wchar_t *wcs;
+-     const wchar_t wc;
++wcsrchr (const wchar_t *wcs, const wchar_t wc)
+ {
+   const wchar_t *wcs2 = wcs + 1;
+   const wchar_t *retval = NULL;
diff --git a/SOURCES/glibc-rh1505492-register.patch b/SOURCES/glibc-rh1505492-register.patch
new file mode 100644
index 0000000..9616606
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-register.patch
@@ -0,0 +1,1818 @@
+commit 2e09a79ada1f6d92809a037d41895e3d9302ad59
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Fri Jun 7 22:24:35 2013 +0000
+
+    Avoid use of "register" as optimization hint.
+
+Conflicts:
+	hurd/hurdmalloc.c
+	  (Adjusted for missing previous backport.)
+	resolv/arpa/nameser.h
+	resolv/compat-gethnamaddr.c
+	resolv/ns_print.c
+	resolv/res_init.c
+	resolv/res_mkquery.c
+	  (Changes were already part of the stub resolver rebase
+ 	  in glibc-rh677316-resolv.patch.)
+	time/tzset.c
+	  (Changes were already part of the fix for rhbz#1234449.)
+	wcsmbs/wcsrchr.c
+	  (Resolve textual conflict due to glibc-rh731837-16.patch.)
+
+diff --git a/bits/byteswap.h b/bits/byteswap.h
+index 7e5daedb83e29a4c..068a824539a4a302 100644
+--- a/bits/byteswap.h
++++ b/bits/byteswap.h
+@@ -48,7 +48,7 @@ __bswap_32 (unsigned int __bsx)
+ # else
+ #  define __bswap_32(x) \
+   (__extension__							      \
+-   ({ register unsigned int __bsx = (x); __bswap_constant_32 (__bsx); }))
++   ({ unsigned int __bsx = (x); __bswap_constant_32 (__bsx); }))
+ # endif
+ #else
+ static __inline unsigned int
+diff --git a/crypt/crypt.c b/crypt/crypt.c
+index 3360639139715348..34b8f2e280263f7a 100644
+--- a/crypt/crypt.c
++++ b/crypt/crypt.c
+@@ -88,8 +88,8 @@ _ufc_doit_r(itr, __data, res)
+ {
+   int i;
+   long64 l, r, s, *k;
+-  register long64 *sb01 = (long64*)__data->sb0;
+-  register long64 *sb23 = (long64*)__data->sb2;
++  long64 *sb01 = (long64*)__data->sb0;
++  long64 *sb23 = (long64*)__data->sb2;
+ 
+   l = (((long64)res[0]) << 32) | ((long64)res[1]);
+   r = (((long64)res[2]) << 32) | ((long64)res[3]);
+diff --git a/debug/stpcpy_chk.c b/debug/stpcpy_chk.c
+index 2bb7b518447b8b66..3934d132d930093c 100644
+--- a/debug/stpcpy_chk.c
++++ b/debug/stpcpy_chk.c
+@@ -29,8 +29,8 @@ __stpcpy_chk (dest, src, destlen)
+      const char *src;
+      size_t destlen;
+ {
+-  register char *d = dest;
+-  register const char *s = src;
++  char *d = dest;
++  const char *s = src;
+ 
+   do
+     {
+diff --git a/debug/wcscat_chk.c b/debug/wcscat_chk.c
+index 27d9ee5f90853048..c2ac552c5fd34827 100644
+--- a/debug/wcscat_chk.c
++++ b/debug/wcscat_chk.c
+@@ -23,8 +23,8 @@
+ wchar_t *
+ __wcscat_chk (wchar_t *dest, const wchar_t *src, size_t destlen)
+ {
+-  register wchar_t *s1 = dest;
+-  register const wchar_t *s2 = src;
++  wchar_t *s1 = dest;
++  const wchar_t *s2 = src;
+   wchar_t c;
+ 
+   /* Find the end of the string.  */
+diff --git a/gmon/gmon.c b/gmon/gmon.c
+index 0d2ed0594e4baf1e..9774d57ccced2079 100644
+--- a/gmon/gmon.c
++++ b/gmon/gmon.c
+@@ -102,7 +102,7 @@ __monstartup (lowpc, highpc)
+      u_long lowpc;
+      u_long highpc;
+ {
+-  register int o;
++  int o;
+   char *cp;
+   struct gmonparam *p = &_gmonparam;
+ 
+diff --git a/gmon/mcount.c b/gmon/mcount.c
+index 5a4a2499d461acc7..0c2acd2890dd7ed9 100644
+--- a/gmon/mcount.c
++++ b/gmon/mcount.c
+@@ -58,10 +58,10 @@ static char sccsid[] = "@(#)mcount.c	8.1 (Berkeley) 6/4/93";
+  */
+ _MCOUNT_DECL(frompc, selfpc)	/* _mcount; may be static, inline, etc */
+ {
+-	register ARCINDEX *frompcindex;
+-	register struct tostruct *top, *prevtop;
+-	register struct gmonparam *p;
+-	register ARCINDEX toindex;
++	ARCINDEX *frompcindex;
++	struct tostruct *top, *prevtop;
++	struct gmonparam *p;
++	ARCINDEX toindex;
+ 	int i;
+ 
+ 	p = &_gmonparam;
+diff --git a/hurd/hurdmalloc.c b/hurd/hurdmalloc.c
+index 12da1f2abc50ef0a..886b40208da56866 100644
+--- a/hurd/hurdmalloc.c
++++ b/hurd/hurdmalloc.c
+@@ -171,10 +171,10 @@ malloc_init (void)
+ static void
+ more_memory(int size, free_list_t fl)
+ {
+-	register int amount;
+-	register int n;
++	int amount;
++	int n;
+ 	vm_address_t where;
+-	register header_t h;
++	header_t h;
+ 	kern_return_t r;
+ 
+ 	if (size <= vm_page_size) {
+@@ -203,11 +203,11 @@ more_memory(int size, free_list_t fl)
+ /* Declaration changed to standard one for GNU.  */
+ void *
+ malloc(size)
+-	register size_t size;
++	size_t size;
+ {
+-	register int i, n;
+-	register free_list_t fl;
+-	register header_t h;
++	int i, n;
++	free_list_t fl;
++	header_t h;
+ 
+ 	if ((int) size < 0)		/* sanity check */
+ 		return 0;
+@@ -272,9 +272,9 @@ void
+ free(base)
+ 	void *base;
+ {
+-	register header_t h;
+-	register free_list_t fl;
+-	register int i;
++	header_t h;
++	free_list_t fl;
++	int i;
+ 
+ 	if (base == 0)
+ 		return;
+@@ -322,9 +322,9 @@ realloc(old_base, new_size)
+         void *old_base;
+         size_t new_size;
+ {
+-	register header_t h;
+-	register free_list_t fl;
+-	register int i;
++	header_t h;
++	free_list_t fl;
++	int i;
+ 	unsigned int old_size;
+ 	char *new_base;
+ 
+@@ -382,10 +382,10 @@ realloc(old_base, new_size)
+ void
+ print_malloc_free_list()
+ {
+-  	register int i, size;
+-	register free_list_t fl;
+-	register int n;
+-  	register header_t h;
++  	int i, size;
++	free_list_t fl;
++	int n;
++  	header_t h;
+ 	int total_used = 0;
+ 	int total_free = 0;
+ 
+@@ -416,7 +416,7 @@ malloc_fork_prepare(void)
+  * malloc critical section.
+  */
+ {
+-    register int i;
++    int i;
+ 
+     for (i = 0; i < NBUCKETS; i++) {
+ 	spin_lock(&malloc_free_list[i].lock);
+@@ -429,7 +429,7 @@ malloc_fork_parent(void)
+  * Called in the parent process after a fork() to resume normal operation.
+  */
+ {
+-    register int i;
++    int i;
+ 
+     for (i = NBUCKETS-1; i >= 0; i--) {
+ 	spin_unlock(&malloc_free_list[i].lock);
+@@ -442,7 +442,7 @@ malloc_fork_child(void)
+  * Called in the child process after a fork() to resume normal operation.
+  */
+ {
+-    register int i;
++    int i;
+ 
+     for (i = NBUCKETS-1; i >= 0; i--) {
+ 	spin_unlock(&malloc_free_list[i].lock);
+diff --git a/include/rpc/auth_des.h b/include/rpc/auth_des.h
+index c14f069668810930..0e9db1a226f4df95 100644
+--- a/include/rpc/auth_des.h
++++ b/include/rpc/auth_des.h
+@@ -7,12 +7,12 @@ libc_hidden_proto (getsecretkey)
+ libc_hidden_proto (rtime)
+ 
+ extern bool_t xdr_authdes_cred (XDR *xdrs, struct authdes_cred *cred);
+-extern bool_t xdr_authdes_verf (register XDR *xdrs,
+-				register struct authdes_verf *verf);
++extern bool_t xdr_authdes_verf (XDR *xdrs,
++				struct authdes_verf *verf);
+ struct svc_req;
+ struct rpc_msg;
+-extern enum auth_stat _svcauth_des (register struct svc_req *rqst,
+-				    register struct rpc_msg *msg);
++extern enum auth_stat _svcauth_des (struct svc_req *rqst,
++				    struct rpc_msg *msg);
+ 
+ 
+ #define DECLARE_NSS_PROTOTYPES(service)					\
+diff --git a/inet/inet_lnaof.c b/inet/inet_lnaof.c
+index 0e115a4420920225..c993c8b8471f4215 100644
+--- a/inet/inet_lnaof.c
++++ b/inet/inet_lnaof.c
+@@ -44,7 +44,7 @@ in_addr_t
+ inet_lnaof(in)
+ 	struct in_addr in;
+ {
+-	register u_int32_t i = ntohl(in.s_addr);
++	u_int32_t i = ntohl(in.s_addr);
+ 
+ 	if (IN_CLASSA(i))
+ 		return ((i)&IN_CLASSA_HOST);
+diff --git a/inet/inet_net.c b/inet/inet_net.c
+index d58f1ae8e3d89bf5..68e232f3d3dc1e1d 100644
+--- a/inet/inet_net.c
++++ b/inet/inet_net.c
+@@ -43,10 +43,10 @@ static char sccsid[] = "@(#)inet_network.c	8.1 (Berkeley) 6/4/93";
+  */
+ u_int32_t
+ inet_network(cp)
+-	register const char *cp;
++	const char *cp;
+ {
+-	register u_int32_t val, base, n, i;
+-	register char c;
++	u_int32_t val, base, n, i;
++	char c;
+ 	u_int32_t parts[4], *pp = parts;
+ 	int digit;
+ 
+diff --git a/inet/inet_netof.c b/inet/inet_netof.c
+index e49177a0f4b79bbf..9b0aed992e9ba65f 100644
+--- a/inet/inet_netof.c
++++ b/inet/inet_netof.c
+@@ -43,7 +43,7 @@ in_addr_t
+ inet_netof(in)
+ 	struct in_addr in;
+ {
+-	register u_int32_t i = ntohl(in.s_addr);
++	u_int32_t i = ntohl(in.s_addr);
+ 
+ 	if (IN_CLASSA(i))
+ 		return (((i)&IN_CLASSA_NET) >> IN_CLASSA_NSHIFT);
+diff --git a/inet/rcmd.c b/inet/rcmd.c
+index af4fad34c95e9af7..7da79b0730d9ad3a 100644
+--- a/inet/rcmd.c
++++ b/inet/rcmd.c
+@@ -769,8 +769,8 @@ __validuser2_sa(hostf, ra, ralen, luser, ruser, rhost)
+ 	size_t ralen;
+ 	const char *luser, *ruser, *rhost;
+ {
+-    register const char *user;
+-    register char *p;
++    const char *user;
++    char *p;
+     int hcheck, ucheck;
+     char *buf = NULL;
+     size_t bufsize = 0;
+diff --git a/io/fts.c b/io/fts.c
+index 5ba202b8aa8b6669..c9c054d6d36ab20f 100644
+--- a/io/fts.c
++++ b/io/fts.c
+@@ -87,12 +87,12 @@ static int      fts_safe_changedir (FTS *, FTSENT *, int, const char *)
+ FTS *
+ fts_open(argv, options, compar)
+ 	char * const *argv;
+-	register int options;
++	int options;
+ 	int (*compar) (const FTSENT **, const FTSENT **);
+ {
+-	register FTS *sp;
+-	register FTSENT *p, *root;
+-	register int nitems;
++	FTS *sp;
++	FTSENT *p, *root;
++	int nitems;
+ 	FTSENT *parent = NULL;
+ 	FTSENT *tmp;
+ 
+@@ -204,10 +204,10 @@ static void
+ internal_function
+ fts_load(sp, p)
+ 	FTS *sp;
+-	register FTSENT *p;
++	FTSENT *p;
+ {
+-	register int len;
+-	register char *cp;
++	int len;
++	char *cp;
+ 
+ 	/*
+ 	 * Load the stream structure for the next traversal.  Since we don't
+@@ -231,7 +231,7 @@ int
+ fts_close(sp)
+ 	FTS *sp;
+ {
+-	register FTSENT *freep, *p;
++	FTSENT *freep, *p;
+ 	int saved_errno;
+ 
+ 	/*
+@@ -283,11 +283,11 @@ fts_close(sp)
+ 
+ FTSENT *
+ fts_read(sp)
+-	register FTS *sp;
++	FTS *sp;
+ {
+-	register FTSENT *p, *tmp;
+-	register int instr;
+-	register char *t;
++	FTSENT *p, *tmp;
++	int instr;
++	char *t;
+ 	int saved_errno;
+ 
+ 	/* If finished or unrecoverable error, return NULL. */
+@@ -495,10 +495,10 @@ fts_set(sp, p, instr)
+ 
+ FTSENT *
+ fts_children(sp, instr)
+-	register FTS *sp;
++	FTS *sp;
+ 	int instr;
+ {
+-	register FTSENT *p;
++	FTSENT *p;
+ 	int fd;
+ 
+ 	if (instr != 0 && instr != FTS_NAMEONLY) {
+@@ -578,12 +578,12 @@ fts_children(sp, instr)
+ static FTSENT *
+ internal_function
+ fts_build(sp, type)
+-	register FTS *sp;
++	FTS *sp;
+ 	int type;
+ {
+-	register struct dirent *dp;
+-	register FTSENT *p, *head;
+-	register int nitems;
++	struct dirent *dp;
++	FTSENT *p, *head;
++	int nitems;
+ 	FTSENT *cur, *tail;
+ 	DIR *dirp;
+ 	void *oldaddr;
+@@ -848,12 +848,12 @@ static u_short
+ internal_function
+ fts_stat(sp, p, follow)
+ 	FTS *sp;
+-	register FTSENT *p;
++	FTSENT *p;
+ 	int follow;
+ {
+-	register FTSENT *t;
+-	register dev_t dev;
+-	register ino_t ino;
++	FTSENT *t;
++	dev_t dev;
++	ino_t ino;
+ 	struct stat *sbp, sb;
+ 	int saved_errno;
+ 
+@@ -933,9 +933,9 @@ internal_function
+ fts_sort(sp, head, nitems)
+ 	FTS *sp;
+ 	FTSENT *head;
+-	register int nitems;
++	int nitems;
+ {
+-	register FTSENT **ap, *p;
++	FTSENT **ap, *p;
+ 
+ 	/*
+ 	 * Construct an array of pointers to the structures and call qsort(3).
+@@ -973,7 +973,7 @@ fts_alloc(sp, name, namelen)
+ 	const char *name;
+ 	size_t namelen;
+ {
+-	register FTSENT *p;
++	FTSENT *p;
+ 	size_t len;
+ 
+ 	/*
+@@ -1009,9 +1009,9 @@ fts_alloc(sp, name, namelen)
+ static void
+ internal_function
+ fts_lfree(head)
+-	register FTSENT *head;
++	FTSENT *head;
+ {
+-	register FTSENT *p;
++	FTSENT *p;
+ 
+ 	/* Free a linked list of structures. */
+ 	while ((p = head)) {
+diff --git a/libio/fileops.c b/libio/fileops.c
+index ff5941bd2f20b7de..ae56437168efc524 100644
+--- a/libio/fileops.c
++++ b/libio/fileops.c
+@@ -1327,7 +1327,7 @@ _IO_new_file_xsputn (f, data, n)
+      const void *data;
+      _IO_size_t n;
+ {
+-  register const char *s = (const char *) data;
++  const char *s = (const char *) data;
+   _IO_size_t to_do = n;
+   int must_flush = 0;
+   _IO_size_t count = 0;
+@@ -1344,7 +1344,7 @@ _IO_new_file_xsputn (f, data, n)
+       count = f->_IO_buf_end - f->_IO_write_ptr;
+       if (count >= n)
+ 	{
+-	  register const char *p;
++	  const char *p;
+ 	  for (p = s + n; p > s; )
+ 	    {
+ 	      if (*--p == '\n')
+@@ -1410,9 +1410,9 @@ _IO_file_xsgetn (fp, data, n)
+      void *data;
+      _IO_size_t n;
+ {
+-  register _IO_size_t want, have;
+-  register _IO_ssize_t count;
+-  register char *s = data;
++  _IO_size_t want, have;
++  _IO_ssize_t count;
++  char *s = data;
+ 
+   want = n;
+ 
+@@ -1512,9 +1512,9 @@ _IO_file_xsgetn_mmap (fp, data, n)
+      void *data;
+      _IO_size_t n;
+ {
+-  register _IO_size_t have;
++  _IO_size_t have;
+   char *read_ptr = fp->_IO_read_ptr;
+-  register char *s = (char *) data;
++  char *s = (char *) data;
+ 
+   have = fp->_IO_read_end - fp->_IO_read_ptr;
+ 
+diff --git a/libio/iofopncook.c b/libio/iofopncook.c
+index b1c0d7f6ccc4db15..8240601d4eec468b 100644
+--- a/libio/iofopncook.c
++++ b/libio/iofopncook.c
+@@ -30,9 +30,9 @@
+ #include <shlib-compat.h>
+ 
+ /* Prototyped for local functions.  */
+-static _IO_ssize_t _IO_cookie_read (register _IO_FILE* fp, void* buf,
++static _IO_ssize_t _IO_cookie_read (_IO_FILE* fp, void* buf,
+ 				    _IO_ssize_t size);
+-static _IO_ssize_t _IO_cookie_write (register _IO_FILE* fp,
++static _IO_ssize_t _IO_cookie_write (_IO_FILE* fp,
+ 				     const void* buf, _IO_ssize_t size);
+ static _IO_off64_t _IO_cookie_seek (_IO_FILE *fp, _IO_off64_t offset, int dir);
+ static _IO_off64_t _IO_cookie_seekoff (_IO_FILE *fp, _IO_off64_t offset,
+diff --git a/libio/oldfileops.c b/libio/oldfileops.c
+index 7060ea8c346d15cc..0d778fa253822171 100644
+--- a/libio/oldfileops.c
++++ b/libio/oldfileops.c
+@@ -697,7 +697,7 @@ _IO_old_file_xsputn (f, data, n)
+      const void *data;
+      _IO_size_t n;
+ {
+-  register const char *s = (char *) data;
++  const char *s = (char *) data;
+   _IO_size_t to_do = n;
+   int must_flush = 0;
+   _IO_size_t count = 0;
+@@ -714,7 +714,7 @@ _IO_old_file_xsputn (f, data, n)
+       count = f->_IO_buf_end - f->_IO_write_ptr;
+       if (count >= n)
+ 	{
+-	  register const char *p;
++	  const char *p;
+ 	  for (p = s + n; p > s; )
+ 	    {
+ 	      if (*--p == '\n')
+@@ -746,8 +746,8 @@ _IO_old_file_xsputn (f, data, n)
+ 	}
+       else
+ 	{
+-	  register char *p = f->_IO_write_ptr;
+-	  register int i = (int) count;
++	  char *p = f->_IO_write_ptr;
++	  int i = (int) count;
+ 	  while (--i >= 0)
+ 	    *p++ = *s++;
+ 	  f->_IO_write_ptr = p;
+diff --git a/libio/wfileops.c b/libio/wfileops.c
+index 1fe3439d21152fce..5ed1a922ae6ccbd0 100644
+--- a/libio/wfileops.c
++++ b/libio/wfileops.c
+@@ -966,7 +966,7 @@ _IO_wfile_xsputn (f, data, n)
+      const void *data;
+      _IO_size_t n;
+ {
+-  register const wchar_t *s = (const wchar_t *) data;
++  const wchar_t *s = (const wchar_t *) data;
+   _IO_size_t to_do = n;
+   int must_flush = 0;
+   _IO_size_t count;
+@@ -984,7 +984,7 @@ _IO_wfile_xsputn (f, data, n)
+       count = f->_wide_data->_IO_buf_end - f->_wide_data->_IO_write_ptr;
+       if (count >= n)
+ 	{
+-	  register const wchar_t *p;
++	  const wchar_t *p;
+ 	  for (p = s + n; p > s; )
+ 	    {
+ 	      if (*--p == L'\n')
+@@ -1014,8 +1014,8 @@ _IO_wfile_xsputn (f, data, n)
+ 	}
+       else
+ 	{
+-	  register wchar_t *p = f->_wide_data->_IO_write_ptr;
+-	  register int i = (int) count;
++	  wchar_t *p = f->_wide_data->_IO_write_ptr;
++	  int i = (int) count;
+ 	  while (--i >= 0)
+ 	    *p++ = *s++;
+ 	  f->_wide_data->_IO_write_ptr = p;
+diff --git a/mach/msgserver.c b/mach/msgserver.c
+index 915a08868a34378d..b087e7263511b554 100644
+--- a/mach/msgserver.c
++++ b/mach/msgserver.c
+@@ -78,8 +78,8 @@ __mach_msg_server_timeout (boolean_t (*demux) (mach_msg_header_t *request,
+ 			   mach_msg_option_t option,
+ 			   mach_msg_timeout_t timeout)
+ {
+-  register mig_reply_header_t *request, *reply;
+-  register mach_msg_return_t mr;
++  mig_reply_header_t *request, *reply;
++  mach_msg_return_t mr;
+ 
+   if (max_size == 0)
+     {
+diff --git a/malloc/obstack.c b/malloc/obstack.c
+index 5786da0aa4af81da..e3ce53f987727eca 100644
+--- a/malloc/obstack.c
++++ b/malloc/obstack.c
+@@ -155,7 +155,7 @@ _obstack_begin (struct obstack *h,
+ 		void *(*chunkfun) (long),
+ 		void (*freefun) (void *))
+ {
+-  register struct _obstack_chunk *chunk; /* points to new chunk */
++  struct _obstack_chunk *chunk; /* points to new chunk */
+ 
+   if (alignment == 0)
+     alignment = DEFAULT_ALIGNMENT;
+@@ -202,7 +202,7 @@ _obstack_begin_1 (struct obstack *h, int size, int alignment,
+ 		  void (*freefun) (void *, void *),
+ 		  void *arg)
+ {
+-  register struct _obstack_chunk *chunk; /* points to new chunk */
++  struct _obstack_chunk *chunk; /* points to new chunk */
+ 
+   if (alignment == 0)
+     alignment = DEFAULT_ALIGNMENT;
+@@ -253,11 +253,11 @@ _obstack_begin_1 (struct obstack *h, int size, int alignment,
+ void
+ _obstack_newchunk (struct obstack *h, int length)
+ {
+-  register struct _obstack_chunk *old_chunk = h->chunk;
+-  register struct _obstack_chunk *new_chunk;
+-  register long	new_size;
+-  register long obj_size = h->next_free - h->object_base;
+-  register long i;
++  struct _obstack_chunk *old_chunk = h->chunk;
++  struct _obstack_chunk *new_chunk;
++  long	new_size;
++  long obj_size = h->next_free - h->object_base;
++  long i;
+   long already;
+   char *object_base;
+ 
+@@ -330,8 +330,8 @@ int _obstack_allocated_p (struct obstack *h, void *obj);
+ int
+ _obstack_allocated_p (struct obstack *h, void *obj)
+ {
+-  register struct _obstack_chunk *lp;	/* below addr of any objects in this chunk */
+-  register struct _obstack_chunk *plp;	/* point to previous chunk if any */
++  struct _obstack_chunk *lp;	/* below addr of any objects in this chunk */
++  struct _obstack_chunk *plp;	/* point to previous chunk if any */
+ 
+   lp = (h)->chunk;
+   /* We use >= rather than > since the object cannot be exactly at
+@@ -353,8 +353,8 @@ _obstack_allocated_p (struct obstack *h, void *obj)
+ void
+ obstack_free (struct obstack *h, void *obj)
+ {
+-  register struct _obstack_chunk *lp;	/* below addr of any objects in this chunk */
+-  register struct _obstack_chunk *plp;	/* point to previous chunk if any */
++  struct _obstack_chunk *lp;	/* below addr of any objects in this chunk */
++  struct _obstack_chunk *plp;	/* point to previous chunk if any */
+ 
+   lp = h->chunk;
+   /* We use >= because there cannot be an object at the beginning of a chunk.
+@@ -389,8 +389,8 @@ strong_alias (obstack_free, _obstack_free)
+ int
+ _obstack_memory_used (struct obstack *h)
+ {
+-  register struct _obstack_chunk* lp;
+-  register int nbytes = 0;
++  struct _obstack_chunk* lp;
++  int nbytes = 0;
+ 
+   for (lp = h->chunk; lp != 0; lp = lp->prev)
+     {
+diff --git a/misc/getttyent.c b/misc/getttyent.c
+index b1e6376fb66dc260..18944e2b99150aea 100644
+--- a/misc/getttyent.c
++++ b/misc/getttyent.c
+@@ -47,7 +47,7 @@ struct ttyent *
+ getttynam(tty)
+ 	const char *tty;
+ {
+-	register struct ttyent *t;
++	struct ttyent *t;
+ 
+ 	setttyent();
+ 	while ((t = getttyent()))
+@@ -64,8 +64,8 @@ struct ttyent *
+ getttyent()
+ {
+ 	static struct ttyent tty;
+-	register int c;
+-	register char *p;
++	int c;
++	char *p;
+ #define	MAXLINELENGTH	100
+ 	static char line[MAXLINELENGTH];
+ 
+@@ -142,10 +142,10 @@ libc_hidden_def (getttyent)
+ static char *
+ internal_function
+ skip(p)
+-	register char *p;
++	char *p;
+ {
+-	register char *t;
+-	register int c, q;
++	char *t;
++	int c, q;
+ 
+ 	for (q = 0, t = p; (c = *p) != '\0'; p++) {
+ 		if (c == '"') {
+@@ -177,7 +177,7 @@ skip(p)
+ static char *
+ internal_function
+ value(p)
+-	register char *p;
++	char *p;
+ {
+ 
+ 	return ((p = index(p, '=')) ? ++p : NULL);
+diff --git a/misc/getusershell.c b/misc/getusershell.c
+index 2e8d97e65c77ec4a..677377c3f7fb9081 100644
+--- a/misc/getusershell.c
++++ b/misc/getusershell.c
+@@ -95,8 +95,8 @@ setusershell()
+ static char **
+ initshells()
+ {
+-	register char **sp, *cp;
+-	register FILE *fp;
++	char **sp, *cp;
++	FILE *fp;
+ 	struct stat64 statb;
+ 	size_t flen;
+ 
+diff --git a/misc/syslog.c b/misc/syslog.c
+index 748361fc8c44b81f..4976e89b6ea56364 100644
+--- a/misc/syslog.c
++++ b/misc/syslog.c
+@@ -229,7 +229,7 @@ __vsyslog_chk(int pri, int flag, const char *fmt, va_list ap)
+ 	/* Output to stderr if requested. */
+ 	if (LogStat & LOG_PERROR) {
+ 		struct iovec iov[2];
+-		register struct iovec *v = iov;
++		struct iovec *v = iov;
+ 
+ 		v->iov_base = buf + msgoff;
+ 		v->iov_len = bufsize - msgoff;
+diff --git a/misc/ttyslot.c b/misc/ttyslot.c
+index 5872f23fd0b6ffcb..75ca6a2d42d2c79d 100644
+--- a/misc/ttyslot.c
++++ b/misc/ttyslot.c
+@@ -40,9 +40,9 @@ static char sccsid[] = "@(#)ttyslot.c	8.1 (Berkeley) 6/4/93";
+ int
+ ttyslot()
+ {
+-	register struct ttyent *ttyp;
+-	register int slot;
+-	register char *p;
++	struct ttyent *ttyp;
++	int slot;
++	char *p;
+ 	int cnt;
+ 	size_t buflen = __sysconf (_SC_TTY_NAME_MAX) + 1;
+ 	char *name;
+diff --git a/nis/nis_hash.c b/nis/nis_hash.c
+index 19b744c73f7208c9..c36ed1d5cbf56457 100644
+--- a/nis/nis_hash.c
++++ b/nis/nis_hash.c
+@@ -29,11 +29,11 @@
+  * OZ's original sdbm hash
+  */
+ uint32_t
+-__nis_hash (const void *keyarg, register size_t len)
++__nis_hash (const void *keyarg, size_t len)
+ {
+-  register const u_char *key;
+-  register size_t loop;
+-  register uint32_t h;
++  const u_char *key;
++  size_t loop;
++  uint32_t h;
+ 
+ #define HASHC   h = *key++ + 65599 * h
+ 
+diff --git a/ports/sysdeps/ia64/bits/byteswap-16.h b/ports/sysdeps/ia64/bits/byteswap-16.h
+index 4a53ffaf6d7c5f92..8e71ac1a779bfca4 100644
+--- a/ports/sysdeps/ia64/bits/byteswap-16.h
++++ b/ports/sysdeps/ia64/bits/byteswap-16.h
+@@ -23,7 +23,7 @@
+ #if defined __GNUC__ && __GNUC__ >= 2
+ # define __bswap_16(x) \
+      (__extension__							      \
+-      ({ register unsigned short int __v, __x = (unsigned short int) (x);     \
++      ({ unsigned short int __v, __x = (unsigned short int) (x);	      \
+ 	 if (__builtin_constant_p (x))					      \
+ 	   __v = __bswap_constant_16 (__x);				      \
+ 	 else								      \
+diff --git a/ports/sysdeps/ia64/bits/byteswap.h b/ports/sysdeps/ia64/bits/byteswap.h
+index d363c3e1cf7ad2df..28646f11ae941606 100644
+--- a/ports/sysdeps/ia64/bits/byteswap.h
++++ b/ports/sysdeps/ia64/bits/byteswap.h
+@@ -38,7 +38,7 @@
+ #if defined __GNUC__ && __GNUC__ >= 2
+ # define __bswap_32(x) \
+      (__extension__							      \
+-      ({ register unsigned int __v, __x = (x);				      \
++      ({ unsigned int __v, __x = (x);					      \
+ 	 if (__builtin_constant_p (x))					      \
+ 	   __v = __bswap_constant_32 (__x);				      \
+ 	 else								      \
+@@ -70,7 +70,7 @@ __bswap_32 (unsigned int __bsx)
+ 
+ # define __bswap_64(x) \
+      (__extension__							      \
+-      ({ register unsigned long int __v, __x = (x);			      \
++      ({ unsigned long int __v, __x = (x);				      \
+ 	 if (__builtin_constant_p (x))					      \
+ 	   __v = __bswap_constant_64 (__x);				      \
+ 	 else								      \
+diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
+index 89901f15b303f6ce..7ffa3a9944630a0c 100644
+--- a/posix/fnmatch_loop.c
++++ b/posix/fnmatch_loop.c
+@@ -46,8 +46,8 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+      struct STRUCT *ends;
+      size_t alloca_used;
+ {
+-  register const CHAR *p = pattern, *n = string;
+-  register UCHAR c;
++  const CHAR *p = pattern, *n = string;
++  UCHAR c;
+ #ifdef _LIBC
+ # if WIDE_CHAR_VERSION
+   const char *collseq = (const char *)
+@@ -236,7 +236,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+ 	    /* Nonzero if the sense of the character class is inverted.  */
+ 	    const CHAR *p_init = p;
+ 	    const CHAR *n_init = n;
+-	    register int not;
++	    int not;
+ 	    CHAR cold;
+ 	    UCHAR fn;
+ 
+diff --git a/posix/getconf.c b/posix/getconf.c
+index aa0dd86afbb46904..9cb8f29be28466ff 100644
+--- a/posix/getconf.c
++++ b/posix/getconf.c
+@@ -1043,7 +1043,7 @@ usage (void)
+ static void
+ print_all (const char *path)
+ {
+-  register const struct conf *c;
++  const struct conf *c;
+   size_t clen;
+   long int value;
+   char *cvalue;
+@@ -1087,7 +1087,7 @@ print_all (const char *path)
+ int
+ main (int argc, char *argv[])
+ {
+-  register const struct conf *c;
++  const struct conf *c;
+ 
+   /* Set locale.  Do not set LC_ALL because the other categories must
+      not be affected (according to POSIX.2).  */
+diff --git a/posix/getopt.c b/posix/getopt.c
+index 537c97741fb37aef..dc2a000487c16225 100644
+--- a/posix/getopt.c
++++ b/posix/getopt.c
+@@ -228,7 +228,7 @@ exchange (char **argv, struct _getopt_data *d)
+ 	{
+ 	  /* Bottom segment is the short one.  */
+ 	  int len = middle - bottom;
+-	  register int i;
++	  int i;
+ 
+ 	  /* Swap it with the top part of the top segment.  */
+ 	  for (i = 0; i < len; i++)
+@@ -245,7 +245,7 @@ exchange (char **argv, struct _getopt_data *d)
+ 	{
+ 	  /* Top segment is the short one.  */
+ 	  int len = top - middle;
+-	  register int i;
++	  int i;
+ 
+ 	  /* Swap it with the bottom part of the bottom segment.  */
+ 	  for (i = 0; i < len; i++)
+diff --git a/posix/glob.c b/posix/glob.c
+index e09314712d68c1b8..8c7a80085128475a 100644
+--- a/posix/glob.c
++++ b/posix/glob.c
+@@ -1264,7 +1264,7 @@ libc_hidden_def (glob)
+ /* Free storage allocated in PGLOB by a previous `glob' call.  */
+ void
+ globfree (pglob)
+-     register glob_t *pglob;
++     glob_t *pglob;
+ {
+   if (pglob->gl_pathv != NULL)
+     {
+@@ -1304,7 +1304,7 @@ collated_compare (const void *a, const void *b)
+ static int
+ prefix_array (const char *dirname, char **array, size_t n)
+ {
+-  register size_t i;
++  size_t i;
+   size_t dirlen = strlen (dirname);
+ #if defined __MSDOS__ || defined WINDOWS32
+   int sep_char = '/';
+@@ -1363,7 +1363,7 @@ __glob_pattern_type (pattern, quote)
+      const char *pattern;
+      int quote;
+ {
+-  register const char *p;
++  const char *p;
+   int ret = 0;
+ 
+   for (p = pattern; *p != '\0'; ++p)
+diff --git a/stdio-common/printf_fp.c b/stdio-common/printf_fp.c
+index 90ab807390114749..7ffc72955323a555 100644
+--- a/stdio-common/printf_fp.c
++++ b/stdio-common/printf_fp.c
+@@ -72,7 +72,7 @@
+ #define outchar(ch)							      \
+   do									      \
+     {									      \
+-      register const int outc = (ch);					      \
++      const int outc = (ch);						      \
+       if (putc (outc, fp) == EOF)					      \
+ 	{								      \
+ 	  if (buffer_malloced)						      \
+@@ -85,7 +85,7 @@
+ #define PRINT(ptr, wptr, len)						      \
+   do									      \
+     {									      \
+-      register size_t outlen = (len);					      \
++      size_t outlen = (len);						      \
+       if (len > 20)							      \
+ 	{								      \
+ 	  if (PUT (fp, wide ? (const char *) wptr : ptr, outlen) != outlen)   \
+diff --git a/stdio-common/printf_fphex.c b/stdio-common/printf_fphex.c
+index 5d31f5f6204b612b..2310e02c8344997a 100644
+--- a/stdio-common/printf_fphex.c
++++ b/stdio-common/printf_fphex.c
+@@ -52,7 +52,7 @@
+ #define outchar(ch)							      \
+   do									      \
+     {									      \
+-      register const int outc = (ch);					      \
++      const int outc = (ch);						      \
+       if (putc (outc, fp) == EOF)					      \
+ 	return -1;							      \
+       ++done;								      \
+@@ -61,7 +61,7 @@
+ #define PRINT(ptr, wptr, len)						      \
+   do									      \
+     {									      \
+-      register size_t outlen = (len);					      \
++      size_t outlen = (len);						      \
+       if (wide)								      \
+ 	while (outlen-- > 0)						      \
+ 	  outchar (*wptr++);						      \
+diff --git a/stdio-common/printf_size.c b/stdio-common/printf_size.c
+index 0cdfeee7f2e4f7bb..f5acf87eda7ddb42 100644
+--- a/stdio-common/printf_size.c
++++ b/stdio-common/printf_size.c
+@@ -42,7 +42,7 @@
+ #define outchar(ch)							      \
+   do									      \
+     {									      \
+-      register const int outc = (ch);					      \
++      const int outc = (ch);						      \
+       if (putc (outc, fp) == EOF)					      \
+ 	return -1;							      \
+       ++done;								      \
+@@ -51,7 +51,7 @@
+ #define PRINT(ptr, wptr, len)						      \
+   do									      \
+     {									      \
+-      register size_t outlen = (len);					      \
++      size_t outlen = (len);						      \
+       if (len > 20)							      \
+ 	{								      \
+ 	  if (PUT (fp, wide ? (const char *) wptr : ptr, outlen) != outlen)   \
+diff --git a/stdio-common/test_rdwr.c b/stdio-common/test_rdwr.c
+index 6fa1e1ce2e6e24c7..ce3ad5aefb8d8ea7 100644
+--- a/stdio-common/test_rdwr.c
++++ b/stdio-common/test_rdwr.c
+@@ -78,7 +78,7 @@ main (int argc, char **argv)
+     long int where = ftell (f);
+     if (where == (long int) replace_from)
+       {
+-	register size_t i;
++	size_t i;
+ 	for (i = replace_from; i < replace_to; ++i)
+ 	  if (putc(replace[i], f) == EOF)
+ 	    {
+diff --git a/stdio-common/tfformat.c b/stdio-common/tfformat.c
+index 7704ddde39856221..5cb366dd48eef16a 100644
+--- a/stdio-common/tfformat.c
++++ b/stdio-common/tfformat.c
+@@ -4050,7 +4050,7 @@ sprint_double_type sprint_doubles[] =
+ int required_precision = 13;
+ 
+ static int
+-matches (register char *result, register const char *desired)
++matches (char *result, const char *desired)
+ {
+     int digits_seen = 0;
+     for (;; result++, desired++) {
+diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
+index 97805989f6db70bf..a52c8f8cb17eaf58 100644
+--- a/stdio-common/vfprintf.c
++++ b/stdio-common/vfprintf.c
+@@ -147,7 +147,7 @@
+ #define	outchar(Ch)							      \
+   do									      \
+     {									      \
+-      register const INT_T outc = (Ch);					      \
++      const INT_T outc = (Ch);						      \
+       if (PUTC (outc, s) == EOF || done == INT_MAX)			      \
+ 	{								      \
+ 	  done = -1;							      \
+@@ -2075,7 +2075,7 @@ printf_unknown (FILE *s, const struct printf_info *info,
+   CHAR_T work_buffer[MAX (sizeof (info->width), sizeof (info->prec)) * 3];
+   CHAR_T *const workend
+     = &work_buffer[sizeof (work_buffer) / sizeof (CHAR_T)];
+-  register CHAR_T *w;
++  CHAR_T *w;
+ 
+   outchar (L_('%'));
+ 
+@@ -2281,12 +2281,12 @@ static const struct _IO_jump_t _IO_helper_jumps libio_vtable =
+ 
+ static int
+ internal_function
+-buffered_vfprintf (register _IO_FILE *s, const CHAR_T *format,
++buffered_vfprintf (_IO_FILE *s, const CHAR_T *format,
+ 		   _IO_va_list args)
+ {
+   CHAR_T buf[_IO_BUFSIZ];
+   struct helper_file helper;
+-  register _IO_FILE *hp = (_IO_FILE *) &helper._f;
++  _IO_FILE *hp = (_IO_FILE *) &helper._f;
+   int result, to_flush;
+ 
+   /* Orient the stream.  */
+diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c
+index d532bb54c31cdcb1..1db8487c1a133996 100644
+--- a/stdio-common/vfscanf.c
++++ b/stdio-common/vfscanf.c
+@@ -206,13 +206,13 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
+ #endif
+ {
+   va_list arg;
+-  register const CHAR_T *f = format;
+-  register UCHAR_T fc;	/* Current character of the format.  */
+-  register WINT_T done = 0;	/* Assignments done.  */
+-  register size_t read_in = 0;	/* Chars read in.  */
+-  register WINT_T c = 0;	/* Last char read.  */
+-  register int width;		/* Maximum field width.  */
+-  register int flags;		/* Modifiers for current format element.  */
++  const CHAR_T *f = format;
++  UCHAR_T fc;	/* Current character of the format.  */
++  WINT_T done = 0;	/* Assignments done.  */
++  size_t read_in = 0;	/* Chars read in.  */
++  WINT_T c = 0;	/* Last char read.  */
++  int width;		/* Maximum field width.  */
++  int flags;		/* Modifiers for current format element.  */
+   int errval = 0;
+ #ifndef COMPILE_WSCANF
+   __locale_t loc = _NL_CURRENT_LOCALE;
+diff --git a/stdio-common/xbug.c b/stdio-common/xbug.c
+index 76a8c547268d4f26..64ba314cbefec6e6 100644
+--- a/stdio-common/xbug.c
++++ b/stdio-common/xbug.c
+@@ -9,8 +9,8 @@ typedef struct _Buffer {
+ } Buffer;
+ 
+ void InitBuffer (Buffer *b);
+-void AppendToBuffer (register Buffer *b, const char *str, register int len);
+-void ReadFile (register Buffer *buffer, FILE *input);
++void AppendToBuffer (Buffer *b, const char *str, int len);
++void ReadFile (Buffer *buffer, FILE *input);
+ 
+ #define INIT_BUFFER_SIZE 10000
+ 
+@@ -23,9 +23,9 @@ void InitBuffer(b)
+ }
+ 
+ void AppendToBuffer(b, str, len)
+-     register Buffer *b;
++     Buffer *b;
+      const char *str;
+-     register int len;
++     int len;
+ {
+   while (b->used + len > b->room) {
+     b->buff = (char *)realloc(b->buff, 2*b->room*(sizeof(char)));
+@@ -36,11 +36,11 @@ void AppendToBuffer(b, str, len)
+ }
+ 
+ void ReadFile(buffer, input)
+-     register Buffer *buffer;
++     Buffer *buffer;
+      FILE *input;
+ {
+   char       buf[BUFSIZ + 1];
+-  register int        bytes;
++  int        bytes;
+ 
+   buffer->used = 0;
+   while (!feof(input) && (bytes = fread(buf, 1, BUFSIZ, input)) > 0) {
+diff --git a/stdlib/qsort.c b/stdlib/qsort.c
+index 2fbe763bd52d2acf..8237bbb563748a5f 100644
+--- a/stdlib/qsort.c
++++ b/stdlib/qsort.c
+@@ -29,8 +29,8 @@
+ #define SWAP(a, b, size)						      \
+   do									      \
+     {									      \
+-      register size_t __size = (size);					      \
+-      register char *__a = (a), *__b = (b);				      \
++      size_t __size = (size);						      \
++      char *__a = (a), *__b = (b);					      \
+       do								      \
+ 	{								      \
+ 	  char __tmp = *__a;						      \
+@@ -89,7 +89,7 @@ void
+ _quicksort (void *const pbase, size_t total_elems, size_t size,
+ 	    __compar_d_fn_t cmp, void *arg)
+ {
+-  register char *base_ptr = (char *) pbase;
++  char *base_ptr = (char *) pbase;
+ 
+   const size_t max_thresh = MAX_THRESH * size;
+ 
+@@ -206,7 +206,7 @@ _quicksort (void *const pbase, size_t total_elems, size_t size,
+     char *const end_ptr = &base_ptr[size * (total_elems - 1)];
+     char *tmp_ptr = base_ptr;
+     char *thresh = min(end_ptr, base_ptr + max_thresh);
+-    register char *run_ptr;
++    char *run_ptr;
+ 
+     /* Find smallest element in first threshold and place it at the
+        array's beginning.  This is the smallest array element,
+diff --git a/stdlib/setenv.c b/stdlib/setenv.c
+index d1db356a81c0152b..6185c69243464623 100644
+--- a/stdlib/setenv.c
++++ b/stdlib/setenv.c
+@@ -112,8 +112,8 @@ __add_to_environ (name, value, combined, replace)
+      const char *combined;
+      int replace;
+ {
+-  register char **ep;
+-  register size_t size;
++  char **ep;
++  size_t size;
+   const size_t namelen = strlen (name);
+   const size_t vallen = value != NULL ? strlen (value) + 1 : 0;
+ 
+diff --git a/stdlib/strtod_l.c b/stdlib/strtod_l.c
+index 6360833c6b222f3c..2047203a4cee1111 100644
+--- a/stdlib/strtod_l.c
++++ b/stdlib/strtod_l.c
+@@ -1142,10 +1142,9 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc)
+      really integer digits or belong to the fractional part; i.e. we normalize
+      123e-2 to 1.23.  */
+   {
+-    register intmax_t incr = (exponent < 0
+-			      ? MAX (-(intmax_t) int_no, exponent)
+-			      : MIN ((intmax_t) dig_no - (intmax_t) int_no,
+-				     exponent));
++    intmax_t incr = (exponent < 0
++		     ? MAX (-(intmax_t) int_no, exponent)
++		     : MIN ((intmax_t) dig_no - (intmax_t) int_no, exponent));
+     int_no += incr;
+     exponent -= incr;
+   }
+@@ -1466,7 +1465,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc)
+ #define got_limb							      \
+ 	      if (bits == 0)						      \
+ 		{							      \
+-		  register int cnt;					      \
++		  int cnt;						      \
+ 		  if (quot == 0)					      \
+ 		    cnt = BITS_PER_MP_LIMB;				      \
+ 		  else							      \
+@@ -1618,7 +1617,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc)
+ 	  if (numsize < densize)
+ 	    {
+ 	      mp_size_t empty = densize - numsize;
+-	      register int i;
++	      int i;
+ 
+ 	      if (bits <= 0)
+ 		exponent -= empty * BITS_PER_MP_LIMB;
+@@ -1646,7 +1645,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc)
+ 		      used = MANT_DIG - bits;
+ 		      if (used >= BITS_PER_MP_LIMB)
+ 			{
+-			  register int i;
++			  int i;
+ 			  (void) __mpn_lshift (&retval[used
+ 						       / BITS_PER_MP_LIMB],
+ 					       retval,
+diff --git a/stdlib/strtol_l.c b/stdlib/strtol_l.c
+index 784641b2920f1948..615190821e24b41a 100644
+--- a/stdlib/strtol_l.c
++++ b/stdlib/strtol_l.c
+@@ -231,11 +231,11 @@ INTERNAL (__strtol_l) (nptr, endptr, base, group, loc)
+      __locale_t loc;
+ {
+   int negative;
+-  register unsigned LONG int cutoff;
+-  register unsigned int cutlim;
+-  register unsigned LONG int i;
+-  register const STRING_TYPE *s;
+-  register UCHAR_TYPE c;
++  unsigned LONG int cutoff;
++  unsigned int cutlim;
++  unsigned LONG int i;
++  const STRING_TYPE *s;
++  UCHAR_TYPE c;
+   const STRING_TYPE *save, *end;
+   int overflow;
+ #ifndef USE_WIDE_CHAR
+diff --git a/stdlib/tst-strtod.c b/stdlib/tst-strtod.c
+index 670beb1e4df0e0dc..1cfb1da8963d7155 100644
+--- a/stdlib/tst-strtod.c
++++ b/stdlib/tst-strtod.c
+@@ -85,7 +85,7 @@ int
+ main (int argc, char ** argv)
+ {
+   char buf[100];
+-  register const struct ltest *lt;
++  const struct ltest *lt;
+   char *ep;
+   int status = 0;
+   int save_errno;
+@@ -184,7 +184,7 @@ main (int argc, char ** argv)
+ static void
+ expand (dst, c)
+      char *dst;
+-     register int c;
++     int c;
+ {
+   if (isprint (c))
+     {
+diff --git a/stdlib/tst-strtol.c b/stdlib/tst-strtol.c
+index 99cd574107cfed1c..448102a2d9652ee3 100644
+--- a/stdlib/tst-strtol.c
++++ b/stdlib/tst-strtol.c
+@@ -537,14 +537,14 @@ static void expand (char *dst, int c);
+ static int
+ do_test (void)
+ {
+-  register const struct ltest *lt;
++  const struct ltest *lt;
+   char *ep;
+   int status = 0;
+   int save_errno;
+ 
+   for (lt = tests; lt->str != NULL; ++lt)
+     {
+-      register long int l;
++      long int l;
+ 
+       errno = 0;
+       l = strtol (lt->str, &ep, lt->base);
+@@ -577,7 +577,7 @@ do_test (void)
+ 
+   for (++lt; lt->str != NULL; lt++)
+     {
+-      register unsigned long int ul;
++      unsigned long int ul;
+ 
+       errno = 0;
+       ul = strtoul (lt->str, &ep, lt->base);
+diff --git a/stdlib/tst-strtoll.c b/stdlib/tst-strtoll.c
+index b5ae230b4e0267b0..93f1a56a56956bdb 100644
+--- a/stdlib/tst-strtoll.c
++++ b/stdlib/tst-strtoll.c
+@@ -312,14 +312,14 @@ static void expand (char *dst, int c);
+ static int
+ do_test (void)
+ {
+-  register const struct ltest *lt;
++  const struct ltest *lt;
+   char *ep;
+   int status = 0;
+   int save_errno;
+ 
+   for (lt = tests; lt->str != NULL; ++lt)
+     {
+-      register long long int l;
++      long long int l;
+ 
+       errno = 0;
+       l = strtoll (lt->str, &ep, lt->base);
+@@ -352,7 +352,7 @@ do_test (void)
+ 
+   for (++lt; lt->str != NULL; lt++)
+     {
+-      register unsigned long long int ul;
++      unsigned long long int ul;
+ 
+       errno = 0;
+       ul = strtoull (lt->str, &ep, lt->base);
+diff --git a/string/bits/string2.h b/string/bits/string2.h
+index acd0679e72b10fbf..c9bf59319e1c4892 100644
+--- a/string/bits/string2.h
++++ b/string/bits/string2.h
+@@ -839,7 +839,7 @@ __stpcpy_small (char *__dest,
+ # endif
+ 
+ # define __strcmp_cc(s1, s2, l) \
+-  (__extension__ ({ register int __result =				      \
++  (__extension__ ({ int __result =					      \
+ 		      (((const unsigned char *) (const char *) (s1))[0]	      \
+ 		       - ((const unsigned char *) (const char *)(s2))[0]);    \
+ 		    if (l > 0 && __result == 0)				      \
+@@ -868,7 +868,7 @@ __stpcpy_small (char *__dest,
+ # define __strcmp_cg(s1, s2, l1) \
+   (__extension__ ({ const unsigned char *__s2 =				      \
+ 		      (const unsigned char *) (const char *) (s2);	      \
+-		    register int __result =				      \
++		    int __result =					      \
+ 		      (((const unsigned char *) (const char *) (s1))[0]	      \
+ 		       - __s2[0]);					      \
+ 		    if (l1 > 0 && __result == 0)			      \
+@@ -969,7 +969,7 @@ __STRING_INLINE size_t __strcspn_c1 (const char *__s, int __reject);
+ __STRING_INLINE size_t
+ __strcspn_c1 (const char *__s, int __reject)
+ {
+-  register size_t __result = 0;
++  size_t __result = 0;
+   while (__s[__result] != '\0' && __s[__result] != __reject)
+     ++__result;
+   return __result;
+@@ -980,7 +980,7 @@ __STRING_INLINE size_t __strcspn_c2 (const char *__s, int __reject1,
+ __STRING_INLINE size_t
+ __strcspn_c2 (const char *__s, int __reject1, int __reject2)
+ {
+-  register size_t __result = 0;
++  size_t __result = 0;
+   while (__s[__result] != '\0' && __s[__result] != __reject1
+ 	 && __s[__result] != __reject2)
+     ++__result;
+@@ -993,7 +993,7 @@ __STRING_INLINE size_t
+ __strcspn_c3 (const char *__s, int __reject1, int __reject2,
+ 	      int __reject3)
+ {
+-  register size_t __result = 0;
++  size_t __result = 0;
+   while (__s[__result] != '\0' && __s[__result] != __reject1
+ 	 && __s[__result] != __reject2 && __s[__result] != __reject3)
+     ++__result;
+@@ -1045,7 +1045,7 @@ __STRING_INLINE size_t __strspn_c1 (const char *__s, int __accept);
+ __STRING_INLINE size_t
+ __strspn_c1 (const char *__s, int __accept)
+ {
+-  register size_t __result = 0;
++  size_t __result = 0;
+   /* Please note that __accept never can be '\0'.  */
+   while (__s[__result] == __accept)
+     ++__result;
+@@ -1057,7 +1057,7 @@ __STRING_INLINE size_t __strspn_c2 (const char *__s, int __accept1,
+ __STRING_INLINE size_t
+ __strspn_c2 (const char *__s, int __accept1, int __accept2)
+ {
+-  register size_t __result = 0;
++  size_t __result = 0;
+   /* Please note that __accept1 and __accept2 never can be '\0'.  */
+   while (__s[__result] == __accept1 || __s[__result] == __accept2)
+     ++__result;
+@@ -1069,7 +1069,7 @@ __STRING_INLINE size_t __strspn_c3 (const char *__s, int __accept1,
+ __STRING_INLINE size_t
+ __strspn_c3 (const char *__s, int __accept1, int __accept2, int __accept3)
+ {
+-  register size_t __result = 0;
++  size_t __result = 0;
+   /* Please note that __accept1 to __accept3 never can be '\0'.  */
+   while (__s[__result] == __accept1 || __s[__result] == __accept2
+ 	 || __s[__result] == __accept3)
+@@ -1221,7 +1221,7 @@ __STRING_INLINE char *__strsep_1c (char **__s, char __reject);
+ __STRING_INLINE char *
+ __strsep_1c (char **__s, char __reject)
+ {
+-  register char *__retval = *__s;
++  char *__retval = *__s;
+   if (__retval != NULL && (*__s = strchr (__retval, __reject)) != NULL)
+     *(*__s)++ = '\0';
+   return __retval;
+@@ -1231,10 +1231,10 @@ __STRING_INLINE char *__strsep_2c (char **__s, char __reject1, char __reject2);
+ __STRING_INLINE char *
+ __strsep_2c (char **__s, char __reject1, char __reject2)
+ {
+-  register char *__retval = *__s;
++  char *__retval = *__s;
+   if (__retval != NULL)
+     {
+-      register char *__cp = __retval;
++      char *__cp = __retval;
+       while (1)
+ 	{
+ 	  if (*__cp == '\0')
+@@ -1259,10 +1259,10 @@ __STRING_INLINE char *__strsep_3c (char **__s, char __reject1, char __reject2,
+ __STRING_INLINE char *
+ __strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
+ {
+-  register char *__retval = *__s;
++  char *__retval = *__s;
+   if (__retval != NULL)
+     {
+-      register char *__cp = __retval;
++      char *__cp = __retval;
+       while (1)
+ 	{
+ 	  if (*__cp == '\0')
+diff --git a/string/memccpy.c b/string/memccpy.c
+index 78c13b60bd1b276c..64c3c0196845f102 100644
+--- a/string/memccpy.c
++++ b/string/memccpy.c
+@@ -34,10 +34,10 @@ __memccpy (dest, src, c, n)
+       int c;
+       size_t n;
+ {
+-  register const char *s = src;
+-  register char *d = dest;
+-  register const char x = c;
+-  register size_t i = n;
++  const char *s = src;
++  char *d = dest;
++  const char x = c;
++  size_t i = n;
+ 
+   while (i-- > 0)
+     if ((*d++ = *s++) == x)
+diff --git a/string/stpcpy.c b/string/stpcpy.c
+index 69d150f0c8557087..b74f6e2b489e1f18 100644
+--- a/string/stpcpy.c
++++ b/string/stpcpy.c
+@@ -40,8 +40,8 @@ __stpcpy (dest, src)
+      char *dest;
+      const char *src;
+ {
+-  register char *d = dest;
+-  register const char *s = src;
++  char *d = dest;
++  const char *s = src;
+ 
+   do
+     *d++ = *s;
+diff --git a/string/strcmp.c b/string/strcmp.c
+index 5384db9b2031c161..47fd2827ad9d64cf 100644
+--- a/string/strcmp.c
++++ b/string/strcmp.c
+@@ -32,8 +32,8 @@ STRCMP (p1, p2)
+      const char *p1;
+      const char *p2;
+ {
+-  register const unsigned char *s1 = (const unsigned char *) p1;
+-  register const unsigned char *s2 = (const unsigned char *) p2;
++  const unsigned char *s1 = (const unsigned char *) p1;
++  const unsigned char *s2 = (const unsigned char *) p2;
+   unsigned char c1, c2;
+ 
+   do
+diff --git a/string/strrchr.c b/string/strrchr.c
+index 03f3957fe902c968..2cb833016235a1cf 100644
+--- a/string/strrchr.c
++++ b/string/strrchr.c
+@@ -27,7 +27,7 @@
+ char *
+ STRRCHR (const char *s, int c)
+ {
+-  register const char *found, *p;
++  const char *found, *p;
+ 
+   c = (unsigned char) c;
+ 
+diff --git a/sysdeps/generic/sigset-cvt-mask.h b/sysdeps/generic/sigset-cvt-mask.h
+index 366a7719b30c9c01..d7084c0b539aab08 100644
+--- a/sysdeps/generic/sigset-cvt-mask.h
++++ b/sysdeps/generic/sigset-cvt-mask.h
+@@ -29,7 +29,7 @@ sigset_set_old_mask (sigset_t *set, int mask)
+     *set = (unsigned int) mask;
+   else
+     {
+-      register unsigned int __sig;
++      unsigned int __sig;
+ 
+       if (__sigemptyset (set) < 0)
+ 	return -1;
+@@ -52,7 +52,7 @@ sigset_get_old_mask (const sigset_t *set)
+   else
+     {
+       unsigned int mask = 0;
+-      register unsigned int sig;
++      unsigned int sig;
+ 
+       for (sig = 1; sig < NSIG && sig <= sizeof (mask) * 8; sig++)
+ 	if (__sigismember (set, sig))
+diff --git a/sysdeps/mach/hurd/getcwd.c b/sysdeps/mach/hurd/getcwd.c
+index e4cea5c287d76fff..6945e4d1c5c12237 100644
+--- a/sysdeps/mach/hurd/getcwd.c
++++ b/sysdeps/mach/hurd/getcwd.c
+@@ -46,7 +46,7 @@ _hurd_canonicalize_directory_name_internal (file_t thisdir,
+   mach_port_t rootid, thisid, rootdevid, thisdevid;
+   ino64_t rootino, thisino;
+   char *file_name;
+-  register char *file_namep;
++  char *file_namep;
+   file_t parent;
+   char *dirbuf = NULL;
+   unsigned int dirbufsize = 0;
+diff --git a/sysdeps/mach/i386/sysdep.h b/sysdeps/mach/i386/sysdep.h
+index bafa4d6c8c0639e8..f87691d0264cfcdc 100644
+--- a/sysdeps/mach/i386/sysdep.h
++++ b/sysdeps/mach/i386/sysdep.h
+@@ -29,7 +29,7 @@
+ #define SNARF_ARGS(entry_sp, argc, argv, envp)				      \
+   do									      \
+     {									      \
+-      register char **p;						      \
++      char **p;								      \
+       argc = (int) *entry_sp;						      \
+       argv = (char **) (entry_sp + 1);					      \
+       p = argv;								      \
+diff --git a/sysdeps/powerpc/powerpc32/power6/wcschr.c b/sysdeps/powerpc/powerpc32/power6/wcschr.c
+index a981427f7298477d..3b4cca15face81da 100644
+--- a/sysdeps/powerpc/powerpc32/power6/wcschr.c
++++ b/sysdeps/powerpc/powerpc32/power6/wcschr.c
+@@ -22,10 +22,10 @@
+ /* Find the first occurrence of WC in WCS.  */
+ wchar_t *
+ wcschr (wcs, wc)
+-     register const wchar_t *wcs;
+-     register const wchar_t wc;
++     const wchar_t *wcs;
++     const wchar_t wc;
+ {
+-  register const wchar_t *wcs2 = wcs + 1;
++  const wchar_t *wcs2 = wcs + 1;
+ 
+   if (*wcs == wc)
+     return (wchar_t *) wcs;
+diff --git a/sysdeps/powerpc/powerpc32/power6/wcsrchr.c b/sysdeps/powerpc/powerpc32/power6/wcsrchr.c
+index f9db8f8b53fad7fc..333650190afff171 100644
+--- a/sysdeps/powerpc/powerpc32/power6/wcsrchr.c
++++ b/sysdeps/powerpc/powerpc32/power6/wcsrchr.c
+@@ -22,10 +22,10 @@
+ /* Find the last occurrence of WC in WCS.  */
+ wchar_t *
+ wcsrchr (wcs, wc)
+-     register const wchar_t *wcs;
+-     register const wchar_t wc;
++     const wchar_t *wcs;
++     const wchar_t wc;
+ {
+-  register const wchar_t *wcs2 = wcs + 1;
++  const wchar_t *wcs2 = wcs + 1;
+   const wchar_t *retval = NULL;
+ 
+   if (*wcs == wc)
+diff --git a/sysdeps/x86/bits/byteswap-16.h b/sysdeps/x86/bits/byteswap-16.h
+index 584eb86b74a80c33..2f619729a766ff4e 100644
+--- a/sysdeps/x86/bits/byteswap-16.h
++++ b/sysdeps/x86/bits/byteswap-16.h
+@@ -24,7 +24,7 @@
+ # if __GNUC__ >= 2
+ #  define __bswap_16(x) \
+      (__extension__							      \
+-      ({ register unsigned short int __v, __x = (unsigned short int) (x);     \
++      ({ unsigned short int __v, __x = (unsigned short int) (x);	      \
+ 	 if (__builtin_constant_p (__x))				      \
+ 	   __v = __bswap_constant_16 (__x);				      \
+ 	 else								      \
+@@ -37,7 +37,7 @@
+ /* This is better than nothing.  */
+ #  define __bswap_16(x) \
+      (__extension__							      \
+-      ({ register unsigned short int __x = (unsigned short int) (x);	      \
++      ({ unsigned short int __x = (unsigned short int) (x);		      \
+ 	 __bswap_constant_16 (__x); }))
+ # endif
+ #else
+diff --git a/sysdeps/x86/bits/byteswap.h b/sysdeps/x86/bits/byteswap.h
+index 581687c7f2631183..9bab0c7f4fcb532a 100644
+--- a/sysdeps/x86/bits/byteswap.h
++++ b/sysdeps/x86/bits/byteswap.h
+@@ -57,7 +57,7 @@ __bswap_32 (unsigned int __bsx)
+    `bswap' opcode.  On i386 we have to use three instructions.  */
+ #   define __bswap_32(x) \
+       (__extension__							      \
+-       ({ register unsigned int __v, __x = (x);				      \
++       ({ unsigned int __v, __x = (x);					      \
+ 	  if (__builtin_constant_p (__x))				      \
+ 	    __v = __bswap_constant_32 (__x);				      \
+ 	  else								      \
+@@ -66,7 +66,7 @@ __bswap_32 (unsigned int __bsx)
+ #  else
+ #   define __bswap_32(x)						      \
+       (__extension__							      \
+-       ({ register unsigned int __v, __x = (x);				      \
++       ({ unsigned int __v, __x = (x);					      \
+ 	  if (__builtin_constant_p (__x))				      \
+ 	    __v = __bswap_constant_32 (__x);				      \
+ 	  else								      \
+@@ -81,7 +81,7 @@ __bswap_32 (unsigned int __bsx)
+ # else
+ #  define __bswap_32(x) \
+      (__extension__							      \
+-      ({ register unsigned int __x = (x); __bswap_constant_32 (__x); }))
++      ({ unsigned int __x = (x); __bswap_constant_32 (__x); }))
+ # endif
+ #else
+ static __inline unsigned int
+@@ -113,7 +113,7 @@ __bswap_64 (__uint64_t __bsx)
+ # elif __WORDSIZE == 64
+ #  define __bswap_64(x) \
+      (__extension__							      \
+-      ({ register __uint64_t __v, __x = (x);				      \
++      ({ __uint64_t __v, __x = (x);					      \
+ 	 if (__builtin_constant_p (__x))				      \
+ 	   __v = __bswap_constant_64 (__x);				      \
+ 	 else								      \
+diff --git a/time/test_time.c b/time/test_time.c
+index b3573aa26ac34bf6..8d20ff935b9e8963 100644
+--- a/time/test_time.c
++++ b/time/test_time.c
+@@ -24,7 +24,7 @@ int
+ main (int argc, char **argv)
+ {
+   time_t t;
+-  register struct tm *tp;
++  struct tm *tp;
+   struct tm tbuf;
+   int lose = 0;
+ 
+diff --git a/time/tzfile.c b/time/tzfile.c
+index 38aa15cb16300e1c..d67262916f11eaf0 100644
+--- a/time/tzfile.c
++++ b/time/tzfile.c
+@@ -104,10 +104,10 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
+ {
+   static const char default_tzdir[] = TZDIR;
+   size_t num_isstd, num_isgmt;
+-  register FILE *f;
++  FILE *f;
+   struct tzhead tzhead;
+   size_t chars;
+-  register size_t i;
++  size_t i;
+   size_t total_size;
+   size_t types_idx;
+   size_t leaps_idx;
+@@ -632,7 +632,7 @@ __tzfile_compute (time_t timer, int use_localtime,
+ 		  long int *leap_correct, int *leap_hit,
+ 		  struct tm *tp)
+ {
+-  register size_t i;
++  size_t i;
+ 
+   if (use_localtime)
+     {
+diff --git a/wcsmbs/wcscat.c b/wcsmbs/wcscat.c
+index 4eb2d936e76098b6..89366e1437465988 100644
+--- a/wcsmbs/wcscat.c
++++ b/wcsmbs/wcscat.c
+@@ -28,8 +28,8 @@ __wcscat (dest, src)
+      wchar_t *dest;
+      const wchar_t *src;
+ {
+-  register wchar_t *s1 = dest;
+-  register const wchar_t *s2 = src;
++  wchar_t *s1 = dest;
++  const wchar_t *s2 = src;
+   wchar_t c;
+ 
+   /* Find the end of the string.  */
+diff --git a/wcsmbs/wcschr.c b/wcsmbs/wcschr.c
+index cb0592bd425b6c4c..56511d88176fa1f0 100644
+--- a/wcsmbs/wcschr.c
++++ b/wcsmbs/wcschr.c
+@@ -24,8 +24,8 @@
+ 
+ wchar_t *
+ wcschr (wcs, wc)
+-     register const wchar_t *wcs;
+-     register const wchar_t wc;
++     const wchar_t *wcs;
++     const wchar_t wc;
+ {
+   do
+     if (*wcs == wc)
+diff --git a/wcsmbs/wcschrnul.c b/wcsmbs/wcschrnul.c
+index 1e4c44f80f77ef63..48eaf7b011e3a690 100644
+--- a/wcsmbs/wcschrnul.c
++++ b/wcsmbs/wcschrnul.c
+@@ -24,8 +24,8 @@
+ /* Find the first occurrence of WC in WCS.  */
+ wchar_t *
+ __wcschrnul (wcs, wc)
+-     register const wchar_t *wcs;
+-     register const wchar_t wc;
++     const wchar_t *wcs;
++     const wchar_t wc;
+ {
+   while (*wcs != L'\0')
+     if (*wcs == wc)
+diff --git a/wcsmbs/wcscspn.c b/wcsmbs/wcscspn.c
+index 9e84226cf5674ef8..cf4205fd5e56baee 100644
+--- a/wcsmbs/wcscspn.c
++++ b/wcsmbs/wcscspn.c
+@@ -29,7 +29,7 @@ wcscspn (wcs, reject)
+      const wchar_t *wcs;
+      const wchar_t *reject;
+ {
+-  register size_t count = 0;
++  size_t count = 0;
+ 
+   while (*wcs != L'\0')
+     if (wcschr (reject, *wcs++) == NULL)
+diff --git a/wcsmbs/wcspbrk.c b/wcsmbs/wcspbrk.c
+index b769a388d5e49301..ee880709d826fde8 100644
+--- a/wcsmbs/wcspbrk.c
++++ b/wcsmbs/wcspbrk.c
+@@ -25,8 +25,8 @@
+ /* Find the first occurrence in WCS of any wide-character in ACCEPT.  */
+ wchar_t *
+ wcspbrk (wcs, accept)
+-     register const wchar_t *wcs;
+-     register const wchar_t *accept;
++     const wchar_t *wcs;
++     const wchar_t *accept;
+ {
+   while (*wcs != L'\0')
+     if (wcschr (accept, *wcs) == NULL)
+diff --git a/wcsmbs/wcsrchr.c b/wcsmbs/wcsrchr.c
+index 27c94c5bb28cf9c5..b1771a7e8a7ee8a9 100644
+--- a/wcsmbs/wcsrchr.c
++++ b/wcsmbs/wcsrchr.c
+@@ -25,8 +25,8 @@
+ /* Find the last occurrence of WC in WCS.  */
+ wchar_t *
+ WCSRCHR (wcs, wc)
+-     register const wchar_t *wcs;
+-     register const wchar_t wc;
++     const wchar_t *wcs;
++     const wchar_t wc;
+ {
+   const wchar_t *retval = NULL;
+ 
+diff --git a/wcsmbs/wcsspn.c b/wcsmbs/wcsspn.c
+index 3e84726c6acb159c..4c2db0ffc360e906 100644
+--- a/wcsmbs/wcsspn.c
++++ b/wcsmbs/wcsspn.c
+@@ -29,9 +29,9 @@ wcsspn (wcs, accept)
+      const wchar_t *wcs;
+      const wchar_t *accept;
+ {
+-  register const wchar_t *p;
+-  register const wchar_t *a;
+-  register size_t count = 0;
++  const wchar_t *p;
++  const wchar_t *a;
++  size_t count = 0;
+ 
+   for (p = wcs; *p != L'\0'; ++p)
+     {
+diff --git a/wcsmbs/wcsstr.c b/wcsmbs/wcsstr.c
+index 932c74fe5e144ce9..d4a42df01ce1214c 100644
+--- a/wcsmbs/wcsstr.c
++++ b/wcsmbs/wcsstr.c
+@@ -33,7 +33,7 @@ wcsstr (haystack, needle)
+      const wchar_t *haystack;
+      const wchar_t *needle;
+ {
+-  register wchar_t b, c;
++  wchar_t b, c;
+ 
+   if ((b = *needle) != L'\0')
+     {
+@@ -50,8 +50,8 @@ wcsstr (haystack, needle)
+ 
+       for (;;)
+ 	{
+-	  register wchar_t a;
+-	  register const wchar_t *rhaystack, *rneedle;
++	  wchar_t a;
++	  const wchar_t *rhaystack, *rneedle;
+ 
+ 	  do
+ 	    {
+diff --git a/wcsmbs/wmemchr.c b/wcsmbs/wmemchr.c
+index 905a321fb24680f4..b8726838a2951d6e 100644
+--- a/wcsmbs/wmemchr.c
++++ b/wcsmbs/wmemchr.c
+@@ -24,9 +24,9 @@
+ 
+ wchar_t *
+ wmemchr (s, c, n)
+-     register const wchar_t *s;
+-     register wchar_t c;
+-     register size_t n;
++     const wchar_t *s;
++     wchar_t c;
++     size_t n;
+ {
+   /* For performance reasons unfold the loop four times.  */
+   while (n >= 4)
+diff --git a/wcsmbs/wmemcmp.c b/wcsmbs/wmemcmp.c
+index 2680b4bd078352bb..bb0a900dc8a5ec49 100644
+--- a/wcsmbs/wmemcmp.c
++++ b/wcsmbs/wmemcmp.c
+@@ -28,8 +28,8 @@ WMEMCMP (s1, s2, n)
+      const wchar_t *s2;
+      size_t n;
+ {
+-  register wchar_t c1;
+-  register wchar_t c2;
++  wchar_t c1;
++  wchar_t c2;
+ 
+   while (n >= 4)
+     {
+diff --git a/wcsmbs/wmemset.c b/wcsmbs/wmemset.c
+index 8049bb813075f000..afc26c7c48f34f3d 100644
+--- a/wcsmbs/wmemset.c
++++ b/wcsmbs/wmemset.c
+@@ -28,7 +28,7 @@ wmemset (s, c, n)
+      wchar_t c;
+      size_t n;
+ {
+-  register wchar_t *wp = s;
++  wchar_t *wp = s;
+ 
+   while (n >= 4)
+     {
diff --git a/SOURCES/glibc-rh1505492-s390-backtrace.patch b/SOURCES/glibc-rh1505492-s390-backtrace.patch
new file mode 100644
index 0000000..7c582f4
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-s390-backtrace.patch
@@ -0,0 +1,85 @@
+commit 618cebeff82ae775308eb29d7891e22861411e21
+Author: Stefan Liebler <stli@linux.vnet.ibm.com>
+Date:   Thu Nov 13 10:42:31 2014 +0100
+
+    S/390: Get rid of warning: the comparision will always evaluate as false.
+
+diff --git a/sysdeps/s390/s390-32/backtrace.c b/sysdeps/s390/s390-32/backtrace.c
+index 1dbe37eeb6f6db08..0db076804895e200 100644
+--- a/sysdeps/s390/s390-32/backtrace.c
++++ b/sysdeps/s390/s390-32/backtrace.c
+@@ -77,10 +77,6 @@ init (void)
+   if (unwind_getip == NULL)
+     unwind_backtrace = NULL;
+ }
+-#else
+-# define unwind_backtrace _Unwind_Backtrace
+-# define unwind_getip _Unwind_GetIP
+-#endif
+ 
+ static int
+ __backchain_backtrace (void **array, int size)
+@@ -107,6 +103,10 @@ __backchain_backtrace (void **array, int size)
+ 
+   return cnt;
+ }
++#else
++# define unwind_backtrace _Unwind_Backtrace
++# define unwind_getip _Unwind_GetIP
++#endif
+ 
+ static _Unwind_Reason_Code
+ backtrace_helper (struct _Unwind_Context *ctx, void *a)
+@@ -130,9 +130,10 @@ __backtrace (void **array, int size)
+   __libc_once_define (static, once);
+ 
+   __libc_once (once, init);
+-#endif
++
+   if (unwind_backtrace == NULL)
+     return __backchain_backtrace (array, size);
++#endif
+ 
+   if (size >= 1)
+     unwind_backtrace (backtrace_helper, &arg);
+diff --git a/sysdeps/s390/s390-64/backtrace.c b/sysdeps/s390/s390-64/backtrace.c
+index 562d461f97ad5bca..548d312f3cc05151 100644
+--- a/sysdeps/s390/s390-64/backtrace.c
++++ b/sysdeps/s390/s390-64/backtrace.c
+@@ -76,12 +76,8 @@ init (void)
+   if (unwind_getip == NULL)
+     unwind_backtrace = NULL;
+ }
+-#else
+-# define unwind_backtrace _Unwind_Backtrace
+-# define unwind_getip _Unwind_GetIP
+-#endif
+ 
+-int
++static int
+ __backchain_backtrace (void **array, int size)
+ {
+   /* We assume that all the code is generated with frame pointers set.  */
+@@ -106,6 +102,10 @@ __backchain_backtrace (void **array, int size)
+ 
+   return cnt;
+ }
++#else
++# define unwind_backtrace _Unwind_Backtrace
++# define unwind_getip _Unwind_GetIP
++#endif
+ 
+ static _Unwind_Reason_Code
+ backtrace_helper (struct _Unwind_Context *ctx, void *a)
+@@ -129,9 +129,10 @@ __backtrace (void **array, int size)
+   __libc_once_define (static, once);
+ 
+   __libc_once (once, init);
+-#endif
++
+   if (unwind_backtrace == NULL)
+     return __backchain_backtrace (array, size);
++#endif
+ 
+   if (size >= 1)
+     unwind_backtrace (backtrace_helper, &arg);
diff --git a/SOURCES/glibc-rh1505492-s390x-sotruss.patch b/SOURCES/glibc-rh1505492-s390x-sotruss.patch
new file mode 100644
index 0000000..9b18843
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-s390x-sotruss.patch
@@ -0,0 +1,85 @@
+commit 7a02cfade80b2b6ed2562e74105bebfee90a87ec
+Author: Mike Frysinger <vapier@gentoo.org>
+Date:   Tue Dec 24 04:31:22 2013 -0500
+
+    s390: implement sotruss support
+    
+    See commit 41b1792698a335d3a85381921a84a16e9635f36a for testcase.
+    
+    Note: while this works on s390x, the s390 code hangs when using -e.
+    But it hangs regardless of this code (the hang seems to occur before
+    the exit func is even called).  I didn't look too closely at it as
+    it seems to be an issue external to this file, so this code shouldn't
+    make the situation any worse.
+    
+    Reviewed-by: Carlos O'Donell <carlos@redhat.com>
+    Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+
+diff --git a/sysdeps/s390/sotruss-lib.c b/sysdeps/s390/sotruss-lib.c
+new file mode 100644
+index 0000000000000000..ded98db08dcf525b
+--- /dev/null
++++ b/sysdeps/s390/sotruss-lib.c
+@@ -0,0 +1,62 @@
++/* Override generic sotruss-lib.c to define actual functions for s390.
++   Copyright (C) 2012-2014 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 HAVE_ARCH_PLTENTER
++#define HAVE_ARCH_PLTEXIT
++
++#include <elf/sotruss-lib.c>
++
++#if __ELF_NATIVE_CLASS == 32
++# define la_s390_gnu_pltenter	la_s390_32_gnu_pltenter
++# define la_s390_gnu_pltexit	la_s390_32_gnu_pltexit
++# define La_s390_regs		La_s390_32_regs
++# define La_s390_retval		La_s390_32_retval
++#else
++# define la_s390_gnu_pltenter	la_s390_64_gnu_pltenter
++# define la_s390_gnu_pltexit	la_s390_64_gnu_pltexit
++# define La_s390_regs		La_s390_64_regs
++# define La_s390_retval		La_s390_64_retval
++#endif
++
++ElfW(Addr)
++la_s390_gnu_pltenter (ElfW(Sym) *sym,
++		      unsigned int ndx __attribute__ ((unused)),
++		      uintptr_t *refcook, uintptr_t *defcook,
++		      La_s390_regs *regs, unsigned int *flags,
++		      const char *symname, long int *framesizep)
++{
++  print_enter (refcook, defcook, symname,
++	       regs->lr_r2, regs->lr_r3, regs->lr_r4, *flags);
++
++  /* No need to copy anything, we will not need the parameters in any case.  */
++  *framesizep = 0;
++
++  return sym->st_value;
++}
++
++unsigned int
++la_s390_gnu_pltexit (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook,
++		     uintptr_t *defcook,
++		     const struct La_s390_regs *inregs,
++		     struct La_s390_retval *outregs, const char *symname)
++{
++  print_exit (refcook, defcook, symname, outregs->lrv_r2);
++
++  return 0;
++}
diff --git a/SOURCES/glibc-rh1505492-selinux.patch b/SOURCES/glibc-rh1505492-selinux.patch
new file mode 100644
index 0000000..f69b2ac
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-selinux.patch
@@ -0,0 +1,18 @@
+Remove unnecessary #include directives to avoid #warning directives from
+SELinux headers.  Further cleanup after glibc-rh1025934.patch.  Handled
+upstream as part of the original commit.
+
+diff --git a/nscd/selinux.c b/nscd/selinux.c
+index 2bf4d1a66a9623b5..24b554765264ae63 100644
+--- a/nscd/selinux.c
++++ b/nscd/selinux.c
+@@ -28,9 +28,7 @@
+ #include <syslog.h>
+ #include <unistd.h>
+ #include <sys/prctl.h>
+-#include <selinux/av_permissions.h>
+ #include <selinux/avc.h>
+-#include <selinux/flask.h>
+ #include <selinux/selinux.h>
+ #ifdef HAVE_LIBAUDIT
+ # include <libaudit.h>
diff --git a/SOURCES/glibc-rh1505492-systemtap.patch b/SOURCES/glibc-rh1505492-systemtap.patch
new file mode 100644
index 0000000..a0eae77
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-systemtap.patch
@@ -0,0 +1,50 @@
+commit 520d437b9455560d099fe6bd9664be1f9f76868b
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Tue Dec 3 12:26:12 2013 +0530
+
+    [BZ #16195] Fix build warnings from systemtap probes in non-systemtap configurations
+    
+    Joseph pointed out in the bug report (and in an earlier thread) that
+    systemtap probes cause build time warnings like the following:
+    
+        ../sysdeps/ieee754/dbl-64/e_atan2.c:602:4: warning: the address of
+        'p' will always evaluate as 'true' [-Waddress]
+    
+    due to the fact that we're now passing non-weak variables to
+    LIBC_PROBE in the libm probes.  This happens only on configurations
+    that do not enable systemtap.  The macro definition of LIBC_PROBE in
+    this case only acts as a sanity checker to ensure that the number
+    parameters passed to LIBC_PROBE is equal to the argument count
+    parameter passed before it.  This can be done in a much simpler manner
+    by just adding a macro definition for each number of arguments.  I am
+    assuming here that we don't really want to bother with supporting
+    LIBC_PROBE with an indeterminate number of arguments and if there is a
+    need for a probe to have more data than what is currently supported (4
+    arguments), one could simply add an additional macro here.
+
+diff --git a/include/stap-probe.h b/include/stap-probe.h
+index 0f65c29b2b5c5dde..0ddb5d5fc9f740dd 100644
+--- a/include/stap-probe.h
++++ b/include/stap-probe.h
+@@ -49,13 +49,14 @@
+ 
+ # ifndef __ASSEMBLER__
+ /* Evaluate all the arguments and verify that N matches their number.  */
+-#  define LIBC_PROBE(name, n, ...)					      \
+-  do {									      \
+-    _Bool __libc_probe_args[] = { 0, ## __VA_ARGS__ };			      \
+-    _Bool __libc_probe_verify_n[(sizeof __libc_probe_args / sizeof (_Bool))   \
+-                                == n + 1 ? 1 : -1];			      \
+-    (void) __libc_probe_verify_n;					      \
+-  } while (0)
++#define LIBC_PROBE(name, n, ...) STAP_PROBE##n (__VA_ARGS__)
++
++#define STAP_PROBE0()
++#define STAP_PROBE1(a1)
++#define STAP_PROBE2(a1, a2)
++#define STAP_PROBE3(a1, a2, a3)
++#define STAP_PROBE4(a1, a2, a3, a4)
++
+ # else
+ #  define LIBC_PROBE(name, n, ...)		/* Nothing.  */
+ # endif
diff --git a/SOURCES/glibc-rh1505492-types-1.patch b/SOURCES/glibc-rh1505492-types-1.patch
new file mode 100644
index 0000000..4303f63
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-types-1.patch
@@ -0,0 +1,19 @@
+commit 87ded0c382b835e5d7ca8b5e059a8a044a6c3976
+Author: Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+Date:   Tue Jan 7 09:40:39 2014 +0100
+
+    S/390: Remove __tls_get_addr argument cast.
+
+diff --git a/sysdeps/s390/dl-tls.h b/sysdeps/s390/dl-tls.h
+index 3afa3c89da2ad881..2d5c0807765e33ad 100644
+--- a/sysdeps/s390/dl-tls.h
++++ b/sysdeps/s390/dl-tls.h
+@@ -91,7 +91,7 @@ extern void *__tls_get_addr_internal (tls_index *ti);
+    compiler will take care of setting up r12 only if itself issued the
+    __tls_get_offset call.  */
+ # define __TLS_GET_ADDR(__ti)					\
+-  ({ (void *) __tls_get_addr_internal ((char *) (__ti))		\
++  ({ __tls_get_addr_internal (__ti)				\
+       + (unsigned long) __builtin_thread_pointer (); })
+ 
+ #endif
diff --git a/SOURCES/glibc-rh1505492-types-10.patch b/SOURCES/glibc-rh1505492-types-10.patch
new file mode 100644
index 0000000..9866197
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-types-10.patch
@@ -0,0 +1,24 @@
+commit 7f29694236aab000eae24f36b7989a6b774044ae
+Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+Date:   Thu Dec 11 14:54:22 2014 -0500
+
+    Fix __sendmmsg prototype guards
+    
+    Add __USE_GNU guards on 'socket/sys/socket.h' __sendmmsg prototype.
+
+diff --git a/include/sys/socket.h b/include/sys/socket.h
+index 9caf1bbdf5fa7782..99f60363a133cf93 100644
+--- a/include/sys/socket.h
++++ b/include/sys/socket.h
+@@ -91,9 +91,11 @@ extern ssize_t __libc_sendmsg (int __fd, const struct msghdr *__message,
+ extern ssize_t __sendmsg (int __fd, const struct msghdr *__message,
+ 			  int __flags) attribute_hidden;
+ 
++#ifdef __USE_GNU
+ extern int __sendmmsg (int __fd, struct mmsghdr *__vmessages,
+                        unsigned int __vlen, int __flags);
+ libc_hidden_proto (__sendmmsg)
++#endif
+ 
+ /* Receive a message as described by MESSAGE from socket FD.
+    Returns the number of bytes read or -1 for errors.  */
diff --git a/SOURCES/glibc-rh1505492-types-11.patch b/SOURCES/glibc-rh1505492-types-11.patch
new file mode 100644
index 0000000..05555e6
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-types-11.patch
@@ -0,0 +1,21 @@
+commit bdf079da369ad5685c0432b2f41a5aaf1ec990e7
+Author: Andreas Schwab <schwab@suse.de>
+Date:   Wed Dec 17 13:04:07 2014 +0100
+
+    Fix printf format error
+
+diff --git a/nscd/mem.c b/nscd/mem.c
+index 3811b447b0bf732b..a3d1014c640e7d83 100644
+--- a/nscd/mem.c
++++ b/nscd/mem.c
+@@ -423,8 +423,8 @@ gc (struct database_dyn *db)
+ 
+       if (__builtin_expect (debug_level >= 3, 0))
+ 	dbg_log (_("freed %zu bytes in %s cache"),
+-		 db->head->first_free
+-		 - ((char *) moves->to + moves->size - db->data),
++		 (size_t) (db->head->first_free
++			   - ((char *) moves->to + moves->size - db->data)),
+ 		 dbnames[db - dbs]);
+ 
+       /* The byte past the end of the last copied block is the next
diff --git a/SOURCES/glibc-rh1505492-types-12.patch b/SOURCES/glibc-rh1505492-types-12.patch
new file mode 100644
index 0000000..3454c33
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-types-12.patch
@@ -0,0 +1,19 @@
+commit eca2772b9a2b057a1af6604afb9b5d3ce3448497
+Author: Stefan Liebler <stli@linux.vnet.ibm.com>
+Date:   Wed Dec 17 16:42:51 2014 +0100
+
+    Get rid of format warning in tst-widetext.c.
+
+diff --git a/libio/tst-widetext.c b/libio/tst-widetext.c
+index fef57be53ca072c4..fd8b207eb30a99bf 100644
+--- a/libio/tst-widetext.c
++++ b/libio/tst-widetext.c
+@@ -291,7 +291,7 @@ do_test (void)
+     {
+       if (fgetws (wcp, &wc2buf[wcsize] - wcp + 1, fp) == NULL)
+ 	{
+-	  printf ("%u: short read using fgetws (only %Zd of %Zd)\n",
++	  printf ("%u: short read using fgetws (only %td of %Zd)\n",
+ 		  __LINE__, wcp - wc2buf, wcsize);
+ 	  status = 1;
+ 	  break;
diff --git a/SOURCES/glibc-rh1505492-types-13.patch b/SOURCES/glibc-rh1505492-types-13.patch
new file mode 100644
index 0000000..54431da
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-types-13.patch
@@ -0,0 +1,20 @@
+commit d22ce01becae90db0c65c82fd2e1aa7898df7ce6
+Author: Stefan Liebler <stli@linux.vnet.ibm.com>
+Date:   Wed Dec 17 16:43:34 2014 +0100
+
+    Get rid of format warning in bug-vfprintf-nargs.c.
+
+diff --git a/stdio-common/bug-vfprintf-nargs.c b/stdio-common/bug-vfprintf-nargs.c
+index 4f621064cc0ca5c7..e8651823e6096c0e 100644
+--- a/stdio-common/bug-vfprintf-nargs.c
++++ b/stdio-common/bug-vfprintf-nargs.c
+@@ -65,7 +65,8 @@ do_test (void)
+      test this on 32-bit systems.  */
+   if (sizeof (long int) == 4)
+     {
+-      sprintf (buf, "%%1$d %%%" PRIdPTR "$d", UINT32_MAX / sizeof (int));
++      sprintf (buf, "%%1$d %%%" PRIdPTR "$d",
++	       (intptr_t) (UINT32_MAX / sizeof (int)));
+       if (format_failed (buf, "1 %$d") != 0)
+         rc = 1;
+     }
diff --git a/SOURCES/glibc-rh1505492-types-14.patch b/SOURCES/glibc-rh1505492-types-14.patch
new file mode 100644
index 0000000..c717cb9
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-types-14.patch
@@ -0,0 +1,40 @@
+commit 41fad83083a21800aafb08fbc888f05ae44d6c8a
+Author: H.J. Lu <hjl.tools@gmail.com>
+Date:   Fri Dec 19 13:49:58 2014 -0800
+
+    Replace %ld with %jd and cast to intmax_t
+
+diff --git a/libio/tst-ftell-active-handler.c b/libio/tst-ftell-active-handler.c
+index 8549ccaafdf2623c..3d8030f32fcb3335 100644
+--- a/libio/tst-ftell-active-handler.c
++++ b/libio/tst-ftell-active-handler.c
+@@ -538,23 +538,23 @@ do_append_test (const char *filename)
+ 
+   if (seek_ret != new_seek_ret)
+     {
+-      printf ("incorrectly modified file offset to %ld, should be %ld",
+-	      new_seek_ret, seek_ret);
++      printf ("incorrectly modified file offset to %jd, should be %jd",
++	      (intmax_t)  new_seek_ret, (intmax_t) seek_ret);
+       ret |= 1;
+     }
+   else
+-    printf ("retained current file offset %ld", seek_ret);
++    printf ("retained current file offset %jd", (intmax_t) seek_ret);
+ 
+   new_seek_ret = ftello (fp);
+ 
+   if (seek_ret != new_seek_ret)
+     {
+-      printf (", ftello reported incorrect offset %ld, should be %ld\n",
+-	      new_seek_ret, seek_ret);
++      printf (", ftello reported incorrect offset %jd, should be %jd\n",
++	      (intmax_t) new_seek_ret, (intmax_t) seek_ret);
+       ret |= 1;
+     }
+   else
+-    printf (", ftello reported correct offset %ld\n", seek_ret);
++    printf (", ftello reported correct offset %jd\n", (intmax_t) seek_ret);
+ 
+   fclose (fp);
+ 
diff --git a/SOURCES/glibc-rh1505492-types-2.patch b/SOURCES/glibc-rh1505492-types-2.patch
new file mode 100644
index 0000000..8d1dae0
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-types-2.patch
@@ -0,0 +1,30 @@
+commit 439e1ad6d04e24f76f92ff7f61153fbe489559b9
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Tue Nov 25 23:31:21 2014 +0000
+
+    Fix warning in stdio-common/tst-printf-round.c.
+    
+    This patch fixes warnings of the form "tst-printf-round.c:202:17:
+    warning: passing argument 3 of 'test_hex_in_one_mode' discards 'const'
+    qualifier from pointer target type", by adding an extra const to that
+    argument (so that after array-to-pointer conversion it's const char
+    *const *).
+    
+    Tested for x86_64.
+    
+            * stdio-common/tst-printf-round.c (test_hex_in_one_mode): Make
+            third argument const.
+
+diff --git a/stdio-common/tst-printf-round.c b/stdio-common/tst-printf-round.c
+index 7cc19c5645dcc806..7f40a713636302b8 100644
+--- a/stdio-common/tst-printf-round.c
++++ b/stdio-common/tst-printf-round.c
+@@ -136,7 +136,7 @@ static const struct hex_test hex_tests[] =
+   };
+ 
+ static int
+-test_hex_in_one_mode (double d, const char *fmt, const char *expected[4],
++test_hex_in_one_mode (double d, const char *fmt, const char *const expected[4],
+ 		      const char *mode_name)
+ {
+   char buf[100];
diff --git a/SOURCES/glibc-rh1505492-types-3.patch b/SOURCES/glibc-rh1505492-types-3.patch
new file mode 100644
index 0000000..4cacea9
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-types-3.patch
@@ -0,0 +1,30 @@
+commit 59ef17152b1ad9a4c4d618ec085586e3e14f6e94
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Wed Nov 26 16:07:39 2014 +0000
+
+    Fix nptl/tst-cancel-self-cancelstate.c warning.
+    
+    This patch fixes "../sysdeps/nptl/pthread.h:670:26: warning:
+    initialization discards 'volatile' qualifier from pointer target type"
+    arising when building nptl/tst-cancel-self-cancelstate.c.  The problem
+    is passing a volatile int * to a macro expecting void *; the patch
+    adds an explicit cast.
+    
+    Tested for x86_64.
+    
+            * nptl/tst-cancel-self-cancelstate.c (do_test): Cast argument of
+            pthread_cleanup_push to void *.
+
+diff --git a/nptl/tst-cancel-self-cancelstate.c b/nptl/tst-cancel-self-cancelstate.c
+index c82e6f3cedd1745b..21314a2efb00dbf1 100644
+--- a/nptl/tst-cancel-self-cancelstate.c
++++ b/nptl/tst-cancel-self-cancelstate.c
+@@ -29,7 +29,7 @@ do_test (void)
+   int ret = 0;
+   volatile int should_fail = 1;
+ 
+-  pthread_cleanup_push (cleanup, &should_fail);
++  pthread_cleanup_push (cleanup, (void *) &should_fail);
+ 
+   if ((ret = pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, NULL)) != 0)
+     {
diff --git a/SOURCES/glibc-rh1505492-types-5.patch b/SOURCES/glibc-rh1505492-types-5.patch
new file mode 100644
index 0000000..0ee1ca9
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-types-5.patch
@@ -0,0 +1,30 @@
+commit be97091638d156a53009b4034c60b58eaf3efa24
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Thu Nov 27 03:24:18 2014 +0000
+
+    Fix nss/tst-nss-test1.c format warning.
+    
+    Testing for 32-bit x86 shows up a warning "tst-nss-test1.c:25:3:
+    warning: format '%ju' expects argument of type 'uintmax_t', but
+    argument 2 has type 'int' [-Wformat=]".  The argument is a difference
+    of two pointers, a signed quantity of type ptrdiff_t for which the
+    right format is %td; this patch makes this test use that format.
+    
+    Tested for 32-bit x86.
+    
+            * nss/tst-nss-test1.c (do_test): Use %td printf format for pointer
+            difference, not %ju.
+
+diff --git a/nss/tst-nss-test1.c b/nss/tst-nss-test1.c
+index 4e443d453909e231..c5750e0956ea9450 100644
+--- a/nss/tst-nss-test1.c
++++ b/nss/tst-nss-test1.c
+@@ -21,7 +21,7 @@ do_test (void)
+     if (p->pw_uid != *np || strncmp (p->pw_name, "name", 4) != 0
+ 	|| atol (p->pw_name + 4) != *np)
+       {
+-	printf ("passwd entry %ju wrong (%s, %u)\n",
++	printf ("passwd entry %td wrong (%s, %u)\n",
+ 		np - pwdids, p->pw_name, p->pw_uid);
+ 	retval = 1;
+ 	break;
diff --git a/SOURCES/glibc-rh1505492-types-6.patch b/SOURCES/glibc-rh1505492-types-6.patch
new file mode 100644
index 0000000..2025c28
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-types-6.patch
@@ -0,0 +1,29 @@
+commit b1aff6a41120c1d9cedc1ecedeafc79f161ce982
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Tue Dec 2 22:03:59 2014 +0000
+
+    Fix warning in posix/tst-getopt_long1.c.
+    
+    This patch fixes a "discards qualifiers" warning in
+    posix/tst-getopt_long1.c.  glibc is built with -Wwrite-strings,
+    meaning a char * cannot be initialized directly with a string
+    constant; the patch casts the string constants to char *.
+    
+    Tested for x86_64.
+    
+            * posix/tst-getopt_long1.c (do_test): Cast elements of argv array
+            to char *.
+
+diff --git a/posix/tst-getopt_long1.c b/posix/tst-getopt_long1.c
+index e0ecd121908de5f8..3895ebd99b291917 100644
+--- a/posix/tst-getopt_long1.c
++++ b/posix/tst-getopt_long1.c
+@@ -39,7 +39,7 @@ do_test (void)
+       return 1;
+     }
+ 
+-  char *argv[] = { "program", "--on" };
++  char *argv[] = { (char *) "program", (char *) "--on" };
+   int argc = 2;
+ 
+   int c = getopt_long (argc, argv, "12345", opts, NULL);
diff --git a/SOURCES/glibc-rh1505492-types-7.patch b/SOURCES/glibc-rh1505492-types-7.patch
new file mode 100644
index 0000000..c1f0563
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-types-7.patch
@@ -0,0 +1,33 @@
+commit 909e16d96064708b43170eeb01135315f540e6ff
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Tue Dec 2 22:48:59 2014 +0000
+
+    Fix warning in nptl/tst-stack4.c.
+    
+    This patch fixes a warning in a test that was added since my recent
+    warning cleanup:
+    
+    tst-stack4.c: In function 'dso_process':
+    tst-stack4.c:64:7: warning: format '%i' expects argument of type 'int', but argument 3 has type 'uintptr_t' [-Wformat=]
+    
+    The original variable has type int then is cast to uintptr_t, and from
+    there to void *, to pass it to a thread, so reversing the process by
+    casting to uintptr_t and then to int is natural; this patch does so.
+    
+    Tested for x86_64.
+    
+            * nptl/tst-stack4.c (dso_process): Use int not uintptr_t for t.
+
+diff --git a/nptl/tst-stack4.c b/nptl/tst-stack4.c
+index d9c8df2c8d35e8a9..3b726936461408b3 100644
+--- a/nptl/tst-stack4.c
++++ b/nptl/tst-stack4.c
+@@ -56,7 +56,7 @@ dso_process (void * p)
+   function fun_vec[DSO_SHARED_FILES];
+   char dso_path[DSO_SHARED_FILES][100];
+   int dso;
+-  uintptr_t t = (uintptr_t) p;
++  int t = (int) (uintptr_t) p;
+ 
+   /* Open DSOs and get a function.  */
+   for (dso = 0; dso < DSO_SHARED_FILES; dso++)
diff --git a/SOURCES/glibc-rh1505492-types-8.patch b/SOURCES/glibc-rh1505492-types-8.patch
new file mode 100644
index 0000000..45e2e8a
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-types-8.patch
@@ -0,0 +1,29 @@
+commit 1b8bf3518186cdc4f22037e5f226c34ffa143b89
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Wed Dec 10 16:03:23 2014 +0000
+
+    Fix tst-ftell-active-handler.c warning.
+    
+    A recent change to libio/tst-ftell-active-handler.c (postdating my
+    last check for warnings on x86) introduced a format warning from a
+    long int variable used with a %zu format.  This patch fixes it by
+    using %ld for the format to match the variable.
+    
+    Tested for x86.
+    
+            * libio/tst-ftell-active-handler.c (do_ftruncate_test): Use %ld
+            format for long int variable.
+
+diff --git a/libio/tst-ftell-active-handler.c b/libio/tst-ftell-active-handler.c
+index 59a4268ffb50f085..8549ccaafdf2623c 100644
+--- a/libio/tst-ftell-active-handler.c
++++ b/libio/tst-ftell-active-handler.c
+@@ -163,7 +163,7 @@ do_ftruncate_test (const char *filename)
+ 	     it.  */
+ 	  if (offset != new_offset)
+ 	    {
+-	      printf ("Incorrect offset.  Expected %zu, but got %ld\n",
++	      printf ("Incorrect offset.  Expected %ld, but got %ld\n",
+ 		      offset, new_offset);
+ 
+ 	      ret |= 1;
diff --git a/SOURCES/glibc-rh1505492-types-9.patch b/SOURCES/glibc-rh1505492-types-9.patch
new file mode 100644
index 0000000..9d708ce
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-types-9.patch
@@ -0,0 +1,37 @@
+commit 9d96909913249f7b1ff9f503f8fa8abc458089a9
+Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+Date:   Thu Dec 11 07:17:11 2014 -0500
+
+    powerpc: Fix lgammal_r overflow warnings
+    
+    ldbl-128ibm uses ldbl-128 e_lgammal_r implementation as is, however some
+    constants definitions overflows for IBM long double range.  This patch
+    suppress the compiler warnings until the ldbl-128ibm implementation is
+    fixed.
+
+diff --git a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
+index 2b44afb759695f11..39c38b4b6bf1daad 100644
+--- a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
++++ b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
+@@ -70,12 +70,20 @@
+ 
+ #include <math.h>
+ #include <math_private.h>
++#include <libc-internal.h>
++#include <float.h>
+ 
++/* BZ#16347: ldbl-128ibm uses this file as is, however the MAXLGM
++   definition overflows for IBM long double.  This directive prevents the
++   overflow warnings until IBM long double version is fixed.  */
+ static const long double PIL = 3.1415926535897932384626433832795028841972E0L;
++DIAG_PUSH_NEEDS_COMMENT;
++DIAG_IGNORE_NEEDS_COMMENT (4.6, "-Woverflow");
+ static const long double MAXLGM = 1.0485738685148938358098967157129705071571E4928L;
++DIAG_POP_NEEDS_COMMENT;
+ static const long double one = 1.0L;
+ static const long double zero = 0.0L;
+-static const long double huge = 1.0e4000L;
++static const long double huge = LDBL_MAX;
+ 
+ /* log gamma(x) = ( x - 0.5 ) * log(x) - x + LS2PI + 1/x P(1/x^2)
+    1/x <= 0.0741 (x >= 13.495...)
diff --git a/SOURCES/glibc-rh1505492-undef-1.patch b/SOURCES/glibc-rh1505492-undef-1.patch
new file mode 100644
index 0000000..b1cccfb
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-1.patch
@@ -0,0 +1,29 @@
+commit d643bac1f7b2f361576ce45523de7cf0bf5a69de
+Author: Andreas Schwab <schwab@linux-m68k.org>
+Date:   Fri Jan 4 18:01:34 2013 +0100
+
+    Fix warnings in test-powerpc-snan.c
+
+diff --git a/sysdeps/powerpc/fpu/test-powerpc-snan.c b/sysdeps/powerpc/fpu/test-powerpc-snan.c
+index b90f0264b2b2bfb9..1547ced39a7ba371 100644
+--- a/sysdeps/powerpc/fpu/test-powerpc-snan.c
++++ b/sysdeps/powerpc/fpu/test-powerpc-snan.c
+@@ -17,8 +17,7 @@
+    License along with the GNU C Library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+ 
+-#define _GNU_SOURCE
+-#define __USE_GNU
++#define _GNU_SOURCE 1
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <sys/time.h>
+@@ -42,7 +41,7 @@ long double SNANl;
+ static sigjmp_buf sigfpe_buf;
+ 
+ void
+-init_signaling_nan()
++init_signaling_nan (void)
+ {
+     union {
+ 	double _ld16;
diff --git a/SOURCES/glibc-rh1505492-undef-10.patch b/SOURCES/glibc-rh1505492-undef-10.patch
new file mode 100644
index 0000000..40360df
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-10.patch
@@ -0,0 +1,57 @@
+commit afb466fcb034f594e083b5664fa60a0d4f54c41b
+Author: Will Newton <will.newton@linaro.org>
+Date:   Mon Mar 17 11:06:02 2014 +0000
+
+    Fix __STRICT_ANSI__ -Wundef warnings
+    
+    ChangeLog:
+    
+    2014-03-17  Will Newton  <will.newton@linaro.org>
+    
+            * argp/argp-fmtstream.h: Check whether
+            __STRICT_ANSI__ is defined with #ifdef rather
+            than #if.
+            * argp/argp.h: Likewise.
+
+diff --git a/argp/argp-fmtstream.h b/argp/argp-fmtstream.h
+index f4140b924c13a302..61c45bf86b6bf8d5 100644
+--- a/argp/argp-fmtstream.h
++++ b/argp/argp-fmtstream.h
+@@ -31,12 +31,14 @@
+ 
+ #ifndef __attribute__
+ /* This feature is available in gcc versions 2.5 and later.  */
+-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
++# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || \
++  defined __STRICT_ANSI__
+ #  define __attribute__(Spec) /* empty */
+ # endif
+ /* The __-protected variants of `format' and `printf' attributes
+    are accepted by gcc versions 2.6.4 (effectively 2.7) and later.  */
+-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) || __STRICT_ANSI__
++# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) || \
++  defined __STRICT_ANSI__
+ #  define __format__ format
+ #  define __printf__ printf
+ # endif
+diff --git a/argp/argp.h b/argp/argp.h
+index 8fb7098061443ba8..37544fe44a102574 100644
+--- a/argp/argp.h
++++ b/argp/argp.h
+@@ -38,12 +38,14 @@
+ 
+ #ifndef __attribute__
+ /* This feature is available in gcc versions 2.5 and later.  */
+-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
++# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || \
++  defined __STRICT_ANSI__
+ #  define __attribute__(Spec) /* empty */
+ # endif
+ /* The __-protected variants of `format' and `printf' attributes
+    are accepted by gcc versions 2.6.4 (effectively 2.7) and later.  */
+-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) || __STRICT_ANSI__
++# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) || \
++  defined __STRICT_ANSI__
+ #  define __format__ format
+ #  define __printf__ printf
+ # endif
diff --git a/SOURCES/glibc-rh1505492-undef-11.patch b/SOURCES/glibc-rh1505492-undef-11.patch
new file mode 100644
index 0000000..4d82472
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-11.patch
@@ -0,0 +1,101 @@
+commit fdf4534d02483af279deddfd23cb61f6079dd277
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Tue Mar 18 07:22:36 2014 +0530
+
+    Fix -Wundef warnins for __FP_FAST_FMA*
+    
+    The macros are defined by the compiler, so we can only verify whether
+    they are defined or not.
+
+diff --git a/bits/mathdef.h b/bits/mathdef.h
+index fb998ca22fd78e44..ed62a000be11cd37 100644
+--- a/bits/mathdef.h
++++ b/bits/mathdef.h
+@@ -35,15 +35,15 @@ typedef double double_t;	/* `double' expressions are evaluated as
+ 
+ /* The GCC 4.6 compiler will define __FP_FAST_FMA{,F,L} if the fma{,f,l}
+    builtins are supported.  */
+-#if __FP_FAST_FMA
++#ifdef __FP_FAST_FMA
+ # define FP_FAST_FMA 1
+ #endif
+ 
+-#if __FP_FAST_FMAF
++#ifdef __FP_FAST_FMAF
+ # define FP_FAST_FMAF 1
+ #endif
+ 
+-#if __FP_FAST_FMAL
++#ifdef __FP_FAST_FMAL
+ # define FP_FAST_FMAL 1
+ #endif
+ 
+diff --git a/sysdeps/arm/bits/mathdef.h b/sysdeps/arm/bits/mathdef.h
+index 37e92267455e5ddd..8230d4ba78a991c6 100644
+--- a/sysdeps/arm/bits/mathdef.h
++++ b/sysdeps/arm/bits/mathdef.h
+@@ -35,15 +35,15 @@ typedef double double_t;	/* `double' expressions are evaluated as
+ 
+ /* The GCC 4.6 compiler will define __FP_FAST_FMA{,F,L} if the fma{,f,l}
+    builtins are supported.  */
+-# if __FP_FAST_FMA
++# ifdef __FP_FAST_FMA
+ #  define FP_FAST_FMA 1
+ # endif
+ 
+-# if __FP_FAST_FMAF
++# ifdef __FP_FAST_FMAF
+ #  define FP_FAST_FMAF 1
+ # endif
+ 
+-# if __FP_FAST_FMAL
++# ifdef __FP_FAST_FMAL
+ #  define FP_FAST_FMAL 1
+ # endif
+ 
+diff --git a/sysdeps/tile/bits/mathdef.h b/sysdeps/tile/bits/mathdef.h
+index bf0da5e438b2c01c..e5c54e85674d7695 100644
+--- a/sysdeps/tile/bits/mathdef.h
++++ b/sysdeps/tile/bits/mathdef.h
+@@ -33,15 +33,15 @@ typedef double double_t;
+ 
+ /* The GCC 4.6 compiler will define __FP_FAST_FMA{,F,L} if the fma{,f,l}
+    builtins are supported.  */
+-# if __FP_FAST_FMA
++# ifdef __FP_FAST_FMA
+ #  define FP_FAST_FMA 1
+ # endif
+ 
+-# if __FP_FAST_FMAF
++# ifdef __FP_FAST_FMAF
+ #  define FP_FAST_FMAF 1
+ # endif
+ 
+-# if __FP_FAST_FMAL
++# ifdef __FP_FAST_FMAL
+ #  define FP_FAST_FMAL 1
+ # endif
+ 
+diff --git a/sysdeps/x86/bits/mathdef.h b/sysdeps/x86/bits/mathdef.h
+index c202ad5928659f21..d7b40b4a52e95fe1 100644
+--- a/sysdeps/x86/bits/mathdef.h
++++ b/sysdeps/x86/bits/mathdef.h
+@@ -44,15 +44,15 @@ typedef long double double_t;	/* `double' expressions are evaluated as
+ 
+ /* The GCC 4.6 compiler will define __FP_FAST_FMA{,F,L} if the fma{,f,l}
+    builtins are supported.  */
+-# if __FP_FAST_FMA
++# ifdef __FP_FAST_FMA
+ #  define FP_FAST_FMA 1
+ # endif
+ 
+-# if __FP_FAST_FMAF
++# ifdef __FP_FAST_FMAF
+ #  define FP_FAST_FMAF 1
+ # endif
+ 
+-# if __FP_FAST_FMAL
++# ifdef __FP_FAST_FMAL
+ #  define FP_FAST_FMAL 1
+ # endif
+ 
diff --git a/SOURCES/glibc-rh1505492-undef-12.patch b/SOURCES/glibc-rh1505492-undef-12.patch
new file mode 100644
index 0000000..344d39d
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-12.patch
@@ -0,0 +1,19 @@
+commit 78b6eebcf1b33c71ae5028422f500a0e48b20544
+Author: Stefan Liebler <stli@linux.vnet.ibm.com>
+Date:   Mon Mar 24 16:32:47 2014 +0100
+
+    Use += before-compile instead of a :=.
+
+diff --git a/posix/Makefile b/posix/Makefile
+index 683b6e4b272fdebb..4034282866139aaa 100644
+--- a/posix/Makefile
++++ b/posix/Makefile
+@@ -96,7 +96,7 @@ others		:= getconf
+ install-bin	:= getconf
+ install-others-programs	:= $(inst_libexecdir)/getconf
+ 
+-before-compile	:= testcases.h ptestcases.h
++before-compile	+= testcases.h ptestcases.h
+ 
+ # So they get cleaned up.
+ generated := $(addprefix wordexp-test-result, 1 2 3 4 5 6 7 8 9 10) \
diff --git a/SOURCES/glibc-rh1505492-undef-13.patch b/SOURCES/glibc-rh1505492-undef-13.patch
new file mode 100644
index 0000000..9fc40c6
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-13.patch
@@ -0,0 +1,237 @@
+commit 01f8eac224421f07f28f91cc05db7459ea433ea4
+Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+Date:   Wed Mar 26 13:48:00 2014 -0500
+
+    Move __PTHREAD_SPINS definition to architecture specific header
+    
+    This patch moves the __PTHREAD_SPINS definition to arch specific header
+    since pthread_mutex_t layout is also arch specific.  This leads to no
+    need to defining __PTHREAD_MUTEX_HAVE_ELISION and thus removing of the
+    undefined compiler warning.
+
+Conflicts:
+	nptl/sysdeps/unix/sysv/linux/x86/bits/pthreadtypes.h
+	  (Textual conflict due to glibc-rh841653-3.patch.)
+	sysdeps/unix/sysv/linux/microblaze/nptl/bits/pthreadtypes.h
+	  (No microblaze port in our tree; file removed manually.)
+
+In addition, nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
+was adjusted for the separate HTM backport in glibc-rh731835-0.patch.
+
+diff --git a/nptl/sysdeps/pthread/pthread.h b/nptl/sysdeps/pthread/pthread.h
+index 1242a9c1fd12ed3e..82994942710f3b02 100644
+--- a/nptl/sysdeps/pthread/pthread.h
++++ b/nptl/sysdeps/pthread/pthread.h
+@@ -82,15 +82,6 @@ enum
+ #endif
+ 
+ 
+-/* Mutex initializers.  */
+-#if __PTHREAD_MUTEX_HAVE_ELISION == 1 /* 64bit layout.  */
+-#define __PTHREAD_SPINS 0, 0
+-#elif __PTHREAD_MUTEX_HAVE_ELISION == 2 /* 32bit layout.  */
+-#define __PTHREAD_SPINS { 0, 0 }
+-#else
+-#define __PTHREAD_SPINS 0
+-#endif
+-
+ #ifdef __PTHREAD_MUTEX_HAVE_PREV
+ # define PTHREAD_MUTEX_INITIALIZER \
+   { { 0, 0, 0, 0, 0, __PTHREAD_SPINS, { 0, 0 } } }
+diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h b/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
+index 1a8f45aa5286f919..64752ef8f9199f73 100644
+--- a/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
++++ b/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
+@@ -95,7 +95,6 @@ typedef union
+     __pthread_list_t __list;
+ # define __PTHREAD_MUTEX_HAVE_PREV	1
+ # define __PTHREAD_SPINS             0, 0
+-# define __PTHREAD_MUTEX_HAVE_ELISION	1
+ #else
+     unsigned int __nusers;
+     __extension__ union
+@@ -107,7 +106,6 @@ typedef union
+ # define __spins __elision_data.__espins
+ # define __elision __elision_data.__elision
+ # define __PTHREAD_SPINS         { 0, 0 }
+-# define __PTHREAD_MUTEX_HAVE_ELISION	2
+       } __elision_data;
+       __pthread_slist_t __list;
+     };
+diff --git a/nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h b/nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
+index 2f80fa9b69826d8b..dc4ee2ed55f10854 100644
+--- a/nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
++++ b/nptl/sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
+@@ -105,6 +105,9 @@ typedef union
+   long int __align;
+ } pthread_mutex_t;
+ 
++/* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER.  */
++#define __PTHREAD_SPINS 0
++
+ typedef union
+ {
+   char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];
+diff --git a/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h b/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
+index ce8bd713b4adc3ce..3b73352389c1ed5b 100644
+--- a/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
++++ b/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
+@@ -77,6 +77,9 @@ typedef union
+   long int __align;
+ } pthread_mutex_t;
+ 
++/* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER.  */
++#define __PTHREAD_SPINS 0
++
+ typedef union
+ {
+   char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];
+diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h b/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
+index cc95367a61158a91..52722b8890b5b356 100644
+--- a/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
++++ b/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
+@@ -106,6 +106,9 @@ typedef union
+   long int __align;
+ } pthread_mutex_t;
+ 
++/* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER.  */
++#define __PTHREAD_SPINS 0
++
+ typedef union
+ {
+   char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];
+diff --git a/nptl/sysdeps/unix/sysv/linux/x86/bits/pthreadtypes.h b/nptl/sysdeps/unix/sysv/linux/x86/bits/pthreadtypes.h
+index 2704fd8b75eef76b..9d0f304223929ca5 100644
+--- a/nptl/sysdeps/unix/sysv/linux/x86/bits/pthreadtypes.h
++++ b/nptl/sysdeps/unix/sysv/linux/x86/bits/pthreadtypes.h
+@@ -105,7 +105,8 @@ typedef union
+     short __elision;
+     __pthread_list_t __list;
+ # define __PTHREAD_MUTEX_HAVE_PREV	1
+-# define __PTHREAD_MUTEX_HAVE_ELISION   1
++/* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER.  */
++# define __PTHREAD_SPINS             0, 0
+ #else
+     unsigned int __nusers;
+     __extension__ union
+@@ -116,7 +117,7 @@ typedef union
+ 	short __elision;
+ # define __spins __elision_data.__espins
+ # define __elision __elision_data.__elision
+-# define __PTHREAD_MUTEX_HAVE_ELISION   2
++# define __PTHREAD_SPINS         { 0, 0 }
+       } __elision_data;
+       __pthread_slist_t __list;
+     };
+diff --git a/ports/sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h b/ports/sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h
+index caa9f37999dde798..bd8d41493609dcdf 100644
+--- a/ports/sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h
++++ b/ports/sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h
+@@ -94,6 +94,9 @@ typedef union
+   long int __align;
+ } pthread_mutex_t;
+ 
++/* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER.  */
++#define __PTHREAD_SPINS 0
++
+ typedef union
+ {
+   char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];
+diff --git a/sysdeps/unix/sysv/linux/aarch64/nptl/bits/pthreadtypes.h b/sysdeps/unix/sysv/linux/aarch64/nptl/bits/pthreadtypes.h
+index eed8365c37b20953..ca71ccc5379941e5 100644
+--- a/sysdeps/unix/sysv/linux/aarch64/nptl/bits/pthreadtypes.h
++++ b/sysdeps/unix/sysv/linux/aarch64/nptl/bits/pthreadtypes.h
+@@ -74,6 +74,9 @@ typedef union
+   long int __align;
+ } pthread_mutex_t;
+ 
++/* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER.  */
++#define __PTHREAD_SPINS 0
++
+ typedef union
+ {
+   char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];
+diff --git a/sysdeps/unix/sysv/linux/alpha/nptl/bits/pthreadtypes.h b/sysdeps/unix/sysv/linux/alpha/nptl/bits/pthreadtypes.h
+index 98479495a884da2b..fe1afc32049c70e5 100644
+--- a/sysdeps/unix/sysv/linux/alpha/nptl/bits/pthreadtypes.h
++++ b/sysdeps/unix/sysv/linux/alpha/nptl/bits/pthreadtypes.h
+@@ -73,6 +73,9 @@ typedef union
+   long int __align;
+ } pthread_mutex_t;
+ 
++/* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER.  */
++#define __PTHREAD_SPINS 0
++
+ typedef union
+ {
+   char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];
+diff --git a/sysdeps/unix/sysv/linux/arm/nptl/bits/pthreadtypes.h b/sysdeps/unix/sysv/linux/arm/nptl/bits/pthreadtypes.h
+index 5e4402088c2a5be1..0e3334fd29723b6a 100644
+--- a/sysdeps/unix/sysv/linux/arm/nptl/bits/pthreadtypes.h
++++ b/sysdeps/unix/sysv/linux/arm/nptl/bits/pthreadtypes.h
+@@ -77,6 +77,9 @@ typedef union
+   long int __align;
+ } pthread_mutex_t;
+ 
++/* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER.  */
++#define __PTHREAD_SPINS 0
++
+ typedef union
+ {
+   char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];
+diff --git a/sysdeps/unix/sysv/linux/ia64/nptl/bits/pthreadtypes.h b/sysdeps/unix/sysv/linux/ia64/nptl/bits/pthreadtypes.h
+index 5b30713069a439d7..5bf9ff4f77c1b574 100644
+--- a/sysdeps/unix/sysv/linux/ia64/nptl/bits/pthreadtypes.h
++++ b/sysdeps/unix/sysv/linux/ia64/nptl/bits/pthreadtypes.h
+@@ -74,6 +74,9 @@ typedef union
+   long int __align;
+ } pthread_mutex_t;
+ 
++/* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER.  */
++#define __PTHREAD_SPINS 0
++
+ typedef union
+ {
+   char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];
+diff --git a/sysdeps/unix/sysv/linux/m68k/nptl/bits/pthreadtypes.h b/sysdeps/unix/sysv/linux/m68k/nptl/bits/pthreadtypes.h
+index 7bcec6a011dd6183..af9c0de441e44ede 100644
+--- a/sysdeps/unix/sysv/linux/m68k/nptl/bits/pthreadtypes.h
++++ b/sysdeps/unix/sysv/linux/m68k/nptl/bits/pthreadtypes.h
+@@ -77,6 +77,9 @@ typedef union
+   long int __align;
+ } pthread_mutex_t;
+ 
++/* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER.  */
++#define __PTHREAD_SPINS 0
++
+ typedef union
+ {
+   char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];
+diff --git a/sysdeps/unix/sysv/linux/mips/nptl/bits/pthreadtypes.h b/sysdeps/unix/sysv/linux/mips/nptl/bits/pthreadtypes.h
+index 2fda0d30cd909d67..e133abc9afbe60b2 100644
+--- a/sysdeps/unix/sysv/linux/mips/nptl/bits/pthreadtypes.h
++++ b/sysdeps/unix/sysv/linux/mips/nptl/bits/pthreadtypes.h
+@@ -106,6 +106,9 @@ typedef union
+   long int __align;
+ } pthread_mutex_t;
+ 
++/* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER.  */
++#define __PTHREAD_SPINS 0
++
+ typedef union
+ {
+   char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];
+diff --git a/sysdeps/unix/sysv/linux/tile/nptl/bits/pthreadtypes.h b/sysdeps/unix/sysv/linux/tile/nptl/bits/pthreadtypes.h
+index ac51e3b93c84c63b..4a92dd2a279fa90d 100644
+--- a/sysdeps/unix/sysv/linux/tile/nptl/bits/pthreadtypes.h
++++ b/sysdeps/unix/sysv/linux/tile/nptl/bits/pthreadtypes.h
+@@ -112,6 +112,9 @@ typedef union
+   int __align;
+ } pthread_mutexattr_t;
+ 
++/* Mutex __spins initializer used by PTHREAD_MUTEX_INITIALIZER.  */
++#define __PTHREAD_SPINS 0
++
+ 
+ /* Data structure for conditional variable handling.  The structure of
+    the attribute type is not exposed on purpose.  */
diff --git a/SOURCES/glibc-rh1505492-undef-14.patch b/SOURCES/glibc-rh1505492-undef-14.patch
new file mode 100644
index 0000000..3fb7bf4
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-14.patch
@@ -0,0 +1,182 @@
+commit 27822ce67fbf7f2b204992a410e7da2e8c1e2607
+Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+Date:   Wed Mar 26 15:37:35 2014 -0500
+
+    Define _STRING_ARCH_unaligned unconditionally
+    
+    This patch defines _STRING_ARCH_unaligned to 0 on default bits/string.h
+    header to avoid undefined compiler warnings on platforms that do not
+    define it.  It also make adjustments in code where tests checked if macro
+    existed or not.
+
+Conflicts:
+	resolv/res_send.c
+
+Conflict due to stub resolver rebase in glibc-rh677316-resolv.patch.
+
+diff --git a/bits/string.h b/bits/string.h
+index f8630d2c52a9298a..b88a6bc601803f68 100644
+--- a/bits/string.h
++++ b/bits/string.h
+@@ -8,5 +8,7 @@
+ #ifndef _BITS_STRING_H
+ #define _BITS_STRING_H	1
+ 
++/* Define if architecture can access unaligned multi-byte variables.  */
++#define _STRING_ARCH_unaligned   0
+ 
+ #endif /* bits/string.h */
+diff --git a/crypt/sha256.c b/crypt/sha256.c
+index aea94651391f19ae..1cbd2bc8381d6778 100644
+--- a/crypt/sha256.c
++++ b/crypt/sha256.c
+@@ -124,7 +124,7 @@ __sha256_finish_ctx (ctx, resbuf)
+   memcpy (&ctx->buffer[bytes], fillbuf, pad);
+ 
+   /* Put the 64-bit file length in *bits* at the end of the buffer.  */
+-#ifdef _STRING_ARCH_unaligned
++#if _STRING_ARCH_unaligned
+   ctx->buffer64[(bytes + pad) / 8] = SWAP64 (ctx->total64 << 3);
+ #else
+   ctx->buffer32[(bytes + pad + 4) / 4] = SWAP (ctx->total[TOTAL64_low] << 3);
+diff --git a/iconv/gconv_simple.c b/iconv/gconv_simple.c
+index 48932ee695083595..03fa5f2e2c771ebc 100644
+--- a/iconv/gconv_simple.c
++++ b/iconv/gconv_simple.c
+@@ -112,7 +112,7 @@ internal_ucs4_loop (struct __gconv_step *step,
+   return result;
+ }
+ 
+-#ifndef _STRING_ARCH_unaligned
++#if !_STRING_ARCH_unaligned
+ static inline int
+ __attribute ((always_inline))
+ internal_ucs4_loop_unaligned (struct __gconv_step *step,
+@@ -289,7 +289,7 @@ ucs4_internal_loop (struct __gconv_step *step,
+   return result;
+ }
+ 
+-#ifndef _STRING_ARCH_unaligned
++#if !_STRING_ARCH_unaligned
+ static inline int
+ __attribute ((always_inline))
+ ucs4_internal_loop_unaligned (struct __gconv_step *step,
+@@ -478,7 +478,7 @@ internal_ucs4le_loop (struct __gconv_step *step,
+   return result;
+ }
+ 
+-#ifndef _STRING_ARCH_unaligned
++#if !_STRING_ARCH_unaligned
+ static inline int
+ __attribute ((always_inline))
+ internal_ucs4le_loop_unaligned (struct __gconv_step *step,
+@@ -660,7 +660,7 @@ ucs4le_internal_loop (struct __gconv_step *step,
+   return result;
+ }
+ 
+-#ifndef _STRING_ARCH_unaligned
++#if !_STRING_ARCH_unaligned
+ static inline int
+ __attribute ((always_inline))
+ ucs4le_internal_loop_unaligned (struct __gconv_step *step,
+diff --git a/iconv/loop.c b/iconv/loop.c
+index e11e86b5ecd4abd9..7b2499a3d0657265 100644
+--- a/iconv/loop.c
++++ b/iconv/loop.c
+@@ -63,7 +63,7 @@
+    representations with a fixed width of 2 or 4 bytes.  But if we cannot
+    access unaligned memory we still have to read byte-wise.  */
+ #undef FCTNAME2
+-#if defined _STRING_ARCH_unaligned || !defined DEFINE_UNALIGNED
++#if _STRING_ARCH_unaligned || !defined DEFINE_UNALIGNED
+ /* We can handle unaligned memory access.  */
+ # define get16(addr) *((const uint16_t *) (addr))
+ # define get32(addr) *((const uint32_t *) (addr))
+@@ -342,7 +342,7 @@ FCTNAME (LOOPFCT) (struct __gconv_step *step,
+ 
+ /* Include the file a second time to define the function to handle
+    unaligned access.  */
+-#if !defined DEFINE_UNALIGNED && !defined _STRING_ARCH_unaligned \
++#if !defined DEFINE_UNALIGNED && !_STRING_ARCH_unaligned \
+     && MIN_NEEDED_INPUT != 1 && MAX_NEEDED_INPUT % MIN_NEEDED_INPUT == 0 \
+     && MIN_NEEDED_OUTPUT != 1 && MAX_NEEDED_OUTPUT % MIN_NEEDED_OUTPUT == 0
+ # undef get16
+diff --git a/iconv/skeleton.c b/iconv/skeleton.c
+index 934b1fdde8d277df..176436a4c81f071b 100644
+--- a/iconv/skeleton.c
++++ b/iconv/skeleton.c
+@@ -203,7 +203,7 @@
+ /* Define macros which can access unaligned buffers.  These macros are
+    supposed to be used only in code outside the inner loops.  For the inner
+    loops we have other definitions which allow optimized access.  */
+-#ifdef _STRING_ARCH_unaligned
++#if _STRING_ARCH_unaligned
+ /* We can handle unaligned memory access.  */
+ # define get16u(addr) *((const uint16_t *) (addr))
+ # define get32u(addr) *((const uint32_t *) (addr))
+@@ -522,7 +522,7 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
+ 	 INTERNAL, for which the subexpression evaluates to 1, but INTERNAL
+ 	 buffers are always aligned correctly.  */
+ #define POSSIBLY_UNALIGNED \
+-  (!defined _STRING_ARCH_unaligned					      \
++  (!_STRING_ARCH_unaligned					              \
+    && (((FROM_LOOP_MIN_NEEDED_FROM != 1					      \
+ 	 && FROM_LOOP_MAX_NEEDED_FROM % FROM_LOOP_MIN_NEEDED_FROM == 0)	      \
+ 	&& (FROM_LOOP_MIN_NEEDED_TO != 1				      \
+diff --git a/nscd/nscd_gethst_r.c b/nscd/nscd_gethst_r.c
+index 41488ed6c033ffcd..5fe9f2f62fa28fd4 100644
+--- a/nscd/nscd_gethst_r.c
++++ b/nscd/nscd_gethst_r.c
+@@ -190,7 +190,7 @@ nscd_gethst_r (const char *key, size_t keylen, request_type type,
+ 	      goto out;
+ 	    }
+ 
+-#ifndef _STRING_ARCH_unaligned
++#if !_STRING_ARCH_unaligned
+ 	  /* The aliases_len array in the mapped database might very
+ 	     well be unaligned.  We will access it word-wise so on
+ 	     platforms which do not tolerate unaligned accesses we
+diff --git a/nscd/nscd_getserv_r.c b/nscd/nscd_getserv_r.c
+index acf7e22f82582dbb..5880b1bc023d1c02 100644
+--- a/nscd/nscd_getserv_r.c
++++ b/nscd/nscd_getserv_r.c
+@@ -140,7 +140,7 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto,
+ 				> recend, 0))
+ 	    goto out;
+ 
+-#ifndef _STRING_ARCH_unaligned
++#if !_STRING_ARCH_unaligned
+ 	  /* The aliases_len array in the mapped database might very
+ 	     well be unaligned.  We will access it word-wise so on
+ 	     platforms which do not tolerate unaligned accesses we
+diff --git a/nscd/nscd_helper.c b/nscd/nscd_helper.c
+index 96fb93db768703cc..a46047b1fa0d502e 100644
+--- a/nscd/nscd_helper.c
++++ b/nscd/nscd_helper.c
+@@ -489,7 +489,7 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen,
+       struct hashentry *here = (struct hashentry *) (mapped->data + work);
+       ref_t here_key, here_packet;
+ 
+-#ifndef _STRING_ARCH_unaligned
++#if !_STRING_ARCH_unaligned
+       /* Although during garbage collection when moving struct hashentry
+ 	 records around we first copy from old to new location and then
+ 	 adjust pointer from previous hashentry to it, there is no barrier
+@@ -511,7 +511,7 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen,
+ 	  struct datahead *dh
+ 	    = (struct datahead *) (mapped->data + here_packet);
+ 
+-#ifndef _STRING_ARCH_unaligned
++#if !_STRING_ARCH_unaligned
+ 	  if ((uintptr_t) dh & (__alignof__ (*dh) - 1))
+ 	    return NULL;
+ #endif
+@@ -535,7 +535,7 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen,
+ 	  struct hashentry *trailelem;
+ 	  trailelem = (struct hashentry *) (mapped->data + trail);
+ 
+-#ifndef _STRING_ARCH_unaligned
++#if !_STRING_ARCH_unaligned
+ 	  /* We have to redo the checks.  Maybe the data changed.  */
+ 	  if ((uintptr_t) trailelem & (__alignof__ (*trailelem) - 1))
+ 	    return NULL;
diff --git a/SOURCES/glibc-rh1505492-undef-15.patch b/SOURCES/glibc-rh1505492-undef-15.patch
new file mode 100644
index 0000000..a9c2d20
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-15.patch
@@ -0,0 +1,49 @@
+commit 439bda3209b768c349b98b8ceecf0fa8d94600e9
+Author: Will Newton <will.newton@linaro.org>
+Date:   Mon Mar 31 15:00:32 2014 +0100
+
+    malloc: Fix MALLOC_DEBUG -Wundef warning
+    
+    MALLOC_DEBUG is set optionally on the command line. Default the value
+    to zero if it is not set on the command line, and test its value
+    with #if rather than #ifdef. Verified the code is identical before
+    and after this change apart from line numbers.
+    
+    ChangeLog:
+    
+    2014-04-11  Will Newton  <will.newton@linaro.org>
+    
+            * malloc/malloc.c [!MALLOC_DEBUG]: #define MALLOC_DEBUG
+            to zero if it is not defined elsewhere.  (mtrim): Test
+            the value of MALLOC_DEBUG with #if rather than #ifdef.
+
+Conflicts:
+	malloc/malloc.c
+
+Resolve whitespace conflict due to malloc reformatting in upstream
+commit 6c8dbf00f536d78b1937b5af6f57be47fd376344.
+
+diff --git a/malloc/malloc.c b/malloc/malloc.c
+index 9d3b24ee0c137a1b..3e7b9bf9e8d71247 100644
+--- a/malloc/malloc.c
++++ b/malloc/malloc.c
+@@ -267,6 +267,10 @@
+   or other mallocs available that do this.
+ */
+ 
++#ifndef MALLOC_DEBUG
++#define MALLOC_DEBUG 0
++#endif
++
+ #ifdef NDEBUG
+ # define assert(expr) ((void) 0)
+ #else
+@@ -4520,7 +4524,7 @@ static int mtrim(mstate av, size_t pad)
+ 
+ 		if (size > psm1)
+ 		  {
+-#ifdef MALLOC_DEBUG
++#if MALLOC_DEBUG
+ 		    /* When debugging we simulate destroying the memory
+ 		       content.  */
+ 		    memset (paligned_mem, 0x89, size & ~psm1);
diff --git a/SOURCES/glibc-rh1505492-undef-16.patch b/SOURCES/glibc-rh1505492-undef-16.patch
new file mode 100644
index 0000000..fe6bb64
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-16.patch
@@ -0,0 +1,23 @@
+commit a28a9b94c2d45df5223777cc4b88e1cab9b91c1e
+Author: Steve Ellcey <sellcey@mips.com>
+Date:   Tue Apr 29 10:19:30 2014 -0700
+
+    2014-04-29  Steve Ellcey  <sellcey@mips.com>
+    
+            * iconf/skeleton.c (ONE_DIRECTION): Set default value if not set.
+
+diff --git a/iconv/skeleton.c b/iconv/skeleton.c
+index 176436a4c81f071b..527ef0380c999740 100644
+--- a/iconv/skeleton.c
++++ b/iconv/skeleton.c
+@@ -162,6 +162,10 @@
+ # endif
+ #endif
+ 
++#ifndef ONE_DIRECTION
++# define ONE_DIRECTION 0
++#endif
++
+ 
+ /* How many bytes are needed at most for the from-charset.  */
+ #ifndef MAX_NEEDED_FROM
diff --git a/SOURCES/glibc-rh1505492-undef-17.patch b/SOURCES/glibc-rh1505492-undef-17.patch
new file mode 100644
index 0000000..1982992
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-17.patch
@@ -0,0 +1,87 @@
+commit 0cdddc25a47509262a9a55a343395971b492b0fa
+Author: Steve Ellcey <sellcey@mips.com>
+Date:   Thu May 1 10:22:35 2014 -0700
+
+    2014-05-01  Steve Ellcey  <sellcey@mips.com>
+    
+            * intl/iconv/skeleton.c (ONE_DIRECTION): Remove define.
+            * iconv/gconv_simple.c (ONE_DIRECTION): Define.
+            * iconvdata/8bit-gap.c (ONE_DIRECTION): Ditto.
+            * iconvdata/8bit-generic.c (ONE_DIRECTION): Ditto.
+
+diff --git a/iconv/gconv_simple.c b/iconv/gconv_simple.c
+index 03fa5f2e2c771ebc..78c2421ecf77f198 100644
+--- a/iconv/gconv_simple.c
++++ b/iconv/gconv_simple.c
+@@ -68,6 +68,7 @@ __gconv_btwoc_ascii (struct __gconv_step *step, unsigned char c)
+ #define FROM_LOOP		internal_ucs4_loop
+ #define TO_LOOP			internal_ucs4_loop /* This is not used.  */
+ #define FUNCTION_NAME		__gconv_transform_internal_ucs4
++#define ONE_DIRECTION		0
+ 
+ 
+ static inline int
+@@ -222,6 +223,7 @@ internal_ucs4_loop_single (struct __gconv_step *step,
+ #define FROM_LOOP		ucs4_internal_loop
+ #define TO_LOOP			ucs4_internal_loop /* This is not used.  */
+ #define FUNCTION_NAME		__gconv_transform_ucs4_internal
++#define ONE_DIRECTION		0
+ 
+ 
+ static inline int
+@@ -433,6 +435,7 @@ ucs4_internal_loop_single (struct __gconv_step *step,
+ #define FROM_LOOP		internal_ucs4le_loop
+ #define TO_LOOP			internal_ucs4le_loop /* This is not used.  */
+ #define FUNCTION_NAME		__gconv_transform_internal_ucs4le
++#define ONE_DIRECTION		0
+ 
+ 
+ static inline int
+@@ -590,6 +593,7 @@ internal_ucs4le_loop_single (struct __gconv_step *step,
+ #define FROM_LOOP		ucs4le_internal_loop
+ #define TO_LOOP			ucs4le_internal_loop /* This is not used.  */
+ #define FUNCTION_NAME		__gconv_transform_ucs4le_internal
++#define ONE_DIRECTION		0
+ 
+ 
+ static inline int
+diff --git a/iconv/skeleton.c b/iconv/skeleton.c
+index 527ef0380c999740..3384d520661f88ed 100644
+--- a/iconv/skeleton.c
++++ b/iconv/skeleton.c
+@@ -162,11 +162,6 @@
+ # endif
+ #endif
+ 
+-#ifndef ONE_DIRECTION
+-# define ONE_DIRECTION 0
+-#endif
+-
+-
+ /* How many bytes are needed at most for the from-charset.  */
+ #ifndef MAX_NEEDED_FROM
+ # define MAX_NEEDED_FROM	MIN_NEEDED_FROM
+diff --git a/iconvdata/8bit-gap.c b/iconvdata/8bit-gap.c
+index d2e4efc2b7ee9c4a..5139c4cef6ea8788 100644
+--- a/iconvdata/8bit-gap.c
++++ b/iconvdata/8bit-gap.c
+@@ -42,6 +42,7 @@ struct gap
+ #define DEFINE_FINI		1
+ #define MIN_NEEDED_FROM		1
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ 
+ /* First define the conversion function from the 8bit charset to UCS4.  */
+diff --git a/iconvdata/8bit-generic.c b/iconvdata/8bit-generic.c
+index 4757d18a1f4dc037..f9bb50cb3d8bc482 100644
+--- a/iconvdata/8bit-generic.c
++++ b/iconvdata/8bit-generic.c
+@@ -25,6 +25,7 @@
+ #define DEFINE_FINI		1
+ #define MIN_NEEDED_FROM		1
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ 
+ /* First define the conversion function from the 8bit charset to UCS4.  */
diff --git a/SOURCES/glibc-rh1505492-undef-18.patch b/SOURCES/glibc-rh1505492-undef-18.patch
new file mode 100644
index 0000000..06f6fa8
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-18.patch
@@ -0,0 +1,30 @@
+commit c727f0325376e202d095be718daf64661409e499
+Author: Roland McGrath <roland@hack.frob.com>
+Date:   Thu May 1 13:08:30 2014 -0700
+
+    Deconditionalize use of LLL_LOCK_INITIALIZER in bits/libc-lock.h.
+
+Conflicts:
+	nptl/sysdeps/pthread/bits/libc-lock.h
+
+Due to IS_IN backport in glibc-rh1256317-2.patch.
+
+diff --git a/nptl/sysdeps/pthread/bits/libc-lock.h b/nptl/sysdeps/pthread/bits/libc-lock.h
+index 361063febbfec054..f6e413ad435e3fb2 100644
+--- a/nptl/sysdeps/pthread/bits/libc-lock.h
++++ b/nptl/sysdeps/pthread/bits/libc-lock.h
+@@ -48,13 +48,8 @@ typedef struct __libc_lock_recursive_opaque__ __libc_lock_recursive_t;
+ /* Define an initialized recursive lock variable NAME with storage
+    class CLASS.  */
+ #if defined _LIBC && (IS_IN (libc) || IS_IN (libpthread))
+-# if LLL_LOCK_INITIALIZER == 0
+-#  define __libc_lock_define_initialized_recursive(CLASS,NAME) \
+-  CLASS __libc_lock_recursive_t NAME;
+-# else
+-#  define __libc_lock_define_initialized_recursive(CLASS,NAME) \
++# define __libc_lock_define_initialized_recursive(CLASS, NAME) \
+   CLASS __libc_lock_recursive_t NAME = _LIBC_LOCK_RECURSIVE_INITIALIZER;
+-# endif
+ # define _LIBC_LOCK_RECURSIVE_INITIALIZER \
+   { LLL_LOCK_INITIALIZER, 0, NULL }
+ #else
diff --git a/SOURCES/glibc-rh1505492-undef-19.patch b/SOURCES/glibc-rh1505492-undef-19.patch
new file mode 100644
index 0000000..bf6b58b
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-19.patch
@@ -0,0 +1,19 @@
+commit 8f2f08d04f969f27dad47ee2d9dcbe567f2873bc
+Author: Roland McGrath <roland@hack.frob.com>
+Date:   Thu May 1 13:33:13 2014 -0700
+
+    Fix -Wundef warnings for _IO_JUMPS_OFFSET.
+
+diff --git a/libio/libioP.h b/libio/libioP.h
+index c170b872028c7a5f..b60244ac5fc3d908 100644
+--- a/libio/libioP.h
++++ b/libio/libioP.h
+@@ -100,6 +100,8 @@ extern "C" {
+ #if (!defined _IO_USE_OLD_IO_FILE \
+      && (!defined _G_IO_NO_BACKWARD_COMPAT || _G_IO_NO_BACKWARD_COMPAT == 0))
+ # define _IO_JUMPS_OFFSET 1
++#else
++# define _IO_JUMPS_OFFSET 0
+ #endif
+ 
+ #define _IO_JUMPS(THIS) (THIS)->vtable
diff --git a/SOURCES/glibc-rh1505492-undef-2.patch b/SOURCES/glibc-rh1505492-undef-2.patch
new file mode 100644
index 0000000..0026393
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-2.patch
@@ -0,0 +1,19 @@
+commit ad98e30c90f518cbcd896b1fe9e45f2318102db3
+Author: Roland McGrath <roland@hack.frob.com>
+Date:   Wed Jan 9 16:05:32 2013 -0800
+
+    Force getconf.speclist to be generated in the others pass.
+
+diff --git a/posix/Makefile b/posix/Makefile
+index 1883b71957665f22..a68f0b7d041e65bd 100644
+--- a/posix/Makefile
++++ b/posix/Makefile
+@@ -284,3 +284,8 @@ $(objpfx)getconf.speclist: getconf-speclist.c posix-envs.def
+ 	$(compile.c) -E -o - \
+ 	    | sed -n -e '/@@@PRESENT_/s/@@@PRESENT_//p' > $@.new
+ 	mv -f $@.new $@
++
++# This file is only actually needed at install time.  But forcing it to
++# be built both makes it available for eyeball inspection and avoids the
++# surprise of things that look like compilation being done by 'make install'.
++others: $(objpfx)getconf.speclist
diff --git a/SOURCES/glibc-rh1505492-undef-20.patch b/SOURCES/glibc-rh1505492-undef-20.patch
new file mode 100644
index 0000000..ba536fe
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-20.patch
@@ -0,0 +1,606 @@
+commit 13e402e77e70254dc5e940e1187880afcc829086
+Author: Steve Ellcey <sellcey@mips.com>
+Date:   Thu May 1 13:42:40 2014 -0700
+
+    2014-05-01  Steve Ellcey  <sellcey@mips.com>
+    
+            * iconvdata/ansi_x3.110.c (ONE_DIRECTION): Define.
+            * iconvdata/armscii-8.c (ONE_DIRECTION): Define.
+            * iconvdata/big5.c (ONE_DIRECTION): Define.
+            * iconvdata/big5hkscs.c (ONE_DIRECTION): Define.
+            * iconvdata/cp1255.c (ONE_DIRECTION): Define.
+            * iconvdata/cp1258.c (ONE_DIRECTION): Define.
+            * iconvdata/cp932.c (ONE_DIRECTION): Define.
+            * iconvdata/euc-cn.c (ONE_DIRECTION): Define.
+            * iconvdata/euc-jisx0213.c (ONE_DIRECTION): Define.
+            * iconvdata/euc-jp-ms.c (ONE_DIRECTION): Define.
+            * iconvdata/euc-jp.c (ONE_DIRECTION): Define.
+            * iconvdata/euc-kr.c (ONE_DIRECTION): Define.
+            * iconvdata/euc-tw.c (ONE_DIRECTION): Define.
+            * iconvdata/gb18030.c (ONE_DIRECTION): Define.
+            * iconvdata/gbbig5.c (ONE_DIRECTION): Define.
+            * iconvdata/gbgbk.c (ONE_DIRECTION): Define.
+            * iconvdata/gbk.c (ONE_DIRECTION): Define.
+            * iconvdata/ibm1364.c (ONE_DIRECTION): Define.
+            * iconvdata/ibm930.c (ONE_DIRECTION): Define.
+            * iconvdata/ibm932.c (ONE_DIRECTION): Define.
+            * iconvdata/ibm933.c (ONE_DIRECTION): Define.
+            * iconvdata/ibm935.c (ONE_DIRECTION): Define.
+            * iconvdata/ibm937.c (ONE_DIRECTION): Define.
+            * iconvdata/ibm939.c (ONE_DIRECTION): Define.
+            * iconvdata/ibm943.c (ONE_DIRECTION): Define.
+            * iconvdata/iso-2022-cn-ext.c (ONE_DIRECTION): Define.
+            * iconvdata/iso-2022-cn.c (ONE_DIRECTION): Define.
+            * iconvdata/iso-2022-jp-3.c (ONE_DIRECTION): Define.
+            * iconvdata/iso-2022-jp.c (ONE_DIRECTION): Define.
+            * iconvdata/iso-2022-kr.c (ONE_DIRECTION): Define.
+            * iconvdata/iso646.c (ONE_DIRECTION): Define.
+            * iconvdata/iso8859-1.c (ONE_DIRECTION): Define.
+            * iconvdata/iso_11548-1.c (ONE_DIRECTION): Define.
+            * iconvdata/iso_6937-2.c (ONE_DIRECTION): Define.
+            * iconvdata/iso_6937.c (ONE_DIRECTION): Define.
+            * iconvdata/johab.c (ONE_DIRECTION): Define.
+            * iconvdata/shift_jisx0213.c (ONE_DIRECTION): Define.
+            * iconvdata/sjis.c (ONE_DIRECTION): Define.
+            * iconvdata/t.61.c (ONE_DIRECTION): Define.
+            * iconvdata/tcvn5712-1.c (ONE_DIRECTION): Define.
+            * iconvdata/tscii.c (ONE_DIRECTION): Define.
+            * iconvdata/uhc.c (ONE_DIRECTION): Define.
+            * iconvdata/unicode.c (ONE_DIRECTION): Define.
+            * iconvdata/utf-16.c (ONE_DIRECTION): Define.
+            * iconvdata/utf-32.c (ONE_DIRECTION): Define.
+            * iconvdata/utf-7.c (ONE_DIRECTION): Define.
+
+diff --git a/iconvdata/ansi_x3.110.c b/iconvdata/ansi_x3.110.c
+index e08aeba7cb33883d..a72914dc93fc3dec 100644
+--- a/iconvdata/ansi_x3.110.c
++++ b/iconvdata/ansi_x3.110.c
+@@ -390,6 +390,7 @@ static const char from_ucs4[][2] =
+ #define MIN_NEEDED_FROM		1
+ #define MAX_NEEDED_FROM		2
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ /* First define the conversion function from ANSI_X3.110 to UCS4.  */
+ #define MIN_NEEDED_INPUT	MIN_NEEDED_FROM
+diff --git a/iconvdata/armscii-8.c b/iconvdata/armscii-8.c
+index 34f33f3b4cb10f91..767d5cb9e6a018b0 100644
+--- a/iconvdata/armscii-8.c
++++ b/iconvdata/armscii-8.c
+@@ -28,6 +28,7 @@
+ #define DEFINE_FINI		1
+ #define MIN_NEEDED_FROM		1
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ 
+ static const uint16_t map_from_armscii_8[0xfe - 0xa2 + 1] =
+diff --git a/iconvdata/big5.c b/iconvdata/big5.c
+index db2d6ec9baa636df..e8701785a7ff5c50 100644
+--- a/iconvdata/big5.c
++++ b/iconvdata/big5.c
+@@ -8383,6 +8383,7 @@ static const char from_ucs4_tab15[][2] =
+ #define MIN_NEEDED_FROM		1
+ #define MAX_NEEDED_FROM		2
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ 
+ /* First define the conversion function from Big5 to UCS4.  */
+diff --git a/iconvdata/big5hkscs.c b/iconvdata/big5hkscs.c
+index 68716ceeab9efba1..afc812d520bdff96 100644
+--- a/iconvdata/big5hkscs.c
++++ b/iconvdata/big5hkscs.c
+@@ -17738,6 +17738,7 @@ static struct
+ #define TO_LOOP			to_big5hkscs
+ #define DEFINE_INIT		1
+ #define DEFINE_FINI		1
++#define ONE_DIRECTION		0
+ #define FROM_LOOP_MIN_NEEDED_FROM	1
+ #define FROM_LOOP_MAX_NEEDED_FROM	2
+ #define FROM_LOOP_MIN_NEEDED_TO		4
+diff --git a/iconvdata/cp1255.c b/iconvdata/cp1255.c
+index c03478b2f8c03213..dfcc674c2cb14e62 100644
+--- a/iconvdata/cp1255.c
++++ b/iconvdata/cp1255.c
+@@ -30,6 +30,7 @@
+ #define TO_LOOP			to_cp1255
+ #define DEFINE_INIT		1
+ #define DEFINE_FINI		1
++#define ONE_DIRECTION		0
+ #define FROM_LOOP_MIN_NEEDED_FROM	1
+ #define FROM_LOOP_MAX_NEEDED_FROM	1
+ #define FROM_LOOP_MIN_NEEDED_TO		4
+diff --git a/iconvdata/cp1258.c b/iconvdata/cp1258.c
+index 918b39db773e152f..bb2e210f540e6054 100644
+--- a/iconvdata/cp1258.c
++++ b/iconvdata/cp1258.c
+@@ -31,6 +31,7 @@
+ #define TO_LOOP			to_cp1258
+ #define DEFINE_INIT		1
+ #define DEFINE_FINI		1
++#define ONE_DIRECTION		0
+ #define FROM_LOOP_MIN_NEEDED_FROM	1
+ #define FROM_LOOP_MAX_NEEDED_FROM	1
+ #define FROM_LOOP_MIN_NEEDED_TO		4
+diff --git a/iconvdata/cp932.c b/iconvdata/cp932.c
+index 82a78fa7f6946ff1..0d40be864740ce5b 100644
+--- a/iconvdata/cp932.c
++++ b/iconvdata/cp932.c
+@@ -4534,6 +4534,7 @@ static const char from_ucs4_extra[229][2] =
+ #define MIN_NEEDED_FROM		1
+ #define MAX_NEEDED_FROM		2
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ /* First define the conversion function from CP932 to UCS4.  */
+ #define MIN_NEEDED_INPUT	MIN_NEEDED_FROM
+diff --git a/iconvdata/euc-cn.c b/iconvdata/euc-cn.c
+index 7d5d9505c9ba36ab..499cffac0afc0e66 100644
+--- a/iconvdata/euc-cn.c
++++ b/iconvdata/euc-cn.c
+@@ -30,6 +30,7 @@
+ #define MIN_NEEDED_FROM		1
+ #define MAX_NEEDED_FROM		2
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ 
+ /* First define the conversion function from EUC-CN to UCS4.  */
+diff --git a/iconvdata/euc-jisx0213.c b/iconvdata/euc-jisx0213.c
+index 482ae813ecadd29a..b0ec5d38e0c269c9 100644
+--- a/iconvdata/euc-jisx0213.c
++++ b/iconvdata/euc-jisx0213.c
+@@ -43,6 +43,7 @@
+ #define TO_LOOP			to_euc_jisx0213
+ #define DEFINE_INIT		1
+ #define DEFINE_FINI		1
++#define ONE_DIRECTION		0
+ #define FROM_LOOP_MIN_NEEDED_FROM	1
+ #define FROM_LOOP_MAX_NEEDED_FROM	3
+ #define FROM_LOOP_MIN_NEEDED_TO		4
+diff --git a/iconvdata/euc-jp-ms.c b/iconvdata/euc-jp-ms.c
+index 25dd59b6ee6a625d..c3f322bfa729847e 100644
+--- a/iconvdata/euc-jp-ms.c
++++ b/iconvdata/euc-jp-ms.c
+@@ -4641,6 +4641,7 @@ static const unsigned char from_ucs4_extra[229][2] =
+ #define MIN_NEEDED_FROM		1
+ #define MAX_NEEDED_FROM		3
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ 
+ /* First define the conversion function from EUC-JP-MS to UCS4.  */
+diff --git a/iconvdata/euc-jp.c b/iconvdata/euc-jp.c
+index 358ececf6cd1fc9c..352c7f3bd1f84422 100644
+--- a/iconvdata/euc-jp.c
++++ b/iconvdata/euc-jp.c
+@@ -33,6 +33,7 @@
+ #define MIN_NEEDED_FROM		1
+ #define MAX_NEEDED_FROM		3
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ 
+ /* First define the conversion function from EUC-JP to UCS4.  */
+diff --git a/iconvdata/euc-kr.c b/iconvdata/euc-kr.c
+index c5cb125a83afb59b..dfca5cd8046757a9 100644
+--- a/iconvdata/euc-kr.c
++++ b/iconvdata/euc-kr.c
+@@ -67,6 +67,7 @@ euckr_from_ucs4 (uint32_t ch, unsigned char *cp)
+ #define MIN_NEEDED_FROM		1
+ #define MAX_NEEDED_FROM		2
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ 
+ /* First define the conversion function from EUC-KR to UCS4.  */
+diff --git a/iconvdata/euc-tw.c b/iconvdata/euc-tw.c
+index 8175f6a0c7441629..4c9b336d2cc95482 100644
+--- a/iconvdata/euc-tw.c
++++ b/iconvdata/euc-tw.c
+@@ -32,6 +32,7 @@
+ #define MIN_NEEDED_FROM		1
+ #define MAX_NEEDED_FROM		4
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ 
+ /* First define the conversion function from EUC-TW to UCS4.  */
+diff --git a/iconvdata/gb18030.c b/iconvdata/gb18030.c
+index e7cac10216ba2fed..a4761ce6c574120e 100644
+--- a/iconvdata/gb18030.c
++++ b/iconvdata/gb18030.c
+@@ -24107,6 +24107,7 @@ static const unsigned char __ucs_to_gb18030_tab2[][2] =
+ #define MIN_NEEDED_FROM		1
+ #define MAX_NEEDED_FROM		4
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ 
+ /* First define the conversion function from GB18030 to UCS4.  */
+diff --git a/iconvdata/gbbig5.c b/iconvdata/gbbig5.c
+index d8a9b9524695ba69..8bd6fe8639a70e5d 100644
+--- a/iconvdata/gbbig5.c
++++ b/iconvdata/gbbig5.c
+@@ -4784,6 +4784,7 @@ const char __from_big5_to_gb2312 [13973][2] =
+ #define MAX_NEEDED_FROM		2
+ #define MIN_NEEDED_TO		1
+ #define MAX_NEEDED_TO		2
++#define ONE_DIRECTION		0
+ 
+ 
+ /* First define the conversion function from GB2312 to BIG5.  */
+diff --git a/iconvdata/gbgbk.c b/iconvdata/gbgbk.c
+index 6b6dfc2c362b35d1..29793e997c3624ee 100644
+--- a/iconvdata/gbgbk.c
++++ b/iconvdata/gbgbk.c
+@@ -32,6 +32,7 @@
+ #define MAX_NEEDED_FROM		2
+ #define MIN_NEEDED_TO		1
+ #define MAX_NEEDED_TO		2
++#define ONE_DIRECTION		0
+ 
+ 
+ /* First define the conversion function from GBK to GB2312.  */
+diff --git a/iconvdata/gbk.c b/iconvdata/gbk.c
+index dcc33c7f5d59a5f5..e355c33f569ae1cf 100644
+--- a/iconvdata/gbk.c
++++ b/iconvdata/gbk.c
+@@ -13130,6 +13130,7 @@ static const char __gbk_from_ucs4_tab12[][2] =
+ #define MIN_NEEDED_FROM		1
+ #define MAX_NEEDED_FROM		2
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ 
+ /* First define the conversion function from GBK to UCS4.  */
+diff --git a/iconvdata/ibm1364.c b/iconvdata/ibm1364.c
+index dc71cd728b764d1e..9086fda4df2bf117 100644
+--- a/iconvdata/ibm1364.c
++++ b/iconvdata/ibm1364.c
+@@ -55,6 +55,7 @@
+ #else
+ # define MAX_NEEDED_TO	4
+ #endif
++#define ONE_DIRECTION	0
+ #define PREPARE_LOOP \
+   int save_curcs;							      \
+   int *curcsp = &data->__statep->__count;
+diff --git a/iconvdata/ibm930.c b/iconvdata/ibm930.c
+index 51a67a03bf6c5ccb..636141114f506985 100644
+--- a/iconvdata/ibm930.c
++++ b/iconvdata/ibm930.c
+@@ -31,6 +31,7 @@
+ #define CHARSET_NAME	"IBM930//"
+ #define FROM_LOOP	from_ibm930
+ #define TO_LOOP		to_ibm930
++#define ONE_DIRECTION			0
+ #define FROM_LOOP_MIN_NEEDED_FROM	1
+ #define FROM_LOOP_MAX_NEEDED_FROM	2
+ #define FROM_LOOP_MIN_NEEDED_TO		4
+diff --git a/iconvdata/ibm932.c b/iconvdata/ibm932.c
+index d88185c12630d9f2..6e242eea57b9063c 100644
+--- a/iconvdata/ibm932.c
++++ b/iconvdata/ibm932.c
+@@ -29,6 +29,7 @@
+ #define CHARSET_NAME	"IBM932//"
+ #define FROM_LOOP	from_ibm932
+ #define TO_LOOP		to_ibm932
++#define ONE_DIRECTION	0
+ 
+ /* Definitions of initialization and destructor function.  */
+ #define DEFINE_INIT	1
+diff --git a/iconvdata/ibm933.c b/iconvdata/ibm933.c
+index b5f99dfad2b31cb4..8b9e5780a36a454a 100644
+--- a/iconvdata/ibm933.c
++++ b/iconvdata/ibm933.c
+@@ -31,6 +31,7 @@
+ #define CHARSET_NAME	"IBM933//"
+ #define FROM_LOOP	from_ibm933
+ #define TO_LOOP		to_ibm933
++#define ONE_DIRECTION			0
+ #define FROM_LOOP_MIN_NEEDED_FROM	1
+ #define FROM_LOOP_MAX_NEEDED_FROM	2
+ #define FROM_LOOP_MIN_NEEDED_TO		4
+diff --git a/iconvdata/ibm935.c b/iconvdata/ibm935.c
+index ddab8cf60913450c..4e2d99ab56d7f0d2 100644
+--- a/iconvdata/ibm935.c
++++ b/iconvdata/ibm935.c
+@@ -31,6 +31,7 @@
+ #define CHARSET_NAME	"IBM935//"
+ #define FROM_LOOP	from_ibm935
+ #define TO_LOOP		to_ibm935
++#define ONE_DIRECTION			0
+ #define FROM_LOOP_MIN_NEEDED_FROM	1
+ #define FROM_LOOP_MAX_NEEDED_FROM	2
+ #define FROM_LOOP_MIN_NEEDED_TO		4
+diff --git a/iconvdata/ibm937.c b/iconvdata/ibm937.c
+index 2f07d92ce853abc1..1e468871b783e78d 100644
+--- a/iconvdata/ibm937.c
++++ b/iconvdata/ibm937.c
+@@ -31,6 +31,7 @@
+ #define CHARSET_NAME	"IBM937//"
+ #define FROM_LOOP	from_ibm937
+ #define TO_LOOP		to_ibm937
++#define	ONE_DIRECTION			0
+ #define FROM_LOOP_MIN_NEEDED_FROM	1
+ #define FROM_LOOP_MAX_NEEDED_FROM	2
+ #define FROM_LOOP_MIN_NEEDED_TO		4
+diff --git a/iconvdata/ibm939.c b/iconvdata/ibm939.c
+index 65d547e381c63aa4..2060b0c329df0c86 100644
+--- a/iconvdata/ibm939.c
++++ b/iconvdata/ibm939.c
+@@ -31,6 +31,7 @@
+ #define CHARSET_NAME	"IBM939//"
+ #define FROM_LOOP	from_ibm939
+ #define TO_LOOP		to_ibm939
++#define ONE_DIRECTION			0
+ #define FROM_LOOP_MIN_NEEDED_FROM	1
+ #define FROM_LOOP_MAX_NEEDED_FROM	2
+ #define FROM_LOOP_MIN_NEEDED_TO		4
+diff --git a/iconvdata/ibm943.c b/iconvdata/ibm943.c
+index e020d0972681d776..923a67148bab2d42 100644
+--- a/iconvdata/ibm943.c
++++ b/iconvdata/ibm943.c
+@@ -29,6 +29,7 @@
+ #define CHARSET_NAME	"IBM943//"
+ #define FROM_LOOP	from_ibm943
+ #define TO_LOOP		to_ibm943
++#define ONE_DIRECTION	0
+ 
+ /* Definitions of initialization and destructor function.  */
+ #define DEFINE_INIT	1
+diff --git a/iconvdata/iso-2022-cn-ext.c b/iconvdata/iso-2022-cn-ext.c
+index c5cea931282f498f..bde266811d967192 100644
+--- a/iconvdata/iso-2022-cn-ext.c
++++ b/iconvdata/iso-2022-cn-ext.c
+@@ -47,6 +47,7 @@
+ #define CHARSET_NAME		"ISO-2022-CN-EXT//"
+ #define DEFINE_INIT		1
+ #define DEFINE_FINI		1
++#define ONE_DIRECTION		0
+ #define FROM_LOOP		from_iso2022cn_ext_loop
+ #define TO_LOOP			to_iso2022cn_ext_loop
+ #define FROM_LOOP_MIN_NEEDED_FROM	1
+diff --git a/iconvdata/iso-2022-cn.c b/iconvdata/iso-2022-cn.c
+index b8d10062a44ee650..e3539fde7109eb94 100644
+--- a/iconvdata/iso-2022-cn.c
++++ b/iconvdata/iso-2022-cn.c
+@@ -44,6 +44,7 @@
+ #define DEFINE_FINI		1
+ #define FROM_LOOP		from_iso2022cn_loop
+ #define TO_LOOP			to_iso2022cn_loop
++#define ONE_DIRECTION			0
+ #define FROM_LOOP_MIN_NEEDED_FROM	1
+ #define FROM_LOOP_MAX_NEEDED_FROM	4
+ #define FROM_LOOP_MIN_NEEDED_TO		4
+diff --git a/iconvdata/iso-2022-jp-3.c b/iconvdata/iso-2022-jp-3.c
+index 2958b6de847f5202..e4c149dba019b3ff 100644
+--- a/iconvdata/iso-2022-jp-3.c
++++ b/iconvdata/iso-2022-jp-3.c
+@@ -38,6 +38,7 @@
+ #define TO_LOOP			to_iso2022jp3_loop
+ #define DEFINE_INIT		1
+ #define DEFINE_FINI		1
++#define ONE_DIRECTION		0
+ #define FROM_LOOP_MIN_NEEDED_FROM	1
+ #define FROM_LOOP_MAX_NEEDED_FROM	4
+ #define FROM_LOOP_MIN_NEEDED_TO		4
+diff --git a/iconvdata/iso-2022-jp.c b/iconvdata/iso-2022-jp.c
+index ce7743200a8579f5..409bb2e4b72510cd 100644
+--- a/iconvdata/iso-2022-jp.c
++++ b/iconvdata/iso-2022-jp.c
+@@ -48,6 +48,7 @@ struct gap
+ /* Definitions used in the body of the `gconv' function.  */
+ #define FROM_LOOP		from_iso2022jp_loop
+ #define TO_LOOP			to_iso2022jp_loop
++#define ONE_DIRECTION			0
+ #define FROM_LOOP_MIN_NEEDED_FROM	1
+ #define FROM_LOOP_MAX_NEEDED_FROM	4
+ #define FROM_LOOP_MIN_NEEDED_TO		4
+diff --git a/iconvdata/iso-2022-kr.c b/iconvdata/iso-2022-kr.c
+index ea9bd2194cbcd4c8..91cb64c5b93ef0ed 100644
+--- a/iconvdata/iso-2022-kr.c
++++ b/iconvdata/iso-2022-kr.c
+@@ -43,6 +43,7 @@
+ #define MAX_NEEDED_FROM		4
+ #define MIN_NEEDED_TO		4
+ #define MAX_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ #define PREPARE_LOOP \
+   int save_set;								      \
+   int *setp = &data->__statep->__count;					      \
+diff --git a/iconvdata/iso646.c b/iconvdata/iso646.c
+index c0002ee202be3a7f..37ebd304eccc14c5 100644
+--- a/iconvdata/iso646.c
++++ b/iconvdata/iso646.c
+@@ -43,6 +43,8 @@
+ #define DEFINE_FINI		0
+ #define MIN_NEEDED_FROM		1
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
++
+ #define FROM_DIRECTION		(dir == from_iso646)
+ #define PREPARE_LOOP \
+   enum direction dir = ((struct iso646_data *) step->__data)->dir;	      \
+diff --git a/iconvdata/iso8859-1.c b/iconvdata/iso8859-1.c
+index cdc1b0978c3dc818..dc3965bd81291eb7 100644
+--- a/iconvdata/iso8859-1.c
++++ b/iconvdata/iso8859-1.c
+@@ -28,6 +28,7 @@
+ #define DEFINE_FINI		1
+ #define MIN_NEEDED_FROM		1
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ /* First define the conversion function from ISO 8859-1 to UCS4.  */
+ #define MIN_NEEDED_INPUT	MIN_NEEDED_FROM
+diff --git a/iconvdata/iso_11548-1.c b/iconvdata/iso_11548-1.c
+index b1b9e996debf2489..fb71d4b7376ff3af 100644
+--- a/iconvdata/iso_11548-1.c
++++ b/iconvdata/iso_11548-1.c
+@@ -29,6 +29,7 @@
+ #define DEFINE_FINI		1
+ #define MIN_NEEDED_FROM		1
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ #define BRAILLE_UCS_BASE	0x2800
+ 
+diff --git a/iconvdata/iso_6937-2.c b/iconvdata/iso_6937-2.c
+index fb7833dd804e238b..bfcc361ee6fadf05 100644
+--- a/iconvdata/iso_6937-2.c
++++ b/iconvdata/iso_6937-2.c
+@@ -380,6 +380,7 @@ static const char from_ucs4[][2] =
+ #define MIN_NEEDED_FROM		1
+ #define MAX_NEEDED_FROM		2
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ 
+ /* First define the conversion function from ISO 6937-2 to UCS4.  */
+diff --git a/iconvdata/iso_6937.c b/iconvdata/iso_6937.c
+index 3ecd9aca3f2e7914..b7eb3671055f6566 100644
+--- a/iconvdata/iso_6937.c
++++ b/iconvdata/iso_6937.c
+@@ -380,6 +380,7 @@ static const char from_ucs4[][2] =
+ #define MIN_NEEDED_FROM		1
+ #define MAX_NEEDED_FROM		2
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ 
+ /* First define the conversion function from ISO 6937 to UCS4.  */
+diff --git a/iconvdata/johab.c b/iconvdata/johab.c
+index f5749aba7f4f516b..0dc67e4a6d934d65 100644
+--- a/iconvdata/johab.c
++++ b/iconvdata/johab.c
+@@ -150,6 +150,7 @@ johab_sym_hanja_to_ucs (uint_fast32_t idx, uint_fast32_t c1, uint_fast32_t c2)
+ #define MIN_NEEDED_FROM		1
+ #define MAX_NEEDED_FROM		2
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ 
+ /* First define the conversion function from JOHAB to UCS4.  */
+diff --git a/iconvdata/shift_jisx0213.c b/iconvdata/shift_jisx0213.c
+index 79b155156a699f05..0e38a905e5212955 100644
+--- a/iconvdata/shift_jisx0213.c
++++ b/iconvdata/shift_jisx0213.c
+@@ -43,6 +43,7 @@
+ #define TO_LOOP			to_shift_jisx0213
+ #define DEFINE_INIT		1
+ #define DEFINE_FINI		1
++#define ONE_DIRECTION		0
+ #define FROM_LOOP_MIN_NEEDED_FROM	1
+ #define FROM_LOOP_MAX_NEEDED_FROM	2
+ #define FROM_LOOP_MIN_NEEDED_TO		4
+diff --git a/iconvdata/sjis.c b/iconvdata/sjis.c
+index ccb5dfc08febf3a3..7033aa4926a4405c 100644
+--- a/iconvdata/sjis.c
++++ b/iconvdata/sjis.c
+@@ -4320,6 +4320,7 @@ static const char from_ucs4_extra[0x100][2] =
+ #define MIN_NEEDED_FROM		1
+ #define MAX_NEEDED_FROM		2
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ /* First define the conversion function from SJIS to UCS4.  */
+ #define MIN_NEEDED_INPUT	MIN_NEEDED_FROM
+diff --git a/iconvdata/t.61.c b/iconvdata/t.61.c
+index db5952b074ded19c..c73adba7865755c9 100644
+--- a/iconvdata/t.61.c
++++ b/iconvdata/t.61.c
+@@ -373,6 +373,7 @@ static const char from_ucs4[][2] =
+ #define MIN_NEEDED_FROM		1
+ #define MAX_NEEDED_FROM		2
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ /* First define the conversion function from T.61 to UCS4.  */
+ #define MIN_NEEDED_INPUT	MIN_NEEDED_FROM
+diff --git a/iconvdata/tcvn5712-1.c b/iconvdata/tcvn5712-1.c
+index f6a0c4faa79a4628..9c1465b32942d45d 100644
+--- a/iconvdata/tcvn5712-1.c
++++ b/iconvdata/tcvn5712-1.c
+@@ -29,6 +29,7 @@
+ #define TO_LOOP			to_tcvn5712_1
+ #define DEFINE_INIT		1
+ #define DEFINE_FINI		1
++#define ONE_DIRECTION		0
+ #define FROM_LOOP_MIN_NEEDED_FROM	1
+ #define FROM_LOOP_MAX_NEEDED_FROM	1
+ #define FROM_LOOP_MIN_NEEDED_TO		4
+diff --git a/iconvdata/tscii.c b/iconvdata/tscii.c
+index 8ff708137de2ddbe..60e6ad9073f562ad 100644
+--- a/iconvdata/tscii.c
++++ b/iconvdata/tscii.c
+@@ -38,6 +38,7 @@
+ #define TO_LOOP			to_tscii
+ #define DEFINE_INIT		1
+ #define DEFINE_FINI		1
++#define ONE_DIRECTION		0
+ #define FROM_LOOP_MIN_NEEDED_FROM	1
+ #define FROM_LOOP_MAX_NEEDED_FROM	2
+ #define FROM_LOOP_MIN_NEEDED_TO		4
+diff --git a/iconvdata/uhc.c b/iconvdata/uhc.c
+index da12ba614344c417..1bb548cdf43e3ca6 100644
+--- a/iconvdata/uhc.c
++++ b/iconvdata/uhc.c
+@@ -3044,6 +3044,7 @@ static const char uhc_hangul_from_ucs[11172][2] =
+ #define MIN_NEEDED_FROM		1
+ #define MAX_NEEDED_FROM		2
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ 
+ /* First define the conversion function from UHC to UCS4.  */
+ #define MIN_NEEDED_INPUT	MIN_NEEDED_FROM
+diff --git a/iconvdata/unicode.c b/iconvdata/unicode.c
+index 6a22f3b2465af526..73bda747097284d8 100644
+--- a/iconvdata/unicode.c
++++ b/iconvdata/unicode.c
+@@ -38,6 +38,7 @@
+ #define DEFINE_FINI		0
+ #define MIN_NEEDED_FROM		2
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ #define FROM_DIRECTION		(dir == from_unicode)
+ #define PREPARE_LOOP \
+   enum direction dir = ((struct unicode_data *) step->__data)->dir;	      \
+diff --git a/iconvdata/utf-16.c b/iconvdata/utf-16.c
+index e833d3c3ba4b2980..167e47767d045925 100644
+--- a/iconvdata/utf-16.c
++++ b/iconvdata/utf-16.c
+@@ -39,6 +39,7 @@
+ #define MIN_NEEDED_FROM		2
+ #define MAX_NEEDED_FROM		4
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ #define FROM_DIRECTION		(dir == from_utf16)
+ #define PREPARE_LOOP \
+   enum direction dir = ((struct utf16_data *) step->__data)->dir;	      \
+diff --git a/iconvdata/utf-32.c b/iconvdata/utf-32.c
+index 1173d6fc4988d300..d5e75a3f16bf5e92 100644
+--- a/iconvdata/utf-32.c
++++ b/iconvdata/utf-32.c
+@@ -37,6 +37,7 @@
+ #define DEFINE_FINI		0
+ #define MIN_NEEDED_FROM		4
+ #define MIN_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ #define FROM_DIRECTION		(dir == from_utf32)
+ #define PREPARE_LOOP \
+   enum direction dir = ((struct utf32_data *) step->__data)->dir;	      \
+diff --git a/iconvdata/utf-7.c b/iconvdata/utf-7.c
+index 3336b1ff39b2c44d..b14330eb90c1eff5 100644
+--- a/iconvdata/utf-7.c
++++ b/iconvdata/utf-7.c
+@@ -120,6 +120,7 @@ base64 (unsigned int i)
+ #define MAX_NEEDED_FROM		6
+ #define MIN_NEEDED_TO		4
+ #define MAX_NEEDED_TO		4
++#define ONE_DIRECTION		0
+ #define PREPARE_LOOP \
+   mbstate_t saved_state;						      \
+   mbstate_t *statep = data->__statep;
diff --git a/SOURCES/glibc-rh1505492-undef-21.patch b/SOURCES/glibc-rh1505492-undef-21.patch
new file mode 100644
index 0000000..a0b66a2
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-21.patch
@@ -0,0 +1,54 @@
+commit eb1ed03dafcd9a7ea6e95b958413342e20b35968
+Author: Roland McGrath <roland@hack.frob.com>
+Date:   Mon May 5 13:06:18 2014 -0700
+
+    Fix -Wundef issues in generated errlist.c.
+
+Conflicts:
+	sysdeps/gnu/errlist.awk
+	sysdeps/gnu/errlist.c
+
+Due to IS_IN backport in glibc-rh1256317-2.patch.
+
+diff --git a/sysdeps/gnu/errlist.awk b/sysdeps/gnu/errlist.awk
+index 8bad43199cd9e1c4..ebae2a6398c2697e 100644
+--- a/sysdeps/gnu/errlist.awk
++++ b/sysdeps/gnu/errlist.awk
+@@ -52,6 +52,7 @@ BEGIN {
+     print "#ifdef ERR_MAX";
+     print "# define ERRLIST_SIZE ERR_MAX + 1";
+     print "#else"
++    print "# define ERR_MAX 0";
+     print "# define ERRLIST_SIZE";
+     print "#endif";
+ 
+@@ -109,7 +110,7 @@ END {
+   print "  (sizeof _sys_errlist_internal / sizeof _sys_errlist_internal [0])";
+   print "const int _sys_nerr_internal = NERR;"
+   print "";
+-  print "#if IS_IN (libc) && !ERRLIST_NO_COMPAT";
++  print "#if IS_IN (libc) && !defined ERRLIST_NO_COMPAT";
+   print "# include <errlist-compat.c>";
+   print "#endif";
+   print "";
+diff --git a/sysdeps/gnu/errlist.c b/sysdeps/gnu/errlist.c
+index 278f7998b592e92a..4551249d723f47a6 100644
+--- a/sysdeps/gnu/errlist.c
++++ b/sysdeps/gnu/errlist.c
+@@ -13,6 +13,7 @@
+ #ifdef ERR_MAX
+ # define ERRLIST_SIZE ERR_MAX + 1
+ #else
++# define ERR_MAX 0
+ # define ERRLIST_SIZE
+ #endif
+ const char *const _sys_errlist_internal[ERRLIST_SIZE] =
+@@ -1479,7 +1480,7 @@ TRANS error; @pxref{Cancel AIO Operations}. */
+   (sizeof _sys_errlist_internal / sizeof _sys_errlist_internal [0])
+ const int _sys_nerr_internal = NERR;
+ 
+-#if IS_IN (libc) && !ERRLIST_NO_COMPAT
++#if IS_IN (libc) && !defined ERRLIST_NO_COMPAT
+ # include <errlist-compat.c>
+ #endif
+ 
diff --git a/SOURCES/glibc-rh1505492-undef-22.patch b/SOURCES/glibc-rh1505492-undef-22.patch
new file mode 100644
index 0000000..e499840
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-22.patch
@@ -0,0 +1,31 @@
+commit 73ba67cbc3941c3bcfda31a22a9d0d97ac928f3b
+Author: Andreas Schwab <schwab@suse.de>
+Date:   Tue May 13 17:04:27 2014 +0200
+
+    Fix macro warning on HAVE_PT_CHOWN
+
+diff --git a/config.h.in b/config.h.in
+index ef33c23c75ad2220..820ada7bb209b6f1 100644
+--- a/config.h.in
++++ b/config.h.in
+@@ -258,6 +258,6 @@
+ #undef HAVE_ARM_PCS_VFP
+ 
+ /* The pt_chown binary is being built and used by grantpt.  */
+-#undef HAVE_PT_CHOWN
++#define HAVE_PT_CHOWN 0
+ 
+ #endif
+diff --git a/sysdeps/unix/grantpt.c b/sysdeps/unix/grantpt.c
+index 66ff3d9f41ae50a7..b7fb61ada3c789c4 100644
+--- a/sysdeps/unix/grantpt.c
++++ b/sysdeps/unix/grantpt.c
+@@ -176,7 +176,7 @@ grantpt (int fd)
+   /* We have to use the helper program if it is available.  */
+  helper:;
+ 
+-#ifdef HAVE_PT_CHOWN
++#if HAVE_PT_CHOWN
+   pid_t pid = __fork ();
+   if (pid == -1)
+     goto cleanup;
diff --git a/SOURCES/glibc-rh1505492-undef-23.patch b/SOURCES/glibc-rh1505492-undef-23.patch
new file mode 100644
index 0000000..f3e0c39
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-23.patch
@@ -0,0 +1,190 @@
+Recreation of this upstream commit:
+
+commit 3d8c8bff798a15b6dc0ee94d24fc877db9706589
+Author: Andreas Schwab <schwab@suse.de>
+Date:   Tue Mar 25 11:55:52 2014 +0100
+
+    Remove last use of USE___THREAD
+
+This was done using unifdef -m -UUSE___THREAD elf/rtld.c, followed by a
+manual reindent.
+
+diff --git a/elf/rtld.c b/elf/rtld.c
+index b5a859ecff740705..e934ad38db39d343 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -382,19 +382,8 @@ _dl_start_final (void *arg, struct dl_start_final_info *info)
+   GL(dl_rtld_map).l_text_end = (ElfW(Addr)) _etext;
+   /* Copy the TLS related data if necessary.  */
+ #ifndef DONT_USE_BOOTSTRAP_MAP
+-# if USE___THREAD
+-  assert (info->l.l_tls_modid != 0);
+-  GL(dl_rtld_map).l_tls_blocksize = info->l.l_tls_blocksize;
+-  GL(dl_rtld_map).l_tls_align = info->l.l_tls_align;
+-  GL(dl_rtld_map).l_tls_firstbyte_offset = info->l.l_tls_firstbyte_offset;
+-  GL(dl_rtld_map).l_tls_initimage_size = info->l.l_tls_initimage_size;
+-  GL(dl_rtld_map).l_tls_initimage = info->l.l_tls_initimage;
+-  GL(dl_rtld_map).l_tls_offset = info->l.l_tls_offset;
+-  GL(dl_rtld_map).l_tls_modid = 1;
+-# else
+-#  if NO_TLS_OFFSET != 0
++# if NO_TLS_OFFSET != 0
+   GL(dl_rtld_map).l_tls_offset = NO_TLS_OFFSET;
+-#  endif
+ # endif
+ 
+ #endif
+@@ -476,9 +465,6 @@ _dl_start (void *arg)
+        ++cnt)
+     bootstrap_map.l_info[cnt] = 0;
+ # endif
+-# if USE___THREAD
+-  bootstrap_map.l_tls_modid = 0;
+-# endif
+ #endif
+ 
+   /* Figure out the run-time load address of the dynamic linker itself.  */
+@@ -497,117 +483,6 @@ _dl_start (void *arg)
+      to it.  When we have something like GOTOFF relocs, we can use a plain
+      reference to find the runtime address.  Without that, we have to rely
+      on the `l_addr' value, which is not the value we want when prelinked.  */
+-#if USE___THREAD
+-  dtv_t initdtv[3];
+-  ElfW(Ehdr) *ehdr
+-# ifdef DONT_USE_BOOTSTRAP_MAP
+-    = (ElfW(Ehdr) *) &_begin;
+-# else
+-#  error This will not work with prelink.
+-    = (ElfW(Ehdr) *) bootstrap_map.l_addr;
+-# endif
+-  ElfW(Phdr) *phdr = (ElfW(Phdr) *) ((void *) ehdr + ehdr->e_phoff);
+-  size_t cnt = ehdr->e_phnum;	/* PT_TLS is usually the last phdr.  */
+-  while (cnt-- > 0)
+-    if (phdr[cnt].p_type == PT_TLS)
+-      {
+-	void *tlsblock;
+-	size_t max_align = MAX (TLS_INIT_TCB_ALIGN, phdr[cnt].p_align);
+-	char *p;
+-
+-	bootstrap_map.l_tls_blocksize = phdr[cnt].p_memsz;
+-	bootstrap_map.l_tls_align = phdr[cnt].p_align;
+-	if (phdr[cnt].p_align == 0)
+-	  bootstrap_map.l_tls_firstbyte_offset = 0;
+-	else
+-	  bootstrap_map.l_tls_firstbyte_offset = (phdr[cnt].p_vaddr
+-						  & (phdr[cnt].p_align - 1));
+-	assert (bootstrap_map.l_tls_blocksize != 0);
+-	bootstrap_map.l_tls_initimage_size = phdr[cnt].p_filesz;
+-	bootstrap_map.l_tls_initimage = (void *) (bootstrap_map.l_addr
+-						  + phdr[cnt].p_vaddr);
+-
+-	/* We can now allocate the initial TLS block.  This can happen
+-	   on the stack.  We'll get the final memory later when we
+-	   know all about the various objects loaded at startup
+-	   time.  */
+-# if TLS_TCB_AT_TP
+-	tlsblock = alloca (roundup (bootstrap_map.l_tls_blocksize,
+-				    TLS_INIT_TCB_ALIGN)
+-			   + TLS_INIT_TCB_SIZE
+-			   + max_align);
+-# elif TLS_DTV_AT_TP
+-	tlsblock = alloca (roundup (TLS_INIT_TCB_SIZE,
+-				    bootstrap_map.l_tls_align)
+-			   + bootstrap_map.l_tls_blocksize
+-			   + max_align);
+-# else
+-	/* In case a model with a different layout for the TCB and DTV
+-	   is defined add another #elif here and in the following #ifs.  */
+-#  error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined"
+-# endif
+-	/* Align the TLS block.  */
+-	tlsblock = (void *) (((uintptr_t) tlsblock + max_align - 1)
+-			     & ~(max_align - 1));
+-
+-	/* Initialize the dtv.  [0] is the length, [1] the generation
+-	   counter.  */
+-	initdtv[0].counter = 1;
+-	initdtv[1].counter = 0;
+-
+-	/* Initialize the TLS block.  */
+-# if TLS_TCB_AT_TP
+-	initdtv[2].pointer = tlsblock;
+-# elif TLS_DTV_AT_TP
+-	bootstrap_map.l_tls_offset = roundup (TLS_INIT_TCB_SIZE,
+-					      bootstrap_map.l_tls_align);
+-	initdtv[2].pointer = (char *) tlsblock + bootstrap_map.l_tls_offset;
+-# else
+-#  error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined"
+-# endif
+-	p = __mempcpy (initdtv[2].pointer, bootstrap_map.l_tls_initimage,
+-		       bootstrap_map.l_tls_initimage_size);
+-# ifdef HAVE_BUILTIN_MEMSET
+-	__builtin_memset (p, '\0', (bootstrap_map.l_tls_blocksize
+-				    - bootstrap_map.l_tls_initimage_size));
+-# else
+-	{
+-	  size_t remaining = (bootstrap_map.l_tls_blocksize
+-			      - bootstrap_map.l_tls_initimage_size);
+-	  while (remaining-- > 0)
+-	    *p++ = '\0';
+-	}
+-# endif
+-
+-	/* Install the pointer to the dtv.  */
+-
+-	/* Initialize the thread pointer.  */
+-# if TLS_TCB_AT_TP
+-	bootstrap_map.l_tls_offset
+-	  = roundup (bootstrap_map.l_tls_blocksize, TLS_INIT_TCB_ALIGN);
+-
+-	INSTALL_DTV ((char *) tlsblock + bootstrap_map.l_tls_offset,
+-		     initdtv);
+-
+-	const char *lossage = TLS_INIT_TP ((char *) tlsblock
+-					   + bootstrap_map.l_tls_offset, 0);
+-# elif TLS_DTV_AT_TP
+-	INSTALL_DTV (tlsblock, initdtv);
+-	const char *lossage = TLS_INIT_TP (tlsblock, 0);
+-# else
+-#  error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined"
+-# endif
+-	if (__builtin_expect (lossage != NULL, 0))
+-	  _dl_fatal_printf ("cannot set up thread-local storage: %s\n",
+-			    lossage);
+-
+-	/* So far this is module number one.  */
+-	bootstrap_map.l_tls_modid = 1;
+-
+-	/* There can only be one PT_TLS entry.  */
+-	break;
+-      }
+-#endif	/* USE___THREAD */
+ 
+ #ifdef ELF_MACHINE_BEFORE_RTLD_RELOC
+   ELF_MACHINE_BEFORE_RTLD_RELOC (bootstrap_map.l_info);
+@@ -853,12 +728,7 @@ cannot allocate TLS data structures for initial thread");
+ 
+   /* And finally install it for the main thread.  If ld.so itself uses
+      TLS we know the thread pointer was initialized earlier.  */
+-  const char *lossage
+-#ifdef USE___THREAD
+-    = TLS_INIT_TP (tcbp, USE___THREAD);
+-#else
+-    = TLS_INIT_TP (tcbp, 0);
+-#endif
++  const char *lossage = TLS_INIT_TP (tcbp, 0);
+   if (__builtin_expect (lossage != NULL, 0))
+     _dl_fatal_printf ("cannot set up thread-local storage: %s\n", lossage);
+   tls_init_tp_called = true;
+@@ -2344,11 +2214,7 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+   if (! tls_init_tp_called)
+     {
+       const char *lossage
+-#ifdef USE___THREAD
+-	= TLS_INIT_TP (tcbp, USE___THREAD);
+-#else
+ 	= TLS_INIT_TP (tcbp, 0);
+-#endif
+       if (__builtin_expect (lossage != NULL, 0))
+ 	_dl_fatal_printf ("cannot set up thread-local storage: %s\n",
+ 			  lossage);
diff --git a/SOURCES/glibc-rh1505492-undef-24.patch b/SOURCES/glibc-rh1505492-undef-24.patch
new file mode 100644
index 0000000..196c0e3
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-24.patch
@@ -0,0 +1,35 @@
+commit 4f02e2b8f94799b4f9e57e922c06c5eeec4272e6
+Author: Will Newton <will.newton@linaro.org>
+Date:   Fri Apr 25 15:48:48 2014 +0100
+
+    stdlib/gmp-impl.h: Silence -Wundef warning for USE_STACK_ALLOC
+    
+    The upstream version of GMP has long removed this conditional
+    altogether in this commit:
+    
+    changeset:   5254:88618a4694ac
+    user:        Kevin Ryde <user42@zip.com.au>
+    date:        Sun Jun 17 01:37:27 2001 +0200
+    
+    So just turn the #if into an #ifdef to silence the warning.
+    
+    ChangeLog:
+    
+    2014-05-14  Will Newton  <will.newton@linaro.org>
+    
+            * stdlib/gmp-impl.h: Test USE_STACK_ALLOC #ifdef
+            rather than #if.
+
+diff --git a/stdlib/gmp-impl.h b/stdlib/gmp-impl.h
+index 7e94624859dd7017..add63603f64ff39e 100644
+--- a/stdlib/gmp-impl.h
++++ b/stdlib/gmp-impl.h
+@@ -47,7 +47,7 @@ along with the GNU MP Library; see the file COPYING.LIB.  If not, see
+ #endif
+ #endif
+ 
+-#if ! defined (HAVE_ALLOCA) || USE_STACK_ALLOC
++#if ! defined (HAVE_ALLOCA) || defined (USE_STACK_ALLOC)
+ #include "stack-alloc.h"
+ #else
+ #define TMP_DECL(m)
diff --git a/SOURCES/glibc-rh1505492-undef-25.patch b/SOURCES/glibc-rh1505492-undef-25.patch
new file mode 100644
index 0000000..31cbbcf
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-25.patch
@@ -0,0 +1,114 @@
+commit 93a6d0820430bfe3d09695a1376c07abf6d2214f
+Author: Roland McGrath <roland@hack.frob.com>
+Date:   Fri Jun 20 19:50:16 2014 -0700
+
+    Clean up stack-coloring macros.
+
+Conflicts:
+	sysdeps/x86_64/nptl/Makefile
+
+File change was applied to nptl/sysdeps/x86_64/Makefile instead.
+
+diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c
+index 2c126fd4ae447b25..0fba6ce3474e8b35 100644
+--- a/nptl/allocatestack.c
++++ b/nptl/allocatestack.c
+@@ -30,6 +30,7 @@
+ #include <list.h>
+ #include <lowlevellock.h>
+ #include <kernel-features.h>
++#include <stack-aliasing.h>
+ 
+ 
+ #ifndef NEED_SEPARATE_REGISTER_STACK
+diff --git a/nptl/stack-aliasing.h b/nptl/stack-aliasing.h
+new file mode 100644
+index 0000000000000000..526b54e18f7e0a27
+--- /dev/null
++++ b/nptl/stack-aliasing.h
+@@ -0,0 +1,29 @@
++/* Define macros for stack address aliasing issues for NPTL.  Stub version.
++   Copyright (C) 2014 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/>.  */
++
++/* This is a number of bytes (less than a page) by which to "color" the
++   starting stack address of new threads.  This number is multiplied by the
++   number of threads created so far and then truncated modulo page size,
++   to get a roughly even distribution of values for different threads.  */
++#define COLORING_INCREMENT      0
++
++/* This is a number of bytes that is an alignment that should be avoided
++   when choosing the exact size of a new thread's stack.  If the size
++   chosen is aligned to this, an extra page will be added to render the
++   size off-aligned.  */
++#define MULTI_PAGE_ALIASING     0
+diff --git a/nptl/sysdeps/x86_64/Makefile b/nptl/sysdeps/x86_64/Makefile
+index d34dea709b363d2a..e2c47764e6e38c36 100644
+--- a/nptl/sysdeps/x86_64/Makefile
++++ b/nptl/sysdeps/x86_64/Makefile
+@@ -18,10 +18,3 @@
+ ifeq ($(subdir),csu)
+ gen-as-const-headers += tcb-offsets.sym
+ endif
+-
+-ifeq ($(subdir),nptl)
+-# P4s have problems with 4M aliasing.  We disturb the allocation of stacks
+-# just enough so the subsequent allocations do not use stack address
+-# (mod 4M) == 0.
+-CFLAGS-pthread_create.c += -DMULTI_PAGE_ALIASING=65536
+-endif
+diff --git a/sysdeps/i386/i686/stack-aliasing.h b/sysdeps/i386/i686/stack-aliasing.h
+new file mode 100644
+index 0000000000000000..1e35ceb2061d60f9
+--- /dev/null
++++ b/sysdeps/i386/i686/stack-aliasing.h
+@@ -0,0 +1,28 @@
++/* Define macros for stack address aliasing issues for NPTL.  i686 version.
++   Copyright (C) 2014 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/>.  */
++
++/* It turns out that stack coloring is in general not good on P4s.  Some
++   applications will benefit.  We will probably have a configuration option
++   at some point.  To enable coloring, set this to 128.  */
++#define COLORING_INCREMENT      0
++
++/* What is useful is to avoid the 64k aliasing problem which reliably
++   happens if all stacks use sizes which are a multiple of 64k.  Tell
++   the stack allocator to disturb this by allocation one more page if
++   necessary.  */
++#define MULTI_PAGE_ALIASING     65536
+diff --git a/sysdeps/x86_64/stack-aliasing.h b/sysdeps/x86_64/stack-aliasing.h
+new file mode 100644
+index 0000000000000000..2efdacb3b4c44c40
+--- /dev/null
++++ b/sysdeps/x86_64/stack-aliasing.h
+@@ -0,0 +1 @@
++#include <sysdeps/i386/i686/stack-aliasing.h>
diff --git a/SOURCES/glibc-rh1505492-undef-26.patch b/SOURCES/glibc-rh1505492-undef-26.patch
new file mode 100644
index 0000000..cf5c69c
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-26.patch
@@ -0,0 +1,75 @@
+commit 26ffd5e6c7f110cc439bb054fac9567885ffc197
+Author: Roland McGrath <roland@hack.frob.com>
+Date:   Fri Jun 20 20:04:47 2014 -0700
+
+    Clean up HAVE_CONFIG_H and STDC_HEADERS.
+
+Conflicts:
+	locale/Makefile
+
+Due to separate IS_IN backport in glibc-rh1256317-2.patch.
+
+diff --git a/catgets/Makefile b/catgets/Makefile
+index 361894a94d6cb740..a1e3e376773de28c 100644
+--- a/catgets/Makefile
++++ b/catgets/Makefile
+@@ -39,8 +39,7 @@ include ../Rules
+ 
+ $(objpfx)gencat: $(gencat-modules:%=$(objpfx)%.o)
+ 
+-catgets-CPPFLAGS := -DNLSPATH='"$(msgcatdir)/%L/%N:$(msgcatdir)/%L/LC_MESSAGES/%N:$(msgcatdir)/%l/%N:$(msgcatdir)/%l/LC_MESSAGES/%N:"' \
+-	    -DHAVE_CONFIG_H
++catgets-CPPFLAGS := -DNLSPATH='"$(msgcatdir)/%L/%N:$(msgcatdir)/%L/LC_MESSAGES/%N:$(msgcatdir)/%l/%N:$(msgcatdir)/%l/LC_MESSAGES/%N:"'
+ 
+ generated = de.msg test1.cat test1.h test2.cat test2.h sample.SJIS.cat \
+ 	    test-gencat.h
+diff --git a/include/libc-symbols.h b/include/libc-symbols.h
+index 0f47900922d4099b..bf98c33cf3ba9df6 100644
+--- a/include/libc-symbols.h
++++ b/include/libc-symbols.h
+@@ -59,6 +59,19 @@
+ 
+ #include <config.h>
+ 
++/* Define this for the benefit of portable GNU code that wants to check it.
++   Code that checks with #if will not #include <config.h> again, since we've
++   already done it (and this file is implicitly included in every compile,
++   via -include).  Code that checks with #ifdef will #include <config.h>,
++   but that file should always be idempotent (i.e., it's just #define/#undef
++   and nothing else anywhere should be changing the macro state it touches),
++   so it's harmless.  */
++#define HAVE_CONFIG_H	0
++
++/* Define this for the benefit of portable GNU code that wants to check it.
++   Of course, it's never false when building libc!  */
++#define STDC_HEADERS	1
++
+ /* The symbols in all the user (non-_) macros are C symbols.  */
+ 
+ #if !defined HAVE_ASM_WEAK_DIRECTIVE && !defined HAVE_ASM_WEAKEXT_DIRECTIVE
+diff --git a/locale/Makefile b/locale/Makefile
+index 2755340dd91bfad6..edd982fe87ca66cb 100644
+--- a/locale/Makefile
++++ b/locale/Makefile
+@@ -87,8 +87,7 @@ locale-CPPFLAGS = -DLOCALEDIR='"$(localedir)"' \
+ CPPFLAGS-locale-programs = -DLOCALE_PATH='$(localepath)' \
+ 			   -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \
+ 			   -DREPERTOIREMAP_PATH='"$(i18ndir)/repertoiremaps"' \
+-			   -DLOCSRCDIR='"$(i18ndir)/locales"' \
+-			   -DHAVE_CONFIG_H
++			   -DLOCSRCDIR='"$(i18ndir)/locales"'
+ 
+ CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts
+ CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts
+diff --git a/stdlib/strtol_l.c b/stdlib/strtol_l.c
+index 615190821e24b41a..8174d22f060c2149 100644
+--- a/stdlib/strtol_l.c
++++ b/stdlib/strtol_l.c
+@@ -25,7 +25,6 @@
+ 
+ #ifdef _LIBC
+ # define USE_NUMBER_GROUPING
+-# define STDC_HEADERS
+ # define HAVE_LIMITS_H
+ #endif
+ 
diff --git a/SOURCES/glibc-rh1505492-undef-27.patch b/SOURCES/glibc-rh1505492-undef-27.patch
new file mode 100644
index 0000000..ad0f18d
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-27.patch
@@ -0,0 +1,55 @@
+commit 2aac0a862334f3370a7e0b6bc7a53cf0ab847182
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Thu Jun 26 14:10:07 2014 +0530
+
+    Fix Wundef warning for SEPARATE_KEY
+    
+    The SEPARATE_KEY macro is never defined in any condition or
+    architecture.  It is effectively dead code, so remove it.
+
+diff --git a/nscd/connections.c b/nscd/connections.c
+index 57cb8c180e8e6402..53813cf58876eae7 100644
+--- a/nscd/connections.c
++++ b/nscd/connections.c
+@@ -317,12 +317,6 @@ enum usekey
+     use_he = 1,
+     use_he_begin = use_he | use_begin,
+     use_he_end = use_he | use_end,
+-#if SEPARATE_KEY
+-    use_key = 2,
+-    use_key_begin = use_key | use_begin,
+-    use_key_end = use_key | use_end,
+-    use_key_first = use_key_begin | use_first,
+-#endif
+     use_data = 3,
+     use_data_begin = use_data | use_begin,
+     use_data_end = use_data | use_end,
+@@ -471,16 +465,7 @@ verify_persistent_db (void *mem, struct database_pers_head *readhead, int dbnr)
+ 	  if (here->key < here->packet + sizeof (struct datahead)
+ 	      || here->key > here->packet + dh->allocsize
+ 	      || here->key + here->len > here->packet + dh->allocsize)
+-	    {
+-#if SEPARATE_KEY
+-	      /* If keys can appear outside of data, this should be done
+-		 instead.  But gc doesn't mark the data in that case.  */
+-	      if (! check_use (data, head->first_free, usemap,
+-			       use_key | (here->first ? use_first : 0),
+-			       here->key, here->len))
+-#endif
+-		goto fail;
+-	    }
++	    goto fail;
+ 
+ 	  work = here->next;
+ 
+@@ -500,10 +485,6 @@ verify_persistent_db (void *mem, struct database_pers_head *readhead, int dbnr)
+      he->first == true hashentry.  */
+   for (ref_t idx = 0; idx < head->first_free; ++idx)
+     {
+-#if SEPARATE_KEY
+-      if (usemap[idx] == use_key_begin)
+-	goto fail;
+-#endif
+       if (usemap[idx] == use_data_begin)
+ 	goto fail;
+     }
diff --git a/SOURCES/glibc-rh1505492-undef-28.patch b/SOURCES/glibc-rh1505492-undef-28.patch
new file mode 100644
index 0000000..1d37897
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-28.patch
@@ -0,0 +1,198 @@
+commit 4cf5b6d0d7c8dd40526375f384133262ed7b2ccc
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Thu Jun 26 15:17:40 2014 +0530
+
+    Fix Wundef warning for ELF_MACHINE_NO_RELA
+    
+    This patch defines ELF_MACHINE_NO_RELA on all architectures.  Tested
+    only on x86_64 to verify that the sources before and after are
+    identical except for two instructions that pass the current line
+    number in dl-machine.h to assert_fail.
+
+Conflicts:
+	sysdeps/microblaze/dl-machine.h
+
+File removed manally due to missing microblaze port in our tree.
+
+diff --git a/elf/dl-runtime.c b/elf/dl-runtime.c
+index 1ad2e4da7a654633..a42e3c4924e067ba 100644
+--- a/elf/dl-runtime.c
++++ b/elf/dl-runtime.c
+@@ -29,7 +29,7 @@
+ #include <dl-irel.h>
+ 
+ 
+-#if (!defined ELF_MACHINE_NO_RELA && !defined ELF_MACHINE_PLT_REL) \
++#if (!ELF_MACHINE_NO_RELA && !defined ELF_MACHINE_PLT_REL) \
+     || ELF_MACHINE_NO_REL
+ # define PLTREL  ElfW(Rela)
+ #else
+diff --git a/sysdeps/aarch64/dl-machine.h b/sysdeps/aarch64/dl-machine.h
+index 40b0587ba42cd59e..4faf818b710d6ed7 100644
+--- a/sysdeps/aarch64/dl-machine.h
++++ b/sysdeps/aarch64/dl-machine.h
+@@ -198,6 +198,7 @@ _dl_start_user:							\n\
+ 
+ /* AArch64 uses RELA not REL */
+ #define ELF_MACHINE_NO_REL 1
++#define ELF_MACHINE_NO_RELA 0
+ 
+ static inline ElfW(Addr)
+ elf_machine_fixup_plt (struct link_map *map, lookup_t t,
+diff --git a/sysdeps/hppa/dl-machine.h b/sysdeps/hppa/dl-machine.h
+index 1bee330f8b98b03f..3b6d7b8e776f1f57 100644
+--- a/sysdeps/hppa/dl-machine.h
++++ b/sysdeps/hppa/dl-machine.h
+@@ -488,6 +488,7 @@ asm (									\
+ 
+ /* We only use RELA. */
+ #define ELF_MACHINE_NO_REL 1
++#define ELF_MACHINE_NO_RELA 0
+ 
+ /* Return the address of the entry point. */
+ #define ELF_MACHINE_START_ADDRESS(map, start) \
+diff --git a/sysdeps/ia64/dl-machine.h b/sysdeps/ia64/dl-machine.h
+index 1ec69d759179b555..4e8dcb804ae9b7a3 100644
+--- a/sysdeps/ia64/dl-machine.h
++++ b/sysdeps/ia64/dl-machine.h
+@@ -320,6 +320,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
+ 
+ /* According to the IA-64 specific documentation, Rela is always used.  */
+ #define ELF_MACHINE_NO_REL 1
++#define ELF_MACHINE_NO_RELA 0
+ 
+ /* Return the address of the entry point. */
+ #define ELF_MACHINE_START_ADDRESS(map, start)	\
+diff --git a/sysdeps/m68k/dl-machine.h b/sysdeps/m68k/dl-machine.h
+index b2914192d839021f..f40c9b580c49e0c7 100644
+--- a/sysdeps/m68k/dl-machine.h
++++ b/sysdeps/m68k/dl-machine.h
+@@ -178,6 +178,7 @@ _dl_start_user:\n\
+ 
+ /* The m68k never uses Elf32_Rel relocations.  */
+ #define ELF_MACHINE_NO_REL 1
++#define ELF_MACHINE_NO_RELA 0
+ 
+ static inline Elf32_Addr
+ elf_machine_fixup_plt (struct link_map *map, lookup_t t,
+diff --git a/sysdeps/mips/dl-machine.h b/sysdeps/mips/dl-machine.h
+index 9b970a26ed8bb42d..9d7b0f516c64207d 100644
+--- a/sysdeps/mips/dl-machine.h
++++ b/sysdeps/mips/dl-machine.h
+@@ -60,6 +60,8 @@
+    | (((type) == R_MIPS_COPY) * ELF_RTYPE_CLASS_COPY))
+ 
+ #define ELF_MACHINE_PLT_REL 1
++#define ELF_MACHINE_NO_REL 0
++#define ELF_MACHINE_NO_RELA 0
+ 
+ /* Translate a processor specific dynamic tag to the index
+    in l_info array.  */
+diff --git a/sysdeps/powerpc/powerpc32/dl-machine.h b/sysdeps/powerpc/powerpc32/dl-machine.h
+index 3ae27a4924e95063..490de3281ff30ee8 100644
+--- a/sysdeps/powerpc/powerpc32/dl-machine.h
++++ b/sysdeps/powerpc/powerpc32/dl-machine.h
+@@ -148,6 +148,7 @@ __elf_preferred_address(struct link_map *loader, size_t maplength,
+ 
+ /* The PowerPC never uses REL relocations.  */
+ #define ELF_MACHINE_NO_REL 1
++#define ELF_MACHINE_NO_RELA 0
+ 
+ /* Set up the loaded object described by MAP so its unrelocated PLT
+    entries will jump to the on-demand fixup code in dl-runtime.c.
+diff --git a/sysdeps/powerpc/powerpc64/dl-machine.h b/sysdeps/powerpc/powerpc64/dl-machine.h
+index d1d34835a02a1909..7937c0e1e4f846e0 100644
+--- a/sysdeps/powerpc/powerpc64/dl-machine.h
++++ b/sysdeps/powerpc/powerpc64/dl-machine.h
+@@ -294,6 +294,7 @@ BODY_PREFIX "_dl_start_user:\n"						\
+ 
+ /* The PowerPC never uses REL relocations.  */
+ #define ELF_MACHINE_NO_REL 1
++#define ELF_MACHINE_NO_RELA 0
+ 
+ /* Stuff for the PLT.  */
+ #if _CALL_ELF != 2
+diff --git a/sysdeps/s390/s390-32/dl-machine.h b/sysdeps/s390/s390-32/dl-machine.h
+index d2f57e6bbe13ec9d..002ede7e935727cc 100644
+--- a/sysdeps/s390/s390-32/dl-machine.h
++++ b/sysdeps/s390/s390-32/dl-machine.h
+@@ -281,6 +281,7 @@ _dl_start_user:\n\
+ 
+ /* The S390 never uses Elf32_Rel relocations.  */
+ #define ELF_MACHINE_NO_REL 1
++#define ELF_MACHINE_NO_RELA 0
+ 
+ /* We define an initialization functions.  This is called very early in
+    _dl_sysdep_start.  */
+diff --git a/sysdeps/s390/s390-64/dl-machine.h b/sysdeps/s390/s390-64/dl-machine.h
+index c15f7e4d979b170c..d08ec8f783729db5 100644
+--- a/sysdeps/s390/s390-64/dl-machine.h
++++ b/sysdeps/s390/s390-64/dl-machine.h
+@@ -226,6 +226,7 @@ _dl_start_user:\n\
+ 
+ /* The 64 bit S/390 never uses Elf64_Rel relocations.  */
+ #define ELF_MACHINE_NO_REL 1
++#define ELF_MACHINE_NO_RELA 0
+ 
+ /* We define an initialization functions.  This is called very early in
+    _dl_sysdep_start.  */
+diff --git a/sysdeps/sh/dl-machine.h b/sysdeps/sh/dl-machine.h
+index 1bb5d156c2640e75..5cb888c12124a5d2 100644
+--- a/sysdeps/sh/dl-machine.h
++++ b/sysdeps/sh/dl-machine.h
+@@ -251,6 +251,7 @@ elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc,
+ 
+ /* SH never uses Elf32_Rel relocations.	 */
+ #define ELF_MACHINE_NO_REL 1
++#define ELF_MACHINE_NO_RELA 0
+ 
+ #ifdef RESOLVE_MAP
+ 
+diff --git a/sysdeps/sparc/sparc32/dl-machine.h b/sysdeps/sparc/sparc32/dl-machine.h
+index 04ce7854a1b4f64c..b33280ded7eb4a1c 100644
+--- a/sysdeps/sparc/sparc32/dl-machine.h
++++ b/sysdeps/sparc/sparc32/dl-machine.h
+@@ -198,6 +198,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
+ 
+ /* The SPARC never uses Elf32_Rel relocations.  */
+ #define ELF_MACHINE_NO_REL 1
++#define ELF_MACHINE_NO_RELA 0
+ 
+ /* Undo the sub %sp, 6*4, %sp; add %sp, 22*4, %o0 below to get at the
+    value we want in __libc_stack_end.  */
+diff --git a/sysdeps/sparc/sparc64/dl-machine.h b/sysdeps/sparc/sparc64/dl-machine.h
+index dec2fa0808a16da5..de3ecdca0321db07 100644
+--- a/sysdeps/sparc/sparc64/dl-machine.h
++++ b/sysdeps/sparc/sparc64/dl-machine.h
+@@ -119,6 +119,7 @@ elf_machine_plt_value (struct link_map *map, const Elf64_Rela *reloc,
+ 
+ /* The SPARC never uses Elf64_Rel relocations.  */
+ #define ELF_MACHINE_NO_REL 1
++#define ELF_MACHINE_NO_RELA 0
+ 
+ /* Set up the loaded object described by L so its unrelocated PLT
+    entries will jump to the on-demand fixup code in dl-runtime.c.  */
+diff --git a/sysdeps/tile/dl-machine.h b/sysdeps/tile/dl-machine.h
+index 09a29935827e84c5..6a62d8007d464290 100644
+--- a/sysdeps/tile/dl-machine.h
++++ b/sysdeps/tile/dl-machine.h
+@@ -223,6 +223,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
+ 
+ /* TILE never uses Elf32_Rel relocations.  */
+ #define ELF_MACHINE_NO_REL 1
++#define ELF_MACHINE_NO_RELA 0
+ 
+ /* We define an initialization functions.  This is called very early in
+    _dl_sysdep_start.  */
+diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h
+index da89f2a6174a0d94..04edd797aa567bbe 100644
+--- a/sysdeps/x86_64/dl-machine.h
++++ b/sysdeps/x86_64/dl-machine.h
+@@ -209,6 +209,7 @@ _dl_start_user:\n\
+ 
+ /* The x86-64 never uses Elf64_Rel/Elf32_Rel relocations.  */
+ #define ELF_MACHINE_NO_REL 1
++#define ELF_MACHINE_NO_RELA 0
+ 
+ /* We define an initialization function.  This is called very early in
+    _dl_sysdep_start.  */
diff --git a/SOURCES/glibc-rh1505492-undef-29.patch b/SOURCES/glibc-rh1505492-undef-29.patch
new file mode 100644
index 0000000..ee1659c
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-29.patch
@@ -0,0 +1,148 @@
+commit 059bf913b5b3c5553a3756b4d9794e2eb3ce4f25
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Thu Jun 26 20:40:46 2014 +0530
+
+    Fix Wundef warning for WIDE_CHAR_VERSION
+    
+    fnmatch.c defines WIDE_CHAR_VERSION as 1 for wide chars, but does not
+    define it for the non-wide char bits.  Define it and also undef it in
+    fnmatch_loop.c like all other macros.
+
+diff --git a/posix/fnmatch.c b/posix/fnmatch.c
+index f0b7b95548c2b9ce..99ec8c4a0eba49b3 100644
+--- a/posix/fnmatch.c
++++ b/posix/fnmatch.c
+@@ -226,6 +226,7 @@ __wcschrnul (s, c)
+ # define MEMPCPY(D, S, N) __mempcpy (D, S, N)
+ # define MEMCHR(S, C, N) memchr (S, C, N)
+ # define STRCOLL(S1, S2) strcoll (S1, S2)
++# define WIDE_CHAR_VERSION 0
+ # include "fnmatch_loop.c"
+ 
+ 
+diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
+index 7ffa3a9944630a0c..e289f451cc23c1ee 100644
+--- a/posix/fnmatch_loop.c
++++ b/posix/fnmatch_loop.c
+@@ -503,7 +503,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+ 			  {
+ 			    int32_t table_size;
+ 			    const int32_t *symb_table;
+-# ifdef WIDE_CHAR_VERSION
++# if WIDE_CHAR_VERSION
+ 			    char str[c1];
+ 			    unsigned int strcnt;
+ # else
+@@ -515,7 +515,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+ 			    int32_t second;
+ 			    int32_t hash;
+ 
+-# ifdef WIDE_CHAR_VERSION
++# if WIDE_CHAR_VERSION
+ 			    /* We have to convert the name to a single-byte
+ 			       string.  This is possible since the names
+ 			       consist of ASCII characters and the internal
+@@ -570,7 +570,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+ 			      {
+ 				/* Compare the byte sequence but only if
+ 				   this is not part of a range.  */
+-# ifdef WIDE_CHAR_VERSION
++# if WIDE_CHAR_VERSION
+ 				int32_t *wextra;
+ 
+ 				idx += 1 + extra[idx];
+@@ -582,7 +582,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+ 
+ 				if (! is_range)
+ 				  {
+-# ifdef WIDE_CHAR_VERSION
++# if WIDE_CHAR_VERSION
+ 				    for (c1 = 0;
+ 					 (int32_t) c1 < wextra[idx];
+ 					 ++c1)
+@@ -603,7 +603,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+ 
+ 				/* Get the collation sequence value.  */
+ 				is_seqval = 1;
+-# ifdef WIDE_CHAR_VERSION
++# if WIDE_CHAR_VERSION
+ 				cold = wextra[1 + wextra[idx]];
+ # else
+ 				/* Adjust for the alignment.  */
+@@ -666,7 +666,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+ 			uint32_t lcollseq;
+ 			UCHAR cend = *p++;
+ 
+-# ifdef WIDE_CHAR_VERSION
++# if WIDE_CHAR_VERSION
+ 			/* Search in the `names' array for the characters.  */
+ 			fcollseq = __collseq_table_lookup (collseq, fn);
+ 			if (fcollseq == ~((uint32_t) 0))
+@@ -721,7 +721,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+ 			      {
+ 				int32_t table_size;
+ 				const int32_t *symb_table;
+-# ifdef WIDE_CHAR_VERSION
++# if WIDE_CHAR_VERSION
+ 				char str[c1];
+ 				unsigned int strcnt;
+ # else
+@@ -733,7 +733,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+ 				int32_t second;
+ 				int32_t hash;
+ 
+-# ifdef WIDE_CHAR_VERSION
++# if WIDE_CHAR_VERSION
+ 				/* We have to convert the name to a single-byte
+ 				   string.  This is possible since the names
+ 				   consist of ASCII characters and the internal
+@@ -788,7 +788,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+ 				  {
+ 				    /* Compare the byte sequence but only if
+ 				       this is not part of a range.  */
+-# ifdef WIDE_CHAR_VERSION
++# if WIDE_CHAR_VERSION
+ 				    int32_t *wextra;
+ 
+ 				    idx += 1 + extra[idx];
+@@ -799,7 +799,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+ # endif
+ 				    /* Get the collation sequence value.  */
+ 				    is_seqval = 1;
+-# ifdef WIDE_CHAR_VERSION
++# if WIDE_CHAR_VERSION
+ 				    cend = wextra[1 + wextra[idx]];
+ # else
+ 				    /* Adjust for the alignment.  */
+@@ -831,7 +831,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+ 			   characters which are not mentioned in the
+ 			   collation specification.  */
+ 			if (
+-# ifdef WIDE_CHAR_VERSION
++# if WIDE_CHAR_VERSION
+ 			    lcollseq == 0xffffffff ||
+ # endif
+ 			    lcollseq <= fcollseq)
+@@ -843,7 +843,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+ 			      hcollseq = cend;
+ 			    else
+ 			      {
+-# ifdef WIDE_CHAR_VERSION
++# if WIDE_CHAR_VERSION
+ 				hcollseq =
+ 				  __collseq_table_lookup (collseq, cend);
+ 				if (hcollseq == ~((uint32_t) 0))
+@@ -864,7 +864,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+ 			    if (lcollseq <= hcollseq && fcollseq <= hcollseq)
+ 			      goto matched;
+ 			  }
+-# ifdef WIDE_CHAR_VERSION
++# if WIDE_CHAR_VERSION
+ 		      range_not_matched:
+ # endif
+ #else
+@@ -1279,3 +1279,4 @@ EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end,
+ #undef STRCAT
+ #undef L
+ #undef BTOWC
++#undef WIDE_CHAR_VERSION
diff --git a/SOURCES/glibc-rh1505492-undef-3.patch b/SOURCES/glibc-rh1505492-undef-3.patch
new file mode 100644
index 0000000..7e23a23
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-3.patch
@@ -0,0 +1,51 @@
+commit f3499f95c8610364264479d42d455a79f15c4c86
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Thu Jan 31 23:01:01 2013 +0000
+
+    Remove CHECK_IOCTL, CHECK_FCNTL and CHECK_N_PAGES.
+
+diff --git a/sysdeps/generic/bp-checks.h b/sysdeps/generic/bp-checks.h
+index 86f998ae69feb81f..d43e299d4dc06b6b 100644
+--- a/sysdeps/generic/bp-checks.h
++++ b/sysdeps/generic/bp-checks.h
+@@ -66,30 +66,6 @@ extern void *__unbounded __ubp_memchr (const void *__unbounded, int, unsigned);
+ /* Same as CHECK_STRING, but tolerate ARG == NULL.  */
+ # define CHECK_STRING_NULL_OK(ARG) _CHECK_STRING ((ARG), __ptrvalue (ARG))
+ 
+-# if defined (_IOC_SIZESHIFT) && defined (_IOC_SIZEBITS)
+-/* Extract the size of the ioctl data and check its bounds.  */
+-#  define CHECK_IOCTL(ARG, CMD)						\
+-  CHECK_N ((const char *) (ARG),					\
+-	   (((CMD) >> _IOC_SIZESHIFT) & ((1 << _IOC_SIZEBITS) - 1)))
+-# else
+-/* We don't know the size of the ioctl data, so the best we can do
+-   is check that the first byte is within bounds.  */
+-#  define CHECK_IOCTL(ARG, CMD) CHECK_1 ((const char *) ARG)
+-# endif
+-
+-/* Check bounds of `struct flock *' for the locking fcntl commands.  */
+-# define CHECK_FCNTL(ARG, CMD)					\
+-  (((CMD) == F_GETLK || (CMD) == F_SETLK || (CMD) == F_SETLKW)	\
+-   ? CHECK_1 ((struct flock *) ARG) : (unsigned long) (ARG))
+-
+-/* Check bounds of an array of mincore residency-status flags that
+-   cover a region of NBYTES.  Such a vector occupies one byte per page
+-   of memory.  */
+-# define CHECK_N_PAGES(ARG, NBYTES)				\
+-  ({ int _page_size_ = sysconf (_SC_PAGE_SIZE);			\
+-     CHECK_N ((const char *) (ARG),				\
+-	      ((NBYTES) + _page_size_ - 1) / _page_size_); })
+-
+ /* Return a bounded pointer with value PTR that satisfies CHECK_N (PTR, N).  */
+ # define BOUNDED_N(PTR, N) 				\
+   ({ __typeof (PTR) __bounded _p_;			\
+@@ -109,9 +85,6 @@ extern void *__unbounded __ubp_memchr (const void *__unbounded, int, unsigned);
+ # define CHECK_N(ARG, N) (ARG)
+ # define CHECK_N_NULL_OK(ARG, N) (ARG)
+ # define CHECK_STRING(ARG) (ARG)
+-# define CHECK_IOCTL(ARG, CMD) (ARG)
+-# define CHECK_FCNTL(ARG, CMD) (ARG)
+-# define CHECK_N_PAGES(ARG, NBYTES) (ARG)
+ # define BOUNDED_N(PTR, N) (PTR)
+ 
+ #endif /* !__BOUNDED_POINTERS__ */
diff --git a/SOURCES/glibc-rh1505492-undef-30.patch b/SOURCES/glibc-rh1505492-undef-30.patch
new file mode 100644
index 0000000..f5196b0
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-30.patch
@@ -0,0 +1,72 @@
+commit 64df73c2ea0e02f7794ba2f08540a74a9bb198db
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Sat Jun 28 06:05:24 2014 +0530
+
+    Fix Wundef warning for MEMCPY_OK_FOR_FWD_MEMMOVE
+    
+    Define MEMCPY_OK_FOR_FWD_MEMMOVE in memcopy.h and let arch-specific
+    implementations of that file override the value if necessary.  This
+    override is only useful for tile and moving this macro to memcopy.h
+    allows us to remove the tile-specific memmove.c.
+
+Conflicts:
+	sysdeps/tile/tilegx/memmove.c
+
+Due to copyright header change; file removed manually.
+
+diff --git a/sysdeps/generic/memcopy.h b/sysdeps/generic/memcopy.h
+index 631214b85ab81d57..08892a4ea33f1ca7 100644
+--- a/sysdeps/generic/memcopy.h
++++ b/sysdeps/generic/memcopy.h
+@@ -148,4 +148,6 @@ extern void _wordcopy_bwd_dest_aligned (long int, long int, size_t) __THROW;
+ /* Threshold value for when to enter the unrolled loops.  */
+ #define	OP_T_THRES	16
+ 
++#define MEMCPY_OK_FOR_FWD_MEMMOVE 0
++
+ #endif /* memcopy.h */
+diff --git a/sysdeps/tile/memcopy.h b/sysdeps/tile/memcopy.h
+index 2bc3fce6864315b8..2876baa0e9f9ab31 100644
+--- a/sysdeps/tile/memcopy.h
++++ b/sysdeps/tile/memcopy.h
+@@ -19,6 +19,12 @@
+ #include <sysdeps/generic/memcopy.h>
+ #include <bits/wordsize.h>
+ 
++/* The tilegx implementation of memcpy is safe to use for memmove.  */
++#ifdef __tilegx__
++# undef MEMCPY_OK_FOR_FWD_MEMMOVE
++# define MEMCPY_OK_FOR_FWD_MEMMOVE 1
++#endif
++
+ /* Support more efficient copying on tilegx32, which supports
+    long long as a native 64-bit type.  */
+ #if defined (__tilegx__) && __WORDSIZE == 32
+diff --git a/sysdeps/tile/tilegx/memmove.c b/sysdeps/tile/tilegx/memmove.c
+deleted file mode 100644
+index 0cb0a81e5fd53639..0000000000000000
+--- a/sysdeps/tile/tilegx/memmove.c
++++ /dev/null
+@@ -1,22 +0,0 @@
+-/* Copy memory to memory until the specified number of bytes
+-   has been copied.  Overlap is handled correctly.
+-   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/>.  */
+-
+-/* The tilegx implementation of memcpy is safe to use for memmove.  */
+-#define MEMCPY_OK_FOR_FWD_MEMMOVE 1
+-#include <string/memmove.c>
diff --git a/SOURCES/glibc-rh1505492-undef-31.patch b/SOURCES/glibc-rh1505492-undef-31.patch
new file mode 100644
index 0000000..dd6041a
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-31.patch
@@ -0,0 +1,21 @@
+commit 256aa665963ebbc2893ed4519dde33e25d8f51c9
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Wed Jul 2 15:09:39 2014 +0530
+
+    Fix typo in macro name
+    
+    It is _POSIX_SIGNALS and not _POSUX_SIGNALS
+
+diff --git a/sysdeps/posix/sysconf.c b/sysdeps/posix/sysconf.c
+index 99043b7558e9aca4..6340b6250d57c295 100644
+--- a/sysdeps/posix/sysconf.c
++++ b/sysdeps/posix/sysconf.c
+@@ -998,7 +998,7 @@ __sysconf (name)
+ #endif
+ 
+     case _SC_SIGNALS:
+-#ifdef _POSUX_SIGNALS
++#ifdef _POSIX_SIGNALS
+       return _POSIX_SIGNALS;
+ #else
+       return -1;
diff --git a/SOURCES/glibc-rh1505492-undef-32.patch b/SOURCES/glibc-rh1505492-undef-32.patch
new file mode 100644
index 0000000..ab2bc33
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-32.patch
@@ -0,0 +1,224 @@
+commit 99f8dc922033821edcc13f9f8360e9fda40dfcff
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Thu Jul 3 01:28:45 2014 +0530
+
+    Fix -Wundef warning on PAGE_COPY_THRESHOLD
+    
+    The PAGE_COPY_THRESHOLD macro is meant to be overridden by
+    architecture-specific pagecopy.h, but it is currently done only by
+    mach; all other architectures use the default.  Check to see if the
+    macro is defined in addition to whether it is set to a non-zero value.
+
+Conflicts:
+	sysdeps/generic/pagecopy.h
+
+Due to copyright header change.
+
+diff --git a/debug/memcpy_chk.c b/debug/memcpy_chk.c
+index bd43583ff4239c8a..4af85a8cb8f5c8de 100644
+--- a/debug/memcpy_chk.c
++++ b/debug/memcpy_chk.c
+@@ -20,7 +20,6 @@
+ 
+ #include <string.h>
+ #include <memcopy.h>
+-#include <pagecopy.h>
+ 
+ void *
+ __memcpy_chk (dstpp, srcpp, len, dstlen)
+diff --git a/debug/mempcpy_chk.c b/debug/mempcpy_chk.c
+index 8e26953764ff1b35..9a4f0e2fbcdde951 100644
+--- a/debug/mempcpy_chk.c
++++ b/debug/mempcpy_chk.c
+@@ -21,7 +21,6 @@
+ 
+ #include <string.h>
+ #include <memcopy.h>
+-#include <pagecopy.h>
+ 
+ void *
+ __mempcpy_chk (dstpp, srcpp, len, dstlen)
+diff --git a/string/memcpy.c b/string/memcpy.c
+index 3080fcb4de4cec83..fa1ec24eaca527c4 100644
+--- a/string/memcpy.c
++++ b/string/memcpy.c
+@@ -20,7 +20,6 @@
+ 
+ #include <string.h>
+ #include <memcopy.h>
+-#include <pagecopy.h>
+ 
+ #undef memcpy
+ 
+diff --git a/string/memmove.c b/string/memmove.c
+index c59e7a9c2a640f7d..51bff31c0530ba91 100644
+--- a/string/memmove.c
++++ b/string/memmove.c
+@@ -20,7 +20,6 @@
+ 
+ #include <string.h>
+ #include <memcopy.h>
+-#include <pagecopy.h>
+ 
+ /* All this is so that bcopy.c can #include
+    this file after defining some things.  */
+diff --git a/sysdeps/generic/memcopy.h b/sysdeps/generic/memcopy.h
+index 08892a4ea33f1ca7..d0ffcd33b007ba38 100644
+--- a/sysdeps/generic/memcopy.h
++++ b/sysdeps/generic/memcopy.h
+@@ -40,6 +40,7 @@
+ 
+ #include <sys/cdefs.h>
+ #include <endian.h>
++#include <pagecopy.h>
+ 
+ /* The macros defined in this file are:
+ 
+@@ -144,6 +145,47 @@ extern void _wordcopy_bwd_dest_aligned (long int, long int, size_t) __THROW;
+       (nbytes_left) = (nbytes) % OPSIZ;					      \
+     } while (0)
+ 
++/* The macro PAGE_COPY_FWD_MAYBE (dstp, srcp, nbytes_left, nbytes) is invoked
++   like WORD_COPY_FWD et al.  The pointers should be at least word aligned.
++   This will check if virtual copying by pages can and should be done and do it
++   if so.  The pointers will be aligned to PAGE_SIZE bytes.  The macro requires
++   that pagecopy.h defines at least PAGE_COPY_THRESHOLD to 0.  If
++   PAGE_COPY_THRESHOLD is non-zero, the header must also define PAGE_COPY_FWD
++   and PAGE_SIZE.
++*/
++#if PAGE_COPY_THRESHOLD
++
++# include <assert.h>
++
++# define PAGE_COPY_FWD_MAYBE(dstp, srcp, nbytes_left, nbytes)		      \
++  do									      \
++    {									      \
++      if ((nbytes) >= PAGE_COPY_THRESHOLD &&				      \
++	  PAGE_OFFSET ((dstp) - (srcp)) == 0) 				      \
++	{								      \
++	  /* The amount to copy is past the threshold for copying	      \
++	     pages virtually with kernel VM operations, and the		      \
++	     source and destination addresses have the same alignment.  */    \
++	  size_t nbytes_before = PAGE_OFFSET (-(dstp));			      \
++	  if (nbytes_before != 0)					      \
++	    {								      \
++	      /* First copy the words before the first page boundary.  */     \
++	      WORD_COPY_FWD (dstp, srcp, nbytes_left, nbytes_before);	      \
++	      assert (nbytes_left == 0);				      \
++	      nbytes -= nbytes_before;					      \
++	    }								      \
++	  PAGE_COPY_FWD (dstp, srcp, nbytes_left, nbytes);		      \
++	}								      \
++    } while (0)
++
++/* The page size is always a power of two, so we can avoid modulo division.  */
++# define PAGE_OFFSET(n)	((n) & (PAGE_SIZE - 1))
++
++#else
++
++# define PAGE_COPY_FWD_MAYBE(dstp, srcp, nbytes_left, nbytes) /* nada */
++
++#endif
+ 
+ /* Threshold value for when to enter the unrolled loops.  */
+ #define	OP_T_THRES	16
+diff --git a/sysdeps/generic/pagecopy.h b/sysdeps/generic/pagecopy.h
+index 89f392cb43c4dcbc..3c81de1b236486bf 100644
+--- a/sysdeps/generic/pagecopy.h
++++ b/sysdeps/generic/pagecopy.h
+@@ -1,5 +1,5 @@
+-/* Macros for copying by pages; used in memcpy, memmove.  Generic macros.
+-   Copyright (C) 1995, 1997 Free Software Foundation, Inc.
++/* Macros for copying by pages; used in memcpy, memmove.
++   Copyright (C) 1995-2014 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,19 +16,15 @@
+    License along with the GNU C Library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+ 
+-/* This file defines the macro:
++/* The macro PAGE_COPY_FWD_MAYBE defined in memcopy.h is used in memmove if the
++   PAGE_COPY_THRESHOLD macro is set to a non-zero value.  The default is 0,
++   that is copying by pages is not implemented.
+ 
+-   PAGE_COPY_FWD_MAYBE (dstp, srcp, nbytes_left, nbytes)
+-
+-   which is invoked like WORD_COPY_FWD et al.  The pointers should be at
+-   least word aligned.  This will check if virtual copying by pages can and
+-   should be done and do it if so.
+-
+-   System-specific pagecopy.h files should define these macros and then
+-   #include this file:
++   System-specific pagecopy.h files that want to support page copying should
++   define these macros:
+ 
+    PAGE_COPY_THRESHOLD
+-   -- Minimum size for which virtual copying by pages is worthwhile.
++   -- A non-zero minimum size for which virtual copying by pages is worthwhile.
+ 
+    PAGE_SIZE
+    -- Size of a page.
+@@ -38,37 +34,4 @@
+    The pointers will be aligned to PAGE_SIZE bytes.
+ */
+ 
+-
+-#if PAGE_COPY_THRESHOLD
+-
+-#include <assert.h>
+-
+-#define PAGE_COPY_FWD_MAYBE(dstp, srcp, nbytes_left, nbytes)		      \
+-  do									      \
+-    {									      \
+-      if ((nbytes) >= PAGE_COPY_THRESHOLD &&				      \
+-	  PAGE_OFFSET ((dstp) - (srcp)) == 0) 				      \
+-	{								      \
+-	  /* The amount to copy is past the threshold for copying	      \
+-	     pages virtually with kernel VM operations, and the		      \
+-	     source and destination addresses have the same alignment.  */    \
+-	  size_t nbytes_before = PAGE_OFFSET (-(dstp));			      \
+-	  if (nbytes_before != 0)					      \
+-	    {								      \
+-	      /* First copy the words before the first page boundary.  */     \
+-	      WORD_COPY_FWD (dstp, srcp, nbytes_left, nbytes_before);	      \
+-	      assert (nbytes_left == 0);				      \
+-	      nbytes -= nbytes_before;					      \
+-	    }								      \
+-	  PAGE_COPY_FWD (dstp, srcp, nbytes_left, nbytes);		      \
+-	}								      \
+-    } while (0)
+-
+-/* The page size is always a power of two, so we can avoid modulo division.  */
+-#define PAGE_OFFSET(n)	((n) & (PAGE_SIZE - 1))
+-
+-#else
+-
+-#define PAGE_COPY_FWD_MAYBE(dstp, srcp, nbytes_left, nbytes) /* nada */
+-
+-#endif
++#define PAGE_COPY_THRESHOLD 0
+diff --git a/sysdeps/mach/pagecopy.h b/sysdeps/mach/pagecopy.h
+index 5b212144b7b163fe..8cce76a6d76698b9 100644
+--- a/sysdeps/mach/pagecopy.h
++++ b/sysdeps/mach/pagecopy.h
+@@ -30,6 +30,3 @@
+ 				(vm_address_t) dstp) == KERN_SUCCESS	      \
+ 		     ? trunc_page (nbytes)				      \
+ 		     : 0)))
+-
+-/* Get the generic macro.  */
+-#include <sysdeps/generic/pagecopy.h>
+diff --git a/sysdeps/powerpc/memmove.c b/sysdeps/powerpc/memmove.c
+index 1617ecea95620133..50734e45458352c5 100644
+--- a/sysdeps/powerpc/memmove.c
++++ b/sysdeps/powerpc/memmove.c
+@@ -20,7 +20,6 @@
+ 
+ #include <string.h>
+ #include <memcopy.h>
+-#include <pagecopy.h>
+ 
+ /* All this is so that bcopy.c can #include
+    this file after defining some things.  */
diff --git a/SOURCES/glibc-rh1505492-undef-33.patch b/SOURCES/glibc-rh1505492-undef-33.patch
new file mode 100644
index 0000000..fab08df
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-33.patch
@@ -0,0 +1,24 @@
+commit 4d614fe5e0625f197805978730214e5236ef360c
+Author: Roland McGrath <roland@hack.frob.com>
+Date:   Thu Jul 3 19:17:00 2014 -0700
+
+    S390: Quash unused variable warning due to no-op THREAD_SET_POINTER_GUARD.
+
+Conflicts:
+	sysdeps/s390/nptl/tls.h
+
+Change applied to nptl/sysdeps/s390/tls.h instead.
+
+diff --git a/nptl/sysdeps/s390/tls.h b/nptl/sysdeps/s390/tls.h
+index 580196b7bfee3046..b3ba0ecc20ce0fcc 100644
+--- a/nptl/sysdeps/s390/tls.h
++++ b/nptl/sysdeps/s390/tls.h
+@@ -170,7 +170,7 @@ typedef struct
+    use stack_guard as pointer_guard.  */
+ #define THREAD_GET_POINTER_GUARD() \
+   THREAD_GETMEM (THREAD_SELF, header.stack_guard)
+-#define THREAD_SET_POINTER_GUARD(value)
++#define THREAD_SET_POINTER_GUARD(value)	((void) (value))
+ #define THREAD_COPY_POINTER_GUARD(descr)
+ 
+ /* Get and set the global scope generation counter in struct pthread.  */
diff --git a/SOURCES/glibc-rh1505492-undef-34.patch b/SOURCES/glibc-rh1505492-undef-34.patch
new file mode 100644
index 0000000..bbab2b4
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-34.patch
@@ -0,0 +1,38 @@
+commit 3f17b03b0947fbe2482e2776f654056d1d5ba093
+Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+Date:   Tue Jun 24 06:41:46 2014 -0500
+
+    PowerPC: Guard CALL_ELF check for ppc64 only in link.h
+    
+    This patch fixes powerpc32 undef compiler warnings for _CALL_ELF,
+    since it is defined only for powerpc64.
+
+diff --git a/sysdeps/powerpc/bits/link.h b/sysdeps/powerpc/bits/link.h
+index 6c7867e04353a39e..201d3427dac8aece 100644
+--- a/sysdeps/powerpc/bits/link.h
++++ b/sysdeps/powerpc/bits/link.h
+@@ -63,7 +63,8 @@ extern unsigned int la_ppc32_gnu_pltexit (Elf32_Sym *__sym,
+ 
+ __END_DECLS
+ 
+-#elif _CALL_ELF != 2
++#elif __ELF_NATIVE_CLASS == 64
++# if _CALL_ELF != 2
+ 
+ /* Registers for entry into PLT on PPC64.  */
+ typedef struct La_ppc64_regs
+@@ -107,7 +108,7 @@ extern unsigned int la_ppc64_gnu_pltexit (Elf64_Sym *__sym,
+ 
+ __END_DECLS
+ 
+-#else
++# else
+ 
+ /* Registers for entry into PLT on PPC64 in the ELFv2 ABI.  */
+ typedef struct La_ppc64v2_regs
+@@ -151,4 +152,5 @@ extern unsigned int la_ppc64v2_gnu_pltexit (Elf64_Sym *__sym,
+ 
+ __END_DECLS
+ 
++# endif
+ #endif
diff --git a/SOURCES/glibc-rh1505492-undef-35.patch b/SOURCES/glibc-rh1505492-undef-35.patch
new file mode 100644
index 0000000..3042a23
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-35.patch
@@ -0,0 +1,1115 @@
+commit 7c33f1e52c7ed39416b24c894e61d39eabf6cd14
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Tue Jul 8 15:02:58 2014 +0530
+
+    Fix Wundef warning with SHOJI_IS_RIGHT
+    
+    The macro is not defined anywhere, so it looks like we're convinced
+    that Shoji is wrong :)
+
+diff --git a/localedata/tests-mbwc/dat_iswalnum.c b/localedata/tests-mbwc/dat_iswalnum.c
+index a0b457d52fa682bc..b500a83bd70b92a6 100644
+--- a/localedata/tests-mbwc/dat_iswalnum.c
++++ b/localedata/tests-mbwc/dat_iswalnum.c
+@@ -103,54 +103,23 @@ TST_ISW_LOC (ALNUM, alnum) = {
+ 	{
+ 	  {  { 0x3000 }, { 0,1,0 }  },  /* IDEO. SPACE	*/
+ 	  {  { 0x3020 }, { 0,1,0 }  },  /* POSTAL MARK FACE	*/
+-#ifdef SHOJI_IS_RIGHT
+-	  {  { 0x3029 }, { 0,1,0 }  },  /* Hangzhou NUM9	*/
+-#else
+ 	  {  { 0x3029 }, { 0,0,0 }  },  /* Hangzhou NUM9	*/
+-#endif
+ 	  {  { 0x302F }, { 0,1,0 }  },  /* Diacritics(Hangul) */
+ 	  {  { 0x3037 }, { 0,1,0 }  },  /* Separator Symbol	*/
+ 	  {  { 0x303F }, { 0,1,0 }  },  /* IDEO. HALF SPACE	*/
+-#ifdef SHOJI_IS_RIGHT
+-	  {  { 0x3041 }, { 0,1,0 }  },  /* HIRAGANA a		*/
+-	  {  { 0x3094 }, { 0,1,0 }  },  /* HIRAGANA u"		*/
+-#else
+ 	  {  { 0x3041 }, { 0,0,0 }  },  /* HIRAGANA a		*/
+ 	  {  { 0x3094 }, { 0,0,0 }  },  /* HIRAGANA u"		*/
+-#endif
+ 	  {  { 0x3099 }, { 0,1,0 }  },  /* SOUND MARK		*/
+-#ifdef SHOJI_IS_RIGHT
+-	  {  { 0x309E }, { 0,1,0 }  },  /* ITERATION MARK	*/
+-	  {  { 0x30A1 }, { 0,1,0 }  },  /* KATAKANA a		*/
+-	  {  { 0x30FA }, { 0,1,0 }  },  /* KATAKANA wo"	*/
+-#else
+ 	  {  { 0x309E }, { 0,0,0 }  },  /* ITERATION MARK	*/
+ 	  {  { 0x30A1 }, { 0,0,0 }  },  /* KATAKANA a		*/
+ 	  {  { 0x30FA }, { 0,0,0 }  },  /* KATAKANA wo"	*/
+-#endif
+ 	  {  { 0x30FB }, { 0,1,0 }  },  /* KATAKANA MID.DOT	*/
+-#ifdef SHOJI_IS_RIGHT
+-	  {  { 0x30FE }, { 0,1,0 }  },  /* KATAKANA ITERATION	*/
+-#else
+ 	  {  { 0x30FE }, { 0,0,0 }  },  /* KATAKANA ITERATION	*/
+-#endif
+ 	  {  { 0x3191 }, { 0,1,0 }  },  /* KANBUN REV.MARK	*/
+ 	  {  { 0x3243 }, { 0,1,0 }  },  /* IDEO. MARK (reach) */
+ 	  {  { 0x32CB }, { 0,1,0 }  },  /* IDEO.TEL.SYM.DEC12 */
+ 	  {  { 0x32FE }, { 0,1,0 }  },  /* MARU KATAKANA wo	*/
+ 	  {  { 0x33FE }, { 0,1,0 }  },  /* CJK IDEO.TEL.31th	*/
+-#ifdef SHOJI_IS_RIGHT
+-	  {  { 0x4E00 }, { 0,1,0 }  },  /* CJK UNI.IDEO.	*/
+-	  {  { 0x4E05 }, { 0,1,0 }  },  /* CJK UNI.IDEO.	*/
+-	  {  { 0x4E06 }, { 0,1,0 }  },  /* CJK UNI.IDEO.NON-J	*/
+-	  {  { 0x4E07 }, { 0,1,0 }  },  /* CJK UNI.IDEO.	*/
+-	  {  { 0x4FFF }, { 0,1,0 }  },  /* CJK UNI.IDEO.	*/
+-	  {  { 0x9000 }, { 0,1,0 }  },  /* CJK UNI.IDEO.	*/
+-	  {  { 0x9006 }, { 0,1,0 }  },  /* CJK UNI.IDEO.	*/
+-	  {  { 0x9007 }, { 0,1,0 }  },  /* CJK UNI.IDEO.NON-J	*/
+-	  {  { 0x9FA4 }, { 0,1,0 }  },  /* CJK UNI.IDEO.NON-J	*/
+-	  {  { 0x9FA5 }, { 0,1,0 }  },  /* CJK UNI.IDEO.	*/
+-#else
+ 	  {  { 0x4E00 }, { 0,0,0 }  },  /* CJK UNI.IDEO.	*/
+ 	  {  { 0x4E05 }, { 0,0,0 }  },  /* CJK UNI.IDEO.	*/
+ 	  {  { 0x4E06 }, { 0,0,0 }  },  /* CJK UNI.IDEO.NON-J	*/
+@@ -161,7 +130,6 @@ TST_ISW_LOC (ALNUM, alnum) = {
+ 	  {  { 0x9007 }, { 0,0,0 }  },  /* CJK UNI.IDEO.NON-J	*/
+ 	  {  { 0x9FA4 }, { 0,0,0 }  },  /* CJK UNI.IDEO.NON-J	*/
+ 	  {  { 0x9FA5 }, { 0,0,0 }  },  /* CJK UNI.IDEO.	*/
+-#endif
+ 	  {  { 0xFE4F }, { 0,1,0 }  },  /* CJK UNI.IDEO.	*/
+ 	  {  { 0xFF0F }, { 0,1,0 }  },  /* FULL SLASH		*/
+ 	  {  { 0xFF19 }, { 0,0,0 }  },  /* FULL 9		*/
+@@ -172,19 +140,11 @@ TST_ISW_LOC (ALNUM, alnum) = {
+ 	  {  { 0xFF5E }, { 0,1,0 }  },  /* FULL ~ (tilde)	*/
+ 	  {  { 0xFF61 }, { 0,1,0 }  },  /* HALF IDEO.STOP. .	*/
+ 	  {  { 0xFF65 }, { 0,1,0 }  },  /* HALF KATA MID.DOT	*/
+-#ifdef SHOJI_IS_RIGHT
+-	  {  { 0xFF66 }, { 0,1,0 }  },  /* HALF KATA WO		*/
+-	  {  { 0xFF6F }, { 0,1,0 }  },  /* HALF KATA tu		*/
+-	  {  { 0xFF70 }, { 0,1,0 }  },  /* HALF KATA PL -	*/
+-	  {  { 0xFF71 }, { 0,1,0 }  },  /* HALF KATA A		*/
+-	  {  { 0xFF9E }, { 0,1,0 }  },  /* HALF KATA MI		*/
+-#else
+ 	  {  { 0xFF66 }, { 0,0,0 }  },  /* HALF KATA WO		*/
+ 	  {  { 0xFF6F }, { 0,0,0 }  },  /* HALF KATA tu		*/
+ 	  {  { 0xFF70 }, { 0,0,0 }  },  /* HALF KATA PL -	*/
+ 	  {  { 0xFF71 }, { 0,0,0 }  },  /* HALF KATA A		*/
+ 	  {  { 0xFF9E }, { 0,0,0 }  },  /* HALF KATA MI		*/
+-#endif
+ 	  {  .is_last = 1 }		  /* last element    */
+ 	}
+     },
+diff --git a/localedata/tests-mbwc/dat_iswalpha.c b/localedata/tests-mbwc/dat_iswalpha.c
+index a1fa1d6bfc437d5a..ba71fc0cd73895fd 100644
+--- a/localedata/tests-mbwc/dat_iswalpha.c
++++ b/localedata/tests-mbwc/dat_iswalpha.c
+@@ -72,54 +72,23 @@ TST_ISW_LOC (ALPHA, alpha)  = {
+ 	{
+ 	  {  { 0x3000 }, { 0,1,0 }  },  /* IDEO. SPACE	*/
+ 	  {  { 0x3020 }, { 0,1,0 }  },  /* POSTAL MARK FACE	*/
+-#ifdef SHOJI_IS_RIGHT
+-	  {  { 0x3029 }, { 0,1,0 }  },  /* Hangzhou NUM9	*/
+-#else
+ 	  {  { 0x3029 }, { 0,0,0 }  },  /* Hangzhou NUM9	*/
+-#endif
+ 	  {  { 0x302F }, { 0,1,0 }  },  /* Diacritics(Hangul) */
+ 	  {  { 0x3037 }, { 0,1,0 }  },  /* Separator Symbol	*/
+ 	  {  { 0x303F }, { 0,1,0 }  },  /* IDEO. HALF SPACE	*/
+-#ifdef SHOJI_IS_RIGHT
+-	  {  { 0x3041 }, { 0,1,0 }  },  /* HIRAGANA a		*/
+-	  {  { 0x3094 }, { 0,1,0 }  },  /* HIRAGANA u"		*/
+-#else
+ 	  {  { 0x3041 }, { 0,0,0 }  },  /* HIRAGANA a		*/
+ 	  {  { 0x3094 }, { 0,0,0 }  },  /* HIRAGANA u"		*/
+-#endif
+ 	  {  { 0x3099 }, { 0,1,0 }  },  /* SOUND MARK		*/
+-#ifdef SHOJI_IS_RIGHT
+-	  {  { 0x309E }, { 0,1,0 }  },  /* ITERATION MARK	*/
+-	  {  { 0x30A1 }, { 0,1,0 }  },  /* KATAKANA a		*/
+-	  {  { 0x30FA }, { 0,1,0 }  },  /* KATAKANA wo"		*/
+-#else
+ 	  {  { 0x309E }, { 0,0,0 }  },  /* ITERATION MARK	*/
+ 	  {  { 0x30A1 }, { 0,0,0 }  },  /* KATAKANA a		*/
+ 	  {  { 0x30FA }, { 0,0,0 }  },  /* KATAKANA wo"		*/
+-#endif
+ 	  {  { 0x30FB }, { 0,1,0 }  },  /* KATAKANA MID.DOT	*/
+-#ifdef SHOJI_IS_RIGHT
+-	  {  { 0x30FE }, { 0,1,0 }  },  /* KATAKANA ITERATION	*/
+-#else
+ 	  {  { 0x30FE }, { 0,0,0 }  },  /* KATAKANA ITERATION	*/
+-#endif
+ 	  {  { 0x3191 }, { 0,1,0 }  },  /* KANBUN REV.MARK	*/
+ 	  {  { 0x3243 }, { 0,1,0 }  },  /* IDEO. MARK (reach) */
+ 	  {  { 0x32CB }, { 0,1,0 }  },  /* IDEO.TEL.SYM.DEC12 */
+ 	  {  { 0x32FE }, { 0,1,0 }  },  /* MARU KATAKANA wo	*/
+ 	  {  { 0x33FE }, { 0,1,0 }  },  /* CJK IDEO.TEL.31th	*/
+-#ifdef SHOJI_IS_RIGHT
+-	  {  { 0x4E00 }, { 0,1,0 }  },  /* CJK UNI.IDEO.	*/
+-	  {  { 0x4E05 }, { 0,1,0 }  },  /* CJK UNI.IDEO.	*/
+-	  {  { 0x4E06 }, { 0,1,0 }  },  /* CJK UNI.IDEO.NON-J	*/
+-	  {  { 0x4E07 }, { 0,1,0 }  },  /* CJK UNI.IDEO.	*/
+-	  {  { 0x4FFF }, { 0,1,0 }  },  /* CJK UNI.IDEO.	*/
+-	  {  { 0x9000 }, { 0,1,0 }  },  /* CJK UNI.IDEO.	*/
+-	  {  { 0x9006 }, { 0,1,0 }  },  /* CJK UNI.IDEO.	*/
+-	  {  { 0x9007 }, { 0,1,0 }  },  /* CJK UNI.IDEO.NON-J	*/
+-	  {  { 0x9FA4 }, { 0,1,0 }  },  /* CJK UNI.IDEO.NON-J	*/
+-	  {  { 0x9FA5 }, { 0,1,0 }  },  /* CJK UNI.IDEO.	*/
+-#else
+ 	  {  { 0x4E00 }, { 0,0,0 }  },  /* CJK UNI.IDEO.	*/
+ 	  {  { 0x4E05 }, { 0,0,0 }  },  /* CJK UNI.IDEO.	*/
+ 	  {  { 0x4E06 }, { 0,0,0 }  },  /* CJK UNI.IDEO.NON-J	*/
+@@ -130,14 +99,9 @@ TST_ISW_LOC (ALPHA, alpha)  = {
+ 	  {  { 0x9007 }, { 0,0,0 }  },  /* CJK UNI.IDEO.NON-J	*/
+ 	  {  { 0x9FA4 }, { 0,0,0 }  },  /* CJK UNI.IDEO.NON-J	*/
+ 	  {  { 0x9FA5 }, { 0,0,0 }  },  /* CJK UNI.IDEO.	*/
+-#endif
+ 	  {  { 0xFE4F }, { 0,1,0 }  },  /* CJK UNI.IDEO.	*/
+ 	  {  { 0xFF0F }, { 0,1,0 }  },  /* FULL SLASH		*/
+-#ifdef SHOJI_IS_RIGHT
+-	  {  { 0xFF19 }, { 0,1,0 }  },  /* FULL 9		*/
+-#else
+ 	  {  { 0xFF19 }, { 0,0,0 }  },  /* FULL 9		*/
+-#endif
+ 	  {  { 0xFF20 }, { 0,1,0 }  },  /* FULL @		*/
+ 	  {  { 0xFF3A }, { 0,0,0 }  },  /* FULL Z		*/
+ 	  {  { 0xFF40 }, { 0,1,0 }  },  /* FULL GRAVE ACC.	*/
+@@ -145,19 +109,11 @@ TST_ISW_LOC (ALPHA, alpha)  = {
+ 	  {  { 0xFF5E }, { 0,1,0 }  },  /* FULL ~ (tilde)	*/
+ 	  {  { 0xFF61 }, { 0,1,0 }  },  /* HALF IDEO.STOP. .	*/
+ 	  {  { 0xFF65 }, { 0,1,0 }  },  /* HALF KATA MID.DOT	*/
+-#ifdef SHOJI_IS_RIGHT
+-	  {  { 0xFF66 }, { 0,1,0 }  },  /* HALF KATA WO		*/
+-	  {  { 0xFF6F }, { 0,1,0 }  },  /* HALF KATA tu		*/
+-	  {  { 0xFF70 }, { 0,1,0 }  },  /* HALF KATA PL -	*/
+-	  {  { 0xFF71 }, { 0,1,0 }  },  /* HALF KATA A		*/
+-	  {  { 0xFF9E }, { 0,1,0 }  },  /* HALF KATA MI		*/
+-#else
+ 	  {  { 0xFF66 }, { 0,0,0 }  },  /* HALF KATA WO		*/
+ 	  {  { 0xFF6F }, { 0,0,0 }  },  /* HALF KATA tu		*/
+ 	  {  { 0xFF70 }, { 0,0,0 }  },  /* HALF KATA PL -	*/
+ 	  {  { 0xFF71 }, { 0,0,0 }  },  /* HALF KATA A		*/
+ 	  {  { 0xFF9E }, { 0,0,0 }  },  /* HALF KATA MI		*/
+-#endif
+ 	  {  .is_last = 1 }		  /* last element    */
+ 	}
+     },
+diff --git a/localedata/tests-mbwc/dat_iswctype.c b/localedata/tests-mbwc/dat_iswctype.c
+index 38d692954fd29d2b..41111e03bd64e8a8 100644
+--- a/localedata/tests-mbwc/dat_iswctype.c
++++ b/localedata/tests-mbwc/dat_iswctype.c
+@@ -81,11 +81,7 @@ TST_ISWCTYPE tst_iswctype_loc [] = {
+       {	 { 0x00B9, "digit"  }, { 0,1,0 }  },	   /* SUP 1    */
+       {	 { 0x00BE, "digit"  }, { 0,1,0 }  },	   /* 3/4      */
+       {	 { 0x009F, "graph"  }, { 0,1,0 }  },	   /* CTRL     */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x00A0, "graph"  }, { 0,1,0 }  },	   /* NB SPACE */
+-#else
+       {	 { 0x00A0, "graph"  }, { 0,0,0 }  },	   /* NB SPACE */
+-#endif
+       {	 { 0x00A1, "graph"  }, { 0,0,0 }  },	   /* UD !     */
+       {	 { 0x00B1, "graph"  }, { 0,0,0 }  },	   /* +- sign  */
+       {	 { 0x00B3, "graph"  }, { 0,0,0 }  },	   /* SUP 3    */
+@@ -101,11 +97,7 @@ TST_ISWCTYPE tst_iswctype_loc [] = {
+       {	 { 0x00F8, "graph"  }, { 0,0,0 }  },	   /* o stroke */
+       {	 { 0x00FF, "graph"  }, { 0,0,0 }  },	   /* y dia    */
+       {	 { 0x009F, "print"  }, { 0,1,0 }  },	   /* CTRL     */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x00A0, "print"  }, { 0,1,0 }  },	   /* NB SPACE */
+-#else
+       {	 { 0x00A0, "print"  }, { 0,0,0 }  },	   /* NB SPACE */
+-#endif
+       {	 { 0x00A1, "print"  }, { 0,0,0 }  },	   /* UD !     */
+       {	 { 0x00B1, "print"  }, { 0,0,0 }  },	   /* +- sign  */
+       {	 { 0x00B4, "print"  }, { 0,0,0 }  },	   /* ACUTE    */
+@@ -120,11 +112,7 @@ TST_ISWCTYPE tst_iswctype_loc [] = {
+       {	 { 0x00F8, "print"  }, { 0,0,0 }  },	   /* o stroke */
+       {	 { 0x00FF, "print"  }, { 0,0,0 }  },	   /* y dia    */
+       {	 { 0x009F, "punct"  }, { 0,1,0 }  },	   /* CTRL     */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x00A0, "punct"  }, { 0,1,0 }  },	   /* NB SPACE */
+-#else
+       {	 { 0x00A0, "punct"  }, { 0,0,0 }  },	   /* NB SPACE */
+-#endif
+       {	 { 0x00A1, "punct"  }, { 0,0,0 }  },	   /* UD !     */
+       {	 { 0x00B0, "punct"  }, { 0,0,0 }  },	   /* Degree   */
+       {	 { 0x00B1, "punct"  }, { 0,0,0 }  },	   /* +- sign  */
+@@ -389,42 +377,22 @@ TST_ISWCTYPE tst_iswctype_loc [] = {
+   {
+     { Tiswctype, TST_LOC_eucJP },
+     {
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x3029, "alnum"  }, { 0,1,0 }  },	   /* Hangzhou NUM9	 */
+-#else
+       {	 { 0x3029, "alnum"  }, { 0,0,0 }  },	   /* Hangzhou NUM9	 */
+-#endif
+       {	 { 0xFE4F, "alnum"  }, { 0,1,0 }  },	   /* CJK UNI.IDEO.	 */
+       {	 { 0xFF19, "alnum"  }, { 0,0,0 }  },	   /* FULL 9		 */
+       {	 { 0xFF20, "alnum"  }, { 0,1,0 }  },	   /* FULL @		 */
+       {	 { 0xFF3A, "alnum"  }, { 0,0,0 }  },	   /* FULL Z		 */
+       {	 { 0xFF40, "alnum"  }, { 0,1,0 }  },	   /* FULL GRAVE ACC.	 */
+       {	 { 0xFF5A, "alnum"  }, { 0,0,0 }  },	   /* FULL z		 */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0xFF71, "alnum"  }, { 0,1,0 }  },	   /* HALF KATA A	 */
+-#else
+       {	 { 0xFF71, "alnum"  }, { 0,0,0 }  },	   /* HALF KATA A	 */
+-#endif
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x3029, "alpha"  }, { 0,1,0 }  },	   /* Hangzhou NUM9	 */
+-#else
+       {	 { 0x3029, "alpha"  }, { 0,0,0 }  },	   /* Hangzhou NUM9	 */
+-#endif
+       {	 { 0xFE4F, "alpha"  }, { 0,1,0 }  },	   /* CJK UNI.IDEO.	 */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0xFF19, "alpha"  }, { 0,1,0 }  },	   /* FULL 9		 */
+-#else
+       {	 { 0xFF19, "alpha"  }, { 0,0,0 }  },	   /* FULL 9		 */
+-#endif
+       {	 { 0xFF20, "alpha"  }, { 0,1,0 }  },	   /* FULL @		 */
+       {	 { 0xFF3A, "alpha"  }, { 0,0,0 }  },	   /* FULL Z		 */
+       {	 { 0xFF40, "alpha"  }, { 0,1,0 }  },	   /* FULL GRAVE ACC.	 */
+       {	 { 0xFF5A, "alpha"  }, { 0,0,0 }  },	   /* FULL z		 */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0xFF71, "alpha"  }, { 0,1,0 }  },	   /* HALF KATA A	 */
+-#else
+       {	 { 0xFF71, "alpha"  }, { 0,0,0 }  },	   /* HALF KATA A	 */
+-#endif
+       {	 { 0x0080, "cntrl"  }, { 0,0,0 }  },	   /* CNTRL		 */
+       {	 { 0x3000, "cntrl"  }, { 0,1,0 }  },	   /* IDEO. SPACE	 */
+       {	 { 0x3029, "digit"  }, { 0,1,0 }  },	   /* Hangzhou NUM9	 */
+@@ -433,83 +401,42 @@ TST_ISWCTYPE tst_iswctype_loc [] = {
+       {	 { 0x33FE, "digit"  }, { 0,1,0 }  },	   /* CJK IDEO.TEL.31th	 */
+       {	 { 0xFF19, "digit"  }, { 0,1,0 }  },	   /* FULL 9		 */
+       {	 { 0x3000, "graph"  }, { 0,1,0 }  },	   /* IDEO. SPACE	 */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x3020, "graph"  }, { 0,1,0 }  },	   /* POSTAL MARK FACE	 */
+-      {	 { 0x3029, "graph"  }, { 0,1,0 }  },	   /* Hangzhou NUM9	 */
+-      {	 { 0x302F, "graph"  }, { 0,1,0 }  },	   /* Diacritics(Hangul) */
+-      {	 { 0x3037, "graph"  }, { 0,1,0 }  },	   /* Separator Symbol	 */
+-      {	 { 0x303F, "graph"  }, { 0,1,0 }  },	   /* IDEO. HALF SPACE	 */
+-#else
+       {	 { 0x3020, "graph"  }, { 0,0,0 }  },	   /* POSTAL MARK FACE	 */
+       {	 { 0x3029, "graph"  }, { 0,0,0 }  },	   /* Hangzhou NUM9	 */
+       {	 { 0x302F, "graph"  }, { 0,0,0 }  },	   /* Diacritics(Hangul) */
+       {	 { 0x3037, "graph"  }, { 0,0,0 }  },	   /* Separator Symbol	 */
+       {	 { 0x303F, "graph"  }, { 0,0,0 }  },	   /* IDEO. HALF SPACE	 */
+-#endif
+       /* 29: */
+       {	 { 0x3041, "graph"  }, { 0,0,0 }  },	   /* HIRAGANA a	 */
+       /* Non jis: */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x3094, "graph"  }, { 0,1,0 }  },	   /* HIRAGANA u"	 */
+-#else
+       {	 { 0x3094, "graph"  }, { 0,0,0 }  },	   /* HIRAGANA u"	 */
+-#endif
+       /* Non jis: */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x3099, "graph"  }, { 0,1,0 }  },	   /* SOUND MARK	 */
+-#else
+       {	 { 0x3099, "graph"  }, { 0,0,0 }  },	   /* SOUND MARK	 */
+-#endif
+       {	 { 0x309E, "graph"  }, { 0,0,0 }  },	   /* ITERATION MARK	 */
+       /* 33: */
+       {	 { 0x30A1, "graph"  }, { 0,0,0 }  },	   /* KATAKANA a	 */
+       /* Non jis: */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x30FA, "graph"  }, { 0,1,0 }  },	   /* KATAKANA wo"	 */
+-#else
+       {	 { 0x30FA, "graph"  }, { 0,0,0 }  },	   /* KATAKANA wo"	 */
+-#endif
+       {	 { 0x30FB, "graph"  }, { 0,0,0 }  },	   /* KATAKANA MID.DOT	 */
+       {	 { 0x30FE, "graph"  }, { 0,0,0 }  },	   /* KATAKANA ITERATION */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x3191, "graph"  }, { 0,1,0 }  },	   /* KANBUN REV.MARK	 */
+-      {	 { 0x3243, "graph"  }, { 0,1,0 }  },	   /* IDEO. MARK (reach) */
+-      {	 { 0x32CB, "graph"  }, { 0,1,0 }  },	   /* IDEO.TEL.SYM.DEC12 */
+-      {	 { 0x32FE, "graph"  }, { 0,1,0 }  },	   /* MARU KATAKANA wo	 */
+-      {	 { 0x33FE, "graph"  }, { 0,1,0 }  },	   /* CJK IDEO.TEL.31th	 */
+-#else
+       {	 { 0x3191, "graph"  }, { 0,0,0 }  },	   /* KANBUN REV.MARK	 */
+       {	 { 0x3243, "graph"  }, { 0,0,0 }  },	   /* IDEO. MARK (reach) */
+       {	 { 0x32CB, "graph"  }, { 0,0,0 }  },	   /* IDEO.TEL.SYM.DEC12 */
+       {	 { 0x32FE, "graph"  }, { 0,0,0 }  },	   /* MARU KATAKANA wo	 */
+       {	 { 0x33FE, "graph"  }, { 0,0,0 }  },	   /* CJK IDEO.TEL.31th	 */
+-#endif
+       {	 { 0x4E00, "graph"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.	 */
+       {	 { 0x4E05, "graph"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.	 */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x4E06, "graph"  }, { 0,1,0 }  },	   /* CJK UNI.IDEO.NON-J */
+-#else
+       {	 { 0x4E06, "graph"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.NON-J */
+-#endif
+       {	 { 0x4E07, "graph"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.	 */
+       {	 { 0x4FFF, "graph"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.	 */
+       {	 { 0x9000, "graph"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.	 */
+       {	 { 0x9006, "graph"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.	 */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x9007, "graph"  }, { 0,1,0 }  },	   /* CJK UNI.IDEO.NON-J */
+-      {	 { 0x9FA4, "graph"  }, { 0,1,0 }  },	   /* CJK UNI.IDEO.NON-J */
+-#else
+       {	 { 0x9007, "graph"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.NON-J */
+       {	 { 0x9FA4, "graph"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.NON-J */
+-#endif
+       /* 51 */
+       {	 { 0x9FA5, "graph"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.	 */
+       /* Non jis: */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0xFE4F, "graph"  }, { 0,1,0 }  },	   /* CJK UNI.IDEO.	 */
+-#else
+       {	 { 0xFE4F, "graph"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.	 */
+-#endif
+       {	 { 0xFF0F, "graph"  }, { 0,0,0 }  },	   /* FULL SLASH	 */
+       {	 { 0xFF19, "graph"  }, { 0,0,0 }  },	   /* FULL 9		 */
+       {	 { 0xFF20, "graph"  }, { 0,0,0 }  },	   /* FULL @		 */
+@@ -525,82 +452,43 @@ TST_ISWCTYPE tst_iswctype_loc [] = {
+       {	 { 0xFF71, "graph"  }, { 0,0,0 }  },	   /* HALF KATA A	 */
+       {	 { 0xFF9E, "graph"  }, { 0,0,0 }  },	   /* HALF KATA MI	 */
+       {	 { 0x3000, "print"  }, { 0,0,0 }  },	   /* IDEO. SPACE	 */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x3020, "print"  }, { 0,1,0 }  },	   /* POSTAL MARK FACE	 */
+-      {	 { 0x3029, "print"  }, { 0,1,0 }  },	   /* Hangzhou NUM9	 */
+-      {	 { 0x302F, "print"  }, { 0,1,0 }  },	   /* Diacritics(Hangul) */
+-      {	 { 0x3037, "print"  }, { 0,1,0 }  },	   /* Separator Symbol	 */
+-#else
+       {	 { 0x3020, "print"  }, { 0,0,0 }  },	   /* POSTAL MARK FACE	 */
+       {	 { 0x3029, "print"  }, { 0,0,0 }  },	   /* Hangzhou NUM9	 */
+       {	 { 0x302F, "print"  }, { 0,0,0 }  },	   /* Diacritics(Hangul) */
+       {	 { 0x3037, "print"  }, { 0,0,0 }  },	   /* Separator Symbol	 */
+-#endif
+       {	 { 0x4E00, "print"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.	 */
+       {	 { 0x4E05, "print"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.	 */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x4E06, "print"  }, { 0,1,0 }  },	   /* CJK UNI.IDEO.NON-J */
+-#else
+       {	 { 0x4E06, "print"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.NON-J */
+-#endif
+       {	 { 0x4E07, "print"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.	 */
+       {	 { 0x4FFF, "print"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.	 */
+       {	 { 0x9000, "print"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.	 */
+       {	 { 0x9006, "print"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.	 */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x9007, "print"  }, { 0,1,0 }  },	   /* CJK UNI.IDEO.NON-J */
+-      {	 { 0x9FA4, "print"  }, { 0,1,0 }  },	   /* CJK UNI.IDEO.NON-J */
+-#else
+       {	 { 0x9007, "print"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.NON-J */
+       {	 { 0x9FA4, "print"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.NON-J */
+-#endif
+       /* 81: */
+       {	 { 0x9FA5, "print"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.	 */
+       /* Non jis: */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0xFE4F, "print"  }, { 0,1,0 }  },	   /* CJK UNI.IDEO.	 */
+-#else
+       {	 { 0xFE4F, "print"  }, { 0,0,0 }  },	   /* CJK UNI.IDEO.	 */
+-#endif
+       {	 { 0x3000, "punct"  }, { 0,1,0 }  },	   /* IDEO. SPACE	 */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x3020, "punct"  }, { 0,1,0 }  },	   /* POSTAL MARK FACE	 */
+-      {	 { 0x302F, "punct"  }, { 0,1,0 }  },	   /* Diacritics(Hangul) */
+-      {	 { 0x3037, "punct"  }, { 0,1,0 }  },	   /* FEED Separator	 */
+-      {	 { 0x303F, "punct"  }, { 0,1,0 }  },	   /* IDEO. HALF SPACE	 */
+-#else
+       {	 { 0x3020, "punct"  }, { 0,0,0 }  },	   /* POSTAL MARK FACE	 */
+       {	 { 0x302F, "punct"  }, { 0,0,0 }  },	   /* Diacritics(Hangul) */
+       {	 { 0x3037, "punct"  }, { 0,0,0 }  },	   /* FEED Separator	 */
+       {	 { 0x303F, "punct"  }, { 0,0,0 }  },	   /* IDEO. HALF SPACE	 */
+-#endif
+       {	 { 0x3041, "punct"  }, { 0,1,0 }  },	   /* HIRAGANA a	 */
+       {	 { 0x3094, "punct"  }, { 0,1,0 }  },	   /* HIRAGANA u"	 */
+       /* 90: */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x3099, "punct"  }, { 0,1,0 }  },	   /* SOUND MARK	 */
+-#else
+       {	 { 0x3099, "punct"  }, { 0,0,0 }  },	   /* SOUND MARK	 */
+-#endif
+       {	 { 0x309E, "punct"  }, { 0,1,0 }  },	   /* ITERATION MARK	 */
+       {	 { 0x30A1, "punct"  }, { 0,1,0 }  },	   /* KATAKANA a	 */
+       {	 { 0x30FA, "punct"  }, { 0,1,0 }  },	   /* KATAKANA wo"	 */
+       {	 { 0x30FB, "punct"  }, { 0,0,0 }  },	   /* KATAKANA MID.DOT	 */
+       /* 95: */
+       {	 { 0x30FE, "punct"  }, { 0,1,0 }  },	   /* KATAKANA ITERATION */
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x3191, "punct"  }, { 0,1,0 }  },	   /* KANBUN REV.MARK	 */
+-      {	 { 0x3243, "punct"  }, { 0,1,0 }  },	   /* IDEO. MARK (reach) */
+-      {	 { 0x32CB, "punct"  }, { 0,1,0 }  },	   /* IDEO.TEL.SYM.DEC12 */
+-      {	 { 0x32FE, "punct"  }, { 0,1,0 }  },	   /* MARU KATAKANA wo	 */
+-      {	 { 0x33FE, "punct"  }, { 0,1,0 }  },	   /* CJK IDEO.TEL.31th	 */
+-#else
+       {	 { 0x3191, "punct"  }, { 0,0,0 }  },	   /* KANBUN REV.MARK	 */
+       {	 { 0x3243, "punct"  }, { 0,0,0 }  },	   /* IDEO. MARK (reach) */
+       {	 { 0x32CB, "punct"  }, { 0,0,0 }  },	   /* IDEO.TEL.SYM.DEC12 */
+       {	 { 0x32FE, "punct"  }, { 0,0,0 }  },	   /* MARU KATAKANA wo	 */
+       {	 { 0x33FE, "punct"  }, { 0,0,0 }  },	   /* CJK IDEO.TEL.31th	 */
+-#endif
+       {	 { 0x9007, "punct"  }, { 0,1,0 }  },	   /* CJK UNI.IDEO.NON-J */
+       {	 { 0x9FA4, "punct"  }, { 0,1,0 }  },	   /* CJK UNI.IDEO.NON-J */
+       {	 { 0x9FA5, "punct"  }, { 0,1,0 }  },	   /* CJK UNI.IDEO.	 */
+@@ -643,13 +531,8 @@ TST_ISWCTYPE tst_iswctype_loc [] = {
+       {	 { 0xFF66, "jkata"  }, { 0,0,0 }  },	   /* HALF KATA WO	 */
+       {	 { 0xFF6F, "jkata"  }, { 0,0,0 }  },	   /* HALF KATA tu	 */
+       {	 { 0x4E05, "jkanji" }, { 0,0,0 }  },	   /* CJK UNI.IDEO.	 */
+-#ifdef SHOJI_IS_RIGHT
+-      /* <NO_WAIVER>: */
+-      {	 { 0x4E06, "jkanji" }, { 0,1,1 }  },	   /* CJK UNI.IDEO.NON-J */
+-#else
+       /* XXX This character does not exist in EUC-JP.  */
+       {	 { 0x4E06, "jkanji" }, { 0,1,0 }  },	   /* CJK UNI.IDEO.NON-J */
+-#endif
+       {	 { 0x4E07, "jkanji" }, { 0,0,0 }  },	   /* CJK UNI.IDEO.	 */
+       { .is_last = 1 }
+     }
+diff --git a/localedata/tests-mbwc/dat_iswgraph.c b/localedata/tests-mbwc/dat_iswgraph.c
+index f94cec709ad84b74..b9ce0f62e853d66c 100644
+--- a/localedata/tests-mbwc/dat_iswgraph.c
++++ b/localedata/tests-mbwc/dat_iswgraph.c
+@@ -16,11 +16,7 @@ TST_ISW_LOC (GRAPH, graph) = {
+       {
+ 	{  { 0x0080 }, { 0,1,0 }  },	/* CTRL	    */
+ 	{  { 0x009F }, { 0,1,0 }  },	/* CTRL	    */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0x00A0 }, { 0,1,0 }  },	/* NB SPACE */
+-#else
+ 	{  { 0x00A0 }, { 0,0,0 }  },	/* NB SPACE */
+-#endif
+ 	{  { 0x00A1 }, { 0,0,0 }  },	/* UD !	    */
+ 	{  { 0x00B0 }, { 0,0,0 }  },	/* Degree   */
+ 	{  { 0x00B1 }, { 0,0,0 }  },	/* +- sign  */
+@@ -75,73 +71,35 @@ TST_ISW_LOC (GRAPH, graph) = {
+   {   TST_ISW_REC( eucJP, graph )
+       {
+ 	{  { 0x3000 }, { 0,1,0 }  },	/* IDEO. SPACE	      */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0x3020 }, { 0,1,0 }  },	/* POSTAL MARK FACE   */
+-	{  { 0x3029 }, { 0,1,0 }  },	/* Hangzhou NUM9      */
+-	{  { 0x302F }, { 0,1,0 }  },	/* Diacritics(Hangul) */
+-	{  { 0x3037 }, { 0,1,0 }  },	/* Separator Symbol   */
+-	{  { 0x303F }, { 0,1,0 }  },	/* IDEO. HALF SPACE   */
+-#else
+ 	{  { 0x3020 }, { 0,0,0 }  },	/* POSTAL MARK FACE   */
+ 	{  { 0x3029 }, { 0,0,0 }  },	/* Hangzhou NUM9      */
+ 	{  { 0x302F }, { 0,0,0 }  },	/* Diacritics(Hangul) */
+ 	{  { 0x3037 }, { 0,0,0 }  },	/* Separator Symbol   */
+ 	{  { 0x303F }, { 0,0,0 }  },	/* IDEO. HALF SPACE   */
+-#endif
+ 	{  { 0x3041 }, { 0,0,0 }  },	/* HIRAGANA a	      */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0x3094 }, { 0,1,0 }  },	/* HIRAGANA u"	      */  /* non jis */
+-	{  { 0x3099 }, { 0,1,0 }  },	/* SOUND MARK	      */
+-#else
+ 	{  { 0x3094 }, { 0,0,0 }  },	/* HIRAGANA u"	      */  /* non jis */
+ 	{  { 0x3099 }, { 0,0,0 }  },	/* SOUND MARK	      */
+-#endif
+ 	{  { 0x309E }, { 0,0,0 }  },	/* ITERATION MARK     */  /* 10 */
+ 	{  { 0x30A1 }, { 0,0,0 }  },	/* KATAKANA a	      */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0x30FA }, { 0,1,0 }  },	/* KATAKANA wo"	      */  /* non jis */
+-#else
+ 	{  { 0x30FA }, { 0,0,0 }  },	/* KATAKANA wo"	      */  /* non jis */
+-#endif
+ 	{  { 0x30FB }, { 0,0,0 }  },	/* KATAKANA MID.DOT   */
+ 	{  { 0x30FE }, { 0,0,0 }  },	/* KATAKANA ITERATION */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0x3191 }, { 0,1,0 }  },	/* KANBUN REV.MARK    */
+-	{  { 0x3243 }, { 0,1,0 }  },	/* IDEO. MARK (reach) */
+-	{  { 0x32CB }, { 0,1,0 }  },	/* IDEO.TEL.SYM.DEC12 */
+-	{  { 0x32FE }, { 0,1,0 }  },	/* MARU KATAKANA wo   */
+-	{  { 0x33FE }, { 0,1,0 }  },	/* CJK IDEO.TEL.31th  */
+-#else
+ 	{  { 0x3191 }, { 0,0,0 }  },	/* KANBUN REV.MARK    */
+ 	{  { 0x3243 }, { 0,0,0 }  },	/* IDEO. MARK (reach) */
+ 	{  { 0x32CB }, { 0,0,0 }  },	/* IDEO.TEL.SYM.DEC12 */
+ 	{  { 0x32FE }, { 0,0,0 }  },	/* MARU KATAKANA wo   */
+ 	{  { 0x33FE }, { 0,0,0 }  },	/* CJK IDEO.TEL.31th  */
+-#endif
+ 	{  { 0x4E00 }, { 0,0,0 }  },	/* CJK UNI.IDEO.      */  /* 20 */
+ 	{  { 0x4E05 }, { 0,0,0 }  },	/* CJK UNI.IDEO.      */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0x4E06 }, { 0,1,0 }  },	/* CJK UNI.IDEO.NON-J */
+-#else
+ 	{  { 0x4E06 }, { 0,0,0 }  },	/* CJK UNI.IDEO.NON-J */
+-#endif
+ 	{  { 0x4E07 }, { 0,0,0 }  },	/* CJK UNI.IDEO.      */
+ 	{  { 0x4FFF }, { 0,0,0 }  },	/* CJK UNI.IDEO.      */
+ 	{  { 0x9000 }, { 0,0,0 }  },	/* CJK UNI.IDEO.      */
+ 	{  { 0x9006 }, { 0,0,0 }  },	/* CJK UNI.IDEO.      */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0x9007 }, { 0,1,0 }  },	/* CJK UNI.IDEO.NON-J */
+-	{  { 0x9FA4 }, { 0,1,0 }  },	/* CJK UNI.IDEO.NON-J */
+-#else
+ 	{  { 0x9007 }, { 0,0,0 }  },	/* CJK UNI.IDEO.NON-J */
+ 	{  { 0x9FA4 }, { 0,0,0 }  },	/* CJK UNI.IDEO.NON-J */
+-#endif
+ 	{  { 0x9FA5 }, { 0,0,0 }  },	/* CJK UNI.IDEO.      */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0xFE4F }, { 0,1,0 }  },	/* CJK Wave Low Line  */  /* 30 */
+-#else
+ 	{  { 0xFE4F }, { 0,0,0 }  },	/* CJK Wave Low Line  */  /* 30 */
+-#endif
+ 	{  { 0xFF0F }, { 0,0,0 }  },	/* FULL SLASH	      */
+ 	{  { 0xFF19 }, { 0,0,0 }  },	/* FULL 9	      */
+ 	{  { 0xFF20 }, { 0,0,0 }  },	/* FULL @	      */
+diff --git a/localedata/tests-mbwc/dat_iswprint.c b/localedata/tests-mbwc/dat_iswprint.c
+index 57acc7184ccfb00d..5b672e1ad36605dc 100644
+--- a/localedata/tests-mbwc/dat_iswprint.c
++++ b/localedata/tests-mbwc/dat_iswprint.c
+@@ -16,11 +16,7 @@ TST_ISW_LOC (PRINT, print) = {
+       {
+ 	{  { 0x0080 }, { 0,1,0 }  },  /* CTRL     */
+ 	{  { 0x009F }, { 0,1,0 }  },  /* CTRL     */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0x00A0 }, { 0,1,0 }  },  /* NB SPACE */
+-#else
+ 	{  { 0x00A0 }, { 0,0,0 }  },  /* NB SPACE */
+-#endif
+ 	{  { 0x00A1 }, { 0,0,0 }  },  /* UD !     */
+ 	{  { 0x00B0 }, { 0,0,0 }  },  /* Degree   */
+ 	{  { 0x00B1 }, { 0,0,0 }  },  /* +- sign  */
+@@ -78,73 +74,35 @@ TST_ISW_LOC (PRINT, print) = {
+   {   TST_ISW_REC (eucJP, print)
+       {
+ 	{  { 0x3000 }, { 0,0,0 }  },  /* IDEO. SPACE        */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0x3020 }, { 0,1,0 }  },  /* POSTAL MARK FACE   */
+-	{  { 0x3029 }, { 0,1,0 }  },  /* Hangzhou NUM9      */
+-	{  { 0x302F }, { 0,1,0 }  },  /* Diacritics(Hangul) */
+-	{  { 0x3037 }, { 0,1,0 }  },  /* Separator Symbol   */
+-	{  { 0x303F }, { 0,1,0 }  },  /* IDEO. HALF SPACE   */
+-#else
+ 	{  { 0x3020 }, { 0,0,0 }  },  /* POSTAL MARK FACE   */
+ 	{  { 0x3029 }, { 0,0,0 }  },  /* Hangzhou NUM9      */
+ 	{  { 0x302F }, { 0,0,0 }  },  /* Diacritics(Hangul) */
+ 	{  { 0x3037 }, { 0,0,0 }  },  /* Separator Symbol   */
+ 	{  { 0x303F }, { 0,0,0 }  },  /* IDEO. HALF SPACE   */
+-#endif
+ 	{  { 0x3041 }, { 0,0,0 }  },  /* HIRAGANA a         */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0x3094 }, { 0,1,0 }  },  /* HIRAGANA u"        */  /* non jis */
+-	{  { 0x3099 }, { 0,1,0 }  },  /* SOUND MARK         */
+-#else
+ 	{  { 0x3094 }, { 0,0,0 }  },  /* HIRAGANA u"        */  /* non jis */
+ 	{  { 0x3099 }, { 0,0,0 }  },  /* SOUND MARK         */
+-#endif
+ 	{  { 0x309E }, { 0,0,0 }  },  /* ITERATION MARK     */  /* 10 */
+ 	{  { 0x30A1 }, { 0,0,0 }  },  /* KATAKANA a         */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0x30FA }, { 0,1,0 }  },  /* KATAKANA wo"       */  /* non jis */
+-#else
+ 	{  { 0x30FA }, { 0,0,0 }  },  /* KATAKANA wo"       */  /* non jis */
+-#endif
+ 	{  { 0x30FB }, { 0,0,0 }  },  /* KATAKANA MID.DOT   */
+ 	{  { 0x30FE }, { 0,0,0 }  },  /* KATAKANA ITERATION */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0x3191 }, { 0,1,0 }  },  /* KANBUN REV.MARK    */
+-	{  { 0x3243 }, { 0,1,0 }  },  /* IDEO. MARK (reach) */
+-	{  { 0x32CB }, { 0,1,0 }  },  /* IDEO.TEL.SYM.DEC12 */
+-	{  { 0x32FE }, { 0,1,0 }  },  /* MARU KATAKANA wo   */
+-	{  { 0x33FE }, { 0,1,0 }  },  /* CJK IDEO.TEL.31th  */
+-#else
+ 	{  { 0x3191 }, { 0,0,0 }  },  /* KANBUN REV.MARK    */
+ 	{  { 0x3243 }, { 0,0,0 }  },  /* IDEO. MARK (reach) */
+ 	{  { 0x32CB }, { 0,0,0 }  },  /* IDEO.TEL.SYM.DEC12 */
+ 	{  { 0x32FE }, { 0,0,0 }  },  /* MARU KATAKANA wo   */
+ 	{  { 0x33FE }, { 0,0,0 }  },  /* CJK IDEO.TEL.31th  */
+-#endif
+ 	{  { 0x4E00 }, { 0,0,0 }  },  /* CJK UNI.IDEO.      */  /* 20 */
+ 	{  { 0x4E05 }, { 0,0,0 }  },  /* CJK UNI.IDEO.      */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0x4E06 }, { 0,1,0 }  },  /* CJK UNI.IDEO.NON-J */
+-#else
+ 	{  { 0x4E06 }, { 0,0,0 }  },  /* CJK UNI.IDEO.NON-J */
+-#endif
+ 	{  { 0x4E07 }, { 0,0,0 }  },  /* CJK UNI.IDEO.      */
+ 	{  { 0x4FFF }, { 0,0,0 }  },  /* CJK UNI.IDEO.      */
+ 	{  { 0x9000 }, { 0,0,0 }  },  /* CJK UNI.IDEO.      */
+ 	{  { 0x9006 }, { 0,0,0 }  },  /* CJK UNI.IDEO.      */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0x9007 }, { 0,1,0 }  },  /* CJK UNI.IDEO.NON-J */
+-	{  { 0x9FA4 }, { 0,1,0 }  },  /* CJK UNI.IDEO.NON-J */
+-#else
+ 	{  { 0x9007 }, { 0,0,0 }  },  /* CJK UNI.IDEO.NON-J */
+ 	{  { 0x9FA4 }, { 0,0,0 }  },  /* CJK UNI.IDEO.NON-J */
+-#endif
+ 	{  { 0x9FA5 }, { 0,0,0 }  },  /* CJK UNI.IDEO.      */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0xFE4F }, { 0,1,0 }  },  /* WAVE LOW LINE      */  /* 30 */
+-#else
+ 	{  { 0xFE4F }, { 0,0,0 }  },  /* WAVE LOW LINE      */  /* 30 */
+-#endif
+ 	{  { 0xFF0F }, { 0,0,0 }  },  /* FULL SLASH         */
+ 	{  { 0xFF19 }, { 0,0,0 }  },  /* FULL 9             */
+ 	{  { 0xFF20 }, { 0,0,0 }  },  /* FULL @             */
+diff --git a/localedata/tests-mbwc/dat_iswpunct.c b/localedata/tests-mbwc/dat_iswpunct.c
+index b31e1bd50f1117f0..c51e740547a12564 100644
+--- a/localedata/tests-mbwc/dat_iswpunct.c
++++ b/localedata/tests-mbwc/dat_iswpunct.c
+@@ -16,11 +16,7 @@ TST_ISW_LOC (PUNCT, punct) = {
+       {
+ 	{  { 0x0080 }, { 0,1,0 }  },	/* CTRL	    */
+ 	{  { 0x009F }, { 0,1,0 }  },	/* CTRL	    */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0x00A0 }, { 0,1,0 }  },	/* NB SPACE */
+-#else
+ 	{  { 0x00A0 }, { 0,0,0 }  },	/* NB SPACE */
+-#endif
+ 	{  { 0x00A1 }, { 0,0,0 }  },	/* UD !	    */
+ 	{  { 0x00B0 }, { 0,0,0 }  },	/* Degree   */
+ 	{  { 0x00B1 }, { 0,0,0 }  },	/* +- sign  */
+@@ -75,46 +71,24 @@ TST_ISW_LOC (PUNCT, punct) = {
+   {   TST_ISW_REC (eucJP, punct)
+       {
+ 	{  { 0x3000 }, { 0,1,0 }  },	/* IDEO. SPACE	      */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0x3020 }, { 0,1,0 }  },	/* POSTAL MARK FACE   */
+-#else
+ 	{  { 0x3020 }, { 0,0,0 }  },	/* POSTAL MARK FACE   */
+-#endif
+ 	{  { 0x3029 }, { 0,1,0 }  },	/* Hangzhou NUM9      */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0x302F }, { 0,1,0 }  },	/* Diacritics(Hangul) */
+-	{  { 0x3037 }, { 0,1,0 }  },	/* Separator Symbol   */
+-	{  { 0x303F }, { 0,1,0 }  },	/* IDEO. HALF SPACE   */
+-#else
+ 	{  { 0x302F }, { 0,0,0 }  },	/* Diacritics(Hangul) */
+ 	{  { 0x3037 }, { 0,0,0 }  },	/* Separator Symbol   */
+ 	{  { 0x303F }, { 0,0,0 }  },	/* IDEO. HALF SPACE   */
+-#endif
+ 	{  { 0x3041 }, { 0,1,0 }  },	/* HIRAGANA a	      */
+ 	{  { 0x3094 }, { 0,1,0 }  },	/* HIRAGANA u"	      */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0x3099 }, { 0,1,0 }  },	/* SOUND MARK	      */
+-#else
+ 	{  { 0x3099 }, { 0,0,0 }  },	/* SOUND MARK	      */
+-#endif
+ 	{  { 0x309E }, { 0,1,0 }  },	/* ITERATION MARK     */  /* 10 */
+ 	{  { 0x30A1 }, { 0,1,0 }  },	/* KATAKANA a	      */
+ 	{  { 0x30FA }, { 0,1,0 }  },	/* KATAKANA wo"	      */
+ 	{  { 0x30FB }, { 0,0,0 }  },	/* KATAKANA MID.DOT   */
+ 	{  { 0x30FE }, { 0,1,0 }  },	/* KATAKANA ITERATION */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0x3191 }, { 0,1,0 }  },	/* KANBUN REV.MARK    */
+-	{  { 0x3243 }, { 0,1,0 }  },	/* IDEO. MARK (reach) */
+-	{  { 0x32CB }, { 0,1,0 }  },	/* IDEO.TEL.SYM.DEC12 */
+-	{  { 0x32FE }, { 0,1,0 }  },	/* MARU KATAKANA wo   */
+-	{  { 0x33FE }, { 0,1,0 }  },	/* CJK IDEO.TEL.31th  */
+-#else
+ 	{  { 0x3191 }, { 0,0,0 }  },	/* KANBUN REV.MARK    */
+ 	{  { 0x3243 }, { 0,0,0 }  },	/* IDEO. MARK (reach) */
+ 	{  { 0x32CB }, { 0,0,0 }  },	/* IDEO.TEL.SYM.DEC12 */
+ 	{  { 0x32FE }, { 0,0,0 }  },	/* MARU KATAKANA wo   */
+ 	{  { 0x33FE }, { 0,0,0 }  },	/* CJK IDEO.TEL.31th  */
+-#endif
+ 	{  { 0x4E00 }, { 0,1,0 }  },	/* CJK UNI.IDEO.      */  /* 20 */
+ 	{  { 0x4E05 }, { 0,1,0 }  },	/* CJK UNI.IDEO.      */
+ 	{  { 0x4E06 }, { 0,1,0 }  },	/* CJK UNI.IDEO.NON-J */
+@@ -125,11 +99,7 @@ TST_ISW_LOC (PUNCT, punct) = {
+ 	{  { 0x9007 }, { 0,1,0 }  },	/* CJK UNI.IDEO.NON-J */
+ 	{  { 0x9FA4 }, { 0,1,0 }  },	/* CJK UNI.IDEO.NON-J */
+ 	{  { 0x9FA5 }, { 0,1,0 }  },	/* CJK UNI.IDEO.      */
+-#ifdef SHOJI_IS_RIGHT
+-	{  { 0xFE4F }, { 0,1,0 }  },	/* CJK UNI.IDEO.      */  /* 30 */
+-#else
+ 	{  { 0xFE4F }, { 0,0,0 }  },	/* CJK UNI.IDEO.      */  /* 30 */
+-#endif
+ 	{  { 0xFF0F }, { 0,0,0 }  },	/* FULL SLASH	      */
+ 	{  { 0xFF19 }, { 0,1,0 }  },	/* FULL 9	      */
+ 	{  { 0xFF20 }, { 0,0,0 }  },	/* FULL @	      */
+diff --git a/localedata/tests-mbwc/dat_mbrlen.c b/localedata/tests-mbwc/dat_mbrlen.c
+index a21ab762a8bf5a35..61e84231158a245d 100644
+--- a/localedata/tests-mbwc/dat_mbrlen.c
++++ b/localedata/tests-mbwc/dat_mbrlen.c
+@@ -123,13 +123,9 @@ TST_MBRLEN tst_mbrlen_loc [] = {
+ 	{
+ 	  {
+ 	    { 0,		1, -2,		     },
+-#ifdef SHOJI_IS_RIGHT
+-	    { 0,		1, +2,		     },
+-#else
+ 	    /* XXX ISO C explicitly says that the return value does not
+ 	       XXX reflect the bytes contained in the state.  */
+ 	    { 0,		1, +1,		     },
+-#endif
+ 	    { 0,		1,  2,		     },
+ 	  }
+ 	}
+diff --git a/localedata/tests-mbwc/dat_mbstowcs.c b/localedata/tests-mbwc/dat_mbstowcs.c
+index cabe4cdf2408d475..32aa8065c3e85002 100644
+--- a/localedata/tests-mbwc/dat_mbstowcs.c
++++ b/localedata/tests-mbwc/dat_mbstowcs.c
+@@ -107,19 +107,9 @@ TST_MBSTOWCS tst_mbstowcs_loc [] = {
+       { /*----------------- #02 -----------------*/
+ 	{
+ 	  {
+-#ifdef SHOJI_IS_RIGHT
+-	    /* XXX I really don't understand the first and third line.
+-	       the result of the first line is the same as the first
+-	       in the last test (i.e., returns 6).  Also, the third
+-	       test will simply convert everything.  */
+-	    { 1,  1, "\244\242\244\244\244\246ABC",      7 },
+-	    { 1,  1, "",                                 1 },
+-	    { 0,  1, "\244\242\244\244\244\246ABC",      7 },
+-#else
+ 	    { 1,  1, "\244\242\244\244\244\246ABC",      4 },
+ 	    { 1,  1, "",                                 1 },
+ 	    { 0,  1, "\244\242\244\244\244\246ABC",      0 },
+-#endif
+ 	  }
+ 	},
+ 	{
+diff --git a/localedata/tests-mbwc/dat_mbtowc.c b/localedata/tests-mbwc/dat_mbtowc.c
+index 95edb684d321eec2..ee2bdcb74b4202e0 100644
+--- a/localedata/tests-mbwc/dat_mbtowc.c
++++ b/localedata/tests-mbwc/dat_mbtowc.c
+@@ -248,12 +248,8 @@ TST_MBTOWC tst_mbtowc_loc [] = {
+ 	},
+ 	{
+ 	  {
+-#ifdef SHOJI_IS_RIGHT
+-	    { EILSEQ,  1, -1,   0x0000 },
+-#else
+ 	    /* XXX EILSEQ was introduced in ISO C99.  */
+ 	    { 0,	  1, -1,   0x0000 },
+-#endif
+ 	    { 0,       1,  2,   0x3042 },
+ 	    { 0,       1,  2,   0x3042 },
+ 	  }
+@@ -270,11 +266,7 @@ TST_MBTOWC tst_mbtowc_loc [] = {
+ 	{
+ 	  {
+ 	    { 0,  1, +1,   0x007F },
+-#ifdef SHOJI_IS_RIGHT
+-	    { EILSEQ,  1, -1,   0x0000 },
+-#else
+ 	    { 0,  1, -1,   0x0000 },
+-#endif
+ 	    { 0,  1, +1,   0x0081 },
+ 	  }
+ 	}
+@@ -290,12 +282,8 @@ TST_MBTOWC tst_mbtowc_loc [] = {
+ 	{
+ 	  {
+ 	    { 0,  1,  0,   0x0000 },
+-#ifdef SHOJI_IS_RIGHT
+-	    { EILSEQ,  1, -1,   0x0000 },
+-#else
+ 	    /* XXX EILSEQ was introduced in ISO C99.  */
+ 	    { 0,       1, -1,   0x0000 },
+-#endif
+ 	    { 0,  1,  2,   0x0000 },
+ 	  }
+ 	}
+diff --git a/localedata/tests-mbwc/dat_strcoll.c b/localedata/tests-mbwc/dat_strcoll.c
+index 168425ce0640eb74..b729ae9e894a3757 100644
+--- a/localedata/tests-mbwc/dat_strcoll.c
++++ b/localedata/tests-mbwc/dat_strcoll.c
+@@ -72,22 +72,14 @@ TST_STRCOLL tst_strcoll_loc [] = {
+       {
+ 	/* <WAIVER> */
+ 	/*input.*/ { "B",	"a"		      },  /* #4 */
+-#ifdef SHOJI_IS_RIGHT
+-	/*expect*/ { 0,0,-1,			      },
+-#else
+ 		   /* XXX We are not testing the C locale.  */
+ 	/*expect*/ { 0,0,+1,			      },
+-#endif
+       },
+       {
+ 	/* <WAIVER> */
+ 	/*input.*/ { "a",	"B"		      },  /* #5 */
+-#ifdef SHOJI_IS_RIGHT
+-	/*expect*/ { 0,0,+1,			      },
+-#else
+ 		   /* XXX We are not testing the C locale.  */
+ 	/*expect*/ { 0,0,-1,			      },
+-#endif
+       },
+       { /*input.*/ { "b",	"A"		      },  /* #6 */
+ 	/*expect*/ { 0,0,+1,			      },
+diff --git a/localedata/tests-mbwc/dat_swscanf.c b/localedata/tests-mbwc/dat_swscanf.c
+index 08fd2d508c6ebc6d..7f6583222a744533 100644
+--- a/localedata/tests-mbwc/dat_swscanf.c
++++ b/localedata/tests-mbwc/dat_swscanf.c
+@@ -61,13 +61,8 @@ TST_SWSCANF tst_swscanf_loc [] =
+       },
+ 	  L"1%d:2%d:3%d:4%d:5%d:6%d:7%d:8%d:9%d", 0
+       },
+-#ifdef SHOJI_IS_RIGHT
+-	{ 1,EINVAL,1,WEOF,
+-	  0,0,0,0,"", { 0x0000 },
+-#else
+ 	{ 0,1,0,
+ 	  0,0,0,0,"", { 0x0000 },
+-#endif
+ 	},
+       },
+       /*---------------------------------------------------*/
+@@ -155,22 +150,6 @@ TST_SWSCANF tst_swscanf_loc [] =
+ 	  0, 1, 3.9, 'a', "cd", { 0x0000 }
+ 	},
+       },
+-#ifdef SHOJI_IS_RIGHT
+-      /* XXX This test does not make sense.  The format string is
+-	 L"\x1\x2\x25\x53" and it is supposed to match the words
+-	 0x30A2, 0x30A4, 0x0001.  */
+-      /*------------------------ 04 -----------------------*/
+-      /* <NO_WAIVER> x 2 */
+-      { { {
+-	0x30A2, 0x30A4, 0x0001, 0x0000
+-      },
+-	  { 0x0001,0x0002,0x0025,0x0053,0x0000 }, 'S'
+-      },
+-	{ EILSEQ,1,EOF,
+-	  0,0,0,0,"", { 0x0000 }
+-	},
+-      },
+-#endif
+       /*---------------------------------------------------*/
+       { .is_last = 1}	/* Last element.  */
+     }
+diff --git a/localedata/tests-mbwc/dat_towctrans.c b/localedata/tests-mbwc/dat_towctrans.c
+index e7fe1dc028cf4885..9c01701ec60e5bbd 100644
+--- a/localedata/tests-mbwc/dat_towctrans.c
++++ b/localedata/tests-mbwc/dat_towctrans.c
+@@ -38,11 +38,7 @@ TST_TOWCTRANS tst_towctrans_loc [] = {
+   {
+     { Ttowctrans, TST_LOC_C },
+     {
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x0010, "xxxxxxx" }, { EINVAL,1,0x0010 }  },
+-#else
+       {	 { 0x0010, "xxxxxxx" }, { 0,     1,0x0010 }  },
+-#endif
+       {	 { 0x007F, "tolower" }, { 0,	   1,0x007F }  },
+       {	 { 0x0061, "toupper" }, { 0,	   1,0x0041 }  },
+       {	 { 0x0041, "tolower" }, { 0,	   1,0x0061 }  },
+@@ -52,11 +48,7 @@ TST_TOWCTRANS tst_towctrans_loc [] = {
+   {
+     { Ttowctrans, TST_LOC_de },
+     {
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x0010, "tojkata" }, { EINVAL,1,0x0010 }  },
+-#else
+       {	 { 0x0010, "tojkata" }, { 0,     1,0x0010 }  },
+-#endif
+       {	 { 0x0080, "tolower" }, { 0,	   1,0x0080 }  },
+       {	 { 0x00EC, "toupper" }, { 0,	   1,0x00CC }  },
+       {	 { 0x00CC, "tolower" }, { 0,	   1,0x00EC }  },
+@@ -66,11 +58,7 @@ TST_TOWCTRANS tst_towctrans_loc [] = {
+   {
+     { Ttowctrans, TST_LOC_enUS },
+     {
+-#ifdef SHOJI_IS_RIGHT
+-      {	 { 0x0010, "xxxxxxx" }, { EINVAL,1,0x0010 }  },
+-#else
+       {	 { 0x0010, "xxxxxxx" }, { 0,     1,0x0010 }  },
+-#endif
+       {	 { 0x007F, "tolower" }, { 0,	   1,0x007F }  },
+       {	 { 0x0061, "toupper" }, { 0,	   1,0x0041 }  },
+       {	 { 0x0041, "tolower" }, { 0,	   1,0x0061 }  },
+diff --git a/localedata/tests-mbwc/dat_wcscoll.c b/localedata/tests-mbwc/dat_wcscoll.c
+index cfc3f85c90eff8b4..5e2fbbe65ca0c789 100644
+--- a/localedata/tests-mbwc/dat_wcscoll.c
++++ b/localedata/tests-mbwc/dat_wcscoll.c
+@@ -104,18 +104,6 @@ TST_WCSCOLL tst_wcscoll_loc [] = {
+ 			 { 0x0041,0x0041,0x0043,0x0000 }, },  /* #4 */
+ 	    /*expect*/ { 0,0,0, -1,			  },
+ 	  },
+-#ifdef SHOJI_IS_RIGHT
+-	  /* <WAIVER> */ /* assume ascii */
+-	  { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
+-			 { 0x0041,0x0061,0x0043,0x0000 }, },  /* #5 */
+-	    /*expect*/ { 0,0,0, -1,			  },
+-	  },
+-	  /* <WAIVER> */ /* assume ascii */
+-	  { /*input.*/ { { 0x0041,0x0061,0x0043,0x0000 },
+-			 { 0x0041,0x0042,0x0043,0x0000 }, },  /* #6 */
+-	    /*expect*/ { 0,0,0, +1,			  },
+-	  },
+-#else
+ 	  /* XXX Correct order is lowercase before uppercase.  */
+ 	  { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },
+ 			 { 0x0041,0x0061,0x0043,0x0000 }, },  /* #5 */
+@@ -125,7 +113,6 @@ TST_WCSCOLL tst_wcscoll_loc [] = {
+ 			 { 0x0041,0x0042,0x0043,0x0000 }, },  /* #6 */
+ 	    /*expect*/ { 0,0,0, -1,			  },
+ 	  },
+-#endif
+ 	  { /*input.*/ { { 0x0041,0x0042,0x0000	       },
+ 			 { 0x0041,0x0042,0x0049,0x0000 }, },  /* #7 */
+ 	    /*expect*/ { 0,0,0, -1,			  },
+@@ -134,16 +121,6 @@ TST_WCSCOLL tst_wcscoll_loc [] = {
+ 			 { 0x0041,0x0042,0x0000	       }, },  /* #8 */
+ 	    /*expect*/ { 0,0,0, +1,			  },
+ 	  },
+-#ifdef SHOJI_IS_RIGHT
+-	  { /*input.*/ { { 0x0041,0x0092,0x0049,0x0000 },
+-			 { 0x0041,0x008E,0x0049,0x0000 }, },  /* #9 */
+-	    /*expect*/ { 0,0,0, +1,		       },
+-	  },
+-	  { /*input.*/ { { 0x0041,0x008E,0x0049,0x0000 },
+-			 { 0x0041,0x0092,0x0049,0x0000 }, },  /* #10 */
+-	    /*expect*/ { 0,0,0, -1,		       },
+-	  },
+-#else
+ 	  /* Do not assume position of character out of range.  */
+ 	  { /*input.*/ { { 0x0041,0x0092,0x0049,0x0000 },
+ 			 { 0x0041,0x008E,0x0049,0x0000 }, },  /* #9 */
+@@ -153,7 +130,6 @@ TST_WCSCOLL tst_wcscoll_loc [] = {
+ 			 { 0x0041,0x0092,0x0049,0x0000 }, },  /* #10 */
+ 	    /*expect*/ { 0,0,0, 0,		       },
+ 	  },
+-#endif
+ 	  { .is_last = 1 }
+ 	}
+     },
+diff --git a/localedata/tests-mbwc/dat_wcswidth.c b/localedata/tests-mbwc/dat_wcswidth.c
+index 68054e797fbef427..c030b3ba2e1e699a 100644
+--- a/localedata/tests-mbwc/dat_wcswidth.c
++++ b/localedata/tests-mbwc/dat_wcswidth.c
+@@ -56,11 +56,7 @@ TST_WCSWIDTH tst_wcswidth_loc [] = {
+ 	/*expect*/ { 0,1,-1				   },
+       },
+       { /*input.*/ { { 0x00C1,0x00A0,0x0000 },		 2 },  /* 16 */
+-#ifdef SHOJI_IS_RIGHT
+-	/*expect*/ { 0,1,-1				   },
+-#else
+ 	/*expect*/ { 0,1,2				   },
+-#endif
+       },
+       { /*input.*/ { { 0x00C1,0x00A1,0x0000 },		 2 },  /* 17 */
+ 	/*expect*/ { 0,1,2				   },
+@@ -89,21 +85,12 @@ TST_WCSWIDTH tst_wcswidth_loc [] = {
+       { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 },	 2 },  /* 03 */
+ 	/*expect*/ { 0,1,2				   },
+       },
+-#ifdef SHOJI_IS_RIGHT
+-      { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 },	 3 },  /* 04 */
+-	/*expect*/ { 0,1,3				   },
+-      },
+-      { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 },	 4 },  /* 05 */
+-	/*expect*/ { 0,1,3				   },
+-      },
+-#else
+       { /*input.*/ { { 0x0041,0x0042,0x00C3,0x0000 },	 3 },  /* 04 */
+ 	/*expect*/ { 0,1,-1				   },
+       },
+       { /*input.*/ { { 0x0041,0x0042,0x0043,0x0000 },	 4 },  /* 05 */
+ 	/*expect*/ { 0,1,3				   },
+       },
+-#endif
+       { /*input.*/ { { 0x0000 },			 1 },  /* 06 */
+ 	/*expect*/ { 0,1,0				   },
+       },
+@@ -137,21 +124,12 @@ TST_WCSWIDTH tst_wcswidth_loc [] = {
+       { /*input.*/ { { 0x0041,0x00A0,0x0000 },		 2 },  /* 16 */
+ 	/*expect*/ { 0,1,-1				   },
+       },
+-#ifdef SHOJI_IS_RIGHT
+-      { /*input.*/ { { 0x0041,0x00A1,0x0000 },		 2 },  /* 17 */
+-	/*expect*/ { 0,1,2				   },
+-      },
+-      { /*input.*/ { { 0x0041,0x00FF,0x0000 },		 2 },  /* 18 */
+-	/*expect*/ { 0,1,2				   },
+-      },
+-#else
+       { /*input.*/ { { 0x0041,0x007E,0x0000 },		 2 },  /* 17 */
+ 	/*expect*/ { 0,1,2				   },
+       },
+       { /*input.*/ { { 0x0041,0x0020,0x0000 },		 2 },  /* 18 */
+ 	/*expect*/ { 0,1,2				   },
+       },
+-#endif
+       { /*input.*/ { { 0x0041,0x3042,0x0000 },		 2 },  /* 19 */
+ 	/*expect*/ { 0,1,-1				   },
+       },
+diff --git a/localedata/tests-mbwc/dat_wctob.c b/localedata/tests-mbwc/dat_wctob.c
+index 4247e694f01fb9a1..5c1f0fb2761e5fe7 100644
+--- a/localedata/tests-mbwc/dat_wctob.c
++++ b/localedata/tests-mbwc/dat_wctob.c
+@@ -25,14 +25,9 @@ TST_WCTOB tst_wctob_loc [] = {
+ 	  {  { WEOF   }, { 0,	 1, EOF	       }  },
+ 	  {  { 0x0020 }, { 0,	 1, 0x20       }  },
+ 	  {  { 0x0061 }, { 0,	 1, 0x61       }  },
+-#ifdef SHOJI_IS_RIGHT
+-	  {  { 0x0080 }, { 0,	 1, 0x80       }  },
+-	  {  { 0x00C4 }, { 0,	 1, 0xC4       }  },
+-#else
+ 	  /* XXX These are no valid characters.  */
+ 	  {  { 0x0080 }, { 0,	 1, EOF        }  },
+ 	  {  { 0x00C4 }, { 0,	 1, EOF        }  },
+-#endif
+ 	  {  { 0x30C4 }, { 0,	 1, EOF	       }  },
+ 	  {  .is_last = 1 } /* Last element.  */
+ 	}
+diff --git a/localedata/tests-mbwc/dat_wcwidth.c b/localedata/tests-mbwc/dat_wcwidth.c
+index e50d963830239e95..ec667813e274886c 100644
+--- a/localedata/tests-mbwc/dat_wcwidth.c
++++ b/localedata/tests-mbwc/dat_wcwidth.c
+@@ -28,16 +28,9 @@ TST_WCWIDTH tst_wcwidth_loc [] = {
+ 	{ /*inp*/ { 0x00C1		     },	 /* #06 */
+ 	  /*exp*/ { 0,	1,1,	     },
+ 	},
+-#ifdef SHOJI_IS_RIGHT
+-	/* <WAIVER> */	/* CHECK : wint_t */
+-	{ /*inp*/ { 0x3041		     },	 /* #07 */
+-	  /*exp*/ { 0,	1,0,	     },
+-	},
+-#else
+ 	{ /*inp*/ { 0x3041		     },	 /* #07 */
+ 	  /*exp*/ { 0,	1,EOF,	     },
+ 	},
+-#endif
+ 	{ .is_last = 1 }
+       }
+     },
+@@ -83,17 +76,10 @@ TST_WCWIDTH tst_wcwidth_loc [] = {
+ 	{ /*inp*/ { 0x0080		     },	 /* #04 */
+ 	  /*exp*/ { 0,	1,-1,	     },
+ 	},
+-#ifdef SHOJI_IS_RIGHT
+-	/* <NO_WAIVER> */
+-	{ /*inp*/ { 0x00A1		     },	 /* #05 */
+-	  /*exp*/ { 0,	1,0,	     },
+-	},
+-#else
+ 	/* XXX U00A1 is a valid character in EUC-JP.  */
+ 	{ /*inp*/ { 0x00A1		     },	 /* #05 */
+ 	  /*exp*/ { 0,	1,2,	     },
+ 	},
+-#endif
+ 	/* jisx0212 */
+ 	{ /*inp*/ { 0x00C1		     },	 /* #06 */
+ 	  /*exp*/ { 0,	1,2,	     },
+diff --git a/localedata/tests-mbwc/tst_towctrans.c b/localedata/tests-mbwc/tst_towctrans.c
+index 1d874dc0f7176205..47bab2cf6553d4f0 100644
+--- a/localedata/tests-mbwc/tst_towctrans.c
++++ b/localedata/tests-mbwc/tst_towctrans.c
+@@ -14,9 +14,6 @@ tst_towctrans (FILE *fp, int debug_flg)
+   TST_DECL_VARS (wint_t);
+   wint_t wc;
+   const char *ts;
+-#if SHOJI_IS_RIGHT
+-  int dummy=0;
+-#endif
+   wctrans_t wto;
+ 
+   TST_DO_TEST (towctrans)
+@@ -28,25 +25,7 @@ tst_towctrans (FILE *fp, int debug_flg)
+ 	  wc = TST_INPUT (towctrans).wc;
+ 	  ts = TST_INPUT (towctrans).ts;
+ 
+-#if SHOJI_IS_RIGHT
+-	  if ((wto = wctrans (ts)) == (wctrans_t) 0)
+-	    {
+-#if 0
+-	      result (fp, C_IGNORED, S_TOWCTRANS, locale, rec+1, seq_num+1, 3,
+-		      "Skip this data because the wctrans object is not invalid.");
+-	      warn_count++;
+-	      continue;
+-#else
+-	      wto = &dummy;	/* not good ... */
+-#endif
+-	      if (debug_flg)
+-		{
+-		  fprintf (stdout, "towctrans() ------ wctrans() returnd 0.\n");
+-		}
+-	    }
+-#else
+ 	  wto = wctrans (ts);
+-#endif
+ 
+ 	  TST_CLEAR_ERRNO;
+ 	  ret = towctrans (wc, wto);
diff --git a/SOURCES/glibc-rh1505492-undef-36.patch b/SOURCES/glibc-rh1505492-undef-36.patch
new file mode 100644
index 0000000..24a0aff
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-36.patch
@@ -0,0 +1,18 @@
+commit 80b5c505889ac4747aab54614d2bce18efa511ea
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Tue Jul 8 16:19:55 2014 +0530
+
+    Fix Wundef warning for ELF_MACHINE_NO_REL on i386
+
+diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h
+index 67d23228782d39c9..c52f17ae713fdebb 100644
+--- a/sysdeps/i386/dl-machine.h
++++ b/sysdeps/i386/dl-machine.h
+@@ -295,6 +295,7 @@ elf_machine_plt_value (struct link_map *map, const Elf32_Rel *reloc,
+ /* The i386 never uses Elf32_Rela relocations for the dynamic linker.
+    Prelinked libraries may use Elf32_Rela though.  */
+ #define ELF_MACHINE_NO_RELA defined RTLD_BOOTSTRAP
++#define ELF_MACHINE_NO_REL 0
+ 
+ #ifdef RESOLVE_MAP
+ 
diff --git a/SOURCES/glibc-rh1505492-undef-37.patch b/SOURCES/glibc-rh1505492-undef-37.patch
new file mode 100644
index 0000000..7d31bf0
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-37.patch
@@ -0,0 +1,22 @@
+commit 6680738a18fc219de2e4f7be1d53e4fb251f1166
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Wed Jul 9 10:36:23 2014 +0530
+
+    Fix Wundef warning for __cplusplus
+    
+    All current uses of the __cplusplus macro only check if it is defined
+    or not.  Fix this #if to use $ifdef like the rest of the code.
+
+diff --git a/sysdeps/generic/unwind-pe.h b/sysdeps/generic/unwind-pe.h
+index 3985fec998a2083d..b190cb34a102f5f9 100644
+--- a/sysdeps/generic/unwind-pe.h
++++ b/sysdeps/generic/unwind-pe.h
+@@ -22,7 +22,7 @@
+    than duplicating code, however.  */
+ 
+ /* If using C++, references to abort have to be qualified with std::.  */
+-#if __cplusplus
++#ifdef __cplusplus
+ #define __gxx_abort std::abort
+ #else
+ #define __gxx_abort abort
diff --git a/SOURCES/glibc-rh1505492-undef-38.patch b/SOURCES/glibc-rh1505492-undef-38.patch
new file mode 100644
index 0000000..552cffb
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-38.patch
@@ -0,0 +1,86 @@
+commit 82374e65d745c3c94258ad81c38f8af34b9f9113
+Author: Will Newton <will.newton@linaro.org>
+Date:   Mon Jul 7 15:14:26 2014 +0100
+
+    Fix -Wundef warnings for SHARED
+    
+    The definition of SHARED is tested with #ifdef pretty much everywhere
+    apart from these few places. The tlsdesc.c code seems to be copy and
+    pasted to a few architectures and there is one instance in the hppa
+    startup code.
+    
+    ChangeLog:
+    
+    2014-07-09  Will Newton  <will.newton@linaro.org>
+    
+            * sysdeps/aarch64/tlsdesc.c (_dl_unmap): Test SHARED with #ifdef.
+            * sysdeps/arm/tlsdesc.c (_dl_unmap): Likewise.
+            * sysdeps/i386/tlsdesc.c (_dl_unmap): Likewise.
+            * sysdeps/x86_64/tlsdesc.c (_dl_unmap): Likewise.
+            * sysdeps/hppa/start.S (_start): Likewise.
+
+diff --git a/sysdeps/aarch64/tlsdesc.c b/sysdeps/aarch64/tlsdesc.c
+index 606ce797c66ce84d..1543064999964dd9 100644
+--- a/sysdeps/aarch64/tlsdesc.c
++++ b/sysdeps/aarch64/tlsdesc.c
+@@ -147,7 +147,7 @@ _dl_unmap (struct link_map *map)
+   __munmap ((void *) (map)->l_map_start,
+ 	    (map)->l_map_end - (map)->l_map_start);
+ 
+-#if SHARED
++#ifdef SHARED
+   if (map->l_mach.tlsdesc_table)
+     htab_delete (map->l_mach.tlsdesc_table);
+ #endif
+diff --git a/sysdeps/arm/tlsdesc.c b/sysdeps/arm/tlsdesc.c
+index c5e69a8755147361..dd8d340d740876d9 100644
+--- a/sysdeps/arm/tlsdesc.c
++++ b/sysdeps/arm/tlsdesc.c
+@@ -149,7 +149,7 @@ _dl_unmap (struct link_map *map)
+   __munmap ((void *) (map)->l_map_start,
+ 	    (map)->l_map_end - (map)->l_map_start);
+ 
+-#if SHARED
++#ifdef SHARED
+   /* _dl_unmap is only called for dlopen()ed libraries, for which
+      calling free() is safe, or before we've completed the initial
+      relocation, in which case calling free() is probably pointless,
+diff --git a/sysdeps/hppa/start.S b/sysdeps/hppa/start.S
+index 97196bd52df23391..08b13ee4f4a0937c 100644
+--- a/sysdeps/hppa/start.S
++++ b/sysdeps/hppa/start.S
+@@ -93,7 +93,7 @@ _start:
+ 	stw	%r23, -56(%sp)
+ 	/* Need to setup 1, 4, 5, and 7th arguments */
+ 
+-#if SHARED
++#ifdef SHARED
+ 	/* load main (1st argument) */
+ 	addil	LT'.Lpmain, %r19
+ 	ldw	RT'.Lpmain(%r1), %r26
+diff --git a/sysdeps/i386/tlsdesc.c b/sysdeps/i386/tlsdesc.c
+index 2d55c63cdb976d79..cfde1a684850e04c 100644
+--- a/sysdeps/i386/tlsdesc.c
++++ b/sysdeps/i386/tlsdesc.c
+@@ -261,7 +261,7 @@ _dl_unmap (struct link_map *map)
+   __munmap ((void *) (map)->l_map_start,
+ 	    (map)->l_map_end - (map)->l_map_start);
+ 
+-#if SHARED
++#ifdef SHARED
+   if (map->l_mach.tlsdesc_table)
+     htab_delete (map->l_mach.tlsdesc_table);
+ #endif
+diff --git a/sysdeps/x86_64/tlsdesc.c b/sysdeps/x86_64/tlsdesc.c
+index 19d55a7c91992439..8def142e87c298be 100644
+--- a/sysdeps/x86_64/tlsdesc.c
++++ b/sysdeps/x86_64/tlsdesc.c
+@@ -139,7 +139,7 @@ _dl_unmap (struct link_map *map)
+   __munmap ((void *) (map)->l_map_start,
+ 	    (map)->l_map_end - (map)->l_map_start);
+ 
+-#if SHARED
++#ifdef SHARED
+   /* _dl_unmap is only called for dlopen()ed libraries, for which
+      calling free() is safe, or before we've completed the initial
+      relocation, in which case calling free() is probably pointless,
diff --git a/SOURCES/glibc-rh1505492-undef-39.patch b/SOURCES/glibc-rh1505492-undef-39.patch
new file mode 100644
index 0000000..2eef5a3
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-39.patch
@@ -0,0 +1,27 @@
+commit c3c7c3604fdf934d7a8ec70d79915cd8c8984ad1
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Thu Jul 10 14:18:13 2014 +0530
+
+    Fix -Wundef warning for HAVE_OBSTACK
+    
+    Remove the HAVE_OBSTACK macro check and include obstack check in
+    include path order since we don't have a copy of obstack.h in the
+    current directory.
+
+diff --git a/locale/programs/simple-hash.c b/locale/programs/simple-hash.c
+index bb3076612da90ca1..30d3247d5ce98374 100644
+--- a/locale/programs/simple-hash.c
++++ b/locale/programs/simple-hash.c
+@@ -26,11 +26,7 @@
+ #include <string.h>
+ #include <sys/types.h>
+ 
+-#if HAVE_OBSTACK
+-# include <obstack.h>
+-#else
+-# include "obstack.h"
+-#endif
++#include <obstack.h>
+ 
+ #ifdef HAVE_VALUES_H
+ # include <values.h>
diff --git a/SOURCES/glibc-rh1505492-undef-4.patch b/SOURCES/glibc-rh1505492-undef-4.patch
new file mode 100644
index 0000000..3dd2e6a
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-4.patch
@@ -0,0 +1,1208 @@
+commit 8e254d8e0d0820716e0ccf5f2b89c4fd1325f051
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Fri Jun 7 14:56:03 2013 +0000
+
+    Remove trailing whitespace from localedata.
+
+diff --git a/localedata/charmaps/BIG5 b/localedata/charmaps/BIG5
+index 1a0a66fc4be52d32..50f5f16cd22cb287 100644
+--- a/localedata/charmaps/BIG5
++++ b/localedata/charmaps/BIG5
+@@ -16,7 +16,7 @@
+ %     Aprhic Tech. CO., LTD. Big5 <==> Unicode mapping table.
+ %
+ % Irrevsible mapping Big5 characters (using %IRREVERSIBLE% notation):
+-%     /xa2/xcc, /xa2/xce, /xf9/xe9, /xf9/xea, /xf9/xeb, 
++%     /xa2/xcc, /xa2/xce, /xf9/xe9, /xf9/xea, /xf9/xeb,
+ %     /xf9/xf9, /xf9/xfa, /xf9/xfb, /xf9/xfc, /xf9/xfd
+ %
+ % alias BIG5-CP950
+diff --git a/localedata/charmaps/IBM866NAV b/localedata/charmaps/IBM866NAV
+index add2bf2ee76d0dfe..38cf436534537a19 100644
+--- a/localedata/charmaps/IBM866NAV
++++ b/localedata/charmaps/IBM866NAV
+@@ -3,10 +3,10 @@
+ <escape_char> /
+ % Obtained by editing IBM866 charmap  (Alexander Vidybida)
+ %
+-% Corresponds to Ukrainian texts produced with "keyrus" screen and 
++% Corresponds to Ukrainian texts produced with "keyrus" screen and
+ % keyboard driver under DOS
+ %
+-% Corresponds to file `cp866nav.def' from the 
++% Corresponds to file `cp866nav.def' from the
+ % standard LaTeX `Cyrillic Bundle' except of codes /xfd, /xfe
+ 
+ % alias CP866NAV
+diff --git a/localedata/charmaps/ISIRI-3342 b/localedata/charmaps/ISIRI-3342
+index 3dd589f63a2727f3..6165cc8c527d285f 100644
+--- a/localedata/charmaps/ISIRI-3342
++++ b/localedata/charmaps/ISIRI-3342
+@@ -5,7 +5,7 @@
+ % source: Iranian standard ISIRI 3342 (1993)
+ % author: Pablo Saratxaga, and Roozbeh Pournader
+ % email: pablo@mandrakesoft.com, roozbeh@sina.sharif.ac.ir
+- 
++
+ % I think the mnemonic for upper space (0xA0) should be different from
+ % lower space (0x20). Because the semantics are different, although they
+ % are mapped to a single Unicode character. This is specially important
+@@ -23,7 +23,7 @@
+ % </>f>, <kf>, <yf>, <)/>+>, <<(+>, <!)+>, <(!+>, <<<+>, </>/>+>, <*+>,
+ % <!!+>, and <////+>. Also, all character sequences
+ % <NU>..<US>, <SP>, <DT> have counter-parts <NU+>..<US+>, <SP+>, <DT+>
+- 
++
+ CHARMAP
+ <U0000>     /x00         NULL (NUL)
+ <U0001>     /x01         START OF HEADING (SOH)
+diff --git a/localedata/charmaps/ISO_8859-1,GL b/localedata/charmaps/ISO_8859-1,GL
+index 62d13d9c8782d8e0..99737202fd53b498 100644
+--- a/localedata/charmaps/ISO_8859-1,GL
++++ b/localedata/charmaps/ISO_8859-1,GL
+@@ -4,7 +4,7 @@
+ # to "A", the "LATIN SMALL LETTER A" has been shorted to "a", and the
+ # names are, wherever possible, shortened to approx 20 characters. I
+ # would like comments on this charmap...
+-# 
++#
+ # -Greger Leijonhufvud-
+ # INTERACTIVE Systems, UK
+ # greger@{iuk,ism}.isc.com
+diff --git a/localedata/locales/ber_DZ b/localedata/locales/ber_DZ
+index 4256a513cf1ab7f7..be334c5bf66492fa 100644
+--- a/localedata/locales/ber_DZ
++++ b/localedata/locales/ber_DZ
+@@ -2,7 +2,7 @@ comment_char %
+ escape_char  /
+ %
+ % Amazigh Language Locale for Algeria (latin)
+-% Source: 
++% Source:
+ % Contact: Pablo Saratxaga
+ % Email: <pablo@mandrakesoft.com>
+ % Language: ber
+@@ -47,8 +47,8 @@ END LC_IDENTIFICATION
+ % TODO: fix LC_TIME, LC_MONETARY, LC_MESSAGES, LC_NAME, LC_ADDRESS
+ 
+ LC_COLLATE
+-% The latin amazigh alphabet is:       
+-% <a>, <eps>, <b>, <b*>, <c>, <c<>, <d>, <d-.>, <e>, <f>, <g>, <g*>, <g(>, 
++% The latin amazigh alphabet is:
++% <a>, <eps>, <b>, <b*>, <c>, <c<>, <d>, <d-.>, <e>, <f>, <g>, <g*>, <g(>,
+ % <h>, <h-.>, <i>, <j>, <k>, <k*>, <l>, <m>, <n>, <q>, <q*>, <gam>, <gam*>,
+ % <r>, <r-.>, <s>, <s-.>, <t>, <t-.>, <u>, <w>, <x>, <x*>, <y>, <z>, <z-.>
+ %
+@@ -291,7 +291,7 @@ country_num 12
+ %country_isbn ""
+ %country_car ""
+ lang_name "<U0074><U0061><U006D><U0061><U007A><U0069><U0067><U0068><U0074>"
+-%lang_ab 
++%lang_ab
+ lang_term "<U0062><U0065><U0072>"
+ lang_lib "<U0062><U0065><U0072>"
+ 
+diff --git a/localedata/locales/bn_BD b/localedata/locales/bn_BD
+index 8b46636b25714c68..9dbc4057820a014a 100644
+--- a/localedata/locales/bn_BD
++++ b/localedata/locales/bn_BD
+@@ -53,7 +53,7 @@ map to_inpunct; /
+   (<U0036>,<U09EC>); /
+   (<U0037>,<U09ED>); /
+   (<U0038>,<U09EE>); /
+-  (<U0039>,<U09EF>); 
++  (<U0039>,<U09EF>);
+ 
+ translit_start
+ include "translit_combining";""
+diff --git a/localedata/locales/crh_UA b/localedata/locales/crh_UA
+index a6fceeae0ad5d086..d543b9b14e0c0429 100644
+--- a/localedata/locales/crh_UA
++++ b/localedata/locales/crh_UA
+@@ -11,7 +11,7 @@ escape_char  /
+ % Date:		2009-08-16
+ % Application:	general
+ % Users:	general
+-% Charset:	UTF-8 
++% Charset:	UTF-8
+ % Distribution and use is free, also
+ % for commercial purposes.
+ 
+@@ -48,7 +48,7 @@ END LC_IDENTIFICATION
+ 
+ LC_COLLATE
+ % The new Crimean Tatar alphabet (Latin) is:
+-% <a>, <b>, <c>, <c,>, <d>, <e>, <f>, <g>, <g(>, <h>, 
++% <a>, <b>, <c>, <c,>, <d>, <e>, <f>, <g>, <g(>, <h>,
+ % <i> (dotless i), <i.> (i with dot), <j>, <k>, <l>, <m>, <n>, <n?>, <o>,
+ % <o:>, <p>, <q>, <r>, <s>, <s,>, <t>, <u>, <u:>, <v>, <y>, <z>
+ 
+diff --git a/localedata/locales/en_NG b/localedata/locales/en_NG
+index 31bb4fb2d833d824..a418eb95709c5de4 100644
+--- a/localedata/locales/en_NG
++++ b/localedata/locales/en_NG
+@@ -104,7 +104,7 @@ day         "<U0053><U0075><U006E><U0064><U0061><U0079>";/
+             "<U0046><U0072><U0069><U0064><U0061><U0079>";/
+             "<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
+ 
+-% abmon - The abbreviations for the months 
++% abmon - The abbreviations for the months
+ % - Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
+ abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
+             "<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
+@@ -113,7 +113,7 @@ abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
+             "<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
+             "<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
+ 
+-% mon - The full names of the months - 
++% mon - The full names of the months -
+ % - January, February, March, April, May, June
+ %   July, August, September, October, November, December
+ mon         "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
+diff --git a/localedata/locales/es_US b/localedata/locales/es_US
+index 71e8ac803c65ffbc..c90f88c04e4ac9a7 100644
+--- a/localedata/locales/es_US
++++ b/localedata/locales/es_US
+@@ -86,7 +86,7 @@ reorder-after <U0063>
+ <c-H>	<ch>;<BAS>;<MIN-CAP>;IGNORE
+ <c-h>	<ch>;<BAS>;<MIN>;IGNORE
+ 
+-reorder-after <U0043> 
++reorder-after <U0043>
+ <C-H>	<ch>;<BAS>;<CAP>;IGNORE
+ <C-h>	<ch>;<BAS>;<CAP-MIN>;IGNORE
+ 
+@@ -97,7 +97,7 @@ reorder-after <U006C>
+ <l-L>	<ll>;<BAS>;<MIN-CAP>;IGNORE
+ <l-l>	<ll>;<BAS>;<MIN>;IGNORE
+ 
+-reorder-after <U004C> 
++reorder-after <U004C>
+ <L-L>	<ll>;<BAS>;<CAP>;IGNORE
+ <L-l>	<ll>;<BAS>;<CAP-MIN>;IGNORE
+ 
+diff --git a/localedata/locales/fil_PH b/localedata/locales/fil_PH
+index ad3ea8eab2e644b8..c1a6b1026c978ac3 100644
+--- a/localedata/locales/fil_PH
++++ b/localedata/locales/fil_PH
+@@ -2,8 +2,8 @@ comment_char %
+ escape_char  /
+ %
+ % Filipino Language Locale for Philippines
+-% Source: 
+-% Contact: Rene Torres, Pablo Saratxaga 
++% Source:
++% Contact: Rene Torres, Pablo Saratxaga
+ % Email: <rgtorre@rocketmail.com>, <pablo@mandrakesoft.com>
+ % Language: fil
+ % Territory: PH
+@@ -73,7 +73,7 @@ reorder-after <U006E>
+ <U00F1> <ntilde>;<TIL>;<MIN>;IGNORE
+ <n-g>	<n-g-ph>;<PCT>;<MIN>;IGNORE
+ <n-G>	<n-g-ph>;<PCT>;<MIN-CAP>;IGNORE
+-reorder-after <U004E> 
++reorder-after <U004E>
+ <U00D1> <ntilde>;<TIL>;<CAP>;IGNORE
+ <N-G>	<n-g-ph>;<PCT>;<CAP>;IGNORE
+ <N-g>	<n-g-ph>;<PCT>;<CAP-MIN>;IGNORE
+diff --git a/localedata/locales/fy_DE b/localedata/locales/fy_DE
+index 588f3e268e31fdb7..df894f21cf158157 100644
+--- a/localedata/locales/fy_DE
++++ b/localedata/locales/fy_DE
+@@ -3,7 +3,7 @@ escape_char  /
+ % charset "ISO_8859-1:1987"
+ % Distribution and use is
+ 
+-LC_IDENTIFICATION 
++LC_IDENTIFICATION
+ title "Sater Frisian and North Frisian Locale for Germany"
+ source "information from Kenneth Christiansen"
+ address ""
+diff --git a/localedata/locales/gu_IN b/localedata/locales/gu_IN
+index e908e70e3edb0200..49cd1e2b7f07b531 100644
+--- a/localedata/locales/gu_IN
++++ b/localedata/locales/gu_IN
+@@ -50,7 +50,7 @@ map to_inpunct; /
+   (<U0036>,<U0AEC>); /
+   (<U0037>,<U0AED>); /
+   (<U0038>,<U0AEE>); /
+-  (<U0039>,<U0AEF>); 
++  (<U0039>,<U0AEF>);
+ 
+ translit_start
+ include "translit_combining";""
+diff --git a/localedata/locales/ha_NG b/localedata/locales/ha_NG
+index d74d324dcafe96d5..8c431cc8e9c6a7c2 100644
+--- a/localedata/locales/ha_NG
++++ b/localedata/locales/ha_NG
+@@ -2,7 +2,7 @@ escape_char /
+ comment_char %
+ %
+ % Hausa language locale for Nigeria
+-% Source: 
++% Source:
+ % Contact: Pablo Saratxaga
+ % Email: pablo@mandriva.com
+ % Language: ha
+@@ -72,7 +72,7 @@ collating-element <'1y> from "<U0027><U0079>"
+ collating-element <'1Y> from "<U0027><U0059>"
+ collating-element <'2y> from "<U2019><U0079>"
+ collating-element <'2Y> from "<U2019><U0059>"
+-collating-symbol  <rtilde> 
++collating-symbol  <rtilde>
+ collating-element <r?>  from "<U0072><U0303>"
+ collating-element <R?>  from "<U0052><U0303>"
+ collating-symbol  <bcurl>
+@@ -81,10 +81,10 @@ collating-symbol  <kcurl>
+ 
+ collating-symbol <CAP-MIN>
+ collating-symbol <MIN-CAP>
+- 
++
+ reorder-after <MIN>
+ <MIN-CAP>
+- 
++
+ reorder-after <CAP>
+ <CAP-MIN>
+ 
+@@ -165,7 +165,7 @@ END LC_NUMERIC
+ LC_TELEPHONE
+ copy "en_NG"
+ END LC_TELEPHONE
+- 
++
+ LC_TIME
+ % Lah, Lit, Tal, Lar, Alh, Jum, Asa
+ % maybe "Lhd" "Lrb" => "Lh"/"Lb" on 2letter tables?
+@@ -188,7 +188,7 @@ abmon       "<U004A><U0061><U006E>";"<U0046><U0061><U0062>";/
+             "<U0059><U0075><U006C>";"<U0041><U0067><U0075>";/
+             "<U0053><U0061><U0074>";"<U004F><U006B><U0074>";/
+             "<U004E><U0075><U0077>";"<U0044><U0069><U0073>"
+-% Janairu, Fabrairu, Maris, Afrilu, Mayu, Yuni, 
++% Janairu, Fabrairu, Maris, Afrilu, Mayu, Yuni,
+ % Yuli, Agusta, Satumba, Oktoba, Nuwamba, Disamba
+ mon         "<U004A><U0061><U006E><U0061><U0069><U0072><U0075>";/
+             "<U0046><U0061><U0062><U0072><U0061><U0069><U0072><U0075>";/
+diff --git a/localedata/locales/hi_IN b/localedata/locales/hi_IN
+index bdba3e2b354ea92a..0ff10a115827d452 100644
+--- a/localedata/locales/hi_IN
++++ b/localedata/locales/hi_IN
+@@ -49,7 +49,7 @@ map to_inpunct; /
+   (<U0036>,<U096C>); /
+   (<U0037>,<U096D>); /
+   (<U0038>,<U096E>); /
+-  (<U0039>,<U096F>); 
++  (<U0039>,<U096F>);
+ 
+ translit_start
+ include "translit_combining";""
+diff --git a/localedata/locales/ig_NG b/localedata/locales/ig_NG
+index c808828b4a1098eb..47ad2124f5393c0e 100644
+--- a/localedata/locales/ig_NG
++++ b/localedata/locales/ig_NG
+@@ -2,7 +2,7 @@ escape_char /
+ comment_char %
+ %
+ % Igbo language locale for Nigeria
+-% Source: 
++% Source:
+ % Contact: Pablo Saratxaga
+ % Email: pablo@mandriva.com
+ % Language: ig
+@@ -50,7 +50,7 @@ LC_COLLATE
+ % aacute, eacute, iacute, oacute, uacute, nacute
+ % agrave, egrave, igrave, ograve, ugrave, ngrave
+ %
+-% order: a, b, [c], ch, d, e, f, g, gb, gh, gw, h, i, i., j, k, kp, kw, 
++% order: a, b, [c], ch, d, e, f, g, gb, gh, gw, h, i, i., j, k, kp, kw,
+ % l, m, n, n., nw, ny, o, o., p, [q], r, s, sh, t, u, u., v, w, [x], y, z
+ 
+ copy "iso14651_t1"
+@@ -169,10 +169,10 @@ collating-element <u`> from "<U0075><U0300>"
+ 
+ collating-symbol <CAP-MIN>
+ collating-symbol <MIN-CAP>
+- 
++
+ reorder-after <MIN>
+ <MIN-CAP>
+- 
++
+ reorder-after <CAP>
+ <CAP-MIN>
+ 
+@@ -363,7 +363,7 @@ END LC_NUMERIC
+ LC_TELEPHONE
+ copy "en_NG"
+ END LC_TELEPHONE
+- 
++
+ LC_TIME
+ % sọn, mọn, tuz, wen, tọs, fra, sat
+ abday       "<U0073><U1ECD><U006E>";"<U006D><U1ECD><U006E>";/
+@@ -385,7 +385,7 @@ abmon       "<U006A><U0065><U006E>";"<U0066><U0065><U0062>";/
+             "<U006A><U0075><U006C>";"<U1ECD><U0067><U1ECD>";/
+             "<U0073><U0065><U0070>";"<U1ECD><U006B><U0074>";/
+             "<U006E><U1ECD><U0076>";"<U0064><U0069><U0073>"
+-% jenụwarị, febụrụwarị, maachị, epreel, mee, juun, 
++% jenụwarị, febụrụwarị, maachị, epreel, mee, juun,
+ % julaị, ọgọstụ, septemba, ọktoba, nọvemba, disemba
+ mon         "<U006A><U0065><U006E><U1EE5><U0077><U0061><U0072><U1ECB>";/
+             "<U0066><U0065><U0062><U1EE5><U0072><U1EE5><U0077><U0061><U0072><U1ECB>";/
+diff --git a/localedata/locales/ik_CA b/localedata/locales/ik_CA
+index 1b967423ed174948..7648f24122bbfc7c 100644
+--- a/localedata/locales/ik_CA
++++ b/localedata/locales/ik_CA
+@@ -2,7 +2,7 @@ escape_char /
+ comment_char %
+ %
+ % Inupiaq language locale for Canada
+-% Source: 
++% Source:
+ % Contact: Pablo Saratxaga
+ % Email: pablo@mandriva.com
+ % Language: ik
+@@ -43,7 +43,7 @@ END LC_IDENTIFICATION
+ 
+ LC_COLLATE
+ 
+-% Inupiaq uses the following extra letters: 
++% Inupiaq uses the following extra letters:
+ % gdotabove, ldotbelow, lbarred, lbarreddotbelow (not in unicode,
+ % has to be composed as lbarred+composingdotbelow), eng, ntilde
+ %
+@@ -82,10 +82,10 @@ collating-symbol  <eng>
+ 
+ collating-symbol <CAP-MIN>
+ collating-symbol <MIN-CAP>
+- 
++
+ reorder-after <MIN>
+ <MIN-CAP>
+- 
++
+ reorder-after <CAP>
+ <CAP-MIN>
+ 
+@@ -142,7 +142,7 @@ reorder-after <U0053>
+ <S-R>   <s-r-ik>;<PCT>;<CAP>;IGNORE
+ <S-r>   <s-r-ik>;<PCT>;<CAP-MIN>;IGNORE
+ 
+- 
++
+ reorder-end
+ 
+ END LC_COLLATE
+@@ -162,7 +162,7 @@ END LC_NUMERIC
+ LC_TELEPHONE
+ copy "en_CA"
+ END LC_TELEPHONE
+- 
++
+ LC_TIME
+ abday       "<U004D><U0069><U006E>";"<U0053><U0061><U0076>";/
+             "<U0049><U006C><U0061>";"<U0051><U0069><U0074>";/
+diff --git a/localedata/locales/iu_CA b/localedata/locales/iu_CA
+index cb91f3ddfdae6926..e46910c06db99fcb 100644
+--- a/localedata/locales/iu_CA
++++ b/localedata/locales/iu_CA
+@@ -37,7 +37,7 @@ postal_fmt    "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
+ <U004E><U0025><U0054><U0020><U0025><U007A><U0025>/
+ <U004E><U0025><U0063><U0025><U004E>"
+ % FIXME country_name "Canada" in inuktitut ?
+-% FIXME country_post "CA" for Canada ? 
++% FIXME country_post "CA" for Canada ?
+ country_ab2 "<U0043><U0041>"
+ country_ab3 "<U0043><U0041><U004E>"
+ country_num 124
+diff --git a/localedata/locales/kn_IN b/localedata/locales/kn_IN
+index 16e39748ef0b227e..f57031fc418d5f34 100644
+--- a/localedata/locales/kn_IN
++++ b/localedata/locales/kn_IN
+@@ -51,7 +51,7 @@ map to_inpunct; /
+   (<U0036>,<U0CEC>); /
+   (<U0037>,<U0CED>); /
+   (<U0038>,<U0CEE>); /
+-  (<U0039>,<U0CEF>); 
++  (<U0039>,<U0CEF>);
+ 
+ translit_start
+ include  "translit_combining";""
+diff --git a/localedata/locales/ks_IN@devanagari b/localedata/locales/ks_IN@devanagari
+index 888686042966077e..e1f629024f90bb49 100644
+--- a/localedata/locales/ks_IN@devanagari
++++ b/localedata/locales/ks_IN@devanagari
+@@ -1,7 +1,7 @@
+ comment_char    %
+ escape_char     /
+ % Kashmiri(devanagari) language locale for India.
+-% Contributed by Rakesh Pandit <rakesh.pandit@gmail.com> and 
++% Contributed by Rakesh Pandit <rakesh.pandit@gmail.com> and
+ % Pravin Satpute <psatpute@redhat.com>
+ 
+ LC_IDENTIFICATION
+diff --git a/localedata/locales/li_BE b/localedata/locales/li_BE
+index 7896092a75f0322f..3a13dbbc5ea2d4c5 100644
+--- a/localedata/locales/li_BE
++++ b/localedata/locales/li_BE
+@@ -2,7 +2,7 @@ comment_char %
+ escape_char  /
+ % Distribution and use is
+ 
+-LC_IDENTIFICATION 
++LC_IDENTIFICATION
+ title "Limburgish Language Locale for Belgium"
+ source "information from Kenneth Christiansen"
+ address ""
+diff --git a/localedata/locales/li_NL b/localedata/locales/li_NL
+index d0a710a7a0032249..0588cb85a2773af3 100644
+--- a/localedata/locales/li_NL
++++ b/localedata/locales/li_NL
+@@ -2,7 +2,7 @@ comment_char %
+ escape_char  /
+ % Distribution and use is
+ 
+-LC_IDENTIFICATION 
++LC_IDENTIFICATION
+ title "Limburgish Language Locale for the Netherlands"
+ source "information from Kenneth Christiansen"
+ address ""
+diff --git a/localedata/locales/mg_MG b/localedata/locales/mg_MG
+index 996f2c53e345f606..4f738cae5239f30e 100644
+--- a/localedata/locales/mg_MG
++++ b/localedata/locales/mg_MG
+@@ -154,7 +154,7 @@ tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
+ tel_dom_fmt    "<U0025><U0061><U0020><U0025><U006C>"
+ % 261
+ int_prefix     "<U0032><U0036><U0031>"
+-% 00 
++% 00
+ int_select     "<U0030><U0030>"
+ END LC_TELEPHONE
+ 
+diff --git a/localedata/locales/ml_IN b/localedata/locales/ml_IN
+index deee7ed8f4f77323..564f0de5d6555535 100644
+--- a/localedata/locales/ml_IN
++++ b/localedata/locales/ml_IN
+@@ -48,7 +48,7 @@ map to_inpunct; /
+   (<U0036>,<U0D6C>); /
+   (<U0037>,<U0D6D>); /
+   (<U0038>,<U0D6E>); /
+-  (<U0039>,<U0D6F>); 
++  (<U0039>,<U0D6F>);
+ 
+ translit_start
+ include     "translit_combining";""
+diff --git a/localedata/locales/mr_IN b/localedata/locales/mr_IN
+index dc93845a1a5137c0..7ce9dc58d817964f 100644
+--- a/localedata/locales/mr_IN
++++ b/localedata/locales/mr_IN
+@@ -54,8 +54,8 @@ reorder-after <d_ha>
+ <d_shra>
+ 
+ reorder-after <U0939>
+-<dv_ksha> <d_ksha>;<BAS>;<MIN>;IGNORE 
+-<dv_dnya> <d_dnya>;<BAS>;<MIN>;IGNORE 
++<dv_ksha> <d_ksha>;<BAS>;<MIN>;IGNORE
++<dv_dnya> <d_dnya>;<BAS>;<MIN>;IGNORE
+ <dv_shra> <d_shra>;<BAS>;<MIN>;IGNORE
+ 
+ reorder-end
+diff --git a/localedata/locales/nso_ZA b/localedata/locales/nso_ZA
+index c3351ee8b9fe0b86..5970e52ba6d90a6d 100644
+--- a/localedata/locales/nso_ZA
++++ b/localedata/locales/nso_ZA
+@@ -17,7 +17,7 @@ comment_char  %
+ %      2004-03-30 Dwayne Bailey <dwayne@translate.org.za>
+ %        - Added country_ab2/3, country_num
+ %      2004-02-27: Dwayne Bailey <dwayne@translate.org.za>
+-%        - Correction of lang_name comment	
++%        - Correction of lang_name comment
+ % 0.1 (2004-02-11):
+ %	Initial Northern Sotho locale for South Africa
+ %	by Zuza Software Foundation
+@@ -80,7 +80,7 @@ abday       "<U0053><U006F><U006E>";/
+             "<U004E><U0065>";/
+             "<U0048><U006C><U0061>";/
+             "<U004D><U006F><U006B>"
+- 
++
+ % day - The full names of the week days:
+ % - LaMorena, Mos^upologo, Labobedi, Laboraro, Labone, Labohlano, Mokibelo
+ day         "<U004C><U0061><U004D><U006F><U0072><U0065><U006E><U0061>";/
+@@ -90,8 +90,8 @@ day         "<U004C><U0061><U004D><U006F><U0072><U0065><U006E><U0061>";/
+             "<U004C><U0061><U0062><U006F><U006E><U0065>";/
+             "<U004C><U0061><U0062><U006F><U0068><U006C><U0061><U006E><U006F>";/
+             "<U004D><U006F><U006B><U0069><U0062><U0065><U006C><U006F>"
+- 
+-% abmon - The abbreviations for the months 
++
++% abmon - The abbreviations for the months
+ % - Jan, Feb, Mat, Apr, Mei, Jun, Jul, Ago, Set, Okt, Nof, Dis
+ abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
+             "<U004D><U0061><U0074>";"<U0041><U0070><U0072>";/
+@@ -99,8 +99,8 @@ abmon       "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
+             "<U004A><U0075><U006C>";"<U0041><U0067><U006F>";/
+             "<U0053><U0065><U0074>";"<U004F><U006B><U0074>";/
+             "<U004E><U006F><U0066>";"<U0044><U0069><U0073>"
+- 
+-% mon - The full names of the months - 
++
++% mon - The full names of the months -
+ % - Janaware, Febereware, Mats^he, Aprele, Mei, June
+ %   Julae, Agostose, Setemere, Oktobere, Nofemere, Disemere
+ mon         "<U004A><U0061><U006E><U0061><U0077><U0061><U0072><U0065>";/
+@@ -115,7 +115,7 @@ mon         "<U004A><U0061><U006E><U0061><U0077><U0061><U0072><U0065>";/
+             "<U004F><U006B><U0074><U006F><U0062><U0065><U0072><U0065>";/
+             "<U004E><U006F><U0066><U0065><U006D><U0065><U0072><U0065>";/
+             "<U0044><U0069><U0073><U0065><U006D><U0065><U0072><U0065>"
+- 
++
+ % Abreviated date and time representation to be referenced by the "%c" field descriptor -
+ d_t_fmt     "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ %
+@@ -125,23 +125,23 @@ d_t_fmt     "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U00
+ % "%Y" (year with century as a decimal number),
+ % "%T" (24-hour clock time in format HH:MM:SS),
+ % "%Z" (Time zone name)
+- 
++
+ % Date representation to be referenced by the "%x" field descriptor -
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
+ % "%d/%m/%Y", day/month/year as decimal numbers (01/01/2000).
+- 
++
+ % Time representation to be referenced by the "%X" field descriptor -
+ t_fmt       "<U0025><U0054>"
+ % "%T" (24-hour clock time in format HH:MM:SS)
+- 
++
+ % Define representation of ante meridiem and post meridiem strings -
+ am_pm       "";""
+ % The "" mean 'default to "AM" and "PM".
+- 
++
+ % Define time representation in 12-hour format with "am_pm", to be referenced by the "%r"
+ t_fmt_ampm  ""
+ % The "" means that this format is not supported.
+- 
++
+ % Date representation not described in ISO/IEC 14652. Comes out as -
+ % "%a %b %e %H:%M:%S %Z %Y" which is default "date" command output
+ date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+@@ -156,7 +156,7 @@ date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+ % %S - seconds as a decimal number (00 to 59),
+ % %Z - time-zone name,
+ % %Y - year with century as a decimal number,e.g. 2001.
+- 
++
+ END LC_TIME
+ 
+ LC_MESSAGES
+@@ -194,14 +194,14 @@ name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
+ % "Middle names",
+ % "Empty string, or <Space>",
+ % "Clan names"
+- 
++
+ % FIXME - define all the following name_*
+ % General salutation for any sex
+ % name_gen    ""
+ 
+ % Salutation for unmarried females - ""
+ % name_miss   ""
+- 
++
+ % Salutation for males - ""
+ % name_mr     ""
+ 
+@@ -217,7 +217,7 @@ LC_ADDRESS
+ % Country name in Northern Sotho - "Afrika Borwa"
+ country_name "<U0041><U0066><U0072><U0069><U006B><U0061><U0020>/
+ <U0042><U006F><U0072><U0077><U0061>"
+- 
++
+ % Abbreviated country postal name - "ZA"
+ country_post "<U005A><U0041>"
+ 
+@@ -228,7 +228,7 @@ country_car   "<U005A><U0041>"
+ 
+ % FIXME define the following correctly
+ % country_isbn ""
+- 
++
+ % Language name in Northern Sotho - "Sesotho sa Leboa"
+ lang_name "<U0053><U0065><U0073><U006F><U0074><U0068><U006F><U0020>/
+ <U0073><U0061><U0020><U004C><U0065><U0062><U006F><U0061>"
+@@ -238,7 +238,7 @@ lang_name "<U0053><U0065><U0073><U006F><U0074><U0068><U006F><U0020>/
+ lang_ab   ""
+ lang_term "<U006E><U0073><U006F>"
+ lang_lib  "<U006E><U0073><U006F>"
+- 
++
+ % Representation of postal addresses (minus the addressee's name) in South
+ % Africa. (Ignored for now)
+ postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+diff --git a/localedata/locales/or_IN b/localedata/locales/or_IN
+index d7b253f3f4fb0df6..59b793fa906c2392 100644
+--- a/localedata/locales/or_IN
++++ b/localedata/locales/or_IN
+@@ -50,7 +50,7 @@ map to_inpunct; /
+   (<U0036>,<U0B6C>); /
+   (<U0037>,<U0B6D>); /
+   (<U0038>,<U0B6E>); /
+-  (<U0039>,<U0B6F>); 
++  (<U0039>,<U0B6F>);
+ 
+ translit_start
+ include  "translit_combining";""
+diff --git a/localedata/locales/pa_IN b/localedata/locales/pa_IN
+index 2a2dd1e60e259477..6128253b7e58a032 100644
+--- a/localedata/locales/pa_IN
++++ b/localedata/locales/pa_IN
+@@ -48,7 +48,7 @@ map to_inpunct; /
+   (<U0036>,<U0A6C>); /
+   (<U0037>,<U0A6D>); /
+   (<U0038>,<U0A6E>); /
+-  (<U0039>,<U0A6F>); 
++  (<U0039>,<U0A6F>);
+ 
+ translit_start
+ include     "translit_combining";""
+diff --git a/localedata/locales/ro_RO b/localedata/locales/ro_RO
+index 210d7f81b25b5004..b8953288fe0c2ffb 100644
+--- a/localedata/locales/ro_RO
++++ b/localedata/locales/ro_RO
+@@ -115,9 +115,9 @@ copy "i18n"
+ 
+ %
+ % Transliteration is _currently_ a good idea as most fonts/applications do not
+-% have the correct diacritics for "t comma bellow" (U021A, U021B) and 
++% have the correct diacritics for "t comma bellow" (U021A, U021B) and
+ % "s comma bellow" (U0218, U0219). Thus we currently use and compromise with
+-% "t cedilla" (U0162, U0163) - which, actually, does not belong to any 
++% "t cedilla" (U0162, U0163) - which, actually, does not belong to any
+ % language - and "s cedilla" (U015E, U015F) - which is _not_ correct for
+ % Romanian, but is correct for Turkish.
+ %
+@@ -197,11 +197,11 @@ abday   "<U0044><U0075>";"<U004C><U0075>";"<U004D><U0061>";"<U004D><U0069>";/
+ % Because in 1992 the Romanian Academy stated that within words the
+ % writing of the letter i> (i circumflex - U00EE) should be replaced
+ % by a> (acircumflex - U00E2), we use the post92 writing.
+-% Note: The actual rule is more complex, but the case which applies for 
++% Note: The actual rule is more complex, but the case which applies for
+ % Satruday is covered by the exposed explanation above.
+ %
+ % Day names are not capitalized:
+-% duminic<abreve>, luni, mar<tcomma>i, 
++% duminic<abreve>, luni, mar<tcomma>i,
+ % miercuri, joi, vineri,
+ % s<acircumflex>mb<abreve>t<abreve>
+ %
+@@ -247,7 +247,7 @@ mon     "<U0069><U0061><U006E><U0075><U0061><U0072><U0069><U0065>";/
+         "<U006E><U006F><U0069><U0065><U006D><U0062><U0072><U0069><U0065>";/
+         "<U0064><U0065><U0063><U0065><U006D><U0062><U0072><U0069><U0065>"
+ % Appropriate date and time representation (%c)
+-% Romania uses daylight saving and the names of the time zones are 
++% Romania uses daylight saving and the names of the time zones are
+ % not widely known nor used
+ %	"%a %d %b %Y %T %z"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020>/
+@@ -296,7 +296,7 @@ END LC_MEASUREMENT
+ LC_NAME
+ % Format of a name, taken from the glibc locale for Ukrainian.
+ % %f Family names.
+-% %F Family names in uppercase. 
++% %F Family names in uppercase.
+ % %g First given name.
+ % %G First given initial.
+ % %l First given name with Latin letters.
+@@ -337,23 +337,23 @@ LC_ADDRESS
+ 
+ % %n Person's name, possibly constructed with the LC_NAME
+ %    "name_fmt" keyword. (it appears to be invalid)
+-% %a Care of person, or organization. 
+-% %f Firm name. 
+-% %d Department name. 
+-% %b Building name. 
+-% %s Street or block (eg. Japanese) name. 
+-% %h House number or designation. 
++% %a Care of person, or organization.
++% %f Firm name.
++% %d Department name.
++% %b Building name.
++% %s Street or block (eg. Japanese) name.
++% %h House number or designation.
+ % %N Insert an <end-of-line> if the previous descriptor
+ %    value was not an empty string; otherwise ignore.
+ % %t Insert a <space> if the previous descriptor value
+ %    was not an empty string; otherwise ignore.
+-% %r Room number, door designation. 
+-% %e Floor number. 
+-% %C Country designation, from the <country_post> keyword. 
++% %r Room number, door designation.
++% %e Floor number.
++% %C Country designation, from the <country_post> keyword.
+ % %l Local township within town or city. (it appears to be invalid)
+-% %z Zip number, postal code. 
+-% %T Town, city. 
+-% %S State, province, or prefecture. 
++% %z Zip number, postal code.
++% %T Town, city.
++% %S State, province, or prefecture.
+ % %c Country, as taken from data record.
+ %
+ % FIXME: it appears that %n and %l are not working; correct form is:
+diff --git a/localedata/locales/shs_CA b/localedata/locales/shs_CA
+index 6c1b77f19d44f6db..b3d0bcfba3c881f6 100644
+--- a/localedata/locales/shs_CA
++++ b/localedata/locales/shs_CA
+@@ -4,7 +4,7 @@ comment_char  %
+ % Secwepemctsin (Shuswap) language locale for Canada
+ % sorting according to CAN/CSA-Z243.4.1-1992
+ % Source: Neskie Manuel
+-% Address: 745 Ska-Hiish Dr 
++% Address: 745 Ska-Hiish Dr
+ %          Chase BC V0E 1M3
+ % Contact: Neskie Manuel
+ % Email: neskiem@gmail.com
+diff --git a/localedata/locales/so_ET b/localedata/locales/so_ET
+index ea6336e9b400a8d9..d36848e5b4bbdc72 100644
+--- a/localedata/locales/so_ET
++++ b/localedata/locales/so_ET
+@@ -115,7 +115,7 @@ LC_ADDRESS
+ %
+ postal_fmt    "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
+ <U0025><U0062><U0025><U0065><U0025><U0072>"
+-country_name  "<U0049><U0074><U006F><U006F><U0062><U0069><U0079><U0061>"  
++country_name  "<U0049><U0074><U006F><U006F><U0062><U0069><U0079><U0061>"
+ country_post  "<U0045><U0054><U0048>"
+ country_ab2   "<U0045><U0054>"
+ country_ab3   "<U0045><U0054><U0048>"
+diff --git a/localedata/locales/ta_IN b/localedata/locales/ta_IN
+index 0f04265493561626..ad1d6fa9c599f5d2 100644
+--- a/localedata/locales/ta_IN
++++ b/localedata/locales/ta_IN
+@@ -52,7 +52,7 @@ map to_inpunct; /
+   (<U0036>,<U0BEC>); /
+   (<U0037>,<U0BED>); /
+   (<U0038>,<U0BEE>); /
+-  (<U0039>,<U0BEF>); 
++  (<U0039>,<U0BEF>);
+ 
+ translit_start
+ include  "translit_combining";""
+diff --git a/localedata/locales/te_IN b/localedata/locales/te_IN
+index 2467d0760c2a5c5b..4f14bd313d6d4b97 100644
+--- a/localedata/locales/te_IN
++++ b/localedata/locales/te_IN
+@@ -51,7 +51,7 @@ map to_inpunct; /
+   (<U0036>,<U0C6C>); /
+   (<U0037>,<U0C6D>); /
+   (<U0038>,<U0C6E>); /
+-  (<U0039>,<U0C6F>); 
++  (<U0039>,<U0C6F>);
+ 
+ translit_start
+ include  "translit_combining";""
+diff --git a/localedata/locales/tk_TM b/localedata/locales/tk_TM
+index e39fdb34eca428dc..43059af2941b4c0a 100644
+--- a/localedata/locales/tk_TM
++++ b/localedata/locales/tk_TM
+@@ -90,7 +90,7 @@ include "translit_combining";""
+ <U044A> ""               % hard sign omitted
+ <U044B> "<U0079>"        % yeru -> y
+ <U044C> ""               % soft sign omitted.
+-<U044D> "<U0065>"        % je=  -> e 
++<U044D> "<U0065>"        % je=  -> e
+ <U04D9> "<U00E4>"        % sw=  -> a:
+ <U044E> "<U00FD><U0075>" % ju   -> y'u
+ <U044F> "<U00FD><U0061>" % ja   -> y'a
+@@ -130,7 +130,7 @@ include "translit_combining";""
+ <U042A> ""               % hard sign omitted
+ <U042B> "<U0059>"        % yeru -> y
+ <U042C> ""               % soft sign omitted.
+-<U042D> "<U0045>"        % je=  -> e 
++<U042D> "<U0045>"        % je=  -> e
+ <U04D8> "<U00C4>"        % sw=  -> a:
+ <U042E> "<U00DD><U0075>" % ju   -> y'u
+ <U042F> "<U00DD><U0061>" % ja   -> y'a
+@@ -152,7 +152,7 @@ LC_COLLATE
+ % <a=>, <b=>, <v=>, <g=>, <d=>, <e=>, <io>, <z%>, <z%,=>, <z=>, <i=>,
+ % <j=>, <k=>, <l=>, <m=>, <n=>, <n,=>, <o=>, <o-=>, <p=>, <r=>, <s=>,
+ % <t=>, <u=>, <u'=>, <f=>, <h=>, <c=>, <c%>, <s%>, <='>, <y=>, <%'>,
+-% <je>, <sw=>, <ju>, <ja> 
++% <je>, <sw=>, <ju>, <ja>
+ %
+ copy "iso14651_t1"
+ 
+diff --git a/localedata/locales/tt_RU@iqtelif b/localedata/locales/tt_RU@iqtelif
+index 0564783e4758664b..a043de575eb8cc45 100644
+--- a/localedata/locales/tt_RU@iqtelif
++++ b/localedata/locales/tt_RU@iqtelif
+@@ -6,7 +6,7 @@ escape_char  /
+ % Contact:	Reshat Sabiq
+ % Email:	<tatar.iqtelif.i18n@gmail.com>
+ % Language:	tt@iqtelif
+-% Territory:	RU	
++% Territory:	RU
+ % Revision:	0.1
+ % Date:		2006-10-12
+ % Application:	general
+@@ -47,7 +47,7 @@ END LC_IDENTIFICATION
+ 
+ LC_COLLATE
+ % IQTElif:
+-% <a>, <b>, <c>, <c,>, <d>, <e>, <f>, <g>, <g(>, <h>, 
++% <a>, <b>, <c>, <c,>, <d>, <e>, <f>, <g>, <g(>, <h>,
+ % <i> (dotless i), <i.> (i with dot), <i'>, <j>, <k>, <l>, <m>, <n>, <n?>, <o>,
+ % <o:>, <p>, <q>, <r>, <s>, <s,>, <t>, <u>, <u:>, <v>, <w>, <x>, <y>, <z>
+ 
+diff --git a/localedata/locales/uk_UA b/localedata/locales/uk_UA
+index 3896d27a22d67404..b1df63085c485829 100644
+--- a/localedata/locales/uk_UA
++++ b/localedata/locales/uk_UA
+@@ -5,7 +5,7 @@ escape_char  /
+ % Copyright (C) 2006 Max Kutny <mkutny@gmail.com>
+ %
+ % Ukrainian Language Locale for Ukraine
+-% Source: 
++% Source:
+ % Contact: Volodymyr M. Lisivka
+ % Email: v_lisivka@users.sourceforge.net
+ % Contact: Max Kutny
+@@ -118,7 +118,7 @@ translit_start
+ %  transliteration into English.
+ %
+ % Ukrainian  English  Note  Example
+-% letter     letter 
++% letter     letter
+ %
+ 
+ % <U0410>	<U0410>	-	<U0410><U043B><U0443><U0448><U0442><U0430> - Alushta
+@@ -831,7 +831,7 @@ LC_NUMERIC
+ % 0,001
+ % 0,0001
+ % 0,00001
+-% 
++%
+ %  1
+ % -1
+ %
+@@ -954,7 +954,7 @@ abmon /
+         "<U0432><U0435><U0440>"; %ver  /
+         "<U0436><U043E><U0432>"; %zhov /
+         "<U043B><U0438><U0441>"; %lys  /
+-        "<U0433><U0440><U0443>"  %hru 
++        "<U0433><U0440><U0443>"  %hru
+ 
+ % A list of month names in proper form for calendar, see alt_digits. (%B)
+ mon /
+@@ -969,7 +969,7 @@ mon /
+         "<U0432><U0435><U0440><U0435><U0441><U0435><U043D><U044C>"; %veresen` /
+         "<U0436><U043E><U0432><U0442><U0435><U043D><U044C>";  %zhovten` /
+         "<U043B><U0438><U0441><U0442><U043E><U043F><U0430><U0434>"; %lystopad /
+-        "<U0433><U0440><U0443><U0434><U0435><U043D><U044C>"   %hruden` 
++        "<U0433><U0440><U0443><U0434><U0435><U043D><U044C>"   %hruden`
+ 
+ % Initially alt_digits was supposed to hold alternative symbols for _digits_,
+ % corresponding to %O modified conversion specification.
+@@ -1057,7 +1057,7 @@ timezone "<U0437><U002E><U0447><U002E><U002D><U0030><U0032><U003A><U0030><U0030>
+ % pt  +2++9+16 23 30       6 13 20 27
+ % *sb* *3*10*17*24*31*     *7*14*21+28+
+ % +nd+ +4+11+18+25+    +1+ +8+15+22+29+
+-% 
++%
+ % + - means red color
+ % * - means bold font
+ %
+@@ -1083,12 +1083,12 @@ LC_TELEPHONE
+ 
+ % Format of a telephone number for international use.
+ %
+-% a area code without nationwide prefix (prefix is often <0>). 
+-% A area code including nationwide prefix (prefix is often <0>). 
+-% l local number (within area code). 
+-% e extension (to local number) 
+-% c country code 
+-% C alternate carrier service code used for dialling abroad 
++% a area code without nationwide prefix (prefix is often <0>).
++% A area code including nationwide prefix (prefix is often <0>).
++% l local number (within area code).
++% e extension (to local number)
++% c country code
++% C alternate carrier service code used for dialling abroad
+ % t Insert a <space> if the previous descriptor's value was not an empty
+ %  string; otherwise ignore.
+ %
+@@ -1152,10 +1152,10 @@ LC_NAME
+ % FIXME:
+ %  to make proper salutation, we must change person name and middle name
+ %  to proper forms (klychna forma), but this is imposible without
+-%  ispell-like rules. 
++%  ispell-like rules.
+ %  Now I use regular form, like in Russian (sic!) langauge.
+ 
+-% Field descriptors for the <name_fmt> keyword: 
++% Field descriptors for the <name_fmt> keyword:
+ % f - family name
+ % F - family name in uppercase
+ % g - first given name
+@@ -1244,27 +1244,27 @@ LC_ADDRESS
+ % Means:
+ %  vul. Hranychna 7 - street and building
+ %  s. Bohdashiv - village name (s. - selo)
+-%  Zdolbunivs`koho rajonu - in region of town Zdolbuniv (rajon) 
++%  Zdolbunivs`koho rajonu - in region of town Zdolbuniv (rajon)
+ 
+ 
+-% n Person's name, possibly constructed with the LC_NAME <name_fmt> keyword. 
+-% a Care of person, or organization. 
+-% f Firm name. 
+-% d Department name. 
+-% b Building name. 
+-% s Street or block (eg. Japanese) name. 
+-% h House number or designation. 
++% n Person's name, possibly constructed with the LC_NAME <name_fmt> keyword.
++% a Care of person, or organization.
++% f Firm name.
++% d Department name.
++% b Building name.
++% s Street or block (eg. Japanese) name.
++% h House number or designation.
+ % N Insert an <end-of-line> if the previous descriptor s value was not an empty
+ % string; otherwise ignore.
+ % t Insert a <space> if the previous descriptor s value was not an empty string;
+ % otherwise ignore.
+-% r Room number, door designation. 
+-% e Floor number. 
+-% C Country designation, from the <country_post> keyword. 
+-% l Local township within town or city 
+-% z Zip number, postal code. 
+-% T Town, city. 
+-% S State, province, or prefecture. 
++% r Room number, door designation.
++% e Floor number.
++% C Country designation, from the <country_post> keyword.
++% l Local township within town or city
++% z Zip number, postal code.
++% T Town, city.
++% S State, province, or prefecture.
+ % c Country, as taken from data record.
+ %
+ % Each field descriptor may have an <R> after the <%> to specify that the
+@@ -1276,10 +1276,10 @@ LC_ADDRESS
+ %postal_fmt "<U0025><U0061><U0025><U0074><U0025><U006E><U0025><U0074><U0025><U0066><U0025><U0074><U0025><U0064><U0025><U004E><U0025><U0073><U0025><U0074><U0025><U0068><U0025><U0074><U002C><U0020><U0025><U0062><U0025><U0074><U0025><U0065><U0025><U0074><U0025><U0072><U0025><U004E><U0025><U006C><U0025><U0074><U0025><U0054><U0025><U0074><U0025><U0053><U0025><U004E><U0025><U007A><U0025><U004E><U0025><U0063>"
+ postal_fmt "<U0025><U0061><U0025><U0074><U0025><U0066><U0025><U0074><U0025><U0064><U0025><U004E><U0025><U0073><U0025><U0074><U0025><U0068><U0025><U0074><U002C><U0020><U0025><U0062><U0025><U0074><U0025><U0065><U0025><U0074><U0025><U0072><U0025><U004E><U0025><U0054><U0025><U0074><U0025><U0053><U0025><U004E><U0025><U007A><U0025><U004E><U0025><U0063>"
+ 
+-% Giving: 
++% Giving:
+ %
+-% Care of person Person's name Firm Department 
+-% Street Number, Building Floor Room 
++% Care of person Person's name Firm Department
++% Street Number, Building Floor Room
+ % Town City State
+ % Zip
+ % Country
+diff --git a/localedata/locales/ur_IN b/localedata/locales/ur_IN
+index 3ac8c737ea40a592..d14946f29c130669 100644
+--- a/localedata/locales/ur_IN
++++ b/localedata/locales/ur_IN
+@@ -2,7 +2,7 @@ comment_char    %
+ escape_char     /
+ % Urdu language locale for India.
+ % Contributed by Pravin Satpute <psatpute@redhat.com> and
+-% Mrs. Nasreen Khan 
++% Mrs. Nasreen Khan
+ 
+ LC_IDENTIFICATION
+ 
+diff --git a/localedata/locales/uz_UZ b/localedata/locales/uz_UZ
+index d003bc6811d2aac8..c529e61ee8a02bc5 100644
+--- a/localedata/locales/uz_UZ
++++ b/localedata/locales/uz_UZ
+@@ -93,10 +93,10 @@ include "translit_combining";""
+ <U0447> "<U0063><U0068>" % c% -> ch
+ <U0448> "<U0073><U0068>" % s% -> sh
+ <U0449> "<U0073><U0068>" % shcha -> sh
+-<U044A> "<U0027>"        % hard sign= -> ' 
++<U044A> "<U0027>"        % hard sign= -> '
+ <U044B> "<U0069>"        % yeru -> 1
+ <U044C> ""               % soft sign omitted. not in latin-uzbek alphabet. stupid, but it is a fact.
+-<U044D> "<U0065>"        % je= -> e 
++<U044D> "<U0065>"        % je= -> e
+ <U044E> "<U0079><U0075>" % ju -> yu
+ <U044F> "<U0079><U0061>" % ja -> ya
+ <U045E> "<U006F><U0027>" % v% -> o'
+diff --git a/localedata/locales/uz_UZ@cyrillic b/localedata/locales/uz_UZ@cyrillic
+index 6c3f7522fbc2cda6..4a34eacfc853eeb5 100644
+--- a/localedata/locales/uz_UZ@cyrillic
++++ b/localedata/locales/uz_UZ@cyrillic
+@@ -88,10 +88,10 @@ include "translit_combining";""
+ <U0447> "<U0063><U0068>" % c% -> ch
+ <U0448> "<U0073><U0068>" % s% -> sh
+ <U0449> "<U0073><U0068>" % shcha -> sh
+-<U044A> "<U0027>"        % hard sign= -> ' 
++<U044A> "<U0027>"        % hard sign= -> '
+ <U044B> "<U0069>"        % yeru -> 1
+ <U044C> ""               % soft sign omitted. not in latin-uzbek alphabet. stupid, but it is a fact.
+-<U044D> "<U0065>"        % je= -> e 
++<U044D> "<U0065>"        % je= -> e
+ <U044E> "<U0079><U0075>" % ju -> yu
+ <U044F> "<U0079><U0061>" % ja -> ya
+ <U045E> "<U006F><U0027>" % v% -> o'
+diff --git a/localedata/locales/yo_NG b/localedata/locales/yo_NG
+index 1a5dc78f1f14a1aa..f0206ae1a566ebf3 100644
+--- a/localedata/locales/yo_NG
++++ b/localedata/locales/yo_NG
+@@ -2,7 +2,7 @@ escape_char /
+ comment_char %
+ %
+ % Yoruba language locale for Nigeria
+-% Source: 
++% Source:
+ % Contact: Pablo Saratxaga
+ % Email: pablo@mandriva.com
+ % Language: yo
+@@ -52,7 +52,7 @@ LC_COLLATE
+ % * m and n may be nazalization marks when they follow a vowel;
+ %   or they can be vocalic, in such case they get the three
+ %   tones, and middle tone is marked with a macron
+-% * a same vowel with following up/down or down/up tones 
++% * a same vowel with following up/down or down/up tones
+ %   may be written with respectively a circumflex or a caron,
+ %   eg: áà = â, àá = ǎ
+ % * old orthography also has tilde on vowels, but is deprecated
+@@ -165,7 +165,7 @@ collating-element <u<> from "<U0075><U030C>"
+ 
+ collating-symbol <CAP-MIN>
+ collating-symbol <MIN-CAP>
+- 
++
+ reorder-after <BAS>
+ <ACA>
+ <MAC>
+@@ -173,7 +173,7 @@ reorder-after <BAS>
+ 
+ reorder-after <MIN>
+ <MIN-CAP>
+- 
++
+ reorder-after <CAP>
+ <CAP-MIN>
+ 
+@@ -370,7 +370,7 @@ END LC_NUMERIC
+ LC_TELEPHONE
+ copy "en_NG"
+ END LC_TELEPHONE
+- 
++
+ LC_TIME
+ % SUN, MON, TUE, WED, THU, FRI, SAT
+ abday       "<U0053><U0055><U004E>";"<U004D><U004F><U004E>";/
+diff --git a/localedata/tests-mbwc/dat_mblen.c b/localedata/tests-mbwc/dat_mblen.c
+index 507ab8f35c61ba1f..a5eff44052897ac8 100644
+--- a/localedata/tests-mbwc/dat_mblen.c
++++ b/localedata/tests-mbwc/dat_mblen.c
+@@ -80,11 +80,11 @@ TST_MBLEN tst_mblen_loc [] = {
+       {	 { 1, "a",	   USE_MBCURMAX }, { 0,	1,  1 }	 },
+       /* 03: a character + an invalid byte.  */
+       {	 { 1, "Z\204",	   USE_MBCURMAX }, { 0,	1, +1 }	 },
+-      /* 04: control/invalid characters.  */ 
++      /* 04: control/invalid characters.  */
+       {	 { 1, "\177\000",  USE_MBCURMAX }, { 0,	1, +1 }	 },
+-      /* 05: a null string.  */		     
++      /* 05: a null string.  */
+       {	 { 1, "",	   USE_MBCURMAX }, { 0,	1,  0 }	 },
+-      /* 06: a null pointer.  */	     
++      /* 06: a null pointer.  */
+       {	 { 0, "",	   USE_MBCURMAX }, { 0,	0,  0 }	 },
+       /* Last element.	*/
+       {	 .is_last = 1 }
+@@ -95,15 +95,15 @@ TST_MBLEN tst_mblen_loc [] = {
+     {
+       /* 01: a character.  */
+       {	 { 1, "\264\301",	   USE_MBCURMAX }, { 0, 1,  2 }	 },
+-      /* 02: a character.  */			     
++      /* 02: a character.  */
+       {	 { 1, "\216\261",	   USE_MBCURMAX }, { 0, 1,  2 }  },
+-      /* 03: a character + an invalid byte.  */	     
++      /* 03: a character + an invalid byte.  */
+       {	 { 1, "\260\241\200",	   USE_MBCURMAX }, { 0, 1,  2 }	 },
+       /* 04: control/invalid characters.  */
+       {	 { 1, "\377\202",  USE_MBCURMAX }, { EILSEQ, 1, -1 }	 },
+-      /* 05: a null string.  */		     
++      /* 05: a null string.  */
+       {	 { 1, "",	   USE_MBCURMAX }, { 0,	1,  0 }	 },
+-      /* 06: a null pointer.  */	     
++      /* 06: a null pointer.  */
+       {	 { 0, "",	   USE_MBCURMAX }, { 0,	0,  0 }	 },
+       /* Last element.	*/
+       {	 .is_last = 1 }
+diff --git a/localedata/tests-mbwc/dat_towctrans.c b/localedata/tests-mbwc/dat_towctrans.c
+index 6816af9c03e28ec2..e7fe1dc028cf4885 100644
+--- a/localedata/tests-mbwc/dat_towctrans.c
++++ b/localedata/tests-mbwc/dat_towctrans.c
+@@ -40,9 +40,9 @@ TST_TOWCTRANS tst_towctrans_loc [] = {
+     {
+ #ifdef SHOJI_IS_RIGHT
+       {	 { 0x0010, "xxxxxxx" }, { EINVAL,1,0x0010 }  },
+-#else				  
++#else
+       {	 { 0x0010, "xxxxxxx" }, { 0,     1,0x0010 }  },
+-#endif				  
++#endif
+       {	 { 0x007F, "tolower" }, { 0,	   1,0x007F }  },
+       {	 { 0x0061, "toupper" }, { 0,	   1,0x0041 }  },
+       {	 { 0x0041, "tolower" }, { 0,	   1,0x0061 }  },
+@@ -54,32 +54,32 @@ TST_TOWCTRANS tst_towctrans_loc [] = {
+     {
+ #ifdef SHOJI_IS_RIGHT
+       {	 { 0x0010, "tojkata" }, { EINVAL,1,0x0010 }  },
+-#else				  
++#else
+       {	 { 0x0010, "tojkata" }, { 0,     1,0x0010 }  },
+-#endif				  
++#endif
+       {	 { 0x0080, "tolower" }, { 0,	   1,0x0080 }  },
+       {	 { 0x00EC, "toupper" }, { 0,	   1,0x00CC }  },
+       {	 { 0x00CC, "tolower" }, { 0,	   1,0x00EC }  },
+-      { .is_last = 1 }		  
+-    }				  
+-  },				  
+-  {				  
+-    { Ttowctrans, TST_LOC_enUS }, 
+-    {				  
+-#ifdef SHOJI_IS_RIGHT		  
++      { .is_last = 1 }
++    }
++  },
++  {
++    { Ttowctrans, TST_LOC_enUS },
++    {
++#ifdef SHOJI_IS_RIGHT
+       {	 { 0x0010, "xxxxxxx" }, { EINVAL,1,0x0010 }  },
+-#else				  
++#else
+       {	 { 0x0010, "xxxxxxx" }, { 0,     1,0x0010 }  },
+-#endif				  
++#endif
+       {	 { 0x007F, "tolower" }, { 0,	   1,0x007F }  },
+       {	 { 0x0061, "toupper" }, { 0,	   1,0x0041 }  },
+       {	 { 0x0041, "tolower" }, { 0,	   1,0x0061 }  },
+-      { .is_last = 1 }		  
+-    }				  
+-  },				  
+-  {				  
++      { .is_last = 1 }
++    }
++  },
++  {
+     { Ttowctrans, TST_LOC_eucJP },
+-    {				  
++    {
+       {	 { 0xFF21, "tolower" }, { 0,	   1,0xFF41 }  },
+       {	 { 0xFF41, "toupper" }, { 0,	   1,0xFF21 }  },
+       {	 { 0x30A1, "tojhira" }, { 0,	   1,0x3041 }  },
diff --git a/SOURCES/glibc-rh1505492-undef-40.patch b/SOURCES/glibc-rh1505492-undef-40.patch
new file mode 100644
index 0000000..72cc2b1
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-40.patch
@@ -0,0 +1,23 @@
+commit 12f2254b815056bb897a25a0c6dee0122aef52ac
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Thu Jul 10 14:19:21 2014 +0530
+
+    Fix -Wundef warning for HAVE_SYS_PARAM_H
+    
+    Include sys/param.h unconditionally
+
+diff --git a/io/ftw.c b/io/ftw.c
+index 7aff7d04c9ed1e95..ffdb4b02dc7ca4d5 100644
+--- a/io/ftw.c
++++ b/io/ftw.c
+@@ -66,9 +66,7 @@ char *alloca ();
+ #include <string.h>
+ #include <unistd.h>
+ #include <not-cancel.h>
+-#if HAVE_SYS_PARAM_H || defined _LIBC
+-# include <sys/param.h>
+-#endif
++#include <sys/param.h>
+ #ifdef _LIBC
+ # include <include/sys/stat.h>
+ #else
diff --git a/SOURCES/glibc-rh1505492-undef-41.patch b/SOURCES/glibc-rh1505492-undef-41.patch
new file mode 100644
index 0000000..21daa11
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-41.patch
@@ -0,0 +1,20 @@
+commit d22f1fe2f369a273533e50d757c4590adf147ef1
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Thu Jul 10 14:20:42 2014 +0530
+
+    Fix Wundef warning for HAVE_STRFTIME
+    
+    Define it to 0
+
+diff --git a/time/strftime_l.c b/time/strftime_l.c
+index d33a9687e02457f5..21303c9735baeb5f 100644
+--- a/time/strftime_l.c
++++ b/time/strftime_l.c
+@@ -29,6 +29,7 @@
+ # define HAVE_TM_ZONE 1
+ # define HAVE_TZNAME 1
+ # define HAVE_TZSET 1
++# define HAVE_STRFTIME 0
+ # define MULTIBYTE_IS_FORMAT_SAFE 1
+ # define STDC_HEADERS 1
+ # include "../locale/localeinfo.h"
diff --git a/SOURCES/glibc-rh1505492-undef-42.patch b/SOURCES/glibc-rh1505492-undef-42.patch
new file mode 100644
index 0000000..7d6fe9b
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-42.patch
@@ -0,0 +1,21 @@
+commit 180e0e4b29e4950cd411144c7b9dab1f850853d9
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Thu Jul 10 14:21:27 2014 +0530
+
+    Fix -Wundef warning for HAVE_LOCALTIME_R
+    
+    Define it to 0.  There is a gnulib copy for this, but it is out of
+    sync with our copy.
+
+diff --git a/time/strptime_l.c b/time/strptime_l.c
+index 7bc5ed3eb0a349ce..14d50a2e879a2c5c 100644
+--- a/time/strptime_l.c
++++ b/time/strptime_l.c
+@@ -28,6 +28,7 @@
+ #include <stdbool.h>
+ 
+ #ifdef _LIBC
++# define HAVE_LOCALTIME_R 0
+ # include "../locale/localeinfo.h"
+ #endif
+ 
diff --git a/SOURCES/glibc-rh1505492-undef-43.patch b/SOURCES/glibc-rh1505492-undef-43.patch
new file mode 100644
index 0000000..3a0471e
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-43.patch
@@ -0,0 +1,168 @@
+commit 32bead5b6d6edc4421a8ca628ce7dc14d435202a
+Author: Will Newton <will.newton@linaro.org>
+Date:   Thu Jul 10 09:18:03 2014 +0100
+
+    iconv/loop.c: Fix -Wundef warning with !_STRING_ARCH_unaligned
+    
+    If code is required to handle the unaligned case then loop.c includes
+    itself and relies on the #undefs at the end of the file to avoid
+    outputting two copies of LOOPFCT and gconv_btowc. However
+    MAX_NEEDED_INPUT is tested with #if so this causes a warning.
+    Reorder the code so that the function definitions are in an #else
+    block to make the behaviour clearer and fix the warning.
+    
+    Verified that code is unchanged on x86_64 and arm.
+    
+    ChangeLog:
+    
+    2014-07-17  Will Newton  <will.newton@linaro.org>
+    
+            * iconv/loop.c: Move definition of LOOPFCT and gconv_btowc
+            into an #else block.
+
+diff --git a/iconv/loop.c b/iconv/loop.c
+index 7b2499a3d0657265..9152209b67d32481 100644
+--- a/iconv/loop.c
++++ b/iconv/loop.c
+@@ -354,12 +354,10 @@ FCTNAME (LOOPFCT) (struct __gconv_step *step,
+ # define DEFINE_UNALIGNED
+ # include "loop.c"
+ # undef DEFINE_UNALIGNED
+-#endif
+-
+-
+-#if MAX_NEEDED_INPUT > 1
+-# define SINGLE(fct) SINGLE2 (fct)
+-# define SINGLE2(fct) fct##_single
++#else
++# if MAX_NEEDED_INPUT > 1
++#  define SINGLE(fct) SINGLE2 (fct)
++#  define SINGLE2(fct) fct##_single
+ static inline int
+ __attribute ((always_inline))
+ SINGLE(LOOPFCT) (struct __gconv_step *step,
+@@ -369,37 +367,37 @@ SINGLE(LOOPFCT) (struct __gconv_step *step,
+ 		 size_t *irreversible EXTRA_LOOP_DECLS)
+ {
+   mbstate_t *state = step_data->__statep;
+-#ifdef LOOP_NEED_FLAGS
++#  ifdef LOOP_NEED_FLAGS
+   int flags = step_data->__flags;
+-#endif
+-#ifdef LOOP_NEED_DATA
++#  endif
++#  ifdef LOOP_NEED_DATA
+   void *data = step->__data;
+-#endif
++#  endif
+   int result = __GCONV_OK;
+   unsigned char bytebuf[MAX_NEEDED_INPUT];
+   const unsigned char *inptr = *inptrp;
+   unsigned char *outptr = *outptrp;
+   size_t inlen;
+ 
+-#ifdef INIT_PARAMS
++#  ifdef INIT_PARAMS
+   INIT_PARAMS;
+-#endif
++#  endif
+ 
+-#ifdef UNPACK_BYTES
++#  ifdef UNPACK_BYTES
+   UNPACK_BYTES
+-#else
++#  else
+   /* Add the bytes from the state to the input buffer.  */
+   assert ((state->__count & 7) <= sizeof (state->__value));
+   for (inlen = 0; inlen < (size_t) (state->__count & 7); ++inlen)
+     bytebuf[inlen] = state->__value.__wchb[inlen];
+-#endif
++#  endif
+ 
+   /* Are there enough bytes in the input buffer?  */
+   if (MIN_NEEDED_INPUT > 1
+       && __builtin_expect (inptr + (MIN_NEEDED_INPUT - inlen) > inend, 0))
+     {
+       *inptrp = inend;
+-#ifdef STORE_REST
++#  ifdef STORE_REST
+       while (inptr < inend)
+ 	bytebuf[inlen++] = *inptr++;
+ 
+@@ -408,12 +406,12 @@ SINGLE(LOOPFCT) (struct __gconv_step *step,
+       inend = &bytebuf[inlen];
+ 
+       STORE_REST
+-#else
++#  else
+       /* We don't have enough input for another complete input
+ 	 character.  */
+       while (inptr < inend)
+ 	state->__value.__wchb[inlen++] = *inptr++;
+-#endif
++#  endif
+ 
+       return __GCONV_INCOMPLETE_INPUT;
+     }
+@@ -453,11 +451,11 @@ SINGLE(LOOPFCT) (struct __gconv_step *step,
+       result = __GCONV_OK;
+ 
+       /* Clear the state buffer.  */
+-#ifdef CLEAR_STATE
++#  ifdef CLEAR_STATE
+       CLEAR_STATE;
+-#else
++#  else
+       state->__count &= ~7;
+-#endif
++#  endif
+     }
+   else if (result == __GCONV_INCOMPLETE_INPUT)
+     {
+@@ -466,11 +464,11 @@ SINGLE(LOOPFCT) (struct __gconv_step *step,
+       assert (inend != &bytebuf[MAX_NEEDED_INPUT]);
+ 
+       *inptrp += inend - bytebuf - (state->__count & 7);
+-#ifdef STORE_REST
++#  ifdef STORE_REST
+       inptrp = &inptr;
+ 
+       STORE_REST
+-#else
++#  else
+       /* We don't have enough input for another complete input
+ 	 character.  */
+       assert (inend - inptr > (state->__count & ~7));
+@@ -479,24 +477,25 @@ SINGLE(LOOPFCT) (struct __gconv_step *step,
+       inlen = 0;
+       while (inptr < inend)
+ 	state->__value.__wchb[inlen++] = *inptr++;
+-#endif
++#  endif
+     }
+ 
+   return result;
+ }
+-# undef SINGLE
+-# undef SINGLE2
+-#endif
++#  undef SINGLE
++#  undef SINGLE2
++# endif
+ 
+ 
+-#ifdef ONEBYTE_BODY
++# ifdef ONEBYTE_BODY
+ /* Define the shortcut function for btowc.  */
+ static wint_t
+ gconv_btowc (struct __gconv_step *step, unsigned char c)
+   ONEBYTE_BODY
+-# define FROM_ONEBYTE gconv_btowc
+-#endif
++#  define FROM_ONEBYTE gconv_btowc
++# endif
+ 
++#endif
+ 
+ /* We remove the macro definitions so that we can include this file again
+    for the definition of another function.  */
diff --git a/SOURCES/glibc-rh1505492-undef-44.patch b/SOURCES/glibc-rh1505492-undef-44.patch
new file mode 100644
index 0000000..ddf6c4f
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-44.patch
@@ -0,0 +1,46 @@
+commit 3f3dd810e03661535980e334723666205c693313
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Fri Aug 1 14:23:38 2014 +0530
+
+    Fix -Wundef warnings in fnmatch.c
+    
+    Fixes -Wundef warnings for MBSTATE_T and HAVE_STRING_H.  The
+    HAVE_STRING_H bit is a merge from the gnulib fnmatch.c and the
+    MBSTATE_T fix has been posted to gnulib for inclusion.
+
+diff --git a/include/libc-symbols.h b/include/libc-symbols.h
+index bf98c33cf3ba9df6..fa0d590b0f072871 100644
+--- a/include/libc-symbols.h
++++ b/include/libc-symbols.h
+@@ -68,9 +68,11 @@
+    so it's harmless.  */
+ #define HAVE_CONFIG_H	0
+ 
+-/* Define this for the benefit of portable GNU code that wants to check it.
+-   Of course, it's never false when building libc!  */
++/* Define these macros for the benefit of portable GNU code that wants to check
++   them.  Of course, STDC_HEADERS is never false when building libc!  */
+ #define STDC_HEADERS	1
++#define HAVE_MBSTATE_T	1
++#define HAVE_MBSRTOWCS	1
+ 
+ /* The symbols in all the user (non-_) macros are C symbols.  */
+ 
+diff --git a/posix/fnmatch.c b/posix/fnmatch.c
+index 99ec8c4a0eba49b3..eed12b7b515e390c 100644
+--- a/posix/fnmatch.c
++++ b/posix/fnmatch.c
+@@ -29,12 +29,7 @@
+ #include <errno.h>
+ #include <fnmatch.h>
+ #include <ctype.h>
+-
+-#if HAVE_STRING_H || defined _LIBC
+-# include <string.h>
+-#else
+-# include <strings.h>
+-#endif
++#include <string.h>
+ 
+ #if defined STDC_HEADERS || defined _LIBC
+ # include <stdlib.h>
diff --git a/SOURCES/glibc-rh1505492-undef-45.patch b/SOURCES/glibc-rh1505492-undef-45.patch
new file mode 100644
index 0000000..b771d9b
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-45.patch
@@ -0,0 +1,33 @@
+commit 78dd658a025fb16d004677284b4db0d0c0191845
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Fri Aug 1 14:24:41 2014 +0530
+
+    Check if DEBUG is defined in regex_internal.c
+    
+    The DEBUG macro is checked for its value in one place and if it is
+    defined in another.  Make this consistent across the two cases and use
+    the same style that we did in mktime.c, which is to check if the macro
+    is defined and it is set.
+
+diff --git a/posix/regex_internal.c b/posix/regex_internal.c
+index 9be8a532e6d34150..1765035f06e906e5 100644
+--- a/posix/regex_internal.c
++++ b/posix/regex_internal.c
+@@ -679,7 +679,7 @@ re_string_reconstruct (re_string_t *pstr, int idx, int eflags)
+ 			 pstr->valid_len - offset);
+ 	      pstr->valid_len -= offset;
+ 	      pstr->valid_raw_len -= offset;
+-#if DEBUG
++#if defined DEBUG && DEBUG
+ 	      assert (pstr->valid_len > 0);
+ #endif
+ 	    }
+@@ -936,7 +936,7 @@ re_string_context_at (const re_string_t *input, int idx, int eflags)
+       int wc_idx = idx;
+       while(input->wcs[wc_idx] == WEOF)
+ 	{
+-#ifdef DEBUG
++#if defined DEBUG && DEBUG
+ 	  /* It must not happen.  */
+ 	  assert (wc_idx >= 0);
+ #endif
diff --git a/SOURCES/glibc-rh1505492-undef-46.patch b/SOURCES/glibc-rh1505492-undef-46.patch
new file mode 100644
index 0000000..800b848
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-46.patch
@@ -0,0 +1,34 @@
+commit a476ac4b45fe39b023bed55c852abad04d70c5df
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Fri Aug 1 14:30:43 2014 +0530
+
+    Fix -Wundef warnings in regex_internal.h
+
+diff --git a/include/libc-symbols.h b/include/libc-symbols.h
+index fa0d590b0f072871..c555bf2939f2df7f 100644
+--- a/include/libc-symbols.h
++++ b/include/libc-symbols.h
+@@ -73,6 +73,10 @@
+ #define STDC_HEADERS	1
+ #define HAVE_MBSTATE_T	1
+ #define HAVE_MBSRTOWCS	1
++#define HAVE_LIBINTL_H	1
++#define HAVE_WCTYPE_H	1
++#define HAVE_ISWCTYPE	1
++#define ENABLE_NLS	1
+ 
+ /* The symbols in all the user (non-_) macros are C symbols.  */
+ 
+diff --git a/posix/regex_internal.h b/posix/regex_internal.h
+index b7f051eff00d1e7d..1e423caa128c1704 100644
+--- a/posix/regex_internal.h
++++ b/posix/regex_internal.h
+@@ -90,7 +90,7 @@
+ # define SIZE_MAX ((size_t) -1)
+ #endif
+ 
+-#if (defined MB_CUR_MAX && HAVE_LOCALE_H && HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_WCRTOMB && HAVE_MBRTOWC && HAVE_WCSCOLL) || _LIBC
++#if (defined MB_CUR_MAX && HAVE_WCTYPE_H && HAVE_ISWCTYPE) || _LIBC
+ # define RE_ENABLE_I18N
+ #endif
+ 
diff --git a/SOURCES/glibc-rh1505492-undef-47.patch b/SOURCES/glibc-rh1505492-undef-47.patch
new file mode 100644
index 0000000..0b25772
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-47.patch
@@ -0,0 +1,33 @@
+commit 920238e061af76ac99dd94c40a80b0c6d23f35d4
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Fri Sep 12 16:37:31 2014 +0530
+
+    Fix typo in macro names in sysconf.c
+    
+    Spell _POSIX_DEVICE_SPECIFIC and _POSIX_DEVICE_SPECIFIC_R correctly.
+    Found when trying to make the getconf environment variables
+    typo-proof.
+    
+            * sysdeps/posix/sysconf.c (__sysconf): Spell
+            _POSIX_DEVICE_SPECIFIC and _POSIX_DEVICE_SPECIFIC_R correctly.
+
+diff --git a/sysdeps/posix/sysconf.c b/sysdeps/posix/sysconf.c
+index 6340b6250d57c295..e795b565367bdd1b 100644
+--- a/sysdeps/posix/sysconf.c
++++ b/sysdeps/posix/sysconf.c
+@@ -886,13 +886,13 @@ __sysconf (name)
+       return -1;
+ #endif
+     case _SC_DEVICE_SPECIFIC:
+-#if _POSIX_DEVICE_SPCIFIC > 0
++#if _POSIX_DEVICE_SPECIFIC > 0
+       return _POSIX_DEVICE_SPECIFIC;
+ #else
+       return -1;
+ #endif
+     case _SC_DEVICE_SPECIFIC_R:
+-#if _POSIX_DEVICE_SPCIFIC_R > 0
++#if _POSIX_DEVICE_SPECIFIC_R > 0
+       return _POSIX_DEVICE_SPECIFIC_R;
+ #else
+       return -1;
diff --git a/SOURCES/glibc-rh1505492-undef-48.patch b/SOURCES/glibc-rh1505492-undef-48.patch
new file mode 100644
index 0000000..d6e0a49
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-48.patch
@@ -0,0 +1,35 @@
+commit 61fe374a44a92621e0b75ec1f011ff1fba6c2148
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Mon Sep 15 10:16:14 2014 +0530
+
+    Remove _POSIX_REGEX_VERSION
+    
+    There is no _POSIX_REGEX_VERSION, so don't check for it.
+    _REGEX_VERSION has been removed as well[1], so only keep the -1 return
+    for backward compatibility.  I found this when trying to make the
+    getconf environment variables typo-proof.
+    
+            * sysdeps/posix/sysconf.c (__sysconf): Return -1 for
+            _SC_REGEX_VERSION.
+    
+    [1] http://pubs.opengroup.org/onlinepubs/009695399/functions/sysconf.html
+
+diff --git a/sysdeps/posix/sysconf.c b/sysdeps/posix/sysconf.c
+index e795b565367bdd1b..cf4f8010097e309a 100644
+--- a/sysdeps/posix/sysconf.c
++++ b/sysdeps/posix/sysconf.c
+@@ -983,12 +983,10 @@ __sysconf (name)
+ #else
+       return -1;
+ #endif
++    /* _REGEX_VERSION has been removed with IEEE Std 1003.1-2001/Cor 2-2004,
++       item XSH/TC2/D6/137.  */
+     case _SC_REGEX_VERSION:
+-#if _POSIX_REGEX_VERSION > 0
+-      return _POSIX_REGEX_VERSION;
+-#else
+       return -1;
+-#endif
+ 
+     case _SC_SHELL:
+ #if _POSIX_SHELL > 0
diff --git a/SOURCES/glibc-rh1505492-undef-49.patch b/SOURCES/glibc-rh1505492-undef-49.patch
new file mode 100644
index 0000000..398349c
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-49.patch
@@ -0,0 +1,425 @@
+commit 4a6aca7bf8a70f1dc66a07c04aba2d7fd837602d
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Mon Dec 29 17:37:54 2014 +0530
+
+    Remove Wundef warnings for specification macros
+    
+    This patch adds a file posix-conf-vars.list that is used to generate
+    macros to determine if a macro is defined as set, unset or not
+    defined.  gen-posix-conf-vars.awk processes this file and generates a
+    header (posix-conf-vars-def.h) with these macros.  A new header
+    posix-conf-vars.h includes this generated header and defines accessor
+    macros for the generated macros.
+    
+    Tested on x86_64.
+    
+            * posix/Makefile (before-compile): Add posix-conf-vars-def.h.
+            ($(objpfx)posix-conf-vars-def.h): New target.
+            * posix/posix-conf-vars.list: New file.
+            * posix/posix-conf-vars.h: New file.
+            * posix/confstr.c: Include posix-conf-vars.h.
+            (confstr): Use CONF_IS_* macros.
+            * posix/posix-envs.def: Include posix-conf-vars.h.  Use
+            CONF_IS_* macros.
+            * scripts/gen-posix-conf-vars.awk: New file.
+
+diff --git a/posix/Makefile b/posix/Makefile
+index 4034282866139aaa..c272e87a480f5254 100644
+--- a/posix/Makefile
++++ b/posix/Makefile
+@@ -96,7 +96,7 @@ others		:= getconf
+ install-bin	:= getconf
+ install-others-programs	:= $(inst_libexecdir)/getconf
+ 
+-before-compile	+= testcases.h ptestcases.h
++before-compile	+= testcases.h ptestcases.h posix-conf-vars-def.h
+ 
+ # So they get cleaned up.
+ generated := $(addprefix wordexp-test-result, 1 2 3 4 5 6 7 8 9 10) \
+@@ -288,3 +288,9 @@ $(objpfx)getconf.speclist: getconf-speclist.c posix-envs.def
+ # be built both makes it available for eyeball inspection and avoids the
+ # surprise of things that look like compilation being done by 'make install'.
+ others: $(objpfx)getconf.speclist
++
++$(objpfx)posix-conf-vars-def.h: $(..)scripts/gen-posix-conf-vars.awk \
++				posix-conf-vars.list Makefile
++	$(make-target-directory)
++	$(AWK) -f $(filter-out Makefile, $^) > $@.tmp
++	mv -f $@.tmp $@
+diff --git a/posix/confstr.c b/posix/confstr.c
+index 7d86d60bc177c32d..5b03986a3678e007 100644
+--- a/posix/confstr.c
++++ b/posix/confstr.c
+@@ -21,6 +21,7 @@
+ #include <string.h>
+ #include <confstr.h>
+ #include "../version.h"
++#include <posix-conf-vars.h>
+ 
+ /* If BUF is not NULL and LEN > 0, fill in at most LEN - 1 bytes
+    of BUF with the value corresponding to NAME and zero-terminate BUF.
+@@ -100,9 +101,9 @@ confstr (name, buf, len)
+     case _CS_POSIX_V6_ILP32_OFF32_CFLAGS:
+     case _CS_POSIX_V7_ILP32_OFF32_CFLAGS:
+ #ifdef __ILP32_OFF32_CFLAGS
+-# if _POSIX_V7_ILP32_OFF32 == -1
++# if CONF_IS_DEFINED_UNSET (_POSIX_V7_ILP32_OFF32)
+ #  error "__ILP32_OFF32_CFLAGS should not be defined"
+-# elif !defined _POSIX_V7_ILP32_OFF32
++# elif CONF_IS_UNDEFINED (_POSIX_V7_ILP32_OFF32)
+       if (__sysconf (_SC_V7_ILP32_OFF32) < 0)
+ 	break;
+ # endif
+@@ -115,9 +116,9 @@ confstr (name, buf, len)
+     case _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS:
+     case _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS:
+ #ifdef __ILP32_OFFBIG_CFLAGS
+-# if _POSIX_V7_ILP32_OFFBIG == -1
++# if CONF_IS_DEFINED_UNSET (_POSIX_V7_ILP32_OFFBIG)
+ #  error "__ILP32_OFFBIG_CFLAGS should not be defined"
+-# elif !defined _POSIX_V7_ILP32_OFFBIG
++# elif CONF_IS_UNDEFINED (_POSIX_V7_ILP32_OFFBIG)
+       if (__sysconf (_SC_V7_ILP32_OFFBIG) < 0)
+ 	break;
+ # endif
+@@ -130,9 +131,9 @@ confstr (name, buf, len)
+     case _CS_POSIX_V6_LP64_OFF64_CFLAGS:
+     case _CS_POSIX_V7_LP64_OFF64_CFLAGS:
+ #ifdef __LP64_OFF64_CFLAGS
+-# if _POSIX_V7_LP64_OFF64 == -1
++# if CONF_IS_DEFINED_UNSET (_POSIX_V7_LP64_OFF64)
+ #  error "__LP64_OFF64_CFLAGS should not be defined"
+-# elif !defined _POSIX_V7_LP64_OFF64
++# elif CONF_IS_UNDEFINED (_POSIX_V7_LP64_OFF64)
+       if (__sysconf (_SC_V7_LP64_OFF64) < 0)
+ 	break;
+ # endif
+@@ -145,9 +146,9 @@ confstr (name, buf, len)
+     case _CS_POSIX_V6_ILP32_OFF32_LDFLAGS:
+     case _CS_POSIX_V7_ILP32_OFF32_LDFLAGS:
+ #ifdef __ILP32_OFF32_LDFLAGS
+-# if _POSIX_V7_ILP32_OFF32 == -1
++# if CONF_IS_DEFINED_UNSET (_POSIX_V7_ILP32_OFF32 )
+ #  error "__ILP32_OFF32_LDFLAGS should not be defined"
+-# elif !defined _POSIX_V7_ILP32_OFF32
++# elif CONF_IS_UNDEFINED (_POSIX_V7_ILP32_OFF32)
+       if (__sysconf (_SC_V7_ILP32_OFF32) < 0)
+ 	break;
+ # endif
+@@ -160,9 +161,9 @@ confstr (name, buf, len)
+     case _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS:
+     case _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS:
+ #ifdef __ILP32_OFFBIG_LDFLAGS
+-# if _POSIX_V7_ILP32_OFFBIG == -1
++# if CONF_IS_DEFINED_UNSET (_POSIX_V7_ILP32_OFFBIG)
+ #  error "__ILP32_OFFBIG_LDFLAGS should not be defined"
+-# elif !defined _POSIX_V7_ILP32_OFFBIG
++# elif CONF_IS_UNDEFINED (_POSIX_V7_ILP32_OFFBIG)
+       if (__sysconf (_SC_V7_ILP32_OFFBIG) < 0)
+ 	break;
+ # endif
+@@ -175,9 +176,9 @@ confstr (name, buf, len)
+     case _CS_POSIX_V6_LP64_OFF64_LDFLAGS:
+     case _CS_POSIX_V7_LP64_OFF64_LDFLAGS:
+ #ifdef __LP64_OFF64_LDFLAGS
+-# if _POSIX_V7_LP64_OFF64 == -1
++# if CONF_IS_DEFINED_UNSET (_POSIX_V7_LP64_OFF64)
+ #  error "__LP64_OFF64_LDFLAGS should not be defined"
+-# elif !defined _POSIX_V7_LP64_OFF64
++# elif CONF_IS_UNDEFINED (_POSIX_V7_LP64_OFF64)
+       if (__sysconf (_SC_V7_LP64_OFF64) < 0)
+ 	break;
+ # endif
+@@ -188,7 +189,8 @@ confstr (name, buf, len)
+ 
+     case _CS_LFS_CFLAGS:
+     case _CS_LFS_LINTFLAGS:
+-#if _POSIX_V6_ILP32_OFF32 == 1 && _POSIX_V6_ILP32_OFFBIG == 1
++#if (CONF_IS_DEFINED_SET (_POSIX_V6_ILP32_OFF32) \
++     && CONF_IS_DEFINED_SET (_POSIX_V6_ILP32_OFFBIG))
+ # define __LFS_CFLAGS "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
+       /* Signal that we want the new ABI.  */
+       string = __LFS_CFLAGS;
+diff --git a/posix/posix-conf-vars.h b/posix/posix-conf-vars.h
+new file mode 100644
+index 0000000000000000..6faf29f56b55b7e8
+--- /dev/null
++++ b/posix/posix-conf-vars.h
+@@ -0,0 +1,48 @@
++/* Macros to check if a POSIX configuration variable is defined or set.
++
++   Copyright (C) 1991-2014 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 _POSIX_CONF_VARS_H
++#define _POSIX_CONF_VARS_H
++
++/* The script gen-posix-conf-vars.awk generates the header
++   posix-conf-vars-def.h from the list file posix-conf-vars.list and defines
++   CONF_DEF_* macros for each entry in the list file set to either of
++   CONF_DEF_UNDEFINED, CONF_DEF_DEFINED_SET or CONF_DEF_DEFINED_UNSET.  To
++   check configuration variables within glibc code, use the configuration macro
++   functions instead of checking for definitions of the macros.  */
++
++#include <posix-conf-vars-def.h>
++
++#define CONF_DEF_UNDEFINED	1
++#define CONF_DEF_DEFINED_SET	2
++#define CONF_DEF_DEFINED_UNSET	3
++
++/* The configuration variable is not defined.  */
++#define CONF_IS_UNDEFINED(conf) (CONF_DEF##conf == CONF_DEF_UNDEFINED)
++
++/* The configuration variable is defined.  It may or may not be set.  */
++#define CONF_IS_DEFINED(conf) (CONF_DEF##conf != CONF_DEF_UNDEFINED)
++
++/* The configuration variable is defined and set.  */
++#define CONF_IS_DEFINED_SET(conf) (CONF_DEF##conf == CONF_DEF_DEFINED_SET)
++
++/* The configuration variable is defined but not set.  */
++#define CONF_IS_DEFINED_UNSET(conf) (CONF_DEF##conf == CONF_DEF_DEFINED_UNSET)
++
++#endif
+diff --git a/posix/posix-conf-vars.list b/posix/posix-conf-vars.list
+new file mode 100644
+index 0000000000000000..8f308c216626c59c
+--- /dev/null
++++ b/posix/posix-conf-vars.list
+@@ -0,0 +1,22 @@
++# Configuration variables identified by getconf.  The heading of each section
++# is of the format TYPE PREFIX with the opening curly brace on the same line.
++# TYPE can either be SYSCONF, PATHCONF, CONFSTR or SPEC.  Variable names are
++# put one on each line with a curly brace on its own line ending the section.
++
++SPEC POSIX {
++  V6_ILP32_OFF32
++  V6_ILP32_OFFBIG
++  V6_LP64_OFF64
++  V6_LPBIG_OFFBIG
++  V7_ILP32_OFF32
++  V7_ILP32_OFFBIG
++  V7_LP64_OFF64
++  V7_LPBIG_OFFBIG
++}
++
++SPEC XBS5 {
++  ILP32_OFF32
++  ILP32_OFFBIG
++  LP64_OFF64
++  LPBIG_OFFBIG
++}
+diff --git a/posix/posix-envs.def b/posix/posix-envs.def
+index c32ea8acfcfebb78..e820e6dbe3fa3b61 100644
+--- a/posix/posix-envs.def
++++ b/posix/posix-envs.def
+@@ -42,35 +42,37 @@
+    defined.  These are called with arguments V5, V6, V7 before and
+    after the relevant groups of environments.  */
+ 
++#include <posix-conf-vars.h>
++
+ START_ENV_GROUP (V7)
+ 
+-#if _POSIX_V7_ILP32_OFF32 > 0
++#if CONF_IS_DEFINED_SET (_POSIX_V7_ILP32_OFF32)
+ KNOWN_PRESENT_ENVIRONMENT (V7, POSIX_V7, ILP32_OFF32)
+-#elif defined _POSIX_V7_ILP32_OFF32
++#elif CONF_IS_DEFINED (_POSIX_V7_ILP32_OFF32)
+ KNOWN_ABSENT_ENVIRONMENT (V7, POSIX_V7, ILP32_OFF32)
+ #else
+ UNKNOWN_ENVIRONMENT (V7, POSIX_V7, ILP32_OFF32)
+ #endif
+ 
+-#if _POSIX_V7_ILP32_OFFBIG > 0
++#if CONF_IS_DEFINED_SET (_POSIX_V7_ILP32_OFFBIG)
+ KNOWN_PRESENT_ENVIRONMENT (V7, POSIX_V7, ILP32_OFFBIG)
+-#elif defined _POSIX_V7_ILP32_OFFBIG
++#elif CONF_IS_DEFINED (_POSIX_V7_ILP32_OFFBIG)
+ KNOWN_ABSENT_ENVIRONMENT (V7, POSIX_V7, ILP32_OFFBIG)
+ #else
+ UNKNOWN_ENVIRONMENT (V7, POSIX_V7, ILP32_OFFBIG)
+ #endif
+ 
+-#if _POSIX_V7_LP64_OFF64 > 0
++#if CONF_IS_DEFINED_SET (_POSIX_V7_LP64_OFF64)
+ KNOWN_PRESENT_ENVIRONMENT (V7, POSIX_V7, LP64_OFF64)
+-#elif defined _POSIX_V7_LP64_OFF64
++#elif CONF_IS_DEFINED (_POSIX_V7_LP64_OFF64)
+ KNOWN_ABSENT_ENVIRONMENT (V7, POSIX_V7, LP64_OFF64)
+ #else
+ UNKNOWN_ENVIRONMENT (V7, POSIX_V7, LP64_OFF64)
+ #endif
+ 
+-#if _POSIX_V7_LPBIG_OFFBIG > 0
++#if CONF_IS_DEFINED_SET (_POSIX_V7_LPBIG_OFFBIG)
+ KNOWN_PRESENT_ENVIRONMENT (V7, POSIX_V7, LPBIG_OFFBIG)
+-#elif defined _POSIX_V7_LPBIG_OFFBIG
++#elif CONF_IS_DEFINED (_POSIX_V7_LPBIG_OFFBIG)
+ KNOWN_ABSENT_ENVIRONMENT (V7, POSIX_V7, LPBIG_OFFBIG)
+ #else
+ UNKNOWN_ENVIRONMENT (V7, POSIX_V7, LPBIG_OFFBIG)
+@@ -80,33 +82,33 @@ END_ENV_GROUP (V7)
+ 
+ START_ENV_GROUP (V6)
+ 
+-#if _POSIX_V6_ILP32_OFF32 > 0
++#if CONF_IS_DEFINED_SET (_POSIX_V6_ILP32_OFF32)
+ KNOWN_PRESENT_ENVIRONMENT (V6, POSIX_V6, ILP32_OFF32)
+-#elif defined _POSIX_V6_ILP32_OFF32
++#elif CONF_IS_DEFINED (_POSIX_V6_ILP32_OFF32)
+ KNOWN_ABSENT_ENVIRONMENT (V6, POSIX_V6, ILP32_OFF32)
+ #else
+ UNKNOWN_ENVIRONMENT (V6, POSIX_V6, ILP32_OFF32)
+ #endif
+ 
+-#if _POSIX_V6_ILP32_OFFBIG > 0
++#if CONF_IS_DEFINED_SET (_POSIX_V6_ILP32_OFFBIG)
+ KNOWN_PRESENT_ENVIRONMENT (V6, POSIX_V6, ILP32_OFFBIG)
+-#elif defined _POSIX_V6_ILP32_OFFBIG
++#elif CONF_IS_DEFINED (_POSIX_V6_ILP32_OFFBIG)
+ KNOWN_ABSENT_ENVIRONMENT (V6, POSIX_V6, ILP32_OFFBIG)
+ #else
+ UNKNOWN_ENVIRONMENT (V6, POSIX_V6, ILP32_OFFBIG)
+ #endif
+ 
+-#if _POSIX_V6_LP64_OFF64 > 0
++#if CONF_IS_DEFINED_SET (_POSIX_V6_LP64_OFF64)
+ KNOWN_PRESENT_ENVIRONMENT (V6, POSIX_V6, LP64_OFF64)
+-#elif defined _POSIX_V6_LP64_OFF64
++#elif CONF_IS_DEFINED (_POSIX_V6_LP64_OFF64)
+ KNOWN_ABSENT_ENVIRONMENT (V6, POSIX_V6, LP64_OFF64)
+ #else
+ UNKNOWN_ENVIRONMENT (V6, POSIX_V6, LP64_OFF64)
+ #endif
+ 
+-#if _POSIX_V6_LPBIG_OFFBIG > 0
++#if CONF_IS_DEFINED_SET (_POSIX_V6_LPBIG_OFFBIG)
+ KNOWN_PRESENT_ENVIRONMENT (V6, POSIX_V6, LPBIG_OFFBIG)
+-#elif defined _POSIX_V6_LPBIG_OFFBIG
++#elif CONF_IS_DEFINED (_POSIX_V6_LPBIG_OFFBIG)
+ KNOWN_ABSENT_ENVIRONMENT (V6, POSIX_V6, LPBIG_OFFBIG)
+ #else
+ UNKNOWN_ENVIRONMENT (V6, POSIX_V6, LPBIG_OFFBIG)
+@@ -116,33 +118,33 @@ END_ENV_GROUP (V6)
+ 
+ START_ENV_GROUP (V5)
+ 
+-#if _XBS5_ILP32_OFF32 > 0
++#if CONF_IS_DEFINED_SET (_XBS5_ILP32_OFF32)
+ KNOWN_PRESENT_ENVIRONMENT (XBS5, XBS5, ILP32_OFF32)
+-#elif defined _XBS5_ILP32_OFF32
++#elif CONF_IS_DEFINED (_XBS5_ILP32_OFF32)
+ KNOWN_ABSENT_ENVIRONMENT (XBS5, XBS5, ILP32_OFF32)
+ #else
+ UNKNOWN_ENVIRONMENT (XBS5, XBS5, ILP32_OFF32)
+ #endif
+ 
+-#if _XBS5_ILP32_OFFBIG > 0
++#if CONF_IS_DEFINED_SET (_XBS5_ILP32_OFFBIG)
+ KNOWN_PRESENT_ENVIRONMENT (XBS5, XBS5, ILP32_OFFBIG)
+-#elif defined _XBS5_ILP32_OFFBIG
++#elif CONF_IS_DEFINED (_XBS5_ILP32_OFFBIG)
+ KNOWN_ABSENT_ENVIRONMENT (XBS5, XBS5, ILP32_OFFBIG)
+ #else
+ UNKNOWN_ENVIRONMENT (XBS5, XBS5, ILP32_OFFBIG)
+ #endif
+ 
+-#if _XBS5_LP64_OFF64 > 0
++#if CONF_IS_DEFINED_SET (_XBS5_LP64_OFF64)
+ KNOWN_PRESENT_ENVIRONMENT (XBS5, XBS5, LP64_OFF64)
+-#elif defined _XBS5_LP64_OFF64
++#elif CONF_IS_DEFINED (_XBS5_LP64_OFF64)
+ KNOWN_ABSENT_ENVIRONMENT (XBS5, XBS5, LP64_OFF64)
+ #else
+ UNKNOWN_ENVIRONMENT (XBS5, XBS5, LP64_OFF64)
+ #endif
+ 
+-#if _XBS5_LPBIG_OFFBIG > 0
++#if CONF_IS_DEFINED_SET (_XBS5_LPBIG_OFFBIG)
+ KNOWN_PRESENT_ENVIRONMENT (XBS5, XBS5, LPBIG_OFFBIG)
+-#elif defined _XBS5_LPBIG_OFFBIG
++#elif CONF_IS_DEFINED (_XBS5_LPBIG_OFFBIG)
+ KNOWN_ABSENT_ENVIRONMENT (XBS5, XBS5, LPBIG_OFFBIG)
+ #else
+ UNKNOWN_ENVIRONMENT (XBS5, XBS5, LPBIG_OFFBIG)
+diff --git a/scripts/gen-posix-conf-vars.awk b/scripts/gen-posix-conf-vars.awk
+new file mode 100644
+index 0000000000000000..16e20fc1007bd2f5
+--- /dev/null
++++ b/scripts/gen-posix-conf-vars.awk
+@@ -0,0 +1,61 @@
++# Generate posix-conf-vars-def.h with definitions for CONF_DEF{CONF} for each
++# configuration variable that getconf or sysconf may use.  Currently it is
++# equipped only to generate such macros for specification macros and for
++# SYSCONF macros in the _POSIX namespace.
++
++BEGIN {
++  prefix = ""
++}
++
++$1 ~ /^#/ || $0 ~ /^\s*$/ {
++  next
++}
++
++# Begin a new prefix.
++$NF == "{" {
++  type = $1
++  prefix = $2
++  next
++}
++
++$1 == "}" {
++  prefix = ""
++  type = ""
++  next
++}
++
++{
++  if (prefix == "" && type == "" && sc_prefix == "") {
++    printf ("Syntax error at %s:%d\n", FILENAME, FNR) > "/dev/stderr"
++    exit 1
++  }
++
++  # The prefix and variable names are indices and the value indicates what type
++  # of variable it is.  The possible options are:
++  # CONFSTR: A configuration string
++  # SYSCONF: A numeric value
++  # SPEC: A specification
++  conf[prefix][$1] = type
++}
++
++END {
++  print "/* AUTOGENERATED by gen-posix-conf-vars.awk.  DO NOT EDIT.  */\n"
++
++  # Generate macros that specify if a sysconf macro is defined and/or set.
++  for (p in conf) {
++    for (c in conf[p]) {
++      printf "#ifndef _%s_%s\n", p, c
++      printf "# define CONF_DEF_%s_%s CONF_DEF_UNDEFINED\n", p, c
++      # CONFSTR have string values and they are not set or unset.
++      if (conf[p][c] != "CONFSTR") {
++	printf "#else\n"
++	printf "# if _%s_%s > 0\n", p, c
++	printf "#  define CONF_DEF_%s_%s CONF_DEF_DEFINED_SET\n", p, c
++	printf "# else\n"
++	printf "#  define CONF_DEF_%s_%s CONF_DEF_DEFINED_UNSET\n", p, c
++	printf "# endif\n"
++      }
++      printf "#endif\n\n"
++    }
++  }
++}
diff --git a/SOURCES/glibc-rh1505492-undef-5.patch b/SOURCES/glibc-rh1505492-undef-5.patch
new file mode 100644
index 0000000..504b552
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-5.patch
@@ -0,0 +1,169 @@
+commit bdfe308a166b433a841d5c9ae256560c18bce640
+Author: Ondřej Bílka <neleai@seznam.cz>
+Date:   Mon Feb 10 12:25:04 2014 +0100
+
+    Remove THREAD_STATS.
+    
+    A THREAD_STATS macro duplicates gathering information that could be
+    obtained by systemtap probes instead.
+
+Conflicts:
+	malloc/arena.c
+	malloc/malloc.c
+
+Textual conflicts due to independent malloc backports.
+
+diff --git a/malloc/arena.c b/malloc/arena.c
+index f5e97fadc17ad92d..fe4ec8de614454c9 100644
+--- a/malloc/arena.c
++++ b/malloc/arena.c
+@@ -40,14 +40,6 @@
+    mmap threshold, so that requests with a size just below that
+    threshold can be fulfilled without creating too many heaps.  */
+ 
+-
+-#ifndef THREAD_STATS
+-#define THREAD_STATS 0
+-#endif
+-
+-/* If THREAD_STATS is non-zero, some statistics on mutex locking are
+-   computed.  */
+-
+ /***************************************************************************/
+ 
+ #define top(ar_ptr) ((ar_ptr)->top)
+@@ -101,13 +93,6 @@ static mstate free_list;
+    acquired.  */
+ static mutex_t list_lock = MUTEX_INITIALIZER;
+ 
+-#if THREAD_STATS
+-static int stat_n_heaps;
+-#define THREAD_STAT(x) x
+-#else
+-#define THREAD_STAT(x) do ; while(0)
+-#endif
+-
+ /* Mapped memory in non-main arenas (reliable only for NO_THREADS). */
+ static unsigned long arena_mem;
+ 
+@@ -583,7 +568,6 @@ new_heap(size_t size, size_t top_pad)
+   h = (heap_info *)p2;
+   h->size = size;
+   h->mprotect_size = size;
+-  THREAD_STAT(stat_n_heaps++);
+   LIBC_PROBE (memory_heap_new, 2, h, h->size);
+   return h;
+ }
+@@ -811,8 +795,6 @@ _int_new_arena(size_t size)
+ 
+   (void) mutex_lock (&a->mutex);
+ 
+-  THREAD_STAT(++(a->stat_lock_loop));
+-
+   return a;
+ }
+ 
+@@ -844,7 +826,6 @@ get_free_list (void)
+ 	  LIBC_PROBE (memory_arena_reuse_free_list, 1, result);
+ 	  (void)mutex_lock(&result->mutex);
+ 	  tsd_setspecific(arena_key, (void *)result);
+-	  THREAD_STAT(++(result->stat_lock_loop));
+ 	}
+     }
+ 
+@@ -941,7 +922,6 @@ reused_arena (mstate avoid_arena)
+   }
+   LIBC_PROBE (memory_arena_reuse, 2, result, avoid_arena);
+   tsd_setspecific(arena_key, (void *)result);
+-  THREAD_STAT(++(result->stat_lock_loop));
+   next_to_use = result->next;
+ 
+   return result;
+diff --git a/malloc/malloc.c b/malloc/malloc.c
+index fc86b344ee3b3a7c..9d3b24ee0c137a1b 100644
+--- a/malloc/malloc.c
++++ b/malloc/malloc.c
+@@ -1712,11 +1712,6 @@ struct malloc_state {
+   /* Flags (formerly in max_fast).  */
+   int flags;
+ 
+-#if THREAD_STATS
+-  /* Statistics for locking.  Only used if THREAD_STATS is defined.  */
+-  long stat_lock_direct, stat_lock_loop, stat_lock_wait;
+-#endif
+-
+   /* Fastbins */
+   mfastbinptr      fastbinsY[NFASTBINS];
+ 
+@@ -3015,17 +3010,7 @@ __libc_realloc(void* oldmem, size_t bytes)
+     return newmem;
+   }
+ 
+-#if THREAD_STATS
+-  if(!mutex_trylock(&ar_ptr->mutex))
+-    ++(ar_ptr->stat_lock_direct);
+-  else {
+-    (void)mutex_lock(&ar_ptr->mutex);
+-    ++(ar_ptr->stat_lock_wait);
+-  }
+-#else
+   (void)mutex_lock(&ar_ptr->mutex);
+-#endif
+-
+ 
+   newp = _int_realloc(ar_ptr, oldp, oldsize, nb);
+ 
+@@ -3941,16 +3926,7 @@ _int_free(mstate av, mchunkptr p, int have_lock)
+ 
+   else if (!chunk_is_mmapped(p)) {
+     if (! have_lock) {
+-#if THREAD_STATS
+-      if(!mutex_trylock(&av->mutex))
+-	++(av->stat_lock_direct);
+-      else {
+-	(void)mutex_lock(&av->mutex);
+-	++(av->stat_lock_wait);
+-      }
+-#else
+       (void)mutex_lock(&av->mutex);
+-#endif
+       locked = 1;
+     }
+ 
+@@ -4713,9 +4689,6 @@ __malloc_stats (void)
+   int i;
+   mstate ar_ptr;
+   unsigned int in_use_b = mp_.mmapped_mem, system_b = in_use_b;
+-#if THREAD_STATS
+-  long stat_lock_direct = 0, stat_lock_loop = 0, stat_lock_wait = 0;
+-#endif
+ 
+   if(__malloc_initialized < 0)
+     ptmalloc_init ();
+@@ -4737,11 +4710,6 @@ __malloc_stats (void)
+ #endif
+     system_b += mi.arena;
+     in_use_b += mi.uordblks;
+-#if THREAD_STATS
+-    stat_lock_direct += ar_ptr->stat_lock_direct;
+-    stat_lock_loop += ar_ptr->stat_lock_loop;
+-    stat_lock_wait += ar_ptr->stat_lock_wait;
+-#endif
+     (void)mutex_unlock(&ar_ptr->mutex);
+     ar_ptr = ar_ptr->next;
+     if(ar_ptr == &main_arena) break;
+@@ -4752,14 +4720,6 @@ __malloc_stats (void)
+   fprintf(stderr, "max mmap regions = %10u\n", (unsigned int)mp_.max_n_mmaps);
+   fprintf(stderr, "max mmap bytes   = %10lu\n",
+ 	  (unsigned long)mp_.max_mmapped_mem);
+-#if THREAD_STATS
+-  fprintf(stderr, "heaps created    = %10d\n",  stat_n_heaps);
+-  fprintf(stderr, "locked directly  = %10ld\n", stat_lock_direct);
+-  fprintf(stderr, "locked in loop   = %10ld\n", stat_lock_loop);
+-  fprintf(stderr, "locked waiting   = %10ld\n", stat_lock_wait);
+-  fprintf(stderr, "locked total     = %10ld\n",
+-	  stat_lock_direct + stat_lock_loop + stat_lock_wait);
+-#endif
+   ((_IO_FILE *) stderr)->_flags2 |= old_flags2;
+   _IO_funlockfile (stderr);
+ }
diff --git a/SOURCES/glibc-rh1505492-undef-50.patch b/SOURCES/glibc-rh1505492-undef-50.patch
new file mode 100644
index 0000000..5c282ba
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-50.patch
@@ -0,0 +1,745 @@
+commit 3b566046c3e8cb252f4c0ab7b6041fef5098f1a5
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Mon Dec 29 17:39:30 2014 +0530
+
+    Add _POSIX namespace SYSCONF macros to posix-conf-vars.list
+    
+    This fixes the remaining -Wundef warnings.  Tested on x86_64.
+    
+            * posix/posix-conf-vars.list: Add _POSIX sysconf namespace.
+            * sysdeps/posix/sysconf.c: Include posix-conf-vars.h.
+            (__sysconf): Use CONF_IS_* macros.
+
+diff --git a/posix/posix-conf-vars.list b/posix/posix-conf-vars.list
+index 8f308c216626c59c..3e7e7cdaa9c46c85 100644
+--- a/posix/posix-conf-vars.list
++++ b/posix/posix-conf-vars.list
+@@ -14,6 +14,96 @@ SPEC POSIX {
+   V7_LPBIG_OFFBIG
+ }
+ 
++SYSCONF POSIX {
++  ADVISORY_INFO
++  ARG_MAX
++  ASYNCHRONOUS_IO
++  BARRIERS
++  BASE
++  CHILD_MAX
++  C_LANG_SUPPORT
++  C_LANG_SUPPORT_R
++  CLOCK_SELECTION
++  CPUTIME
++  DEVICE_IO
++  DEVICE_SPECIFIC
++  DEVICE_SPECIFIC_R
++  FD_MGMT
++  FIFO
++  FILE_ATTRIBUTES
++  FILE_LOCKING
++  FILE_SYSTEM
++  FSYNC
++  JOB_CONTROL
++  MAPPED_FILES
++  MEMLOCK
++  MEMLOCK_RANGE
++  MEMORY_PROTECTION
++  MESSAGE_PASSING
++  MONOTONIC_CLOCK
++  MULTI_PROCESS
++  NETWORKING
++  NGROUPS_MAX
++  OPEN_MAX
++  PII
++  PII_INTERNET
++  PII_INTERNET_DGRAM
++  PII_INTERNET_STREAM
++  PII_OSI
++  PII_OSI_CLTS
++  PII_OSI_COTS
++  PII_OSI_M
++  PII_SOCKET
++  PII_XTI
++  PIPE
++  POLL
++  PRIORITIZED_IO
++  PRIORITY_SCHEDULING
++  READER_WRITER_LOCKS
++  REALTIME_SIGNALS
++  REGEXP
++  SAVED_IDS
++  SELECT
++  SEMAPHORES
++  SHARED_MEMORY_OBJECTS
++  SHELL
++  SIGNALS
++  SINGLE_PROCESS
++  SPAWN
++  SPIN_LOCKS
++  SPORADIC_SERVER
++  SSIZE_MAX
++  STREAM_MAX
++  SYNCHRONIZED_IO
++  SYSTEM_DATABASE
++  SYSTEM_DATABASE_R
++  THREAD_ATTR_STACKADDR
++  THREAD_ATTR_STACKSIZE
++  THREAD_CPUTIME
++  THREAD_PRIO_INHERIT
++  THREAD_PRIO_PROTECT
++  THREAD_PRIORITY_SCHEDULING
++  THREAD_PROCESS_SHARED
++  THREADS
++  THREAD_SAFE_FUNCTIONS
++  THREAD_SPORADIC_SERVER
++  TIMEOUTS
++  TIMERS
++  TRACE
++  TRACE_EVENT_FILTER
++  TRACE_INHERIT
++  TRACE_LOG
++  TYPED_MEMORY_OBJECTS
++  TZNAME_MAX
++  USER_GROUPS
++  USER_GROUPS_R
++  VERSION
++# Additional variables not in getconf.
++  THREAD_DESTRUCTOR_ITERATIONS
++  IPV6
++  RAW_SOCKETS
++}
++
+ SPEC XBS5 {
+   ILP32_OFF32
+   ILP32_OFFBIG
+diff --git a/sysdeps/posix/sysconf.c b/sysdeps/posix/sysconf.c
+index cf4f8010097e309a..1e9d4e099e94981c 100644
+--- a/sysdeps/posix/sysconf.c
++++ b/sysdeps/posix/sysconf.c
+@@ -31,6 +31,8 @@
+ #include <sys/types.h>
+ #include <regex.h>
+ 
++#include <posix-conf-vars.h>
++
+ 
+ #define NEED_CHECK_SPEC \
+   (!defined _XBS5_ILP32_OFF32 || !defined _XBS5_ILP32_OFFBIG \
+@@ -95,112 +97,112 @@ __sysconf (name)
+       return MAX (__tzname_max (), _POSIX_TZNAME_MAX);
+ 
+     case _SC_JOB_CONTROL:
+-#if _POSIX_JOB_CONTROL > 0
++#if CONF_IS_DEFINED_SET (_POSIX_JOB_CONTROL)
+       return _POSIX_JOB_CONTROL;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_SAVED_IDS:
+-#if _POSIX_SAVED_IDS > 0
++#if CONF_IS_DEFINED_SET (_POSIX_SAVED_IDS)
+       return 1;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_REALTIME_SIGNALS:
+-#if _POSIX_REALTIME_SIGNALS > 0
++#if CONF_IS_DEFINED_SET (_POSIX_REALTIME_SIGNALS)
+       return _POSIX_REALTIME_SIGNALS;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_PRIORITY_SCHEDULING:
+-#if _POSIX_PRIORITY_SCHEDULING > 0
++#if CONF_IS_DEFINED_SET (_POSIX_PRIORITY_SCHEDULING)
+       return _POSIX_PRIORITY_SCHEDULING;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_TIMERS:
+-#if _POSIX_TIMERS > 0
++#if CONF_IS_DEFINED_SET (_POSIX_TIMERS)
+       return _POSIX_TIMERS;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_ASYNCHRONOUS_IO:
+-#if _POSIX_ASYNCHRONOUS_IO > 0
++#if CONF_IS_DEFINED_SET (_POSIX_ASYNCHRONOUS_IO)
+       return _POSIX_ASYNCHRONOUS_IO;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_PRIORITIZED_IO:
+-#if _POSIX_PRIORITIZED_IO > 0
++#if CONF_IS_DEFINED_SET (_POSIX_PRIORITIZED_IO)
+       return _POSIX_PRIORITIZED_IO;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_SYNCHRONIZED_IO:
+-#if _POSIX_SYNCHRONIZED_IO > 0
++#if CONF_IS_DEFINED_SET (_POSIX_SYNCHRONIZED_IO)
+       return _POSIX_SYNCHRONIZED_IO;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_FSYNC:
+-#if _POSIX_FSYNC > 0
++#if CONF_IS_DEFINED_SET (_POSIX_FSYNC)
+       return _POSIX_FSYNC;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_MAPPED_FILES:
+-#if _POSIX_MAPPED_FILES > 0
++#if CONF_IS_DEFINED_SET (_POSIX_MAPPED_FILES)
+       return _POSIX_MAPPED_FILES;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_MEMLOCK:
+-#if _POSIX_MEMLOCK > 0
++#if CONF_IS_DEFINED_SET (_POSIX_MEMLOCK)
+       return _POSIX_MEMLOCK;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_MEMLOCK_RANGE:
+-#if _POSIX_MEMLOCK_RANGE > 0
++#if CONF_IS_DEFINED_SET (_POSIX_MEMLOCK_RANGE)
+       return _POSIX_MEMLOCK_RANGE;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_MEMORY_PROTECTION:
+-#if _POSIX_MEMORY_PROTECTION > 0
++#if CONF_IS_DEFINED_SET (_POSIX_MEMORY_PROTECTION)
+       return _POSIX_MEMORY_PROTECTION;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_MESSAGE_PASSING:
+-#if _POSIX_MESSAGE_PASSING > 0
++#if CONF_IS_DEFINED_SET (_POSIX_MESSAGE_PASSING)
+       return _POSIX_MESSAGE_PASSING;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_SEMAPHORES:
+-#if _POSIX_SEMAPHORES > 0
++#if CONF_IS_DEFINED_SET (_POSIX_SEMAPHORES)
+       return _POSIX_SEMAPHORES;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_SHARED_MEMORY_OBJECTS:
+-#if _POSIX_SHARED_MEMORY_OBJECTS > 0
++#if CONF_IS_DEFINED_SET (_POSIX_SHARED_MEMORY_OBJECTS)
+       return _POSIX_SHARED_MEMORY_OBJECTS;
+ #else
+       return -1;
+@@ -353,49 +355,49 @@ __sysconf (name)
+ #endif
+ 
+     case _SC_PII:
+-#if _POSIX_PII > 0
++#if CONF_IS_DEFINED_SET (_POSIX_PII)
+       return 1;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_PII_XTI:
+-#if _POSIX_PII_XTI > 0
++#if CONF_IS_DEFINED_SET (_POSIX_PII_XTI)
+       return 1;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_PII_SOCKET:
+-#if _POSIX_PII_SOCKET > 0
++#if CONF_IS_DEFINED_SET (_POSIX_PII_SOCKET)
+       return 1;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_PII_INTERNET:
+-#if _POSIX_PII_INTERNET > 0
++#if CONF_IS_DEFINED_SET (_POSIX_PII_INTERNET)
+       return 1;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_PII_OSI:
+-#if _POSIX_PII_OSI > 0
++#if CONF_IS_DEFINED_SET (_POSIX_PII_OSI)
+       return 1;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_POLL:
+-#if _POSIX_POLL > 0
++#if CONF_IS_DEFINED_SET (_POSIX_POLL)
+       return 1;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_SELECT:
+-#if _POSIX_SELECT > 0
++#if CONF_IS_DEFINED_SET (_POSIX_SELECT)
+       return 1;
+ #else
+       return -1;
+@@ -410,35 +412,35 @@ __sysconf (name)
+ #endif
+ 
+     case _SC_PII_INTERNET_STREAM:
+-#if _POSIX_PII_INTERNET_STREAM > 0
++#if CONF_IS_DEFINED_SET (_POSIX_PII_INTERNET_STREAM)
+       return 1;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_PII_INTERNET_DGRAM:
+-#if _POSIX_PII_INTERNET_DGRAM > 0
++#if CONF_IS_DEFINED_SET (_POSIX_PII_INTERNET_DGRAM)
+       return 1;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_PII_OSI_COTS:
+-#if _POSIX_PII_OSI_COTS > 0
++#if CONF_IS_DEFINED_SET (_POSIX_PII_OSI_COTS)
+       return 1;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_PII_OSI_CLTS:
+-#if _POSIX_PII_OSI_CLTS > 0
++#if CONF_IS_DEFINED_SET (_POSIX_PII_OSI_CLTS)
+       return 1;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_PII_OSI_M:
+-#if _POSIX_PII_OSI_M > 0
++#if CONF_IS_DEFINED_SET (_POSIX_PII_OSI_M)
+       return 1;
+ #else
+       return -1;
+@@ -519,14 +521,14 @@ __sysconf (name)
+ 
+       /* POSIX 1003.1c (POSIX Threads).  */
+     case _SC_THREADS:
+-#if _POSIX_THREADS > 0
++#if CONF_IS_DEFINED_SET (_POSIX_THREADS)
+       return _POSIX_THREADS;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_THREAD_SAFE_FUNCTIONS:
+-#if _POSIX_THREAD_SAFE_FUNCTIONS > 0
++#if CONF_IS_DEFINED_SET (_POSIX_THREAD_SAFE_FUNCTIONS)
+       return _POSIX_THREAD_SAFE_FUNCTIONS;
+ #else
+       return -1;
+@@ -553,7 +555,7 @@ __sysconf (name)
+ #endif
+ 
+     case _SC_THREAD_DESTRUCTOR_ITERATIONS:
+-#if _POSIX_THREAD_DESTRUCTOR_ITERATIONS > 0
++#if CONF_IS_DEFINED_SET (_POSIX_THREAD_DESTRUCTOR_ITERATIONS)
+       return _POSIX_THREAD_DESTRUCTOR_ITERATIONS;
+ #else
+       return -1;
+@@ -581,42 +583,42 @@ __sysconf (name)
+ #endif
+ 
+     case _SC_THREAD_ATTR_STACKADDR:
+-#if _POSIX_THREAD_ATTR_STACKADDR > 0
++#if CONF_IS_DEFINED_SET (_POSIX_THREAD_ATTR_STACKADDR)
+       return _POSIX_THREAD_ATTR_STACKADDR;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_THREAD_ATTR_STACKSIZE:
+-#if _POSIX_THREAD_ATTR_STACKSIZE > 0
++#if CONF_IS_DEFINED_SET (_POSIX_THREAD_ATTR_STACKSIZE)
+       return _POSIX_THREAD_ATTR_STACKSIZE;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_THREAD_PRIORITY_SCHEDULING:
+-#if _POSIX_THREAD_PRIORITY_SCHEDULING > 0
++#if CONF_IS_DEFINED_SET (_POSIX_THREAD_PRIORITY_SCHEDULING)
+       return _POSIX_THREAD_PRIORITY_SCHEDULING;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_THREAD_PRIO_INHERIT:
+-#if _POSIX_THREAD_PRIO_INHERIT > 0
++#if CONF_IS_DEFINED_SET (_POSIX_THREAD_PRIO_INHERIT)
+       return _POSIX_THREAD_PRIO_INHERIT;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_THREAD_PRIO_PROTECT:
+-#if _POSIX_THREAD_PRIO_PROTECT > 0
++#if CONF_IS_DEFINED_SET (_POSIX_THREAD_PRIO_PROTECT)
+       return _POSIX_THREAD_PRIO_PROTECT;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_THREAD_PROCESS_SHARED:
+-#if _POSIX_THREAD_PROCESS_SHARED > 0
++#if CONF_IS_DEFINED_SET (_POSIX_THREAD_PROCESS_SHARED)
+       return _POSIX_THREAD_PROCESS_SHARED;
+ #else
+       return -1;
+@@ -833,152 +835,152 @@ __sysconf (name)
+ #endif
+ 
+     case _SC_ADVISORY_INFO:
+-#if _POSIX_ADVISORY_INFO > 0
++#if CONF_IS_DEFINED_SET (_POSIX_ADVISORY_INFO)
+       return _POSIX_ADVISORY_INFO;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_BARRIERS:
+-#if _POSIX_BARRIERS > 0
++#if CONF_IS_DEFINED_SET (_POSIX_BARRIERS)
+       return _POSIX_BARRIERS;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_BASE:
+-#if _POSIX_BASE > 0
++#if CONF_IS_DEFINED_SET (_POSIX_BASE)
+       return _POSIX_BASE;
+ #else
+       return -1;
+ #endif
+     case _SC_C_LANG_SUPPORT:
+-#if _POSIX_C_LANG_SUPPORT > 0
++#if CONF_IS_DEFINED_SET (_POSIX_C_LANG_SUPPORT)
+       return _POSIX_C_LANG_SUPPORT;
+ #else
+       return -1;
+ #endif
+     case _SC_C_LANG_SUPPORT_R:
+-#if _POSIX_C_LANG_SUPPORT_R > 0
++#if CONF_IS_DEFINED_SET (_POSIX_C_LANG_SUPPORT_R)
+       return _POSIX_C_LANG_SUPPORT_R;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_CLOCK_SELECTION:
+-#if _POSIX_CLOCK_SELECTION > 0
++#if CONF_IS_DEFINED_SET (_POSIX_CLOCK_SELECTION)
+       return _POSIX_CLOCK_SELECTION;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_CPUTIME:
+-#if _POSIX_CPUTIME > 0
++#if CONF_IS_DEFINED_SET (_POSIX_CPUTIME)
+       return _POSIX_CPUTIME;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_DEVICE_IO:
+-#if _POSIX_DEVICE_IO > 0
++#if CONF_IS_DEFINED_SET (_POSIX_DEVICE_IO)
+       return _POSIX_DEVICE_IO;
+ #else
+       return -1;
+ #endif
+     case _SC_DEVICE_SPECIFIC:
+-#if _POSIX_DEVICE_SPECIFIC > 0
++#if CONF_IS_DEFINED_SET (_POSIX_DEVICE_SPECIFIC)
+       return _POSIX_DEVICE_SPECIFIC;
+ #else
+       return -1;
+ #endif
+     case _SC_DEVICE_SPECIFIC_R:
+-#if _POSIX_DEVICE_SPECIFIC_R > 0
++#if CONF_IS_DEFINED_SET (_POSIX_DEVICE_SPECIFIC_R)
+       return _POSIX_DEVICE_SPECIFIC_R;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_FD_MGMT:
+-#if _POSIX_FD_MGMT > 0
++#if CONF_IS_DEFINED_SET (_POSIX_FD_MGMT)
+       return _POSIX_FD_MGMT;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_FIFO:
+-#if _POSIX_FIFO > 0
++#if CONF_IS_DEFINED_SET (_POSIX_FIFO)
+       return _POSIX_FIFO;
+ #else
+       return -1;
+ #endif
+     case _SC_PIPE:
+-#if _POSIX_PIPE > 0
++#if CONF_IS_DEFINED_SET (_POSIX_PIPE)
+       return _POSIX_PIPE;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_FILE_ATTRIBUTES:
+-#if _POSIX_FILE_ATTRIBUTES > 0
++#if CONF_IS_DEFINED_SET (_POSIX_FILE_ATTRIBUTES)
+       return _POSIX_FILE_ATTRIBUTES;
+ #else
+       return -1;
+ #endif
+     case _SC_FILE_LOCKING:
+-#if _POSIX_FILE_LOCKING > 0
++#if CONF_IS_DEFINED_SET (_POSIX_FILE_LOCKING)
+       return _POSIX_FILE_LOCKING;
+ #else
+       return -1;
+ #endif
+     case _SC_FILE_SYSTEM:
+-#if _POSIX_FILE_SYSTEM > 0
++#if CONF_IS_DEFINED_SET (_POSIX_FILE_SYSTEM)
+       return _POSIX_FILE_SYSTEM;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_MONOTONIC_CLOCK:
+-#if _POSIX_MONOTONIC_CLOCK
++#if CONF_IS_DEFINED_SET (_POSIX_MONOTONIC_CLOCK)
+       return _POSIX_MONOTONIC_CLOCK;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_MULTI_PROCESS:
+-#if _POSIX_MULTI_PROCESS > 0
++#if CONF_IS_DEFINED_SET (_POSIX_MULTI_PROCESS)
+       return _POSIX_MULTI_PROCESS;
+ #else
+       return -1;
+ #endif
+     case _SC_SINGLE_PROCESS:
+-#if _POSIX_SINGLE_PROCESS > 0
++#if CONF_IS_DEFINED_SET (_POSIX_SINGLE_PROCESS)
+       return _POSIX_SINGLE_PROCESS;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_NETWORKING:
+-#if _POSIX_NETWORKING > 0
++#if CONF_IS_DEFINED_SET (_POSIX_NETWORKING)
+       return _POSIX_NETWORKING;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_READER_WRITER_LOCKS:
+-#if _POSIX_READER_WRITER_LOCKS > 0
++#if CONF_IS_DEFINED_SET (_POSIX_READER_WRITER_LOCKS)
+       return _POSIX_READER_WRITER_LOCKS;
+ #else
+       return -1;
+ #endif
+     case _SC_SPIN_LOCKS:
+-#if _POSIX_SPIN_LOCKS > 0
++#if CONF_IS_DEFINED_SET (_POSIX_SPIN_LOCKS)
+       return _POSIX_SPIN_LOCKS;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_REGEXP:
+-#if _POSIX_REGEXP > 0
++#if CONF_IS_DEFINED_SET (_POSIX_REGEXP)
+       return _POSIX_REGEXP;
+ #else
+       return -1;
+@@ -989,81 +991,81 @@ __sysconf (name)
+       return -1;
+ 
+     case _SC_SHELL:
+-#if _POSIX_SHELL > 0
++#if CONF_IS_DEFINED_SET (_POSIX_SHELL)
+       return _POSIX_SHELL;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_SIGNALS:
+-#ifdef _POSIX_SIGNALS
++#if CONF_IS_DEFINED (_POSIX_SIGNALS)
+       return _POSIX_SIGNALS;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_SPAWN:
+-#if _POSIX_SPAWN > 0
++#if CONF_IS_DEFINED_SET (_POSIX_SPAWN)
+       return _POSIX_SPAWN;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_SPORADIC_SERVER:
+-#if _POSIX_SPORADIC_SERVER > 0
++#if CONF_IS_DEFINED_SET (_POSIX_SPORADIC_SERVER)
+       return _POSIX_SPORADIC_SERVER;
+ #else
+       return -1;
+ #endif
+     case _SC_THREAD_SPORADIC_SERVER:
+-#if _POSIX_THREAD_SPORADIC_SERVER > 0
++#if CONF_IS_DEFINED_SET (_POSIX_THREAD_SPORADIC_SERVER)
+       return _POSIX_THREAD_SPORADIC_SERVER;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_SYSTEM_DATABASE:
+-#if _POSIX_SYSTEM_DATABASE > 0
++#if CONF_IS_DEFINED_SET (_POSIX_SYSTEM_DATABASE)
+       return _POSIX_SYSTEM_DATABASE;
+ #else
+       return -1;
+ #endif
+     case _SC_SYSTEM_DATABASE_R:
+-#if _POSIX_SYSTEM_DATABASE_R > 0
++#if CONF_IS_DEFINED_SET (_POSIX_SYSTEM_DATABASE_R)
+       return _POSIX_SYSTEM_DATABASE_R;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_THREAD_CPUTIME:
+-#if _POSIX_THREAD_CPUTIME > 0
++#if CONF_IS_DEFINED_SET (_POSIX_THREAD_CPUTIME)
+       return _POSIX_THREAD_CPUTIME;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_TIMEOUTS:
+-#if _POSIX_TIMEOUTS > 0
++#if CONF_IS_DEFINED_SET (_POSIX_TIMEOUTS)
+       return _POSIX_TIMEOUTS;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_TYPED_MEMORY_OBJECTS:
+-#if _POSIX_TYPED_MEMORY_OBJECTS > 0
++#if CONF_IS_DEFINED_SET (_POSIX_TYPED_MEMORY_OBJECTS)
+       return _POSIX_TYPED_MEMORY_OBJECTS;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_USER_GROUPS:
+-#if _POSIX_USER_GROUPS > 0
++#if CONF_IS_DEFINED_SET (_POSIX_USER_GROUPS)
+       return _POSIX_USER_GROUPS;
+ #else
+       return -1;
+ #endif
+     case _SC_USER_GROUPS_R:
+-#if _POSIX_USER_GROUPS_R > 0
++#if CONF_IS_DEFINED_SET (_POSIX_USER_GROUPS_R)
+       return _POSIX_USER_GROUPS_R;
+ #else
+       return -1;
+@@ -1128,25 +1130,25 @@ __sysconf (name)
+ #endif
+ 
+     case _SC_TRACE:
+-#if _POSIX_TRACE > 0
++#if CONF_IS_DEFINED_SET (_POSIX_TRACE)
+       return _POSIX_TRACE;
+ #else
+       return -1;
+ #endif
+     case _SC_TRACE_EVENT_FILTER:
+-#if _POSIX_TRACE_EVENT_FILTER > 0
++#if CONF_IS_DEFINED_SET (_POSIX_TRACE_EVENT_FILTER)
+       return _POSIX_TRACE_EVENT_FILTER;
+ #else
+       return -1;
+ #endif
+     case _SC_TRACE_INHERIT:
+-#if _POSIX_TRACE_INHERIT > 0
++#if CONF_IS_DEFINED_SET (_POSIX_TRACE_INHERIT)
+       return _POSIX_TRACE_INHERIT;
+ #else
+       return -1;
+ #endif
+     case _SC_TRACE_LOG:
+-#if _POSIX_TRACE_LOG > 0
++#if CONF_IS_DEFINED_SET (_POSIX_TRACE_LOG)
+       return _POSIX_TRACE_LOG;
+ #else
+       return -1;
+@@ -1183,14 +1185,14 @@ __sysconf (name)
+       return 0;
+ 
+     case _SC_IPV6:
+-#if _POSIX_IPV6 > 0
++#if CONF_IS_DEFINED_SET (_POSIX_IPV6)
+       return _POSIX_IPV6;
+ #else
+       return -1;
+ #endif
+ 
+     case _SC_RAW_SOCKETS:
+-#if _POSIX_RAW_SOCKETS > 0
++#if CONF_IS_DEFINED_SET (_POSIX_RAW_SOCKETS)
+       return _POSIX_RAW_SOCKETS;
+ #else
+       return -1;
diff --git a/SOURCES/glibc-rh1505492-undef-51.patch b/SOURCES/glibc-rh1505492-undef-51.patch
new file mode 100644
index 0000000..99c7667
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-51.patch
@@ -0,0 +1,184 @@
+commit 50cbbaa935e92dc570fc899a17669cd6782b09cd
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Mon Dec 29 17:40:47 2014 +0530
+
+    Use posix-conf-vars.list to generate spec array
+    
+    This patch adds support to generate the spec array in getconf from the
+    conf.list.  The generated code is mostly unchanged.  the only changes
+    are due to the change in layout of the spec and val arrays in the ELF.
+    
+    The val array can also be auto-generated from posix-conf-vars.list
+    once the remaining macros are added to it.
+    
+            * posix/posix-conf-vars.list (SPEC:XBS5): Add sysconf prefix.
+            * posix/confstr.c: Define NEED_SPEC_ARRAY to 0.
+            * posix/posix-envs.def: Likewise.
+            * sysdeps/posix/sysconf.c: Likewise.
+            * posix/getconf.c: Define NEED_SPEC_ARRAY to 1.
+            (specs): Remove array.
+            * scripts/gen-posix-conf-vars.awk: Support generation of specs
+            array.
+
+diff --git a/posix/confstr.c b/posix/confstr.c
+index 5b03986a3678e007..0233ea94707ee627 100644
+--- a/posix/confstr.c
++++ b/posix/confstr.c
+@@ -21,6 +21,8 @@
+ #include <string.h>
+ #include <confstr.h>
+ #include "../version.h"
++
++#define NEED_SPEC_ARRAY 0
+ #include <posix-conf-vars.h>
+ 
+ /* If BUF is not NULL and LEN > 0, fill in at most LEN - 1 bytes
+diff --git a/posix/getconf.c b/posix/getconf.c
+index 9cb8f29be28466ff..bd844dead16e9400 100644
+--- a/posix/getconf.c
++++ b/posix/getconf.c
+@@ -26,6 +26,9 @@
+ #include "../version.h"
+ #define PACKAGE _libc_intl_domainname
+ 
++#define NEED_SPEC_ARRAY 1
++#include <posix-conf-vars.h>
++
+ struct conf
+   {
+     const char *name;
+@@ -1008,23 +1011,6 @@ static const struct conf vars[] =
+   };
+ 
+ 
+-static const struct { const char *name; int num; } specs[] =
+-  {
+-    { "XBS5_ILP32_OFF32", _SC_XBS5_ILP32_OFF32 },
+-    { "XBS5_ILP32_OFFBIG", _SC_XBS5_ILP32_OFFBIG },
+-    { "XBS5_LP64_OFF64", _SC_XBS5_LP64_OFF64 },
+-    { "XBS5_LPBIG_OFFBIG", _SC_XBS5_LPBIG_OFFBIG },
+-    { "POSIX_V6_ILP32_OFF32", _SC_V6_ILP32_OFF32 },
+-    { "POSIX_V6_ILP32_OFFBIG", _SC_V6_ILP32_OFFBIG },
+-    { "POSIX_V6_LP64_OFF64", _SC_V6_LP64_OFF64 },
+-    { "POSIX_V6_LPBIG_OFFBIG", _SC_V6_LPBIG_OFFBIG },
+-    { "POSIX_V7_ILP32_OFF32", _SC_V7_ILP32_OFF32 },
+-    { "POSIX_V7_ILP32_OFFBIG", _SC_V7_ILP32_OFFBIG },
+-    { "POSIX_V7_LP64_OFF64", _SC_V7_LP64_OFF64 },
+-    { "POSIX_V7_LPBIG_OFFBIG", _SC_V7_LPBIG_OFFBIG },
+-  };
+-static const int nspecs = sizeof (specs) / sizeof (specs[0]);
+-
+ extern const char *__progname;
+ 
+ 
+diff --git a/posix/posix-conf-vars.list b/posix/posix-conf-vars.list
+index 3e7e7cdaa9c46c85..601bc2fd33f72f27 100644
+--- a/posix/posix-conf-vars.list
++++ b/posix/posix-conf-vars.list
+@@ -1,7 +1,8 @@
+ # Configuration variables identified by getconf.  The heading of each section
+-# is of the format TYPE PREFIX with the opening curly brace on the same line.
+-# TYPE can either be SYSCONF, PATHCONF, CONFSTR or SPEC.  Variable names are
+-# put one on each line with a curly brace on its own line ending the section.
++# is of the format TYPE PREFIX SC_PREFIX with the opening curly brace on the
++# same line.  TYPE can either be SYSCONF, PATHCONF, CONFSTR or SPEC.  In the
++# absence of SC_PREFIX, _SC is used as the SC_PREFIX.  Variable names are put
++# one on each line with a curly brace on its own line ending the section.
+ 
+ SPEC POSIX {
+   V6_ILP32_OFF32
+@@ -104,7 +105,7 @@ SYSCONF POSIX {
+   RAW_SOCKETS
+ }
+ 
+-SPEC XBS5 {
++SPEC XBS5 _SC_XBS5 {
+   ILP32_OFF32
+   ILP32_OFFBIG
+   LP64_OFF64
+diff --git a/posix/posix-envs.def b/posix/posix-envs.def
+index e820e6dbe3fa3b61..428dbc23ceb7f64c 100644
+--- a/posix/posix-envs.def
++++ b/posix/posix-envs.def
+@@ -42,6 +42,7 @@
+    defined.  These are called with arguments V5, V6, V7 before and
+    after the relevant groups of environments.  */
+ 
++#define NEED_SPEC_ARRAY 0
+ #include <posix-conf-vars.h>
+ 
+ START_ENV_GROUP (V7)
+diff --git a/scripts/gen-posix-conf-vars.awk b/scripts/gen-posix-conf-vars.awk
+index 16e20fc1007bd2f5..0eca55d536bd7f70 100644
+--- a/scripts/gen-posix-conf-vars.awk
++++ b/scripts/gen-posix-conf-vars.awk
+@@ -15,12 +15,19 @@ $1 ~ /^#/ || $0 ~ /^\s*$/ {
+ $NF == "{" {
+   type = $1
+   prefix = $2
++
++  if (NF == 4)
++    sc_prefix = $3
++  else
++    sc_prefix = "_SC"
++
+   next
+ }
+ 
+ $1 == "}" {
+   prefix = ""
+   type = ""
++  sc_prefix = ""
+   next
+ }
+ 
+@@ -35,6 +42,7 @@ $1 == "}" {
+   # CONFSTR: A configuration string
+   # SYSCONF: A numeric value
+   # SPEC: A specification
++  sc_prefixes[prefix][$1] = sc_prefix
+   conf[prefix][$1] = type
+ }
+ 
+@@ -56,6 +64,26 @@ END {
+ 	printf "# endif\n"
+       }
+       printf "#endif\n\n"
++
++      # Build a name -> sysconf number associative array to print a C array at
++      # the end.
++      if (conf[p][c] == "SPEC") {
++	name = sprintf ("%s_%s", p, c)
++	num = sprintf ("%s_%s", sc_prefixes[p][c], c)
++	spec[name] = num
++      }
+     }
+   }
++
++  # Print the specification array.  Define the macro NEED_SPEC_ARRAY before
++  # including posix-conf-vars.h to make it available in the compilation unit.
++  print "#if NEED_SPEC_ARRAY"
++  print "static const struct { const char *name; int num; } specs[] ="
++  print "  {"
++  for (s in spec) {
++    printf "    { \"%s\", %s },\n", s, spec[s]
++  }
++  print "  };"
++  print "static const int nspecs = sizeof (specs) / sizeof (specs[0]);"
++  print "#endif"
+ }
+diff --git a/sysdeps/posix/sysconf.c b/sysdeps/posix/sysconf.c
+index 1e9d4e099e94981c..88aa151422dc56f9 100644
+--- a/sysdeps/posix/sysconf.c
++++ b/sysdeps/posix/sysconf.c
+@@ -31,9 +31,9 @@
+ #include <sys/types.h>
+ #include <regex.h>
+ 
++#define NEED_SPEC_ARRAY 0
+ #include <posix-conf-vars.h>
+ 
+-
+ #define NEED_CHECK_SPEC \
+   (!defined _XBS5_ILP32_OFF32 || !defined _XBS5_ILP32_OFFBIG \
+    || !defined _XBS5_LP64_OFF64 || !defined _XBS5_LPBIG_OFFBIG \
diff --git a/SOURCES/glibc-rh1505492-undef-52.patch b/SOURCES/glibc-rh1505492-undef-52.patch
new file mode 100644
index 0000000..f9d30cb
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-52.patch
@@ -0,0 +1,24 @@
+commit 6d6d7fde04c8ef830205a9900bf101597a2f4b18
+Author: Chris Metcalf <cmetcalf@ezchip.com>
+Date:   Mon Dec 29 23:14:38 2014 -0500
+
+    Fix a couple of -Wundef warnings.
+
+Conflicts:
+	sysdeps/unix/sysv/linux/tst-setgetname.c
+
+File removed manually; this test does not exist in our tree.
+
+diff --git a/stdlib/tst-limits.c b/stdlib/tst-limits.c
+index 6e51dcadb5baaabb..9aabc360f6b8c3f7 100644
+--- a/stdlib/tst-limits.c
++++ b/stdlib/tst-limits.c
+@@ -58,7 +58,7 @@ do_test (void)
+   /* Values from POSIX and Unix.  */
+ #ifdef PAGESIZE
+   TEST (PAGESIZE, "d", getpagesize ());
+-#elif PAGE_SIZE
++#elif defined (PAGE_SIZE)
+   TEST (PAGE_SIZE, "d", getpagesize ());
+ #endif
+ 
diff --git a/SOURCES/glibc-rh1505492-undef-53.patch b/SOURCES/glibc-rh1505492-undef-53.patch
new file mode 100644
index 0000000..3e84a83
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-53.patch
@@ -0,0 +1,29 @@
+commit 182d6096fe76b3d63b1151090cd07e60eca39302
+Author: Mike Frysinger <vapier@gentoo.org>
+Date:   Wed Jul 29 11:35:37 2015 -0400
+
+    mmap64: fix undef warnings
+    
+    The only target that defines this is m68k, so move the existing fallback
+    define up to avoid warnings on other systems.
+
+diff --git a/sysdeps/unix/sysv/linux/mmap64.c b/sysdeps/unix/sysv/linux/mmap64.c
+index 2c8304d860f19d58..fcaa6be1f41b3ffd 100644
+--- a/sysdeps/unix/sysv/linux/mmap64.c
++++ b/sysdeps/unix/sysv/linux/mmap64.c
+@@ -26,12 +26,12 @@
+ #include <kernel-features.h>
+ 
+ /* This is always 12, even on architectures where PAGE_SHIFT != 12.  */
++#ifndef MMAP2_PAGE_SHIFT
++# define MMAP2_PAGE_SHIFT 12
++#endif
+ #if MMAP2_PAGE_SHIFT == -1
+ static int page_shift;
+ #else
+-# ifndef MMAP2_PAGE_SHIFT
+-#  define MMAP2_PAGE_SHIFT 12
+-# endif
+ #define page_shift MMAP2_PAGE_SHIFT
+ #endif
+ 
diff --git a/SOURCES/glibc-rh1505492-undef-54.patch b/SOURCES/glibc-rh1505492-undef-54.patch
new file mode 100644
index 0000000..0c95056
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-54.patch
@@ -0,0 +1,77 @@
+commit ccb729df47188874401c655dda8d47b55cddd3b7
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Wed Aug 19 00:50:17 2015 +0000
+
+    Fix -Wundef warnings in login/tst-utmp.c.
+    
+    To remove -Wno-error=undef, we need to fix the remaining cases where
+    there are -Wundef warnings in the testsuite.  One of those places is
+    in login/tst-utmp.c.
+    
+    When included from tst-utmpx.c, <utmpx.h> is included instead of
+    <utmp.h>, meaning the _HAVE_UT_* macros are not defined.  The test is
+    prepared for them not being defined, in that all the relevant
+    conditionals also include "defined UTMPX".  However, they test the
+    _HAVE_UT_* macros first, so resulting in -Wundef warnings.
+    
+    This patch does the minimal fix of swapping the || operands.  This is
+    logically correct - avoiding checking a macro we know will not be
+    defined in the case where it is not defined.  It won't fix such
+    warnings for the case where the toplevel bits/utmp.h is used and most
+    _HAVE_UT_* aren't defined at all even when <utmp.h> is included, but
+    that case doesn't apply to any current glibc configuration.  Fixing it
+    would also be tricky in that, while glibc itself consistently uses
+    _HAVE_UT_* in ways that would work with 0 instead of undefined,
+    external packages that use the macros expect defined / undefined
+    instead of 1 / 0 (codesearch.debian.net shows uses by util-linux,
+    python-utmp, libsys-utmp-perl).
+    
+    Tested for x86_64.
+    
+            * login/tst-utmp.c [_HAVE_UT_TYPE || defined UTMPX]: Change
+            conditional to [defined UTMPX || _HAVE_UT_TYPE].
+            [_HAVE_UT_TV || defined UTMPX]: Change conditional to [defined
+            UTMPX || _HAVE_UT_TV].
+            [_HAVE_UT_TV - 0 || defined UTMPX]: Change conditional to [defined
+            UTMPX || _HAVE_UT_TV - 0].
+
+diff --git a/login/tst-utmp.c b/login/tst-utmp.c
+index 7cc39cb2b7ff2dba..84945934e249ca25 100644
+--- a/login/tst-utmp.c
++++ b/login/tst-utmp.c
+@@ -39,7 +39,7 @@
+ #endif
+ 
+ 
+-#if _HAVE_UT_TYPE || defined UTMPX
++#if defined UTMPX || _HAVE_UT_TYPE
+ 
+ /* Prototype for our test function.  */
+ static int do_test (int argc, char *argv[]);
+@@ -75,7 +75,7 @@ do_prepare (int argc, char *argv[])
+ 
+ struct utmp entry[] =
+ {
+-#if _HAVE_UT_TV || defined UTMPX
++#if defined UTMPX || _HAVE_UT_TV
+ #define UT(a)  .ut_tv = { .tv_sec = (a)}
+ #else
+ #define UT(a)  .ut_time = (a)
+@@ -167,7 +167,7 @@ simulate_login (const char *line, const char *user)
+ 	    entry[n].ut_pid = (entry_pid += 27);
+ 	  entry[n].ut_type = USER_PROCESS;
+ 	  strncpy (entry[n].ut_user, user, sizeof (entry[n].ut_user));
+-#if _HAVE_UT_TV - 0 || defined UTMPX
++#if defined UTMPX || _HAVE_UT_TV - 0
+ 	  entry[n].ut_tv.tv_sec = (entry_time += 1000);
+ #else
+           entry[n].ut_time = (entry_time += 1000);
+@@ -201,7 +201,7 @@ simulate_logout (const char *line)
+ 	{
+ 	  entry[n].ut_type = DEAD_PROCESS;
+ 	  strncpy (entry[n].ut_user, "", sizeof (entry[n].ut_user));
+-#if _HAVE_UT_TV - 0 || defined UTMPX
++#if defined UTMPX || _HAVE_UT_TV - 0
+           entry[n].ut_tv.tv_sec = (entry_time += 1000);
+ #else
+           entry[n].ut_time = (entry_time += 1000);
diff --git a/SOURCES/glibc-rh1505492-undef-55.patch b/SOURCES/glibc-rh1505492-undef-55.patch
new file mode 100644
index 0000000..c06614e
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-55.patch
@@ -0,0 +1,38 @@
+commit 9536661c6e8045f810cd227a7d676eaff19bf1b8
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Wed Aug 19 00:51:07 2015 +0000
+
+    Fix -Wundef warnings in elf/tst-execstack.c.
+    
+    To remove -Wno-error=undef, we need to fix the remaining cases where
+    there are -Wundef warnings in the testsuite.  One of those places is
+    in elf/tst-execstack.c.
+    
+    tst-execstack.c tests USE_PTHREADS with #if.  nptl/tst-execstack.c
+    defines USE_PTHREADS to 1 before including ../elf/tst-execstack.c,
+    while elf/tst-execstack.c, when compiled directly, leaves it
+    undefined.
+    
+    This patch adds a setting of CPPFLAGS-tst-execstack.c to
+    elf/Makefile.  An alternative approach would be to rename
+    tst-execstack.c to tst-execstack-main.c and have two different
+    tst-execstack.c files include it, each with an appropriate
+    USE_PTHREADS #define.
+    
+    Tested for x86_64.
+    
+            * elf/Makefile [$(have-z-execstack) = yes]
+            (CPPFLAGS-tst-execstack.c): New variable.
+
+diff --git a/elf/Makefile b/elf/Makefile
+index 862e04eb484fa3f5..dea66ca1c12e5c29 100644
+--- a/elf/Makefile
++++ b/elf/Makefile
+@@ -866,6 +866,7 @@ endif
+ ifeq ($(have-z-execstack),yes)
+ $(objpfx)tst-execstack: $(libdl)
+ $(objpfx)tst-execstack.out: $(objpfx)tst-execstack-mod.so
++CPPFLAGS-tst-execstack.c = -DUSE_PTHREADS=0
+ LDFLAGS-tst-execstack = -Wl,-z,noexecstack
+ LDFLAGS-tst-execstack-mod = -Wl,-z,execstack
+ 
diff --git a/SOURCES/glibc-rh1505492-undef-56.patch b/SOURCES/glibc-rh1505492-undef-56.patch
new file mode 100644
index 0000000..d265c34
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-56.patch
@@ -0,0 +1,123 @@
+commit 37f8abad1c7b274e66eaf2d04684bd8a7ba0bcef
+Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
+Date:   Mon Jan 30 18:07:32 2017 -0200
+
+    nptl: Remove COLORING_INCREMENT
+    
+    This patch removes the COLORING_INCREMENT define and usage on allocatestack.c.
+    It has not been used since 564cd8b67ec487f (glibc-2.3.3) by any architecture.
+    The idea is to simplify the code by removing obsolete code.
+    
+            * nptl/allocatestack.c [COLORING_INCREMENT] (nptl_ncreated): Remove.
+            (allocate_stack): Remove COLORING_INCREMENT usage.
+            * nptl/stack-aliasing.h (COLORING_INCREMENT). Likewise.
+            * sysdeps/i386/i686/stack-aliasing.h (COLORING_INCREMENT): Likewise.
+
+Conflicts:
+	nptl/allocatestack.c
+
+Textual conflict due to missing backport of commit
+a1ffb40e32741f992c743e7b16c061fefa3747ac (Use glibc_likely instead
+__builtin_expect.).
+
+diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c
+index 0fba6ce3474e8b35..00f9dcffe721a6b3 100644
+--- a/nptl/allocatestack.c
++++ b/nptl/allocatestack.c
+@@ -124,11 +124,6 @@ static uintptr_t in_flight_stack;
+ list_t __stack_user __attribute__ ((nocommon));
+ hidden_data_def (__stack_user)
+ 
+-#if COLORING_INCREMENT != 0
+-/* Number of threads created.  */
+-static unsigned int nptl_ncreated;
+-#endif
+-
+ 
+ /* Check whether the stack is still used or not.  */
+ #define FREE_P(descr) ((descr)->tid <= 0)
+@@ -456,14 +451,6 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
+       const int prot = (PROT_READ | PROT_WRITE
+ 			| ((GL(dl_stack_flags) & PF_X) ? PROT_EXEC : 0));
+ 
+-#if COLORING_INCREMENT != 0
+-      /* Add one more page for stack coloring.  Don't do it for stacks
+-	 with 16 times pagesize or larger.  This might just cause
+-	 unnecessary misalignment.  */
+-      if (size <= 16 * pagesize_m1)
+-	size += pagesize_m1 + 1;
+-#endif
+-
+       /* Adjust the stack size for alignment.  */
+       size &= ~__static_tls_align_m1;
+       assert (size != 0);
+@@ -506,34 +493,11 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
+ 	     So we can never get a null pointer back from mmap.  */
+ 	  assert (mem != NULL);
+ 
+-#if COLORING_INCREMENT != 0
+-	  /* Atomically increment NCREATED.  */
+-	  unsigned int ncreated = atomic_increment_val (&nptl_ncreated);
+-
+-	  /* We chose the offset for coloring by incrementing it for
+-	     every new thread by a fixed amount.  The offset used
+-	     module the page size.  Even if coloring would be better
+-	     relative to higher alignment values it makes no sense to
+-	     do it since the mmap() interface does not allow us to
+-	     specify any alignment for the returned memory block.  */
+-	  size_t coloring = (ncreated * COLORING_INCREMENT) & pagesize_m1;
+-
+-	  /* Make sure the coloring offsets does not disturb the alignment
+-	     of the TCB and static TLS block.  */
+-	  if (__builtin_expect ((coloring & __static_tls_align_m1) != 0, 0))
+-	    coloring = (((coloring + __static_tls_align_m1)
+-			 & ~(__static_tls_align_m1))
+-			& ~pagesize_m1);
+-#else
+-	  /* Unless specified we do not make any adjustments.  */
+-# define coloring 0
+-#endif
+-
+ 	  /* Place the thread descriptor at the end of the stack.  */
+ #if TLS_TCB_AT_TP
+-	  pd = (struct pthread *) ((char *) mem + size - coloring) - 1;
++	  pd = (struct pthread *) ((char *) mem + size) - 1;
+ #elif TLS_DTV_AT_TP
+-	  pd = (struct pthread *) ((((uintptr_t) mem + size - coloring
++	  pd = (struct pthread *) ((((uintptr_t) mem + size
+ 				    - __static_tls_size)
+ 				    & ~__static_tls_align_m1)
+ 				   - TLS_PRE_TCB_SIZE);
+diff --git a/nptl/stack-aliasing.h b/nptl/stack-aliasing.h
+index 526b54e18f7e0a27..62fdc9265e0038e6 100644
+--- a/nptl/stack-aliasing.h
++++ b/nptl/stack-aliasing.h
+@@ -16,12 +16,6 @@
+    License along with the GNU C Library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+ 
+-/* This is a number of bytes (less than a page) by which to "color" the
+-   starting stack address of new threads.  This number is multiplied by the
+-   number of threads created so far and then truncated modulo page size,
+-   to get a roughly even distribution of values for different threads.  */
+-#define COLORING_INCREMENT      0
+-
+ /* This is a number of bytes that is an alignment that should be avoided
+    when choosing the exact size of a new thread's stack.  If the size
+    chosen is aligned to this, an extra page will be added to render the
+diff --git a/sysdeps/i386/i686/stack-aliasing.h b/sysdeps/i386/i686/stack-aliasing.h
+index 1e35ceb2061d60f9..d73e45461f928a6a 100644
+--- a/sysdeps/i386/i686/stack-aliasing.h
++++ b/sysdeps/i386/i686/stack-aliasing.h
+@@ -16,11 +16,6 @@
+    License along with the GNU C Library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+ 
+-/* It turns out that stack coloring is in general not good on P4s.  Some
+-   applications will benefit.  We will probably have a configuration option
+-   at some point.  To enable coloring, set this to 128.  */
+-#define COLORING_INCREMENT      0
+-
+ /* What is useful is to avoid the 64k aliasing problem which reliably
+    happens if all stacks use sizes which are a multiple of 64k.  Tell
+    the stack allocator to disturb this by allocation one more page if
diff --git a/SOURCES/glibc-rh1505492-undef-6.patch b/SOURCES/glibc-rh1505492-undef-6.patch
new file mode 100644
index 0000000..8a93815
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-6.patch
@@ -0,0 +1,20 @@
+commit 9a80491d4931c9bc0f65887b7f67346f866cf1b9
+Author: Andreas Schwab <schwab@linux-m68k.org>
+Date:   Fri Feb 21 11:32:19 2014 +0100
+
+    Add GLIBC_2.17 to librt in Version.def
+    
+    This is needed because the version is used in SHLIB_COMPAT.
+
+diff --git a/Versions.def b/Versions.def
+index 725f5d827ba3ec94..05a94373c6ecfe61 100644
+--- a/Versions.def
++++ b/Versions.def
+@@ -121,6 +121,7 @@ librt {
+   GLIBC_2.3.4
+   GLIBC_2.4
+   GLIBC_2.7
++  GLIBC_2.17
+ }
+ libutil {
+   GLIBC_2.0
diff --git a/SOURCES/glibc-rh1505492-undef-7.patch b/SOURCES/glibc-rh1505492-undef-7.patch
new file mode 100644
index 0000000..17b1899
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-7.patch
@@ -0,0 +1,32 @@
+commit d7329d4b4d297b5638aef7fc4d5eaf9ad7845d7a
+Author: Roland McGrath <roland@hack.frob.com>
+Date:   Fri Mar 14 10:46:38 2014 -0700
+
+    Fix two stray cases using #ifdef vs #if for TLS_TCB_AT_TP.
+
+diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
+index 9f2016c19f0c8248..1083d6faacca5ab6 100644
+--- a/nptl/pthread_create.c
++++ b/nptl/pthread_create.c
+@@ -460,7 +460,7 @@ __pthread_create_2_1 (newthread, attr, start_routine, arg)
+      performed in 'get_cached_stack'.  This way we avoid doing this if
+      the stack freshly allocated with 'mmap'.  */
+ 
+-#ifdef TLS_TCB_AT_TP
++#if TLS_TCB_AT_TP
+   /* Reference to the TCB itself.  */
+   pd->header.self = pd;
+ 
+diff --git a/nptl/sysdeps/pthread/createthread.c b/nptl/sysdeps/pthread/createthread.c
+index e8e10dcf73ed382d..baa12eb26c80e465 100644
+--- a/nptl/sysdeps/pthread/createthread.c
++++ b/nptl/sysdeps/pthread/createthread.c
+@@ -146,7 +146,7 @@ static int
+ create_thread (struct pthread *pd, const struct pthread_attr *attr,
+ 	       STACK_VARIABLES_PARMS)
+ {
+-#ifdef TLS_TCB_AT_TP
++#if TLS_TCB_AT_TP
+   assert (pd->header.tcb != NULL);
+ #endif
+ 
diff --git a/SOURCES/glibc-rh1505492-undef-8.patch b/SOURCES/glibc-rh1505492-undef-8.patch
new file mode 100644
index 0000000..93dabb6
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-8.patch
@@ -0,0 +1,329 @@
+commit 498a22333b835a598ccaed4656e97a0ec3573665
+Author: Roland McGrath <roland@hack.frob.com>
+Date:   Fri Mar 14 10:44:34 2014 -0700
+
+    Compile with -Wundef.
+
+Conflicts:
+	Makeconfig
+	  (Textual conflict due to glibc-rh1418978-2-6.patch.)
+	sysdeps/microblaze/nptl/tls.h
+	  (Our tree does not have a microblaze port, removed manually.)
+
+diff --git a/Makeconfig b/Makeconfig
+index f23fd93febdf4a86..02f1cc1255c5ac07 100644
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -643,6 +643,7 @@ ifeq ($(all-warnings),yes)
+ else
+ +gccwarn := -Wall -Wwrite-strings -Winline
+ endif
+++gccwarn += -Wundef
+ +gccwarn-c = -Wstrict-prototypes -Werror=implicit-function-declaration
+ 
+ # We do not depend on the address of constants in different files to be
+diff --git a/include/errno.h b/include/errno.h
+index d26a9ee3ff320e3a..7df41dfc3166ef90 100644
+--- a/include/errno.h
++++ b/include/errno.h
+@@ -6,6 +6,11 @@
+ 
+ # if IS_IN (rtld)
+ #  include <dl-sysdep.h>
++#  ifndef RTLD_PRIVATE_ERRNO
++#   error "dl-sysdep.h must define RTLD_PRIVATE_ERRNO!"
++#  endif
++# else
++#  define RTLD_PRIVATE_ERRNO	0
+ # endif
+ 
+ # if RTLD_PRIVATE_ERRNO
+diff --git a/include/stackinfo.h b/include/stackinfo.h
+new file mode 100644
+index 0000000000000000..b9b227848753ceb8
+--- /dev/null
++++ b/include/stackinfo.h
+@@ -0,0 +1,42 @@
++/* Details about the machine's stack: wrapper header.
++   Copyright (C) 2014 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 _INCLUDE_STACKINFO_H
++#define _INCLUDE_STACKINFO_H	1
++
++/* A sysdeps/.../stackinfo.h file defines details for the CPU.
++   It is obliged to define either _STACK_GROWS_DOWN or _STACK_GROWS_UP.  */
++#include_next <stackinfo.h>
++
++#if defined _STACK_GROWS_DOWN && _STACK_GROWS_DOWN
++# ifdef _STACK_GROWS_UP
++#  error "stackinfo.h should not define both!"
++# else
++#  define _STACK_GROWS_UP	0
++# endif
++#elif defined _STACK_GROWS_UP && _STACK_GROWS_UP
++# ifdef _STACK_GROWS_DOWN
++#  error "stackinfo.h should not define both!"
++# else
++#  define _STACK_GROWS_DOWN	0
++# endif
++#else
++# error "stackinfo.h must define _STACK_GROWS_UP or _STACK_GROWS_DOWN!"
++#endif
++
++#endif  /* include/stackinfo.h */
+diff --git a/nptl/sysdeps/i386/tls.h b/nptl/sysdeps/i386/tls.h
+index 90c7a534bfd0ed16..55877d71d2051d4c 100644
+--- a/nptl/sysdeps/i386/tls.h
++++ b/nptl/sysdeps/i386/tls.h
+@@ -102,9 +102,6 @@ union user_desc_init
+ };
+ 
+ 
+-/* Get the thread descriptor definition.  */
+-# include <nptl/descr.h>
+-
+ /* This is the size of the initial TCB.  Can't be just sizeof (tcbhead_t),
+    because NPTL getpid, __libc_alloca_cutoff etc. need (almost) the whole
+    struct pthread even when not linked with -lpthread.  */
+@@ -122,6 +119,10 @@ union user_desc_init
+ /* The TCB can have any size and the memory following the address the
+    thread pointer points to is unspecified.  Allocate the TCB there.  */
+ # define TLS_TCB_AT_TP	1
++# define TLS_DTV_AT_TP	0
++
++/* Get the thread descriptor definition.  */
++# include <nptl/descr.h>
+ 
+ 
+ /* Install the dtv pointer.  The pointer passed is to the element with
+diff --git a/nptl/sysdeps/powerpc/tls.h b/nptl/sysdeps/powerpc/tls.h
+index 33efc7aea638f138..a04dfa89aa1ec73c 100644
+--- a/nptl/sysdeps/powerpc/tls.h
++++ b/nptl/sysdeps/powerpc/tls.h
+@@ -49,6 +49,7 @@ typedef union dtv
+ 
+ /* The TP points to the start of the thread blocks.  */
+ # define TLS_DTV_AT_TP	1
++# define TLS_TCB_AT_TP	0
+ 
+ /* We use the multiple_threads field in the pthread struct */
+ #define TLS_MULTIPLE_THREADS_IN_TCB	1
+@@ -56,6 +57,7 @@ typedef union dtv
+ /* Get the thread descriptor definition.  */
+ # include <nptl/descr.h>
+ 
++
+ /* The stack_guard is accessed directly by GCC -fstack-protector code,
+    so it is a part of public ABI.  The dtv and pointer_guard fields
+    are private.  */
+diff --git a/nptl/sysdeps/s390/tls.h b/nptl/sysdeps/s390/tls.h
+index 4b1ce051c4a87652..580196b7bfee3046 100644
+--- a/nptl/sysdeps/s390/tls.h
++++ b/nptl/sysdeps/s390/tls.h
+@@ -73,9 +73,6 @@ typedef struct
+ /* Get system call information.  */
+ # include <sysdep.h>
+ 
+-/* Get the thread descriptor definition.  */
+-# include <nptl/descr.h>
+-
+ /* This is the size of the initial TCB.  Can't be just sizeof (tcbhead_t),
+    because NPTL getpid, __libc_alloca_cutoff etc. need (almost) the whole
+    struct pthread even when not linked with -lpthread.  */
+@@ -93,6 +90,10 @@ typedef struct
+ /* The TCB can have any size and the memory following the address the
+    thread pointer points to is unspecified.  Allocate the TCB there.  */
+ # define TLS_TCB_AT_TP	1
++# define TLS_DTV_AT_TP	0
++
++/* Get the thread descriptor definition.  */
++# include <nptl/descr.h>
+ 
+ 
+ /* Install the dtv pointer.  The pointer passed is to the element with
+diff --git a/nptl/sysdeps/sh/tls.h b/nptl/sysdeps/sh/tls.h
+index a7f53dfecf0ca6d6..4659af51c0be7595 100644
+--- a/nptl/sysdeps/sh/tls.h
++++ b/nptl/sysdeps/sh/tls.h
+@@ -76,6 +76,7 @@ typedef struct
+ 
+ /* The TLS blocks start right after the TCB.  */
+ # define TLS_DTV_AT_TP	1
++# define TLS_TCB_AT_TP	0
+ 
+ /* Get the thread descriptor definition.  */
+ # include <nptl/descr.h>
+diff --git a/nptl/sysdeps/sparc/tls.h b/nptl/sysdeps/sparc/tls.h
+index cfc9d96c67027caf..2ef0d4e1012259ad 100644
+--- a/nptl/sysdeps/sparc/tls.h
++++ b/nptl/sysdeps/sparc/tls.h
+@@ -69,9 +69,6 @@ typedef struct
+ /* Get system call information.  */
+ # include <sysdep.h>
+ 
+-/* Get the thread descriptor definition.  */
+-# include <nptl/descr.h>
+-
+ register struct pthread *__thread_self __asm__("%g7");
+ 
+ /* This is the size of the initial TCB.  Can't be just sizeof (tcbhead_t),
+@@ -91,6 +88,10 @@ register struct pthread *__thread_self __asm__("%g7");
+ /* The TCB can have any size and the memory following the address the
+    thread pointer points to is unspecified.  Allocate the TCB there.  */
+ # define TLS_TCB_AT_TP	1
++# define TLS_DTV_AT_TP	0
++
++/* Get the thread descriptor definition.  */
++# include <nptl/descr.h>
+ 
+ /* Install the dtv pointer.  The pointer passed is to the element with
+    index -1 which contain the length.  */
+diff --git a/nptl/sysdeps/x86_64/tls.h b/nptl/sysdeps/x86_64/tls.h
+index cfba4e142ac5dae8..37e9af71b80d18b0 100644
+--- a/nptl/sysdeps/x86_64/tls.h
++++ b/nptl/sysdeps/x86_64/tls.h
+@@ -91,10 +91,6 @@ typedef struct
+ /* Get system call information.  */
+ # include <sysdep.h>
+ 
+-
+-/* Get the thread descriptor definition.  */
+-# include <nptl/descr.h>
+-
+ #ifndef LOCK_PREFIX
+ # ifdef UP
+ #  define LOCK_PREFIX	/* nothing */
+@@ -120,6 +116,10 @@ typedef struct
+ /* The TCB can have any size and the memory following the address the
+    thread pointer points to is unspecified.  Allocate the TCB there.  */
+ # define TLS_TCB_AT_TP	1
++# define TLS_DTV_AT_TP	0
++
++/* Get the thread descriptor definition.  */
++# include <nptl/descr.h>
+ 
+ 
+ /* Install the dtv pointer.  The pointer passed is to the element with
+diff --git a/ports/sysdeps/hppa/nptl/tls.h b/ports/sysdeps/hppa/nptl/tls.h
+index 5eb55a53603bb31e..be14fe6599c9f41b 100644
+--- a/ports/sysdeps/hppa/nptl/tls.h
++++ b/ports/sysdeps/hppa/nptl/tls.h
+@@ -51,6 +51,7 @@ typedef union dtv
+ 
+ /* The TP points to the start of the thread blocks.  */
+ # define TLS_DTV_AT_TP	1
++# define TLS_TCB_AT_TP	0
+ 
+ /* Get the thread descriptor definition.  */
+ # include <nptl/descr.h>
+diff --git a/sysdeps/aarch64/nptl/tls.h b/sysdeps/aarch64/nptl/tls.h
+index 05135db57ab69ef6..e08ff732efcc4fa2 100644
+--- a/sysdeps/aarch64/nptl/tls.h
++++ b/sysdeps/aarch64/nptl/tls.h
+@@ -48,6 +48,7 @@ typedef union dtv
+ 
+ /* The TP points to the start of the thread blocks.  */
+ # define TLS_DTV_AT_TP	1
++# define TLS_TCB_AT_TP	0
+ 
+ /* Get the thread descriptor definition.  */
+ # include <nptl/descr.h>
+diff --git a/sysdeps/alpha/nptl/tls.h b/sysdeps/alpha/nptl/tls.h
+index 18c29c80fa369e35..f593ba7162954e99 100644
+--- a/sysdeps/alpha/nptl/tls.h
++++ b/sysdeps/alpha/nptl/tls.h
+@@ -42,6 +42,7 @@ typedef union dtv
+ 
+ /* The TP points to the start of the thread blocks.  */
+ # define TLS_DTV_AT_TP	1
++# define TLS_TCB_AT_TP	0
+ 
+ /* Get the thread descriptor definition.  */
+ # include <nptl/descr.h>
+diff --git a/sysdeps/arm/nptl/tls.h b/sysdeps/arm/nptl/tls.h
+index 52f695e58b22b406..00b1e53c33064a2e 100644
+--- a/sysdeps/arm/nptl/tls.h
++++ b/sysdeps/arm/nptl/tls.h
+@@ -49,6 +49,7 @@ typedef union dtv
+ 
+ /* The TP points to the start of the thread blocks.  */
+ # define TLS_DTV_AT_TP	1
++# define TLS_TCB_AT_TP	0
+ 
+ /* Get the thread descriptor definition.  */
+ # include <nptl/descr.h>
+diff --git a/sysdeps/ia64/nptl/tls.h b/sysdeps/ia64/nptl/tls.h
+index 77574e55db890043..f270f958bcfc53de 100644
+--- a/sysdeps/ia64/nptl/tls.h
++++ b/sysdeps/ia64/nptl/tls.h
+@@ -87,6 +87,7 @@ register struct pthread *__thread_self __asm__("r13");
+ 
+ /* The DTV is allocated at the TP; the TCB is placed elsewhere.  */
+ # define TLS_DTV_AT_TP	1
++# define TLS_TCB_AT_TP	0
+ 
+ /* Get the thread descriptor definition.  */
+ # include <nptl/descr.h>
+diff --git a/sysdeps/m68k/nptl/tls.h b/sysdeps/m68k/nptl/tls.h
+index 8b0909237b303695..7f4bbfb9162dd610 100644
+--- a/sysdeps/m68k/nptl/tls.h
++++ b/sysdeps/m68k/nptl/tls.h
+@@ -49,6 +49,7 @@ typedef union dtv
+ 
+ /* The TP points to the start of the thread blocks.  */
+ # define TLS_DTV_AT_TP	1
++# define TLS_TCB_AT_TP	0
+ 
+ /* Get the thread descriptor definition.  */
+ # include <nptl/descr.h>
+diff --git a/sysdeps/mach/hurd/i386/tls.h b/sysdeps/mach/hurd/i386/tls.h
+index d0a72f0e5c032820..8619820d3b0502b5 100644
+--- a/sysdeps/mach/hurd/i386/tls.h
++++ b/sysdeps/mach/hurd/i386/tls.h
+@@ -26,6 +26,7 @@
+ /* The TCB can have any size and the memory following the address the
+    thread pointer points to is unspecified.  Allocate the TCB there.  */
+ #define TLS_TCB_AT_TP	1
++#define TLS_DTV_AT_TP	0
+ 
+ #ifndef __ASSEMBLER__
+ 
+diff --git a/sysdeps/mips/nptl/tls.h b/sysdeps/mips/nptl/tls.h
+index 8a97437bad4752c4..669a79c0c64cb566 100644
+--- a/sysdeps/mips/nptl/tls.h
++++ b/sysdeps/mips/nptl/tls.h
+@@ -62,6 +62,7 @@ typedef union dtv
+ 
+ /* The TP points to the start of the thread blocks.  */
+ # define TLS_DTV_AT_TP	1
++# define TLS_TCB_AT_TP	0
+ 
+ /* Get the thread descriptor definition.  */
+ # include <nptl/descr.h>
+diff --git a/sysdeps/tile/nptl/tls.h b/sysdeps/tile/nptl/tls.h
+index 303a95e000fee30f..132de9021e5651f0 100644
+--- a/sysdeps/tile/nptl/tls.h
++++ b/sysdeps/tile/nptl/tls.h
+@@ -49,6 +49,7 @@ typedef union dtv
+ 
+ /* The TP points to the start of the thread blocks.  */
+ # define TLS_DTV_AT_TP	1
++# define TLS_TCB_AT_TP	0
+ 
+ /* We use the multiple_threads field in the pthread struct */
+ #define TLS_MULTIPLE_THREADS_IN_TCB	1
diff --git a/SOURCES/glibc-rh1505492-undef-9.patch b/SOURCES/glibc-rh1505492-undef-9.patch
new file mode 100644
index 0000000..78f8a48
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-9.patch
@@ -0,0 +1,32 @@
+commit fcd89ebe4f5ea948ff4c796771b918cde8960721
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Mon Mar 17 19:31:46 2014 +0530
+
+    Get rid of __LT_SPINLOCK_INIT
+    
+    We got rid of LinuxThreads in 2005, but we didn't remove
+    __LT_SPINLOCK_INIT back then.  Do it now.
+    
+            * nptl/sysdeps/pthread/bits/libc-lockP.h [defined NOT_IN_libc
+            && !defined IS_IN_libpthread && __LT_SPINNOCK_INIT != 0]:
+            Remove.
+
+diff --git a/nptl/sysdeps/pthread/bits/libc-lockP.h b/nptl/sysdeps/pthread/bits/libc-lockP.h
+index 962a292308f92267..07e0ef62909b9e9e 100644
+--- a/nptl/sysdeps/pthread/bits/libc-lockP.h
++++ b/nptl/sysdeps/pthread/bits/libc-lockP.h
+@@ -78,13 +78,8 @@ typedef pthread_key_t __libc_key_t;
+   CLASS __libc_lock_t NAME = LLL_LOCK_INITIALIZER;
+ # endif
+ #else
+-# if __LT_SPINLOCK_INIT == 0
+-#  define __libc_lock_define_initialized(CLASS,NAME) \
++# define __libc_lock_define_initialized(CLASS,NAME) \
+   CLASS __libc_lock_t NAME;
+-# else
+-#  define __libc_lock_define_initialized(CLASS,NAME) \
+-  CLASS __libc_lock_t NAME = PTHREAD_MUTEX_INITIALIZER;
+-# endif
+ #endif
+ 
+ #define __libc_rwlock_define_initialized(CLASS,NAME) \
diff --git a/SOURCES/glibc-rh1505492-undef-abi.patch b/SOURCES/glibc-rh1505492-undef-abi.patch
new file mode 100644
index 0000000..d5f1a7b
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-abi.patch
@@ -0,0 +1,17 @@
+Add missing ABI versions which are referenced in
+glibc-rh677316-resolv.patch, to suppress -Wundef warnings.
+(Not needed upstream because it does not use future ABI versions.)
+
+diff --git a/Versions.def b/Versions.def
+index 41a0d84bcf29a780..725f5d827ba3ec94 100644
+--- a/Versions.def
++++ b/Versions.def
+@@ -109,6 +109,8 @@ libresolv {
+   GLIBC_2.2
+   GLIBC_2.3.2
+   GLIBC_2.9
++  GLIBC_2.25
++  GLIBC_2.26
+   GLIBC_PRIVATE
+ }
+ librt {
diff --git a/SOURCES/glibc-rh1505492-undef-activate.patch b/SOURCES/glibc-rh1505492-undef-activate.patch
new file mode 100644
index 0000000..a7bafaa
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-activate.patch
@@ -0,0 +1,27 @@
+commit 48bb14bdbbeb09cb3cd950d7346688958f1bce1a
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Thu Aug 20 20:50:05 2015 +0000
+
+    Don't use -Wno-error=undef.
+    
+    This patch removes the use of -Wno-error=undef, so that -Wundef
+    warnings become errors.
+    
+    Tested for x86_64, x86, mips64 (all three ABIs) and arm.
+    
+            * Makeconfig [$(enable-werror) = yes] (+gccwarn): Do not add
+            -Wno-error=undef.
+
+diff --git a/Makeconfig b/Makeconfig
+index b1bf7f24b6154e3d..3c0d4abc5f5f30df 100644
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -645,7 +645,7 @@ else
+ endif
+ +gccwarn += -Wundef
+ ifeq ($(enable-werror),yes)
+-+gccwarn += -Werror -Wno-error=undef
+++gccwarn += -Werror
+ endif
+ +gccwarn-c = -Wstrict-prototypes
+ 
diff --git a/SOURCES/glibc-rh1505492-undef-elf-dtv-resize.patch b/SOURCES/glibc-rh1505492-undef-elf-dtv-resize.patch
new file mode 100644
index 0000000..4ed2d3f
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-elf-dtv-resize.patch
@@ -0,0 +1,16 @@
+Suppress -Wundef warnings in glibc-rh1189278.patch.  Specific to the
+backport, so no upstream patch.
+
+diff --git a/elf/dl-tls.c b/elf/dl-tls.c
+index b9f58a9cd2745b95..02857f5d61fcfc81 100644
+--- a/elf/dl-tls.c
++++ b/elf/dl-tls.c
+@@ -404,7 +404,7 @@ _dl_resize_dtv (dtv_t *dtv)
+   size_t newsize = GL(dl_tls_max_dtv_idx) + DTV_SURPLUS;
+   size_t oldsize = dtv[-1].counter;
+ 
+-#if SHARED
++#ifdef SHARED
+   if (dtv == GL(dl_initial_dtv))
+     {
+       /* This is the initial dtv that was either statically allocated in
diff --git a/SOURCES/glibc-rh1505492-undef-elision.patch b/SOURCES/glibc-rh1505492-undef-elision.patch
new file mode 100644
index 0000000..77e9702
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-elision.patch
@@ -0,0 +1,16 @@
+Suppress -Wundef warning in glibc-rh841653-16.patch.  Specific to
+the previous backport, so no upstream patch.
+
+diff --git a/elf/dl-tunables.c b/elf/dl-tunables.c
+index b7c735891d66bac0..f86a6853d2f9b2e3 100644
+--- a/elf/dl-tunables.c
++++ b/elf/dl-tunables.c
+@@ -27,7 +27,7 @@ void
+ internal_function
+ _dl_process_tunable_env_entries (void)
+ {
+-#if HAVE_ELISION
++#ifdef HAVE_ELISION
+   char **ep;
+   const char *envname = { "RHEL_GLIBC_TUNABLES" };
+ # define TUNABLE_ELISION 0
diff --git a/SOURCES/glibc-rh1505492-undef-error.patch b/SOURCES/glibc-rh1505492-undef-error.patch
new file mode 100644
index 0000000..5e01c1d
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-error.patch
@@ -0,0 +1,21 @@
+Fix -Wundef warning.  Addressed upstream as part of this commit:
+
+commit 888c679ba406e89d86bdfbde033e307f5af5198f
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Thu Jul 10 14:24:30 2014 +0530
+
+    Sync up error.c with gnulib
+
+diff --git a/misc/error.c b/misc/error.c
+index 6fb192da4b38a4f9..3d0156e406fa1539 100644
+--- a/misc/error.c
++++ b/misc/error.c
+@@ -100,7 +100,7 @@ print_errno_message (int errnum)
+ 
+ #if defined HAVE_STRERROR_R || _LIBC
+   char errbuf[1024];
+-# if STRERROR_R_CHAR_P || _LIBC
++# if _LIBC || STRERROR_R_CHAR_P
+   s = __strerror_r (errnum, errbuf, sizeof errbuf);
+ # else
+   if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0)
diff --git a/SOURCES/glibc-rh1505492-undef-intl.patch b/SOURCES/glibc-rh1505492-undef-intl.patch
new file mode 100644
index 0000000..7ac3a98
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-intl.patch
@@ -0,0 +1,20 @@
+Fix -Wundef warning.  It was fixed upstream as part of this commit:
+
+commit 3247f28556d1de7f9837f6e9ee8c63fa56b93c13
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Thu Jul 3 01:36:10 2014 +0530
+
+    Sync up loadmsgcat.c with gettext
+
+diff --git a/intl/loadmsgcat.c b/intl/loadmsgcat.c
+index c70152010ecd2624..243783a9ac4d0929 100644
+--- a/intl/loadmsgcat.c
++++ b/intl/loadmsgcat.c
+@@ -89,6 +89,7 @@ char *alloca ();
+ # include "../locale/localeinfo.h"
+ # include <not-cancel.h>
+ # include <bits/libc-lock.h>
++# define PRI_MACROS_BROKEN 0
+ #endif
+ 
+ /* Provide fallback values for macros that ought to be defined in <inttypes.h>.
diff --git a/SOURCES/glibc-rh1505492-undef-ipc64.patch b/SOURCES/glibc-rh1505492-undef-ipc64.patch
new file mode 100644
index 0000000..6a3cea6
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-ipc64.patch
@@ -0,0 +1,48 @@
+Fix -Wundef warnings related to __ASSUME_IPC64.  This was addressed
+differently upstream:
+
+be481652f272acc117907ac30157cdac46aa1973
+Author: Andreas Schwab <schwab@suse.de>
+Date:   Tue Aug 18 10:29:30 2015 +0200
+
+    Remove __ASSUME_IPC64
+
+diff --git a/sysdeps/unix/sysv/linux/msgctl.c b/sysdeps/unix/sysv/linux/msgctl.c
+index 09d4dc11f779a63f..25f47ce6fdeb19c9 100644
+--- a/sysdeps/unix/sysv/linux/msgctl.c
++++ b/sysdeps/unix/sysv/linux/msgctl.c
+@@ -65,7 +65,7 @@ compat_symbol (libc, __old_msgctl, msgctl, GLIBC_2_0);
+ int
+ __new_msgctl (int msqid, int cmd, struct msqid_ds *buf)
+ {
+-#if __ASSUME_IPC64 > 0
++#ifdef __ASSUME_IPC64
+   return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl,
+ 			 msqid, cmd | __IPC_64, 0, buf);
+ #else
+diff --git a/sysdeps/unix/sysv/linux/semctl.c b/sysdeps/unix/sysv/linux/semctl.c
+index 3a2f1b39cea657e5..f932fb70525a6876 100644
+--- a/sysdeps/unix/sysv/linux/semctl.c
++++ b/sysdeps/unix/sysv/linux/semctl.c
+@@ -122,7 +122,7 @@ __new_semctl (int semid, int semnum, int cmd, ...)
+ 
+   va_end (ap);
+ 
+-#if __ASSUME_IPC64 > 0
++#ifdef __ASSUME_IPC64
+   return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd | __IPC_64,
+ 			 &arg);
+ #else
+diff --git a/sysdeps/unix/sysv/linux/shmctl.c b/sysdeps/unix/sysv/linux/shmctl.c
+index f99ee77f92878b1b..378fda21ea699c73 100644
+--- a/sysdeps/unix/sysv/linux/shmctl.c
++++ b/sysdeps/unix/sysv/linux/shmctl.c
+@@ -72,7 +72,7 @@ compat_symbol (libc, __old_shmctl, shmctl, GLIBC_2_0);
+ int
+ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
+ {
+-#if __ASSUME_IPC64 > 0
++#ifdef __ASSUME_IPC64
+   return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd | __IPC_64, 0,
+ 			 buf);
+ #else
diff --git a/SOURCES/glibc-rh1505492-undef-malloc.patch b/SOURCES/glibc-rh1505492-undef-malloc.patch
new file mode 100644
index 0000000..729fe06
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-malloc.patch
@@ -0,0 +1,18 @@
+glibc-rh1293976-2.patch introduced a -Wundef warning related to the
+POWER architecture preprocessor macros.  No upstream patch because
+upstream has fixed the underlying malloc alignment issue on 32-bit POWER
+this portion of the code attempts to work around.
+
+diff --git a/malloc/tst-malloc-thread-fail.c b/malloc/tst-malloc-thread-fail.c
+index 7edcd7122fb084b7..5dfb24f5a3154fd7 100644
+--- a/malloc/tst-malloc-thread-fail.c
++++ b/malloc/tst-malloc-thread-fail.c
+@@ -156,7 +156,7 @@ static void *
+ allocate (void)
+ {
+   struct allocate_result r = allocate_1 ();
+-#if __powerpc__ == 1 && __powerpc64__ == 0
++#if defined (__powerpc__) == 1 && !defined (__powerpc64__)
+   /* Sourceware bug 6527 on 32-bit POWER.
+      Ignore 16-byte alignment requirement when using malloc, realloc, or
+      calloc, since these functions are known not to provide enough
diff --git a/SOURCES/glibc-rh1505492-undef-max_align_t.patch b/SOURCES/glibc-rh1505492-undef-max_align_t.patch
new file mode 100644
index 0000000..0c8276f
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-max_align_t.patch
@@ -0,0 +1,18 @@
+Fix -Wundef warning around the definition of max_align_t.  Updates
+glibc-rh1418978-max_align_t.patch.  Upstream assumes C11 support and
+therefore does not need this definition.
+
+diff --git a/include/sys/cdefs.h b/include/sys/cdefs.h
+index 29da941991f9a206..25ff204e4c632865 100644
+--- a/include/sys/cdefs.h
++++ b/include/sys/cdefs.h
+@@ -20,7 +20,8 @@ rtld_hidden_proto (__chk_fail)
+    is also available in C99 mode.  The aligned attributes are required
+    because some ABIs have reduced alignment requirements for struct and
+    union members.  */
+-#if __STDC_VERSION__ < 201112L && __cplusplus < 201103L
++#if (!defined (__STDC_VERSION__) || __STDC_VERSION__ < 201112L) \
++  && (!defined (__cplusplus) || __cplusplus < 201103L)
+ typedef struct {
+   long long ll __attribute__ ((__aligned__ (__alignof__ (long long))));
+   long double ld __attribute__ ((__aligned__ (__alignof__ (long double))));
diff --git a/SOURCES/glibc-rh1505492-undef-mktime.patch b/SOURCES/glibc-rh1505492-undef-mktime.patch
new file mode 100644
index 0000000..1fc2261
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-mktime.patch
@@ -0,0 +1,30 @@
+Fix -Wundef warnings.  Part of this upstream commit:
+
+commit dd0ba018122e88937a5f14b6594b9a40693b2e58
+Author: Paul Eggert <eggert@cs.ucla.edu>
+Date:   Sat Jun 28 06:15:54 2014 +0530
+
+    Sync up mktime with gnulib
+
+diff --git a/time/mktime.c b/time/mktime.c
+index e1fbf9ea197d3c8b..bc914d80593b91f2 100644
+--- a/time/mktime.c
++++ b/time/mktime.c
+@@ -38,7 +38,7 @@
+ 
+ #include <string.h>		/* For the real memcpy prototype.  */
+ 
+-#if DEBUG
++#if defined DEBUG && DEBUG
+ # include <stdio.h>
+ # include <stdlib.h>
+ /* Make it work even if the system's libc has its own mktime routine.  */
+@@ -600,7 +600,7 @@ libc_hidden_def (mktime)
+ libc_hidden_weak (timelocal)
+ #endif
+ 
+-#if DEBUG
++#if defined DEBUG && DEBUG
+ 
+ static int
+ not_equal_tm (const struct tm *a, const struct tm *b)
diff --git a/SOURCES/glibc-rh1505492-undef-obstack.patch b/SOURCES/glibc-rh1505492-undef-obstack.patch
new file mode 100644
index 0000000..fa39993
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-obstack.patch
@@ -0,0 +1,43 @@
+Fix -Wundef warnings.  Upstream addressed this as part of this commit:
+
+commit b100f9aa77027e4371154820ea8a0353bfd13223
+Author: Will Newton <will.newton@linaro.org>
+Date:   Mon Jun 23 16:53:30 2014 +0100
+
+    malloc/obstack: Merge from gnulib
+
+diff --git a/malloc/obstack.c b/malloc/obstack.c
+index e3ce53f987727eca..2b103727e010b417 100644
+--- a/malloc/obstack.c
++++ b/malloc/obstack.c
+@@ -56,10 +56,10 @@
+ #ifndef ELIDE_CODE
+ 
+ 
+-# if HAVE_INTTYPES_H
++# if _LIBC || HAVE_INTTYPES_H
+ #  include <inttypes.h>
+ # endif
+-# if HAVE_STDINT_H || defined _LIBC
++# if _LIBC || HAVE_STDINT_H
+ #  include <stdint.h>
+ # endif
+ 
+diff --git a/malloc/obstack.h b/malloc/obstack.h
+index a791823cf3f18348..69e92d1146b02eb1 100644
+--- a/malloc/obstack.h
++++ b/malloc/obstack.h
+@@ -250,13 +250,6 @@ extern int obstack_exit_failure;
+ #define obstack_memory_used(h) _obstack_memory_used (h)
+ 
+ #if defined __GNUC__
+-/* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and
+-   does not implement __extension__.  But that compiler doesn't define
+-   __GNUC_MINOR__.  */
+-# if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__)
+-#  define __extension__
+-# endif
+-
+ /* For GNU C, if not -traditional,
+    we can define these macros to compute all args only once
+    without using a global variable.
diff --git a/SOURCES/glibc-rh1505492-undef-string.patch b/SOURCES/glibc-rh1505492-undef-string.patch
new file mode 100644
index 0000000..0c9f6c2
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-string.patch
@@ -0,0 +1,26 @@
+Fix -Wundef warnings.  Fixed upstream as part of this commit:
+
+commit 1570a72bb8359c9a3a64c4e22d9ea47ce6fcff31
+Author: Will Newton <will.newton@linaro.org>
+Date:   Thu Jun 26 16:00:44 2014 +0100
+
+    string/memchr.c: Merge from gnulib
+
+diff --git a/string/memchr.c b/string/memchr.c
+index 1684bfa56885e883..d1880cfbaed951a6 100644
+--- a/string/memchr.c
++++ b/string/memchr.c
+@@ -32,11 +32,11 @@
+ # include <memcopy.h>
+ #endif
+ 
+-#if HAVE_STDLIB_H || defined _LIBC
++#if defined _LIBC || HAVE_STDLIB_H
+ # include <stdlib.h>
+ #endif
+ 
+-#if HAVE_LIMITS_H || defined _LIBC
++#if defined _LIBC || HAVE_LIMITS_H
+ # include <limits.h>
+ #endif
+ 
diff --git a/SOURCES/glibc-rh1505492-undef-sysconf.patch b/SOURCES/glibc-rh1505492-undef-sysconf.patch
new file mode 100644
index 0000000..f512353
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-sysconf.patch
@@ -0,0 +1,29 @@
+Fix -Wundef warning.  Upstream removed the __ASSUME_ARG_MAX_STACK_BASE
+preprocessor conditional as part of this commit:
+
+commit 637461d96563f3b7405df5b124ccfe843e537374
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Mon May 12 22:48:25 2014 +0000
+
+    Clean up kernel version conditionals for pre-2.6.32 kernels.
+    
+    This patch does some initial cleanup, following the move to 2.6.32
+    minimum kernel version, by removing __LINUX_KERNEL_VERSION
+    conditionals that are now always-true or always-false.  In the case of
+    __ASSUME_ARG_MAX_STACK_BASED, where the conditional used a kernel
+    version that was itself in a macro, the associated sysconf.c code is
+    also cleaned up and __ASSUME_ARG_MAX_STACK_BASED removed completely.
+
+diff --git a/sysdeps/unix/sysv/linux/sysconf.c b/sysdeps/unix/sysv/linux/sysconf.c
+index 47ce5ef07cce7888..05cbb0879e9748d5 100644
+--- a/sysdeps/unix/sysv/linux/sysconf.c
++++ b/sysdeps/unix/sysv/linux/sysconf.c
+@@ -88,7 +88,7 @@ __sysconf (int name)
+       return HAS_CPUCLOCK (name);
+ 
+     case _SC_ARG_MAX:
+-#if !__ASSUME_ARG_MAX_STACK_BASED
++#ifndef __ASSUME_ARG_MAX_STACK_BASED
+       /* Determine whether this is a kernel with an argument limit
+ 	 determined by the stack size.  */
+       if (GLRO(dl_discover_osversion) ()
diff --git a/SOURCES/glibc-rh1505492-undef-tempname.patch b/SOURCES/glibc-rh1505492-undef-tempname.patch
new file mode 100644
index 0000000..f6e5005
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-tempname.patch
@@ -0,0 +1,68 @@
+Fix -Wundef warnings.  This was addressed upstream as part of this
+commit:
+
+commit c7aec4beb13f125948884d80158f11c34239c61f
+Author: Will Newton <will.newton@linaro.org>
+Date:   Tue Jun 24 14:19:36 2014 +0100
+
+    sysdeps/posix/tempname.c: Merge from gnulib
+
+diff --git a/sysdeps/posix/tempname.c b/sysdeps/posix/tempname.c
+index 2f0bfef34fa31c28..05c88bc95e72756e 100644
+--- a/sysdeps/posix/tempname.c
++++ b/sysdeps/posix/tempname.c
+@@ -40,30 +40,30 @@
+ # define __GT_NOCREATE	2
+ #endif
+ 
+-#if STDC_HEADERS || _LIBC
++#if _LIBC || STDC_HEADERS
+ # include <stddef.h>
+ # include <stdlib.h>
+ # include <string.h>
+ #endif
+ 
+-#if HAVE_FCNTL_H || _LIBC
++#if _LIBC || HAVE_FCNTL_H
+ # include <fcntl.h>
+ #endif
+ 
+-#if HAVE_SYS_TIME_H || _LIBC
++#if _LIBC || HAVE_SYS_TIME_H
+ # include <sys/time.h>
+ #endif
+ 
+-#if HAVE_STDINT_H || _LIBC
++#if _LIBC || HAVE_STDINT_H
+ # include <stdint.h>
+ #endif
+ 
+-#if HAVE_UNISTD_H || _LIBC
++#if _LIBC || HAVE_UNISTD_H
+ # include <unistd.h>
+ #endif
+ 
+ #include <sys/stat.h>
+-#if STAT_MACROS_BROKEN
++#if !_LIBC && STAT_MACROS_BROKEN
+ # undef S_ISDIR
+ #endif
+ #if !defined S_ISDIR && defined S_IFDIR
+@@ -101,7 +101,7 @@
+ # define __xstat64(version, path, buf) stat (path, buf)
+ #endif
+ 
+-#if ! (HAVE_SECURE_GETENV || _LIBC)
++#if ! (_LIBC || HAVE_SECURE_GETENV)
+ # ifdef HAVE___SECURE_GETENV
+ #  define __libc_secure_getenv __secure_getenv
+ # else
+@@ -267,7 +267,7 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind)
+ #ifdef RANDOM_BITS
+   RANDOM_BITS (random_time_bits);
+ #else
+-# if HAVE_GETTIMEOFDAY || _LIBC
++# if _LIBC || HAVE_GETTIMEOFDAY
+   {
+     struct timeval tv;
+     __gettimeofday (&tv, NULL);
diff --git a/SOURCES/glibc-rh1505492-undef-xfs-chown.patch b/SOURCES/glibc-rh1505492-undef-xfs-chown.patch
new file mode 100644
index 0000000..4f4e140
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-undef-xfs-chown.patch
@@ -0,0 +1,21 @@
+Fix -Wundef warning.  Upstream addressed this differently via:
+
+commit a4ccbc9b243926a9904624b387fb18583c3d4d4d
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Wed Jun 25 16:39:33 2014 +0000
+
+    Remove __ASSUME_XFS_RESTRICTED_CHOWN.
+
+diff --git a/sysdeps/unix/sysv/linux/pathconf.c b/sysdeps/unix/sysv/linux/pathconf.c
+index febdc3731119bfce..0ed2abb9cb1d618d 100644
+--- a/sysdeps/unix/sysv/linux/pathconf.c
++++ b/sysdeps/unix/sysv/linux/pathconf.c
+@@ -284,7 +284,7 @@ __statfs_chown_restricted (int result, const struct statfs *fsbuf)
+       return -1;
+     }
+ 
+-#if __ASSUME_XFS_RESTRICTED_CHOWN
++#ifdef __ASSUME_XFS_RESTRICTED_CHOWN
+   return 1;
+ #else
+   int fd;
diff --git a/SOURCES/glibc-rh1505492-uninit-1.patch b/SOURCES/glibc-rh1505492-uninit-1.patch
new file mode 100644
index 0000000..3088f41
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-uninit-1.patch
@@ -0,0 +1,27 @@
+commit 6ee3eab42979fdd5bb971a40fec32e04bb9dd2ad
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Wed Jul 9 10:36:50 2014 +0530
+
+    Fix -Wmaybe-uninitialized warning in xdr.c
+    
+    While we're at fixing build warnings, here's one unnecessary warning
+    that can be fixed fairly easily.  The SIZE variable is never actually
+    use uninitialized, but the compiler cannot make that out and thinks
+    (correctly) that there is a potential for accessing SIZE without
+    initializing it.  Make this safe by initializing SIZE to 0.
+    
+    Tested on x86_64.
+
+diff --git a/sunrpc/xdr.c b/sunrpc/xdr.c
+index 7eac2d40f036aa70..b3e713cbc9c3e012 100644
+--- a/sunrpc/xdr.c
++++ b/sunrpc/xdr.c
+@@ -738,7 +738,7 @@ xdr_string (xdrs, cpp, maxsize)
+      u_int maxsize;
+ {
+   char *sp = *cpp;	/* sp is the actual string pointer */
+-  u_int size;
++  u_int size = 0;
+   u_int nodesize;
+ 
+   /*
diff --git a/SOURCES/glibc-rh1505492-uninit-2.patch b/SOURCES/glibc-rh1505492-uninit-2.patch
new file mode 100644
index 0000000..3b5faf0
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-uninit-2.patch
@@ -0,0 +1,19 @@
+commit d69b7f5ac02989ce3d8577eed86da3e0c8af6c1c
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Thu Jul 10 10:32:29 2014 +0530
+
+    Add comment about SIZE initialization in xdr.c
+
+diff --git a/sunrpc/xdr.c b/sunrpc/xdr.c
+index b3e713cbc9c3e012..d0afd34466f73def 100644
+--- a/sunrpc/xdr.c
++++ b/sunrpc/xdr.c
+@@ -738,6 +738,8 @@ xdr_string (xdrs, cpp, maxsize)
+      u_int maxsize;
+ {
+   char *sp = *cpp;	/* sp is the actual string pointer */
++  /* Initialize to silence the compiler.  It is not really needed because SIZE
++     never actually gets used without being initialized.  */
+   u_int size = 0;
+   u_int nodesize;
+ 
diff --git a/SOURCES/glibc-rh1505492-uninit-3.patch b/SOURCES/glibc-rh1505492-uninit-3.patch
new file mode 100644
index 0000000..9a75902
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-uninit-3.patch
@@ -0,0 +1,57 @@
+commit b1eda10e17bf2056ca79a534d92fe0b0b06bd410
+Author: Paul Eggert <eggert@cs.ucla.edu>
+Date:   Tue Nov 25 14:12:48 2014 -0800
+
+    fnmatch: work around GCC compiler warning bug with uninit var
+    
+    * posix/fnmatch_loop.c (FCT): Use a scalar not a one-item array.
+    This works around a bug with x86-64 GCC 4.9.2 and earlier
+    where 'gcc -O2 -Wmaybe-uninitialized' incorrectly complains
+    "../locale/weightwc.h:93:7: warning: '*((void *)&str+4)' may be
+    used uninitialized in this function [-Wmaybe-uninitialized]".
+
+diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
+index e289f451cc23c1ee..2bd788f3942c6e7d 100644
+--- a/posix/fnmatch_loop.c
++++ b/posix/fnmatch_loop.c
+@@ -342,7 +342,12 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+ #ifdef _LIBC
+ 		else if (c == L('[') && *p == L('='))
+ 		  {
+-		    UCHAR str[1];
++		    /* It's important that STR be a scalar variable rather
++		       than a one-element array, because GCC (at least 4.9.2
++		       -O2 on x86-64) can be confused by the array and
++		       diagnose a "used initialized" in a dead branch in the
++		       findidx function.  */
++		    UCHAR str;
+ 		    uint32_t nrules =
+ 		      _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
+ 		    const CHAR *startp = p;
+@@ -354,7 +359,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+ 			c = L('[');
+ 			goto normal_bracket;
+ 		      }
+-		    str[0] = c;
++		    str = c;
+ 
+ 		    c = *++p;
+ 		    if (c != L('=') || p[1] != L(']'))
+@@ -367,7 +372,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+ 
+ 		    if (nrules == 0)
+ 		      {
+-			if ((UCHAR) *n == str[0])
++			if ((UCHAR) *n == str)
+ 			  goto matched;
+ 		      }
+ 		    else
+@@ -382,7 +387,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+ # endif
+ 			const int32_t *indirect;
+ 			int32_t idx;
+-			const UCHAR *cp = (const UCHAR *) str;
++			const UCHAR *cp = (const UCHAR *) &str;
+ 
+ 			/* This #include defines a local function!  */
+ # if WIDE_CHAR_VERSION
diff --git a/SOURCES/glibc-rh1505492-uninit-intl-plural.patch b/SOURCES/glibc-rh1505492-uninit-intl-plural.patch
new file mode 100644
index 0000000..cf96163
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-uninit-intl-plural.patch
@@ -0,0 +1,26 @@
+Do not treat uninitialized variable warnings as errors in the
+auto-generated bison parser code in intl/plural.c.
+
+This was fixed upstream with a regenerated parser as part of this
+commit:
+
+commit 568035b7874a099087b77f7bba3e36a1173787b0
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Wed Jan 2 19:01:50 2013 +0000
+
+    Update copyright notices with scripts/update-copyrights.
+
+diff --git a/intl/Makefile b/intl/Makefile
+index 39ecb680572bd7ab..f0a7d0d9047ce571 100644
+--- a/intl/Makefile
++++ b/intl/Makefile
+@@ -45,6 +45,9 @@ plural.c: plural.y
+ 	$(BISON) $(BISONFLAGS) $@ $^
+ endif
+ $(objpfx)plural.o: plural.c
++# The generated plural.c file generates unitialized variable warnings
++# with GCC 4.8 on 32-bit architectures.
++CFLAGS-plural.c = -Wno-error=maybe-uninitialized
+ 
+ include ../Rules
+ 
diff --git a/SOURCES/glibc-rh1505492-unused-1.patch b/SOURCES/glibc-rh1505492-unused-1.patch
new file mode 100644
index 0000000..d1e4f34
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-unused-1.patch
@@ -0,0 +1,27 @@
+commit 7f3e75f87a93265e5a9feb1ba320f4b19f29cd67
+Author: Roland McGrath <roland@hack.frob.com>
+Date:   Fri Feb 8 10:46:32 2013 -0800
+
+    Remove dead variable in generic strcpy.
+
+diff --git a/string/strcpy.c b/string/strcpy.c
+index 812de20a3732cce5..bf624947cc780328 100644
+--- a/string/strcpy.c
++++ b/string/strcpy.c
+@@ -30,7 +30,6 @@ strcpy (dest, src)
+   char c;
+   char *__unbounded s = (char *__unbounded) src;
+   const ptrdiff_t off = dest - s - 1;
+-  size_t n;
+ 
+   do
+     {
+@@ -39,8 +38,6 @@ strcpy (dest, src)
+     }
+   while (c != '\0');
+ 
+-  n = s - src;
+-
+   return dest;
+ }
+ libc_hidden_builtin_def (strcpy)
diff --git a/SOURCES/glibc-rh1505492-unused-10.patch b/SOURCES/glibc-rh1505492-unused-10.patch
new file mode 100644
index 0000000..2bf2781
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-unused-10.patch
@@ -0,0 +1,67 @@
+commit 8915eacef88eb25ac94e6bb37b473adb326e9d1b
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Wed Nov 26 20:54:16 2014 +0000
+
+    Avoid warnings for unused results in nscd/connections.c.
+    
+    This patch avoids warnings for unused results of setuid and setgid in
+    nscd/connections.c using an ignore_value macro along the lines
+    suggested by Paul in
+    <https://sourceware.org/ml/libc-alpha/2014-11/msg00733.html>.
+    
+    Tested for x86_64.
+    
+            * include/libc-internal.h (ignore_value): New macro.
+            * nscd/connections.c (restart): Wrap calls to setuid and setgid
+            with ignore_value.
+
+diff --git a/include/libc-internal.h b/include/libc-internal.h
+index 78f82da58a2c334b..2ced1c17d3dff93d 100644
+--- a/include/libc-internal.h
++++ b/include/libc-internal.h
+@@ -70,4 +70,10 @@ extern void __init_misc (int, char **, char **);
+ #define PTR_ALIGN_UP(base, size) \
+   ((__typeof__ (base)) ALIGN_UP ((uintptr_t) (base), (size)))
+ 
++/* Ignore the value of an expression when a cast to void does not
++   suffice (in particular, for a call to a function declared with
++   attribute warn_unused_result).  */
++#define ignore_value(x) \
++  ({ __typeof__ (x) __ignored_value = (x); (void) __ignored_value; })
++
+ #endif /* _LIBC_INTERNAL  */
+diff --git a/nscd/connections.c b/nscd/connections.c
+index 53813cf58876eae7..54b70e88d894523a 100644
+--- a/nscd/connections.c
++++ b/nscd/connections.c
+@@ -1486,7 +1486,7 @@ cannot change to old UID: %s; disabling paranoia mode"),
+ cannot change to old GID: %s; disabling paranoia mode"),
+ 		   strerror (errno));
+ 
+-	  setuid (server_uid);
++	  ignore_value (setuid (server_uid));
+ 	  paranoia = 0;
+ 	  return;
+ 	}
+@@ -1501,8 +1501,8 @@ cannot change to old working directory: %s; disabling paranoia mode"),
+ 
+       if (server_user != NULL)
+ 	{
+-	  setuid (server_uid);
+-	  setgid (server_gid);
++	  ignore_value (setuid (server_uid));
++	  ignore_value (setgid (server_gid));
+ 	}
+       paranoia = 0;
+       return;
+@@ -1546,8 +1546,8 @@ cannot change to old working directory: %s; disabling paranoia mode"),
+ 
+   if (server_user != NULL)
+     {
+-      setuid (server_uid);
+-      setgid (server_gid);
++      ignore_value (setuid (server_uid));
++      ignore_value (setgid (server_gid));
+     }
+   if (chdir ("/") != 0)
+     dbg_log (_("cannot change current working directory to \"/\": %s"),
diff --git a/SOURCES/glibc-rh1505492-unused-11.patch b/SOURCES/glibc-rh1505492-unused-11.patch
new file mode 100644
index 0000000..b438a49
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-unused-11.patch
@@ -0,0 +1,18 @@
+commit e7300fef49147a73d5dc7e0a462cc60aabb58400
+Author: Stefan Liebler <stli@linux.vnet.ibm.com>
+Date:   Thu Nov 27 11:07:16 2014 +0100
+
+    Add missing include of libc-internal.h.
+
+diff --git a/nscd/connections.c b/nscd/connections.c
+index 54b70e88d894523a..391381bbdde8fcc9 100644
+--- a/nscd/connections.c
++++ b/nscd/connections.c
+@@ -58,6 +58,7 @@
+ #include <resolv/resolv.h>
+ 
+ #include <kernel-features.h>
++#include <libc-internal.h>
+ 
+ 
+ /* Support to run nscd as an unprivileged user */
diff --git a/SOURCES/glibc-rh1505492-unused-12.patch b/SOURCES/glibc-rh1505492-unused-12.patch
new file mode 100644
index 0000000..7a9cd16
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-unused-12.patch
@@ -0,0 +1,40 @@
+commit 9114625bad23441c89eac5a7dcf319a9714ca31f
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Thu Nov 27 16:00:08 2014 +0000
+
+    Fix dlfcn/failtestmod.c warning.
+    
+    This patch fixes a "set but not used" warning from
+    dlfcn/failtestmod.c.  A variable is used only to store the return
+    value from dlsym.  As I understand this test, the point is simply to
+    do a sequence of load / unload operations in a loop, and all that
+    matters here is that dlsym gets called and returns without crashing,
+    not what its return value is.  So this patch removes the assignment to
+    a variable.
+    
+    Tested for x86_64.
+    
+            * dlfcn/failtestmod.c (constr): Do not store result of dlsym in a
+            variable.
+
+diff --git a/dlfcn/failtestmod.c b/dlfcn/failtestmod.c
+index a03f90b734132d8d..64dadd53ff8ef109 100644
+--- a/dlfcn/failtestmod.c
++++ b/dlfcn/failtestmod.c
+@@ -8,7 +8,6 @@ __attribute__ ((__constructor__))
+ constr (void)
+ {
+   void *handle;
+-  void *m;
+ 
+   /* Open the library.  */
+   handle = dlopen (NULL, RTLD_NOW);
+@@ -19,7 +18,7 @@ constr (void)
+     }
+ 
+   /* Get a symbol.  */
+-  m = dlsym (handle, "main");
++  dlsym (handle, "main");
+   puts ("called dlsym() to get main");
+ 
+   dlclose (handle);
diff --git a/SOURCES/glibc-rh1505492-unused-13.patch b/SOURCES/glibc-rh1505492-unused-13.patch
new file mode 100644
index 0000000..bb216f9
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-unused-13.patch
@@ -0,0 +1,59 @@
+commit 49051f8ea4551229fa656eba04031af51a5491c5
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Thu Nov 27 16:01:04 2014 +0000
+
+    Fix libio/bug-ungetwc1.c warning.
+    
+    This patch fixes a warning "variable 'wc' set but not used" in
+    libio/bug-ungetwc1.c.
+    
+    The test didn't verify much about the results of the functions it
+    called.  This patch makes it check the result of getwc (thereby fixing
+    the warning), check end of file does not arrive too late in the getwc
+    loop, and check EOF is no longer set after ungetwc.
+    
+    Tested for x86_64.
+    
+            * libio/bug-ungetwc1.c (do_test): Verify results of getwc and
+            feof.
+
+diff --git a/libio/bug-ungetwc1.c b/libio/bug-ungetwc1.c
+index 8ed6acd175e86858..56a3d336ae89d69f 100644
+--- a/libio/bug-ungetwc1.c
++++ b/libio/bug-ungetwc1.c
+@@ -53,8 +53,22 @@ do_test (void)
+   /* Read from the file. */
+   fp = fopen (fname, "r");
+ 
++  size_t i = 0;
+   while (!feof (fp))
+-    wc = getwc (fp);
++    {
++      wc = getwc (fp);
++      if (i >= sizeof (write_chars))
++	{
++	  printf ("Did not get end-of-file when expected.\n");
++	  return 1;
++	}
++      else if (wc != (write_chars[i] ? write_chars[i] : WEOF))
++	{
++	  printf ("Unexpected %lu from getwc.\n", (unsigned long int) wc);
++	  return 1;
++	}
++      i++;
++    }
+   printf ("\nThe end-of-file indicator is set.\n");
+ 
+   /* Unget a wide character. */
+@@ -63,7 +77,10 @@ do_test (void)
+ 
+   /* Check the end-of-file indicator. */
+   if (feof (fp))
+-    printf ("The end-of-file indicator is still set.\n");
++    {
++      printf ("The end-of-file indicator is still set.\n");
++      return 1;
++    }
+   else
+     printf ("The end-of-file flag is cleared.\n");
+ 
diff --git a/SOURCES/glibc-rh1505492-unused-14.patch b/SOURCES/glibc-rh1505492-unused-14.patch
new file mode 100644
index 0000000..ffe302a
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-unused-14.patch
@@ -0,0 +1,26 @@
+commit 66cadc058dd7ce8106624df5732ea69a484621b9
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Tue Dec 2 21:29:54 2014 +0000
+
+    Fix elf/tst-unique4lib.cc warning.
+    
+    This patch fixes a warning "tst-unique4lib.cc:17:12: warning: 'b'
+    defined but not used [-Wunused-variable]".  I'm not sure exactly what
+    aspects of the test are or are not significant for the issue it is
+    testing for; the patch makes the minimal change of marking the
+    variable with __attribute__ ((used)).
+    
+    Tested for x86_64.
+    
+            * elf/tst-unique4lib.cc (b): Mark with __attribute__ ((used)).
+
+diff --git a/elf/tst-unique4lib.cc b/elf/tst-unique4lib.cc
+index c9fdf9cfeacad6d5..20a10e93d0a6bb4b 100644
+--- a/elf/tst-unique4lib.cc
++++ b/elf/tst-unique4lib.cc
+@@ -14,4 +14,4 @@ static int a[24] =
+     S<23>::i, S<24>::i
+   };
+ 
+-static int b = S<1>::j;
++static int b __attribute__ ((used)) = S<1>::j;
diff --git a/SOURCES/glibc-rh1505492-unused-15.patch b/SOURCES/glibc-rh1505492-unused-15.patch
new file mode 100644
index 0000000..484935f
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-unused-15.patch
@@ -0,0 +1,19 @@
+Declare elision_available in elision_init under the preprocessor
+conditional, to avoid an unused variable warning.
+
+Upstream, this has been obsoleted by other elision-related changes.
+
+diff --git a/nptl/sysdeps/unix/sysv/linux/x86/elision-conf.c b/nptl/sysdeps/unix/sysv/linux/x86/elision-conf.c
+index 69b4fa4c66e89bc6..cc5efb811352adf1 100644
+--- a/nptl/sysdeps/unix/sysv/linux/x86/elision-conf.c
++++ b/nptl/sysdeps/unix/sysv/linux/x86/elision-conf.c
+@@ -66,8 +66,8 @@ elision_init (int argc __attribute__ ((unused)),
+ 	      char **argv  __attribute__ ((unused)),
+ 	      char **environ)
+ {
+-  int elision_available = HAS_CPU_FEATURE (RTM);
+ #ifdef ENABLE_LOCK_ELISION
++  int elision_available = HAS_CPU_FEATURE (RTM);
+   if (!__libc_enable_secure && elision_available)
+     {
+       /* RHEL 7 specific change: Check if elision is enabled for the
diff --git a/SOURCES/glibc-rh1505492-unused-16.patch b/SOURCES/glibc-rh1505492-unused-16.patch
new file mode 100644
index 0000000..4612d5e
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-unused-16.patch
@@ -0,0 +1,72 @@
+commit ad37480c4b79b801b987f5529d036b4e25cac615
+Author: Martin Sebor <msebor@redhat.com>
+Date:   Fri Jan 15 10:44:07 2016 -0700
+
+    Fix build errors with -DNDEBUG.
+    
+            [BZ #18755]
+            * iconv/skeleton.c (FUNCTION_NAME): Suppress -Wunused-but-set-variable
+            warnings.
+            * sysdeps/nptl/gai_misc.h (__gai_start_notify_thread): Same.
+            (__gai_create_helper_thread): Same.
+            * nscd/nscd.c (do_exit): Suppress -Wunused-variable.
+            * iconvdata/iso-2022-cn-ext.c (BODY): Initialize local variable
+            to suppress -Wmaybe-uninitialized warnings.
+
+Conflicts:
+	sysdeps/nptl/gai_misc.h
+
+Not needed due to missing backport of commit
+74eb826cff5e4277d2d866a92058f27a837f8ff7 (NPTL: Remove gratuitous
+Linuxisms from gai_misc.h.).  File deleted manually.
+
+diff --git a/iconv/skeleton.c b/iconv/skeleton.c
+index 3384d520661f88ed..893fee9aaadf91e3 100644
+--- a/iconv/skeleton.c
++++ b/iconv/skeleton.c
+@@ -682,7 +682,7 @@ FUNCTION_NAME (struct __gconv_step *step, struct __gconv_step_data *data,
+ #else
+ 		      /* We have a problem in one of the functions below.
+ 			 Undo the conversion upto the error point.  */
+-		      size_t nstatus;
++		      size_t nstatus __attribute__ ((unused));
+ 
+ 		      /* Reload the pointers.  */
+ 		      *inptrp = inptr;
+diff --git a/iconvdata/iso-2022-cn-ext.c b/iconvdata/iso-2022-cn-ext.c
+index bde266811d967192..c86d8616d417f21b 100644
+--- a/iconvdata/iso-2022-cn-ext.c
++++ b/iconvdata/iso-2022-cn-ext.c
+@@ -426,7 +426,7 @@ enum
+       }									      \
+     else								      \
+       {									      \
+-	unsigned char buf[2];						      \
++	unsigned char buf[2] = { 0, 0 };				      \
+ 	int used;							      \
+ 									      \
+ 	if (set == GB2312_set || ((ann & SO_ann) != CNS11643_1_ann	      \
+diff --git a/nscd/nscd.c b/nscd/nscd.c
+index f74a7325ec06e4a6..b088069c0b102846 100644
+--- a/nscd/nscd.c
++++ b/nscd/nscd.c
+@@ -634,7 +634,8 @@ do_exit (int child_ret, int errnum, const char *format, ...)
+ {
+   if (parent_fd != -1)
+     {
+-      int ret = write (parent_fd, &child_ret, sizeof (child_ret));
++      int ret __attribute__ ((unused));
++      ret = write (parent_fd, &child_ret, sizeof (child_ret));
+       assert (ret == sizeof (child_ret));
+       close (parent_fd);
+     }
+@@ -666,7 +667,8 @@ notify_parent (int child_ret)
+   if (parent_fd == -1)
+     return;
+ 
+-  int ret = write (parent_fd, &child_ret, sizeof (child_ret));
++  int ret __attribute__ ((unused));
++  ret = write (parent_fd, &child_ret, sizeof (child_ret));
+   assert (ret == sizeof (child_ret));
+   close (parent_fd);
+   parent_fd = -1;
diff --git a/SOURCES/glibc-rh1505492-unused-17.patch b/SOURCES/glibc-rh1505492-unused-17.patch
new file mode 100644
index 0000000..b479574
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-unused-17.patch
@@ -0,0 +1,71 @@
+commit b4f518ecfad09fc4279ea26a565332835e403dab
+Author: Carlos O'Donell <carlos@redhat.com>
+Date:   Tue Mar 15 23:16:47 2016 -0400
+
+    Fix building glibc master with NDEBUG and --with-cpu.
+    
+    When building on i686, x86_64, and arm, and with NDEBUG, or --with-cpu
+    there are various variables and functions which are unused based on
+    these settings.
+    
+    This patch marks all such variables with __attribute__((unused)) to
+    avoid the compiler warnings when building with the aformentioned
+    options.
+
+Conflicts:
+	dlfcn/bug-dl-leaf-lib.c
+	  (Missing backport of fix for swbz#15897; file removed.)
+	sysdeps/arm/dl-machine.h
+	  (Missing backport of fix for swbz#17078.)
+
+diff --git a/catgets/tst-catgets.c b/catgets/tst-catgets.c
+index 140de722c893297d..fdc9f2758ffd60a1 100644
+--- a/catgets/tst-catgets.c
++++ b/catgets/tst-catgets.c
+@@ -22,7 +22,7 @@ do_bz17905 (void)
+ {
+   char *buf;
+   struct rlimit rl;
+-  nl_catd result;
++  nl_catd result __attribute__ ((unused));
+ 
+   const int sz = 1024 * 1024;
+ 
+diff --git a/math/atest-exp.c b/math/atest-exp.c
+index d384c4920acb044f..8f4711aaa90d09e5 100644
+--- a/math/atest-exp.c
++++ b/math/atest-exp.c
+@@ -61,7 +61,7 @@ exp_mpn (mp1 ex, mp1 x)
+    unsigned n;
+    mp1 xp;
+    mp2 tmp;
+-   mp_limb_t chk;
++   mp_limb_t chk __attribute__ ((unused));
+    mp1 tol;
+ 
+    memset (xp, 0, sizeof (mp1));
+diff --git a/math/atest-exp2.c b/math/atest-exp2.c
+index 1a2be9ba021bb24a..6f5dd7760c78b7e2 100644
+--- a/math/atest-exp2.c
++++ b/math/atest-exp2.c
+@@ -102,7 +102,7 @@ exp_mpn (mp1 ex, mp1 x)
+    unsigned int n;
+    mp1 xp;
+    mp2 tmp;
+-   mp_limb_t chk;
++   mp_limb_t chk __attribute__ ((unused));
+    mp1 tol;
+ 
+    memset (xp, 0, sizeof (mp1));
+diff --git a/sysdeps/i386/i686/dl-hash.h b/sysdeps/i386/i686/dl-hash.h
+index 14fbbc251148c176..65acc88a6e6f093c 100644
+--- a/sysdeps/i386/i686/dl-hash.h
++++ b/sysdeps/i386/i686/dl-hash.h
+@@ -26,6 +26,7 @@
+    would be much slower than the generic C implementation.  So don't
+    use it.  */
+ static unsigned int
++__attribute__ ((unused))
+ _dl_elf_hash (const char *name)
+ {
+   unsigned int result;
diff --git a/SOURCES/glibc-rh1505492-unused-2.patch b/SOURCES/glibc-rh1505492-unused-2.patch
new file mode 100644
index 0000000..e6feba8
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-unused-2.patch
@@ -0,0 +1,115 @@
+commit e4f223248ebf4bfaf5e300af96aacd0ddc6c30ed
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Tue Feb 19 21:20:44 2013 +0530
+
+    Fix some testsuite build warning fixes in libm
+
+diff --git a/math/atest-exp.c b/math/atest-exp.c
+index f7342f1f36647451..d384c4920acb044f 100644
+--- a/math/atest-exp.c
++++ b/math/atest-exp.c
+@@ -61,7 +61,7 @@ exp_mpn (mp1 ex, mp1 x)
+    unsigned n;
+    mp1 xp;
+    mp2 tmp;
+-   mp_limb_t chk, round;
++   mp_limb_t chk;
+    mp1 tol;
+ 
+    memset (xp, 0, sizeof (mp1));
+@@ -79,7 +79,7 @@ exp_mpn (mp1 ex, mp1 x)
+        mpn_mul_n (tmp, xp, x, SZ);
+        assert (tmp[SZ * 2 - 1] == 0);
+        if (n > 0)
+-	 round = mpn_divmod_1 (xp, tmp + FRAC / mpbpl, SZ, n);
++	 mpn_divmod_1 (xp, tmp + FRAC / mpbpl, SZ, n);
+        chk = mpn_add_n (ex, ex, xp, SZ);
+        assert (chk == 0);
+        n++;
+diff --git a/math/atest-exp2.c b/math/atest-exp2.c
+index 4888490f568ccd96..1a2be9ba021bb24a 100644
+--- a/math/atest-exp2.c
++++ b/math/atest-exp2.c
+@@ -102,7 +102,7 @@ exp_mpn (mp1 ex, mp1 x)
+    unsigned int n;
+    mp1 xp;
+    mp2 tmp;
+-   mp_limb_t chk, round;
++   mp_limb_t chk;
+    mp1 tol;
+ 
+    memset (xp, 0, sizeof (mp1));
+@@ -120,7 +120,7 @@ exp_mpn (mp1 ex, mp1 x)
+        mpn_mul_n (tmp, xp, x, SZ);
+        assert(tmp[SZ * 2 - 1] == 0);
+        if (n > 0)
+-	 round = mpn_divmod_1 (xp, tmp + FRAC / mpbpl, SZ, n);
++	 mpn_divmod_1 (xp, tmp + FRAC / mpbpl, SZ, n);
+        chk = mpn_add_n (ex, ex, xp, SZ);
+        assert (chk == 0);
+        ++n;
+diff --git a/math/atest-sincos.c b/math/atest-sincos.c
+index d4d35e3c95ab5e29..f4e060b427d30678 100644
+--- a/math/atest-sincos.c
++++ b/math/atest-sincos.c
+@@ -64,7 +64,6 @@ sincosx_mpn (mp1 si, mp1 co, mp1 xx, mp1 ix)
+    int i;
+    mp2 s[4], c[4];
+    mp1 tmp, x;
+-   mp_limb_t chk, round;
+ 
+    if (ix == NULL)
+      {
+@@ -79,34 +78,38 @@ sincosx_mpn (mp1 si, mp1 co, mp1 xx, mp1 ix)
+    for (i = 0; i < 1 << N; i++)
+      {
+ #define add_shift_mulh(d,x,s1,s2,sh,n) \
+-       /* d = (n ? -1 : 1) * (s1 + (s2>>sh)) * x / (1>>N); */		      \
+       do { 								      \
+ 	 if (s2 != NULL) {						      \
+ 	    if (sh > 0) {						      \
+ 	       assert (sh < mpbpl);					      \
+ 	       mpn_lshift (tmp, s1, SZ, sh);				      \
+-	       chk = (n ? mpn_sub_n : mpn_add_n)(tmp,tmp,s2+FRAC/mpbpl,SZ);   \
+-	    } else							      \
+-	       chk = (n ? mpn_sub_n : mpn_add_n)(tmp,s1,s2+FRAC/mpbpl,SZ);    \
+-	    /* assert(chk == 0); */					      \
++	       if (n)							      \
++	         mpn_sub_n (tmp,tmp,s2+FRAC/mpbpl,SZ);			      \
++	       else							      \
++	         mpn_add_n (tmp,tmp,s2+FRAC/mpbpl,SZ);			      \
++	    } else {							      \
++	       if (n)							      \
++	         mpn_sub_n (tmp,s1,s2+FRAC/mpbpl,SZ);			      \
++	       else							      \
++	         mpn_add_n (tmp,s1,s2+FRAC/mpbpl,SZ);			      \
++	    }								      \
+ 	    mpn_mul_n(d,tmp,x,SZ);					      \
+ 	 } else 							      \
+ 	    mpn_mul_n(d,s1,x,SZ);					      \
+-	 /* assert(d[SZ*2-1] == 0); */					      \
+ 	 assert(N+sh < mpbpl);						      \
+ 	 if (N+sh > 0) mpn_rshift(d,d,2*SZ,N+sh);			      \
+       } while(0)
+ #define summ(d,ss,s,n) \
+-      /* d = ss +/- (s[0]+2*s[1]+2*s[2]+s[3])/6; */			      \
+       do { 								      \
+-	 chk = mpn_add_n(tmp,s[1]+FRAC/mpbpl,s[2]+FRAC/mpbpl,SZ);	      \
++	 mpn_add_n(tmp,s[1]+FRAC/mpbpl,s[2]+FRAC/mpbpl,SZ);		      \
+ 	 mpn_lshift(tmp,tmp,SZ,1);					      \
+-	 chk |= mpn_add_n(tmp,tmp,s[0]+FRAC/mpbpl,SZ);			      \
+-	 chk |= mpn_add_n(tmp,tmp,s[3]+FRAC/mpbpl,SZ);			      \
+-	 round = mpn_divmod_1(tmp,tmp,SZ,6);				      \
+-	 /* chk |= mpn_add_1(tmp,tmp,SZ, (round > 3) ); */		      \
+-         chk |= (n ? mpn_sub_n : mpn_add_n)(d,ss,tmp,SZ);		      \
+-	 /* assert(chk == 0); */					      \
++	 mpn_add_n(tmp,tmp,s[0]+FRAC/mpbpl,SZ);				      \
++	 mpn_add_n(tmp,tmp,s[3]+FRAC/mpbpl,SZ);				      \
++	 mpn_divmod_1(tmp,tmp,SZ,6);					      \
++	 if (n)								      \
++           mpn_sub_n (d,ss,tmp,SZ);					      \
++	 else								      \
++           mpn_add_n (d,ss,tmp,SZ);					      \
+       } while (0)
+ 
+       add_shift_mulh (s[0], x, co, NULL, 0, 0); /* s0 = h * c; */
diff --git a/SOURCES/glibc-rh1505492-unused-3.patch b/SOURCES/glibc-rh1505492-unused-3.patch
new file mode 100644
index 0000000..c1fa84e
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-unused-3.patch
@@ -0,0 +1,43 @@
+Partial backport of:
+
+commit 7a2ad8cf392acfcaef319e722dda9101d4d8b6bd
+Author: Adhemerval Zanella <azanella@linux.vnet.ibm.com>
+Date:   Wed Nov 13 06:45:19 2013 -0600
+
+    PowerPC: Fix __fe_mask_env export
+    
+    This patch does not export __fe_mask_env anymore, only providing a
+    compatibility symbol. It fixes BZ#14143.
+
+Only the removal of the unused variable is included here.
+
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c
+index e4bcd9800ddf1f33..dd57b9220317a075 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c
+@@ -27,9 +27,8 @@ const fenv_t *
+ __fe_mask_env (void)
+ {
+ #if defined PR_SET_FPEXC && defined PR_FP_EXC_DISABLED
+-  int result;
+   INTERNAL_SYSCALL_DECL (err);
+-  result = INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, PR_FP_EXC_DISABLED);
++  INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, PR_FP_EXC_DISABLED);
+ #else
+   __set_errno (ENOSYS);
+ #endif
+diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c
+index 46b94789801b73e5..03eb855d3bef33e5 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c
++++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c
+@@ -27,9 +27,8 @@ const fenv_t *
+ __fe_nomask_env (void)
+ {
+ #if defined PR_SET_FPEXC && defined PR_FP_EXC_PRECISE
+-  int result;
+   INTERNAL_SYSCALL_DECL (err);
+-  result = INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, PR_FP_EXC_PRECISE);
++  INTERNAL_SYSCALL (prctl, err, 2, PR_SET_FPEXC, PR_FP_EXC_PRECISE);
+ #else
+   __set_errno (ENOSYS);
+ #endif
diff --git a/SOURCES/glibc-rh1505492-unused-4.patch b/SOURCES/glibc-rh1505492-unused-4.patch
new file mode 100644
index 0000000..a0f05be
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-unused-4.patch
@@ -0,0 +1,41 @@
+commit d540fc8a66507bbbdc7e6594872786527c7667fa
+Author: Ondřej Bílka <neleai@seznam.cz>
+Date:   Mon Nov 18 13:12:29 2013 +0100
+
+    Remove unused variable.
+
+diff --git a/localedata/tests-mbwc/tst_mbrtowc.c b/localedata/tests-mbwc/tst_mbrtowc.c
+index 3a6070a870550552..ffb33ce11e1d72b7 100644
+--- a/localedata/tests-mbwc/tst_mbrtowc.c
++++ b/localedata/tests-mbwc/tst_mbrtowc.c
+@@ -16,7 +16,7 @@ tst_mbrtowc (FILE * fp, int debug_flg)
+   char w_flg, s_flg;
+   char *s;
+   size_t n;
+-  char t_flg, t_ini;
++  char t_flg;
+   static mbstate_t t = { 0 };
+   mbstate_t *pt;
+   wchar_t wc, *pwc, wc_ex;
+@@ -42,7 +42,6 @@ tst_mbrtowc (FILE * fp, int debug_flg)
+ 	s = TST_INPUT_SEQ (mbrtowc).s;
+ 	n = TST_INPUT_SEQ (mbrtowc).n;
+ 	t_flg = TST_INPUT_SEQ (mbrtowc).t_flg;
+-	t_ini = TST_INPUT_SEQ (mbrtowc).t_init;
+ 	pwc = (w_flg == 0) ? NULL : &wc;
+ 
+ 	if (s_flg == 0)
+@@ -56,12 +55,7 @@ tst_mbrtowc (FILE * fp, int debug_flg)
+ 	  }
+ 
+ 	pt = (t_flg == 0) ? NULL : &t;
+-#if 0
+-	if (t_ini != 0)
+-	  {
+-	    memset (&t, 0, sizeof (t));
+-	  }
+-#endif
++
+ 	TST_CLEAR_ERRNO;
+ 	ret = mbrtowc (pwc, s, n, pt);
+ 	TST_SAVE_ERRNO;
diff --git a/SOURCES/glibc-rh1505492-unused-5.patch b/SOURCES/glibc-rh1505492-unused-5.patch
new file mode 100644
index 0000000..15adb99
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-unused-5.patch
@@ -0,0 +1,20 @@
+commit c5eebdd084b77b0b581a3aa02213fa7cc5851216
+Author: Andreas Krebbel <krebbel@linux.vnet.ibm.com>
+Date:   Tue Jan 7 09:40:00 2014 +0100
+
+    S/390: Get rid of unused variable warning in dl-machine.h
+
+diff --git a/sysdeps/s390/s390-32/dl-machine.h b/sysdeps/s390/s390-32/dl-machine.h
+index febd99f8c6013f29..d2f57e6bbe13ec9d 100644
+--- a/sysdeps/s390/s390-32/dl-machine.h
++++ b/sysdeps/s390/s390-32/dl-machine.h
+@@ -354,7 +354,8 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
+     return;
+   else
+     {
+-#ifndef RESOLVE_CONFLICT_FIND_MAP
++#if !defined RTLD_BOOTSTRAP && !defined RESOLVE_CONFLICT_FIND_MAP
++      /* Only needed for R_390_COPY below.  */
+       const Elf32_Sym *const refsym = sym;
+ #endif
+       struct link_map *sym_map = RESOLVE_MAP (&sym, version, r_type);
diff --git a/SOURCES/glibc-rh1505492-unused-6.patch b/SOURCES/glibc-rh1505492-unused-6.patch
new file mode 100644
index 0000000..360b5c6
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-unused-6.patch
@@ -0,0 +1,20 @@
+commit 47df8251e8df7570d9581806113723aeb07dc35d
+Author: Stefan Liebler <stli@linux.vnet.ibm.com>
+Date:   Thu Nov 13 10:44:11 2014 +0100
+
+    S/390: Get rid of warning unused variable in dl-machine.h.
+
+diff --git a/sysdeps/s390/s390-64/dl-machine.h b/sysdeps/s390/s390-64/dl-machine.h
+index d08ec8f783729db5..71266a168415d645 100644
+--- a/sysdeps/s390/s390-64/dl-machine.h
++++ b/sysdeps/s390/s390-64/dl-machine.h
+@@ -299,7 +299,8 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc,
+     return;
+   else
+     {
+-#ifndef RESOLVE_CONFLICT_FIND_MAP
++#if !defined RTLD_BOOTSTRAP && !defined RESOLVE_CONFLICT_FIND_MAP
++      /* Only needed for R_390_COPY below.  */
+       const Elf64_Sym *const refsym = sym;
+ #endif
+       struct link_map *sym_map = RESOLVE_MAP (&sym, version, r_type);
diff --git a/SOURCES/glibc-rh1505492-unused-7.patch b/SOURCES/glibc-rh1505492-unused-7.patch
new file mode 100644
index 0000000..b636951
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-unused-7.patch
@@ -0,0 +1,28 @@
+commit bde2667a22c355467a4f07246c6d07a9dcc89366
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Tue Nov 25 21:40:51 2014 +0000
+
+    Fix warning in posix/bug-regex31.c.
+    
+    This patch fixes a "set but not used" warning in posix/bug-regex31.c.
+    A variable res stored an indication of whether the test behaved as
+    expected, but was then ignored and the test returned 0 unconditionally
+    (as an mtrace test, the auxiliary test for leaks could still have
+    failed if that bug was present).  This patch makes the test return
+    res.
+    
+    Tested for x86_64.
+    
+            * posix/bug-regex31.c (main): Return RES not 0.
+
+diff --git a/posix/bug-regex31.c b/posix/bug-regex31.c
+index fc485815fcf67d82..fd7e0c57cab515be 100644
+--- a/posix/bug-regex31.c
++++ b/posix/bug-regex31.c
+@@ -33,5 +33,5 @@ main (void)
+ 
+   free (buf);
+ 
+-  return 0;
++  return res;
+ }
diff --git a/SOURCES/glibc-rh1505492-unused-8.patch b/SOURCES/glibc-rh1505492-unused-8.patch
new file mode 100644
index 0000000..469d5cc
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-unused-8.patch
@@ -0,0 +1,37 @@
+commit c82f5c0ce5c1c0180fca311ceb29fd2d59da7441
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Wed Nov 26 00:45:19 2014 +0000
+
+    Fix warning in setjmp/jmpbug.c.
+    
+    This patch fixes a "set but not used" warning in setjmp/jmpbug.c.  A
+    variable is used only to store the result of alloca.  A cast to void
+    is added to avoid the warning, and the variable is made volatile to
+    ensure the call to alloca isn't optimized away for being unused.
+    
+    Tested for x86_64.
+    
+            * setjmp/jmpbug.c (test): Make foo volatile and cast it to
+            void.
+
+diff --git a/setjmp/jmpbug.c b/setjmp/jmpbug.c
+index 125977b2f719dbeb..8594c5a8a782b218 100644
+--- a/setjmp/jmpbug.c
++++ b/setjmp/jmpbug.c
+@@ -14,7 +14,7 @@ static void
+ test (int x)
+ {
+   jmp_buf buf;
+-  char *foo;
++  char *volatile foo;
+   int arr[100];
+ 
+   arr[77] = x;
+@@ -25,6 +25,7 @@ test (int x)
+     }
+ 
+   foo = (char *) alloca (128);
++  (void) foo;
+   sub5 (buf);
+ }
+ 
diff --git a/SOURCES/glibc-rh1505492-unused-9.patch b/SOURCES/glibc-rh1505492-unused-9.patch
new file mode 100644
index 0000000..b3ec6a4
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-unused-9.patch
@@ -0,0 +1,56 @@
+commit 12da14a59135fe331f294b91488c1bdf55b35b4e
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Wed Nov 26 12:54:39 2014 +0000
+
+    Fix warnings in fwscanf / rewind tests.
+    
+    This patch fixes "set but not used" warnings in the tests
+    libio/bug-rewind.c and libio/bug-rewind2.c by checking the return
+    values from fwscanf and making the tests fail if those values aren't
+    as expected.
+    
+    Tested for x86_64.
+    
+            * libio/bug-rewind.c (do_test): Check fwscanf return values.
+            * libio/bug-rewind2.c (do_test): Likewise.
+
+diff --git a/libio/bug-rewind.c b/libio/bug-rewind.c
+index 4f8242df3d6d1f75..1734de285f30fff4 100644
+--- a/libio/bug-rewind.c
++++ b/libio/bug-rewind.c
+@@ -52,9 +52,19 @@ do_test (void)
+ 
+   rewind (fptr);
+   ret1 = fwscanf (fptr, L"%c%c", &arg1, &arg2);
++  if (ret1 != 2)
++    {
++      printf ("first fwscanf returned %d, expected 2\n", ret1);
++      return 3;
++    }
+ 
+   rewind (fptr);
+   ret2 = fwscanf (fptr, L"%c%n%c", &arg1, &num, &arg2);
++  if (ret2 != 2)
++    {
++      printf ("second fwscanf returned %d, expected 2\n", ret2);
++      return 4;
++    }
+ 
+   if (arg2 != 'd')
+     {
+diff --git a/libio/bug-rewind2.c b/libio/bug-rewind2.c
+index 51b574433029f835..496f628675b36fcc 100644
+--- a/libio/bug-rewind2.c
++++ b/libio/bug-rewind2.c
+@@ -45,6 +45,11 @@ do_test (void)
+ 
+       rewind (fp);
+       ret = fwscanf (fp, L"%c", dummy);
++      if (ret != 1)
++	{
++	  printf ("fwscanf returned %d, expected 1\n", ret);
++	  result = 1;
++	}
+ 
+       printf ("current pos = %ld\n", ftell (fp));
+       if (ftell (fp) != 1)
diff --git a/SOURCES/glibc-rh1505492-unused-math.patch b/SOURCES/glibc-rh1505492-unused-math.patch
new file mode 100644
index 0000000..b541793
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-unused-math.patch
@@ -0,0 +1,61 @@
+Partial backport of:
+
+commit 6d9f97e1f2b60fe6ca33e0e75e8048c35a39df0e
+Author: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date:   Fri Dec 28 18:53:17 2012 +0530
+
+    Replace more constants with their values
+
+Only the removal of unused constants from header files is uncluded
+here.
+
+diff --git a/sysdeps/ieee754/dbl-64/ulog.h b/sysdeps/ieee754/dbl-64/ulog.h
+index 0bca23f0d5d08719..877e747d720ef8fb 100644
+--- a/sysdeps/ieee754/dbl-64/ulog.h
++++ b/sysdeps/ieee754/dbl-64/ulog.h
+@@ -80,10 +80,6 @@
+ /**/ d19            = {{0x3faaf286, 0xbca1af28} }, /*  1/19     */
+ /**/ d20            = {{0xbfa99999, 0x9999999a} }, /* -1/20     */
+   /* constants    */
+-/**/ zero           = {{0x00000000, 0x00000000} }, /* 0         */
+-/**/ one            = {{0x3ff00000, 0x00000000} }, /* 1         */
+-/**/ half           = {{0x3fe00000, 0x00000000} }, /* 1/2       */
+-/**/ mhalf          = {{0xbfe00000, 0x00000000} }, /* -1/2      */
+ /**/ sqrt_2         = {{0x3ff6a09e, 0x667f3bcc} }, /* sqrt(2)   */
+ /**/ h1             = {{0x3fd2e000, 0x00000000} }, /* 151/2**9  */
+ /**/ h2             = {{0x3f669000, 0x00000000} }, /* 361/2**17 */
+@@ -156,10 +152,6 @@
+ /**/ d19            = {{0xbca1af28, 0x3faaf286} }, /*  1/19     */
+ /**/ d20            = {{0x9999999a, 0xbfa99999} }, /* -1/20     */
+   /* constants    */
+-/**/ zero           = {{0x00000000, 0x00000000} }, /* 0         */
+-/**/ one            = {{0x00000000, 0x3ff00000} }, /* 1         */
+-/**/ half           = {{0x00000000, 0x3fe00000} }, /* 1/2       */
+-/**/ mhalf          = {{0x00000000, 0xbfe00000} }, /* -1/2      */
+ /**/ sqrt_2         = {{0x667f3bcc, 0x3ff6a09e} }, /* sqrt(2)   */
+ /**/ h1             = {{0x00000000, 0x3fd2e000} }, /* 151/2**9  */
+ /**/ h2             = {{0x00000000, 0x3f669000} }, /* 361/2**17 */
+diff --git a/sysdeps/ieee754/dbl-64/utan.h b/sysdeps/ieee754/dbl-64/utan.h
+index cfbb5f9397e00fec..e7456b71c35fd530 100644
+--- a/sysdeps/ieee754/dbl-64/utan.h
++++ b/sysdeps/ieee754/dbl-64/utan.h
+@@ -83,9 +83,7 @@
+   /* constants    */
+ /**/ zero           = {{0x00000000, 0x00000000} }, /* 0         */
+ /**/ one            = {{0x3ff00000, 0x00000000} }, /* 1         */
+-/**/ mone           = {{0xbff00000, 0x00000000} }, /*-1         */
+ /**/ mfftnhf        = {{0xc02f0000, 0x00000000} }, /*-15.5      */
+-/**/ two8           = {{0x40700000, 0x00000000} }, /* 256       */
+ 
+ /**/ g1             = {{0x3e4b096c, 0x00000000} }, /* 1.259e-8  */
+ /**/ g2             = {{0x3faf212d, 0x00000000} }, /* 0.0608    */
+@@ -204,9 +202,7 @@
+   /* constants    */
+ /**/ zero           = {{0x00000000, 0x00000000} }, /* 0         */
+ /**/ one            = {{0x00000000, 0x3ff00000} }, /* 1         */
+-/**/ mone           = {{0x00000000, 0xbff00000} }, /*-1         */
+ /**/ mfftnhf        = {{0x00000000, 0xc02f0000} }, /*-15.5      */
+-/**/ two8           = {{0x00000000, 0x40700000} }, /* 256       */
+ 
+ /**/ g1             = {{0x00000000, 0x3e4b096c} }, /* 1.259e-8  */
+ /**/ g2             = {{0x00000000, 0x3faf212d} }, /* 0.0608    */
diff --git a/SOURCES/glibc-rh1505492-unused-tst-default-attr.patch b/SOURCES/glibc-rh1505492-unused-tst-default-attr.patch
new file mode 100644
index 0000000..dfc6dd1
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-unused-tst-default-attr.patch
@@ -0,0 +1,16 @@
+The test nptl/tst-default-attr.c contained an unused value.  This is an
+issue specific to glibc-rh990388-4.patch, which is not present upstream.
+
+diff --git a/nptl/tst-default-attr.c b/nptl/tst-default-attr.c
+index aeb52725f28a5f03..de63c638f48c03b2 100644
+--- a/nptl/tst-default-attr.c
++++ b/nptl/tst-default-attr.c
+@@ -110,8 +110,6 @@ run_threads (void)
+ static int
+ do_test (void)
+ {
+-  pthread_attr_t attr;
+-
+   pagesize = sysconf (_SC_PAGESIZE);
+   if (pagesize < 0)
+     {
diff --git a/SOURCES/glibc-rh1505492-werror-activate.patch b/SOURCES/glibc-rh1505492-werror-activate.patch
new file mode 100644
index 0000000..12ddecf
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-werror-activate.patch
@@ -0,0 +1,231 @@
+commit a4ecc9eb9b15bc51a1dc4726c06d35eaea74e162
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Wed Dec 10 01:14:48 2014 +0000
+
+    Use -Werror by default, add --disable-werror.
+    
+    As discussed starting at
+    <https://sourceware.org/ml/libc-alpha/2014-11/msg00323.html>, this
+    patch makes the glibc build use -Werror by default to avoid
+    accidentally adding new warnings to the build.  The configure option
+    --disable-werror can be used to disable this.
+    
+    -Wno-error=undef is temporarily used because the build isn't clean
+    regarding -Wundef warnings.  The idea is that once the remaining
+    -Wundef warnings have been cleaned up (in at least one configuration),
+    -Wno-error=undef will be removed.
+    
+    I get a clean build and test on x86_64 (GCC 4.9 branch) with this
+    patch.  The expectation is that this may well break the build for some
+    other configurations, and people seeing such breakage should make
+    appropriate fixes to fix or suppress the warnings for their
+    configurations.  In some cases that may involve using pragmas as the
+    right fix (I think that will be right for the -Wno-inline issue for
+    MIPS I referred to in
+    <https://sourceware.org/ml/libc-alpha/2012-11/msg00798.html>, for
+    example), in some cases -Wno-error in sysdeps makefiles (__restore_rt
+    in MIPS sigaction, for example), in some cases substantive fixes for
+    the warnings.
+    
+    Note that if, with a view to listing all the warnings then fixing them
+    all, you just look for "warning:" in output from building and testing
+    with --disable-werror, you'll see lots of warnings from the linker
+    about functions such as tmpnam.  Those warnings can be ignored - only
+    compiler warnings are relevant to -Werror, not linker warnings.
+    
+            * configure.ac (--disable-werror): New configure option.
+            (enable_werror): New AC_SUBST.
+            * configure: Regenerated.
+            * config.make.in (enable-werror): New variable.
+            * Makeconfig [$(enable-werror) = yes] (+gccwarn): Add -Werror
+            -Wno-error=undef.
+            (+gccwarn-c): Do not use -Werror=implicit-function-declaration.
+            * manual/install.texi (Configuring and compiling): Document
+            --disable-werror.
+            * INSTALL: Regenerated.
+            * debug/Makefile (CFLAGS-tst-chk1.c): Add -Wno-error.
+            (CFLAGS-tst-chk2.c): Likewise.
+            (CFLAGS-tst-chk3.c): Likewise.
+            (CFLAGS-tst-chk4.cc): Likewise.
+            (CFLAGS-tst-chk5.cc): Likewise.
+            (CFLAGS-tst-chk6.cc): Likewise.
+            (CFLAGS-tst-lfschk1.c): Likewise.
+            (CFLAGS-tst-lfschk2.c): Likewise.
+            (CFLAGS-tst-lfschk3.c): Likewise.
+            (CFLAGS-tst-lfschk4.cc): Likewise.
+            (CFLAGS-tst-lfschk5.cc): Likewise.
+            (CFLAGS-tst-lfschk6.cc): Likewise.
+
+Conflicts:
+	INSTALL
+	manual/install.texi
+	  (Textual conflicts due to elision backport;
+          glibc-rh841653-0.patch and others)
+	configure.ac
+	  (Change applied to configure.in instead.) 
+
+diff --git a/INSTALL b/INSTALL
+index 264e57bc5f0316f7..82b29f5d8746f929 100644
+--- a/INSTALL
++++ b/INSTALL
+@@ -143,6 +143,13 @@ will be used, and CFLAGS sets optimization options for the compiler.
+ `--enable-lock-elision=yes'
+      Enable lock elision for pthread mutexes by default.
+ 
++`--disable-werror'
++     By default, the GNU C Library is built with `-Werror'.  If you wish
++     to build without this option (for example, if building with a newer
++     version of GCC than this version of the GNU C Library was tested
++     with, so new warnings cause the build with `-Werror' to fail), you
++     can configure with `--disable-werror'.
++
+ `--build=BUILD-SYSTEM'
+ `--host=HOST-SYSTEM'
+      These options are for cross-compiling.  If you specify both
+diff --git a/Makeconfig b/Makeconfig
+index 02f1cc1255c5ac07..6f61e4835c0a7770 100644
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -644,7 +644,10 @@ else
+ +gccwarn := -Wall -Wwrite-strings -Winline
+ endif
+ +gccwarn += -Wundef
+-+gccwarn-c = -Wstrict-prototypes -Werror=implicit-function-declaration
++ifeq ($(enable-werror),yes)
+++gccwarn += -Werror -Wno-error=undef
++endif
+++gccwarn-c = -Wstrict-prototypes
+ 
+ # We do not depend on the address of constants in different files to be
+ # actually different, so allow the compiler to merge them all.
+diff --git a/config.make.in b/config.make.in
+index d5490f61cd3faeba..3c65c9f03ab65a74 100644
+--- a/config.make.in
++++ b/config.make.in
+@@ -49,6 +49,7 @@ sysheaders = @sysheaders@
+ sysincludes = @SYSINCLUDES@
+ c++-sysincludes = @CXX_SYSINCLUDES@
+ all-warnings = @all_warnings@
++enable-werror = @enable_werror@
+ 
+ have-z-combreloc = @libc_cv_z_combreloc@
+ have-z-execstack = @libc_cv_z_execstack@
+diff --git a/configure b/configure
+index b185b400dfbc21de..769f0fa149d0ef9c 100755
+--- a/configure
++++ b/configure
+@@ -660,6 +660,7 @@ build_pt_chown
+ build_nscd
+ link_obsolete_rpc
+ libc_cv_nss_crypt
++enable_werror
+ all_warnings
+ force_install
+ bindnow
+@@ -758,6 +759,7 @@ enable_static_nss
+ enable_force_install
+ enable_kernel
+ enable_all_warnings
++enable_werror
+ enable_multi_arch
+ enable_nss_crypt
+ enable_obsolete_rpc
+@@ -1419,6 +1421,7 @@ Optional Features:
+   --enable-kernel=VERSION compile for compatibility with kernel not older than
+                           VERSION
+   --enable-all-warnings   enable all useful warnings gcc can issue
++  --disable-werror        do not build with -Werror
+   --enable-multi-arch     enable single DSO with optimizations for multiple
+                           architectures
+   --enable-nss-crypt      enable libcrypt to use nss
+@@ -3803,6 +3806,15 @@ fi
+ 
+ 
+ 
++# Check whether --enable-werror was given.
++if test "${enable_werror+set}" = set; then :
++  enableval=$enable_werror; enable_werror=$enableval
++else
++  enable_werror=yes
++fi
++
++
++
+ # Check whether --enable-multi-arch was given.
+ if test "${enable_multi_arch+set}" = set; then :
+   enableval=$enable_multi_arch; multi_arch=$enableval
+diff --git a/configure.in b/configure.in
+index f8c36ba306e01f59..9feb463ddfed2a27 100644
+--- a/configure.in
++++ b/configure.in
+@@ -234,6 +234,13 @@ AC_ARG_ENABLE([all-warnings],
+ 	      [])
+ AC_SUBST(all_warnings)
+ 
++AC_ARG_ENABLE([werror],
++	      AC_HELP_STRING([--disable-werror],
++			     [do not build with -Werror]),
++	      [enable_werror=$enableval],
++	      [enable_werror=yes])
++AC_SUBST(enable_werror)
++
+ AC_ARG_ENABLE([multi-arch],
+ 	      AC_HELP_STRING([--enable-multi-arch],
+ 			     [enable single DSO with optimizations for multiple architectures]),
+diff --git a/debug/Makefile b/debug/Makefile
+index e4efd9bcc687e562..6588b6327ae01205 100644
+--- a/debug/Makefile
++++ b/debug/Makefile
+@@ -89,19 +89,21 @@ CFLAGS-tst-longjmp_chk2.c = -fexceptions -fasynchronous-unwind-tables
+ CPPFLAGS-tst-longjmp_chk2.c = -D_FORTIFY_SOURCE=1
+ 
+ # We know these tests have problems with format strings, this is what
+-# we are testing.  Disable that warning.
+-CFLAGS-tst-chk1.c = -Wno-format
+-CFLAGS-tst-chk2.c = -Wno-format
+-CFLAGS-tst-chk3.c = -Wno-format
+-CFLAGS-tst-chk4.cc = -Wno-format
+-CFLAGS-tst-chk5.cc = -Wno-format
+-CFLAGS-tst-chk6.cc = -Wno-format
+-CFLAGS-tst-lfschk1.c = -Wno-format
+-CFLAGS-tst-lfschk2.c = -Wno-format
+-CFLAGS-tst-lfschk3.c = -Wno-format
+-CFLAGS-tst-lfschk4.cc = -Wno-format
+-CFLAGS-tst-lfschk5.cc = -Wno-format
+-CFLAGS-tst-lfschk6.cc = -Wno-format
++# we are testing.  Disable that warning.  They also generate warnings
++# from warning attributes, which cannot be disabled via pragmas, so
++# require -Wno-error to be used.
++CFLAGS-tst-chk1.c = -Wno-format -Wno-error
++CFLAGS-tst-chk2.c = -Wno-format -Wno-error
++CFLAGS-tst-chk3.c = -Wno-format -Wno-error
++CFLAGS-tst-chk4.cc = -Wno-format -Wno-error
++CFLAGS-tst-chk5.cc = -Wno-format -Wno-error
++CFLAGS-tst-chk6.cc = -Wno-format -Wno-error
++CFLAGS-tst-lfschk1.c = -Wno-format -Wno-error
++CFLAGS-tst-lfschk2.c = -Wno-format -Wno-error
++CFLAGS-tst-lfschk3.c = -Wno-format -Wno-error
++CFLAGS-tst-lfschk4.cc = -Wno-format -Wno-error
++CFLAGS-tst-lfschk5.cc = -Wno-format -Wno-error
++CFLAGS-tst-lfschk6.cc = -Wno-format -Wno-error
+ LDLIBS-tst-chk4 = -lstdc++
+ LDLIBS-tst-chk5 = -lstdc++
+ LDLIBS-tst-chk6 = -lstdc++
+diff --git a/manual/install.texi b/manual/install.texi
+index 7fe6e005c3fdd5fb..3799cee621ddc4f9 100644
+--- a/manual/install.texi
++++ b/manual/install.texi
+@@ -177,6 +177,13 @@ you understand and accept those risks.
+ @item --enable-lock-elision=yes
+ Enable lock elision for pthread mutexes by default.
+ 
++@item --disable-werror
++By default, @theglibc{} is built with @option{-Werror}.  If you wish
++to build without this option (for example, if building with a newer
++version of GCC than this version of @theglibc{} was tested with, so
++new warnings cause the build with @option{-Werror} to fail), you can
++configure with @option{--disable-werror}.
++
+ @item --build=@var{build-system}
+ @itemx --host=@var{host-system}
+ These options are for cross-compiling.  If you specify both options and
diff --git a/SOURCES/glibc-rh1505492-winline.patch b/SOURCES/glibc-rh1505492-winline.patch
new file mode 100644
index 0000000..62085e8
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-winline.patch
@@ -0,0 +1,34 @@
+commit ed159672eb3cd650a32b7e5cb4d5ec1fe0e63802
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Fri Apr 24 11:10:24 2015 +0200
+
+    Do not build with -Winline
+    
+    -Winline causes architecture- and optimization-dependent build failures
+    due to -Werror.  -Winline warns about inlining decisions based on
+    branch hints, in effect preventing the use of inline functions in
+    header files (because they might be called on unlikely branches, leading
+    to a decision not to inline).
+    
+    The option was apparently added to the glibc build at a time when GCC
+    did not support the always_inline attribute.  With current GCC versions,
+    inlining failure for functions declared always_inline will receive a
+    warning under -Wattributes, which is enabled by default, so -Winline
+    appears unnecessary.
+
+diff --git a/Makeconfig b/Makeconfig
+index 6f61e4835c0a7770..b1bf7f24b6154e3d 100644
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -639,9 +639,9 @@ endif
+ 
+ # Extra flags to pass to GCC.
+ ifeq ($(all-warnings),yes)
+-+gccwarn := -Wall -Wwrite-strings -Winline -Wcast-qual -Wbad-function-cast -Wmissing-noreturn -Wmissing-prototypes -Wmissing-declarations -Wcomment -Wcomments -Wtrigraphs -Wsign-compare -Wfloat-equal -Wmultichar
+++gccwarn := -Wall -Wwrite-strings -Wcast-qual -Wbad-function-cast -Wmissing-noreturn -Wmissing-prototypes -Wmissing-declarations -Wcomment -Wcomments -Wtrigraphs -Wsign-compare -Wfloat-equal -Wmultichar
+ else
+-+gccwarn := -Wall -Wwrite-strings -Winline
+++gccwarn := -Wall -Wwrite-strings
+ endif
+ +gccwarn += -Wundef
+ ifeq ($(enable-werror),yes)
diff --git a/SOURCES/glibc-rh1505492-zerodiv-1.patch b/SOURCES/glibc-rh1505492-zerodiv-1.patch
new file mode 100644
index 0000000..645b3c4
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-zerodiv-1.patch
@@ -0,0 +1,72 @@
+commit c81e9deba2f73ddc6f62a9d41684824c854366c6
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Wed Dec 10 00:43:36 2014 +0000
+
+    Disable -Wdiv-by-zero for some tests in stdio-common/tst-unlockedio.c.
+    
+    This patch uses diagnostic control pragmas to disable some
+    division-by-zero warnings in stdio-common/tst-unlockedio.c.  This is
+    another test where disabling warnings using diagnostic pragmas seems
+    appropriate (the warnings are not wildly inappropriate for what the
+    test deliberately does; the deliberate use of unusual arguments to the
+    macros being tested means that changing the arguments in a way that
+    avoids the warning would also unduly perturb what is being tested).
+    
+    Tested for x86_64.
+    
+            * stdio-common/tst-unlockedio.c: Include <libc-internal.h>.
+            (do_test): Disable -Wdiv-by-zero around some calls to
+            fwrite_unlocked and fread_unlocked.
+
+diff --git a/stdio-common/tst-unlockedio.c b/stdio-common/tst-unlockedio.c
+index 2e5848ec5f49b693..5ce02fe6f5c7ea5c 100644
+--- a/stdio-common/tst-unlockedio.c
++++ b/stdio-common/tst-unlockedio.c
+@@ -20,6 +20,7 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
++#include <libc-internal.h>
+ 
+ int fd;
+ static void do_prepare (void);
+@@ -44,6 +45,13 @@ do_test (void)
+ 
+   f = fp;
+   cp = blah;
++  /* These tests deliberately use fwrite_unlocked with the size
++     argument specified as 0, which results in "division by zero"
++     warnings from the expansion of that macro (in code that is not
++     evaluated for a size of 0).  This applies to the tests of
++     fread_unlocked below as well.  */
++  DIAG_PUSH_NEEDS_COMMENT;
++  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wdiv-by-zero");
+   if (ftello (fp) != 0
+       || fwrite_unlocked (blah, blah - blah, strlen (blah), f++) != 0
+       || f != fp + 1
+@@ -59,6 +67,7 @@ do_test (void)
+       puts ("One of fwrite_unlocked tests failed");
+       exit (1);
+     }
++  DIAG_POP_NEEDS_COMMENT;
+ 
+   if (fwrite_unlocked (blah, 1, strlen (blah) - 2, fp) != strlen (blah) - 2)
+     {
+@@ -93,6 +102,9 @@ do_test (void)
+   f = fp;
+   wp = buf;
+   memset (buf, ' ', sizeof (buf));
++  /* See explanation above.  */
++  DIAG_PUSH_NEEDS_COMMENT;
++  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wdiv-by-zero");
+   if (ftello (fp) != 0
+       || fread_unlocked (buf, buf - buf, strlen (blah), f++) != 0
+       || f != fp + 1
+@@ -109,6 +121,7 @@ do_test (void)
+       puts ("One of fread_unlocked tests failed");
+       exit (1);
+     }
++  DIAG_POP_NEEDS_COMMENT;
+ 
+   if (fread_unlocked (buf, 1, strlen (blah) - 2, fp) != strlen (blah) - 2)
+     {
diff --git a/SOURCES/glibc-rh1505492-zerodiv-log.patch b/SOURCES/glibc-rh1505492-zerodiv-log.patch
new file mode 100644
index 0000000..06746d8
--- /dev/null
+++ b/SOURCES/glibc-rh1505492-zerodiv-log.patch
@@ -0,0 +1,19 @@
+Suppress integer division by zero warnings by using floating-point
+literals.  Introduced by glibc-rh1409611.patch.
+
+diff --git a/sysdeps/ieee754/dbl-64/e_log.c b/sysdeps/ieee754/dbl-64/e_log.c
+index 930aa0eed8ec7818..e3e0eda594735f62 100644
+--- a/sysdeps/ieee754/dbl-64/e_log.c
++++ b/sysdeps/ieee754/dbl-64/e_log.c
+@@ -78,9 +78,9 @@ __ieee754_log(double x) {
+   n=0;
+   if (__builtin_expect(ux < 0x00100000, 0)) {
+     if (__builtin_expect(((ux & 0x7fffffff) | dx) == 0, 0))
+-      return MHALF/0; /* return -INF */
++      return MHALF/0.0; /* return -INF */
+     if (__builtin_expect(ux < 0, 0))
+-      return (x-x)/0;                         /* return NaN  */
++      return (x-x)/0.0;                         /* return NaN  */
+     n -= 54;    x *= two54.d;                              /* scale x     */
+     num.d = x;
+   }
diff --git a/SOURCES/glibc-rh1505500.patch b/SOURCES/glibc-rh1505500.patch
new file mode 100644
index 0000000..f046f9d
--- /dev/null
+++ b/SOURCES/glibc-rh1505500.patch
@@ -0,0 +1,57 @@
+commit 363a98991884a744e78b9bfc7df89768901c0816
+Author: Ondřej Bílka <neleai@seznam.cz>
+Date:   Tue Dec 16 00:09:32 2014 +0100
+
+    Return allocated array instead of unallocated.
+    
+    In locale/programs/ld-ctype.c we returned array that was on stack.
+    Fixed by returning static array instead.
+
+Index: b/locale/programs/ld-ctype.c
+===================================================================
+--- a/locale/programs/ld-ctype.c
++++ b/locale/programs/ld-ctype.c
+@@ -113,6 +113,9 @@ struct translit_include_t
+   struct translit_include_t *next;
+ };
+ 
++/* Provide some dummy pointer for empty string.  */
++static uint32_t no_str[] = { 0 };
++
+ 
+ /* Sparse table of uint32_t.  */
+ #define TABLE idx_table
+@@ -1873,7 +1876,7 @@ find_translit2 (struct locale_ctype_t *c
+ 
+ 	  for (wi = tirunp->from; wi <= wch; wi += tirunp->step)
+ 	    if (wi == wch)
+-	      return (uint32_t []) { 0 };
++	      return no_str;
+ 	}
+     }
+ 
+@@ -1927,7 +1930,7 @@ read_widestring (struct linereader *ldfi
+ 
+   if (now->tok == tok_default_missing)
+     /* The special name "" will denote this case.  */
+-    wstr = ((uint32_t *) { 0 });
++    wstr = no_str;
+   else if (now->tok == tok_bsymbol)
+     {
+       /* Get the value from the repertoire.  */
+@@ -4244,12 +4247,9 @@ allocate_arrays (struct locale_ctype_t *
+     }
+   else
+     {
+-      /* Provide some dummy pointers since we have nothing to write out.  */
+-      static uint32_t no_str = { 0 };
+-
+-      ctype->translit_from_idx = &no_str;
+-      ctype->translit_from_tbl = &no_str;
+-      ctype->translit_to_tbl = &no_str;
++      ctype->translit_from_idx = no_str;
++      ctype->translit_from_tbl = no_str;
++      ctype->translit_to_tbl = no_str;
+       ctype->translit_idx_size = 0;
+       ctype->translit_from_tbl_size = 0;
+       ctype->translit_to_tbl_size = 0;
diff --git a/SOURCES/glibc-rh1505647.patch b/SOURCES/glibc-rh1505647.patch
new file mode 100644
index 0000000..2a13e6e
--- /dev/null
+++ b/SOURCES/glibc-rh1505647.patch
@@ -0,0 +1,47 @@
+commit 1c81d55fc4b07b51adf68558ba74ce975153e580
+Author: DJ Delorie <dj@redhat.com>
+Date:   Thu Mar 1 23:20:45 2018 -0500
+
+    [BZ #22342] Fix netgroup cache keys.
+    
+    Unlike other nscd caches, the netgroup cache contains two types of
+    records - those for "iterate through a netgroup" (i.e. setnetgrent())
+    and those for "is this user in this netgroup" (i.e. innetgr()),
+    i.e. full and partial records.  The timeout code assumes these records
+    have the same key for the group name, so that the collection of records
+    that is "this netgroup" can be expired as a unit.
+    
+    However, the keys are not the same, as the in-netgroup key is generated
+    by nscd rather than being passed to it from elsewhere, and is generated
+    without the trailing NUL.  All other keys have the trailing NUL, and as
+    noted in the linked BZ, debug statements confirm that two keys for the
+    same netgroup are added to the cache with two different lengths.
+    
+    The result of this is that as records in the cache expire, the purge
+    code only cleans out one of the two types of entries, resulting in
+    stale, possibly incorrect, and possibly inconsistent cache data.
+    
+    The patch simply includes the existing NUL in the computation for the
+    key length ('key' points to the char after the NUL, and 'group' to the
+    first char of the group, so 'key-group' includes the first char to the
+    NUL, inclusive).
+    
+    	[BZ #22342]
+    	* nscd/netgroupcache.c (addinnetgrX): Include trailing NUL in
+    	key value.
+    
+    Reviewed-by: Carlos O'Donell <carlos@redhat.com>
+
+diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c
+index b832c93..2f187b2 100644
+--- a/nscd/netgroupcache.c
++++ b/nscd/netgroupcache.c
+@@ -480,7 +480,7 @@ addinnetgrX (struct database_dyn *db, int fd, request_header *req,
+ {
+   const char *group = key;
+   key = (char *) rawmemchr (key, '\0') + 1;
+-  size_t group_len = key - group - 1;
++  size_t group_len = key - group;
+   const char *host = *key++ ? key : NULL;
+   if (host != NULL)
+     key = (char *) rawmemchr (key, '\0') + 1;
diff --git a/SOURCES/glibc-rh1526193.patch b/SOURCES/glibc-rh1526193.patch
new file mode 100644
index 0000000..afba9f6
--- /dev/null
+++ b/SOURCES/glibc-rh1526193.patch
@@ -0,0 +1,61 @@
+commit 9ce673b69e82578044958f66d93dcaddb23f6e95
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Wed Aug 30 16:20:20 2017 +0200
+
+    Do not scale NPTL tests with available number of CPUs
+    
+    On very large multi-processor systems, creating hundreds of threads
+    runs into a test time out.  The tests do not seem to benefit from
+    massive over-scheduling.
+
+Index: b/nptl/tst-cond16.c
+===================================================================
+--- a/nptl/tst-cond16.c
++++ b/nptl/tst-cond16.c
+@@ -27,7 +27,7 @@ pthread_cond_t cv = PTHREAD_COND_INITIAL
+ pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
+ bool n, exiting;
+ FILE *f;
+-int count;
++enum { count = 8 };		/* Number of worker threads.  */
+ 
+ void *
+ tf (void *dummy)
+@@ -70,11 +70,6 @@ do_test (void)
+       return 1;
+     }
+ 
+-  count = sysconf (_SC_NPROCESSORS_ONLN);
+-  if (count <= 0)
+-    count = 1;
+-  count *= 4;
+-
+   pthread_t th[count];
+   pthread_attr_t attr;
+   int i, ret, sz;
+Index: b/nptl/tst-cond18.c
+===================================================================
+--- a/nptl/tst-cond18.c
++++ b/nptl/tst-cond18.c
+@@ -27,7 +27,8 @@
+ pthread_cond_t cv = PTHREAD_COND_INITIALIZER;
+ pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
+ bool exiting;
+-int fd, count, spins, nn;
++int fd, spins, nn;
++enum { count = 8 };		/* Number of worker threads.  */
+ 
+ void *
+ tf (void *id)
+@@ -81,11 +82,6 @@ do_test (void)
+       return 1;
+     }
+ 
+-  count = sysconf (_SC_NPROCESSORS_ONLN);
+-  if (count <= 0)
+-    count = 1;
+-  count *= 8;
+-
+   pthread_t th[count + 1];
+   pthread_attr_t attr;
+   int i, ret, sz;
diff --git a/SOURCES/glibc-rh1531168-1.patch b/SOURCES/glibc-rh1531168-1.patch
new file mode 100644
index 0000000..d5f3b4c
--- /dev/null
+++ b/SOURCES/glibc-rh1531168-1.patch
@@ -0,0 +1,29 @@
+commit 8e1f346462d8c1b238a7c6bb501c45b381a45e4d
+Author: H.J. Lu <hjl.tools@gmail.com>
+Date:   Sun Jul 12 14:38:58 2015 -0700
+
+    Align stack to 16 bytes when calling __setcontext
+    
+    Don't use pop to restore %rdi so that stack is aligned to 16 bytes
+    when calling __setcontext.
+    
+            [BZ #18661]
+            * sysdeps/unix/sysv/linux/x86_64/__start_context.S
+            (__start_context): Don't use pop to restore %rdi so that stack
+            is aligned to 16 bytes when calling __setcontext.
+
+diff --git a/sysdeps/unix/sysv/linux/x86_64/__start_context.S b/sysdeps/unix/sysv/linux/x86_64/__start_context.S
+index 9f2ee23736bfbf70..f59d6b4f7f3d3d43 100644
+--- a/sysdeps/unix/sysv/linux/x86_64/__start_context.S
++++ b/sysdeps/unix/sysv/linux/x86_64/__start_context.S
+@@ -31,8 +31,8 @@ ENTRY(__start_context)
+ 	   on the stack pointer for the next context.  */
+ 	movq	%rbx, %rsp
+ 
+-	popq	%rdi			/* This is the next context.  */
+-	cfi_adjust_cfa_offset(-8)
++	/* Don't use pop here so that stack is aligned to 16 bytes.  */
++	movq	(%rsp), %rdi		/* This is the next context.  */
+ 	testq	%rdi, %rdi
+ 	je	2f			/* If it is zero exit.  */
+ 
diff --git a/SOURCES/glibc-rh1531168-2.patch b/SOURCES/glibc-rh1531168-2.patch
new file mode 100644
index 0000000..a544ec1
--- /dev/null
+++ b/SOURCES/glibc-rh1531168-2.patch
@@ -0,0 +1,32 @@
+commit bbab82c25da9b504c0804119840de7aeab0eeeba
+Author: Andreas Schwab <schwab@suse.de>
+Date:   Tue Aug 4 12:35:50 2015 +0200
+
+    Properly terminate FDE in makecontext for ix86 (bug 18635)
+
+Downstream never set test-xfail-tst-makecontext, so it is not removed by
+this patch.
+
+diff --git a/sysdeps/unix/sysv/linux/i386/makecontext.S b/sysdeps/unix/sysv/linux/i386/makecontext.S
+index 106b865066d346b6..48643864b05568b0 100644
+--- a/sysdeps/unix/sysv/linux/i386/makecontext.S
++++ b/sysdeps/unix/sysv/linux/i386/makecontext.S
+@@ -83,6 +83,10 @@ ENTRY(__makecontext)
+ #else
+ 	movl	$L(exitcode), (%edx)
+ #endif
++	/* We need to terminate the FDE here instead of after ret because
++	   the unwinder looks at ra-1 for unwind information.  */
++	cfi_endproc
++
+ 	/* 'makecontext' returns no value.  */
+ 	ret
+ 
+@@ -92,7 +96,6 @@ ENTRY(__makecontext)
+ 	   the context 'makecontext' manipulated at the time of the
+ 	   'makecontext' call.  If the pointer is NULL the process must
+ 	   terminate.  */
+-	cfi_endproc
+ L(exitcode):
+ 	/* This removes the parameters passed to the function given to
+ 	   'makecontext' from the stack.  EBX contains the number of
diff --git a/SOURCES/glibc-rh1531168-3.patch b/SOURCES/glibc-rh1531168-3.patch
new file mode 100644
index 0000000..763436e
--- /dev/null
+++ b/SOURCES/glibc-rh1531168-3.patch
@@ -0,0 +1,297 @@
+commit 8a5df95ffa83f525a4f638ead743f4fa2b7fe45a
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Thu Jan 4 18:00:05 2018 +0100
+
+    i386: In makecontext, align the stack before calling exit [BZ #22667]
+    
+    Before this change, if glibc was compiled with SSE instructions and a
+    sufficiently recent GCC, an unaligned stack access in
+    __run_exit_handlers would cause stdlib/tst-makecontext to crash.
+
+diff --git a/stdlib/Makefile b/stdlib/Makefile
+index 764aad69d8c50b9b..b5553eafc2a4bbd5 100644
+--- a/stdlib/Makefile
++++ b/stdlib/Makefile
+@@ -71,7 +71,8 @@ tests		:= tst-strtol tst-strtod testmb testrand testsort testdiv   \
+ 		   tst-qsort2 tst-makecontext2 tst-strtod6 tst-unsetenv1    \
+ 		   tst-makecontext3 bug-getcontext bug-fmtmsg1		    \
+ 		   tst-secure-getenv tst-strtod-overflow tst-strtod-round   \
+-		   tst-tininess tst-strtod-underflow tst-strfmon_l
++		   tst-tininess tst-strtod-underflow tst-strfmon_l	    \
++		   tst-makecontext-align
+ tests-static	:= tst-secure-getenv
+ 
+ include ../Makeconfig
+diff --git a/stdlib/tst-makecontext-align.c b/stdlib/tst-makecontext-align.c
+new file mode 100644
+index 0000000000000000..82394b4f6b024c9b
+--- /dev/null
++++ b/stdlib/tst-makecontext-align.c
+@@ -0,0 +1,241 @@
++/* Check stack alignment provided by makecontext.
++   Copyright (C) 2018 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 <stdint.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <support/check.h>
++#include <support/namespace.h>
++#include <support/xunistd.h>
++#include <sys/mman.h>
++#include <ucontext.h>
++
++/* Used for error reporting.  */
++static const char *context;
++
++/* Check that ADDRESS is aligned to ALIGNMENT bytes, behind a compiler
++   barrier.  */
++__attribute__ ((noinline, noclone, weak))
++void
++check_align (void *address, size_t alignment)
++{
++  uintptr_t uaddress = (uintptr_t) address;
++  if ((uaddress % alignment) != 0)
++    {
++      support_record_failure ();
++      printf ("error: %s: object at address %p is not aligned to %zu bytes\n",
++              context, address, alignment);
++    }
++}
++
++/* Various alignment checking functions.  */
++
++__attribute__ ((noinline, noclone, weak))
++void
++check_align_int (void)
++{
++  int a;
++  check_align (&a, __alignof__ (a));
++}
++
++__attribute__ ((noinline, noclone, weak))
++void
++check_align_long (void)
++{
++  long a;
++  check_align (&a, __alignof__ (a));
++}
++
++__attribute__ ((noinline, noclone, weak))
++void
++check_align_long_long (void)
++{
++  long long a;
++  check_align (&a, __alignof__ (a));
++}
++
++__attribute__ ((noinline, noclone, weak))
++void
++check_align_double (void)
++{
++  double a;
++  check_align (&a, __alignof__ (a));
++}
++
++__attribute__ ((noinline, noclone, weak))
++void
++check_align_4 (void)
++{
++  int a __attribute__ ((aligned (4)));
++  check_align (&a, 4);
++}
++
++__attribute__ ((noinline, noclone, weak))
++void
++check_align_8 (void)
++{
++  double a __attribute__ ((aligned (8)));
++  check_align (&a, 8);
++}
++
++__attribute__ ((noinline, noclone, weak))
++void
++check_align_16 (void)
++{
++  struct aligned
++  {
++    double x0  __attribute__ ((aligned (16)));
++    double x1;
++  } a;
++  check_align (&a, 16);
++}
++
++__attribute__ ((noinline, noclone, weak))
++void
++check_align_32 (void)
++{
++  struct aligned
++  {
++    double x0  __attribute__ ((aligned (32)));
++    double x1;
++    double x2;
++    double x3;
++  } a;
++  check_align (&a, 32);
++}
++
++/* Call all the alignment checking functions.  */
++__attribute__ ((noinline, noclone, weak))
++void
++check_alignments (void)
++{
++  check_align_int ();
++  check_align_long ();
++  check_align_long_long ();
++  check_align_double ();
++  check_align_4 ();
++  check_align_8 ();
++  check_align_16 ();
++  check_align_32 ();
++}
++
++/* Callback functions for makecontext and their invokers (to be used
++   with support_isolate_in_subprocess).  */
++
++static ucontext_t ucp;
++
++static void
++callback_0 (void)
++{
++  context = "callback_0";
++  check_alignments ();
++  context = "after return from callback_0";
++}
++
++static void
++invoke_callback_0 (void *closure)
++{
++  makecontext (&ucp, (void *) callback_0, 0);
++  if (setcontext (&ucp) != 0)
++    FAIL_EXIT1 ("setcontext");
++  FAIL_EXIT1 ("setcontext returned");
++}
++
++static void
++callback_1 (int arg1)
++{
++  context = "callback_1";
++  check_alignments ();
++  TEST_COMPARE (arg1, 101);
++  context = "after return from callback_1";
++}
++
++static void
++invoke_callback_1 (void *closure)
++{
++  makecontext (&ucp, (void *) callback_1, 1, 101);
++  if (setcontext (&ucp) != 0)
++    FAIL_EXIT1 ("setcontext");
++  FAIL_EXIT1 ("setcontext returned");
++}
++
++static void
++callback_2 (int arg1, int arg2)
++{
++  context = "callback_2";
++  check_alignments ();
++  TEST_COMPARE (arg1, 201);
++  TEST_COMPARE (arg2, 202);
++  context = "after return from callback_2";
++}
++
++static void
++invoke_callback_2 (void *closure)
++{
++  makecontext (&ucp, (void *) callback_2, 2, 201, 202);
++  if (setcontext (&ucp) != 0)
++    FAIL_EXIT1 ("setcontext");
++  FAIL_EXIT1 ("setcontext returned");
++}
++
++static void
++callback_3 (int arg1, int arg2, int arg3)
++{
++  context = "callback_3";
++  check_alignments ();
++  TEST_COMPARE (arg1, 301);
++  TEST_COMPARE (arg2, 302);
++  TEST_COMPARE (arg3, 303);
++  context = "after return from callback_3";
++}
++
++static void
++invoke_callback_3 (void *closure)
++{
++  makecontext (&ucp, (void *) callback_3, 3, 301, 302, 303);
++  if (setcontext (&ucp) != 0)
++    FAIL_EXIT1 ("setcontext");
++  FAIL_EXIT1 ("setcontext returned");
++}
++
++static int
++do_test (void)
++{
++  context = "direct call";
++  check_alignments ();
++
++  atexit (check_alignments);
++
++  if (getcontext (&ucp) != 0)
++    FAIL_UNSUPPORTED ("getcontext");
++
++  ucp.uc_link = NULL;
++  ucp.uc_stack.ss_size = 512 * 1024;
++  ucp.uc_stack.ss_sp = xmmap (NULL, ucp.uc_stack.ss_size,
++                              PROT_READ | PROT_WRITE,
++                              MAP_PRIVATE | MAP_ANONYMOUS, -1);
++
++  support_isolate_in_subprocess (invoke_callback_0, NULL);
++  support_isolate_in_subprocess (invoke_callback_1, NULL);
++  support_isolate_in_subprocess (invoke_callback_2, NULL);
++  support_isolate_in_subprocess (invoke_callback_3, NULL);
++
++  return 0;
++}
++
++#include <support/test-driver.c>
+diff --git a/sysdeps/unix/sysv/linux/i386/makecontext.S b/sysdeps/unix/sysv/linux/i386/makecontext.S
+index 48643864b05568b0..5e02aa78925c4bdc 100644
+--- a/sysdeps/unix/sysv/linux/i386/makecontext.S
++++ b/sysdeps/unix/sysv/linux/i386/makecontext.S
+@@ -113,9 +113,19 @@ L(exitcode):
+ 	call	JUMPTARGET(__setcontext)
+ 	/* If this returns (which can happen if the syscall fails) we'll
+ 	   exit the program with the return error value (-1).  */
++	jmp L(call_exit)
+ 
+-	movl	%eax, (%esp)
+-2:	call	HIDDEN_JUMPTARGET(exit)
++2:
++	/* Exit with status 0.  */
++	xorl	%eax, %eax
++
++L(call_exit):
++	/* Align the stack and pass the exit code (from %eax).  */
++	andl	$0xfffffff0, %esp
++	subl	$12, %esp
++	pushl	%eax
++
++	call	HIDDEN_JUMPTARGET(exit)
+ 	/* The 'exit' call should never return.  In case it does cause
+ 	   the process to terminate.  */
+ 	hlt
diff --git a/SOURCES/glibc-rh1540480-0.patch b/SOURCES/glibc-rh1540480-0.patch
new file mode 100644
index 0000000..1bd82b9
--- /dev/null
+++ b/SOURCES/glibc-rh1540480-0.patch
@@ -0,0 +1,92 @@
+commit 2a939a7e6d81f109d49306bc2e10b4ac9ceed8f9
+Author: Ondřej Bílka <neleai@seznam.cz>
+Date:   Mon Dec 2 14:53:14 2013 +0100
+
+    Return fixed version of  breaking of RPATH when $ORIGIN contains colons
+
+Index: glibc-2.17-c758a686/elf/dl-load.c
+===================================================================
+--- glibc-2.17-c758a686.orig/elf/dl-load.c
++++ glibc-2.17-c758a686/elf/dl-load.c
+@@ -487,14 +487,19 @@ static size_t max_dirnamelen;
+ 
+ static struct r_search_path_elem **
+ fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep,
+-	      int check_trusted, const char *what, const char *where)
++	      int check_trusted, const char *what, const char *where,
++	      struct link_map *l)
+ {
+   char *cp;
+   size_t nelems = 0;
++  char *to_free;
+ 
+   while ((cp = __strsep (&rpath, sep)) != NULL)
+     {
+       struct r_search_path_elem *dirp;
++
++      to_free = cp = expand_dynamic_string_token (l, cp, 1);
++
+       size_t len = strlen (cp);
+ 
+       /* `strsep' can pass an empty string.  This has to be
+@@ -515,7 +520,10 @@ fillin_rpath (char *rpath, struct r_sear
+ 
+       /* Make sure we don't use untrusted directories if we run SUID.  */
+       if (__builtin_expect (check_trusted, 0) && !is_trusted_path (cp, len))
+-	continue;
++	{
++	  free (to_free);
++	  continue;
++	}
+ 
+       /* See if this directory is already known.  */
+       for (dirp = GL(dl_all_dirs); dirp != NULL; dirp = dirp->next)
+@@ -576,6 +584,7 @@ fillin_rpath (char *rpath, struct r_sear
+ 	  /* Put it in the result array.  */
+ 	  result[nelems++] = dirp;
+ 	}
++      free (to_free);
+     }
+ 
+   /* Terminate the array.  */
+@@ -631,9 +640,8 @@ decompose_rpath (struct r_search_path_st
+       while (*inhp != '\0');
+     }
+ 
+-  /* Make a writable copy.  At the same time expand possible dynamic
+-     string tokens.  */
+-  copy = expand_dynamic_string_token (l, rpath, 1);
++  /* Make a writable copy.  */
++  copy = local_strdup (rpath);
+   if (copy == NULL)
+     {
+       errstring = N_("cannot create RUNPATH/RPATH copy");
+@@ -666,7 +674,7 @@ decompose_rpath (struct r_search_path_st
+       _dl_signal_error (ENOMEM, NULL, NULL, errstring);
+     }
+ 
+-  fillin_rpath (copy, result, ":", 0, what, where);
++  fillin_rpath (copy, result, ":", 0, what, where, l);
+ 
+   /* Free the copied RPATH string.  `fillin_rpath' make own copies if
+      necessary.  */
+@@ -714,9 +722,7 @@ _dl_init_paths (const char *llp)
+   const char *strp;
+   struct r_search_path_elem *pelem, **aelem;
+   size_t round_size;
+-#ifdef SHARED
+-  struct link_map *l;
+-#endif
++  struct link_map __attribute__ ((unused)) *l = NULL;
+   /* Initialize to please the compiler.  */
+   const char *errstring = NULL;
+ 
+@@ -865,7 +871,7 @@ _dl_init_paths (const char *llp)
+ 
+       (void) fillin_rpath (llp_tmp, env_path_list.dirs, ":;",
+ 			   INTUSE(__libc_enable_secure), "LD_LIBRARY_PATH",
+-			   NULL);
++			   NULL, l);
+ 
+       if (env_path_list.dirs[0] == NULL)
+ 	{
diff --git a/SOURCES/glibc-rh1540480-1.patch b/SOURCES/glibc-rh1540480-1.patch
new file mode 100644
index 0000000..41903ea
--- /dev/null
+++ b/SOURCES/glibc-rh1540480-1.patch
@@ -0,0 +1,37 @@
+commit 3ff3dfa5af313a6ea33f3393916f30eece4f0171
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Thu Dec 14 15:05:57 2017 +0100
+
+    elf: Count components of the expanded path in _dl_init_path [BZ #22607]
+
+Index: glibc-2.17-c758a686/elf/dl-load.c
+===================================================================
+--- glibc-2.17-c758a686.orig/elf/dl-load.c
++++ glibc-2.17-c758a686/elf/dl-load.c
+@@ -829,8 +829,6 @@ _dl_init_paths (const char *llp)
+ 
+   if (llp != NULL && *llp != '\0')
+     {
+-      size_t nllp;
+-      const char *cp = llp;
+       char *llp_tmp;
+ 
+ #ifdef SHARED
+@@ -853,13 +851,10 @@ _dl_init_paths (const char *llp)
+ 
+       /* Decompose the LD_LIBRARY_PATH contents.  First determine how many
+ 	 elements it has.  */
+-      nllp = 1;
+-      while (*cp)
+-	{
+-	  if (*cp == ':' || *cp == ';')
+-	    ++nllp;
+-	  ++cp;
+-	}
++      size_t nllp = 1;
++      for (const char *cp = llp_tmp; *cp != '\0'; ++cp)
++	if (*cp == ':' || *cp == ';')
++	  ++nllp;
+ 
+       env_path_list.dirs = (struct r_search_path_elem **)
+ 	malloc ((nllp + 1) * sizeof (struct r_search_path_elem *));
diff --git a/SOURCES/glibc-rh1540480-2.patch b/SOURCES/glibc-rh1540480-2.patch
new file mode 100644
index 0000000..a0e55fa
--- /dev/null
+++ b/SOURCES/glibc-rh1540480-2.patch
@@ -0,0 +1,37 @@
+commit bb195224acc14724e9fc2dbaa8d0b20b72ace79b
+Author: Dmitry V. Levin <ldv@altlinux.org>
+Date:   Sun Dec 17 23:49:46 2017 +0000
+
+    elf: do not substitute dst in $LD_LIBRARY_PATH twice [BZ #22627]
+
+Index: glibc-2.17-c758a686/elf/dl-load.c
+===================================================================
+--- glibc-2.17-c758a686.orig/elf/dl-load.c
++++ glibc-2.17-c758a686/elf/dl-load.c
+@@ -829,25 +829,7 @@ _dl_init_paths (const char *llp)
+ 
+   if (llp != NULL && *llp != '\0')
+     {
+-      char *llp_tmp;
+-
+-#ifdef SHARED
+-      /* Expand DSTs.  */
+-      size_t cnt = DL_DST_COUNT (llp, 1);
+-      if (__builtin_expect (cnt == 0, 1))
+-	llp_tmp = strdupa (llp);
+-      else
+-	{
+-	  /* Determine the length of the substituted string.  */
+-	  size_t total = DL_DST_REQUIRED (l, llp, strlen (llp), cnt);
+-
+-	  /* Allocate the necessary memory.  */
+-	  llp_tmp = (char *) alloca (total + 1);
+-	  llp_tmp = _dl_dst_substitute (l, llp, llp_tmp, 1);
+-	}
+-#else
+-      llp_tmp = strdupa (llp);
+-#endif
++      char *llp_tmp = strdupa (llp);
+ 
+       /* Decompose the LD_LIBRARY_PATH contents.  First determine how many
+ 	 elements it has.  */
diff --git a/SOURCES/glibc-rh1540480-3.patch b/SOURCES/glibc-rh1540480-3.patch
new file mode 100644
index 0000000..d9b19f2
--- /dev/null
+++ b/SOURCES/glibc-rh1540480-3.patch
@@ -0,0 +1,92 @@
+commit 10e93d968716ab82931d593bada121c17c0a4b93
+Author: Dmitry V. Levin <ldv@altlinux.org>
+Date:   Mon Dec 18 21:46:07 2017 +0000
+
+    elf: remove redundant __libc_enable_secure check from fillin_rpath
+    
+    There are just two users of fillin_rpath: one is decompose_rpath that
+    sets check_trusted argument to 0, another one is _dl_init_paths that
+    sets check_trusted argument to __libc_enable_secure and invokes
+    fillin_rpath only when LD_LIBRARY_PATH is non-empty.
+    
+    Starting with commit
+    glibc-2.25.90-512-gf6110a8fee2ca36f8e2d2abecf3cba9fa7b8ea7d,
+    LD_LIBRARY_PATH is ignored for __libc_enable_secure executables,
+    so check_trusted argument of fillin_rpath is always zero.
+    
+    * elf/dl-load.c (is_trusted_path): Remove.
+    (fillin_rpath): Remove check_trusted argument and its use,
+    all callers changed.
+
+Index: glibc-2.17-c758a686/elf/dl-load.c
+===================================================================
+--- glibc-2.17-c758a686.orig/elf/dl-load.c
++++ glibc-2.17-c758a686/elf/dl-load.c
+@@ -169,24 +169,6 @@ local_strdup (const char *s)
+ 
+ 
+ static bool
+-is_trusted_path (const char *path, size_t len)
+-{
+-  const char *trun = system_dirs;
+-
+-  for (size_t idx = 0; idx < nsystem_dirs_len; ++idx)
+-    {
+-      if (len == system_dirs_len[idx] && memcmp (trun, path, len) == 0)
+-	/* Found it.  */
+-	return true;
+-
+-      trun += system_dirs_len[idx] + 1;
+-    }
+-
+-  return false;
+-}
+-
+-
+-static bool
+ is_trusted_path_normalize (const char *path, size_t len)
+ {
+   if (len == 0)
+@@ -487,8 +469,7 @@ static size_t max_dirnamelen;
+ 
+ static struct r_search_path_elem **
+ fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep,
+-	      int check_trusted, const char *what, const char *where,
+-	      struct link_map *l)
++	      const char *what, const char *where, struct link_map *l)
+ {
+   char *cp;
+   size_t nelems = 0;
+@@ -518,13 +499,6 @@ fillin_rpath (char *rpath, struct r_sear
+       if (len > 0 && cp[len - 1] != '/')
+ 	cp[len++] = '/';
+ 
+-      /* Make sure we don't use untrusted directories if we run SUID.  */
+-      if (__builtin_expect (check_trusted, 0) && !is_trusted_path (cp, len))
+-	{
+-	  free (to_free);
+-	  continue;
+-	}
+-
+       /* See if this directory is already known.  */
+       for (dirp = GL(dl_all_dirs); dirp != NULL; dirp = dirp->next)
+ 	if (dirp->dirnamelen == len && memcmp (cp, dirp->dirname, len) == 0)
+@@ -674,7 +648,7 @@ decompose_rpath (struct r_search_path_st
+       _dl_signal_error (ENOMEM, NULL, NULL, errstring);
+     }
+ 
+-  fillin_rpath (copy, result, ":", 0, what, where, l);
++  fillin_rpath (copy, result, ":", what, where, l);
+ 
+   /* Free the copied RPATH string.  `fillin_rpath' make own copies if
+      necessary.  */
+@@ -847,8 +821,7 @@ _dl_init_paths (const char *llp)
+ 	}
+ 
+       (void) fillin_rpath (llp_tmp, env_path_list.dirs, ":;",
+-			   INTUSE(__libc_enable_secure), "LD_LIBRARY_PATH",
+-			   NULL, l);
++			   "LD_LIBRARY_PATH", NULL, l);
+ 
+       if (env_path_list.dirs[0] == NULL)
+ 	{
diff --git a/SOURCES/glibc-rh1540480-4.patch b/SOURCES/glibc-rh1540480-4.patch
new file mode 100644
index 0000000..ca63fc5
--- /dev/null
+++ b/SOURCES/glibc-rh1540480-4.patch
@@ -0,0 +1,57 @@
+commit 97f13188c9fbafeaab89146996b3cce1f4952b5e
+Author: Dmitry V. Levin <ldv@altlinux.org>
+Date:   Tue Dec 19 21:06:23 2017 +0000
+
+    elf: remove redundant code from _dl_dst_substitute
+    
+    There are just two users of _dl_dst_substitute: one is expand_dst that
+    sets is_path argument to 0, another one is expand_dynamic_string_token.
+    The latter function also has just two users: one is _dl_map_object that
+    sets is_path argument to 0, another one is fillin_rpath that sets
+    is_path argument to 1 and name argument contains no ':'.
+    
+    In any case (is_path && name[i] == ':') is always false and all code
+    depending on it can be safely removed.
+    
+    * elf/dl-load.c (_dl_dst_substitute): Remove checks that is_path
+    is set and name contains ':', and all code depending on these checks.
+
+Index: glibc-2.17-c758a686/elf/dl-load.c
+===================================================================
+--- glibc-2.17-c758a686.orig/elf/dl-load.c
++++ glibc-2.17-c758a686/elf/dl-load.c
+@@ -349,13 +349,7 @@ _dl_dst_substitute (struct link_map *l,
+ 	      /* We cannot use this path element, the value of the
+ 		 replacement is unknown.  */
+ 	      wp = last_elem;
+-	      name += len;
+-	      while (*name != '\0' && (!is_path || *name != ':'))
+-		++name;
+-	      /* Also skip following colon if this is the first rpath
+-		 element, but keep an empty element at the end.  */
+-	      if (wp == result && is_path && *name == ':' && name[1] != '\0')
+-		++name;
++	      break;
+ 	    }
+ 	  else
+ 	    /* No DST we recognize.  */
+@@ -364,19 +358,6 @@ _dl_dst_substitute (struct link_map *l,
+       else
+ 	{
+ 	  *wp++ = *name++;
+-	  if (is_path && *name == ':')
+-	    {
+-	      /* In SUID/SGID programs, after $ORIGIN expansion the
+-		 normalized path must be rooted in one of the trusted
+-		 directories.  */
+-	      if (__builtin_expect (check_for_trusted, false)
+-		  && !is_trusted_path_normalize (last_elem, wp - last_elem))
+-		wp = last_elem;
+-	      else
+-		last_elem = wp;
+-
+-	      check_for_trusted = false;
+-	    }
+ 	}
+     }
+   while (*name != '\0');
diff --git a/SOURCES/glibc-rh1540480-5.patch b/SOURCES/glibc-rh1540480-5.patch
new file mode 100644
index 0000000..1b21069
--- /dev/null
+++ b/SOURCES/glibc-rh1540480-5.patch
@@ -0,0 +1,43 @@
+commit 1c36e1e6a5b9b6f9ad1c67f5d43383afb4d80339
+Author: Dmitry V. Levin <ldv@altlinux.org>
+Date:   Wed Dec 20 11:27:51 2017 +0000
+
+    elf: remove redundant code from is_dst
+    
+    is_dst is called either by _dl_dst_count or by _dl_dst_substitute.
+    _dl_dst_count is called by DL_DST_COUNT only.
+    DL_DST_COUNT is called either by expand_dst with is_path == 0
+    or by expand_dynamic_string_token.
+    _dl_dst_substitute is called either from expand_dst with is_path == 0
+    or from expand_dynamic_string_token.
+    The latter function is called either from _dl_map_object with is_path == 0
+    or from fillin_rpath with is_path == 1 and name containing no ':'.
+    
+    In any case (is_path && name[i] == ':') is always false and all code
+    depending on it can be safely removed.
+    
+    * elf/dl-load.c (is_dst): Remove checks that is_path is set and name
+    contains ':', and all code depending on these checks.
+
+Index: glibc-2.17-c758a686/elf/dl-load.c
+===================================================================
+--- glibc-2.17-c758a686.orig/elf/dl-load.c
++++ glibc-2.17-c758a686/elf/dl-load.c
+@@ -258,14 +258,12 @@ is_dst (const char *start, const char *n
+       /* Skip over closing curly brace and adjust for the --name.  */
+       len += 2;
+     }
+-  else if (name[len] != '\0' && name[len] != '/'
+-	   && (!is_path || name[len] != ':'))
++  else if (name[len] != '\0' && name[len] != '/')
+     return 0;
+ 
+   if (__builtin_expect (secure, 0)
+-      && ((name[len] != '\0' && name[len] != '/'
+-	   && (!is_path || name[len] != ':'))
+-	  || (name != start + 1 && (!is_path || name[-2] != ':'))))
++      && ((name[len] != '\0' && name[len] != '/')
++	  || (name != start + 1)))
+     return 0;
+ 
+   return len;
diff --git a/SOURCES/glibc-rh1540480-6.patch b/SOURCES/glibc-rh1540480-6.patch
new file mode 100644
index 0000000..2ea6162
--- /dev/null
+++ b/SOURCES/glibc-rh1540480-6.patch
@@ -0,0 +1,189 @@
+commit 2bd86632b7cb97dc9002a23795e140fc880e1987
+Author: Dmitry V. Levin <ldv@altlinux.org>
+Date:   Wed Dec 20 11:27:51 2017 +0000
+
+    elf: remove redundant is_path argument
+    
+    is_path argument is no longer used and could be safely removed.
+    
+    * elf/dl-dst.h (DL_DST_COUNT): Remove is_path argument, all callers
+    updated.
+    * elf/dl-load.c (is_dst, _dl_dst_count, _dl_dst_substitute,
+    expand_dynamic_string_token): Likewise.
+    * sysdeps/generic/ldsodefs.h (_dl_dst_count, _dl_dst_substitute): Remove
+    is_path argument.
+
+Index: glibc-2.17-c758a686/elf/dl-deps.c
+===================================================================
+--- glibc-2.17-c758a686.orig/elf/dl-deps.c
++++ glibc-2.17-c758a686/elf/dl-deps.c
+@@ -101,7 +101,7 @@ struct list
+   ({									      \
+     const char *__str = (str);						      \
+     const char *__result = __str;					      \
+-    size_t __dst_cnt = DL_DST_COUNT (__str, 0);				      \
++    size_t __dst_cnt = DL_DST_COUNT (__str);				      \
+ 									      \
+     if (__dst_cnt != 0)							      \
+       {									      \
+@@ -115,7 +115,7 @@ DST not allowed in SUID/SGID programs"))
+ 	__newp = (char *) alloca (DL_DST_REQUIRED (l, __str, strlen (__str),  \
+ 						   __dst_cnt));		      \
+ 									      \
+-	__result = _dl_dst_substitute (l, __str, __newp, 0);		      \
++	__result = _dl_dst_substitute (l, __str, __newp);		      \
+ 									      \
+ 	if (*__result == '\0')						      \
+ 	  {								      \
+Index: glibc-2.17-c758a686/elf/dl-dst.h
+===================================================================
+--- glibc-2.17-c758a686.orig/elf/dl-dst.h
++++ glibc-2.17-c758a686/elf/dl-dst.h
+@@ -20,13 +20,13 @@
+ 
+ /* Determine the number of DST elements in the name.  Only if IS_PATH is
+    nonzero paths are recognized (i.e., multiple, ':' separated filenames).  */
+-#define DL_DST_COUNT(name, is_path) \
++#define DL_DST_COUNT(name) \
+   ({									      \
+     size_t __cnt = 0;							      \
+     const char *__sf = strchr (name, '$');				      \
+ 									      \
+     if (__builtin_expect (__sf != NULL, 0))				      \
+-      __cnt = _dl_dst_count (__sf, is_path);			      \
++      __cnt = _dl_dst_count (__sf);					      \
+ 									      \
+     __cnt; })
+ 
+Index: glibc-2.17-c758a686/elf/dl-load.c
+===================================================================
+--- glibc-2.17-c758a686.orig/elf/dl-load.c
++++ glibc-2.17-c758a686/elf/dl-load.c
+@@ -232,8 +232,7 @@ is_trusted_path_normalize (const char *p
+ 
+ 
+ static size_t
+-is_dst (const char *start, const char *name, const char *str,
+-	int is_path, int secure)
++is_dst (const char *start, const char *name, const char *str, int secure)
+ {
+   size_t len;
+   bool is_curly = false;
+@@ -271,7 +270,7 @@ is_dst (const char *start, const char *n
+ 
+ 
+ size_t
+-_dl_dst_count (const char *name, int is_path)
++_dl_dst_count (const char *name)
+ {
+   const char *const start = name;
+   size_t cnt = 0;
+@@ -283,10 +282,9 @@ _dl_dst_count (const char *name, int is_
+       /* $ORIGIN is not expanded for SUID/GUID programs (except if it
+ 	 is $ORIGIN alone) and it must always appear first in path.  */
+       ++name;
+-      if ((len = is_dst (start, name, "ORIGIN", is_path,
+-			 INTUSE(__libc_enable_secure))) != 0
+-	  || (len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0
+-	  || (len = is_dst (start, name, "LIB", is_path, 0)) != 0)
++      if ((len = is_dst (start, name, "ORIGIN", INTUSE(__libc_enable_secure))) != 0
++	  || (len = is_dst (start, name, "PLATFORM", 0)) != 0
++	  || (len = is_dst (start, name, "LIB", 0)) != 0)
+ 	++cnt;
+ 
+       name = strchr (name + len, '$');
+@@ -298,8 +296,7 @@ _dl_dst_count (const char *name, int is_
+ 
+ 
+ char *
+-_dl_dst_substitute (struct link_map *l, const char *name, char *result,
+-		    int is_path)
++_dl_dst_substitute (struct link_map *l, const char *name, char *result)
+ {
+   const char *const start = name;
+ 
+@@ -319,8 +316,7 @@ _dl_dst_substitute (struct link_map *l,
+ 	  size_t len;
+ 
+ 	  ++name;
+-	  if ((len = is_dst (start, name, "ORIGIN", is_path,
+-			     INTUSE(__libc_enable_secure))) != 0)
++	  if ((len = is_dst (start, name, "ORIGIN", INTUSE(__libc_enable_secure))) != 0)
+ 	    {
+ #ifndef SHARED
+ 	      if (l == NULL)
+@@ -332,9 +328,9 @@ _dl_dst_substitute (struct link_map *l,
+ 	      check_for_trusted = (INTUSE(__libc_enable_secure)
+ 				   && l->l_type == lt_executable);
+ 	    }
+-	  else if ((len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0)
++	  else if ((len = is_dst (start, name, "PLATFORM", 0)) != 0)
+ 	    repl = GLRO(dl_platform);
+-	  else if ((len = is_dst (start, name, "LIB", is_path, 0)) != 0)
++	  else if ((len = is_dst (start, name, "LIB", 0)) != 0)
+ 	    repl = DL_DST_LIB;
+ 
+ 	  if (repl != NULL && repl != (const char *) -1)
+@@ -378,7 +374,7 @@ _dl_dst_substitute (struct link_map *l,
+    belonging to the map is loaded.  In this case the path element
+    containing $ORIGIN is left out.  */
+ static char *
+-expand_dynamic_string_token (struct link_map *l, const char *s, int is_path)
++expand_dynamic_string_token (struct link_map *l, const char *s)
+ {
+   /* We make two runs over the string.  First we determine how large the
+      resulting string is and then we copy it over.  Since this is no
+@@ -389,7 +385,7 @@ expand_dynamic_string_token (struct link
+   char *result;
+ 
+   /* Determine the number of DST elements.  */
+-  cnt = DL_DST_COUNT (s, is_path);
++  cnt = DL_DST_COUNT (s);
+ 
+   /* If we do not have to replace anything simply copy the string.  */
+   if (__builtin_expect (cnt, 0) == 0)
+@@ -403,7 +399,7 @@ expand_dynamic_string_token (struct link
+   if (result == NULL)
+     return NULL;
+ 
+-  return _dl_dst_substitute (l, s, result, is_path);
++  return _dl_dst_substitute (l, s, result);
+ }
+ 
+ 
+@@ -458,7 +454,7 @@ fillin_rpath (char *rpath, struct r_sear
+     {
+       struct r_search_path_elem *dirp;
+ 
+-      to_free = cp = expand_dynamic_string_token (l, cp, 1);
++      to_free = cp = expand_dynamic_string_token (l, cp);
+ 
+       size_t len = strlen (cp);
+ 
+@@ -2263,7 +2259,7 @@ _dl_map_object (struct link_map *loader,
+     {
+       /* The path may contain dynamic string tokens.  */
+       realname = (loader
+-		  ? expand_dynamic_string_token (loader, name, 0)
++		  ? expand_dynamic_string_token (loader, name)
+ 		  : local_strdup (name));
+       if (realname == NULL)
+ 	fd = -1;
+Index: glibc-2.17-c758a686/sysdeps/generic/ldsodefs.h
+===================================================================
+--- glibc-2.17-c758a686.orig/sysdeps/generic/ldsodefs.h
++++ glibc-2.17-c758a686/sysdeps/generic/ldsodefs.h
+@@ -983,11 +983,11 @@ extern void _dl_nothread_init_static_tls
+ extern const char *_dl_get_origin (void) attribute_hidden;
+ 
+ /* Count DSTs.  */
+-extern size_t _dl_dst_count (const char *name, int is_path) attribute_hidden;
++extern size_t _dl_dst_count (const char *name) attribute_hidden;
+ 
+ /* Substitute DST values.  */
+ extern char *_dl_dst_substitute (struct link_map *l, const char *name,
+-				 char *result, int is_path) attribute_hidden;
++				 char *result) attribute_hidden;
+ 
+ /* Check validity of the caller.  */
+ extern int _dl_check_caller (const void *caller, enum allowmask mask)
diff --git a/SOURCES/glibc-rh1540480-7.patch b/SOURCES/glibc-rh1540480-7.patch
new file mode 100644
index 0000000..7531ce1
--- /dev/null
+++ b/SOURCES/glibc-rh1540480-7.patch
@@ -0,0 +1,52 @@
+commit dbba87d531ad3ea372eba6cb56436a231ca7fb32
+Author: Dmitry V. Levin <ldv@altlinux.org>
+Date:   Wed Dec 27 22:12:51 2017 +0000
+
+    elf: check for rpath emptiness before making a copy of it
+
+    * elf/dl-load.c (decompose_rpath): Check for rpath emptiness before
+    making a copy of it.
+
+Index: glibc-2.17-c758a686/elf/dl-load.c
+===================================================================
+--- glibc-2.17-c758a686.orig/elf/dl-load.c
++++ glibc-2.17-c758a686/elf/dl-load.c
+@@ -550,7 +550,6 @@ decompose_rpath (struct r_search_path_st
+ {
+   /* Make a copy we can work with.  */
+   const char *where = l->l_name;
+-  char *copy;
+   char *cp;
+   struct r_search_path_elem **result;
+   size_t nelems;
+@@ -589,22 +588,21 @@ decompose_rpath (struct r_search_path_st
+       while (*inhp != '\0');
+     }
+ 
++  /* Ignore empty rpaths.  */
++  if (*rpath == '\0')
++    {
++      sps->dirs = (struct r_search_path_elem **) -1;
++      return false;
++    }
++
+   /* Make a writable copy.  */
+-  copy = local_strdup (rpath);
++  char *copy = local_strdup (rpath);
+   if (copy == NULL)
+     {
+       errstring = N_("cannot create RUNPATH/RPATH copy");
+       goto signal_error;
+     }
+ 
+-  /* Ignore empty rpaths.  */
+-  if (*copy == 0)
+-    {
+-      free (copy);
+-      sps->dirs = (struct r_search_path_elem **) -1;
+-      return false;
+-    }
+-
+   /* Count the number of necessary elements in the result array.  */
+   nelems = 0;
+   for (cp = copy; *cp != '\0'; ++cp)
diff --git a/SOURCES/glibc-rh1540480-8.patch b/SOURCES/glibc-rh1540480-8.patch
new file mode 100644
index 0000000..08250b8
--- /dev/null
+++ b/SOURCES/glibc-rh1540480-8.patch
@@ -0,0 +1,113 @@
+CVE-2017-16997: Incorrect handling of RPATH or RUNPATH containing $ORIGIN
+for AT_SECURE or SUID binaries could be used to load libraries from the
+current directory.
+
+Depends on f6110a8fee2ca36f8e2d2abecf3cba9fa7b8ea7d which is already
+backported by glibc-rh1452721-1.patch.
+
+commit 3e3c904daef69b8bf7d5cc07f793c9f07c3553ef
+Author: Aurelien Jarno <aurelien@aurel32.net>
+Date:   Sat Dec 30 10:54:23 2017 +0100
+
+    elf: Check for empty tokens before dynamic string token expansion [BZ #22625]
+
+    The fillin_rpath function in elf/dl-load.c loops over each RPATH or
+    RUNPATH tokens and interprets empty tokens as the current directory
+    ("./"). In practice the check for empty token is done *after* the
+    dynamic string token expansion. The expansion process can return an
+    empty string for the $ORIGIN token if __libc_enable_secure is set
+    or if the path of the binary can not be determined (/proc not mounted).
+
+    Fix that by moving the check for empty tokens before the dynamic string
+    token expansion. In addition, check for NULL pointer or empty strings
+    return by expand_dynamic_string_token.
+
+    The above changes highlighted a bug in decompose_rpath, an empty array
+    is represented by the first element being NULL at the fillin_rpath
+    level, but by using a -1 pointer in decompose_rpath and other functions.
+
+    Changelog:
+            [BZ #22625]
+            * elf/dl-load.c (fillin_rpath): Check for empty tokens before dynamic
+            string token expansion. Check for NULL pointer or empty string possibly
+            returned by expand_dynamic_string_token.
+            (decompose_rpath): Check for empty path after dynamic string
+            token expansion.
+
+Index: glibc-2.17-c758a686/elf/dl-load.c
+===================================================================
+--- glibc-2.17-c758a686.orig/elf/dl-load.c
++++ glibc-2.17-c758a686/elf/dl-load.c
+@@ -447,31 +447,39 @@ fillin_rpath (char *rpath, struct r_sear
+ {
+   char *cp;
+   size_t nelems = 0;
+-  char *to_free;
+ 
+   while ((cp = __strsep (&rpath, sep)) != NULL)
+     {
+       struct r_search_path_elem *dirp;
++      char *to_free = NULL;
++      size_t len = 0;
+ 
+-      to_free = cp = expand_dynamic_string_token (l, cp);
+-
+-      size_t len = strlen (cp);
+-
+-      /* `strsep' can pass an empty string.  This has to be
+-	 interpreted as `use the current directory'. */
+-      if (len == 0)
++      /* `strsep' can pass an empty string.  */
++      if (*cp != '\0')
+ 	{
+-	  static const char curwd[] = "./";
+-	  cp = (char *) curwd;
+-	}
++	  to_free = cp = expand_dynamic_string_token (l, cp);
++	  /* expand_dynamic_string_token can return NULL in case of empty
++	     path or memory allocation failure.  */
++	  if (cp == NULL)
++	    continue;
++
++	  /* Compute the length after dynamic string token expansion and
++	     ignore empty paths.  */
++	  len = strlen (cp);
++	  if (len == 0)
++	    {
++	      free (to_free);
++	      continue;
++	    }
+ 
+-      /* Remove trailing slashes (except for "/").  */
+-      while (len > 1 && cp[len - 1] == '/')
+-	--len;
+-
+-      /* Now add one if there is none so far.  */
+-      if (len > 0 && cp[len - 1] != '/')
+-	cp[len++] = '/';
++	  /* Remove trailing slashes (except for "/").  */
++	  while (len > 1 && cp[len - 1] == '/')
++	    --len;
++
++	  /* Now add one if there is none so far.  */
++	  if (len > 0 && cp[len - 1] != '/')
++	    cp[len++] = '/';
++	}
+ 
+       /* See if this directory is already known.  */
+       for (dirp = GL(dl_all_dirs); dirp != NULL; dirp = dirp->next)
+@@ -626,6 +634,14 @@ decompose_rpath (struct r_search_path_st
+      necessary.  */
+   free (copy);
+ 
++  /* There is no path after expansion.  */
++  if (result[0] == NULL)
++    {
++      free (result);
++      sps->dirs = (struct r_search_path_elem **) -1;
++      return false;
++    }
++
+   sps->dirs = result;
+   /* The caller will change this value if we haven't used a real malloc.  */
+   sps->malloced = 1;
diff --git a/SOURCES/glibc-rh1548002.patch b/SOURCES/glibc-rh1548002.patch
new file mode 100644
index 0000000..3ad3f19
--- /dev/null
+++ b/SOURCES/glibc-rh1548002.patch
@@ -0,0 +1,333 @@
+The upstream patch is backported by excluding tests for reallocarray because
+this function is not present in RHEL-7.
+
+commit 8e448310d74b283c5cd02b9ed7fb997b47bf9b22
+Author: Arjun Shankar <arjun.is@lostca.se>
+Date:   Thu Jan 18 16:47:06 2018 +0000
+
+    Fix integer overflows in internal memalign and malloc functions [BZ #22343]
+    
+    When posix_memalign is called with an alignment less than MALLOC_ALIGNMENT
+    and a requested size close to SIZE_MAX, it falls back to malloc code
+    (because the alignment of a block returned by malloc is sufficient to
+    satisfy the call).  In this case, an integer overflow in _int_malloc leads
+    to posix_memalign incorrectly returning successfully.
+    
+    Upon fixing this and writing a somewhat thorough regression test, it was
+    discovered that when posix_memalign is called with an alignment larger than
+    MALLOC_ALIGNMENT (so it uses _int_memalign instead) and a requested size
+    close to SIZE_MAX, a different integer overflow in _int_memalign leads to
+    posix_memalign incorrectly returning successfully.
+    
+    Both integer overflows affect other memory allocation functions that use
+    _int_malloc (one affected malloc in x86) or _int_memalign as well.
+    
+    This commit fixes both integer overflows.  In addition to this, it adds a
+    regression test to guard against false successful allocations by the
+    following memory allocation functions when called with too-large allocation
+    sizes and, where relevant, various valid alignments:
+    malloc, realloc, calloc, reallocarray, memalign, posix_memalign,
+    aligned_alloc, valloc, and pvalloc.
+
+Index: b/malloc/Makefile
+===================================================================
+--- a/malloc/Makefile
++++ b/malloc/Makefile
+@@ -38,6 +38,7 @@ tests := mallocbug tst-malloc tst-valloc
+ 	 tst-dynarray-fail \
+ 	 tst-dynarray-at-fail \
+ 	 tst-alloc_buffer \
++	 tst-malloc-too-large \
+ 
+ tests-static := \
+ 	 tst-interpose-static-nothread \
+Index: b/malloc/malloc.c
+===================================================================
+--- a/malloc/malloc.c
++++ b/malloc/malloc.c
+@@ -1273,14 +1273,21 @@ nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-
+    MINSIZE :                                                      \
+    ((req) + SIZE_SZ + MALLOC_ALIGN_MASK) & ~MALLOC_ALIGN_MASK)
+ 
+-/*  Same, except also perform argument check */
+-
+-#define checked_request2size(req, sz)                             \
+-  if (REQUEST_OUT_OF_RANGE(req)) {                                \
+-    __set_errno (ENOMEM);					  \
+-    return 0;                                                     \
+-  }                                                               \
+-  (sz) = request2size(req);
++/* Same, except also perform an argument and result check.  First, we check
++   that the padding done by request2size didn't result in an integer
++   overflow.  Then we check (using REQUEST_OUT_OF_RANGE) that the resulting
++   size isn't so large that a later alignment would lead to another integer
++   overflow.  */
++#define checked_request2size(req, sz) \
++({				    \
++  (sz) = request2size (req);	    \
++  if (((sz) < (req))		    \
++      || REQUEST_OUT_OF_RANGE (sz)) \
++    {				    \
++      __set_errno (ENOMEM);	    \
++      return 0;			    \
++    }				    \
++})
+ 
+ /*
+   --------------- Physical chunk operations ---------------
+@@ -4389,6 +4396,13 @@ _int_memalign(mstate av, size_t alignmen
+   */
+ 
+ 
++  /* Check for overflow.  */
++  if (nb > SIZE_MAX - alignment - MINSIZE)
++    {
++      __set_errno (ENOMEM);
++      return 0;
++    }
++
+   /* Call malloc with worst case padding to hit alignment. */
+ 
+   m  = (char*)(_int_malloc(av, nb + alignment + MINSIZE));
+Index: b/malloc/tst-malloc-too-large.c
+===================================================================
+--- /dev/null
++++ b/malloc/tst-malloc-too-large.c
+@@ -0,0 +1,237 @@
++/* Test and verify that too-large memory allocations fail with ENOMEM.
++   Copyright (C) 2018 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/>.  */
++
++/* Bug 22375 reported a regression in malloc where if after malloc'ing then
++   free'ing a small block of memory, malloc is then called with a really
++   large size argument (close to SIZE_MAX): instead of returning NULL and
++   setting errno to ENOMEM, malloc incorrectly returns the previously
++   allocated block instead.  Bug 22343 reported a similar case where
++   posix_memalign incorrectly returns successfully when called with an with
++   a really large size argument.
++
++   Both of these were caused by integer overflows in the allocator when it
++   was trying to pad the requested size to allow for book-keeping or
++   alignment.  This test guards against such bugs by repeatedly allocating
++   and freeing small blocks of memory then trying to allocate various block
++   sizes larger than the memory bus width of 64-bit targets, or almost
++   as large as SIZE_MAX on 32-bit targets supported by glibc.  In each case,
++   it verifies that such impossibly large allocations correctly fail.  */
++
++
++#include <stdlib.h>
++#include <malloc.h>
++#include <errno.h>
++#include <stdint.h>
++#include <sys/resource.h>
++#include <libc-diag.h>
++#include <support/check.h>
++#include <unistd.h>
++#include <sys/param.h>
++
++
++/* This function prepares for each 'too-large memory allocation' test by
++   performing a small successful malloc/free and resetting errno prior to
++   the actual test.  */
++static void
++test_setup (void)
++{
++  void *volatile ptr = malloc (16);
++  TEST_VERIFY_EXIT (ptr != NULL);
++  free (ptr);
++  errno = 0;
++}
++
++
++/* This function tests each of:
++   - malloc (SIZE)
++   - realloc (PTR_FOR_REALLOC, SIZE)
++   - for various values of NMEMB:
++    - calloc (NMEMB, SIZE/NMEMB)
++    - calloc (SIZE/NMEMB, NMEMB)
++   and precedes each of these tests with a small malloc/free before it.  */
++static void
++test_large_allocations (size_t size)
++{
++  void * ptr_to_realloc;
++
++  test_setup ();
++  TEST_VERIFY (malloc (size) == NULL);
++  TEST_VERIFY (errno == ENOMEM);
++
++  ptr_to_realloc = malloc (16);
++  TEST_VERIFY_EXIT (ptr_to_realloc != NULL);
++  test_setup ();
++  TEST_VERIFY (realloc (ptr_to_realloc, size) == NULL);
++  TEST_VERIFY (errno == ENOMEM);
++  free (ptr_to_realloc);
++
++  for (size_t nmemb = 1; nmemb <= 8; nmemb *= 2)
++    if ((size % nmemb) == 0)
++      {
++        test_setup ();
++        TEST_VERIFY (calloc (nmemb, size / nmemb) == NULL);
++        TEST_VERIFY (errno == ENOMEM);
++
++        test_setup ();
++        TEST_VERIFY (calloc (size / nmemb, nmemb) == NULL);
++        TEST_VERIFY (errno == ENOMEM);
++      }
++    else
++      break;
++}
++
++
++static long pagesize;
++
++/* This function tests the following aligned memory allocation functions
++   using several valid alignments and precedes each allocation test with a
++   small malloc/free before it:
++   memalign, posix_memalign, aligned_alloc, valloc, pvalloc.  */
++static void
++test_large_aligned_allocations (size_t size)
++{
++  /* ptr stores the result of posix_memalign but since all those calls
++     should fail, posix_memalign should never change ptr.  We set it to
++     NULL here and later on we check that it remains NULL after each
++     posix_memalign call.  */
++  void * ptr = NULL;
++
++  size_t align;
++
++  /* All aligned memory allocation functions expect an alignment that is a
++     power of 2.  Given this, we test each of them with every valid
++     alignment from 1 thru PAGESIZE.  */
++  for (align = 1; align <= pagesize; align *= 2)
++    {
++      test_setup ();
++      TEST_VERIFY (memalign (align, size) == NULL);
++      TEST_VERIFY (errno == ENOMEM);
++
++      /* posix_memalign expects an alignment that is a power of 2 *and* a
++         multiple of sizeof (void *).  */
++      if ((align % sizeof (void *)) == 0)
++        {
++          test_setup ();
++          TEST_VERIFY (posix_memalign (&ptr, align, size) == ENOMEM);
++          TEST_VERIFY (ptr == NULL);
++        }
++
++      /* aligned_alloc expects a size that is a multiple of alignment.  */
++      if ((size % align) == 0)
++        {
++          test_setup ();
++          TEST_VERIFY (aligned_alloc (align, size) == NULL);
++          TEST_VERIFY (errno == ENOMEM);
++        }
++    }
++
++  /* Both valloc and pvalloc return page-aligned memory.  */
++
++  test_setup ();
++  TEST_VERIFY (valloc (size) == NULL);
++  TEST_VERIFY (errno == ENOMEM);
++
++  test_setup ();
++  TEST_VERIFY (pvalloc (size) == NULL);
++  TEST_VERIFY (errno == ENOMEM);
++}
++
++
++#define FOURTEEN_ON_BITS ((1UL << 14) - 1)
++#define FIFTY_ON_BITS ((1UL << 50) - 1)
++
++
++static int
++do_test (void)
++{
++
++#if __WORDSIZE >= 64
++
++  /* This test assumes that none of the supported targets have an address
++     bus wider than 50 bits, and that therefore allocations for sizes wider
++     than 50 bits will fail.  Here, we ensure that the assumption continues
++     to be true in the future when we might have address buses wider than 50
++     bits.  */
++
++  struct rlimit alloc_size_limit
++    = {
++        .rlim_cur = FIFTY_ON_BITS,
++        .rlim_max = FIFTY_ON_BITS
++      };
++
++  setrlimit (RLIMIT_AS, &alloc_size_limit);
++
++#endif /* __WORDSIZE >= 64 */
++
++  DIAG_PUSH_NEEDS_COMMENT;
++#if __GNUC_PREREQ (7, 0)
++  /* GCC 7 warns about too-large allocations; here we want to test
++     that they fail.  */
++  DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than=");
++#endif
++
++  /* Aligned memory allocation functions need to be tested up to alignment
++     size equivalent to page size, which should be a power of 2.  */
++  pagesize = sysconf (_SC_PAGESIZE);
++  TEST_VERIFY_EXIT (powerof2 (pagesize));
++
++  /* Loop 1: Ensure that all allocations with SIZE close to SIZE_MAX, i.e.
++     in the range (SIZE_MAX - 2^14, SIZE_MAX], fail.
++
++     We can expect that this range of allocation sizes will always lead to
++     an allocation failure on both 64 and 32 bit targets, because:
++
++     1. no currently supported 64-bit target has an address bus wider than
++     50 bits -- and (2^64 - 2^14) is much wider than that;
++
++     2. on 32-bit targets, even though 2^32 is only 4 GB and potentially
++     addressable, glibc itself is more than 2^14 bytes in size, and
++     therefore once glibc is loaded, less than (2^32 - 2^14) bytes remain
++     available.  */
++
++  for (size_t i = 0; i <= FOURTEEN_ON_BITS; i++)
++    {
++      test_large_allocations (SIZE_MAX - i);
++      test_large_aligned_allocations (SIZE_MAX - i);
++    }
++
++#if __WORDSIZE >= 64
++  /* On 64-bit targets, we need to test a much wider range of too-large
++     sizes, so we test at intervals of (1 << 50) that allocation sizes
++     ranging from SIZE_MAX down to (1 << 50) fail:
++     The 14 MSBs are decremented starting from "all ON" going down to 1,
++     the 50 LSBs are "all ON" and then "all OFF" during every iteration.  */
++  for (size_t msbs = FOURTEEN_ON_BITS; msbs >= 1; msbs--)
++    {
++      size_t size = (msbs << 50) | FIFTY_ON_BITS;
++      test_large_allocations (size);
++      test_large_aligned_allocations (size);
++
++      size = msbs << 50;
++      test_large_allocations (size);
++      test_large_aligned_allocations (size);
++    }
++#endif /* __WORDSIZE >= 64 */
++
++  DIAG_POP_NEEDS_COMMENT;
++
++  return 0;
++}
++
++
++#include <support/test-driver.c>
diff --git a/SOURCES/glibc-rh1550080.patch b/SOURCES/glibc-rh1550080.patch
new file mode 100644
index 0000000..1e3c5e2
--- /dev/null
+++ b/SOURCES/glibc-rh1550080.patch
@@ -0,0 +1,61 @@
+The patch originally submitted corrected behaviour on s390 and s390x.
+The i686 change was added in order to maintain parity.
+
+Author: Stefan Liebler <stli@linux.vnet.ibm.com>
+
+Index: b/sysdeps/unix/sysv/linux/s390/s390-32/socket.S
+===================================================================
+--- a/sysdeps/unix/sysv/linux/s390/s390-32/socket.S
++++ b/sysdeps/unix/sysv/linux/s390/s390-32/socket.S
+@@ -99,8 +99,8 @@ ENTRY(__socket)
+ 	l       %r15,0(0,%r15)          /* load back chain */
+ 	lm      %r6,15,24(%r15)         /* load registers */
+ 
+-	/* gpr2 is < 0 if there was an error.  */
+-	lhi     %r0,-125
++	/* gpr2 is in [-4095, -1] if there was an error.  */
++	lhi     %r0,-4095
+ 	clr     %r2,%r0
+ 	jnl     SYSCALL_ERROR_LABEL
+ 
+Index: b/sysdeps/unix/sysv/linux/s390/s390-64/socket.S
+===================================================================
+--- a/sysdeps/unix/sysv/linux/s390/s390-64/socket.S
++++ b/sysdeps/unix/sysv/linux/s390/s390-64/socket.S
+@@ -99,8 +99,8 @@ ENTRY(__socket)
+         lg      %r15,0(%r15)            /* Load back chain.  */
+         lmg     %r6,15,48(%r15)         /* Load registers.  */
+ 
+-	/* gpr2 is < 0 if there was an error.  */
+-        lghi    %r0,-125 
++	/* gpr2 is in [-4095, -1] if there was an error.  */
++        lghi    %r0,-4095
+         clgr    %r2,%r0
+         jgnl    SYSCALL_ERROR_LABEL
+  
+Index: b/sysdeps/unix/sysv/linux/i386/socket.S
+===================================================================
+--- a/sysdeps/unix/sysv/linux/i386/socket.S
++++ b/sysdeps/unix/sysv/linux/i386/socket.S
+@@ -63,8 +63,8 @@ ENTRY (__socket)
+ 	movl %edx, %ebx
+ 	cfi_restore (3)
+ 
+-	/* %eax is < 0 if there was an error.  */
+-	cmpl $-125, %eax
++	/* %eax is in [-4095, -1] if there was an error.  */
++	cmpl $-4095, %eax
+ 	jae SYSCALL_ERROR_LABEL
+ 
+ 	/* Successful; return the syscall's value.  */
+@@ -108,8 +108,8 @@ ENTRY (__socket)
+ 	cfi_restore (6)
+ 	cfi_adjust_cfa_offset(-4)
+ 
+-	/* %eax is < 0 if there was an error.  */
+-	cmpl $-125, %eax
++	/* %eax is in [-4095, -1] if there was an error.  */
++	cmpl $-4095, %eax
+ 	jae SYSCALL_ERROR_LABEL
+ 
+ 	/* Successful; return the syscall's value.  */
diff --git a/SOURCES/glibc-rh1560641.patch b/SOURCES/glibc-rh1560641.patch
new file mode 100644
index 0000000..43cac5a
--- /dev/null
+++ b/SOURCES/glibc-rh1560641.patch
@@ -0,0 +1,26 @@
+commit 05598a0907cad1350962e89b781215209a785d92
+Author: Patsy Franklin <pfrankli@redhat.com>
+Date:   Tue Jun 26 10:35:03 2018 -0400
+
+    In sem_open.c,  pad was not initialized when __HAVE_64B_ATOMICS was
+    true.  On some arches this caused valgrind to warn about uninitialized
+    bytes when the struct was written to the file system.
+    
+    This patch moves the initialization of pad outside of the
+    conditional.
+
+    Reviewed-by: Carlos O'Donell <carlos@redhat.com>
+
+diff -Nrup a/nptl/sem_open.c b/nptl/sem_open.c
+--- a/nptl/sem_open.c	2018-06-20 10:27:01.110844222 -0400
++++ b/nptl/sem_open.c	2018-06-27 11:15:33.677892273 -0400
+@@ -313,6 +313,9 @@ sem_open (const char *name, int oflag, .
+       sem.newsem.value = value << SEM_VALUE_SHIFT;
+       sem.newsem.nwaiters = 0;
+ #endif
++      /* pad is used as a mutex on pre-v9 sparc and ignored otherwise.  */
++      sem.newsem.pad = 0;
++
+       /* This always is a shared semaphore.  */
+       sem.newsem.private = LLL_SHARED;
+ 
diff --git a/SOURCES/glibc-rh1563046.patch b/SOURCES/glibc-rh1563046.patch
new file mode 100644
index 0000000..dfcea91
--- /dev/null
+++ b/SOURCES/glibc-rh1563046.patch
@@ -0,0 +1,38 @@
+commit cc8a1620eb97ccddd337d157263c13c57b39ab71
+Author: Jesse Hathaway <jesse@mbuki-mvuki.org>
+Date:   Tue Mar 27 21:17:59 2018 +0000
+
+    getlogin_r: return early when linux sentinel value is set
+    
+    When there is no login uid Linux sets /proc/self/loginid to the sentinel
+    value of, (uid_t) -1. If this is set we can return early and avoid
+    needlessly looking up the sentinel value in any configured nss
+    databases.
+    
+    Checked on aarch64-linux-gnu.
+    
+            * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): Return
+            early when linux sentinel value is set.
+    
+    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+Index: b/sysdeps/unix/sysv/linux/getlogin_r.c
+===================================================================
+--- a/sysdeps/unix/sysv/linux/getlogin_r.c
++++ b/sysdeps/unix/sysv/linux/getlogin_r.c
+@@ -54,6 +54,15 @@ __getlogin_r_loginuid (char *name, size_
+ 	  endp == uidbuf || *endp != '\0'))
+     return -1;
+ 
++  /* If there is no login uid, linux sets /proc/self/loginid to the sentinel
++     value of, (uid_t) -1, so check if that value is set and return early to
++     avoid making unneeded nss lookups. */
++  if (uid == (uid_t) -1)
++    {
++      __set_errno (ENXIO);
++      return ENXIO;
++    }
++
+   size_t buflen = 1024;
+   char *buf = alloca (buflen);
+   bool use_malloc = false;
diff --git a/SOURCES/glibc-rh1563747.patch b/SOURCES/glibc-rh1563747.patch
new file mode 100644
index 0000000..bf139ee
--- /dev/null
+++ b/SOURCES/glibc-rh1563747.patch
@@ -0,0 +1,81 @@
+commit a700e7cb3799316e1b23879b4cf0891f5703acb1
+Author: DJ Delorie <dj@delorie.com>
+Date:   Thu Apr 12 15:25:50 2018 -0400
+
+    Update kernel version in syscall-names.list to 4.16.
+    
+    Linux 4.16 does not add any new syscalls; this patch updates the
+    version number in syscall-names.list to reflect that it's still
+    current for 4.16.
+    
+    Tested for x86_64 (compilation with build-many-glibcs.py, using Linux
+    4.16).
+    
+    	* sysdeps/unix/sysv/linux/syscall-names.list: Update kernel
+    	version to 4.16.
+
+commit 39f898c69205ea4dc3ca2e817f797df95d928347
+Author: Joseph Myers <joseph@codesourcery.com>
+Date:   Thu Feb 1 21:10:04 2018 +0000
+
+    Update syscall-names.list for 4.15.
+    
+    This patch updates sysdeps/unix/sysv/linux/syscall-names.list for
+    Linux 4.15.  There only appears to be one new syscall to add to the
+    list.  (The riscv_flush_icache syscall is *not* added because for
+    whatever reason it doesn't appear in the uapi asm/unistd.h; only in
+    arch/riscv/include/uapi/asm/syscalls.h, which is only included by the
+    non-uapi asm/unistd.h - and only syscalls whose __NR_* macros are
+    defined in the uapi asm/unistd.h are relevant for this list.)
+    
+    Tested for x86_64, and with build-many-glibcs.py.
+    
+    	* sysdeps/unix/sysv/linux/syscall-names.list: Update kernel
+    	version to 4.15.
+    	(s390_sthyi): New syscall.
+
+commit f97773d1e7cf65bbbfd8fa173096eb6144d9e47e
+Author: Joseph Myers <joseph@codesourcery.com>  2017-11-16 12:51:54
+Date:   Thu Nov 16 17:51:54 2017 +0000
+
+    Update kernel version in syscall-names.list to 4.14.
+    
+    Linux 4.14 does not add any new syscalls; this patch updates the
+    version number in syscall-names.list to reflect that it's still
+    current for 4.14.
+    
+    Tested for x86_64 (compilation with build-many-glibcs.py, using Linux
+    4.14).
+    
+    	* sysdeps/unix/sysv/linux/syscall-names.list: Update kernel
+    	version to 4.14.
+
+diff -rup a/sysdeps/unix/sysv/linux/syscall-names.list b/sysdeps/unix/sysv/linux/syscall-names.list
+--- a/sysdeps/unix/sysv/linux/syscall-names.list	2018-04-13 16:38:10.000000000 -0400
++++ b/sysdeps/unix/sysv/linux/syscall-names.list	2018-04-13 17:39:37.282289761 -0400
+@@ -1,5 +1,5 @@
+ # List of all known Linux system calls.
+-# Copyright (C) 2017 Free Software Foundation, Inc.
++# Copyright (C) 2017-2018 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,8 @@
+ # names are only used if the installed kernel headers also provide
+ # them.
+ 
+-# The list of system calls is current as of Linux 4.13.
+-kernel 4.13
++# The list of system calls is current as of Linux 4.16.
++kernel 4.16
+ 
+ FAST_atomic_update
+ FAST_cmpxchg
+@@ -444,6 +444,7 @@ s390_guarded_storage
+ s390_pci_mmio_read
+ s390_pci_mmio_write
+ s390_runtime_instr
++s390_sthyi
+ sched_get_affinity
+ sched_get_priority_max
+ sched_get_priority_min
diff --git a/SOURCES/glibc-rh1564638.patch b/SOURCES/glibc-rh1564638.patch
new file mode 100644
index 0000000..d169022
--- /dev/null
+++ b/SOURCES/glibc-rh1564638.patch
@@ -0,0 +1,125 @@
+Fix type errors in string tests introduced by the patches to implement
+rhbz#1268008.
+
+Patch originally from Stefan Liebler <STLI@de.ibm.com>.
+
+diff --git a/benchtests/bench-stpncpy.c b/benchtests/bench-stpncpy.c
+index e428102f5db30cfc..d37b401e303fd4bc 100644
+--- a/benchtests/bench-stpncpy.c
++++ b/benchtests/bench-stpncpy.c
+@@ -74,4 +74,5 @@ STUPID_STPNCPY (CHAR *dst, const CHAR *src, size_t n)
+   return dst + nc;
+ }
+ 
++#undef CHAR
+ #include "bench-strncpy.c"
+diff --git a/benchtests/bench-strncpy.c b/benchtests/bench-strncpy.c
+index 2cfd56ab5ab2cb06..94f66f93acfd18fc 100644
+--- a/benchtests/bench-strncpy.c
++++ b/benchtests/bench-strncpy.c
+@@ -144,6 +144,8 @@ do_test (size_t align1, size_t align2, size_t len, size_t n, int max_char)
+   size_t i;
+   CHAR *s1, *s2;
+ 
++/* For wcsncpy: align1 and align2 here mean alignment not in bytes,
++   but in wchar_ts, in bytes it will equal to align * (sizeof (wchar_t)).  */
+   align1 &= 7;
+   if ((align1 + len) * sizeof (CHAR) >= page_size)
+     return;
+@@ -152,8 +154,8 @@ do_test (size_t align1, size_t align2, size_t len, size_t n, int max_char)
+   if ((align2 + len) * sizeof (CHAR) >= page_size)
+     return;
+ 
+-  s1 = (CHAR *) (buf1 + align1);
+-  s2 = (CHAR *) (buf2 + align2);
++  s1 = (CHAR *) (buf1) + align1;
++  s2 = (CHAR *) (buf2) + align2;
+ 
+   for (i = 0; i < len; ++i)
+     s1[i] = 32 + 23 * i % (max_char - 32);
+diff --git a/benchtests/bench-strspn.c b/benchtests/bench-strspn.c
+index e1f227278480ac7a..39039d09915e191e 100644
+--- a/benchtests/bench-strspn.c
++++ b/benchtests/bench-strspn.c
+@@ -139,7 +139,7 @@ do_test (size_t align, size_t pos, size_t len)
+   for (i = 0; i < pos; ++i)
+     s[i] = acc[random () % len];
+   s[pos] = random () & BIG_CHAR;
+-  if (strchr (acc, s[pos]))
++  if (STRCHR (acc, s[pos]))
+     s[pos] = '\0';
+   else
+     {
+diff --git a/string/test-stpncpy.c b/string/test-stpncpy.c
+index 69c8181269523def..f35340957f7092a9 100644
+--- a/string/test-stpncpy.c
++++ b/string/test-stpncpy.c
+@@ -75,4 +75,5 @@ STUPID_STPNCPY (CHAR *dst, const CHAR *src, size_t n)
+   return dst + nc;
+ }
+ 
++#undef CHAR
+ #include "test-strncpy.c"
+diff --git a/string/test-strcat.c b/string/test-strcat.c
+index a822733cff7fd39e..dca8dd47aa119ce0 100644
+--- a/string/test-strcat.c
++++ b/string/test-strcat.c
+@@ -71,7 +71,7 @@ SIMPLE_STRCAT (CHAR *dst, const CHAR *src)
+ }
+ 
+ static void
+-do_one_test (impl_t *impl, CHAR *dst, const char *src)
++do_one_test (impl_t *impl, CHAR *dst, const CHAR *src)
+ {
+   size_t k = STRLEN (dst);
+   if (CALL (impl, dst, src) != dst)
+diff --git a/string/test-strncmp.c b/string/test-strncmp.c
+index 950bf248385787b6..63b16eaa385f942a 100644
+--- a/string/test-strncmp.c
++++ b/string/test-strncmp.c
+@@ -210,7 +210,7 @@ do_test (size_t align1, size_t align2, size_t len, size_t n, int max_char,
+   if (align1 + (n + 1) * CHARBYTES >= page_size)
+     return;
+ 
+-  align2 &= 7;
++  align2 &= 63;
+   if (align2 + (n + 1) * CHARBYTES >= page_size)
+     return;
+ 
+@@ -359,8 +359,8 @@ check1 (void)
+   size_t i, offset;
+   int exp_result;
+ 
+-  strcpy(s1, L("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrs"));
+-  strcpy(s2, L("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkLMNOPQRSTUV"));
++  STRCPY(s1, L("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrs"));
++  STRCPY(s2, L("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkLMNOPQRSTUV"));
+ 
+   /* Check possible overflow bug for wcsncmp */
+   s1[4] = CHAR__MAX;
+diff --git a/string/test-strncpy.c b/string/test-strncpy.c
+index bdccc98301f22c10..1dbc57d9c33e6eb9 100644
+--- a/string/test-strncpy.c
++++ b/string/test-strncpy.c
+@@ -94,7 +94,7 @@ STUPID_STRNCPY (CHAR *dst, const CHAR *src, size_t n)
+ typedef CHAR *(*proto_t) (CHAR *, const CHAR *, size_t);
+ 
+ static void
+-do_one_test (impl_t *impl, CHAR *dst, const char *src, size_t len, size_t n)
++do_one_test (impl_t *impl, CHAR *dst, const CHAR *src, size_t len, size_t n)
+ {
+   if (CALL (impl, dst, src, n) != STRNCPY_RESULT (dst, len, n))
+     {
+diff --git a/string/test-strnlen.c b/string/test-strnlen.c
+index 43db896e917ec4e0..db999b53fb546460 100644
+--- a/string/test-strnlen.c
++++ b/string/test-strnlen.c
+@@ -80,7 +80,7 @@ do_test (size_t align, size_t len, size_t maxlen, int max_char)
+   CHAR *buf = (CHAR *) (buf1);
+ 
+   for (i = 0; i < len; ++i)
+-    buf[align + i] = 1 + 7 * i % max_char;
++    buf[align + i] = 1 + 11111 * i % max_char;
+   buf[align + len] = 0;
+ 
+   FOR_EACH_IMPL (impl, 0)
diff --git a/SOURCES/glibc-rh1566623.patch b/SOURCES/glibc-rh1566623.patch
new file mode 100644
index 0000000..ab457a8
--- /dev/null
+++ b/SOURCES/glibc-rh1566623.patch
@@ -0,0 +1,68 @@
+Fix potential ABI change introduced by glibc-rh1398413.patch.
+
+extern void _IO_str_init_static (struct _IO_strfile_ *, char *, int, char *)
+     __THROW;
+extern void _IO_str_init_readonly (struct _IO_strfile_ *, const char *, int)
+     __THROW;
+
+Upstream, this did not have any effect because the function definitions
+were prototypes, so there is no upstream fix necessary.
+
+But downstream, we have:
+
+     70 void
+     71 _IO_str_init_static (sf, ptr, size, pstart)
+     72      _IO_strfile *sf;
+     73      char *ptr;
+     74      int size;
+     75      char *pstart;
+     76 {
+     77   return _IO_str_init_static_internal (sf, ptr, size < 0 ? -1 : size, pstart);
+     78 }
+     79 
+     80 void
+     81 _IO_str_init_readonly (sf, ptr, size)
+     82      _IO_strfile *sf;
+     83      const char *ptr;
+     84      int size;
+     85 {
+     86   _IO_str_init_static_internal (sf, (char *) ptr, size < 0 ? -1 : size, NULL);
+     87   sf->_sbf._f._IO_file_flags |= _IO_NO_WRITES;
+     88 }
+
+This results in:
+
+strops.c:71:1: warning: function declaration isn't a prototype [-Wstrict-prototypes]
+strops.c:81:1: warning: function declaration isn't a prototype [-Wstrict-prototypes]
+
+It is a potential ABI change, depending on the architecture.  None of
+the architectures in Red Hat Enterprise Linux appear to be affected,
+though.
+
+diff --git a/libio/strops.c b/libio/strops.c
+index 7df842fa519e4a49..a5b76af963e77877 100644
+--- a/libio/strops.c
++++ b/libio/strops.c
+@@ -68,20 +68,13 @@ _IO_str_init_static_internal (sf, ptr, size, pstart)
+ }
+ 
+ void
+-_IO_str_init_static (sf, ptr, size, pstart)
+-     _IO_strfile *sf;
+-     char *ptr;
+-     int size;
+-     char *pstart;
++_IO_str_init_static (_IO_strfile *sf, char *ptr, int size, char *pstart)
+ {
+   return _IO_str_init_static_internal (sf, ptr, size < 0 ? -1 : size, pstart);
+ }
+ 
+ void
+-_IO_str_init_readonly (sf, ptr, size)
+-     _IO_strfile *sf;
+-     const char *ptr;
+-     int size;
++_IO_str_init_readonly (_IO_strfile *sf, const char *ptr, int size)
+ {
+   _IO_str_init_static_internal (sf, (char *) ptr, size < 0 ? -1 : size, NULL);
+   sf->_sbf._f._IO_file_flags |= _IO_NO_WRITES;
diff --git a/SOURCES/glibc-rh1577333.patch b/SOURCES/glibc-rh1577333.patch
new file mode 100644
index 0000000..0400a40
--- /dev/null
+++ b/SOURCES/glibc-rh1577333.patch
@@ -0,0 +1,18 @@
+diff -rup a/manual/startup.texi b/manual/startup.texi
+--- a/manual/startup.texi	2018-05-11 14:41:08.128507566 -0400
++++ b/manual/startup.texi	2018-05-11 14:43:45.657387887 -0400
+@@ -1019,14 +1019,6 @@ This function actually terminates the pr
+ intercept this signal; see @ref{Signal Handling}.
+ @end deftypefun
+ 
+-@c Put in by rms.  Don't remove.
+-@cartouche
+-@strong{Future Change Warning:} Proposed Federal censorship regulations
+-may prohibit us from giving you information about the possibility of
+-calling this function.  We would be required to say that this is not an
+-acceptable way of terminating a program.
+-@end cartouche
+-
+ @node Termination Internals
+ @subsection Termination Internals
+ 
diff --git a/SOURCES/glibc-rh1579727-1.patch b/SOURCES/glibc-rh1579727-1.patch
new file mode 100644
index 0000000..fc47f2e
--- /dev/null
+++ b/SOURCES/glibc-rh1579727-1.patch
@@ -0,0 +1,22 @@
+commit f178e59fa5eefbbd37fde040ae8334aa5c857ee1
+Author: Andreas Schwab <schwab@suse.de>
+Date:   Tue Mar 27 12:16:11 2018 +0200
+
+    Fix crash in resolver on memory allocation failure (bug 23005)
+
+diff --git a/resolv/res_send.c b/resolv/res_send.c
+index b396aae03c9eeb6e..01e4da4188b63d39 100644
+--- a/resolv/res_send.c
++++ b/resolv/res_send.c
+@@ -471,6 +471,11 @@ __res_context_send (struct resolv_context *ctx,
+ 					'\0',
+ 					sizeof (struct sockaddr_in6)
+ 					- sizeof (struct sockaddr_in));
++			else
++			  {
++			    __set_errno (ENOMEM);
++			    return -1;
++			  }
+ 		}
+ 		EXT(statp).nscount = statp->nscount;
+ 	}
diff --git a/SOURCES/glibc-rh1579727-2.patch b/SOURCES/glibc-rh1579727-2.patch
new file mode 100644
index 0000000..b55eef8
--- /dev/null
+++ b/SOURCES/glibc-rh1579727-2.patch
@@ -0,0 +1,24 @@
+commit dae6c43c33ed2d29d6d7089958ad707759a48517
+Author: Andreas Schwab <schwab@suse.de>
+Date:   Thu May 17 13:04:46 2018 +0200
+
+    Remove unneeded setting of errno after malloc failure
+    
+    The errno value has alread been set by malloc.
+
+diff --git a/resolv/res_send.c b/resolv/res_send.c
+index 01e4da4188b63d39..478d542419566574 100644
+--- a/resolv/res_send.c
++++ b/resolv/res_send.c
+@@ -472,10 +472,7 @@ __res_context_send (struct resolv_context *ctx,
+ 					sizeof (struct sockaddr_in6)
+ 					- sizeof (struct sockaddr_in));
+ 			else
+-			  {
+-			    __set_errno (ENOMEM);
+-			    return -1;
+-			  }
++				return -1;
+ 		}
+ 		EXT(statp).nscount = statp->nscount;
+ 	}
diff --git a/SOURCES/glibc-rh1579742.patch b/SOURCES/glibc-rh1579742.patch
new file mode 100644
index 0000000..d0a51cc
--- /dev/null
+++ b/SOURCES/glibc-rh1579742.patch
@@ -0,0 +1,137 @@
+commit 5460617d1567657621107d895ee2dd83bc1f88f2
+Author: Paul Pluzhnikov <ppluzhnikov@google.com>
+Date:   Tue May 8 18:12:41 2018 -0700
+
+    Fix BZ 22786: integer addition overflow may cause stack buffer overflow
+    when realpath() input length is close to SSIZE_MAX.
+    
+    2018-05-09  Paul Pluzhnikov  <ppluzhnikov@google.com>
+    
+            [BZ #22786]
+            * stdlib/canonicalize.c (__realpath): Fix overflow in path length
+            computation.
+            * stdlib/Makefile (test-bz22786): New test.
+            * stdlib/test-bz22786.c: New test.
+
+diff --git a/stdlib/Makefile b/stdlib/Makefile
+index b5553eafc2a4bbd5..7265b44a5082b991 100644
+--- a/stdlib/Makefile
++++ b/stdlib/Makefile
+@@ -72,7 +72,7 @@ tests		:= tst-strtol tst-strtod testmb testrand testsort testdiv   \
+ 		   tst-makecontext3 bug-getcontext bug-fmtmsg1		    \
+ 		   tst-secure-getenv tst-strtod-overflow tst-strtod-round   \
+ 		   tst-tininess tst-strtod-underflow tst-strfmon_l	    \
+-		   tst-makecontext-align
++		   tst-makecontext-align test-bz22786
+ tests-static	:= tst-secure-getenv
+ 
+ include ../Makeconfig
+diff --git a/stdlib/canonicalize.c b/stdlib/canonicalize.c
+index aeff804c108de277..b43f6223b98a578a 100644
+--- a/stdlib/canonicalize.c
++++ b/stdlib/canonicalize.c
+@@ -181,7 +181,7 @@ __realpath (const char *name, char *resolved)
+ 		extra_buf = __alloca (path_max);
+ 
+ 	      len = strlen (end);
+-	      if ((long int) (n + len) >= path_max)
++	      if (path_max - n <= len)
+ 		{
+ 		  __set_errno (ENAMETOOLONG);
+ 		  goto error;
+diff --git a/stdlib/test-bz22786.c b/stdlib/test-bz22786.c
+new file mode 100644
+index 0000000000000000..e7837f98c19fc4bf
+--- /dev/null
++++ b/stdlib/test-bz22786.c
+@@ -0,0 +1,90 @@
++/* Bug 22786: test for buffer overflow in realpath.
++   Copyright (C) 2018 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/>.  */
++
++/* This file must be run from within a directory called "stdlib".  */
++
++#include <errno.h>
++#include <limits.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <unistd.h>
++#include <sys/stat.h>
++#include <sys/types.h>
++#include <support/test-driver.h>
++#include <libc-diag.h>
++
++static int
++do_test (void)
++{
++  const char dir[] = "bz22786";
++  const char lnk[] = "bz22786/symlink";
++
++  rmdir (dir);
++  if (mkdir (dir, 0755) != 0 && errno != EEXIST)
++    {
++      printf ("mkdir %s: %m\n", dir);
++      return EXIT_FAILURE;
++    }
++  if (symlink (".", lnk) != 0 && errno != EEXIST)
++    {
++      printf ("symlink (%s, %s): %m\n", dir, lnk);
++      return EXIT_FAILURE;
++    }
++
++  const size_t path_len = (size_t) INT_MAX + 1;
++
++  DIAG_PUSH_NEEDS_COMMENT;
++#if __GNUC_PREREQ (7, 0)
++  /* GCC 7 warns about too-large allocations; here we need such
++     allocation to succeed for the test to work.  */
++  DIAG_IGNORE_NEEDS_COMMENT (7, "-Walloc-size-larger-than=");
++#endif
++  char *path = malloc (path_len);
++  DIAG_POP_NEEDS_COMMENT;
++
++  if (path == NULL)
++    {
++      printf ("malloc (%zu): %m\n", path_len);
++      return EXIT_UNSUPPORTED;
++    }
++
++  /* Construct very long path = "bz22786/symlink/aaaa....."  */
++  char *p = mempcpy (path, lnk, sizeof (lnk) - 1);
++  *(p++) = '/';
++  memset (p, 'a', path_len - (path - p) - 2);
++  p[path_len - (path - p) - 1] = '\0';
++
++  /* This call crashes before the fix for bz22786 on 32-bit platforms.  */
++  p = realpath (path, NULL);
++
++  if (p != NULL || errno != ENAMETOOLONG)
++    {
++      printf ("realpath: %s (%m)", p);
++      return EXIT_FAILURE;
++    }
++
++  /* Cleanup.  */
++  unlink (lnk);
++  rmdir (dir);
++
++  return 0;
++}
++
++#define TEST_FUNCTION do_test
++#include <support/test-driver.c>
diff --git a/SOURCES/glibc-rh1579809-1.patch b/SOURCES/glibc-rh1579809-1.patch
new file mode 100644
index 0000000..152b80b
--- /dev/null
+++ b/SOURCES/glibc-rh1579809-1.patch
@@ -0,0 +1,50 @@
+commit 9aaaab7c6e4176e61c59b0a63c6ba906d875dc0e
+Author: Andreas Schwab <schwab@suse.de>
+Date:   Tue May 22 10:37:59 2018 +0200
+
+    Don't write beyond destination in __mempcpy_avx512_no_vzeroupper (bug 23196)
+    
+    When compiled as mempcpy, the return value is the end of the destination
+    buffer, thus it cannot be used to refer to the start of it.
+
+Conflicts:
+	sysdeps/x86_64/multiarch/memmove-avx512-no-vzeroupper.S
+
+Change applied to sysdeps/x86_64/multiarch/memcpy-avx512-no-vzeroupper.S
+instead.
+
+diff --git a/string/test-mempcpy.c b/string/test-mempcpy.c
+index 1679e9d11f282c55..7ccce13e71bd10a9 100644
+--- a/string/test-mempcpy.c
++++ b/string/test-mempcpy.c
+@@ -18,6 +18,7 @@
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #define MEMCPY_RESULT(dst, len) (dst) + (len)
++#define MIN_PAGE_SIZE 131072
+ #define TEST_MAIN
+ #define TEST_NAME "mempcpy"
+ #include "test-string.h"
+diff --git a/sysdeps/x86_64/multiarch/memcpy-avx512-no-vzeroupper.S b/sysdeps/x86_64/multiarch/memcpy-avx512-no-vzeroupper.S
+index 058e871847a77c45..b78710ea9359e129 100644
+--- a/sysdeps/x86_64/multiarch/memcpy-avx512-no-vzeroupper.S
++++ b/sysdeps/x86_64/multiarch/memcpy-avx512-no-vzeroupper.S
+@@ -333,6 +333,7 @@ L(preloop_large):
+ 	vmovups	(%rsi), %zmm4
+ 	vmovups	0x40(%rsi), %zmm5
+ 
++	mov	%rdi, %r11
+ /* Align destination for access with non-temporal stores in the loop.  */
+ 	mov	%rdi, %r8
+ 	and	$-0x80, %rdi
+@@ -363,8 +364,8 @@ L(gobble_256bytes_nt_loop):
+ 	cmp	$256, %rdx
+ 	ja	L(gobble_256bytes_nt_loop)
+ 	sfence
+-	vmovups	%zmm4, (%rax)
+-	vmovups	%zmm5, 0x40(%rax)
++	vmovups	%zmm4, (%r11)
++	vmovups	%zmm5, 0x40(%r11)
+ 	jmp	L(check)
+ 
+ L(preloop_large_bkw):
diff --git a/SOURCES/glibc-rh1579809-2.patch b/SOURCES/glibc-rh1579809-2.patch
new file mode 100644
index 0000000..6037a14
--- /dev/null
+++ b/SOURCES/glibc-rh1579809-2.patch
@@ -0,0 +1,75 @@
+commit ed983107bbc62245b06b99f02e69acf36a0baa3e
+Author: H.J. Lu <hjl.tools@gmail.com>
+Date:   Wed May 23 03:59:56 2018 -0700
+
+    Add a test case for [BZ #23196]
+    
+            [BZ #23196]
+            * string/test-memcpy.c (do_test1): New function.
+            (test_main): Call it.
+
+diff --git a/string/test-memcpy.c b/string/test-memcpy.c
+index d252400bf5254eee..10a09d0b0fb50dc5 100644
+--- a/string/test-memcpy.c
++++ b/string/test-memcpy.c
+@@ -206,6 +206,50 @@ do_random_tests (void)
+     }
+ }
+ 
++static void
++do_test1 (void)
++{
++  size_t size = 0x100000;
++  void *large_buf;
++
++  large_buf = mmap (NULL, size * 2 + page_size, PROT_READ | PROT_WRITE,
++		    MAP_PRIVATE | MAP_ANON, -1, 0);
++  if (large_buf == MAP_FAILED)
++    {
++      puts ("Failed to allocat large_buf, skipping do_test1");
++      return;
++    }
++
++  if (mprotect (large_buf + size, page_size, PROT_NONE))
++    error (EXIT_FAILURE, errno, "mprotect failed");
++
++  size_t arrary_size = size / sizeof (uint32_t);
++  uint32_t *dest = large_buf;
++  uint32_t *src = large_buf + size + page_size;
++  size_t i;
++
++  for (i = 0; i < arrary_size; i++)
++    src[i] = (uint32_t) i;
++
++  FOR_EACH_IMPL (impl, 0)
++    {
++      memset (dest, -1, size);
++      CALL (impl, (char *) dest, (char *) src, size);
++      for (i = 0; i < arrary_size; i++)
++	if (dest[i] != src[i])
++	  {
++	    error (0, 0,
++		   "Wrong result in function %s dst \"%p\" src \"%p\" offset \"%zd\"",
++		   impl->name, dest, src, i);
++	    ret = 1;
++	    break;
++	  }
++    }
++
++  munmap ((void *) dest, size);
++  munmap ((void *) src, size);
++}
++
+ int
+ test_main (void)
+ {
+@@ -247,6 +291,9 @@ test_main (void)
+   do_test (0, 0, getpagesize ());
+ 
+   do_random_tests ();
++
++  do_test1 ();
++
+   return ret;
+ }
+ 
diff --git a/SPECS/glibc.spec b/SPECS/glibc.spec
index 43ef6ba..5a388ae 100644
--- a/SPECS/glibc.spec
+++ b/SPECS/glibc.spec
@@ -1,6 +1,6 @@
 %define glibcsrcdir glibc-2.17-c758a686
 %define glibcversion 2.17
-%define glibcrelease 222%{?dist}
+%define glibcrelease 260%{?dist}
 ##############################################################################
 # We support the following options:
 # --with/--without,
@@ -33,12 +33,6 @@
 %undefine with_valgrind
 %endif
 %endif
-%if %{with werror}
-%ifarch s390x
-# The 64-bit s390x builds are not -Werror clean yet.
-%undefine with_werror
-%endif
-%endif
 %if %{with bootstrap}
 # Disable benchtests, -Werror, docs, and valgrind if we're bootstrapping
 %undefine with_benchtests
@@ -221,7 +215,6 @@ Patch0028: glibc-fedora-localedata-rh61908.patch
 Patch0030: glibc-fedora-uname-getrlimit.patch
 Patch0031: glibc-fedora-__libc_multiple_libcs.patch
 Patch0032: glibc-fedora-elf-rh737223.patch
-Patch0033: glibc-fedora-elf-ORIGIN.patch
 Patch0034: glibc-fedora-elf-init-hidden_undef.patch
 
 # Needs to be sent upstream
@@ -260,6 +253,11 @@ Patch0066: glibc-rh1227699.patch
 # CVE-2015-7547
 Patch0067: glibc-rh1296031.patch
 
+# releng patch from Fedora
+Patch0068: glibc-rh1349982.patch
+
+# These changes were brought forward from RHEL 6 for compatibility
+Patch0069: glibc-rh1448107.patch
 ##############################################################################
 #
 # Patches from upstream
@@ -1161,6 +1159,264 @@ Patch1900: glibc-rh1534635.patch
 Patch1901: glibc-rh1529982.patch
 
 Patch1902: glibc-rh1523119-compat-symbols.patch
+Patch2500: glibc-rh1505492-nscd_stat.patch
+Patch2501: glibc-rh1564638.patch
+Patch2502: glibc-rh1566623.patch
+Patch2503: glibc-rh1349967.patch
+Patch2504: glibc-rh1505492-undef-malloc.patch
+Patch2505: glibc-rh1505492-undef-elf-dtv-resize.patch
+Patch2506: glibc-rh1505492-undef-elision.patch
+Patch2507: glibc-rh1505492-undef-max_align_t.patch
+Patch2508: glibc-rh1505492-unused-tst-default-attr.patch
+Patch2509: glibc-rh1505492-prototypes-rtkaio.patch
+Patch2510: glibc-rh1505492-zerodiv-log.patch
+Patch2511: glibc-rh1505492-selinux.patch
+Patch2512: glibc-rh1505492-undef-abi.patch
+Patch2513: glibc-rh1505492-unused-math.patch
+Patch2514: glibc-rh1505492-prototypes-1.patch
+Patch2515: glibc-rh1505492-uninit-intl-plural.patch
+Patch2516: glibc-rh1505492-undef-1.patch
+Patch2517: glibc-rh1505492-undef-2.patch
+Patch2518: glibc-rh1505492-bounded-1.patch
+Patch2519: glibc-rh1505492-bounded-2.patch
+Patch2520: glibc-rh1505492-bounded-3.patch
+Patch2521: glibc-rh1505492-bounded-4.patch
+Patch2522: glibc-rh1505492-undef-3.patch
+Patch2523: glibc-rh1505492-bounded-5.patch
+Patch2524: glibc-rh1505492-bounded-6.patch
+Patch2525: glibc-rh1505492-bounded-7.patch
+Patch2526: glibc-rh1505492-bounded-8.patch
+Patch2527: glibc-rh1505492-unused-1.patch
+Patch2528: glibc-rh1505492-bounded-9.patch
+Patch2529: glibc-rh1505492-bounded-10.patch
+Patch2530: glibc-rh1505492-bounded-11.patch
+Patch2531: glibc-rh1505492-bounded-12.patch
+Patch2532: glibc-rh1505492-bounded-13.patch
+Patch2533: glibc-rh1505492-unused-2.patch
+Patch2534: glibc-rh1505492-bounded-14.patch
+Patch2535: glibc-rh1505492-bounded-15.patch
+Patch2536: glibc-rh1505492-bounded-16.patch
+Patch2537: glibc-rh1505492-bounded-17.patch
+Patch2538: glibc-rh1505492-malloc_size_t.patch
+Patch2539: glibc-rh1505492-malloc_ptrdiff_t.patch
+Patch2540: glibc-rh1505492-prototypes-2.patch
+Patch2541: glibc-rh1505492-prototypes-libc_fatal.patch
+Patch2542: glibc-rh1505492-getlogin.patch
+Patch2543: glibc-rh1505492-undef-4.patch
+Patch2544: glibc-rh1505492-register.patch
+Patch2545: glibc-rh1505492-prototypes-3.patch
+Patch2546: glibc-rh1505492-unused-3.patch
+Patch2547: glibc-rh1505492-ports-move-powerpc.patch
+Patch2548: glibc-rh1505492-unused-4.patch
+Patch2549: glibc-rh1505492-systemtap.patch
+Patch2550: glibc-rh1505492-prototypes-wcschr-1.patch
+Patch2551: glibc-rh1505492-prototypes-wcsrchr.patch
+Patch2552: glibc-rh1505492-prototypes-powerpc-wcscpy.patch
+Patch2553: glibc-rh1505492-prototypes-powerpc-wordcopy.patch
+Patch2554: glibc-rh1505492-bsd-flatten.patch
+Patch2555: glibc-rh1505492-unused-5.patch
+Patch2556: glibc-rh1505492-types-1.patch
+Patch2557: glibc-rh1505492-powerpc-sotruss.patch
+Patch2558: glibc-rh1505492-s390x-sotruss.patch
+Patch2559: glibc-rh1505492-ports-am33.patch
+Patch2560: glibc-rh1505492-ports-move-arm.patch
+Patch2561: glibc-rh1505492-undef-5.patch
+Patch2562: glibc-rh1505492-prototypes-4.patch
+Patch2563: glibc-rh1505492-ports-move-tile.patch
+Patch2564: glibc-rh1505492-ports-move-m68k.patch
+Patch2565: glibc-rh1505492-ports-move-mips.patch
+Patch2566: glibc-rh1505492-ports-move-aarch64.patch
+Patch2567: glibc-rh1505492-ports-move-alpha.patch
+Patch2568: glibc-rh1505492-ports-move-ia64.patch
+Patch2569: glibc-rh1505492-undef-6.patch
+Patch2570: glibc-rh1505492-undef-7.patch
+Patch2571: glibc-rh1505492-undef-intl.patch
+Patch2572: glibc-rh1505492-undef-obstack.patch
+Patch2573: glibc-rh1505492-undef-error.patch
+Patch2574: glibc-rh1505492-undef-string.patch
+Patch2575: glibc-rh1505492-undef-tempname.patch
+Patch2576: glibc-rh1505492-undef-8.patch
+Patch2577: glibc-rh1505492-undef-mktime.patch
+Patch2578: glibc-rh1505492-undef-sysconf.patch
+Patch2579: glibc-rh1505492-prototypes-Xat.patch
+Patch2580: glibc-rh1505492-undef-ipc64.patch
+Patch2581: glibc-rh1505492-undef-xfs-chown.patch
+Patch2582: glibc-rh1505492-undef-9.patch
+Patch2583: glibc-rh1505492-undef-10.patch
+Patch2584: glibc-rh1505492-undef-11.patch
+Patch2585: glibc-rh1505492-undef-12.patch
+Patch2586: glibc-rh1505492-prototypes-5.patch
+Patch2587: glibc-rh1505492-undef-13.patch
+Patch2588: glibc-rh1505492-undef-14.patch
+Patch2589: glibc-rh1505492-undef-15.patch
+Patch2590: glibc-rh1505492-ports-move-hppa.patch
+Patch2591: glibc-rh1505492-undef-16.patch
+Patch2592: glibc-rh1505492-undef-17.patch
+Patch2593: glibc-rh1505492-undef-18.patch
+Patch2594: glibc-rh1505492-undef-19.patch
+Patch2595: glibc-rh1505492-undef-20.patch
+Patch2596: glibc-rh1505492-undef-21.patch
+Patch2597: glibc-rh1505492-undef-22.patch
+Patch2598: glibc-rh1505492-undef-23.patch
+Patch2599: glibc-rh1505492-undef-24.patch
+Patch2600: glibc-rh1505492-prototypes-rwlock.patch
+Patch2601: glibc-rh1505492-undef-25.patch
+Patch2602: glibc-rh1505492-undef-26.patch
+Patch2603: glibc-rh1505492-undef-27.patch
+Patch2604: glibc-rh1505492-undef-28.patch
+Patch2605: glibc-rh1505492-undef-29.patch
+Patch2606: glibc-rh1505492-undef-30.patch
+Patch2607: glibc-rh1505492-undef-31.patch
+Patch2608: glibc-rh1505492-undef-32.patch
+Patch2609: glibc-rh1505492-undef-33.patch
+Patch2610: glibc-rh1505492-prototypes-memchr.patch
+Patch2611: glibc-rh1505492-undef-34.patch
+Patch2612: glibc-rh1505492-prototypes-powerpc-memmove.patch
+Patch2613: glibc-rh1505492-undef-35.patch
+Patch2614: glibc-rh1505492-undef-36.patch
+Patch2615: glibc-rh1505492-undef-37.patch
+Patch2616: glibc-rh1505492-uninit-1.patch
+Patch2617: glibc-rh1505492-undef-38.patch
+Patch2618: glibc-rh1505492-uninit-2.patch
+Patch2619: glibc-rh1505492-undef-39.patch
+Patch2620: glibc-rh1505492-undef-40.patch
+Patch2621: glibc-rh1505492-undef-41.patch
+Patch2622: glibc-rh1505492-undef-42.patch
+Patch2623: glibc-rh1505492-undef-43.patch
+Patch2624: glibc-rh1505492-undef-44.patch
+Patch2625: glibc-rh1505492-undef-45.patch
+Patch2626: glibc-rh1505492-undef-46.patch
+Patch2627: glibc-rh1505492-undef-47.patch
+Patch2628: glibc-rh1505492-prototypes-6.patch
+Patch2629: glibc-rh1505492-undef-48.patch
+Patch2630: glibc-rh1505492-prototypes-execve.patch
+Patch2631: glibc-rh1505492-prototypes-readv-writev.patch
+Patch2632: glibc-rh1505492-prototypes-7.patch
+Patch2633: glibc-rh1505492-prototypes-powerpc-pread-pwrite.patch
+Patch2634: glibc-rh1505492-s390-backtrace.patch
+Patch2635: glibc-rh1505492-unused-6.patch
+Patch2636: glibc-rh1505492-prototypes-8.patch
+Patch2637: glibc-rh1505492-prototypes-ctermid.patch
+Patch2638: glibc-rh1505492-unused-7.patch
+Patch2639: glibc-rh1505492-uninit-3.patch
+Patch2640: glibc-rh1505492-types-2.patch
+Patch2641: glibc-rh1505492-unused-8.patch
+Patch2642: glibc-rh1505492-unused-9.patch
+Patch2643: glibc-rh1505492-types-3.patch
+Patch2644: glibc-rh1505492-unused-10.patch
+Patch2645: glibc-rh1505492-types-5.patch
+Patch2646: glibc-rh1505492-unused-11.patch
+Patch2647: glibc-rh1505492-unused-12.patch
+Patch2648: glibc-rh1505492-unused-13.patch
+Patch2649: glibc-rh1505492-deprecated-1.patch
+Patch2650: glibc-rh1505492-unused-14.patch
+Patch2651: glibc-rh1505492-types-6.patch
+Patch2652: glibc-rh1505492-address.patch
+Patch2653: glibc-rh1505492-types-7.patch
+Patch2654: glibc-rh1505492-prototypes-9.patch
+Patch2655: glibc-rh1505492-diag.patch
+Patch2656: glibc-rh1505492-zerodiv-1.patch
+Patch2657: glibc-rh1505492-deprecated-2.patch
+Patch2658: glibc-rh1505492-unused-15.patch
+Patch2659: glibc-rh1505492-prototypes-sigvec.patch
+Patch2660: glibc-rh1505492-werror-activate.patch
+Patch2661: glibc-rh1505492-types-8.patch
+Patch2662: glibc-rh1505492-prototypes-intl.patch
+Patch2663: glibc-rh1505492-types-9.patch
+Patch2664: glibc-rh1505492-types-10.patch
+Patch2665: glibc-rh1505492-prototypes-sem_unlink.patch
+Patch2666: glibc-rh1505492-prototypes-s390-pthread_once.patch
+Patch2667: glibc-rh1505492-types-11.patch
+Patch2668: glibc-rh1505492-types-12.patch
+Patch2669: glibc-rh1505492-types-13.patch
+Patch2670: glibc-rh1505492-undef-49.patch
+Patch2671: glibc-rh1505492-undef-50.patch
+Patch2672: glibc-rh1505492-undef-51.patch
+Patch2673: glibc-rh1505492-undef-52.patch
+Patch2674: glibc-rh1505492-types-14.patch
+Patch2675: glibc-rh1505492-prototypes-10.patch
+Patch2676: glibc-rh1505492-prototypes-wcschr-2.patch
+Patch2677: glibc-rh1505492-prototypes-bzero.patch
+Patch2678: glibc-rh1505492-winline.patch
+Patch2679: glibc-rh1505492-prototypes-scandir.patch
+Patch2680: glibc-rh1505492-prototypes-timespec_get.patch
+Patch2681: glibc-rh1505492-prototypes-gettimeofday.patch
+Patch2682: glibc-rh1505492-prototypes-no_cancellation.patch
+Patch2683: glibc-rh1505492-prototypes-getttynam.patch
+Patch2684: glibc-rh1505492-undef-53.patch
+Patch2685: glibc-rh1505492-prototypes-stpcpy.patch
+Patch2686: glibc-rh1505492-undef-54.patch
+Patch2687: glibc-rh1505492-undef-55.patch
+Patch2688: glibc-rh1505492-undef-activate.patch
+Patch2689: glibc-rh1505492-prototypes-debug.patch
+Patch2690: glibc-rh1505492-prototypes-putXent.patch
+Patch2691: glibc-rh1505492-prototypes-11.patch
+Patch2692: glibc-rh1505492-prototypes-12.patch
+Patch2693: glibc-rh1505492-prototypes-13.patch
+Patch2694: glibc-rh1505492-prototypes-14.patch
+Patch2695: glibc-rh1505492-prototypes-15.patch
+Patch2696: glibc-rh1505492-prototypes-16.patch
+Patch2697: glibc-rh1505492-prototypes-17.patch
+Patch2698: glibc-rh1505492-prototypes-18.patch
+Patch2699: glibc-rh1505492-prototypes-activate.patch
+Patch2700: glibc-rh1505492-unused-16.patch
+Patch2701: glibc-rh1505492-unused-17.patch
+Patch2702: glibc-rh1505492-undef-56.patch
+Patch2703: glibc-rh1548002.patch
+Patch2704: glibc-rh1307241-1.patch
+Patch2705: glibc-rh1307241-2.patch
+
+Patch2706: glibc-rh1563747.patch
+Patch2707: glibc-rh1476120.patch
+Patch2708: glibc-rh1505647.patch
+
+Patch2709: glibc-rh1457479-1.patch
+Patch2710: glibc-rh1457479-2.patch
+Patch2711: glibc-rh1457479-3.patch
+Patch2712: glibc-rh1457479-4.patch
+Patch2713: glibc-rh1461231.patch
+
+Patch2714: glibc-rh1577333.patch
+Patch2715: glibc-rh1531168-1.patch
+Patch2716: glibc-rh1531168-2.patch
+Patch2717: glibc-rh1531168-3.patch
+Patch2718: glibc-rh1579742.patch
+Patch2719: glibc-rh1579727-1.patch
+Patch2720: glibc-rh1579727-2.patch
+Patch2721: glibc-rh1579809-1.patch
+Patch2722: glibc-rh1579809-2.patch
+Patch2723: glibc-rh1505451.patch
+Patch2724: glibc-rh1505477.patch
+Patch2725: glibc-rh1505500.patch
+Patch2726: glibc-rh1563046.patch
+
+# RHBZ 1560641 - backport of upstream sem_open patch
+Patch2727: glibc-rh1560641.patch
+
+Patch2728: glibc-rh1550080.patch
+Patch2729: glibc-rh1526193.patch
+Patch2730: glibc-rh1372304-1.patch
+Patch2731: glibc-rh1372304-2.patch
+Patch2732: glibc-rh1540480-0.patch
+Patch2733: glibc-rh1540480-1.patch
+Patch2734: glibc-rh1540480-2.patch
+Patch2735: glibc-rh1540480-3.patch
+Patch2736: glibc-rh1540480-4.patch
+Patch2737: glibc-rh1540480-5.patch
+Patch2738: glibc-rh1540480-6.patch
+Patch2739: glibc-rh1540480-7.patch
+Patch2740: glibc-rh1540480-8.patch
+Patch2741: glibc-rh1447808-0.patch
+Patch2742: glibc-rh1447808-1.patch
+Patch2743: glibc-rh1447808-2.patch
+Patch2744: glibc-rh1401665-0.patch
+Patch2745: glibc-rh1401665-1a.patch
+Patch2746: glibc-rh1401665-1b.patch
+Patch2747: glibc-rh1401665-1c.patch
+Patch2748: glibc-rh1401665-2.patch
+Patch2749: glibc-rh1401665-3.patch
+Patch2750: glibc-rh1401665-4.patch
+Patch2751: glibc-rh1401665-5.patch
 
 ##############################################################################
 #
@@ -1293,6 +1549,8 @@ Patch2111: glibc-rh677316-legacy.patch
 Patch2112: glibc-rh1498566.patch
 Patch2113: glibc-rh1445644.patch
 
+Patch2114: glibc-rh1471405.patch
+
 ##############################################################################
 # End of glibc patches.
 ##############################################################################
@@ -1315,6 +1573,16 @@ Provides: ld-linux.so.3
 Provides: ld-linux.so.3(GLIBC_2.4)
 %endif
 
+# This should remain "Provides: nss_db" (or become a subpackage) to allow easy
+# migration from old systems that previously had the old nss_db package
+# installed. Note that this doesn't make the migration that smooth, the
+# databases still need rebuilding because the formats were different.
+# The nss_db package was deprecated in F16 and onwards:
+# https://lists.fedoraproject.org/pipermail/devel/2011-July/153665.html
+# The different database format does cause some issues for users:
+# https://lists.fedoraproject.org/pipermail/devel/2011-December/160497.html
+Provides: nss_db
+
 Requires: glibc-common = %{version}-%{release}
 
 # Require libgcc in case some program calls pthread_cancel in its %%post
@@ -1644,7 +1912,6 @@ package or when debugging this package.
 %patch0030 -p1
 %patch0031 -p1
 %patch0032 -p1
-%patch0033 -p1
 %patch0034 -p1
 %patch1051 -p1
 %patch0035 -p1
@@ -2108,6 +2375,7 @@ package or when debugging this package.
 %patch1754 -p1
 %patch1755 -p1
 %patch1756 -p1
+%patch0068 -p1
 %patch1757 -p1
 %patch17580 -p1
 %patch1758 -p1
@@ -2263,6 +2531,7 @@ package or when debugging this package.
 %patch2111 -p1
 %patch2112 -p1
 %patch2113 -p1
+%patch2114 -p1
 
 %patch1878 -p1
 %patch1879 -p1
@@ -2291,6 +2560,262 @@ package or when debugging this package.
 %patch1900 -p1
 %patch1901 -p1
 %patch1902 -p1
+%patch2500 -p1
+%patch2501 -p1
+%patch2502 -p1
+%patch2503 -p1
+%patch2504 -p1
+%patch2505 -p1
+%patch2506 -p1
+%patch2507 -p1
+%patch2508 -p1
+%patch2509 -p1
+%patch2510 -p1
+%patch2511 -p1
+%patch2512 -p1
+%patch2513 -p1
+%patch2514 -p1
+%patch2515 -p1
+%patch2516 -p1
+%patch2517 -p1
+%patch2518 -p1
+%patch2519 -p1
+%patch2520 -p1
+%patch2521 -p1
+%patch2522 -p1
+%patch2523 -p1
+%patch2524 -p1
+%patch2525 -p1
+%patch2526 -p1
+%patch2527 -p1
+%patch2528 -p1
+%patch2529 -p1
+%patch2530 -p1
+%patch2531 -p1
+%patch2532 -p1
+%patch2533 -p1
+%patch2534 -p1
+%patch2535 -p1
+%patch2536 -p1
+%patch2537 -p1
+%patch2538 -p1
+%patch2539 -p1
+%patch2540 -p1
+%patch2541 -p1
+%patch2542 -p1
+%patch2543 -p1
+%patch0069 -p1
+%patch2544 -p1
+%patch2545 -p1
+%patch2546 -p1
+%patch2547 -p1
+%patch2548 -p1
+%patch2549 -p1
+%patch2550 -p1
+%patch2551 -p1
+%patch2552 -p1
+%patch2553 -p1
+%patch2554 -p1
+%patch2555 -p1
+%patch2556 -p1
+%patch2557 -p1
+%patch2558 -p1
+%patch2559 -p1
+%patch2560 -p1
+%patch2561 -p1
+%patch2562 -p1
+%patch2563 -p1
+%patch2564 -p1
+%patch2565 -p1
+%patch2566 -p1
+%patch2567 -p1
+%patch2568 -p1
+%patch2569 -p1
+%patch2570 -p1
+%patch2571 -p1
+%patch2572 -p1
+%patch2573 -p1
+%patch2574 -p1
+%patch2575 -p1
+%patch2576 -p1
+%patch2577 -p1
+%patch2578 -p1
+%patch2579 -p1
+%patch2580 -p1
+%patch2581 -p1
+%patch2582 -p1
+%patch2583 -p1
+%patch2584 -p1
+%patch2585 -p1
+%patch2586 -p1
+%patch2587 -p1
+%patch2588 -p1
+%patch2589 -p1
+%patch2590 -p1
+%patch2591 -p1
+%patch2592 -p1
+%patch2593 -p1
+%patch2594 -p1
+%patch2595 -p1
+%patch2596 -p1
+%patch2597 -p1
+%patch2598 -p1
+%patch2599 -p1
+%patch2600 -p1
+%patch2601 -p1
+%patch2602 -p1
+%patch2603 -p1
+%patch2604 -p1
+%patch2605 -p1
+%patch2606 -p1
+%patch2607 -p1
+%patch2608 -p1
+%patch2609 -p1
+%patch2610 -p1
+%patch2611 -p1
+%patch2612 -p1
+%patch2613 -p1
+%patch2614 -p1
+%patch2615 -p1
+%patch2616 -p1
+%patch2617 -p1
+%patch2618 -p1
+%patch2619 -p1
+%patch2620 -p1
+%patch2621 -p1
+%patch2622 -p1
+%patch2623 -p1
+%patch2624 -p1
+%patch2625 -p1
+%patch2626 -p1
+%patch2627 -p1
+%patch2628 -p1
+%patch2629 -p1
+%patch2630 -p1
+%patch2631 -p1
+%patch2632 -p1
+%patch2633 -p1
+%patch2634 -p1
+%patch2635 -p1
+%patch2636 -p1
+%patch2637 -p1
+%patch2638 -p1
+%patch2639 -p1
+%patch2640 -p1
+%patch2641 -p1
+%patch2642 -p1
+%patch2643 -p1
+%patch2644 -p1
+%patch2645 -p1
+%patch2646 -p1
+%patch2647 -p1
+%patch2648 -p1
+%patch2649 -p1
+%patch2650 -p1
+%patch2651 -p1
+%patch2652 -p1
+%patch2653 -p1
+%patch2654 -p1
+%patch2655 -p1
+%patch2656 -p1
+%patch2657 -p1
+%patch2658 -p1
+%patch2659 -p1
+%patch2660 -p1
+%patch2661 -p1
+%patch2662 -p1
+%patch2663 -p1
+%patch2664 -p1
+%patch2665 -p1
+%patch2666 -p1
+%patch2667 -p1
+%patch2668 -p1
+%patch2669 -p1
+%patch2670 -p1
+%patch2671 -p1
+%patch2672 -p1
+%patch2673 -p1
+%patch2674 -p1
+%patch2675 -p1
+%patch2676 -p1
+%patch2677 -p1
+%patch2678 -p1
+%patch2679 -p1
+%patch2680 -p1
+%patch2681 -p1
+%patch2682 -p1
+%patch2683 -p1
+%patch2684 -p1
+%patch2685 -p1
+%patch2686 -p1
+%patch2687 -p1
+%patch2688 -p1
+%patch2689 -p1
+%patch2690 -p1
+%patch2691 -p1
+%patch2692 -p1
+%patch2693 -p1
+%patch2694 -p1
+%patch2695 -p1
+%patch2696 -p1
+%patch2697 -p1
+%patch2698 -p1
+%patch2699 -p1
+%patch2700 -p1
+%patch2701 -p1
+%patch2702 -p1
+%patch2703 -p1
+%patch2704 -p1
+%patch2705 -p1
+
+%patch2706 -p1
+%patch2707 -p1
+%patch2708 -p1
+
+%patch2709 -p1
+%patch2710 -p1
+%patch2711 -p1
+%patch2712 -p1
+%patch2713 -p1
+
+%patch2714 -p1
+%patch2715 -p1
+%patch2716 -p1
+%patch2717 -p1
+%patch2718 -p1
+%patch2719 -p1
+%patch2720 -p1
+%patch2721 -p1
+%patch2722 -p1
+%patch2723 -p1
+%patch2724 -p1
+%patch2725 -p1
+%patch2726 -p1
+%patch2727 -p1
+%patch2728 -p1
+%patch2729 -p1
+%patch2730 -p1
+%patch2731 -p1
+%patch2732 -p1
+%patch2733 -p1
+%patch2734 -p1
+%patch2735 -p1
+%patch2736 -p1
+%patch2737 -p1
+%patch2738 -p1
+%patch2739 -p1
+%patch2740 -p1
+%patch2741 -p1
+%patch2742 -p1
+%patch2743 -p1
+%patch2744 -p1
+%patch2745 -p1
+%patch2746 -p1
+%patch2747 -p1
+%patch2748 -p1
+%patch2749 -p1
+%patch2750 -p1
+%patch2751 -p1
 
 ##############################################################################
 # %%prep - Additional prep required...
@@ -2455,7 +2980,7 @@ build_CFLAGS="$BuildFlags -g -O3 $*"
 configure_CFLAGS="$build_CFLAGS -fno-asynchronous-unwind-tables"
 ../configure CC="$GCC" CXX="$GXX" CFLAGS="$configure_CFLAGS" \
 	--prefix=%{_prefix} \
-	--enable-add-ons=ports,nptl$AddOns \
+	--enable-add-ons=nptl$AddOns \
 	--with-headers=%{_prefix}/include $EnableKernel --enable-bind-now \
 	--build=%{target} \
 %ifarch %{multiarcharches}
@@ -3454,6 +3979,132 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Wed Jun 27 2018 Patsy Franklin <pfrankli@redhat.com> - 2.17-260
+- Update glibc-rh1560641.patch to initialize pad outside
+  the conditional eliminating an uninitialized byte warning from
+  valgrind. (#1560641)
+
+* Fri Jun 15 2018 Arjun Shankar <arjun@redhat.com> - 2.17-259
+- Correctly set errno when send() fails on i686 (#1550080)
+
+* Tue Jun 12 2018 Carlos O'Donell <carlos@redhat.com> - 2.17-258
+- Fix dynamic string token substitution in DT_RPATH etc. (#1447808, #1540480)
+- Additional robust mutex fixes (#1401665)
+
+* Tue Jun 12 2018 Carlos O'Donell <carlos@redhat.com> - 2.17-257
+- Improve process-shared robust mutex support (#1401665)
+
+* Tue Jun 12 2018 Carlos O'Donell <carlos@redhat.com> 2.17-256
+- CVE-2017-16997: Correctly handle DT_RPATH (#1540480).
+- Correctly process "$ORIGIN" element in DT_RPATH or DT_NEEDED (#1447808).
+
+* Tue Jun 12 2018 Carlos O'Donell <codonell@redhat.com> - 2.17-255
+- Make transition from legacy nss_db easier (#1408964)
+
+* Mon Jun 11 2018 Arjun Shankar <arjun@redhat.com> - 2.17-254
+- nptl: Avoid expected SIGALRM in most tests (#1372304)
+
+* Fri Jun  8 2018 Patsy Franklin <pfrankli@redhat.com> - 2.17-253
+- Add support for el_GR@euro locale.  Update el_GR, ur_IN and
+  wal_ET locales.  (#1448107)
+
+* Fri Jun  8 2018 Arjun Shankar <arjun@redhat.com> - 2.17-252
+- Do not scale NPTL tests with available number of CPUs (#1526193)
+
+* Thu Jun  7 2018 Arjun Shankar <arjun@redhat.com> - 2.17-251
+- Correctly set errno when send() fails on s390 and s390x (#1550080)
+
+* Wed Jun  6 2018 Patsy Franklin <pfrankli@redhat.com> - 2.17-250
+- Initialize pad field in sem_open. (#1560641)
+
+* Mon Jun  4 2018 Arjun Shankar <arjun@redhat.com> - 2.17-249
+- getlogin_r: Return early when process has no associated login UID (#1563046)
+
+* Mon Jun  4 2018 Arjun Shankar <arjun@redhat.com> - 2.17-248
+- Return static array, not local array from transliteration function (#1505500)
+
+* Mon Jun  4 2018 Arjun Shankar <arjun@redhat.com> - 2.17-247
+- Re-write multi-statement strftime_l macros using better style (#1505477)
+
+* Mon Jun  4 2018 Arjun Shankar <arjun@redhat.com> - 2.17-246
+- Fix pthread_barrier_init typo (#1505451)
+
+* Wed May 23 2018 Florian Weimer <fweimer@redhat.com> - 2.17-245
+- CVE-2018-11237: AVX-512 mempcpy for KNL buffer overflow (#1579809)
+
+* Wed May 23 2018 Florian Weimer <fweimer@redhat.com> - 2.17-244
+- resolv: Fix crash after memory allocation failure (#1579727)
+
+* Wed May 23 2018 Florian Weimer <fweimer@redhat.com> - 2.17-243
+- CVE-2018-11236: Path length overflow in realpath (#1579742)
+
+* Tue May 22 2018 DJ Delorie <dj@redhat.com> - 2.17-242
+- S390: fix sys/ptrace.h to make it includible again after
+  asm/ptrace.h (#1457479)
+
+* Tue May 22 2018 Florian Weimer <fweimer@redhat.com> - 2.17-241
+- x86: setcontext, makecontext alignment issues (#1531168)
+
+* Wed May 16 2018 DJ Delorie <dj@redhat.com> - 2.17-240
+- Remove abort() warning in manual (#1577333)
+
+* Wed May 16 2018 DJ Delorie <dj@redhat.com> - 2.17-239
+- Add Open File Description (OFL) locks. (#1461231)
+
+* Sun May 13 2018 Patsy Franklin <pfrankli@redhat.com> - 2.17-238
+- Properly handle more invalid --install-langs arguments. (#1349982)
+
+* Fri May 11 2018 DJ Delorie <dj@redhat.com> - 2.17-237
+- Add O_TMPFILE macro (#1471405)
+- Update syscall names list to kernel 4.16 (#1563747)
+- Include <linux/falloc.h> in bits/fcntl-linux.h. (#1476120)
+- Fix netgroup cache keys. (#1505647)
+- Update ptrace constants. (#1457479)
+
+* Thu May  3 2018 Arjun Shankar <arjun@redhat.com> - 2.17-236
+- Fix strfmon_l so that it groups digits (#1307241)
+
+* Thu May  3 2018 Arjun Shankar <arjun@redhat.com> - 2.17-235
+- CVE-2018-6485: Integer overflow in posix_memalign in memalign (#1548002)
+
+* Fri Apr 13 2018 Florian Weimer <fweimer@redhat.com> - 2.17-234
+- Adjust spec file for compiler warnings cleanup (#1505492)
+- Drop ports add-on
+- Do not attempt to disable warnings-as-errors on s390x
+
+* Fri Apr 13 2018 Florian Weimer <fweimer@redhat.com> - 2.17-233
+- Compiler warnings cleanup, phase 7 (#1505492)
+
+* Fri Apr 13 2018 Florian Weimer <fweimer@redhat.com> - 2.17-232
+- Compiler warnings cleanup, phase 6 (#1505492)
+
+* Fri Apr 13 2018 Florian Weimer <fweimer@redhat.com> - 2.17-231
+- Compiler warnings cleanup, phase 5 (#1505492)
+
+* Fri Apr 13 2018 Florian Weimer <fweimer@redhat.com> - 2.17-230
+- Compiler warnings cleanup, phase 4 (#1505492)
+
+* Fri Apr 13 2018 Florian Weimer <fweimer@redhat.com> - 2.17-229
+- Compiler warnings cleanup, phase 3 (#1505492)
+
+* Fri Apr 13 2018 Florian Weimer <fweimer@redhat.com> - 2.17-228
+- Compiler warnings cleanup, phase 2 (#1505492)
+
+* Fri Apr 13 2018 Florian Weimer <fweimer@redhat.com> - 2.17-227
+- Fix downstream-specific compiler warnings (#1505492)
+
+* Fri Apr 13 2018 Florian Weimer <fweimer@redhat.com> - 2.17-226
+- rtkaio: Do not define IN_MODULE (#1349967)
+
+* Fri Apr 13 2018 Florian Weimer <fweimer@redhat.com> - 2.17-225
+- Fix K&R function definitions in libio (#1566623)
+
+* Fri Apr 13 2018 Florian Weimer <fweimer@redhat.com> - 2.17-224
+- Fix type errors in string tests (#1564638)
+
+* Fri Apr 13 2018 Florian Weimer <fweimer@redhat.com> - 2.17-223
+- Make nscd build reproducible for verification (#1505492)
+
 * Thu Feb  1 2018 Florian Weimer <fweimer@redhat.com> - 2.17-222
 - Restore internal GLIBC_PRIVATE symbols for use during upgrades (#1523119)