mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-03-09 00:17:31 +00:00
core/glibc to 2.30-1
This commit is contained in:
parent
0fd1da8acf
commit
2712e9bb38
3 changed files with 8 additions and 204 deletions
|
@ -1,194 +0,0 @@
|
|||
From 2cbf10ae2ea9e378ff91b8f5c4d8cb77ed05378e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Bart=C5=82omiej=20Piotrowski?= <bpiotrowski@archlinux.org>
|
||||
Date: Fri, 10 Aug 2018-2019 14:12:40 +0000
|
||||
Subject: [PATCH] Revert "elf: Correct absolute (SHN_ABS) symbol run-time
|
||||
calculation [BZ #19818]"
|
||||
|
||||
This reverts commit e7feec374c635b6a29d65c39ae5e1855528fed39.
|
||||
---
|
||||
elf/Makefile | 14 ++-----------
|
||||
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(+), 98 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..5084ba4f6f 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-unwind-ctor tst-unwind-main
|
||||
# reldep9
|
||||
tests-internal += loadtest unload unload2 circleload1 \
|
||||
@@ -272,8 +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-absolute-zero-lib tst-big-note-lib tst-unwind-ctor-lib
|
||||
+ tst-main1mod tst-libc_dlvsym-dso tst-unwind-ctor-lib
|
||||
# Most modules build with _ISOMAC defined, but those filtered out
|
||||
# depend on internal headers.
|
||||
modules-names-tests = $(filter-out ifuncmod% tst-libc_dlvsym-dso tst-tlsmod%,\
|
||||
@@ -1465,14 +1463,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
|
||||
-
|
||||
# Both the main program and the DSO for tst-libc_dlvsym need to link
|
||||
# against libdl.
|
||||
$(objpfx)tst-libc_dlvsym: $(libdl)
|
||||
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-2019 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-2019 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-2019 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
|
||||
|
|
@ -14,28 +14,26 @@
|
|||
noautobuild=1
|
||||
|
||||
pkgname=glibc
|
||||
pkgver=2.29
|
||||
pkgrel=4
|
||||
pkgver=2.30
|
||||
pkgrel=1
|
||||
arch=(x86_64)
|
||||
url='https://www.gnu.org/software/libc'
|
||||
license=(GPL LGPL)
|
||||
makedepends=(git gd python)
|
||||
options=(!strip staticlibs !distcc)
|
||||
#source=(https://ftp.gnu.org/gnu/glibc/glibc-$pkgver.tar.xz{,.sig}
|
||||
_commit=34fb5f61d3c3f4b8fc616ea259fa19168b58ecd4
|
||||
_commit=a6aaabd036d735a1b412f441bf6c706832655598
|
||||
source=(git+https://sourceware.org/git/glibc.git#commit=$_commit
|
||||
locale.gen.txt
|
||||
locale-gen
|
||||
bz20338.patch
|
||||
0001-Revert-elf-Correct-absolute-SHN_ABS-symbol-run-time-.patch
|
||||
file-truncated-while-reading-soname-after-patchelf.patch)
|
||||
validpgpkeys=(7273542B39962DF7B299931416792B4EA25340F8 # Carlos O'Donell
|
||||
BC7C7372637EC10C57D7AA6579C43DFBF1CF2187) # Siddhesh Poyarekar
|
||||
md5sums=('SKIP'
|
||||
'07ac979b6ab5eeb778d55f041529d623'
|
||||
'476e9113489f93b348b21e144b6a8fcf'
|
||||
'dc0d3ad59aeaaf591b085a77de6e03e9'
|
||||
'af5d3c5227ac639effe39667a43879a1'
|
||||
'430673eccc78e52c249aa4b0f1786450'
|
||||
'0820504d2e83ee15f74a656771361872')
|
||||
|
||||
prepare() {
|
||||
|
|
|
@ -74,12 +74,12 @@ index b70f6fa..02cd33a 100644
|
|||
/* Skip leading blanks. */
|
||||
while (isspace (*p))
|
||||
++p;
|
||||
- } while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
|
||||
+ } while (*p == '\0' || *p == '#' /* Ignore empty and comment lines. */
|
||||
- } while (*p == '\0' || *p == '#' /* Ignore empty and comment lines. */
|
||||
+ } while (*p == '\0' || *p == '#' /* Ignore empty and comment lines. */
|
||||
/* Parse the line. If it is invalid, loop to
|
||||
get the next line of the file to parse. */
|
||||
- ! parse_line (buffer, (void *) resbuf, (void *) buffer, buflen,
|
||||
- &errno));
|
||||
- || ! parse_line (buffer, (void *) resbuf, (void *) buffer, buflen,
|
||||
- &errno));
|
||||
+ || ! (parse_result = parse_line (p, resbuf,
|
||||
+ (void *) buffer, buflen,
|
||||
+ &errno)));
|
||||
|
|
Loading…
Reference in a new issue