Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=multilib.git;a=commitdiff;h=d0d79f07fb26ba4483d87f1a817a4fd7c65c0f86
commit d0d79f07fb26ba4483d87f1a817a4fd7c65c0f86 Author: crazy <[email protected]> Date: Fri Mar 3 18:26:37 2017 +0100 glibc-2.25-3-x86_64 * rel bump again * added 3 revert patches , for more info see : https://sourceware.org/bugzilla/show_bug.cgi?id=21041 diff --git a/source/base/glibc/0001-Revert-Allow-IFUNC-relocation-against-unrelocated-sh.patch b/source/base/glibc/0001-Revert-Allow-IFUNC-relocation-against-unrelocated-sh.patch new file mode 100644 index 0000000..3dc75e9 --- /dev/null +++ b/source/base/glibc/0001-Revert-Allow-IFUNC-relocation-against-unrelocated-sh.patch @@ -0,0 +1,41 @@ +From d7f109e7b7f3befdbaacefec44e42adaeb2644f2 Mon Sep 17 00:00:00 2001 +From: crazy <[email protected]> +Date: Fri, 3 Mar 2017 17:39:08 +0100 +Subject: [PATCH 1/3] Revert "Allow IFUNC relocation against unrelocated shared + library" + +This reverts commit 6fab532b4781b0bcb554fd5c2f2e6d5448343aff. +--- + sysdeps/i386/dl-machine.h | 2 +- + sysdeps/x86_64/dl-machine.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h +index 99a72f68f4..6eca69d567 100644 +--- a/sysdeps/i386/dl-machine.h ++++ b/sysdeps/i386/dl-machine.h +@@ -329,7 +329,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, + { + const char *strtab + = (const char *) D_PTR (map, l_info[DT_STRTAB]); +- _dl_error_printf ("\ ++ _dl_fatal_printf ("\ + %s: Relink `%s' with `%s' for IFUNC symbol `%s'\n", + RTLD_PROGNAME, map->l_name, + sym_map->l_name, +diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h +index daf4d8c070..3e7ae22c67 100644 +--- a/sysdeps/x86_64/dl-machine.h ++++ b/sysdeps/x86_64/dl-machine.h +@@ -339,7 +339,7 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, + { + const char *strtab + = (const char *) D_PTR (map, l_info[DT_STRTAB]); +- _dl_error_printf ("\ ++ _dl_fatal_printf ("\ + %s: Relink `%s' with `%s' for IFUNC symbol `%s'\n", + RTLD_PROGNAME, map->l_name, + sym_map->l_name, +-- +2.12.0 + diff --git a/source/base/glibc/0002-Revert-Check-IFUNC-definition-in-unrelocated-shared-.patch b/source/base/glibc/0002-Revert-Check-IFUNC-definition-in-unrelocated-shared-.patch new file mode 100644 index 0000000..997bcbf --- /dev/null +++ b/source/base/glibc/0002-Revert-Check-IFUNC-definition-in-unrelocated-shared-.patch @@ -0,0 +1,73 @@ +From 37680cf785c32f0b3d5191050cb904e1e9a57b53 Mon Sep 17 00:00:00 2001 +From: crazy <[email protected]> +Date: Fri, 3 Mar 2017 17:44:40 +0100 +Subject: [PATCH 2/3] Revert "Check IFUNC definition in unrelocated shared + library [BZ #20019]" + +This reverts commit 0e6d3adc60d8073397af6a320e594d98d7fbedde. +--- + sysdeps/i386/dl-machine.h | 18 +----------------- + sysdeps/x86_64/dl-machine.h | 18 +----------------- + 2 files changed, 2 insertions(+), 34 deletions(-) + +diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h +index 6eca69d567..a9edb41aa6 100644 +--- a/sysdeps/i386/dl-machine.h ++++ b/sysdeps/i386/dl-machine.h +@@ -321,23 +321,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, + 0) + && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) + && __builtin_expect (!skip_ifunc, 1)) +- { +-# ifndef RTLD_BOOTSTRAP +- if (sym_map != map +- && sym_map->l_type != lt_executable +- && !sym_map->l_relocated) +- { +- const char *strtab +- = (const char *) D_PTR (map, l_info[DT_STRTAB]); +- _dl_fatal_printf ("\ +-%s: Relink `%s' with `%s' for IFUNC symbol `%s'\n", +- RTLD_PROGNAME, map->l_name, +- sym_map->l_name, +- strtab + refsym->st_name); +- } +-# endif +- value = ((Elf32_Addr (*) (void)) value) (); +- } ++ value = ((Elf32_Addr (*) (void)) value) (); + + switch (r_type) + { +diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h +index 3e7ae22c67..b3eb33f036 100644 +--- a/sysdeps/x86_64/dl-machine.h ++++ b/sysdeps/x86_64/dl-machine.h +@@ -331,23 +331,7 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, + 0) + && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) + && __builtin_expect (!skip_ifunc, 1)) +- { +-# ifndef RTLD_BOOTSTRAP +- if (sym_map != map +- && sym_map->l_type != lt_executable +- && !sym_map->l_relocated) +- { +- const char *strtab +- = (const char *) D_PTR (map, l_info[DT_STRTAB]); +- _dl_fatal_printf ("\ +-%s: Relink `%s' with `%s' for IFUNC symbol `%s'\n", +- RTLD_PROGNAME, map->l_name, +- sym_map->l_name, +- strtab + refsym->st_name); +- } +-# endif +- value = ((ElfW(Addr) (*) (void)) value) (); +- } ++ value = ((ElfW(Addr) (*) (void)) value) (); + + switch (r_type) + { +-- +2.12.0 + diff --git a/source/base/glibc/0003-Revert-Clean-up-NPTL-longjmp-to-be-compat-only.patch b/source/base/glibc/0003-Revert-Clean-up-NPTL-longjmp-to-be-compat-only.patch new file mode 100644 index 0000000..7e40676 --- /dev/null +++ b/source/base/glibc/0003-Revert-Clean-up-NPTL-longjmp-to-be-compat-only.patch @@ -0,0 +1,74 @@ +From 19cada906b2720e7d9937d3918ea3c117800965e Mon Sep 17 00:00:00 2001 +From: crazy <[email protected]> +Date: Fri, 3 Mar 2017 18:00:15 +0100 +Subject: [PATCH 3/3] Revert "Clean up NPTL longjmp to be compat-only." + +This reverts commit ec2a88b3c659ad4f5a662ca289edae4f0dc19d88. +--- + nptl/pt-longjmp.c | 45 +++++++-------------------------------------- + 1 file changed, 7 insertions(+), 38 deletions(-) + +diff --git a/nptl/pt-longjmp.c b/nptl/pt-longjmp.c +index 2ef757e687..c3313d6c99 100644 +--- a/nptl/pt-longjmp.c ++++ b/nptl/pt-longjmp.c +@@ -1,5 +1,5 @@ +-/* ABI compatibility for 'longjmp' and 'siglongjmp' symbols in libpthread ABI. +- Copyright (C) 2002-2017 Free Software Foundation, Inc. ++ ++/* Copyright (C) 2002-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <[email protected]>, 2002. + +@@ -18,43 +18,12 @@ + <http://www.gnu.org/licenses/>. */ + + #include <setjmp.h> +-#include <shlib-compat.h> +- +-/* libpthread once had its own longjmp (and siglongjmp alias), though there +- was no apparent reason for it. There is no use in having a separate +- symbol in libpthread, but the historical ABI requires it. For static +- linking, there is no need to provide anything here--the libc version +- will be linked in. For shared library ABI compatibility, there must be +- longjmp and siglongjmp symbols in libpthread.so; so we define them using +- IFUNC to redirect to the libc function. */ +- +-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22) +- +-# if HAVE_IFUNC +- +-# undef INIT_ARCH +-# define INIT_ARCH() +-# define DEFINE_LONGJMP(name) libc_ifunc (name, &__libc_longjmp) +- +-extern __typeof(longjmp) longjmp_ifunc; +-extern __typeof(siglongjmp) siglongjmp_ifunc; ++#include <stdlib.h> ++#include "pthreadP.h" + +-# else /* !HAVE_IFUNC */ +- +-static void __attribute__ ((noreturn, used)) +-longjmp_compat (jmp_buf env, int val) ++void ++longjmp (jmp_buf env, int val) + { + __libc_longjmp (env, val); + } +- +-# define DEFINE_LONGJMP(name) strong_alias (longjmp_compat, name) +- +-# endif /* HAVE_IFUNC */ +- +-DEFINE_LONGJMP (longjmp_ifunc) +-compat_symbol (libpthread, longjmp_ifunc, longjmp, GLIBC_2_0); +- +-strong_alias (longjmp_ifunc, siglongjmp_ifunc) +-compat_symbol (libpthread, siglongjmp_ifunc, siglongjmp, GLIBC_2_0); +- +-#endif ++weak_alias (longjmp, siglongjmp) +-- +2.12.0 + diff --git a/source/base/glibc/FrugalBuild b/source/base/glibc/FrugalBuild index 68a5e89..86e9e53 100644 --- a/source/base/glibc/FrugalBuild +++ b/source/base/glibc/FrugalBuild @@ -8,7 +8,7 @@ pkgname=glibc pkgver=2.25 -pkgrel=2 +pkgrel=3 pkgdesc="GNU C Library" url="http://www.gnu.org/software/libc/libc.html" depends=() @@ -19,8 +19,16 @@ groups=('base' 'chroot-core') archs=('x86_64') Fup2gnubz2 _dlurl="http://ftp.gnu.org/pub/gnu/glibc" -source=($_dlurl/glibc-$pkgver.tar.xz) -sha1sums=('5fff5a94ef4470bf48fe1b79093185f19f5c827a') +source=($_dlurl/glibc-$pkgver.tar.xz \ + 0001-Revert-Allow-IFUNC-relocation-against-unrelocated-sh.patch \ + 0002-Revert-Check-IFUNC-definition-in-unrelocated-shared-.patch \ + 0003-Revert-Clean-up-NPTL-longjmp-to-be-compat-only.patch) +## see https://sourceware.org/bugzilla/show_bug.cgi?id=21041 for the 3 reverts +## there is 1 more canditate but I'll wait upstream to see how they fix.. +sha1sums=('5fff5a94ef4470bf48fe1b79093185f19f5c827a' \ + 'ff24a7227b5402133eed1e3c6e4104352d2d5afd' \ + '4995b808bba5cf50059ba3d46772b392033c9bbd' \ + '7fa7be35da7635bd7abc9e43a82c69dbcf55c80f') options+=('scriptlet' 'noccache' 'static' 'nostrip') _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
