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

Reply via email to