* [gentoo-commits] gentoo commit in src/patchsets/glibc/2.24: 00_all_0001-x86-Use-sysdep.o-from-libc.a-in-static-libraries.patch 00_all_0002-malloc-Preserve-arena-free-list-thread-count-invaria.patch 00_all_0003-Update-from-Translation-Project.patch 00_all_0004-powerpc-fix-ifunc-sel.h-with-GCC-6.patch 00_all_0005-powerpc-fix-ifunc-sel.h-fix-asm-constraints-and-clob.patch 00_all_0006-Fix-sNaN-handling-in-nearbyint-on-32-bit-sparc.patch 00_all_0007-sparc-remove-fdim-sparc-specific-implementations.patch 00_all_0008-Do-not-override-objects-in-libc.a-in-other-static-li.patch 00_all_0009-arm-mark-__startcontext-as-.cantunwind-bug-20435.patch 00_all_0010-argp-Do-not-override-GCC-keywords-with-macros-BZ-169.patch 00_all_0011-nptl-tst-once5-Reduce-time-to-expected-failure.patch 00_all_0012-NaCl-Fix-compile-error-in-clock-function.patch 00_all_0013-Fix-generic-wait3-after-union-wait_status-removal.patch 00_all_0014-NaCl-Fix-compile-error-for-__dup-after-libc_hidden_p.patch 00_all_0015-N aCl-Fix-libc.abil ist-missing-GLIBC_2.24-A.patch 00_all_0016-powerpc-Fix-POWER9-implies.patch 00_all_0017-posix-Correctly-enable-disable-cancellation-on-Linux.patch 00_all_0018-posix-Correctly-block-unblock-all-signals-on-Linux-p.patch 00_all_0019-powerpc-Regenerate-ULPs.patch 00_all_0020-Fix-Linux-sh4-pread-pwrite-argument-passing.patch 00_all_0021-Fix-cmpli-usage-in-power6-memset.patch 00_all_0022-gconv.h-fix-build-with-GCC-7.patch 00_all_0023-Fix-linknamespace-parallel-test-failures.patch 00_all_0024-disable-ldconfig-during-install.patch 00_all_0025-reload-etc-resolv.conf-when-it-has-changed.patch 00_all_0026-rtld-do-not-ignore-arch-specific-CFLAGS.patch 00_all_0027-gentoo-support-running-tests-under-sandbox.patch 00_all_0028-sys-types.h-drop-sys-sysmacros.h-include.patch README.history
@ 2016-11-14 20:06 Mike Frysinger (vapier)
0 siblings, 0 replies; only message in thread
From: Mike Frysinger (vapier) @ 2016-11-14 20:06 UTC (permalink / raw
To: gentoo-commits
vapier 16/11/14 20:06:01
Added:
00_all_0001-x86-Use-sysdep.o-from-libc.a-in-static-libraries.patch
00_all_0002-malloc-Preserve-arena-free-list-thread-count-invaria.patch
00_all_0003-Update-from-Translation-Project.patch
00_all_0004-powerpc-fix-ifunc-sel.h-with-GCC-6.patch
00_all_0005-powerpc-fix-ifunc-sel.h-fix-asm-constraints-and-clob.patch
00_all_0006-Fix-sNaN-handling-in-nearbyint-on-32-bit-sparc.patch
00_all_0007-sparc-remove-fdim-sparc-specific-implementations.patch
00_all_0008-Do-not-override-objects-in-libc.a-in-other-static-li.patch
00_all_0009-arm-mark-__startcontext-as-.cantunwind-bug-20435.patch
00_all_0010-argp-Do-not-override-GCC-keywords-with-macros-BZ-169.patch
00_all_0011-nptl-tst-once5-Reduce-time-to-expected-failure.patch
00_all_0012-NaCl-Fix-compile-error-in-clock-function.patch
00_all_0013-Fix-generic-wait3-after-union-wait_status-removal.patch
00_all_0014-NaCl-Fix-compile-error-for-__dup-after-libc_hidden_p.patch
00_all_0015-NaCl-Fix-libc.abilist-missing-GLIBC_2.24-A.patch
00_all_0016-powerpc-Fix-POWER9-implies.patch
00_all_0017-posix-Correctly-enable-disable-cancellation-on-Linux.patch
00_all_0018-posix-Correctly-block-unblock-all-signals-on-Linux-p.patch
00_all_0019-powerpc-Regenerate-ULPs.patch
00_all_0020-Fix-Linux-sh4-pread-pwrite-argument-passing.patch
00_all_0021-Fix-cmpli-usage-in-power6-memset.patch
00_all_0022-gconv.h-fix-build-with-GCC-7.patch
00_all_0023-Fix-linknamespace-parallel-test-failures.patch
00_all_0024-disable-ldconfig-during-install.patch
00_all_0025-reload-etc-resolv.conf-when-it-has-changed.patch
00_all_0026-rtld-do-not-ignore-arch-specific-CFLAGS.patch
00_all_0027-gentoo-support-running-tests-under-sandbox.patch
00_all_0028-sys-types.h-drop-sys-sysmacros.h-include.patch
README.history
Log:
initial 2.24 patchset
Revision Changes Path
1.1 src/patchsets/glibc/2.24/00_all_0001-x86-Use-sysdep.o-from-libc.a-in-static-libraries.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0001-x86-Use-sysdep.o-from-libc.a-in-static-libraries.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0001-x86-Use-sysdep.o-from-libc.a-in-static-libraries.patch?rev=1.1&content-type=text/plain
Index: 00_all_0001-x86-Use-sysdep.o-from-libc.a-in-static-libraries.patch
===================================================================
From d39c4a5ec099548f4f7864f29873e15f5ceb93e7 Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
Date: Thu, 4 Aug 2016 11:10:57 +0200
Subject: [PATCH] x86: Use sysdep.o from libc.a in static libraries
Static libraries can use the sysdep.o copy in libc.a without
a performance penalty. This results in a visible difference
if libpthread.a is relinked into a single object file (which
is needed to support libraries which check for the presence
of certain symbols to enable threading support, which generally
fails with static linking unless libpthread.a is relinked).
(cherry picked from commit e67330ab57bfd0f964539576ae7dcc658c456724)
---
ChangeLog | 7 +++++++
sysdeps/unix/sysv/linux/i386/Makefile | 2 ++
2 files changed, 9 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index c44c92609406..5dc53ac586d2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2016-08-04 Florian Weimer <fweimer@redhat.com>
+
+ Use sysdep.o from libc.a in static libraries.
+ * sysdeps/unix/sysv/linux/i386/Makefile
+ (libpthread-shared-only-routines): Add sysdep.
+ (librt-shared-only-routines): Likewise.
+
2016-08-01 Carlos O'Donell <carlos@redhat.com>
* version.h (RELEASE): Set to "stable"
diff --git a/sysdeps/unix/sysv/linux/i386/Makefile b/sysdeps/unix/sysv/linux/i386/Makefile
index 71ba61e9d75d..b015ff7c760c 100644
--- a/sysdeps/unix/sysv/linux/i386/Makefile
+++ b/sysdeps/unix/sysv/linux/i386/Makefile
@@ -48,9 +48,11 @@ endif
ifeq ($(subdir),nptl)
# pull in __syscall_error routine
libpthread-routines += sysdep
+libpthread-shared-only-routines += sysdep
endif
ifeq ($(subdir),rt)
# pull in __syscall_error routine
librt-routines += sysdep
+librt-shared-only-routines += sysdep
endif
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0002-malloc-Preserve-arena-free-list-thread-count-invaria.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0002-malloc-Preserve-arena-free-list-thread-count-invaria.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0002-malloc-Preserve-arena-free-list-thread-count-invaria.patch?rev=1.1&content-type=text/plain
Index: 00_all_0002-malloc-Preserve-arena-free-list-thread-count-invaria.patch
===================================================================
From 96cd434f66849f0d250869c0da846920b6081425 Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
Date: Tue, 2 Aug 2016 12:24:50 +0200
Subject: [PATCH] malloc: Preserve arena free list/thread count invariant [BZ
#20370]
It is necessary to preserve the invariant that if an arena is
on the free list, it has thread attach count zero. Otherwise,
when arena_thread_freeres sees the zero attach count, it will
add it, and without the invariant, an arena could get pushed
to the list twice, resulting in a cycle.
One possible execution trace looks like this:
Thread 1 examines free list and observes it as empty.
Thread 2 exits and adds its arena to the free list,
with attached_threads == 0).
Thread 1 selects this arena in reused_arena (not from the free list).
Thread 1 increments attached_threads and attaches itself.
(The arena remains on the free list.)
Thread 1 exits, decrements attached_threads,
and adds the arena to the free list.
The final step creates a cycle in the usual way (by overwriting the
next_free member with the former list head, while there is another
list item pointing to the arena structure).
tst-malloc-thread-exit exhibits this issue, but it was only visible
with a debugger because the incorrect fix in bug 19243 removed
the assert from get_free_list.
(cherry picked from commit f88aab5d508c13ae4a88124e65773d7d827cd47b)
---
ChangeLog | 8 ++++++++
malloc/arena.c | 41 ++++++++++++++++++++++++++++++++++++-----
2 files changed, 44 insertions(+), 5 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 5dc53ac586d2..a538bea8faec 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2016-08-02 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #20370]
+ * malloc/arena.c (get_free_list): Update comment. Assert that
+ arenas on the free list have no attached threads.
+ (remove_from_free_list): New function.
+ (reused_arena): Call it.
+
2016-08-04 Florian Weimer <fweimer@redhat.com>
Use sysdep.o from libc.a in static libraries.
diff --git a/malloc/arena.c b/malloc/arena.c
index 229783f3b7e4..4e16593d8bf0 100644
--- a/malloc/arena.c
+++ b/malloc/arena.c
@@ -702,8 +702,7 @@ _int_new_arena (size_t size)
}
-/* Remove an arena from free_list. The arena may be in use because it
- was attached concurrently to a thread by reused_arena below. */
+/* Remove an arena from free_list. */
static mstate
get_free_list (void)
{
@@ -718,7 +717,8 @@ get_free_list (void)
free_list = result->next_free;
/* The arena will be attached to this thread. */
- ++result->attached_threads;
+ assert (result->attached_threads == 0);
+ result->attached_threads = 1;
detach_arena (replaced_arena);
}
@@ -735,6 +735,26 @@ get_free_list (void)
return result;
}
+/* Remove the arena from the free list (if it is present).
+ free_list_lock must have been acquired by the caller. */
+static void
+remove_from_free_list (mstate arena)
+{
+ mstate *previous = &free_list;
+ for (mstate p = free_list; p != NULL; p = p->next_free)
+ {
+ assert (p->attached_threads == 0);
+ if (p == arena)
+ {
+ /* Remove the requested arena from the list. */
+ *previous = p->next_free;
+ break;
+ }
+ else
+ previous = &p->next_free;
+ }
+}
+
/* Lock and return an arena that can be reused for memory allocation.
Avoid AVOID_ARENA as we have already failed to allocate memory in
it and it is currently locked. */
@@ -782,14 +802,25 @@ reused_arena (mstate avoid_arena)
(void) mutex_lock (&result->mutex);
out:
- /* Attach the arena to the current thread. Note that we may have
- selected an arena which was on free_list. */
+ /* Attach the arena to the current thread. */
{
/* Update the arena thread attachment counters. */
mstate replaced_arena = thread_arena;
(void) mutex_lock (&free_list_lock);
detach_arena (replaced_arena);
+
+ /* We may have picked up an arena on the free list. We need to
+ preserve the invariant that no arena on the free list has a
+ positive attached_threads counter (otherwise,
+ arena_thread_freeres cannot use the counter to determine if the
+ arena needs to be put on the free list). We unconditionally
+ remove the selected arena from the free list. The caller of
+ reused_arena checked the free list and observed it to be empty,
+ so the list is very short. */
+ remove_from_free_list (result);
+
++result->attached_threads;
+
(void) mutex_unlock (&free_list_lock);
}
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0003-Update-from-Translation-Project.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0003-Update-from-Translation-Project.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0003-Update-from-Translation-Project.patch?rev=1.1&content-type=text/plain
Index: 00_all_0003-Update-from-Translation-Project.patch
===================================================================
From ea23815a795f72035262953dad5beb03e09c17dd Mon Sep 17 00:00:00 2001
From: Carlos O'Donell <carlos@systemhalted.org>
Date: Thu, 4 Aug 2016 12:21:42 -0400
Subject: [PATCH] Update from Translation Project.
---
ChangeLog | 6 +++
po/de.po | 6 +--
po/fi.po | 90 ++++++++++++++++++---------------------
po/sv.po | 143 ++++++++++++++++++++++++++++----------------------------------
4 files changed, 114 insertions(+), 131 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index a538bea8faec..84ae7a7af8d9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2016-08-04 Carlos O'Donell <carlos@redhat.com>
+
+ * po/de.po: Update from Translation Project.
+ * po/fi.po: Likewise.
+ * po/sv.po: Likewise.
+
2016-08-02 Florian Weimer <fweimer@redhat.com>
[BZ #20370]
diff --git a/po/de.po b/po/de.po
index 1383e8c4a9df..ca14c7e386e6 100644
--- a/po/de.po
+++ b/po/de.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU libc 2.22-pre1\n"
"POT-Creation-Date: 2015-07-31 00:10-0400\n"
-"PO-Revision-Date: 2015-08-31 18:30+0200\n"
+"PO-Revision-Date: 2016-04-22 18:44+0200\n"
"Last-Translator: Jochen Hein <jochen@jochen.org>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"Language: de\n"
@@ -4479,13 +4479,13 @@ msgstr ""
"%15s Cache ist dauerhaft\n"
"%15s Cache wird gemeinsam verwendet\n"
"%15Zu vorgeschlagene Größe\n"
-"%15Zu Gesamtröße des Data-Pools\n"
+"%15Zu Gesamtgröße des Data-Pools\n"
"%15Zu Benutzter Speicher im Data-Pool\n"
"%15lu Time to Live für positive Einträge in Sekunden\n"
"%15lu Time to Live für negative Einträge in Sekunden\n"
"%15<PRIuMAX> Cache-Hits bei positiven Einträgen\n"
"%15<PRIuMAX> Cache-Hits bei positiven Einträgen\n"
-"%15<PRIuMAX> Cache-Misses bei positiven Einträgen\n"
+"%15<PRIuMAX> Cache-Misses bei positiven Einträgen\n"
"%15<PRIuMAX> Cache-Misses bei negativen Einträgen\n"
"%15lu%% Cache-Hit Verhältnis\n"
"%15zu aktuelle Anzahl der Werte im Cache\n"
diff --git a/po/fi.po b/po/fi.po
index 17cb3e3e1da2..8a2ab8358c6e 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -24,16 +24,16 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: libc 2.21-pre1\n"
+"Project-Id-Version: libc 2.22-pre1\n"
"POT-Creation-Date: 2015-07-31 00:10-0400\n"
-"PO-Revision-Date: 2015-07-28 20:29+0300\n"
+"PO-Revision-Date: 2016-05-26 21:14+0300\n"
"Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.8.3\n"
+"X-Generator: Poedit 1.8.7\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: argp/argp-help.c:227
@@ -126,7 +126,7 @@ msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n"
msgstr "%s%s%s:%u: %s%sOdottamaton virhe: %s.\n"
#: assert/assert.c:101
-#, fuzzy, c-format
+#, c-format
msgid ""
"%s%s%s:%u: %s%sAssertion `%s' failed.\n"
"%n"
@@ -169,12 +169,12 @@ msgstr ""
#: malloc/memusagestat.c:563 nss/getent.c:973 nss/makedb.c:369
#: posix/getconf.c:486 sunrpc/rpcinfo.c:691
#: sysdeps/unix/sysv/linux/lddlibc4.c:61
-#, fuzzy, c-format
+#, c-format
msgid ""
"For bug reporting instructions, please see:\n"
"%s.\n"
msgstr ""
-"Ohjeet ohjelmistovioista ilmoittamiseen ovat osoitteessa\n"
+"Katso ohjeet vikailmoitusten tekemiseen osoitteesta:\n"
"%s.\n"
#: catgets/gencat.c:245 debug/pcprofiledump.c:225 debug/xtrace.sh:64
@@ -321,9 +321,8 @@ msgstr "Käyttö: xtrace [VALITSIN]... OHJELMA [OHJELMANVALITSIN]...\\n"
#: debug/xtrace.sh:32 elf/sotruss.sh:56 elf/sotruss.sh:67 elf/sotruss.sh:135
#: malloc/memusage.sh:26
-#, fuzzy
msgid "Try \\`%s --help' or \\`%s --usage' for more information.\\n"
-msgstr "Kokeile ”%s --help” tai ”%s --usage” saadaksesi lisää tietoa.\n"
+msgstr "Kokeile ”%s --help” tai ”%s --usage” saadaksesi lisää tietoa.\\n"
#: debug/xtrace.sh:38
#, fuzzy
@@ -594,9 +593,8 @@ msgid "cannot enable executable stack as shared object requires"
msgstr "jaettua objektikahvaa ei voi luoda"
#: elf/dl-load.c:1339
-#, fuzzy
msgid "cannot close file descriptor"
-msgstr "tiedostoa %s ei voi sulkea"
+msgstr "tiedostokahvaa ei voi sulkea"
#: elf/dl-load.c:1568
msgid "file too short"
@@ -796,9 +794,8 @@ msgid "Format to use: new, old or compat (default)"
msgstr "Käytettävä muoto: ”new”, ”old” tai ”compat” (oletus)"
#: elf/ldconfig.c:151
-#, fuzzy
msgid "Ignore auxiliary cache file"
-msgstr "Käytä CACHEa välimuistitiedostona"
+msgstr "Jätä huomiotta apuvälimuistitiedosto"
#: elf/ldconfig.c:159
msgid "Configure Dynamic Linker Run Time Bindings."
@@ -1087,9 +1084,9 @@ msgid "invalid process ID '%s'"
msgstr "virheellinen prosessi-ID ”%s”"
#: elf/pldd.c:120
-#, fuzzy, c-format
+#, c-format
msgid "cannot open %s"
-msgstr "laitetta %s ei voi avata"
+msgstr "tiedostoa %s ei voi avata"
#: elf/pldd.c:152
#, fuzzy, c-format
@@ -1102,24 +1099,24 @@ msgid "cannot prepare reading %s/task"
msgstr "ei voi avata laitetta %s lukutilaan"
#: elf/pldd.c:168
-#, fuzzy, c-format
+#, c-format
msgid "invalid thread ID '%s'"
-msgstr "virheellinen prosessi-ID ”%s”"
+msgstr "virheellinen säie-ID ”%s”"
#: elf/pldd.c:179
-#, fuzzy, c-format
+#, c-format
msgid "cannot attach to process %lu"
-msgstr "tiedostoa ”%s” ei voi avata"
+msgstr "ei voida kiinnittyä prosessiin %lu"
#: elf/pldd.c:294
#, c-format
msgid "cannot get information about process %lu"
-msgstr ""
+msgstr "tietojen saaminen prosessista %lu ei onnistu"
#: elf/pldd.c:307
-#, fuzzy, c-format
+#, c-format
msgid "process %lu is no ELF program"
-msgstr "ohjelma %lu ei ole käytettävissä\n"
+msgstr "prosessi %lu ei ole ELF-ohjelma"
#: elf/readelflib.c:34
#, c-format
@@ -1203,7 +1200,7 @@ msgstr "%s kohde ei saa olla hakemisto\n"
#: elf/sln.c:184
#, c-format
msgid "%s: failed to remove the old destination\n"
-msgstr ""
+msgstr "%s: vanhan kohteen poistaminen epäonnistui\n"
#: elf/sln.c:192
#, c-format
@@ -1237,9 +1234,8 @@ msgid "Mandatory arguments to long options are also mandatory for any correspond
msgstr "Pakolliset argumentit pitkille valitsimille ovat pakollisia kaikille vastaaville lyhyille valitsimille.\\n"
#: elf/sotruss.sh:55
-#, fuzzy
msgid "%s: option requires an argument -- '%s'\\n"
-msgstr "%s: valitsin ”%s” vaatii argumentin\n"
+msgstr "%s: valitsin vaatii argumentin -- ”%c”\\n"
#: elf/sotruss.sh:61
msgid "%s: option is ambiguous; possibilities:"
@@ -1507,7 +1503,6 @@ msgid "unknown iconv() error %d"
msgstr "tuntematon iconv()-virhe %d"
#: iconv/iconv_prog.c:791
-#, fuzzy
msgid ""
"The following list contains all the coded character sets known. This does\n"
"not necessarily mean that all combinations of these names can be used for\n"
@@ -1516,9 +1511,9 @@ msgid ""
"\n"
" "
msgstr ""
-"Seuraavassa listassa ovat kaikki tunnetut koodatut merkistöt. Se ei\n"
+"Seuraavassa listassa ovat kaikki tunnetut koodatut merkistöt. Tämä ei\n"
"kuitenkaan välttämättä tarkoita sitä, että kaikkia näiden nimien\n"
-"yhdistelmiä voidaan käyttää FROM- ja TO-komentoriviparametreina. Yksi\n"
+"yhdistelmiä voisi käyttää FROM- ja TO-komentoriviparametreina. Yksi\n"
"koodattu merkistö voi olla listalla useilla eri nimillä (aliaksilla).\n"
"\n"
" "
@@ -2733,14 +2728,12 @@ msgid "locale.alias file to consult when making archive"
msgstr "Arkistoa luotaessa käytettävä locale.alias-tiedosto"
#: locale/programs/localedef.c:150
-#, fuzzy
msgid "Generate little-endian output"
-msgstr "Tuota little-endian-koodia"
+msgstr "Tuota little-endian-muotoa"
#: locale/programs/localedef.c:152
-#, fuzzy
msgid "Generate big-endian output"
-msgstr "Tuota big-endian-koodia"
+msgstr "Tuota big-endian-muotoa"
#: locale/programs/localedef.c:157
msgid "Compile locale specification"
@@ -4275,10 +4268,9 @@ msgid ""
msgstr ""
#: nscd/nscd.c:635
-#, fuzzy, c-format
-#| msgid "lstat failed"
+#, c-format
msgid "'wait' failed\n"
-msgstr "tiedoston tilan luku epäonnistui"
+msgstr "”wait” epäonnistui\n"
#: nscd/nscd.c:642
#, c-format
@@ -4670,9 +4662,9 @@ msgid "cannot create temporary file"
msgstr "tilapäistä tiedostoa ei voi luoda"
#: nss/makedb.c:304
-#, fuzzy, c-format
+#, c-format
msgid "cannot stat newly created file"
-msgstr "tiedoston ”%s” tilaa ei voi lukea: %s"
+msgstr "juuri luodun tiedoston tilaa ei voi lukea"
#: nss/makedb.c:315
#, c-format
@@ -4680,9 +4672,9 @@ msgid "cannot rename temporary file"
msgstr "tilapäistä tiedostoa ei voi nimetä uudelleen"
#: nss/makedb.c:531 nss/makedb.c:554
-#, fuzzy, c-format
+#, c-format
msgid "cannot create search tree"
-msgstr "hakupolulle ei voi luoda välimuistia"
+msgstr "hakupuuta ei voi luoda"
#: nss/makedb.c:560
msgid "duplicate key"
@@ -4699,9 +4691,9 @@ msgid "failed to write new database file"
msgstr "uuden tietokantatiedoston kirjoittaminen epäonnistui"
#: nss/makedb.c:812
-#, fuzzy, c-format
+#, c-format
msgid "cannot stat database file"
-msgstr "tiedoston ”%s” tilaa ei voi lukea: %s"
+msgstr "tietokantatiedoston tilaa ei voi lukea"
#: nss/makedb.c:817
#, fuzzy, c-format
@@ -4709,9 +4701,9 @@ msgid "cannot map database file"
msgstr "Karttatietokannassa ei ole enempää tietueita"
#: nss/makedb.c:820
-#, fuzzy, c-format
+#, c-format
msgid "file not a database file"
-msgstr "luettaessa profilointidatatiedoston tilaa"
+msgstr "tiedosto ei ole tietokantatiedosto"
#: nss/makedb.c:871
#, fuzzy, c-format
@@ -4726,7 +4718,7 @@ msgstr "Käyttö: %s [-v määrittely] muuttujanimi [polku]\n"
#: posix/getconf.c:403
#, c-format
msgid " %s -a [pathname]\n"
-msgstr ""
+msgstr " %s -a [polku]\n"
#: posix/getconf.c:479
#, c-format
@@ -5094,11 +5086,11 @@ msgstr "Laitetta irrotettu"
#: stdio-common/psiginfo.c:139
msgid "Signal sent by kill()"
-msgstr ""
+msgstr "Signaalin lähetti kill()"
#: stdio-common/psiginfo.c:142
msgid "Signal sent by sigqueue()"
-msgstr ""
+msgstr "Signaalin lähetti sigqueue()"
#: stdio-common/psiginfo.c:145
msgid "Signal generated by the expiration of a timer"
@@ -5114,7 +5106,7 @@ msgstr ""
#: stdio-common/psiginfo.c:157
msgid "Signal sent by tkill()"
-msgstr ""
+msgstr "Signaalin lähetti tkill()"
#: stdio-common/psiginfo.c:162
msgid "Signal generated by the completion of an asynchronous name lookup request"
@@ -5296,9 +5288,8 @@ msgid "Failed (unspecified error)"
msgstr "Epäonnistui (määrittelemätön virhe)"
#: sunrpc/clnt_raw.c:115
-#, fuzzy
msgid "clnt_raw.c: fatal header serialization error"
-msgstr "clnt_raw.c: vakava otsikon serialisointivirhe"
+msgstr "clnt_raw.c: vakava otsikon sarjallistamisvirhe"
#: sunrpc/pm_getmaps.c:77
msgid "pmap_getmaps.c: rpc problem"
@@ -6825,9 +6816,8 @@ msgid "Interrupted by a signal"
msgstr "Signaalin keskeyttämä"
#: sysdeps/posix/gai_strerror-strs.h:17
-#, fuzzy
msgid "Parameter string not correctly encoded"
-msgstr "Parametrimerkkijono on väärin koodattu"
+msgstr "Parametrimerkkijono ei ole koodattu oikein"
#: sysdeps/unix/sysv/linux/i386/readelflib.c:65
#, c-format
diff --git a/po/sv.po b/po/sv.po
index 49d1f23904d9..e046577b0847 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,13 +1,17 @@
# GNU libc message catalog for Swedish
-# Copyright © 1996, 1998, 2001, 2002, 2003, 2006, 2008, 2009, 2011, 2012, 2013, 2014, 2015 Free Software Foundation, Inc.
+# Copyright © 1996, 1998, 2001, 2002, 2003, 2006, 2008, 2009, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
# This file is distributed under the same license as the glibc package.
-# Jan Djärv <jan.h.d@swipnet.se>, 1996, 1998, 2001, 2002, 2003, 2006, 2007, 2008, 2009, 2011, 2012, 2013, 2014, 2015
+#
+# Jan Djärv <jan.h.d@swipnet.se>, 1996, 1998, 2001, 2002, 2003, 2006, 2007, 2008, 2009, 2011, 2012, 2013, 2014, 2015.
+# Göran Uddeborg <goeran@uddeborg.se>, 2016.
+#
+# $Revision: 1.1 $
msgid ""
msgstr ""
-"Project-Id-Version: libc 2.21-pre1\n"
+"Project-Id-Version: libc 2.22-pre1\n"
"POT-Creation-Date: 2015-07-31 00:10-0400\n"
-"PO-Revision-Date: 2015-01-24 10:35+0100\n"
-"Last-Translator: Jan Djärv <jan.h.d@swipnet.se>\n"
+"PO-Revision-Date: 2016-08-02 17:17+0200\n"
+"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
@@ -48,7 +52,7 @@ msgstr " [FLAGGA...]"
#: argp/argp-help.c:1643
#, c-format
msgid "Try `%s --help' or `%s --usage' for more information.\n"
-msgstr "Försök med \"%s --help\" eller \"%s --usage\" för mer information\n"
+msgstr "Försök med ”%s --help” eller ”%s --usage” för mer information.\n"
#: argp/argp-help.c:1671
#, c-format
@@ -304,11 +308,11 @@ msgstr "Användning: xtrace [FLAGGA]... PROGRAM [PROGRAMFLAGGA}...\\n"
#: debug/xtrace.sh:32 elf/sotruss.sh:56 elf/sotruss.sh:67 elf/sotruss.sh:135
#: malloc/memusage.sh:26
msgid "Try \\`%s --help' or \\`%s --usage' for more information.\\n"
-msgstr "Försök med \\\"%s --help\\\" eller \\\"%s --usage\\\" för mer information\\n"
+msgstr "Försök med ”%s --help” eller ”%s --usage” för mer information\\n"
#: debug/xtrace.sh:38
msgid "%s: option '%s' requires an argument.\\n"
-msgstr "%s: flaggan \\\"%s\\\" kräver ett argument\\n"
+msgstr "%s: flaggan ”%s” kräver ett argument.\\n"
#: debug/xtrace.sh:45
msgid ""
@@ -332,19 +336,17 @@ msgstr ""
" --usage Visa en kort hjälptext\n"
" -V,--version Visa versionsinformation och avsluta\n"
"\n"
-"Obligatoriska argument för långa flaggor är obligatoriska även för\n"
+"Obligatoriska argument för långa flaggor är obligatoriska även för\n"
"motsvarande korta.\n"
#: debug/xtrace.sh:57 elf/ldd.bash.in:55 elf/sotruss.sh:49
#: malloc/memusage.sh:64
msgid "For bug reporting instructions, please see:\\\\n%s.\\\\n"
-msgstr ""
-"För felrapporteringsinstruktioner, se:\\\\n%s.\\\\n\n"
-"Rapportera fel eller synpunkter på översättningen till <tp-sv@listor.tp-sv.se>.\\\\n"
+msgstr "För felrapporteringsinstruktioner, se:\\\\n%s.\\\\nRapportera fel eller synpunkter på översättningen till:\\\\n<tp-sv@listor.tp-sv.se>.\\\\n"
#: debug/xtrace.sh:125
msgid "xtrace: unrecognized option \\`$1'\\n"
-msgstr "xtrace: okänd flagga \"$1\"\\n"
+msgstr "xtrace: okänd flagga ”$1”\\n"
#: debug/xtrace.sh:138
msgid "No program name given\\n"
@@ -353,12 +355,12 @@ msgstr "Inget programnamn givet\\n"
#: debug/xtrace.sh:146
#, sh-format
msgid "executable \\`$program' not found\\n"
-msgstr "program \"$program\" hittades inte\\n"
+msgstr "program ”$program” hittades inte\\n"
#: debug/xtrace.sh:150
#, sh-format
msgid "\\`$program' is no executable\\n"
-msgstr "\"$program\" är inte en körbar binär\\n"
+msgstr "”$program” är inte en körbar binär\\n"
#: dlfcn/dlinfo.c:63
msgid "RTLD_SELF used in code not dynamically loaded"
@@ -396,7 +398,7 @@ msgstr ", OS ABI: %s %d.%d.%d"
#: elf/cache.c:157 elf/ldconfig.c:1340
#, c-format
msgid "Can't open cache file %s\n"
-msgstr "Kan inte öppna cache-fil \"%s\"\n"
+msgstr "Kan inte öppna cache-filen %s\n"
#: elf/cache.c:171
#, c-format
@@ -416,7 +418,7 @@ msgstr "%d bibliotek hittades i cache \"%s\"\n"
#: elf/cache.c:426
#, c-format
msgid "Can't create temporary cache file %s"
-msgstr "Kan inte skapa temporär cache-fil \"%s\""
+msgstr "Kan inte skapa en temporär cache-fil %s"
#: elf/cache.c:434 elf/cache.c:444 elf/cache.c:448 elf/cache.c:453
#, c-format
@@ -829,7 +831,7 @@ msgstr "Kan inte ta status (lstat) på %s"
#: elf/ldconfig.c:609
#, c-format
msgid "Ignored file %s since it is not a regular file."
-msgstr "Ignorerar fil %s eftersom den inte är en vanlig fil"
+msgstr "Ignorerar fil %s eftersom den inte är en vanlig fil."
#: elf/ldconfig.c:618
#, c-format
@@ -951,7 +953,7 @@ msgstr ""
#: elf/ldd.bash.in:80
msgid "ldd: option \\`$1' is ambiguous"
-msgstr "ldd: flaggan \"$1\" är tvetydig"
+msgstr "ldd: flaggan ”$1” är tvetydig"
#: elf/ldd.bash.in:87
msgid "unrecognized option"
@@ -959,7 +961,7 @@ msgstr "okänd flagga"
#: elf/ldd.bash.in:88 elf/ldd.bash.in:125
msgid "Try \\`ldd --help' for more information."
-msgstr "Försök med \"ldd --help\" för mer information"
+msgstr "Försök med \"ldd --help\" för mer information."
#: elf/ldd.bash.in:124
msgid "missing file arguments"
@@ -1028,10 +1030,9 @@ msgid "cannot read object name"
msgstr "kan inte läsa objektnamn"
#: elf/pldd-xx.c:219
-#, fuzzy, c-format
-#| msgid "cannot allocate memory for program header"
+#, c-format
msgid "cannot allocate buffer for object name"
-msgstr "kan inte allokera minne för programhuvud"
+msgstr "kan inte allokera en buffert för objektnamn"
#: elf/pldd.c:64
msgid "List dynamic shared objects loaded into process."
@@ -1212,11 +1213,11 @@ msgstr ""
#: elf/sotruss.sh:46
msgid "Mandatory arguments to long options are also mandatory for any corresponding\\nshort options.\\n"
-msgstr "Obligatoriska respektive valfria argument för långa flaggor är obligatoriska respektive\\nvalfria även för korta.\\n"
+msgstr "Obligatoriska respektive valfria argument för långa flaggor är obligatoriska\\nrespektive valfria även för korta.\\n"
#: elf/sotruss.sh:55
msgid "%s: option requires an argument -- '%s'\\n"
-msgstr "%s: flaggan kräver ett argument -- \\\"%s\\\"\\n"
+msgstr "%s: flaggan kräver ett argument — ”%s”\\n"
#: elf/sotruss.sh:61
msgid "%s: option is ambiguous; possibilities:"
@@ -1240,7 +1241,7 @@ msgstr ""
#: elf/sotruss.sh:134
msgid "%s: unrecognized option '%c%s'\\n"
-msgstr "%s: okänd flagga \\\"%c%s\\\"\\n"
+msgstr "%s: okänd flagga ”%c%s”\\n"
#: elf/sprof.c:77
msgid "Output selection:"
@@ -1260,7 +1261,7 @@ msgstr "generera anropsgraf"
#: elf/sprof.c:89
msgid "Read and display shared object profiling data."
-msgstr "Läs och visa profildata för delat objekt"
+msgstr "Läs och visa profildata för delat objekt."
#: elf/sprof.c:94
msgid "SHOBJ [PROFDATA]"
@@ -1622,7 +1623,7 @@ msgstr "Fel: .netrc kan läsas av andra."
#: inet/ruserpass.c:185
msgid "Remove password or make file unreadable by others."
-msgstr "Ta bort lösenord eller gör filen oläsbar för andra"
+msgstr "Ta bort lösenord eller gör filen oläsbar för andra."
#: inet/ruserpass.c:277
#, c-format
@@ -2182,12 +2183,12 @@ msgstr "Inget namn definierat i teckenuppsättning"
#: locale/programs/ld-ctype.c:479
#, c-format
msgid "character L'\\u%0*x' in class `%s' must be in class `%s'"
-msgstr "tecken L\"\\u%0*x\" i klass \"%s\" måste vara i klass \"%s\""
+msgstr "tecken L'\\u%0*x' i klassen ”%s” måste vara i klassen ”%s”"
#: locale/programs/ld-ctype.c:494
#, c-format
msgid "character L'\\u%0*x' in class `%s' must not be in class `%s'"
-msgstr "tecken L\"\\u%0*x\" i klass \"%s\" får inte vara i klass \"%s\""
+msgstr "tecken L'\\u%0*x' i klassen ”%s” får inte vara i klassen ”%s”"
#: locale/programs/ld-ctype.c:508 locale/programs/ld-ctype.c:566
#, c-format
@@ -2611,7 +2612,7 @@ msgstr "Skriv mer information"
#: locale/programs/locale.c:85
msgid "Get locale-specific information."
-msgstr "Hämta lokalspecifik information"
+msgstr "Hämta lokalspecifik information."
#: locale/programs/locale.c:88
msgid ""
@@ -3022,7 +3023,7 @@ msgstr "felaktig mcheck_status, biblioteket är felaktigt\n"
#: malloc/memusage.sh:32
msgid "%s: option '%s' requires an argument\\n"
-msgstr "%s: flaggan \\\"%s\\\" kräver ett argument\\n"
+msgstr "%s: flaggan ”%s” kräver ett argument\\n"
#: malloc/memusage.sh:38
msgid ""
@@ -3091,11 +3092,11 @@ msgstr ""
#: malloc/memusage.sh:191
msgid "memusage: option \\`${1##*=}' is ambiguous"
-msgstr "memusage: flaggan \"${1##*=}\" är tvetydig"
+msgstr "memusage: flaggan ”${1##*=}” är tvetydig"
#: malloc/memusage.sh:200
msgid "memusage: unrecognized option \\`$1'"
-msgstr "memusage: okänd flagga \"$1\""
+msgstr "memusage: okänd flagga ”$1”"
#: malloc/memusage.sh:213
msgid "No program name given"
@@ -3341,7 +3342,7 @@ msgstr "Kan inte skapa process hos server"
#: nis/nis_error.h:48
msgid "Master server busy, full dump rescheduled."
-msgstr "Huvudserver är upptagen, full dump åter schemalagd"
+msgstr "Huvudserver är upptagen, full dump åter schemalagd."
#: nis/nis_local_names.c:121
#, c-format
@@ -3511,7 +3512,7 @@ msgstr "\t\tRättigheter : "
#: nis/nis_print.c:290
msgid "Linked Object Type : "
-msgstr "Länkad objekttyp: "
+msgstr "Länkad objekttyp : "
#: nis/nis_print.c:292
#, c-format
@@ -3802,15 +3803,14 @@ msgid " (first)"
msgstr " (första)"
#: nscd/cache.c:288
-#, fuzzy, c-format
-#| msgid "cannot stat() file `%s': %s"
+#, c-format
msgid "checking for monitored file `%s': %s"
-msgstr "kan inte ta status på fil \"%s\": %s"
+msgstr "kontrollerar den övervakade filen ”%s”: %s"
#: nscd/cache.c:298
#, c-format
msgid "monitored file `%s` changed (mtime)"
-msgstr ""
+msgstr "den övervakade filen ”%s” ändrades (mtime)"
#: nscd/cache.c:341
#, c-format
@@ -3906,34 +3906,32 @@ msgstr "kan inte få uttag (socket) att acceptera förbindelser: %s"
#: nscd/connections.c:973
#, c-format
msgid "disabled inotify-based monitoring for file `%s': %s"
-msgstr ""
+msgstr "avaktiverade inotify-baserad övervakning för filen ”%s”: %s"
#: nscd/connections.c:977
#, c-format
msgid "monitoring file `%s` (%d)"
-msgstr ""
+msgstr "övervakar filen ”%s” (%d)"
#: nscd/connections.c:990
#, c-format
msgid "disabled inotify-based monitoring for directory `%s': %s"
-msgstr ""
+msgstr "avaktiverade inotify-baserad övervakning av katalogen ”%s”: %s"
#: nscd/connections.c:994
-#, fuzzy, c-format
-#| msgid "Can't open directory %s"
+#, c-format
msgid "monitoring directory `%s` (%d)"
-msgstr "Kan inte öppna katalog %s"
+msgstr "övervakar katalogen ”%s” (%d)"
#: nscd/connections.c:1022
-#, fuzzy, c-format
-#| msgid "register trace file %s for database %s"
+#, c-format
msgid "monitoring file %s for database %s"
-msgstr "registrera spårningsfil %s för databas %s"
+msgstr "övervakar filen %s för databas %s"
#: nscd/connections.c:1032
#, c-format
msgid "stat failed for file `%s'; will try again later: %s"
-msgstr ""
+msgstr "stat misslyckades för filen ”%s”; kommer försöka igen senare: %s"
#: nscd/connections.c:1151
#, c-format
@@ -4032,44 +4030,42 @@ msgstr "handle_request: begäran mottagen (Version = %d)"
#: nscd/connections.c:1963
#, c-format
msgid "ignored inotify event for `%s` (file exists)"
-msgstr ""
+msgstr "ignorerade inotify-händelse för ”%s” (filen finns)"
#: nscd/connections.c:1968
#, c-format
msgid "monitored file `%s` was %s, removing watch"
-msgstr ""
+msgstr "den övervakade filen ”%s” var %s, tar bort vakten"
#: nscd/connections.c:1976 nscd/connections.c:2018
#, c-format
msgid "failed to remove file watch `%s`: %s"
-msgstr ""
+msgstr "misslyckades att ta bort filvakt ”%s”: %s"
#: nscd/connections.c:1991
#, c-format
msgid "monitored file `%s` was written to"
-msgstr ""
+msgstr "den övervakade filen ”%s” skrevs till"
#: nscd/connections.c:2015
#, c-format
msgid "monitored parent directory `%s` was %s, removing watch on `%s`"
-msgstr ""
+msgstr "den övervakade föräldrakatalogen ”%s” var %s, tar bort vakten av ”%s”"
#: nscd/connections.c:2041
#, c-format
msgid "monitored file `%s` was %s, adding watch"
-msgstr ""
+msgstr "den övervakade filen ”%s” var %s, lägger till vakt"
#: nscd/connections.c:2053
-#, fuzzy, c-format
-#| msgid "failed to load shared object `%s'"
+#, c-format
msgid "failed to add file watch `%s`: %s"
-msgstr "misslyckades med att ladda delat objekt \"%s\""
+msgstr "misslyckades med att lägga till filvakt ”%s”: %s"
#: nscd/connections.c:2247 nscd/connections.c:2428
-#, fuzzy, c-format
-#| msgid "disabled inotify after read error %d"
+#, c-format
msgid "disabled inotify-based monitoring after read error %d"
-msgstr "inaktiverade inotify efter läsfel %d"
+msgstr "avaktiverade inotify-baserad övervakning efter läsfel %d"
#: nscd/connections.c:2543
msgid "could not initialize conditional variable"
@@ -4199,7 +4195,7 @@ msgstr "Använd separat cache för varje användare"
#: nscd/nscd.c:122
msgid "Name Service Cache Daemon."
-msgstr "Namntjänst cache-demon"
+msgstr "Cache-demon för namntjänsten."
#: nscd/nscd.c:155 nss/getent.c:1007 nss/makedb.c:206
#, c-format
@@ -4531,11 +4527,11 @@ msgstr "Access Vector Cache (AVC) startad"
#: nscd/selinux.c:368
msgid "Error querying policy for undefined object classes or permissions."
-msgstr "Fel när policy för odefinierade objektklasser eller rättigheter hämtades"
+msgstr "Fel när policy för odefinierade objektklasser eller rättigheter hämtades."
#: nscd/selinux.c:375
msgid "Error getting security class for nscd."
-msgstr "Fel när säkerhetsklass för nscd hämtades"
+msgstr "Fel när säkerhetsklass för nscd hämtades."
#: nscd/selinux.c:380
#, c-format
@@ -4609,7 +4605,7 @@ msgstr "inaktivera DIN-kodning"
#: nss/getent.c:64
msgid "Get entries from administrative database."
-msgstr "Hämta poster från den administrativa databasen"
+msgstr "Hämta poster från den administrativa databasen."
#: nss/getent.c:148 nss/getent.c:477 nss/getent.c:522
#, c-format
@@ -4652,7 +4648,7 @@ msgstr "Genererad rad som inte ingår i iterationen"
#: nss/makedb.c:131
msgid "Create simple database from textual input."
-msgstr "Skapa en enkel databas från textuell indata"
+msgstr "Skapa en enkel databas från textuell indata."
#: nss/makedb.c:134
msgid ""
@@ -5412,7 +5408,7 @@ msgstr "Kan inte ange netid-flaggan utan TIRPC!\n"
#: sunrpc/rpc_main.c:1374
#, c-format
msgid "Cannot use table flags with newstyle!\n"
-msgstr "Kan inte ange tabellflaggor med ny stil\n"
+msgstr "Kan inte ange tabellflaggor med ny stil!\n"
#: sunrpc/rpc_main.c:1393
#, c-format
@@ -7270,18 +7266,9 @@ msgstr "tidszonsförkortning skiljer sig från POSIX-standarden"
#: timezone/zic.c:2789
msgid "too many, or too long, time zone abbreviations"
-msgstr "för många eller för långa tidszonförkortningar"
+msgstr "för många eller för långa tidszonsförkortningar"
#: timezone/zic.c:2829
#, c-format
msgid "%s: Can't create directory %s: %s\n"
msgstr "%s: Kan inte skapa katalog %s: %s\n"
-
-#~ msgid "cannot load any more object with static TLS"
-#~ msgstr "kan inte ladda fler objekt med statiskt TLS"
-
-#~ msgid "%s: no PLTREL found in object %s\n"
-#~ msgstr "%s: hittade inga PLTREL i objekt %s\n"
-
-#~ msgid "cannot create internal descriptors"
-#~ msgstr "kan inte skapa interna deskriptorer"
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0004-powerpc-fix-ifunc-sel.h-with-GCC-6.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0004-powerpc-fix-ifunc-sel.h-with-GCC-6.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0004-powerpc-fix-ifunc-sel.h-with-GCC-6.patch?rev=1.1&content-type=text/plain
Index: 00_all_0004-powerpc-fix-ifunc-sel.h-with-GCC-6.patch
===================================================================
From 8026e9db17af663b19a42892874d483328ada828 Mon Sep 17 00:00:00 2001
From: Aurelien Jarno <aurelien@aurel32.net>
Date: Wed, 3 Aug 2016 00:22:44 +0200
Subject: [PATCH] powerpc: fix ifunc-sel.h with GCC 6
On 32-bit PowerPC GCC 6 always saves the PIC register on the stack in
the prologue and adjust the stack in the epilogue. It is therefore not
possible anymore to just exit the function in the inline asm code,
otherwise it corrupts the stack pointer. This causes the following tests
to fail when using GCC 6:
FAIL: elf/ifuncmain1
FAIL: elf/ifuncmain1pic
FAIL: elf/ifuncmain1picstatic
FAIL: elf/ifuncmain1pie
FAIL: elf/ifuncmain1staticpic
FAIL: elf/ifuncmain1staticpie
FAIL: elf/ifuncmain1vis
FAIL: elf/ifuncmain1vispic
FAIL: elf/ifuncmain1vispie
FAIL: elf/ifuncmain2pic
FAIL: elf/ifuncmain2picstatic
FAIL: elf/ifuncmain3
FAIL: elf/ifuncmain4picstatic
FAIL: elf/ifuncmain5
FAIL: elf/ifuncmain5picstatic
FAIL: elf/ifuncmain5staticpic
The solution is to replace the beqlr instructions by a beq to the end
of the inline asm code. This fixes all the above failures.
ChangeLog:
* sysdeps/powerpc/ifunc-sel.h (ifunc_sel): Replace beqlr instructions
by beq instructions jumping to the end of the function.
(cherry picked from commit ee71e5b6dd6a21e981ad0fa74359e066f5a8b359)
---
ChangeLog | 5 +++++
sysdeps/powerpc/ifunc-sel.h | 7 ++++---
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 84ae7a7af8d9..16aa09d97f45 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-08-03 Aurelien Jarno <aurelien@aurel32.net>
+
+ * sysdeps/powerpc/ifunc-sel.h (ifunc_sel): Replace beqlr instructions
+ by beq instructions jumping to the end of the function.
+
2016-08-04 Carlos O'Donell <carlos@redhat.com>
* po/de.po: Update from Translation Project.
diff --git a/sysdeps/powerpc/ifunc-sel.h b/sysdeps/powerpc/ifunc-sel.h
index 526d8ed88b26..79d110fef13a 100644
--- a/sysdeps/powerpc/ifunc-sel.h
+++ b/sysdeps/powerpc/ifunc-sel.h
@@ -17,13 +17,14 @@ ifunc_sel (int (*f1) (void), int (*f2) (void), int (*f3) (void))
"addis %0,11,%2-1b@ha\n\t"
"addi %0,%0,%2-1b@l\n\t"
"cmpwi 12,1\n\t"
- "beqlr\n\t"
+ "beq 2f\n\t"
"addis %0,11,%3-1b@ha\n\t"
"addi %0,%0,%3-1b@l\n\t"
"cmpwi 12,-1\n\t"
- "beqlr\n\t"
+ "beq 2f\n\t"
"addis %0,11,%4-1b@ha\n\t"
- "addi %0,%0,%4-1b@l"
+ "addi %0,%0,%4-1b@l\n\t"
+ "2:"
: "=r" (ret)
: "X" (&global), "X" (f1), "X" (f2), "X" (f3));
return ret;
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0005-powerpc-fix-ifunc-sel.h-fix-asm-constraints-and-clob.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0005-powerpc-fix-ifunc-sel.h-fix-asm-constraints-and-clob.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0005-powerpc-fix-ifunc-sel.h-fix-asm-constraints-and-clob.patch?rev=1.1&content-type=text/plain
Index: 00_all_0005-powerpc-fix-ifunc-sel.h-fix-asm-constraints-and-clob.patch
===================================================================
From f038a42f547836ecb61b2a7ce1c50542df2ac769 Mon Sep 17 00:00:00 2001
From: Aurelien Jarno <aurelien@aurel32.net>
Date: Wed, 3 Aug 2016 00:22:44 +0200
Subject: [PATCH] powerpc: fix ifunc-sel.h fix asm constraints and clobber list
As pointer out on the mailing list, the inline assembly code in
sysdeps/powerpc/ifunc-sel.h doesn't have a list of clobbered registers
and used wrong constraints.
This patch fixes that. I verified it doesn't introduce any change in the
generated code.
Changelog:
* sysdeps/powerpc/ifunc-sel.h (ifunc_sel): Add "11", "12", "cr0" to the
clobber list. Use "i" constraint instead of "X".
(ifunc_one): Add "12" to the clobber list. Use "i" constraint instead
of "X".
(cherry picked from commit 30f926d3b3dcb74c038155715ed341d5c4b334eb)
---
ChangeLog | 4 ++++
sysdeps/powerpc/ifunc-sel.h | 6 ++++--
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 16aa09d97f45..7ef0fe60061e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,10 @@
* sysdeps/powerpc/ifunc-sel.h (ifunc_sel): Replace beqlr instructions
by beq instructions jumping to the end of the function.
+ * sysdeps/powerpc/ifunc-sel.h (ifunc_sel): Add "11", "12", "cr0" to the
+ clobber list. Use "i" constraint instead of "X".
+ (ifunc_one): Add "12" to the clobber list. Use "i" constraint instead
+ of "X".
2016-08-04 Carlos O'Donell <carlos@redhat.com>
diff --git a/sysdeps/powerpc/ifunc-sel.h b/sysdeps/powerpc/ifunc-sel.h
index 79d110fef13a..ac589bd3c049 100644
--- a/sysdeps/powerpc/ifunc-sel.h
+++ b/sysdeps/powerpc/ifunc-sel.h
@@ -26,7 +26,8 @@ ifunc_sel (int (*f1) (void), int (*f2) (void), int (*f3) (void))
"addi %0,%0,%4-1b@l\n\t"
"2:"
: "=r" (ret)
- : "X" (&global), "X" (f1), "X" (f2), "X" (f3));
+ : "i" (&global), "i" (f1), "i" (f2), "i" (f3)
+ : "11", "12", "cr0");
return ret;
}
@@ -41,7 +42,8 @@ ifunc_one (int (*f1) (void))
"addis %0,%0,%1-1b@ha\n\t"
"addi %0,%0,%1-1b@l"
: "=r" (ret)
- : "X" (f1));
+ : "i" (f1)
+ : "12");
return ret;
}
#endif
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0006-Fix-sNaN-handling-in-nearbyint-on-32-bit-sparc.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0006-Fix-sNaN-handling-in-nearbyint-on-32-bit-sparc.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0006-Fix-sNaN-handling-in-nearbyint-on-32-bit-sparc.patch?rev=1.1&content-type=text/plain
Index: 00_all_0006-Fix-sNaN-handling-in-nearbyint-on-32-bit-sparc.patch
===================================================================
From b3012e4d56e63dd4b1eecf9f006c77b0f1d6939a Mon Sep 17 00:00:00 2001
From: "David S. Miller" <davem@davemloft.net>
Date: Tue, 2 Aug 2016 21:00:21 -0700
Subject: [PATCH] Fix sNaN handling in nearbyint on 32-bit sparc.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S
(__nearbyint_vis3): Don't check for sNaN before float register is
loaded with the incoming argument.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S
(__nearbyintf_vis3): Likewise.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S (__nearbyint):
Likewise.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S (__nearbyintf):
Likewise.
(cherry picked from commit 3ef3f1b93fdf20143865cc16dd75f39a7f0fac2f)
---
ChangeLog | 12 ++++++++++++
.../sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S | 6 +++---
.../sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S | 2 +-
sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S | 8 ++++----
sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S | 4 ++--
5 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 7ef0fe60061e..b9b29b3ab1ab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2016-08-02 David S. Miller <davem@davemloft.net>
+
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S
+ (__nearbyint_vis3): Don't check for sNaN before float register is
+ loaded with the incoming argument.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S
+ (__nearbyintf_vis3): Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S (__nearbyint):
+ Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S (__nearbyintf):
+ Likewise.
+
2016-08-03 Aurelien Jarno <aurelien@aurel32.net>
* sysdeps/powerpc/ifunc-sel.h (ifunc_sel): Replace beqlr instructions
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S
index d9ff0cc2884d..ff81b0da8320 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S
@@ -36,15 +36,15 @@
#define SIGN_BIT %f12 /* -0.0 */
ENTRY (__nearbyint_vis3)
+ sllx %o0, 32, %o0
+ or %o0, %o1, %o0
+ movxtod %o0, %f0
fcmpd %fcc3, %f0, %f0 /* Check for sNaN */
st %fsr, [%sp + 88]
sethi %hi(TWO_FIFTYTWO), %o2
sethi %hi(0xf8003e0), %o5
ld [%sp + 88], %o4
- sllx %o0, 32, %o0
or %o5, %lo(0xf8003e0), %o5
- or %o0, %o1, %o0
- movxtod %o0, %f0
andn %o4, %o5, %o4
fzero ZERO
st %o4, [%sp + 80]
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S
index 5cd1eb02db5a..833a0dfc243a 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyintf-vis3.S
@@ -35,9 +35,9 @@
#define SIGN_BIT %f12 /* -0.0 */
ENTRY (__nearbyintf_vis3)
+ movwtos %o0, %f1
fcmps %fcc3, %f1, %f1 /* Check for sNaN */
st %fsr, [%sp + 88]
- movwtos %o0, %f1
sethi %hi(TWO_TWENTYTHREE), %o2
sethi %hi(0xf8003e0), %o5
ld [%sp + 88], %o4
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S
index 84a10971a4eb..198440a5bc26 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyint.S
@@ -36,21 +36,21 @@
#define SIGN_BIT %f12 /* -0.0 */
ENTRY (__nearbyint)
+ sllx %o0, 32, %o0
+ or %o0, %o1, %o0
+ stx %o0, [%sp + 72]
+ ldd [%sp + 72], %f0
fcmpd %fcc3, %f0, %f0 /* Check for sNaN */
st %fsr, [%sp + 88]
sethi %hi(TWO_FIFTYTWO), %o2
sethi %hi(0xf8003e0), %o5
ld [%sp + 88], %o4
- sllx %o0, 32, %o0
or %o5, %lo(0xf8003e0), %o5
- or %o0, %o1, %o0
andn %o4, %o5, %o4
fzero ZERO
st %o4, [%sp + 80]
- stx %o0, [%sp + 72]
sllx %o2, 32, %o2
fnegd ZERO, SIGN_BIT
- ldd [%sp + 72], %f0
ld [%sp + 80], %fsr
stx %o2, [%sp + 72]
fabsd %f0, %f14
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S
index d5cf5ce815af..9be41f6c228d 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/s_nearbyintf.S
@@ -35,9 +35,10 @@
#define SIGN_BIT %f12 /* -0.0 */
ENTRY (__nearbyintf)
+ st %o0, [%sp + 68]
+ ld [%sp + 68], %f1
fcmps %fcc3, %f1, %f1 /* Check for sNaN */
st %fsr, [%sp + 88]
- st %o0, [%sp + 68]
sethi %hi(TWO_TWENTYTHREE), %o2
sethi %hi(0xf8003e0), %o5
ld [%sp + 88], %o4
@@ -46,7 +47,6 @@ ENTRY (__nearbyintf)
fnegs ZERO, SIGN_BIT
andn %o4, %o5, %o4
st %o4, [%sp + 80]
- ld [%sp + 68], %f1
ld [%sp + 80], %fsr
st %o2, [%sp + 68]
fabss %f1, %f14
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0007-sparc-remove-fdim-sparc-specific-implementations.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0007-sparc-remove-fdim-sparc-specific-implementations.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0007-sparc-remove-fdim-sparc-specific-implementations.patch?rev=1.1&content-type=text/plain
Index: 00_all_0007-sparc-remove-fdim-sparc-specific-implementations.patch
===================================================================
From 0ba4a7522b9491ad32713ab87990e627ef196de4 Mon Sep 17 00:00:00 2001
From: Aurelien Jarno <aurelien@aurel32.net>
Date: Fri, 5 Aug 2016 22:35:01 +0200
Subject: [PATCH] sparc: remove fdim sparc specific implementations
The fdim and fdimf functions on sparc do not fully follow the standard
and do not set errno to ERANGE when the result overflows. Since glibc
2.24 this causes the two following tests to fail:
Failure: fdim (max_value, -max_value): errno set to 0, expected 34 (ERANGE)
Failure: fdim_upward (max_value, -max_value): errno set to 0, expected 34 (ERANGE)
It happens that using GCC with the generic C code generates very similar
code to the sparc specific implementations. Therefore this patches
remove them. Note it might still worth adding a vis3 specific version of
fdim on sparc32/sparcv9, this is done in a following patch to ease
backporting.
Changelog:
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
[$(subdir) = math && $(have-as-vis3) = yes] (libm-sysdep_routines):
Remove s_fdimf-vis3, s_fdim-vis3.
* sysdeps/sparc/sparc32/fpu/s_fdim.S: Delete file.
* sysdeps/sparc/sparc32/fpu/s_fdimf.S: Likewise.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.S: Likewise.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.S: Likewise.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.S: Likewise.
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.S: Likewise.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_fdim.S: Likewise.
* sysdeps/sparc/sparc32/sparcv9/fpu/s_fdimf.S: Likewise.
* sysdeps/sparc/sparc64/fpu/s_fdim.S: Likewise.
* sysdeps/sparc/sparc64/fpu/s_fdimf.S: Likewise.
(cherry picked from commit 8a9f4eb95894eae7e725e79721ba26fbc5b4ed06)
---
ChangeLog | 16 +++++++++
sysdeps/sparc/sparc32/fpu/s_fdim.S | 42 ----------------------
sysdeps/sparc/sparc32/fpu/s_fdimf.S | 35 ------------------
.../sparc/sparc32/sparcv9/fpu/multiarch/Makefile | 4 +--
.../sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.S | 34 ------------------
.../sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.S | 19 ----------
.../sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.S | 32 -----------------
.../sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.S | 12 -------
sysdeps/sparc/sparc32/sparcv9/fpu/s_fdim.S | 40 ---------------------
sysdeps/sparc/sparc32/sparcv9/fpu/s_fdimf.S | 35 ------------------
sysdeps/sparc/sparc64/fpu/s_fdim.S | 32 -----------------
sysdeps/sparc/sparc64/fpu/s_fdimf.S | 31 ----------------
12 files changed, 18 insertions(+), 314 deletions(-)
delete mode 100644 sysdeps/sparc/sparc32/fpu/s_fdim.S
delete mode 100644 sysdeps/sparc/sparc32/fpu/s_fdimf.S
delete mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.S
delete mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.S
delete mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.S
delete mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.S
delete mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/s_fdim.S
delete mode 100644 sysdeps/sparc/sparc32/sparcv9/fpu/s_fdimf.S
delete mode 100644 sysdeps/sparc/sparc64/fpu/s_fdim.S
delete mode 100644 sysdeps/sparc/sparc64/fpu/s_fdimf.S
diff --git a/ChangeLog b/ChangeLog
index b9b29b3ab1ab..acdc44347033 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2016-08-05 Aurelien Jarno <aurelien@aurel32.net>
+
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
+ [$(subdir) = math && $(have-as-vis3) = yes] (libm-sysdep_routines):
+ Remove s_fdimf-vis3, s_fdim-vis3.
+ * sysdeps/sparc/sparc32/fpu/s_fdim.S: Delete file.
+ * sysdeps/sparc/sparc32/fpu/s_fdimf.S: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.S: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.S: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.S: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.S: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/s_fdim.S: Likewise.
+ * sysdeps/sparc/sparc32/sparcv9/fpu/s_fdimf.S: Likewise.
+ * sysdeps/sparc/sparc64/fpu/s_fdim.S: Likewise.
+ * sysdeps/sparc/sparc64/fpu/s_fdimf.S: Likewise.
+
2016-08-02 David S. Miller <davem@davemloft.net>
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_nearbyint-vis3.S
diff --git a/sysdeps/sparc/sparc32/fpu/s_fdim.S b/sysdeps/sparc/sparc32/fpu/s_fdim.S
deleted file mode 100644
index e93970faae46..000000000000
--- a/sysdeps/sparc/sparc32/fpu/s_fdim.S
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Compute positive difference, sparc 32-bit.
- Copyright (C) 2013-2016 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by David S. Miller <davem@davemloft.net>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-ENTRY(__fdim)
- std %o0, [%sp + 72]
- std %o2, [%sp + 80]
- ldd [%sp + 72], %f0
- ldd [%sp + 80], %f2
- fcmpd %f0, %f2
- st %g0, [%sp + 72]
- fbug 1f
- st %g0, [%sp + 76]
- ldd [%sp + 72], %f0
- fnegs %f0, %f2
- fmovs %f1, %f3
-1: retl
- fsubd %f0, %f2, %f0
-END(__fdim)
-weak_alias (__fdim, fdim)
-
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
-compat_symbol (libm, __fdim, fdiml, GLIBC_2_1);
-#endif
diff --git a/sysdeps/sparc/sparc32/fpu/s_fdimf.S b/sysdeps/sparc/sparc32/fpu/s_fdimf.S
deleted file mode 100644
index c3fe8afa983d..000000000000
--- a/sysdeps/sparc/sparc32/fpu/s_fdimf.S
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Compute positive difference, sparc 32-bit.
- Copyright (C) 2013-2016 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by David S. Miller <davem@davemloft.net>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-ENTRY(__fdimf)
- st %o0, [%sp + 72]
- st %o1, [%sp + 76]
- ld [%sp + 72], %f0
- ld [%sp + 76], %f1
- fcmps %f0, %f1
- fbug 1f
- st %g0, [%sp + 72]
- ld [%sp + 72], %f0
- fnegs %f0, %f1
-1: retl
- fsubs %f0, %f1, %f0
-END(__fdimf)
-weak_alias (__fdimf, fdimf)
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
index ebbe28b07f66..13d3c6db5133 100644
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
+++ b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
@@ -4,8 +4,8 @@ libm-sysdep_routines += m_copysignf-vis3 m_copysign-vis3 s_fabs-vis3 \
s_fabsf-vis3 s_llrintf-vis3 s_llrint-vis3 \
s_rintf-vis3 s_rint-vis3 w_sqrt-vis3 w_sqrtf-vis3 \
s_fminf-vis3 s_fmin-vis3 s_fmaxf-vis3 s_fmax-vis3 \
- s_fmaf-vis3 s_fma-vis3 s_fdimf-vis3 s_fdim-vis3 \
- s_nearbyint-vis3 s_nearbyintf-vis3
+ s_fmaf-vis3 s_fma-vis3 s_nearbyint-vis3 \
+ s_nearbyintf-vis3
sysdep_routines += s_copysignf-vis3 s_copysign-vis3
endif
endif
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.S
deleted file mode 100644
index 4a479b1a5930..000000000000
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim-vis3.S
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Compute positive difference, sparc 32-bit+v9+vis3.
- Copyright (C) 2013-2016 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by David S. Miller <davem@davemloft.net>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-ENTRY(__fdim_vis3)
- movwtos %o0, %f0
- movwtos %o1, %f1
- movwtos %o2, %f2
- movwtos %o3, %f3
- fcmpd %f0, %f2
- fbug 1f
- nop
- fzero %f0
- fnegd %f0, %f2
-1: retl
- fsubd %f0, %f2, %f0
-END(__fdim_vis3)
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.S
deleted file mode 100644
index 4b1340824431..000000000000
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdim.S
+++ /dev/null
@@ -1,19 +0,0 @@
-#include <sparc-ifunc.h>
-#include <math_ldbl_opt.h>
-
-SPARC_ASM_VIS3_IFUNC(fdim)
-
-weak_alias (__fdim, fdim)
-
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
-compat_symbol (libm, __fdim, fdiml, GLIBC_2_1);
-#endif
-
-# undef weak_alias
-# define weak_alias(a, b)
-# undef compat_symbol
-# define compat_symbol(a, b, c, d)
-
-#define __fdim __fdim_generic
-
-#include "../s_fdim.S"
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.S
deleted file mode 100644
index 081fc15b62ec..000000000000
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf-vis3.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Compute positive difference, sparc 32-bit+v9+vis3.
- Copyright (C) 2013-2016 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by David S. Miller <davem@davemloft.net>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-ENTRY(__fdimf_vis3)
- movwtos %o0, %f0
- movwtos %o1, %f1
- fcmps %f0, %f1
- fbug 1f
- nop
- fzeros %f0
- fnegs %f0, %f1
-1: retl
- fsubs %f0, %f1, %f0
-END(__fdimf_vis3)
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.S b/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.S
deleted file mode 100644
index 30381d6a5949..000000000000
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_fdimf.S
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <sparc-ifunc.h>
-
-SPARC_ASM_VIS3_IFUNC(fdimf)
-
-weak_alias (__fdimf, fdimf)
-
-# undef weak_alias
-# define weak_alias(a, b)
-
-#define __fdimf __fdimf_generic
-
-#include "../s_fdimf.S"
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_fdim.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_fdim.S
deleted file mode 100644
index 37f7f44dfa00..000000000000
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_fdim.S
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Compute positive difference, sparc 32-bit+v9.
- Copyright (C) 2013-2016 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by David S. Miller <davem@davemloft.net>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-ENTRY(__fdim)
- std %o0, [%sp + 72]
- std %o2, [%sp + 80]
- ldd [%sp + 72], %f0
- ldd [%sp + 80], %f2
- fcmpd %f0, %f2
- fbug 1f
- nop
- fzero %f0
- fnegd %f0, %f2
-1: retl
- fsubd %f0, %f2, %f0
-END(__fdim)
-weak_alias (__fdim, fdim)
-
-#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
-compat_symbol (libm, __fdim, fdiml, GLIBC_2_1);
-#endif
diff --git a/sysdeps/sparc/sparc32/sparcv9/fpu/s_fdimf.S b/sysdeps/sparc/sparc32/sparcv9/fpu/s_fdimf.S
deleted file mode 100644
index 9e0e3f21beb3..000000000000
--- a/sysdeps/sparc/sparc32/sparcv9/fpu/s_fdimf.S
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Compute positive difference, sparc 32-bit+v9.
- Copyright (C) 2013-2016 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by David S. Miller <davem@davemloft.net>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-ENTRY(__fdimf)
- st %o0, [%sp + 72]
- st %o1, [%sp + 76]
- ld [%sp + 72], %f0
- ld [%sp + 76], %f1
- fcmps %f0, %f1
- fbug 1f
- nop
- fzeros %f0
- fnegs %f0, %f1
-1: retl
- fsubs %f0, %f1, %f0
-END(__fdimf)
-weak_alias (__fdimf, fdimf)
diff --git a/sysdeps/sparc/sparc64/fpu/s_fdim.S b/sysdeps/sparc/sparc64/fpu/s_fdim.S
deleted file mode 100644
index 7fae72a2511e..000000000000
--- a/sysdeps/sparc/sparc64/fpu/s_fdim.S
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Compute positive difference, sparc 64-bit.
- Copyright (C) 2013-2016 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by David S. Miller <davem@davemloft.net>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-ENTRY(__fdim)
- fcmpd %f0, %f2
- fbug 1f
- nop
- fzero %f0
- fnegd %f0, %f2
-1: retl
- fsubd %f0, %f2, %f0
-END(__fdim)
-weak_alias (__fdim, fdim)
diff --git a/sysdeps/sparc/sparc64/fpu/s_fdimf.S b/sysdeps/sparc/sparc64/fpu/s_fdimf.S
deleted file mode 100644
index 356c23c4e39c..000000000000
--- a/sysdeps/sparc/sparc64/fpu/s_fdimf.S
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Compute positive difference, sparc 64-bit.
- Copyright (C) 2013-2016 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by David S. Miller <davem@davemloft.net>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-
-ENTRY(__fdimf)
- fcmps %f1, %f3
- fbug 1f
- nop
- fzeros %f1
- fnegs %f1, %f3
-1: retl
- fsubs %f1, %f3, %f0
-END(__fdimf)
-weak_alias (__fdimf, fdimf)
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0008-Do-not-override-objects-in-libc.a-in-other-static-li.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0008-Do-not-override-objects-in-libc.a-in-other-static-li.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0008-Do-not-override-objects-in-libc.a-in-other-static-li.patch?rev=1.1&content-type=text/plain
Index: 00_all_0008-Do-not-override-objects-in-libc.a-in-other-static-li.patch
===================================================================
From e2e4984ad62330fa1d328d9eeb0a3e42620825b6 Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
Date: Wed, 17 Aug 2016 14:57:00 +0200
Subject: [PATCH] Do not override objects in libc.a in other static libraries
[BZ #20452]
With this change, we no longer add sysdep.o and similar objects which
are present in libc.a to other static libraries.
(cherry picked from commit d9067fca40b8aac156d73cfa44d6875813555a6c)
---
ChangeLog | 34 +++++++++++++++++++++++++++++
sysdeps/ia64/nptl/Makefile | 1 +
sysdeps/mips/Makefile | 1 +
sysdeps/mips/nptl/Makefile | 1 +
sysdeps/s390/nptl/Makefile | 1 +
sysdeps/unix/alpha/Makefile | 1 +
sysdeps/unix/sysv/linux/alpha/Makefile | 1 +
sysdeps/unix/sysv/linux/i386/Makefile | 1 +
sysdeps/unix/sysv/linux/ia64/Makefile | 1 +
sysdeps/unix/sysv/linux/microblaze/Makefile | 3 ++-
sysdeps/unix/sysv/linux/powerpc/Makefile | 2 ++
sysdeps/unix/sysv/linux/s390/Makefile | 1 +
sysdeps/unix/sysv/linux/sparc/Makefile | 2 ++
sysdeps/unix/sysv/linux/tile/Makefile | 1 +
14 files changed, 50 insertions(+), 1 deletion(-)
diff --git a/ChangeLog b/ChangeLog
index acdc44347033..9dfd24dae58c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,37 @@
+2016-08-17 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #20452]
+ Avoid additional copies of objects in libc.a in static libraries.
+ * sysdeps/ia64/nptl/Makefile (libpthread-shared-only-routines):
+ Add ptw-sysdep, ptw-sigblock, ptw-sigprocmask.
+ * sysdeps/mips/Makefile (librt-shared-only-routines): Add
+ rt-sysdep.
+ * sysdeps/mips/nptl/Makefile (libpthread-shared-only-routines):
+ Add nptl-sysdep.
+ * sysdeps/s390/nptl/Makefile (libpthread-shared-only-routines):
+ Add ptw-sysdep.
+ * sysdeps/unix/alpha/Makefile (librt-shared-only-routines): Add
+ rt-sysdep.
+ * sysdeps/unix/sysv/linux/alpha/Makefile
+ (libpthread-shared-only-routines): Add ptw-sysdep,
+ ptw-sigprocmask, ptw-rt_sigaction.
+ * sysdeps/unix/sysv/linux/ia64/Makefile
+ (librt-shared-only-routines): Add rt-sysdep.
+ * sysdeps/unix/sysv/linux/i386/Makefile
+ (libpthread-shared-only-routines): Add libc-do-syscall.
+ * sysdeps/unix/sysv/linux/microblaze/Makefile
+ (libpthread-shared-only-routines): Add sysdep.
+ * sysdeps/unix/sysv/linux/powerpc/Makefile
+ (librt-shared-only-routines): Add rt-sysdep.
+ (libpthread-shared-only-routines): Add sysdep.
+ * sysdeps/unix/sysv/linux/s390/Makefile
+ (librt-shared-only-routines): Add rt-sysdep.
+ * sysdeps/unix/sysv/linux/sparc/Makefile
+ (librt-shared-only-routines): Add rt-sysdep.
+ (libpthread-shared-only-routines): Add sysdep.
+ * sysdeps/unix/sysv/linux/tile/Makefile
+ (libpthread-shared-only-routines): Likewise.
+
2016-08-05 Aurelien Jarno <aurelien@aurel32.net>
* sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/Makefile
diff --git a/sysdeps/ia64/nptl/Makefile b/sysdeps/ia64/nptl/Makefile
index 48f1327446a0..1e6be8eea86a 100644
--- a/sysdeps/ia64/nptl/Makefile
+++ b/sysdeps/ia64/nptl/Makefile
@@ -21,4 +21,5 @@ endif
ifeq ($(subdir),nptl)
libpthread-routines += ptw-sysdep ptw-sigblock ptw-sigprocmask
+libpthread-shared-only-routines += ptw-sysdep ptw-sigblock ptw-sigprocmask
endif
diff --git a/sysdeps/mips/Makefile b/sysdeps/mips/Makefile
index 3d3552322b33..7c1d77941ec1 100644
--- a/sysdeps/mips/Makefile
+++ b/sysdeps/mips/Makefile
@@ -9,6 +9,7 @@ endif
ifeq ($(subdir),rt)
librt-sysdep_routines += rt-sysdep
+librt-shared-only-routines += rt-sysdep
endif
ifeq ($(subdir),debug)
diff --git a/sysdeps/mips/nptl/Makefile b/sysdeps/mips/nptl/Makefile
index 117744ffe2dd..dda154d84238 100644
--- a/sysdeps/mips/nptl/Makefile
+++ b/sysdeps/mips/nptl/Makefile
@@ -21,4 +21,5 @@ endif
ifeq ($(subdir),nptl)
libpthread-sysdep_routines += nptl-sysdep
+libpthread-shared-only-routines += nptl-sysdep
endif
diff --git a/sysdeps/s390/nptl/Makefile b/sysdeps/s390/nptl/Makefile
index 5734b983b0b5..3a391c82179b 100644
--- a/sysdeps/s390/nptl/Makefile
+++ b/sysdeps/s390/nptl/Makefile
@@ -21,4 +21,5 @@ endif
ifeq ($(subdir),nptl)
libpthread-routines += ptw-sysdep
+libpthread-shared-only-routines += ptw-sysdep
endif
diff --git a/sysdeps/unix/alpha/Makefile b/sysdeps/unix/alpha/Makefile
index 441aa02a8380..0660847f15aa 100644
--- a/sysdeps/unix/alpha/Makefile
+++ b/sysdeps/unix/alpha/Makefile
@@ -1,3 +1,4 @@
ifeq ($(subdir),rt)
librt-sysdep_routines += rt-sysdep
+librt-shared-only-routines += rt-sysdep
endif
diff --git a/sysdeps/unix/sysv/linux/alpha/Makefile b/sysdeps/unix/sysv/linux/alpha/Makefile
index c089545e9b84..3b523b70cfad 100644
--- a/sysdeps/unix/sysv/linux/alpha/Makefile
+++ b/sysdeps/unix/sysv/linux/alpha/Makefile
@@ -40,4 +40,5 @@ endif # math
ifeq ($(subdir),nptl)
# pull in __syscall_error routine, __sigprocmask, __syscall_rt_sigaction
libpthread-routines += ptw-sysdep ptw-sigprocmask ptw-rt_sigaction
+libpthread-shared-only-routines += ptw-sysdep ptw-sigprocmask ptw-rt_sigaction
endif
diff --git a/sysdeps/unix/sysv/linux/i386/Makefile b/sysdeps/unix/sysv/linux/i386/Makefile
index b015ff7c760c..6073a9fe04f0 100644
--- a/sysdeps/unix/sysv/linux/i386/Makefile
+++ b/sysdeps/unix/sysv/linux/i386/Makefile
@@ -31,6 +31,7 @@ endif
# libpthread uses six-argument inline syscalls.
ifeq ($(subdir),nptl)
libpthread-sysdep_routines += libc-do-syscall
+libpthread-shared-only-routines += libc-do-syscall
endif
ifeq ($(subdir),resource)
diff --git a/sysdeps/unix/sysv/linux/ia64/Makefile b/sysdeps/unix/sysv/linux/ia64/Makefile
index 1de62c528ae2..4d6766db5e73 100644
--- a/sysdeps/unix/sysv/linux/ia64/Makefile
+++ b/sysdeps/unix/sysv/linux/ia64/Makefile
@@ -19,6 +19,7 @@ endif
ifeq ($(subdir),rt)
librt-routines += rt-sysdep
+librt-shared-only-routines += rt-sysdep
endif
ifeq ($(subdir),nptl)
diff --git a/sysdeps/unix/sysv/linux/microblaze/Makefile b/sysdeps/unix/sysv/linux/microblaze/Makefile
index 44a838fa110d..d178bc6f3466 100644
--- a/sysdeps/unix/sysv/linux/microblaze/Makefile
+++ b/sysdeps/unix/sysv/linux/microblaze/Makefile
@@ -5,4 +5,5 @@ endif
ifeq ($(subdir),nptl)
# pull in __syscall_error routine
libpthread-routines += sysdep
-endif
\ No newline at end of file
+libpthread-shared-only-routines += sysdep
+endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/Makefile b/sysdeps/unix/sysv/linux/powerpc/Makefile
index c89ed9ec7dfc..2cfb46eca3c2 100644
--- a/sysdeps/unix/sysv/linux/powerpc/Makefile
+++ b/sysdeps/unix/sysv/linux/powerpc/Makefile
@@ -8,6 +8,7 @@ abi-64-v2-condition := __WORDSIZE == 64 && _CALL_ELF == 2
ifeq ($(subdir),rt)
librt-routines += rt-sysdep
+librt-shared-only-routines += rt-sysdep
endif
ifeq ($(subdir),stdlib)
@@ -34,4 +35,5 @@ ifeq ($(subdir),nptl)
libpthread-routines += sysdep
libpthread-sysdep_routines += elision-lock elision-unlock elision-timed \
elision-trylock
+libpthread-shared-only-routines += sysdep
endif
diff --git a/sysdeps/unix/sysv/linux/s390/Makefile b/sysdeps/unix/sysv/linux/s390/Makefile
index 497ffd566cbd..f8ed013e9e2b 100644
--- a/sysdeps/unix/sysv/linux/s390/Makefile
+++ b/sysdeps/unix/sysv/linux/s390/Makefile
@@ -6,6 +6,7 @@ abi-64-condition := __WORDSIZE == 64
ifeq ($(subdir),rt)
librt-routines += rt-sysdep
+librt-shared-only-routines += rt-sysdep
endif
ifeq ($(subdir),stdlib)
diff --git a/sysdeps/unix/sysv/linux/sparc/Makefile b/sysdeps/unix/sysv/linux/sparc/Makefile
index e67aecf8f0bc..a67d199eb5d7 100644
--- a/sysdeps/unix/sysv/linux/sparc/Makefile
+++ b/sysdeps/unix/sysv/linux/sparc/Makefile
@@ -6,6 +6,7 @@ abi-64-condition := __WORDSIZE == 64
ifeq ($(subdir),rt)
librt-routines += rt-sysdep
+librt-shared-only-routines += rt-sysdep
endif
ifeq ($(subdir),sysvipc)
@@ -15,4 +16,5 @@ endif
ifeq ($(subdir),nptl)
# pull in __syscall_error routine
libpthread-routines += sysdep
+libpthread-shared-only-routines += sysdep
endif
diff --git a/sysdeps/unix/sysv/linux/tile/Makefile b/sysdeps/unix/sysv/linux/tile/Makefile
index 1c1cfff2800e..43acea363350 100644
--- a/sysdeps/unix/sysv/linux/tile/Makefile
+++ b/sysdeps/unix/sysv/linux/tile/Makefile
@@ -25,4 +25,5 @@ endif
ifeq ($(subdir),nptl)
# pull in __syscall_error routine
libpthread-routines += sysdep
+libpthread-shared-only-routines += sysdep
endif
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0009-arm-mark-__startcontext-as-.cantunwind-bug-20435.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0009-arm-mark-__startcontext-as-.cantunwind-bug-20435.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0009-arm-mark-__startcontext-as-.cantunwind-bug-20435.patch?rev=1.1&content-type=text/plain
Index: 00_all_0009-arm-mark-__startcontext-as-.cantunwind-bug-20435.patch
===================================================================
From 72450627ba8a173366265af550115de951f148c9 Mon Sep 17 00:00:00 2001
From: Andreas Schwab <schwab@suse.de>
Date: Thu, 18 Aug 2016 11:38:28 +0200
Subject: [PATCH] arm: mark __startcontext as .cantunwind (bug 20435)
__startcontext marks the bottom of the call stack of the contexts created
by makecontext.
(cherry picked from commit 9e2ff6c9cc54c0b4402b8d49e4abe7000fde7617)
Also includes the NEWS update, cherry-picked from commits
056dd72af83f5459ce6d545a49dea6dba7d635dc and
4d047efdbc55b0d68947cde682e5363d16a66294.
---
ChangeLog | 6 ++++++
NEWS | 11 +++++++++++
sysdeps/unix/sysv/linux/arm/setcontext.S | 7 +++++++
3 files changed, 24 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index 9dfd24dae58c..734e34b554f3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2016-08-15 Andreas Schwab <schwab@suse.de>
+
+ [BZ #20435]
+ * sysdeps/unix/sysv/linux/arm/setcontext.S (__startcontext): Mark
+ as .cantunwind.
+
2016-08-17 Florian Weimer <fweimer@redhat.com>
[BZ #20452]
diff --git a/NEWS b/NEWS
index b0447e7169ff..4a042dbe2b41 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,17 @@ See the end for copying conditions.
Please send GNU C library bug reports via <http://sourceware.org/bugzilla/>
using `glibc' in the "product" field.
\f
+Version 2.24.1
+
+Security related changes:
+
+* On ARM EABI (32-bit), generating a backtrace for execution contexts which
+ have been created with makecontext could fail to terminate due to a
+ missing .cantunwind annotation. This has been observed to lead to a hang
+ (denial of service) in some Go applications compiled with gccgo. Reported
+ by Andreas Schwab. (CVE-2016-6323)
+
+\f
Version 2.24
* The minimum Linux kernel version that this version of the GNU C Library
diff --git a/sysdeps/unix/sysv/linux/arm/setcontext.S b/sysdeps/unix/sysv/linux/arm/setcontext.S
index 603e508858b4..d1f168fece80 100644
--- a/sysdeps/unix/sysv/linux/arm/setcontext.S
+++ b/sysdeps/unix/sysv/linux/arm/setcontext.S
@@ -86,12 +86,19 @@ weak_alias(__setcontext, setcontext)
/* Called when a makecontext() context returns. Start the
context in R4 or fall through to exit(). */
+ /* Unwind descriptors are looked up based on PC - 2, so we have to
+ make sure to mark the instruction preceding the __startcontext
+ label as .cantunwind. */
+ .fnstart
+ .cantunwind
+ nop
ENTRY(__startcontext)
movs r0, r4
bne PLTJMP(__setcontext)
@ New context was 0 - exit
b PLTJMP(HIDDEN_JUMPTARGET(exit))
+ .fnend
END(__startcontext)
#ifdef PIC
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0010-argp-Do-not-override-GCC-keywords-with-macros-BZ-169.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0010-argp-Do-not-override-GCC-keywords-with-macros-BZ-169.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0010-argp-Do-not-override-GCC-keywords-with-macros-BZ-169.patch?rev=1.1&content-type=text/plain
Index: 00_all_0010-argp-Do-not-override-GCC-keywords-with-macros-BZ-169.patch
===================================================================
From 58ef663c94e0bf21e88af6afce13b62d723cc415 Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
Date: Thu, 18 Aug 2016 11:15:42 +0200
Subject: [PATCH] argp: Do not override GCC keywords with macros [BZ #16907]
glibc provides fallback definitions already. It is not necessary to
suppress warnings for unknown attributes because GCC does this
automatically for system headers.
This commit does not sync with gnulib because gnulib has started to use
_GL_* macros in the header file, which are arguably in the gnulib
implementation space and not suitable for an installed glibc header
file.
(cherry picked from commit 2c820533c61fed175390bc6058afbbe42d2edc37)
---
ChangeLog | 8 ++++++++
argp/argp-fmtstream.h | 19 ++++---------------
argp/argp.h | 42 ++----------------------------------------
3 files changed, 14 insertions(+), 55 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 734e34b554f3..1351bfd15fea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2016-08-18 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #16907]
+ * argp/argp.h: Switch to __BEGIN_DECLS and __END_DECLS.
+ (__THROW, __NTH, __attribute__, __restrict): Remove definitions.
+ * argp/argp-fmtstream.h: Add __BEGIN_DECLS and __END_DECLS.
+ (__attribute__): Remove definition.
+
2016-08-15 Andreas Schwab <schwab@suse.de>
[BZ #20435]
diff --git a/argp/argp-fmtstream.h b/argp/argp-fmtstream.h
index bdeaa54dc21f..e8c5797f388c 100644
--- a/argp/argp-fmtstream.h
+++ b/argp/argp-fmtstream.h
@@ -29,21 +29,6 @@
#include <string.h>
#include <unistd.h>
-#ifndef __attribute__
-/* This feature is available in gcc versions 2.5 and later. */
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || \
- defined __STRICT_ANSI__
-# define __attribute__(Spec) /* empty */
-# endif
-/* The __-protected variants of `format' and `printf' attributes
- are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) || \
- defined __STRICT_ANSI__
-# define __format__ format
-# define __printf__ printf
-# endif
-#endif
-
#if defined (__GNU_LIBRARY__) && defined (HAVE_LINEWRAP_H)
/* line_wrap_stream is available, so use that. */
#define ARGP_FMTSTREAM_USE_LINEWRAP
@@ -111,6 +96,8 @@ struct argp_fmtstream
typedef struct argp_fmtstream *argp_fmtstream_t;
+__BEGIN_DECLS
+
/* Return an argp_fmtstream that outputs to STREAM, and which prefixes lines
written on it with LMARGIN spaces and limits them to RMARGIN columns
total. If WMARGIN >= 0, words that extend past RMARGIN are wrapped by
@@ -297,6 +284,8 @@ __argp_fmtstream_point (argp_fmtstream_t __fs)
#endif /* __OPTIMIZE__ */
+__END_DECLS
+
#endif /* ARGP_FMTSTREAM_USE_LINEWRAP */
#endif /* argp-fmtstream.h */
diff --git a/argp/argp.h b/argp/argp.h
index e67bbef7390c..7cb5a69f08c5 100644
--- a/argp/argp.h
+++ b/argp/argp.h
@@ -28,48 +28,12 @@
#define __need_error_t
#include <errno.h>
-#ifndef __THROW
-# define __THROW
-#endif
-#ifndef __NTH
-# define __NTH(fct) fct __THROW
-#endif
-
-#ifndef __attribute__
-/* This feature is available in gcc versions 2.5 and later. */
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || \
- defined __STRICT_ANSI__
-# define __attribute__(Spec) /* empty */
-# endif
-/* The __-protected variants of `format' and `printf' attributes
- are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) || \
- defined __STRICT_ANSI__
-# define __format__ format
-# define __printf__ printf
-# endif
-#endif
-
-/* GCC 2.95 and later have "__restrict"; C99 compilers have
- "restrict", and "configure" may have defined "restrict". */
-#ifndef __restrict
-# if ! (2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__))
-# if defined restrict || 199901L <= __STDC_VERSION__
-# define __restrict restrict
-# else
-# define __restrict
-# endif
-# endif
-#endif
-
#ifndef __error_t_defined
typedef int error_t;
# define __error_t_defined
#endif
\f
-#ifdef __cplusplus
-extern "C" {
-#endif
+__BEGIN_DECLS
/* A description of a particular option. A pointer to an array of
these is passed in the OPTIONS field of an argp structure. Each option
@@ -590,8 +554,6 @@ __NTH (__option_is_end (const struct argp_option *__opt))
# endif
#endif /* Use extern inlines. */
-#ifdef __cplusplus
-}
-#endif
+__END_DECLS
#endif /* argp.h */
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0011-nptl-tst-once5-Reduce-time-to-expected-failure.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0011-nptl-tst-once5-Reduce-time-to-expected-failure.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0011-nptl-tst-once5-Reduce-time-to-expected-failure.patch?rev=1.1&content-type=text/plain
Index: 00_all_0011-nptl-tst-once5-Reduce-time-to-expected-failure.patch
===================================================================
From 8c716c2e2f916bc18a3857129c181b96990a87d6 Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
Date: Wed, 17 Aug 2016 16:14:02 +0200
Subject: [PATCH] nptl/tst-once5: Reduce time to expected failure
(cherry picked from commit 1f645571d2db9008b3cd3d5acb9ff93357864283)
---
ChangeLog | 5 +++++
nptl/tst-once5.cc | 2 ++
2 files changed, 7 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index 1351bfd15fea..3af5852df4ee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-08-17 Florian Weimer <fweimer@redhat.com>
+
+ Reduce time to expected nptl/tst-once5 failure.
+ * nptl/tst-once5.cc (TIMEOUT): Define.
+
2016-08-18 Florian Weimer <fweimer@redhat.com>
[BZ #16907]
diff --git a/nptl/tst-once5.cc b/nptl/tst-once5.cc
index 978d8271bdaf..513ac53f6f8d 100644
--- a/nptl/tst-once5.cc
+++ b/nptl/tst-once5.cc
@@ -75,5 +75,7 @@ do_test (void)
return result;
}
+// The test currently hangs and is XFAILed. Reduce the timeout.
+#define TIMEOUT 1
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0012-NaCl-Fix-compile-error-in-clock-function.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0012-NaCl-Fix-compile-error-in-clock-function.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0012-NaCl-Fix-compile-error-in-clock-function.patch?rev=1.1&content-type=text/plain
Index: 00_all_0012-NaCl-Fix-compile-error-in-clock-function.patch
===================================================================
From 537067248021228861ec88bb1feb8922e9818701 Mon Sep 17 00:00:00 2001
From: Roland McGrath <roland@hack.frob.com>
Date: Fri, 2 Sep 2016 16:56:35 -0700
Subject: [PATCH] NaCl: Fix compile error in clock function.
* sysdeps/nacl/clock.c (clock): nacl_abi_clock_t -> nacl_irt_clock_t
(cherry picked from commit 307c2c2dfff76330a29a3ab69a0177b118142145)
---
ChangeLog | 4 ++++
sysdeps/nacl/clock.c | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/ChangeLog b/ChangeLog
index 3af5852df4ee..01272446091e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2016-09-02 Roland McGrath <roland@hack.frob.com>
+
+ * sysdeps/nacl/clock.c (clock): nacl_abi_clock_t -> nacl_irt_clock_t
+
2016-08-17 Florian Weimer <fweimer@redhat.com>
Reduce time to expected nptl/tst-once5 failure.
diff --git a/sysdeps/nacl/clock.c b/sysdeps/nacl/clock.c
index 664ad650c3f6..b6fbcfd2dd0a 100644
--- a/sysdeps/nacl/clock.c
+++ b/sysdeps/nacl/clock.c
@@ -24,6 +24,6 @@
clock_t
clock (void)
{
- nacl_abi_clock_t result;
+ nacl_irt_clock_t result;
return NACL_CALL (__nacl_irt_basic.clock (&result), result);
}
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0013-Fix-generic-wait3-after-union-wait_status-removal.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0013-Fix-generic-wait3-after-union-wait_status-removal.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0013-Fix-generic-wait3-after-union-wait_status-removal.patch?rev=1.1&content-type=text/plain
Index: 00_all_0013-Fix-generic-wait3-after-union-wait_status-removal.patch
===================================================================
From d289049cf550b975487f94dfbd7af9d5a50b2233 Mon Sep 17 00:00:00 2001
From: Roland McGrath <roland@hack.frob.com>
Date: Fri, 2 Sep 2016 16:57:59 -0700
Subject: [PATCH] Fix generic wait3 after union wait_status removal.
* sysdeps/posix/wait3.c: Don't treat STAT_LOC as a union, since it's
not any more.
(cherry picked from commit 9a3d16ac152447567bfc822497c564a0630c79fe)
---
ChangeLog | 5 +++++
sysdeps/posix/wait3.c | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/ChangeLog b/ChangeLog
index 01272446091e..2738295ab10d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2016-09-02 Roland McGrath <roland@hack.frob.com>
+ * sysdeps/posix/wait3.c: Don't treat STAT_LOC as a union, since it's
+ not any more.
+
+2016-09-02 Roland McGrath <roland@hack.frob.com>
+
* sysdeps/nacl/clock.c (clock): nacl_abi_clock_t -> nacl_irt_clock_t
2016-08-17 Florian Weimer <fweimer@redhat.com>
diff --git a/sysdeps/posix/wait3.c b/sysdeps/posix/wait3.c
index cf43d973a7b7..73722d2be652 100644
--- a/sysdeps/posix/wait3.c
+++ b/sysdeps/posix/wait3.c
@@ -33,7 +33,7 @@ __wait3 (int *stat_loc, int options, struct rusage *usage)
__set_errno (ENOSYS);
return (pid_t) -1;
}
- return __waitpid (WAIT_ANY, stat_loc.__iptr, options);
+ return __waitpid (WAIT_ANY, stat_loc, options);
}
weak_alias (__wait3, wait3)
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0014-NaCl-Fix-compile-error-for-__dup-after-libc_hidden_p.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0014-NaCl-Fix-compile-error-for-__dup-after-libc_hidden_p.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0014-NaCl-Fix-compile-error-for-__dup-after-libc_hidden_p.patch?rev=1.1&content-type=text/plain
Index: 00_all_0014-NaCl-Fix-compile-error-for-__dup-after-libc_hidden_p.patch
===================================================================
From a7a89294919144e58ae59d03f809ca3f8553ee77 Mon Sep 17 00:00:00 2001
From: Roland McGrath <roland@hack.frob.com>
Date: Fri, 2 Sep 2016 16:58:42 -0700
Subject: [PATCH] NaCl: Fix compile error for __dup after libc_hidden_proto
addition.
* sysdeps/nacl/dup.c: Add libc_hidden_def.
(cherry picked from commit 6b75ba1388bff6a81bad410d7318d385a043b3cb)
---
ChangeLog | 4 ++++
sysdeps/nacl/dup.c | 1 +
2 files changed, 5 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index 2738295ab10d..1708d5045794 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2016-09-02 Roland McGrath <roland@hack.frob.com>
+ * sysdeps/nacl/dup.c: Add libc_hidden_def.
+
+2016-09-02 Roland McGrath <roland@hack.frob.com>
+
* sysdeps/posix/wait3.c: Don't treat STAT_LOC as a union, since it's
not any more.
diff --git a/sysdeps/nacl/dup.c b/sysdeps/nacl/dup.c
index 34a7cd46d47f..cbce3f5a5afd 100644
--- a/sysdeps/nacl/dup.c
+++ b/sysdeps/nacl/dup.c
@@ -27,4 +27,5 @@ __dup (int fd)
int result;
return NACL_CALL (__nacl_irt_fdio.dup (fd, &result), result);
}
+libc_hidden_def (__dup)
weak_alias (__dup, dup)
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0015-NaCl-Fix-libc.abilist-missing-GLIBC_2.24-A.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0015-NaCl-Fix-libc.abilist-missing-GLIBC_2.24-A.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0015-NaCl-Fix-libc.abilist-missing-GLIBC_2.24-A.patch?rev=1.1&content-type=text/plain
Index: 00_all_0015-NaCl-Fix-libc.abilist-missing-GLIBC_2.24-A.patch
===================================================================
From e591222f99d6c9d2a55d3dbec56340df876bdf9e Mon Sep 17 00:00:00 2001
From: Roland McGrath <roland@hack.frob.com>
Date: Fri, 2 Sep 2016 17:19:31 -0700
Subject: [PATCH] NaCl: Fix libc.abilist missing GLIBC_2.24 A.
* sysdeps/arm/nacl/libc.abilist: Add GLIBC_2.24 A.
---
ChangeLog | 2 ++
sysdeps/arm/nacl/libc.abilist | 1 +
2 files changed, 3 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index 1708d5045794..7521d86e7cc5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
2016-09-02 Roland McGrath <roland@hack.frob.com>
+ * sysdeps/arm/nacl/libc.abilist: Add GLIBC_2.24 A.
+
* sysdeps/nacl/dup.c: Add libc_hidden_def.
2016-09-02 Roland McGrath <roland@hack.frob.com>
diff --git a/sysdeps/arm/nacl/libc.abilist b/sysdeps/arm/nacl/libc.abilist
index 2f7751d167d1..dfa719830661 100644
--- a/sysdeps/arm/nacl/libc.abilist
+++ b/sysdeps/arm/nacl/libc.abilist
@@ -1840,4 +1840,5 @@ GLIBC_2.23 fts64_close F
GLIBC_2.23 fts64_open F
GLIBC_2.23 fts64_read F
GLIBC_2.23 fts64_set F
+GLIBC_2.24 GLIBC_2.24 A
GLIBC_2.24 quick_exit F
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0016-powerpc-Fix-POWER9-implies.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0016-powerpc-Fix-POWER9-implies.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0016-powerpc-Fix-POWER9-implies.patch?rev=1.1&content-type=text/plain
Index: 00_all_0016-powerpc-Fix-POWER9-implies.patch
===================================================================
From 66b8f3d8ecf84ec450ebcb5357bc31a3fcaaa4b1 Mon Sep 17 00:00:00 2001
From: Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
Date: Fri, 16 Sep 2016 17:31:58 -0300
Subject: [PATCH] powerpc: Fix POWER9 implies
Fix multiarch build for POWER9 by correcting the order of the
directories listed at sysnames configure variable.
(cherry picked from commit 1850ce5a2ea3b908b26165e7e951cd4334129f07)
---
ChangeLog | 8 ++++++++
sysdeps/powerpc/powerpc32/power9/multiarch/Implies | 2 +-
sysdeps/powerpc/powerpc64/power9/fpu/Implies | 1 -
3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 7521d86e7cc5..0b440d9d3329 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2016-09-19 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
+
+ [BZ #20615]
+ * sysdeps/powerpc/powerpc32/power9/multiarch/Implies: Replace
+ fpu directory by non-fpu.
+ * sysdeps/powerpc/powerpc64/power9/fpu/Implies: Remove dependency
+ on non-fpu directory from a fpu directory.
+
2016-09-02 Roland McGrath <roland@hack.frob.com>
* sysdeps/arm/nacl/libc.abilist: Add GLIBC_2.24 A.
diff --git a/sysdeps/powerpc/powerpc32/power9/multiarch/Implies b/sysdeps/powerpc/powerpc32/power9/multiarch/Implies
index 4393b5687264..1a46ef003586 100644
--- a/sysdeps/powerpc/powerpc32/power9/multiarch/Implies
+++ b/sysdeps/powerpc/powerpc32/power9/multiarch/Implies
@@ -1 +1 @@
-powerpc/powerpc32/power8/fpu/multiarch
+powerpc/powerpc32/power8/multiarch
diff --git a/sysdeps/powerpc/powerpc64/power9/fpu/Implies b/sysdeps/powerpc/powerpc64/power9/fpu/Implies
index fad2505ab948..ae0dbaf857bb 100644
--- a/sysdeps/powerpc/powerpc64/power9/fpu/Implies
+++ b/sysdeps/powerpc/powerpc64/power9/fpu/Implies
@@ -1,2 +1 @@
powerpc/powerpc64/power8/fpu
-powerpc/powerpc64/power8
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0017-posix-Correctly-enable-disable-cancellation-on-Linux.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0017-posix-Correctly-enable-disable-cancellation-on-Linux.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0017-posix-Correctly-enable-disable-cancellation-on-Linux.patch?rev=1.1&content-type=text/plain
Index: 00_all_0017-posix-Correctly-enable-disable-cancellation-on-Linux.patch
===================================================================
From 28202d1341537448c140291175f5ee837bf89ae1 Mon Sep 17 00:00:00 2001
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Wed, 14 Sep 2016 14:07:20 -0300
Subject: [PATCH] posix: Correctly enable/disable cancellation on Linux
posix_spawn
This patch correctly enable and disable asynchronous cancellation on
Linux posix_spawn. Current code invert the logic by enabling and
disabling instead. It also adds a new test to check if posix_spawn
is not a cancellation entrypoint.
Checked on x86_64, i686, powerpc64le, and aarch64.
* nptl/Makefile (tests): Add tst-exec5.
* nptl/tst-exec5.c: New file.
* sysdeps/unix/sysv/linux/spawni.c (__spawni): Correctly enable and disable
asynchronous cancellation.
---
ChangeLog | 7 ++
nptl/Makefile | 2 +-
nptl/tst-exec5.c | 196 +++++++++++++++++++++++++++++++++++++++
sysdeps/unix/sysv/linux/spawni.c | 6 +-
4 files changed, 208 insertions(+), 3 deletions(-)
create mode 100644 nptl/tst-exec5.c
diff --git a/ChangeLog b/ChangeLog
index 0b440d9d3329..2dadf8de87fd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2016-09-20 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * nptl/Makefile (tests): Add tst-exec5.
+ * nptl/tst-exec5.c: New file.
+ * sysdeps/unix/sysv/linux/spawni.c (__spawni): Correctly enable and disable
+ asynchronous cancellation.
+
2016-09-19 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
[BZ #20615]
diff --git a/nptl/Makefile b/nptl/Makefile
index 0d8aadebed81..fa925819ca5b 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -268,7 +268,7 @@ tests = tst-typesizes \
tst-flock1 tst-flock2 \
tst-signal1 tst-signal2 tst-signal3 tst-signal4 tst-signal5 \
tst-signal6 tst-signal7 \
- tst-exec1 tst-exec2 tst-exec3 tst-exec4 \
+ tst-exec1 tst-exec2 tst-exec3 tst-exec4 tst-exec5 \
tst-exit1 tst-exit2 tst-exit3 \
tst-stdio1 tst-stdio2 \
tst-stack1 tst-stack2 tst-stack3 tst-stack4 tst-pthread-getattr \
diff --git a/nptl/tst-exec5.c b/nptl/tst-exec5.c
new file mode 100644
index 000000000000..4327d8d41cd1
--- /dev/null
+++ b/nptl/tst-exec5.c
@@ -0,0 +1,196 @@
+/* Check if posix_spawn does not act as a cancellation entrypoint.
+ 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 <errno.h>
+#include <paths.h>
+#include <pthread.h>
+#include <signal.h>
+#include <spawn.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/wait.h>
+
+static int do_test (void);
+#define TEST_FUNCTION do_test ()
+#include <test-skeleton.c>
+
+static pthread_barrier_t b;
+
+static pid_t pid;
+static int pipefd[2];
+
+static void *
+tf (void *arg)
+{
+ int r = pthread_barrier_wait (&b);
+ if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
+ {
+ puts ("error: pthread_barrier_wait failed");
+ exit (1);
+ }
+
+ posix_spawn_file_actions_t a;
+ if (posix_spawn_file_actions_init (&a) != 0)
+ {
+ puts ("error: spawn_file_actions_init failed");
+ exit (1);
+ }
+
+ if (posix_spawn_file_actions_adddup2 (&a, pipefd[1], STDOUT_FILENO) != 0)
+ {
+ puts ("error: spawn_file_actions_adddup2 failed");
+ exit (1);
+ }
+
+ if (posix_spawn_file_actions_addclose (&a, pipefd[0]) != 0)
+ {
+ puts ("error: spawn_file_actions_addclose");
+ exit (1);
+ }
+
+ char *argv[] = { (char *) _PATH_BSHELL, (char *) "-c", (char *) "echo $$",
+ NULL };
+ if (posix_spawn (&pid, _PATH_BSHELL, &a, NULL, argv, NULL) != 0)
+ {
+ puts ("error: spawn failed");
+ exit (1);
+ }
+
+ return NULL;
+}
+
+
+static int
+do_test (void)
+{
+ /* The test basically pipe a 'echo $$' created by a thread with a
+ cancellation pending. It then checks if the thread is not cancelled,
+ the process is created and if the output is the expected one. */
+
+ if (pipe (pipefd) != 0)
+ {
+ puts ("error: pipe failed");
+ exit (1);
+ }
+
+ /* Not interested in knowing when the pipe is closed. */
+ if (sigignore (SIGPIPE) != 0)
+ {
+ puts ("error: sigignore failed");
+ exit (1);
+ }
+
+ /* To synchronize with the thread. */
+ if (pthread_barrier_init (&b, NULL, 2) != 0)
+ {
+ puts ("error: pthread_barrier_init failed");
+ exit (1);
+ }
+
+ pthread_t th;
+ if (pthread_create (&th, NULL, &tf, NULL) != 0)
+ {
+ puts ("error: pthread_create failed");
+ exit (1);
+ }
+
+ if (pthread_cancel (th) != 0)
+ {
+ puts ("error: pthread_cancel failed");
+ exit (1);
+ }
+
+ int r = pthread_barrier_wait (&b);
+ if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
+ {
+ puts ("error: pthread_barrier_wait");
+ exit (1);
+ }
+
+ void *retval;
+ if (pthread_join (th, &retval) != 0)
+ {
+ puts ("error: pthread_join failed\n");
+ }
+ if (retval == PTHREAD_CANCELED)
+ {
+ puts ("error: thread cancelled");
+ exit (1);
+ }
+
+ close (pipefd[1]);
+
+ /* The global 'pid' should be set by thread posix_spawn calling. Check
+ below if it was executed correctly and with expected output. */
+
+ char buf[64];
+ ssize_t n;
+ bool seen_pid = false;
+ while (TEMP_FAILURE_RETRY ((n = read (pipefd[0], buf, sizeof (buf)))) > 0)
+ {
+ /* We only expect to read the PID. */
+ char *endp;
+ long int rpid = strtol (buf, &endp, 10);
+
+ if (*endp != '\n')
+ {
+ printf ("error: didn't parse whole line: \"%s\"\n", buf);
+ exit (1);
+ }
+ if (endp == buf)
+ {
+ puts ("error: read empty line");
+ exit (1);
+ }
+
+ if (rpid != pid)
+ {
+ printf ("error: found \"%s\", expected PID %ld\n", buf,
+ (long int) pid);
+ exit (1);
+ }
+
+ if (seen_pid)
+ {
+ puts ("error: found more than one PID line");
+ exit (1);
+ }
+
+ seen_pid = true;
+ }
+
+ close (pipefd[0]);
+
+ int status;
+ int err = waitpid (pid, &status, 0);
+ if (err != pid)
+ {
+ puts ("errnor: waitpid failed");
+ exit (1);
+ }
+
+ if (!seen_pid)
+ {
+ puts ("error: didn't get PID");
+ exit (1);
+ }
+
+ return 0;
+}
diff --git a/sysdeps/unix/sysv/linux/spawni.c b/sysdeps/unix/sysv/linux/spawni.c
index bb3eecfde1a5..5c5fcad5f4d3 100644
--- a/sysdeps/unix/sysv/linux/spawni.c
+++ b/sysdeps/unix/sysv/linux/spawni.c
@@ -340,7 +340,9 @@ __spawnix (pid_t * pid, const char *file,
}
/* Disable asynchronous cancellation. */
- int cs = LIBC_CANCEL_ASYNC ();
+ int state;
+ __libc_ptf_call (__pthread_setcancelstate,
+ (PTHREAD_CANCEL_DISABLE, &state), 0);
args.file = file;
args.exec = exec;
@@ -386,7 +388,7 @@ __spawnix (pid_t * pid, const char *file,
__sigprocmask (SIG_SETMASK, &args.oldmask, 0);
- LIBC_CANCEL_RESET (cs);
+ __libc_ptf_call (__pthread_setcancelstate, (state, NULL), 0);
return ec;
}
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0018-posix-Correctly-block-unblock-all-signals-on-Linux-p.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0018-posix-Correctly-block-unblock-all-signals-on-Linux-p.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0018-posix-Correctly-block-unblock-all-signals-on-Linux-p.patch?rev=1.1&content-type=text/plain
Index: 00_all_0018-posix-Correctly-block-unblock-all-signals-on-Linux-p.patch
===================================================================
From 066437ad328b350a3768c5da773b884fcfb239c3 Mon Sep 17 00:00:00 2001
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Wed, 14 Sep 2016 14:41:21 -0300
Subject: [PATCH] posix: Correctly block/unblock all signals on Linux
posix_spawn
This patch correctly block and unblocks all signals when executing
Linux posix_spawn by using the __libc_signal_{un}block_all functions
instead of default sigprocmask. The latter might remove both
SIGCANCEL and SIGSETXID from the blocked signal list.
Checked on x86_64, i686, powerpc64le, and aarch64.
* sysdeps/unix/sysv/linux/spawni.c (__spawnix): Correctly block and unblock
all signals when executing the clone vfork child.
(SIGALL_SET): Remove macro.
---
ChangeLog | 4 ++++
sysdeps/unix/sysv/linux/spawni.c | 8 ++------
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 2dadf8de87fd..e0621c59a07f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2016-09-20 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+ * sysdeps/unix/sysv/linux/spawni.c (__spawnix): Correctly block and unblock
+ all signals when executing the clone vfork child.
+ (SIGALL_SET): Remove macro.
+
* nptl/Makefile (tests): Add tst-exec5.
* nptl/tst-exec5.c: New file.
* sysdeps/unix/sysv/linux/spawni.c (__spawni): Correctly enable and disable
diff --git a/sysdeps/unix/sysv/linux/spawni.c b/sysdeps/unix/sysv/linux/spawni.c
index 5c5fcad5f4d3..67e1c42426cf 100644
--- a/sysdeps/unix/sysv/linux/spawni.c
+++ b/sysdeps/unix/sysv/linux/spawni.c
@@ -58,10 +58,6 @@
normal program exit with the exit code 127. */
#define SPAWN_ERROR 127
-/* We need to block both SIGCANCEL and SIGSETXID. */
-#define SIGALL_SET \
- ((__sigset_t) { .__val = {[0 ... _SIGSET_NWORDS-1 ] = -1 } })
-
#ifdef __ia64__
# define CLONE(__fn, __stack, __stacksize, __flags, __args) \
__clone2 (__fn, __stack, __stacksize, __flags, __args, 0, 0, 0)
@@ -353,7 +349,7 @@ __spawnix (pid_t * pid, const char *file,
args.envp = envp;
args.xflags = xflags;
- __sigprocmask (SIG_BLOCK, &SIGALL_SET, &args.oldmask);
+ __libc_signal_block_all (&args.oldmask);
/* The clone flags used will create a new child that will run in the same
memory space (CLONE_VM) and the execution of calling thread will be
@@ -386,7 +382,7 @@ __spawnix (pid_t * pid, const char *file,
if ((ec == 0) && (pid != NULL))
*pid = new_pid;
- __sigprocmask (SIG_SETMASK, &args.oldmask, 0);
+ __libc_signal_restore_set (&args.oldmask);
__libc_ptf_call (__pthread_setcancelstate, (state, NULL), 0);
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0019-powerpc-Regenerate-ULPs.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0019-powerpc-Regenerate-ULPs.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0019-powerpc-Regenerate-ULPs.patch?rev=1.1&content-type=text/plain
Index: 00_all_0019-powerpc-Regenerate-ULPs.patch
===================================================================
From 4467e53ab2815032da7757213de875485c0b3c25 Mon Sep 17 00:00:00 2001
From: Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
Date: Wed, 5 Oct 2016 10:58:42 -0300
Subject: [PATCH] powerpc: Regenerate ULPs
* sysdeps/powerpc/fpu/libm-test-ulps: Regenerated.
---
ChangeLog | 4 ++
sysdeps/powerpc/fpu/libm-test-ulps | 106 ++++++++++++++++++-------------------
2 files changed, 57 insertions(+), 53 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index e0621c59a07f..3cad28279b16 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2016-10-05 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
+
+ * sysdeps/powerpc/fpu/libm-test-ulps: Regenerated.
+
2016-09-20 Adhemerval Zanella <adhemerval.zanella@linaro.org>
* sysdeps/unix/sysv/linux/spawni.c (__spawnix): Correctly block and unblock
diff --git a/sysdeps/powerpc/fpu/libm-test-ulps b/sysdeps/powerpc/fpu/libm-test-ulps
index 7f37c813d02d..36b700c5204c 100644
--- a/sysdeps/powerpc/fpu/libm-test-ulps
+++ b/sysdeps/powerpc/fpu/libm-test-ulps
@@ -36,8 +36,8 @@ double: 2
float: 2
idouble: 2
ifloat: 2
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: "acosh_downward":
double: 1
@@ -52,8 +52,8 @@ double: 2
float: 2
idouble: 2
ifloat: 2
-ildouble: 3
-ldouble: 3
+ildouble: 4
+ldouble: 4
Function: "acosh_upward":
double: 2
@@ -122,8 +122,8 @@ double: 3
float: 3
idouble: 3
ifloat: 3
-ildouble: 4
-ldouble: 4
+ildouble: 7
+ldouble: 7
Function: "atan":
double: 1
@@ -216,8 +216,8 @@ double: 3
float: 3
idouble: 3
ifloat: 3
-ildouble: 3
-ldouble: 3
+ildouble: 4
+ldouble: 4
Function: "cabs":
double: 1
@@ -272,8 +272,8 @@ double: 5
float: 3
idouble: 5
ifloat: 3
-ildouble: 5
-ldouble: 5
+ildouble: 8
+ldouble: 8
Function: Real part of "cacos_towardzero":
double: 2
@@ -288,8 +288,8 @@ double: 5
float: 3
idouble: 5
ifloat: 3
-ildouble: 5
-ldouble: 5
+ildouble: 8
+ldouble: 8
Function: Real part of "cacos_upward":
double: 2
@@ -328,8 +328,8 @@ double: 5
float: 3
idouble: 5
ifloat: 3
-ildouble: 5
-ldouble: 5
+ildouble: 8
+ldouble: 8
Function: Imaginary part of "cacosh_downward":
double: 2
@@ -344,8 +344,8 @@ double: 5
float: 3
idouble: 5
ifloat: 3
-ildouble: 5
-ldouble: 5
+ildouble: 8
+ldouble: 8
Function: Imaginary part of "cacosh_towardzero":
double: 2
@@ -432,8 +432,8 @@ double: 5
float: 3
idouble: 5
ifloat: 3
-ildouble: 5
-ldouble: 5
+ildouble: 8
+ldouble: 8
Function: Real part of "casin_towardzero":
double: 3
@@ -448,8 +448,8 @@ double: 5
float: 3
idouble: 5
ifloat: 3
-ildouble: 5
-ldouble: 5
+ildouble: 8
+ldouble: 8
Function: Real part of "casin_upward":
double: 2
@@ -488,8 +488,8 @@ double: 5
float: 3
idouble: 5
ifloat: 3
-ildouble: 5
-ldouble: 5
+ildouble: 8
+ldouble: 8
Function: Imaginary part of "casinh_downward":
double: 3
@@ -504,8 +504,8 @@ double: 5
float: 3
idouble: 5
ifloat: 3
-ildouble: 5
-ldouble: 5
+ildouble: 8
+ldouble: 8
Function: Imaginary part of "casinh_towardzero":
double: 3
@@ -696,8 +696,8 @@ double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: Real part of "ccos_downward":
double: 1
@@ -1132,8 +1132,8 @@ double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: Imaginary part of "csin":
ildouble: 1
@@ -1198,8 +1198,8 @@ double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: Real part of "csinh_downward":
double: 2
@@ -1318,8 +1318,8 @@ double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Function: Imaginary part of "ctan":
double: 2
@@ -1390,8 +1390,8 @@ double: 2
float: 1
idouble: 2
ifloat: 1
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Function: Real part of "ctanh_downward":
double: 4
@@ -1478,8 +1478,8 @@ double: 2
float: 2
idouble: 2
ifloat: 2
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Function: "erfc_downward":
double: 3
@@ -1564,8 +1564,8 @@ double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: "exp2_upward":
double: 1
@@ -1588,8 +1588,8 @@ ildouble: 2
ldouble: 2
Function: "exp_upward":
-float: 1
double: 1
+float: 1
idouble: 1
ifloat: 1
ildouble: 1
@@ -1624,8 +1624,8 @@ double: 1
float: 1
idouble: 1
ifloat: 1
-ildouble: 4
-ldouble: 4
+ildouble: 6
+ldouble: 6
Function: "fma":
ildouble: 1
@@ -1688,8 +1688,8 @@ double: 4
float: 5
idouble: 4
ifloat: 5
-ildouble: 10
-ldouble: 10
+ildouble: 11
+ldouble: 11
Function: "hypot":
double: 1
@@ -1752,8 +1752,8 @@ double: 1
float: 2
idouble: 1
ifloat: 2
-ildouble: 1
-ldouble: 1
+ildouble: 2
+ldouble: 2
Function: "j1_downward":
double: 3
@@ -1840,8 +1840,8 @@ double: 4
float: 5
idouble: 4
ifloat: 5
-ildouble: 10
-ldouble: 10
+ildouble: 11
+ldouble: 11
Function: "log":
float: 1
@@ -1910,8 +1910,8 @@ double: 2
float: 2
idouble: 2
ifloat: 2
-ildouble: 2
-ldouble: 2
+ildouble: 3
+ldouble: 3
Function: "log2":
double: 1
@@ -2184,16 +2184,16 @@ double: 3
float: 3
idouble: 3
ifloat: 3
-ildouble: 3
-ldouble: 3
+ildouble: 4
+ldouble: 4
Function: "tanh_towardzero":
double: 2
float: 2
idouble: 2
ifloat: 2
-ildouble: 3
-ldouble: 3
+ildouble: 4
+ldouble: 4
Function: "tanh_upward":
double: 3
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0020-Fix-Linux-sh4-pread-pwrite-argument-passing.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0020-Fix-Linux-sh4-pread-pwrite-argument-passing.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0020-Fix-Linux-sh4-pread-pwrite-argument-passing.patch?rev=1.1&content-type=text/plain
Index: 00_all_0020-Fix-Linux-sh4-pread-pwrite-argument-passing.patch
===================================================================
From ccebcff824e76f2d3905185b8ae9ff1b51607791 Mon Sep 17 00:00:00 2001
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date: Fri, 21 Oct 2016 19:29:18 -0200
Subject: [PATCH] Fix Linux sh4 pread/pwrite argument passing
Although conceptually correct for p{read,write}{64} offset argument passing,
sh4 implementation does not generate the correct expected code. The
__ALIGNMENT_ARG redefinition is incorrect for two reasons: 1. the
kernel-features.h header is included multiple times (since it contains no
guards) and 2. the value it redefines is also incorrect (should be '0, '
instead of empty definition).
This patch fixes it by adding another macro, SYSCALL_LL_PRW{64}, meant to be
used to pass the offset argument on p{read,write}64. It is basically the
already define SYSCALL_LL{64} plus __ALIGNMENT_ARG unless __ASSUME_PRW_DUMMY_ARG
is define. In this case an empty dummy argument is used regardless how
__ALIGNMENT_ARG is defined (sh4 case).
Checked on x86_64, i686, aarch64, armhf, and powerpc64le (basically a sanity
check). Also, John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> and
James Clarke <jrtc27@jrtc27.com> help me check on a debian sh4 bootstrap using
2.24 plus this patch to verify it also corrected fixed the regression issue.
I also verified the generated object for a 2.24 build and master with this
patch for sh4 and both look identical.
* sysdeps/unix/sysv/linux/pread.c (__libc_pread): Use SYSCALL_LL_PRW.
* sysdeps/unix/sysv/linux/pwrite.c (__libc_pwrite): Likewise.
* sysdeps/unix/sysv/linux/pread64.c (__libc_pread64): Use
SYSCALL_LL64_PRW.
* sysdeps/unix/sysv/linux/pwrite64.c (__libc_pwrite64): Likewise.
* sysdeps/unix/sysv/linux/sh/kernel-features.h: Define
__ASSUME_PRW_DUMMY_ARG.
* sysdeps/unix/sysv/linux/sh/pread.c: Remove file.
* sysdeps/unix/sysv/linux/sh/pread64.c: Likewise.
* sysdeps/unix/sysv/linux/sh/pwrite.c: Likewise.
* sysdeps/unix/sysv/linux/sh/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/sysdep.h: Define SYSCALL_LL_PRW and
SYSCALL_LL_PRW64 based on __ASSUME_PRW_DUMMY_ARG.
---
ChangeLog | 16 ++++++++++++++++
sysdeps/unix/sysv/linux/pread.c | 3 +--
sysdeps/unix/sysv/linux/pread64.c | 3 +--
sysdeps/unix/sysv/linux/pwrite.c | 3 +--
sysdeps/unix/sysv/linux/pwrite64.c | 3 +--
sysdeps/unix/sysv/linux/sh/kernel-features.h | 5 +++++
sysdeps/unix/sysv/linux/sh/pread.c | 23 -----------------------
sysdeps/unix/sysv/linux/sh/pread64.c | 23 -----------------------
sysdeps/unix/sysv/linux/sh/pwrite.c | 23 -----------------------
sysdeps/unix/sysv/linux/sh/pwrite64.c | 23 -----------------------
sysdeps/unix/sysv/linux/sysdep.h | 10 ++++++++++
11 files changed, 35 insertions(+), 100 deletions(-)
delete mode 100644 sysdeps/unix/sysv/linux/sh/pread.c
delete mode 100644 sysdeps/unix/sysv/linux/sh/pread64.c
delete mode 100644 sysdeps/unix/sysv/linux/sh/pwrite.c
delete mode 100644 sysdeps/unix/sysv/linux/sh/pwrite64.c
diff --git a/ChangeLog b/ChangeLog
index 3cad28279b16..b2f6372bface 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2016-10-24 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/pread.c (__libc_pread): Use SYSCALL_LL_PRW.
+ * sysdeps/unix/sysv/linux/pwrite.c (__libc_pwrite): Likewise.
+ * sysdeps/unix/sysv/linux/pread64.c (__libc_pread64): Use
+ SYSCALL_LL64_PRW.
+ * sysdeps/unix/sysv/linux/pwrite64.c (__libc_pwrite64): Likewise.
+ * sysdeps/unix/sysv/linux/sh/kernel-features.h: Define
+ __ASSUME_PRW_DUMMY_ARG.
+ * sysdeps/unix/sysv/linux/sh/pread.c: Remove file.
+ * sysdeps/unix/sysv/linux/sh/pread64.c: Likewise.
+ * sysdeps/unix/sysv/linux/sh/pwrite.c: Likewise.
+ * sysdeps/unix/sysv/linux/sh/pwrite64.c: Likewise.
+ * sysdeps/unix/sysv/linux/sysdep.h: Define SYSCALL_LL_PRW and
+ SYSCALL_LL_PRW64 based on __ASSUME_PRW_DUMMY_ARG.
+
2016-10-05 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
* sysdeps/powerpc/fpu/libm-test-ulps: Regenerated.
diff --git a/sysdeps/unix/sysv/linux/pread.c b/sysdeps/unix/sysv/linux/pread.c
index 1bcff64781b2..46d974d95215 100644
--- a/sysdeps/unix/sysv/linux/pread.c
+++ b/sysdeps/unix/sysv/linux/pread.c
@@ -28,8 +28,7 @@
ssize_t
__libc_pread (int fd, void *buf, size_t count, off_t offset)
{
- return SYSCALL_CANCEL (pread, fd, buf, count,
- __ALIGNMENT_ARG SYSCALL_LL (offset));
+ return SYSCALL_CANCEL (pread, fd, buf, count, SYSCALL_LL_PRW (offset));
}
strong_alias (__libc_pread, __pread)
diff --git a/sysdeps/unix/sysv/linux/pread64.c b/sysdeps/unix/sysv/linux/pread64.c
index 58c6aeb5413a..f51beae77a59 100644
--- a/sysdeps/unix/sysv/linux/pread64.c
+++ b/sysdeps/unix/sysv/linux/pread64.c
@@ -26,8 +26,7 @@
ssize_t
__libc_pread64 (int fd, void *buf, size_t count, off64_t offset)
{
- return SYSCALL_CANCEL (pread64, fd, buf, count,
- __ALIGNMENT_ARG SYSCALL_LL64 (offset));
+ return SYSCALL_CANCEL (pread64, fd, buf, count, SYSCALL_LL64_PRW (offset));
}
weak_alias (__libc_pread64, __pread64)
diff --git a/sysdeps/unix/sysv/linux/pwrite.c b/sysdeps/unix/sysv/linux/pwrite.c
index 9c502beac163..1371df8a6070 100644
--- a/sysdeps/unix/sysv/linux/pwrite.c
+++ b/sysdeps/unix/sysv/linux/pwrite.c
@@ -28,8 +28,7 @@
ssize_t
__libc_pwrite (int fd, const void *buf, size_t count, off_t offset)
{
- return SYSCALL_CANCEL (pwrite, fd, buf, count,
- __ALIGNMENT_ARG SYSCALL_LL (offset));
+ return SYSCALL_CANCEL (pwrite, fd, buf, count, SYSCALL_LL_PRW (offset));
}
strong_alias (__libc_pwrite, __pwrite)
diff --git a/sysdeps/unix/sysv/linux/pwrite64.c b/sysdeps/unix/sysv/linux/pwrite64.c
index b49e6bc286cb..22f1f05a44d9 100644
--- a/sysdeps/unix/sysv/linux/pwrite64.c
+++ b/sysdeps/unix/sysv/linux/pwrite64.c
@@ -26,8 +26,7 @@
ssize_t
__libc_pwrite64 (int fd, const void *buf, size_t count, off64_t offset)
{
- return SYSCALL_CANCEL (pwrite64, fd, buf, count,
- __ALIGNMENT_ARG SYSCALL_LL64 (offset));
+ return SYSCALL_CANCEL (pwrite64, fd, buf, count, SYSCALL_LL64_PRW (offset));
}
weak_alias (__libc_pwrite64, __pwrite64)
libc_hidden_weak (__pwrite64)
diff --git a/sysdeps/unix/sysv/linux/sh/kernel-features.h b/sysdeps/unix/sysv/linux/sh/kernel-features.h
index ad05fc39e161..c5240fafbd5f 100644
--- a/sysdeps/unix/sysv/linux/sh/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/sh/kernel-features.h
@@ -44,3 +44,8 @@
/* SH does not have a 64-bit inode field. */
#undef __ASSUME_ST_INO_64_BIT
+
+/* SH4 ABI does not really require argument alignment for 64-bits, but
+ the kernel interface for p{read,write}64 adds a dummy long argument
+ before the offset. */
+#define __ASSUME_PRW_DUMMY_ARG 1
diff --git a/sysdeps/unix/sysv/linux/sh/pread.c b/sysdeps/unix/sysv/linux/sh/pread.c
deleted file mode 100644
index d3f99f35dbf0..000000000000
--- a/sysdeps/unix/sysv/linux/sh/pread.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright (C) 1997-2016 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- 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/>. */
-
-/* SH4 ABI does not really require argument alignment for 64-bits, but
- the kernel interface for pread adds a dummy long argument before the
- offset. */
-#define __ALIGNMENT_ARG
-#include <sysdeps/unix/sysv/linux/pread.c>
diff --git a/sysdeps/unix/sysv/linux/sh/pread64.c b/sysdeps/unix/sysv/linux/sh/pread64.c
deleted file mode 100644
index b2e8a2578875..000000000000
--- a/sysdeps/unix/sysv/linux/sh/pread64.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright (C) 1997-2016 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- 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/>. */
-
-/* SH4 ABI does not really require argument alignment for 64-bits, but
- the kernel interface for pread adds a dummy long argument before the
- offset. */
-#define __ALIGNMENT_ARG
-#include <sysdeps/unix/sysv/linux/pread64.c>
diff --git a/sysdeps/unix/sysv/linux/sh/pwrite.c b/sysdeps/unix/sysv/linux/sh/pwrite.c
deleted file mode 100644
index 391ed5e17b60..000000000000
--- a/sysdeps/unix/sysv/linux/sh/pwrite.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright (C) 1997-2016 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
-
- 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/>. */
-
-/* SH4 ABI does not really require argument alignment for 64-bits, but
- the kernel interface for pwrite adds a dummy long argument before the
- offset. */
-#define __ALIGNMENT_ARG
-#include <sysdeps/unix/sysv/linux/pwrite.c>
diff --git a/sysdeps/unix/sysv/linux/sh/pwrite64.c b/sysdeps/unix/sysv/linux/sh/pwrite64.c
deleted file mode 100644
index 683a5d9886a2..000000000000
--- a/sysdeps/unix/sysv/linux/sh/pwrite64.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright (C) 1997-2016 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ralf Baechle <ralf@gnu.org>, 1998.
-
- 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/>. */
-
-/* SH4 ABI does not really require argument alignment for 64-bits, but
- the kernel interface for pread adds a dummy long argument before the
- offset. */
-#define __ALIGNMENT_ARG
-#include <sysdeps/unix/sysv/linux/pwrite64.c>
diff --git a/sysdeps/unix/sysv/linux/sysdep.h b/sysdeps/unix/sysv/linux/sysdep.h
index a469f57121ff..e3ecd5638e0a 100644
--- a/sysdeps/unix/sysv/linux/sysdep.h
+++ b/sysdeps/unix/sysv/linux/sysdep.h
@@ -48,6 +48,16 @@
__LONG_LONG_PAIR ((long) ((val) >> 32), (long) ((val) & 0xffffffff))
#endif
+/* Provide a common macro to pass 64-bit value on pread and pwrite
+ syscalls. */
+#ifdef __ASSUME_PRW_DUMMY_ARG
+# define SYSCALL_LL_PRW(val) 0, SYSCALL_LL (val)
+# define SYSCALL_LL64_PRW(val) 0, SYSCALL_LL64 (val)
+#else
+# define SYSCALL_LL_PRW(val) __ALIGNMENT_ARG SYSCALL_LL (val)
+# define SYSCALL_LL64_PRW(val) __ALIGNMENT_ARG SYSCALL_LL64 (val)
+#endif
+
/* Provide a macro to pass the off{64}_t argument on p{readv,writev}{64}. */
#define LO_HI_LONG(val) \
(long) (val), \
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0021-Fix-cmpli-usage-in-power6-memset.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0021-Fix-cmpli-usage-in-power6-memset.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0021-Fix-cmpli-usage-in-power6-memset.patch?rev=1.1&content-type=text/plain
Index: 00_all_0021-Fix-cmpli-usage-in-power6-memset.patch
===================================================================
From 797c7fb1978abb1f6a6404e0453c4b775fc0cb2e Mon Sep 17 00:00:00 2001
From: Joseph Myers <joseph@codesourcery.com>
Date: Tue, 25 Oct 2016 15:54:16 +0000
Subject: [PATCH] Fix cmpli usage in power6 memset.
Building glibc for powerpc64 with recent (2.27.51.20161012) binutils,
with multi-arch enabled, I get the error:
../sysdeps/powerpc/powerpc64/power6/memset.S: Assembler messages:
../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: operand out of range (5 is not between 0 and 1)
../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: operand out of range (128 is not between 0 and 31)
../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: missing operand
Indeed, cmpli is documented as a four-operand instruction, and looking
at nearby code it seems likely cmpldi was intended. This patch fixes
this powerpc64 code accordingly, and makes a corresponding change to
the powerpc32 code.
Tested for powerpc, powerpc64 and powerpc64le by Tulio Magno Quites
Machado Filho
* sysdeps/powerpc/powerpc32/power6/memset.S (memset): Use cmplwi
instead of cmpli.
* sysdeps/powerpc/powerpc64/power6/memset.S (memset): Use cmpldi
instead of cmpli.
(cherry picked from commit 78b7adbaea643f2f213bb113e3ec933416a769a8)
---
ChangeLog | 7 +++++++
sysdeps/powerpc/powerpc32/power6/memset.S | 2 +-
sysdeps/powerpc/powerpc64/power6/memset.S | 2 +-
3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index b2f6372bface..7a3669c33076 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2016-10-25 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/powerpc/powerpc32/power6/memset.S (memset): Use cmplwi
+ instead of cmpli.
+ * sysdeps/powerpc/powerpc64/power6/memset.S (memset): Use cmpldi
+ instead of cmpli.
+
2016-10-24 Adhemerval Zanella <adhemerval.zanella@linaro.org>
* sysdeps/unix/sysv/linux/pread.c (__libc_pread): Use SYSCALL_LL_PRW.
diff --git a/sysdeps/powerpc/powerpc32/power6/memset.S b/sysdeps/powerpc/powerpc32/power6/memset.S
index b2a222edd22a..d5dbe83af2fd 100644
--- a/sysdeps/powerpc/powerpc32/power6/memset.S
+++ b/sysdeps/powerpc/powerpc32/power6/memset.S
@@ -394,7 +394,7 @@ L(cacheAlignedx):
/* A simple loop for the longer (>640 bytes) lengths. This form limits
the branch miss-predicted to exactly 1 at loop exit.*/
L(cacheAligned512):
- cmpli cr1,rLEN,128
+ cmplwi cr1,rLEN,128
blt cr1,L(cacheAligned1)
dcbz 0,rMEMP
addi rLEN,rLEN,-128
diff --git a/sysdeps/powerpc/powerpc64/power6/memset.S b/sysdeps/powerpc/powerpc64/power6/memset.S
index c2d1c4e600c8..d445b1e1ef18 100644
--- a/sysdeps/powerpc/powerpc64/power6/memset.S
+++ b/sysdeps/powerpc/powerpc64/power6/memset.S
@@ -251,7 +251,7 @@ L(cacheAlignedx):
/* A simple loop for the longer (>640 bytes) lengths. This form limits
the branch miss-predicted to exactly 1 at loop exit.*/
L(cacheAligned512):
- cmpli cr1,rLEN,128
+ cmpldi cr1,rLEN,128
blt cr1,L(cacheAligned1)
dcbz 0,rMEMP
addi rLEN,rLEN,-128
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0022-gconv.h-fix-build-with-GCC-7.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0022-gconv.h-fix-build-with-GCC-7.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0022-gconv.h-fix-build-with-GCC-7.patch?rev=1.1&content-type=text/plain
Index: 00_all_0022-gconv.h-fix-build-with-GCC-7.patch
===================================================================
From fe783a26a5922fe409ffc3e378c5caaec1ed7f76 Mon Sep 17 00:00:00 2001
From: Aurelien Jarno <aurelien@aurel32.net>
Date: Sun, 6 Nov 2016 21:33:10 +0100
Subject: [PATCH] gconv.h: fix build with GCC 7
gconv.h is using a flex array to define the __gconv_info member in an
invalid way, causing GCC 7 to issue an error:
| In file included from ../include/gconv.h:1:0,
| from ../sysdeps/unix/sysv/linux/_G_config.h:32,
| from ../libio/libio.h:31,
| from ../include/libio.h:4,
| from ../libio/stdio.h:74,
| from ../include/stdio.h:5,
| from test-math-isinff.cc:22:
| ../iconv/gconv.h:142:50: error: flexible array member '__gconv_info::__data' not at end of 'struct _IO_codecvt'
| In file included from ../include/libio.h:4:0,
| from ../libio/stdio.h:74,
| from ../include/stdio.h:5,
| from test-math-isinff.cc:22:
| ../libio/libio.h:211:14: note: next member '_G_iconv_t _IO_codecvt::__cd_out' declared here
| ../libio/libio.h:187:8: note: in the definition of 'struct _IO_codecvt'
| In file included from ../include/gconv.h:1:0,
| from ../sysdeps/unix/sysv/linux/_G_config.h:32,
| from ../libio/libio.h:31,
| from ../include/libio.h:4,
| from ../libio/stdio.h:74,
| from ../include/stdio.h:5,
| from test-math-isinff.cc:22:
| ../iconv/gconv.h:142:50: error: flexible array member '__gconv_info::__data' not at end of 'struct _IO_wide_data'
| In file included from ../include/libio.h:4:0,
| from ../libio/stdio.h:74,
| from ../include/stdio.h:5,
| from test-math-isinff.cc:22:
| ../libio/libio.h:211:14: note: next member '_G_iconv_t _IO_codecvt::__cd_out' declared here
| ../libio/libio.h:215:8: note: in the definition of 'struct _IO_wide_data'
This is basically a revert to the code from 15 years ago. More details
are available in the GCC bug:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78039
Changelog:
* iconv/gconv.h (__gconv_info): Define __data element using a
zero-length array.
(cherry picked from commit 0623b9e6a9c3441427cf8c421bcc81d09e48fdc1)
---
ChangeLog | 5 +++++
iconv/gconv.h | 2 +-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/ChangeLog b/ChangeLog
index 7a3669c33076..57e1a3a8a366 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-11-06 Aurelien Jarno <aurelien@aurel32.net>
+
+ * iconv/gconv.h (__gconv_info): Define __data element using a
+ zero-length array.
+
2016-10-25 Joseph Myers <joseph@codesourcery.com>
* sysdeps/powerpc/powerpc32/power6/memset.S (memset): Use cmplwi
diff --git a/iconv/gconv.h b/iconv/gconv.h
index 8d8ce5813b72..a87028047ba5 100644
--- a/iconv/gconv.h
+++ b/iconv/gconv.h
@@ -139,7 +139,7 @@ typedef struct __gconv_info
{
size_t __nsteps;
struct __gconv_step *__steps;
- __extension__ struct __gconv_step_data __data __flexarr;
+ __extension__ struct __gconv_step_data __data[0];
} *__gconv_t;
/* Transliteration using the locale's data. */
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0023-Fix-linknamespace-parallel-test-failures.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0023-Fix-linknamespace-parallel-test-failures.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0023-Fix-linknamespace-parallel-test-failures.patch?rev=1.1&content-type=text/plain
Index: 00_all_0023-Fix-linknamespace-parallel-test-failures.patch
===================================================================
From 822305be765e0ae130820632e865d61710dc2746 Mon Sep 17 00:00:00 2001
From: Joseph Myers <joseph@codesourcery.com>
Date: Thu, 3 Nov 2016 22:47:02 +0000
Subject: [PATCH] Fix linknamespace parallel test failures.
Having found that with my script to build many glibc variants I could
reproduce the linknamespace test failures in parallel builds (that
various people had previously reported but I hadn't seen myself), I
investigated those failures further. This patch adds a missing
dependency to those tests.
Tested for x86_64, including the configuration where I saw those
failures and where I don't see them with this patch.
* conform/Makefile ($(linknamespace-header-tests)): Also depend on
$(linknamespace-symlists-tests).
(cherry picked from commit 6c50bb532bb1f47084762e16fbf52af9b5a752d8)
---
ChangeLog | 5 +++++
conform/Makefile | 1 +
2 files changed, 6 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index 57e1a3a8a366..a51771c97668 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-11-03 Joseph Myers <joseph@codesourcery.com>
+
+ * conform/Makefile ($(linknamespace-header-tests)): Also depend on
+ $(linknamespace-symlists-tests).
+
2016-11-06 Aurelien Jarno <aurelien@aurel32.net>
* iconv/gconv.h (__gconv_info): Define __data element using a
diff --git a/conform/Makefile b/conform/Makefile
index 32a0937b0682..762aac98fcb6 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -229,6 +229,7 @@ $(linknamespace-symlist-stdlibs-tests): $(objpfx)symlist-stdlibs-%: \
$(linknamespace-header-tests): $(objpfx)%/linknamespace.out: \
linknamespace.pl \
+ $(linknamespace-symlists-tests) \
$(linknamespace-symlist-stdlibs-tests)
(set -e; std_hdr=$*; std=$${std_hdr%%/*}; hdr=$${std_hdr#*/}; \
mkdir -p $(@D)/scratch; \
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0024-disable-ldconfig-during-install.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0024-disable-ldconfig-during-install.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0024-disable-ldconfig-during-install.patch?rev=1.1&content-type=text/plain
Index: 00_all_0024-disable-ldconfig-during-install.patch
===================================================================
From df75883953dfaacca6cd6f26e53b4254db58e744 Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Wed, 1 Apr 2009 02:15:48 -0400
Subject: [PATCH] disable ldconfig during install
Do not bother running ldconfig on DESTDIR. It's a waste of time as we
won't use the result (portage will rebuild the cache after install).
Also, the Gentoo sandbox does not currently catch chroot() behavior so
we end up (incorrectly) flagging it as a violation as a write to /etc.
http://sourceware.org/ml/libc-alpha/2012-08/msg00118.html
https://bugs.gentoo.org/431038
---
Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile b/Makefile
index 32748b3d2edd..01a6b24488de 100644
--- a/Makefile
+++ b/Makefile
@@ -106,6 +106,7 @@ install-symbolic-link: subdir_install
rm -f $(symbolic-link-list)
install:
+dont-bother-with-destdir:
-test ! -x $(elf-objpfx)ldconfig || LC_ALL=C \
$(elf-objpfx)ldconfig $(addprefix -r ,$(install_root)) \
$(slibdir) $(libdir)
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0025-reload-etc-resolv.conf-when-it-has-changed.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0025-reload-etc-resolv.conf-when-it-has-changed.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0025-reload-etc-resolv.conf-when-it-has-changed.patch?rev=1.1&content-type=text/plain
Index: 00_all_0025-reload-etc-resolv.conf-when-it-has-changed.patch
===================================================================
From 727cea2ca77b47681f4678d5fb3180aab89fe9ab Mon Sep 17 00:00:00 2001
From: Thorsten Kukuk <kukuk@suse.de>
Date: Sun, 27 May 2007 14:44:22 -0400
Subject: [PATCH] reload /etc/resolv.conf when it has changed
if /etc/resolv.conf is updated, then make sure applications
already running get the updated information.
ripped from SuSE
http://bugs.gentoo.org/177416
---
resolv/res_libc.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/resolv/res_libc.c b/resolv/res_libc.c
index a4b376f15b0b..848f77395877 100644
--- a/resolv/res_libc.c
+++ b/resolv/res_libc.c
@@ -25,6 +25,7 @@
#include <arpa/nameser.h>
#include <resolv.h>
#include <libc-lock.h>
+#include <sys/stat.h>
extern unsigned long long int __res_initstamp attribute_hidden;
/* We have atomic increment operations on 64-bit platforms. */
@@ -93,6 +94,20 @@ int
__res_maybe_init (res_state resp, int preinit)
{
if (resp->options & RES_INIT) {
+ static time_t last_mtime, last_check;
+ time_t now;
+ struct stat statbuf;
+
+ time (&now);
+ if (now != last_check) {
+ last_check = now;
+ if (stat (_PATH_RESCONF, &statbuf) == 0 && last_mtime != statbuf.st_mtime) {
+ last_mtime = statbuf.st_mtime;
+ atomicinclock (lock);
+ atomicinc (__res_initstamp);
+ atomicincunlock (lock);
+ }
+ }
if (__res_initstamp != resp->_u._ext.initstamp) {
if (resp->nscount > 0)
__res_iclose (resp, true);
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0026-rtld-do-not-ignore-arch-specific-CFLAGS.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0026-rtld-do-not-ignore-arch-specific-CFLAGS.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0026-rtld-do-not-ignore-arch-specific-CFLAGS.patch?rev=1.1&content-type=text/plain
Index: 00_all_0026-rtld-do-not-ignore-arch-specific-CFLAGS.patch
===================================================================
From 0b97118e38a9fe9facbe1e2178a32790b655ee5c Mon Sep 17 00:00:00 2001
From: Carlos O'Donell <codonell@redhat.com>
Date: Tue, 8 Jan 2013 11:47:12 -0500
Subject: [PATCH] rtld: do not ignore arch-specific CFLAGS
https://bugs.gentoo.org/452184
http://sourceware.org/bugzilla/show_bug.cgi?id=15005
http://sourceware.org/ml/libc-alpha/2013-01/msg00247.html
---
elf/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/elf/Makefile b/elf/Makefile
index 593403c6409c..68c5d82a7094 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -476,7 +476,7 @@ CFLAGS-ldconfig.c = $(SYSCONF-FLAGS) -D'LIBDIR="$(libdir)"' \
libof-ldconfig = ldconfig
CFLAGS-dl-cache.c = $(SYSCONF-FLAGS)
CFLAGS-cache.c = $(SYSCONF-FLAGS)
-CFLAGS-rtld.c = $(SYSCONF-FLAGS)
+CFLAGS-rtld.c += $(SYSCONF-FLAGS)
cpp-srcs-left := $(all-rtld-routines:=.os)
lib := rtld
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0027-gentoo-support-running-tests-under-sandbox.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0027-gentoo-support-running-tests-under-sandbox.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0027-gentoo-support-running-tests-under-sandbox.patch?rev=1.1&content-type=text/plain
Index: 00_all_0027-gentoo-support-running-tests-under-sandbox.patch
===================================================================
From 9886b16ac4268e98cec9f70b1ba1e7136eb56da5 Mon Sep 17 00:00:00 2001
From: "Stephanie J. Lockwood-Childs" <wormo@gentoo.org>
Date: Tue, 13 Mar 2007 01:57:21 -0400
Subject: [PATCH] gentoo: support running tests under sandbox
when glibc runs its tests, it does so by invoking the local library loader.
in Gentoo, we build/run inside of our "sandbox" which itself is linked against
libdl (so that it can load libraries and pull out symbols). the trouble
is that when you upgrade from an older glibc to the new one, often times
internal symbols change name or abi. this is normally OK as you cannot use
libc.so from say version 2.3.6 but libpthread.so from say version 2.5, so
we always say "keep all of the glibc libraries from the same build". but
when glibc runs its tests, it uses dynamic paths to point to its new local
copies of libraries. if the test doesnt use libdl, then glibc doesnt add
its path, and when sandbox triggers the loading of libdl, glibc does so
from the host system system. this gets us into the case of all libraries
are from the locally compiled version of glibc except for libdl.so.
http://bugs.gentoo.org/56898
---
Makeconfig | 2 +-
iconvdata/run-iconv-test.sh | 2 +-
nptl/tst-tls6.sh | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Makeconfig b/Makeconfig
index 03fd89c13e8c..a69fe2abc5b3 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -647,7 +647,7 @@ comma = ,
sysdep-library-path = \
$(subst $(empty) ,:,$(strip $(patsubst -Wl$(comma)-rpath-link=%, %,\
$(filter -Wl$(comma)-rpath-link=%,\
- $(sysdep-LDFLAGS)))))
+ $(sysdep-LDFLAGS)))) $(common-objpfx)/dlfcn)
# $(run-via-rtld-prefix) is a command that, when prepended to the name
# of a program built with the newly built library, produces a command
# that, executed on the host for which the library is built, runs that
diff --git a/iconvdata/run-iconv-test.sh b/iconvdata/run-iconv-test.sh
index 2e7105a2d92c..54217e6551ff 100755
--- a/iconvdata/run-iconv-test.sh
+++ b/iconvdata/run-iconv-test.sh
@@ -31,7 +31,7 @@ temp2=$codir/iconvdata/iconv-test.yyy
trap "rm -f $temp1 $temp2" 1 2 3 15
# We have to have some directories in the library path.
-LIBPATH=$codir:$codir/iconvdata
+LIBPATH=$codir:$codir/iconvdata:$codir/dlfcn
# How the start the iconv(1) program.
ICONV='$codir/elf/ld.so --library-path $LIBPATH --inhibit-rpath ${from}.so \
diff --git a/nptl/tst-tls6.sh b/nptl/tst-tls6.sh
index f828008303e8..4aef0d511148 100755
--- a/nptl/tst-tls6.sh
+++ b/nptl/tst-tls6.sh
@@ -26,7 +26,7 @@ run_program_env=$1; shift
logfile=$common_objpfx/nptl/tst-tls6.out
# We have to find libc and nptl
-library_path=${common_objpfx}:${common_objpfx}nptl
+library_path=${common_objpfx}:${common_objpfx}nptl:${common_objpfx}/dlfcn
tst_tls5="${test_via_rtld_prefix} ${common_objpfx}/nptl/tst-tls5"
> $logfile
--
2.10.2
1.1 src/patchsets/glibc/2.24/00_all_0028-sys-types.h-drop-sys-sysmacros.h-include.patch
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0028-sys-types.h-drop-sys-sysmacros.h-include.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0028-sys-types.h-drop-sys-sysmacros.h-include.patch?rev=1.1&content-type=text/plain
Index: 00_all_0028-sys-types.h-drop-sys-sysmacros.h-include.patch
===================================================================
From 92bf87d8c4837feaec62958be59c3119b8b4f5ae Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Tue, 29 Dec 2015 17:54:31 -0500
Subject: [PATCH] sys/types.h: drop sys/sysmacros.h include
We want to break apart this include path due to namespace pollution.
https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html
---
posix/sys/types.h | 3 ---
1 file changed, 3 deletions(-)
diff --git a/posix/sys/types.h b/posix/sys/types.h
index a7285671bf31..b3007db0247c 100644
--- a/posix/sys/types.h
+++ b/posix/sys/types.h
@@ -217,9 +217,6 @@ typedef int register_t __attribute__ ((__mode__ (__word__)));
/* It also defines `fd_set' and the FD_* macros for `select'. */
# include <sys/select.h>
-
-/* BSD defines these symbols, so we follow. */
-# include <sys/sysmacros.h>
#endif /* Use misc. */
--
2.10.2
1.1 src/patchsets/glibc/2.24/README.history
file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/README.history?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/README.history?rev=1.1&content-type=text/plain
Index: README.history
===================================================================
1 11 Nov 2016
+ 00_all_0001-x86-Use-sysdep.o-from-libc.a-in-static-libraries.patch
+ 00_all_0002-malloc-Preserve-arena-free-list-thread-count-invaria.patch
+ 00_all_0003-Update-from-Translation-Project.patch
+ 00_all_0004-powerpc-fix-ifunc-sel.h-with-GCC-6.patch
+ 00_all_0005-powerpc-fix-ifunc-sel.h-fix-asm-constraints-and-clob.patch
+ 00_all_0006-Fix-sNaN-handling-in-nearbyint-on-32-bit-sparc.patch
+ 00_all_0007-sparc-remove-fdim-sparc-specific-implementations.patch
+ 00_all_0008-Do-not-override-objects-in-libc.a-in-other-static-li.patch
+ 00_all_0009-arm-mark-__startcontext-as-.cantunwind-bug-20435.patch
+ 00_all_0010-argp-Do-not-override-GCC-keywords-with-macros-BZ-169.patch
+ 00_all_0011-nptl-tst-once5-Reduce-time-to-expected-failure.patch
+ 00_all_0012-NaCl-Fix-compile-error-in-clock-function.patch
+ 00_all_0013-Fix-generic-wait3-after-union-wait_status-removal.patch
+ 00_all_0014-NaCl-Fix-compile-error-for-__dup-after-libc_hidden_p.patch
+ 00_all_0015-NaCl-Fix-libc.abilist-missing-GLIBC_2.24-A.patch
+ 00_all_0016-powerpc-Fix-POWER9-implies.patch
+ 00_all_0017-posix-Correctly-enable-disable-cancellation-on-Linux.patch
+ 00_all_0018-posix-Correctly-block-unblock-all-signals-on-Linux-p.patch
+ 00_all_0019-powerpc-Regenerate-ULPs.patch
+ 00_all_0020-Fix-Linux-sh4-pread-pwrite-argument-passing.patch
+ 00_all_0021-Fix-cmpli-usage-in-power6-memset.patch
+ 00_all_0022-gconv.h-fix-build-with-GCC-7.patch
+ 00_all_0023-Fix-linknamespace-parallel-test-failures.patch
+ 00_all_0024-disable-ldconfig-during-install.patch
+ 00_all_0025-reload-etc-resolv.conf-when-it-has-changed.patch
+ 00_all_0026-rtld-do-not-ignore-arch-specific-CFLAGS.patch
+ 00_all_0027-gentoo-support-running-tests-under-sandbox.patch
+ 00_all_0028-sys-types.h-drop-sys-sysmacros.h-include.patch
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2016-11-14 20:06 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-14 20:06 [gentoo-commits] gentoo commit in src/patchsets/glibc/2.24: 00_all_0001-x86-Use-sysdep.o-from-libc.a-in-static-libraries.patch 00_all_0002-malloc-Preserve-arena-free-list-thread-count-invaria.patch 00_all_0003-Update-from-Translation-Project.patch 00_all_0004-powerpc-fix-ifunc-sel.h-with-GCC-6.patch 00_all_0005-powerpc-fix-ifunc-sel.h-fix-asm-constraints-and-clob.patch 00_all_0006-Fix-sNaN-handling-in-nearbyint-on-32-bit-sparc.patch 00_all_0007-sparc-remove-fdim-sparc-specific-implementations.patch 00_all_0008-Do-not-override-objects-in-libc.a-in-other-static-li.patch 00_all_0009-arm-mark-__startcontext-as-.cantunwind-bug-20435.patch 00_all_0010-argp-Do-not-override-GCC-keywords-with-macros-BZ-169.patch 00_all_0011-nptl-tst-once5-Reduce-time-to-expected-failure.patch 00_all_0012-NaCl-Fix-compile-error-in-clock-function.patch 00_all_0013-Fix-generic-wait3-after-union-wait_status-removal.patch 00_all_0014-NaCl-Fix-compile-error-for-__dup-after-libc_hidden_p.patch 00_all_0015-N aCl-Fix-libc.abil ist-missing-GLIBC_2.24-A.patch 00_all_0016-powerpc-Fix-POWER9-implies.patch 00_all_0017-posix-Correctly-enable-disable-cancellation-on-Linux.patch 00_all_0018-posix-Correctly-block-unblock-all-signals-on-Linux-p.patch 00_all_0019-powerpc-Regenerate-ULPs.patch 00_all_0020-Fix-Linux-sh4-pread-pwrite-argument-passing.patch 00_all_0021-Fix-cmpli-usage-in-power6-memset.patch 00_all_0022-gconv.h-fix-build-with-GCC-7.patch 00_all_0023-Fix-linknamespace-parallel-test-failures.patch 00_all_0024-disable-ldconfig-during-install.patch 00_all_0025-reload-etc-resolv.conf-when-it-has-changed.patch 00_all_0026-rtld-do-not-ignore-arch-specific-CFLAGS.patch 00_all_0027-gentoo-support-running-tests-under-sandbox.patch 00_all_0028-sys-types.h-drop-sys-sysmacros.h-include.patch README.history Mike Frysinger (vapier)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox