Browse Source

glibc add missing patch source files

Signed-off-by: basebuilder_pel7ppc64bebuilder0 <basebuilder@powerel.org>
master
basebuilder_pel7ppc64bebuilder0 6 years ago
parent
commit
a8fc5d5949
  1. 455
      SOURCES/glibc-rh1307241-1.patch
  2. 56
      SOURCES/glibc-rh1307241-2.patch
  3. 18
      SOURCES/glibc-rh1349967.patch
  4. 32
      SOURCES/glibc-rh1349982.patch
  5. 506
      SOURCES/glibc-rh1372304-1.patch
  6. 46
      SOURCES/glibc-rh1372304-2.patch
  7. 107
      SOURCES/glibc-rh1401665-0.patch
  8. 35
      SOURCES/glibc-rh1401665-1a.patch
  9. 1642
      SOURCES/glibc-rh1401665-1b.patch
  10. 26
      SOURCES/glibc-rh1401665-1c.patch
  11. 49
      SOURCES/glibc-rh1401665-2.patch
  12. 406
      SOURCES/glibc-rh1401665-3.patch
  13. 208
      SOURCES/glibc-rh1401665-4.patch
  14. 176
      SOURCES/glibc-rh1401665-5.patch
  15. 28
      SOURCES/glibc-rh1447808-0.patch
  16. 404
      SOURCES/glibc-rh1447808-1.patch
  17. 18
      SOURCES/glibc-rh1447808-2.patch
  18. 418
      SOURCES/glibc-rh1448107.patch
  19. 339
      SOURCES/glibc-rh1457479-1.patch
  20. 215
      SOURCES/glibc-rh1457479-2.patch
  21. 128
      SOURCES/glibc-rh1457479-3.patch
  22. 98
      SOURCES/glibc-rh1457479-4.patch
  23. 43
      SOURCES/glibc-rh1461231.patch
  24. 12
      SOURCES/glibc-rh1471405.patch
  25. 33
      SOURCES/glibc-rh1476120.patch
  26. 21
      SOURCES/glibc-rh1505451.patch
  27. 71
      SOURCES/glibc-rh1505477.patch
  28. 75
      SOURCES/glibc-rh1505492-address.patch
  29. 304
      SOURCES/glibc-rh1505492-bounded-1.patch
  30. 985
      SOURCES/glibc-rh1505492-bounded-10.patch
  31. 592
      SOURCES/glibc-rh1505492-bounded-11.patch
  32. 113
      SOURCES/glibc-rh1505492-bounded-12.patch
  33. 520
      SOURCES/glibc-rh1505492-bounded-13.patch
  34. 1991
      SOURCES/glibc-rh1505492-bounded-14.patch
  35. 2287
      SOURCES/glibc-rh1505492-bounded-15.patch
  36. 1837
      SOURCES/glibc-rh1505492-bounded-16.patch
  37. 1220
      SOURCES/glibc-rh1505492-bounded-17.patch
  38. 274
      SOURCES/glibc-rh1505492-bounded-2.patch
  39. 269
      SOURCES/glibc-rh1505492-bounded-3.patch
  40. 121
      SOURCES/glibc-rh1505492-bounded-4.patch
  41. 168
      SOURCES/glibc-rh1505492-bounded-5.patch
  42. 726
      SOURCES/glibc-rh1505492-bounded-6.patch
  43. 68
      SOURCES/glibc-rh1505492-bounded-7.patch
  44. 956
      SOURCES/glibc-rh1505492-bounded-8.patch
  45. 1144
      SOURCES/glibc-rh1505492-bounded-9.patch
  46. 173
      SOURCES/glibc-rh1505492-bsd-flatten.patch
  47. 37
      SOURCES/glibc-rh1505492-deprecated-1.patch
  48. 50
      SOURCES/glibc-rh1505492-deprecated-2.patch
  49. 190
      SOURCES/glibc-rh1505492-diag.patch
  50. 69
      SOURCES/glibc-rh1505492-getlogin.patch
  51. 24
      SOURCES/glibc-rh1505492-malloc_ptrdiff_t.patch
  52. 154
      SOURCES/glibc-rh1505492-malloc_size_t.patch
  53. 70
      SOURCES/glibc-rh1505492-nscd_stat.patch
  54. 3761
      SOURCES/glibc-rh1505492-ports-am33.patch
  55. 676
      SOURCES/glibc-rh1505492-ports-move-aarch64.patch
  56. 1449
      SOURCES/glibc-rh1505492-ports-move-alpha.patch
  57. 959
      SOURCES/glibc-rh1505492-ports-move-arm.patch
  58. 613
      SOURCES/glibc-rh1505492-ports-move-hppa.patch
  59. 2029
      SOURCES/glibc-rh1505492-ports-move-ia64.patch
  60. 1589
      SOURCES/glibc-rh1505492-ports-move-m68k.patch
  61. 1331
      SOURCES/glibc-rh1505492-ports-move-mips.patch
  62. 290
      SOURCES/glibc-rh1505492-ports-move-powerpc.patch
  63. 1102
      SOURCES/glibc-rh1505492-ports-move-tile.patch
  64. 83
      SOURCES/glibc-rh1505492-powerpc-sotruss.patch
  65. 54
      SOURCES/glibc-rh1505492-prototypes-1.patch
  66. 777
      SOURCES/glibc-rh1505492-prototypes-10.patch
  67. 10109
      SOURCES/glibc-rh1505492-prototypes-11.patch
  68. 3646
      SOURCES/glibc-rh1505492-prototypes-12.patch
  69. 1329
      SOURCES/glibc-rh1505492-prototypes-13.patch
  70. 408
      SOURCES/glibc-rh1505492-prototypes-14.patch
  71. 442
      SOURCES/glibc-rh1505492-prototypes-15.patch
  72. 1736
      SOURCES/glibc-rh1505492-prototypes-16.patch
  73. 1358
      SOURCES/glibc-rh1505492-prototypes-17.patch
  74. 261
      SOURCES/glibc-rh1505492-prototypes-18.patch
  75. 20
      SOURCES/glibc-rh1505492-prototypes-2.patch
  76. 1222
      SOURCES/glibc-rh1505492-prototypes-3.patch
  77. 127
      SOURCES/glibc-rh1505492-prototypes-4.patch
  78. 192
      SOURCES/glibc-rh1505492-prototypes-5.patch
  79. 81
      SOURCES/glibc-rh1505492-prototypes-6.patch
  80. 34
      SOURCES/glibc-rh1505492-prototypes-7.patch
  81. 35
      SOURCES/glibc-rh1505492-prototypes-8.patch
  82. 420
      SOURCES/glibc-rh1505492-prototypes-9.patch
  83. 143
      SOURCES/glibc-rh1505492-prototypes-Xat.patch
  84. 52
      SOURCES/glibc-rh1505492-prototypes-activate.patch
  85. 25
      SOURCES/glibc-rh1505492-prototypes-bzero.patch
  86. 23
      SOURCES/glibc-rh1505492-prototypes-ctermid.patch
  87. 41
      SOURCES/glibc-rh1505492-prototypes-debug.patch
  88. 25
      SOURCES/glibc-rh1505492-prototypes-execve.patch
  89. 41
      SOURCES/glibc-rh1505492-prototypes-gettimeofday.patch
  90. 23
      SOURCES/glibc-rh1505492-prototypes-getttynam.patch
  91. 725
      SOURCES/glibc-rh1505492-prototypes-intl.patch
  92. 23
      SOURCES/glibc-rh1505492-prototypes-libc_fatal.patch
  93. 25
      SOURCES/glibc-rh1505492-prototypes-memchr.patch
  94. 25
      SOURCES/glibc-rh1505492-prototypes-no_cancellation.patch
  95. 25
      SOURCES/glibc-rh1505492-prototypes-powerpc-memmove.patch
  96. 78
      SOURCES/glibc-rh1505492-prototypes-powerpc-pread-pwrite.patch
  97. 24
      SOURCES/glibc-rh1505492-prototypes-powerpc-wcscpy.patch
  98. 113
      SOURCES/glibc-rh1505492-prototypes-powerpc-wordcopy.patch
  99. 39
      SOURCES/glibc-rh1505492-prototypes-putXent.patch
  100. 41
      SOURCES/glibc-rh1505492-prototypes-readv-writev.patch
  101. Some files were not shown because too many files have changed in this diff Show More

455
SOURCES/glibc-rh1307241-1.patch

@ -0,0 +1,455 @@ @@ -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)

56
SOURCES/glibc-rh1307241-2.patch

@ -0,0 +1,56 @@ @@ -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)

18
SOURCES/glibc-rh1349967.patch

@ -0,0 +1,18 @@ @@ -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

32
SOURCES/glibc-rh1349982.patch

@ -0,0 +1,32 @@ @@ -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);

506
SOURCES/glibc-rh1372304-1.patch

@ -0,0 +1,506 @@ @@ -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 */

46
SOURCES/glibc-rh1372304-2.patch

@ -0,0 +1,46 @@ @@ -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);

107
SOURCES/glibc-rh1401665-0.patch

@ -0,0 +1,107 @@ @@ -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))

35
SOURCES/glibc-rh1401665-1a.patch

@ -0,0 +1,35 @@ @@ -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) \
({ \

1642
SOURCES/glibc-rh1401665-1b.patch

File diff suppressed because it is too large Load Diff

26
SOURCES/glibc-rh1401665-1c.patch

@ -0,0 +1,26 @@ @@ -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,

49
SOURCES/glibc-rh1401665-2.patch

@ -0,0 +1,49 @@ @@ -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));

406
SOURCES/glibc-rh1401665-3.patch

@ -0,0 +1,406 @@ @@ -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;

208
SOURCES/glibc-rh1401665-4.patch

@ -0,0 +1,208 @@ @@ -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>

176
SOURCES/glibc-rh1401665-5.patch

@ -0,0 +1,176 @@ @@ -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"

28
SOURCES/glibc-rh1447808-0.patch

@ -0,0 +1,28 @@ @@ -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) \

404
SOURCES/glibc-rh1447808-1.patch

@ -0,0 +1,404 @@ @@ -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);
}

18
SOURCES/glibc-rh1447808-2.patch

@ -0,0 +1,18 @@ @@ -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>

418
SOURCES/glibc-rh1448107.patch

@ -0,0 +1,418 @@ @@ -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 \

339
SOURCES/glibc-rh1457479-1.patch

@ -0,0 +1,339 @@ @@ -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

215
SOURCES/glibc-rh1457479-2.patch

@ -0,0 +1,215 @@ @@ -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
};

128
SOURCES/glibc-rh1457479-3.patch

@ -0,0 +1,128 @@ @@ -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
};

98
SOURCES/glibc-rh1457479-4.patch

@ -0,0 +1,98 @@ @@ -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

43
SOURCES/glibc-rh1461231.patch

@ -0,0 +1,43 @@ @@ -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

12
SOURCES/glibc-rh1471405.patch

@ -0,0 +1,12 @@ @@ -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~

33
SOURCES/glibc-rh1476120.patch

@ -0,0 +1,33 @@ @@ -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
{

21
SOURCES/glibc-rh1505451.patch

@ -0,0 +1,21 @@ @@ -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

71
SOURCES/glibc-rh1505477.patch

@ -0,0 +1,71 @@ @@ -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)

75
SOURCES/glibc-rh1505492-address.patch

@ -0,0 +1,75 @@ @@ -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"

304
SOURCES/glibc-rh1505492-bounded-1.patch

@ -0,0 +1,304 @@ @@ -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

985
SOURCES/glibc-rh1505492-bounded-10.patch

@ -0,0 +1,985 @@ @@ -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);

592
SOURCES/glibc-rh1505492-bounded-11.patch

@ -0,0 +1,592 @@ @@ -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

113
SOURCES/glibc-rh1505492-bounded-12.patch

@ -0,0 +1,113 @@ @@ -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

520
SOURCES/glibc-rh1505492-bounded-13.patch

@ -0,0 +1,520 @@ @@ -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)

1991
SOURCES/glibc-rh1505492-bounded-14.patch

File diff suppressed because it is too large Load Diff

2287
SOURCES/glibc-rh1505492-bounded-15.patch

File diff suppressed because it is too large Load Diff

1837
SOURCES/glibc-rh1505492-bounded-16.patch

File diff suppressed because it is too large Load Diff

1220
SOURCES/glibc-rh1505492-bounded-17.patch

File diff suppressed because it is too large Load Diff

274
SOURCES/glibc-rh1505492-bounded-2.patch

@ -0,0 +1,274 @@ @@ -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);
}

269
SOURCES/glibc-rh1505492-bounded-3.patch

@ -0,0 +1,269 @@ @@ -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)

121
SOURCES/glibc-rh1505492-bounded-4.patch

@ -0,0 +1,121 @@ @@ -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>

168
SOURCES/glibc-rh1505492-bounded-5.patch

@ -0,0 +1,168 @@ @@ -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;
}

726
SOURCES/glibc-rh1505492-bounded-6.patch

@ -0,0 +1,726 @@ @@ -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;

68
SOURCES/glibc-rh1505492-bounded-7.patch

@ -0,0 +1,68 @@ @@ -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)

956
SOURCES/glibc-rh1505492-bounded-8.patch

@ -0,0 +1,956 @@ @@ -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;

1144
SOURCES/glibc-rh1505492-bounded-9.patch

File diff suppressed because it is too large Load Diff

173
SOURCES/glibc-rh1505492-bsd-flatten.patch

@ -0,0 +1,173 @@ @@ -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>

37
SOURCES/glibc-rh1505492-deprecated-1.patch

@ -0,0 +1,37 @@ @@ -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;
}

50
SOURCES/glibc-rh1505492-deprecated-2.patch

@ -0,0 +1,50 @@ @@ -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",

190
SOURCES/glibc-rh1505492-diag.patch

@ -0,0 +1,190 @@ @@ -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);

69
SOURCES/glibc-rh1505492-getlogin.patch

@ -0,0 +1,69 @@ @@ -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*

24
SOURCES/glibc-rh1505492-malloc_ptrdiff_t.patch

@ -0,0 +1,24 @@ @@ -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)

154
SOURCES/glibc-rh1505492-malloc_size_t.patch

@ -0,0 +1,154 @@ @@ -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;

70
SOURCES/glibc-rh1505492-nscd_stat.patch

@ -0,0 +1,70 @@ @@ -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)))
{

3761
SOURCES/glibc-rh1505492-ports-am33.patch

File diff suppressed because it is too large Load Diff

676
SOURCES/glibc-rh1505492-ports-move-aarch64.patch

@ -0,0 +1,676 @@ @@ -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

1449
SOURCES/glibc-rh1505492-ports-move-alpha.patch

File diff suppressed because it is too large Load Diff

959
SOURCES/glibc-rh1505492-ports-move-arm.patch

@ -0,0 +1,959 @@ @@ -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

613
SOURCES/glibc-rh1505492-ports-move-hppa.patch

@ -0,0 +1,613 @@ @@ -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

2029
SOURCES/glibc-rh1505492-ports-move-ia64.patch

File diff suppressed because it is too large Load Diff

1589
SOURCES/glibc-rh1505492-ports-move-m68k.patch

File diff suppressed because it is too large Load Diff

1331
SOURCES/glibc-rh1505492-ports-move-mips.patch

File diff suppressed because it is too large Load Diff

290
SOURCES/glibc-rh1505492-ports-move-powerpc.patch

@ -0,0 +1,290 @@ @@ -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

1102
SOURCES/glibc-rh1505492-ports-move-tile.patch

File diff suppressed because it is too large Load Diff

83
SOURCES/glibc-rh1505492-powerpc-sotruss.patch

@ -0,0 +1,83 @@ @@ -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;
+}

54
SOURCES/glibc-rh1505492-prototypes-1.patch

@ -0,0 +1,54 @@ @@ -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;

777
SOURCES/glibc-rh1505492-prototypes-10.patch

@ -0,0 +1,777 @@ @@ -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,

10109
SOURCES/glibc-rh1505492-prototypes-11.patch

File diff suppressed because it is too large Load Diff

3646
SOURCES/glibc-rh1505492-prototypes-12.patch

File diff suppressed because it is too large Load Diff

1329
SOURCES/glibc-rh1505492-prototypes-13.patch

File diff suppressed because it is too large Load Diff

408
SOURCES/glibc-rh1505492-prototypes-14.patch

@ -0,0 +1,408 @@ @@ -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)
{

442
SOURCES/glibc-rh1505492-prototypes-15.patch

@ -0,0 +1,442 @@ @@ -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;

1736
SOURCES/glibc-rh1505492-prototypes-16.patch

File diff suppressed because it is too large Load Diff

1358
SOURCES/glibc-rh1505492-prototypes-17.patch

File diff suppressed because it is too large Load Diff

261
SOURCES/glibc-rh1505492-prototypes-18.patch

@ -0,0 +1,261 @@ @@ -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 *),

20
SOURCES/glibc-rh1505492-prototypes-2.patch

@ -0,0 +1,20 @@ @@ -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)

1222
SOURCES/glibc-rh1505492-prototypes-3.patch

File diff suppressed because it is too large Load Diff

127
SOURCES/glibc-rh1505492-prototypes-4.patch

@ -0,0 +1,127 @@ @@ -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

192
SOURCES/glibc-rh1505492-prototypes-5.patch

@ -0,0 +1,192 @@ @@ -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;

81
SOURCES/glibc-rh1505492-prototypes-6.patch

@ -0,0 +1,81 @@ @@ -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));
}

34
SOURCES/glibc-rh1505492-prototypes-7.patch

@ -0,0 +1,34 @@ @@ -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;

35
SOURCES/glibc-rh1505492-prototypes-8.patch

@ -0,0 +1,35 @@ @@ -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);
}

420
SOURCES/glibc-rh1505492-prototypes-9.patch

@ -0,0 +1,420 @@ @@ -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;

143
SOURCES/glibc-rh1505492-prototypes-Xat.patch

@ -0,0 +1,143 @@ @@ -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;

52
SOURCES/glibc-rh1505492-prototypes-activate.patch

@ -0,0 +1,52 @@ @@ -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

25
SOURCES/glibc-rh1505492-prototypes-bzero.patch

@ -0,0 +1,25 @@ @@ -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;

23
SOURCES/glibc-rh1505492-prototypes-ctermid.patch

@ -0,0 +1,23 @@ @@ -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];

41
SOURCES/glibc-rh1505492-prototypes-debug.patch

@ -0,0 +1,41 @@ @@ -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;

25
SOURCES/glibc-rh1505492-prototypes-execve.patch

@ -0,0 +1,25 @@ @@ -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);
}

41
SOURCES/glibc-rh1505492-prototypes-gettimeofday.patch

@ -0,0 +1,41 @@ @@ -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);
}

23
SOURCES/glibc-rh1505492-prototypes-getttynam.patch

@ -0,0 +1,23 @@ @@ -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;

725
SOURCES/glibc-rh1505492-prototypes-intl.patch

@ -0,0 +1,725 @@ @@ -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;

23
SOURCES/glibc-rh1505492-prototypes-libc_fatal.patch

@ -0,0 +1,23 @@ @@ -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)

25
SOURCES/glibc-rh1505492-prototypes-memchr.patch

@ -0,0 +1,25 @@ @@ -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;

25
SOURCES/glibc-rh1505492-prototypes-no_cancellation.patch

@ -0,0 +1,25 @@ @@ -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);
}

25
SOURCES/glibc-rh1505492-prototypes-powerpc-memmove.patch

@ -0,0 +1,25 @@ @@ -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;

78
SOURCES/glibc-rh1505492-prototypes-powerpc-pread-pwrite.patch

@ -0,0 +1,78 @@ @@ -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;

24
SOURCES/glibc-rh1505492-prototypes-powerpc-wcscpy.patch

@ -0,0 +1,24 @@ @@ -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;

113
SOURCES/glibc-rh1505492-prototypes-powerpc-wordcopy.patch

@ -0,0 +1,113 @@ @@ -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;

39
SOURCES/glibc-rh1505492-prototypes-putXent.patch

@ -0,0 +1,39 @@ @@ -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)
{

41
SOURCES/glibc-rh1505492-prototypes-readv-writev.patch

@ -0,0 +1,41 @@ @@ -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;

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save