diff options
author | Eli Schwartz | 2018-08-10 16:10:02 -0400 |
---|---|---|
committer | Eli Schwartz | 2018-08-10 16:10:02 -0400 |
commit | c127c7b5f7952d6d7bda8e2c0088494ba144d724 (patch) | |
tree | 23747d0c21646d584b1c561f95e3d3932ecca5b6 | |
parent | d52f61dabf2ec4308c100ca3183926345f7039f6 (diff) | |
download | aur-c127c7b5f7952d6d7bda8e2c0088494ba144d724.tar.gz |
upgpkg: glibc-git 2.28.r46.g2ce7ba7d15-1
merge upstream changes to core/glibc
work around electron apps being badly broken
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | 0001-Revert-elf-Correct-absolute-SHN_ABS-symbol-run-time-.patch | 189 | ||||
-rw-r--r-- | PKGBUILD | 15 |
3 files changed, 205 insertions, 3 deletions
@@ -1,6 +1,6 @@ pkgbase = glibc-git pkgdesc = GNU C Library - pkgver = 2.28.r24.g92a4cba760 + pkgver = 2.28.r46.g2ce7ba7d15 pkgrel = 1 url = https://www.gnu.org/software/libc/ install = glibc-git.install @@ -21,9 +21,11 @@ pkgbase = glibc-git backup = etc/nscd.conf source = git+https://sourceware.org/git/glibc.git source = locale-gen + source = 0001-Revert-elf-Correct-absolute-SHN_ABS-symbol-run-time-.patch source = bz20338.patch sha256sums = SKIP sha256sums = 05fbb88877cdddc99ef25e48304d6e5ac236660c20925d461cb4e90ebcb3b7de + sha256sums = 3b764c4e5658486d1f9e98a36043eb51705c4eebc9abe3f9edc5049dd5dcdc47 sha256sums = 959d4f41edd004bddd9091c4d8c8c3aa07d79a04bfdb89d59f9f26fe5a74d32a pkgname = glibc-git diff --git a/0001-Revert-elf-Correct-absolute-SHN_ABS-symbol-run-time-.patch b/0001-Revert-elf-Correct-absolute-SHN_ABS-symbol-run-time-.patch new file mode 100644 index 000000000000..251cdf160927 --- /dev/null +++ b/0001-Revert-elf-Correct-absolute-SHN_ABS-symbol-run-time-.patch @@ -0,0 +1,189 @@ +From ef9302f7608a62980ad850596dc8bfd40346a8e7 Mon Sep 17 00:00:00 2001 +From: Eli Schwartz <eschwartz@archlinux.org> +Date: Wed, 8 Aug 2018 21:02:26 +0000 +Subject: [PATCH] Revert "elf: Correct absolute (SHN_ABS) symbol run-time + calculation [BZ #19818]" + +This reverts commit e7feec374c635b6a29d65c39ae5e1855528fed39. +--- + elf/Makefile | 8 ++------ + elf/dl-addr.c | 2 -- + elf/tst-absolute-sym-lib.c | 25 ------------------------ + elf/tst-absolute-sym-lib.lds | 19 ------------------ + elf/tst-absolute-sym.c | 38 ------------------------------------ + sysdeps/generic/ldsodefs.h | 3 +-- + 6 files changed, 3 insertions(+), 92 deletions(-) + delete mode 100644 elf/tst-absolute-sym-lib.c + delete mode 100644 elf/tst-absolute-sym-lib.lds + delete mode 100644 elf/tst-absolute-sym.c + +diff --git a/elf/Makefile b/elf/Makefile +index cd0771307f..f7484a81ef 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -186,7 +186,7 @@ tests += restest1 preloadtest loadfail multiload origtest resolvfail \ + tst-tlsalign tst-tlsalign-extern tst-nodelete-opened \ + tst-nodelete2 tst-audit11 tst-audit12 tst-dlsym-error tst-noload \ + tst-latepthread tst-tls-manydynamic tst-nodelete-dlclose \ +- tst-debug1 tst-main1 tst-absolute-sym tst-absolute-zero tst-big-note ++ tst-debug1 tst-main1 tst-absolute-zero tst-big-note + # reldep9 + tests-internal += loadtest unload unload2 circleload1 \ + neededtest neededtest2 neededtest3 neededtest4 \ +@@ -272,7 +272,7 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \ + tst-audit12mod1 tst-audit12mod2 tst-audit12mod3 tst-auditmod12 \ + tst-latepthreadmod $(tst-tls-many-dynamic-modules) \ + tst-nodelete-dlclose-dso tst-nodelete-dlclose-plugin \ +- tst-main1mod tst-libc_dlvsym-dso tst-absolute-sym-lib \ ++ tst-main1mod tst-libc_dlvsym-dso \ + tst-absolute-zero-lib tst-big-note-lib + + ifeq (yes,$(have-mtls-dialect-gnu2)) +@@ -1465,10 +1465,6 @@ tst-main1-no-pie = yes + LDLIBS-tst-main1 = $(libsupport) + tst-main1mod.so-no-z-defs = yes + +-LDLIBS-tst-absolute-sym-lib.so = tst-absolute-sym-lib.lds +-$(objpfx)tst-absolute-sym-lib.so: $(LDLIBS-tst-absolute-sym-lib.so) +-$(objpfx)tst-absolute-sym: $(objpfx)tst-absolute-sym-lib.so +- + LDLIBS-tst-absolute-zero-lib.so = tst-absolute-zero-lib.lds + $(objpfx)tst-absolute-zero-lib.so: $(LDLIBS-tst-absolute-zero-lib.so) + $(objpfx)tst-absolute-zero: $(objpfx)tst-absolute-zero-lib.so +diff --git a/elf/dl-addr.c b/elf/dl-addr.c +index e6c7d02094..2250617a73 100644 +--- a/elf/dl-addr.c ++++ b/elf/dl-addr.c +@@ -59,7 +59,6 @@ determine_info (const ElfW(Addr) addr, struct link_map *match, Dl_info *info, + we can omit that test here. */ + if ((symtab[symndx].st_shndx != SHN_UNDEF + || symtab[symndx].st_value != 0) +- && symtab[symndx].st_shndx != SHN_ABS + && ELFW(ST_TYPE) (symtab[symndx].st_info) != STT_TLS + && DL_ADDR_SYM_MATCH (match, &symtab[symndx], + matchsym, addr) +@@ -92,7 +91,6 @@ determine_info (const ElfW(Addr) addr, struct link_map *match, Dl_info *info, + && ELFW(ST_TYPE) (symtab->st_info) != STT_TLS + && (symtab->st_shndx != SHN_UNDEF + || symtab->st_value != 0) +- && symtab->st_shndx != SHN_ABS + && DL_ADDR_SYM_MATCH (match, symtab, matchsym, addr) + && symtab->st_name < strtabsize) + matchsym = (ElfW(Sym) *) symtab; +diff --git a/elf/tst-absolute-sym-lib.c b/elf/tst-absolute-sym-lib.c +deleted file mode 100644 +index 912cb0048a..0000000000 +--- a/elf/tst-absolute-sym-lib.c ++++ /dev/null +@@ -1,25 +0,0 @@ +-/* BZ #19818 absolute symbol calculation shared module. +- Copyright (C) 2018 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- <http://www.gnu.org/licenses/>. */ +- +-extern char absolute; +- +-void * +-get_absolute (void) +-{ +- return &absolute; +-} +diff --git a/elf/tst-absolute-sym-lib.lds b/elf/tst-absolute-sym-lib.lds +deleted file mode 100644 +index d4a4128514..0000000000 +--- a/elf/tst-absolute-sym-lib.lds ++++ /dev/null +@@ -1,19 +0,0 @@ +-/* BZ #19818 absolute symbol calculation linker script. +- Copyright (C) 2018 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- <http://www.gnu.org/licenses/>. */ +- +-"absolute" = 0x55aa; +diff --git a/elf/tst-absolute-sym.c b/elf/tst-absolute-sym.c +deleted file mode 100644 +index 111491d159..0000000000 +--- a/elf/tst-absolute-sym.c ++++ /dev/null +@@ -1,38 +0,0 @@ +-/* BZ #19818 absolute symbol calculation main executable. +- Copyright (C) 2018 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- <http://www.gnu.org/licenses/>. */ +- +-#include <support/check.h> +-#include <support/support.h> +-#include <support/test-driver.h> +- +-void *get_absolute (void); +- +-static int +-do_test (void) +-{ +- void *ref = (void *) 0x55aa; +- void *ptr; +- +- ptr = get_absolute (); +- if (ptr != ref) +- FAIL_EXIT1 ("Got %p, expected %p\n", ptr, ref); +- +- return 0; +-} +- +-#include <support/test-driver.c> +diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +index 95dc87519b..3cac4fa362 100644 +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -72,8 +72,7 @@ typedef struct link_map *lookup_t; + if non-NULL. Don't check for NULL map if MAP_SET is TRUE. */ + #define SYMBOL_ADDRESS(map, ref, map_set) \ + ((ref) == NULL ? 0 \ +- : (__glibc_unlikely ((ref)->st_shndx == SHN_ABS) ? 0 \ +- : LOOKUP_VALUE_ADDRESS (map, map_set)) + (ref)->st_value) ++ : LOOKUP_VALUE_ADDRESS (map, map_set) + (ref)->st_value) + + /* On some architectures a pointer to a function is not just a pointer + to the actual code of the function but rather an architecture +-- +2.18.0 + @@ -4,7 +4,7 @@ # All my PKGBUILDs are managed at https://github.com/eli-schwartz/pkgbuilds pkgname=glibc-git -pkgver=2.28.r24.g92a4cba760 +pkgver=2.28.r46.g2ce7ba7d15 pkgrel=1 pkgdesc='GNU C Library' arch=('i686' 'x86_64') @@ -22,9 +22,11 @@ options=('staticlibs') install='glibc-git.install' source=('git+https://sourceware.org/git/glibc.git' 'locale-gen' + '0001-Revert-elf-Correct-absolute-SHN_ABS-symbol-run-time-.patch' 'bz20338.patch') sha256sums=('SKIP' '05fbb88877cdddc99ef25e48304d6e5ac236660c20925d461cb4e90ebcb3b7de' + '3b764c4e5658486d1f9e98a36043eb51705c4eebc9abe3f9edc5049dd5dcdc47' '959d4f41edd004bddd9091c4d8c8c3aa07d79a04bfdb89d59f9f26fe5a74d32a') pkgver() { @@ -38,7 +40,12 @@ prepare() { cd glibc # https://sourceware.org/bugzilla/show_bug.cgi?id=20338 - patch -p1 < ../bz20338.patch + patch -p1 -i ../bz20338.patch + # revert commit breaking proprietary electron apps for now; this is lld's fault + # but it's too serious a regression to break software in the wild until users + # have a solution. See https://bugs.archlinux.org/task/59550 and + # https://github.com/electron/electron/issues/13972#issuecomment-411532741 + patch -p1 -i ../0001-Revert-elf-Correct-absolute-SHN_ABS-symbol-run-time-.patch } build() { @@ -66,6 +73,7 @@ build() { --with-bugurl=https://bugs.archlinux.org/ \ --enable-add-ons \ --enable-bind-now \ + --enable-cet \ --enable-lock-elision \ --enable-multi-arch \ --enable-stack-protector=strong \ @@ -110,6 +118,9 @@ package() { # We generate these in the post-install with ldconfig -r . rm "$pkgdir"/etc/ld.so.cache + # Shipped in tzdata + rm -f "$pkgdir"/usr/bin/{tzselect,zdump,zic} + # handle selectively stripping unless debug packages are requested if check_option 'debug' n; then options+=('!strip') |