Date: Friday, July 9, 2021 @ 06:24:20 Author: foutrelis Revision: 419329
upgpkg: lld 12.0.1-1: new upstream release Modified: lld/trunk/PKGBUILD Deleted: lld/trunk/dont-set-versionId-on-undefined-weak-lazy-symbols.patch ---------------------------------------------------------+ PKGBUILD | 17 +-- dont-set-versionId-on-undefined-weak-lazy-symbols.patch | 62 -------------- 2 files changed, 6 insertions(+), 73 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2021-07-09 06:19:59 UTC (rev 419328) +++ PKGBUILD 2021-07-09 06:24:20 UTC (rev 419329) @@ -2,7 +2,7 @@ # Contributor: Jan "heftig" Steffens <[email protected]> pkgname=lld -pkgver=12.0.0 +pkgver=12.0.1 pkgrel=1 pkgdesc="Linker from the LLVM project" arch=('x86_64') @@ -13,15 +13,13 @@ _source_base=https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver source=($_source_base/$pkgname-$pkgver.src.tar.xz{,.sig} $_source_base/llvm-$pkgver.src.tar.xz{,.sig} - $_source_base/libunwind-$pkgver.src.tar.xz{,.sig} - dont-set-versionId-on-undefined-weak-lazy-symbols.patch) -sha256sums=('2cb7d497f3ce33ce8a2c50ad26ec93a8c45f57268d4d96953cd0f25566f753fd' + $_source_base/libunwind-$pkgver.src.tar.xz{,.sig}) +sha256sums=('690b3f6a76310e13a783a142f87500ade9cafe003e088b678364487ed873e361' 'SKIP' - '49dc47c8697a1a0abd4ee51629a696d7bfe803662f2a7252a3b16fc75f3a8b50' + '7d9a8405f557cefc5a21bf5672af73903b64749d9bc3a50322239f56f34ffddf' 'SKIP' - '9ed2a5b28853f7f58be9d04836ff43d6e4132df5a2c058b690dc3e9d75bd1cf5' - 'SKIP' - '0a2e30617a5c2a3bead0638d7f77f5915d800b7d11e5962b8ca0e525ca744843') + '0bea6089518395ca65cf58b0a450716c5c99ce1f041079d3aa42d280ace15ca4' + 'SKIP') validpgpkeys+=('B6C8F98282B944E3B0D5C2530FC3042E345AD05D') # Hans Wennborg <[email protected]> validpgpkeys+=('474E22316ABF4785A88C6E8EA2C794A986419D8A') # Tom Stellard <[email protected]> @@ -31,9 +29,6 @@ cd "$srcdir/$pkgname-$pkgver.src" mkdir build - - # https://bugs.llvm.org/show_bug.cgi?id=49915 - patch -Np2 -i ../dont-set-versionId-on-undefined-weak-lazy-symbols.patch } build() { Deleted: dont-set-versionId-on-undefined-weak-lazy-symbols.patch =================================================================== --- dont-set-versionId-on-undefined-weak-lazy-symbols.patch 2021-07-09 06:19:59 UTC (rev 419328) +++ dont-set-versionId-on-undefined-weak-lazy-symbols.patch 2021-07-09 06:24:20 UTC (rev 419329) @@ -1,62 +0,0 @@ -From 6912082cfd129bbc2bd60f293371e20140d50b86 Mon Sep 17 00:00:00 2001 -From: Fangrui Song <[email protected]> -Date: Tue, 20 Apr 2021 11:23:10 -0700 -Subject: [PATCH] [ELF] Don't set versionId on undefined weak lazy symbols - -An unfetched lazy symbol (undefined weak) should be considered to have its -original versionId which is VER_NDX_GLOBAL, instead of the lazy symbol's -versionId. (The original versionId cannot be non-VER_NDX_GLOBAL because a -undefined versioned symbol is an error.) - -The regression was introduced in D77280 when making version scripts work -with lazy symbols fetched by LTO calls. - -Fix PR49915 - -Differential Revision: https://reviews.llvm.org/D100624 - -(cherry picked from commit 1c00530b30e21fd0f5b316401f6485bee08ce850) ---- - lld/ELF/SyntheticSections.cpp | 4 +++- - lld/test/ELF/version-script-weak.s | 13 +++++++++++++ - 2 files changed, 16 insertions(+), 1 deletion(-) - -diff --git a/lld/ELF/SyntheticSections.cpp b/lld/ELF/SyntheticSections.cpp -index 9a875bd7ec3e..70c36c63d101 100644 ---- a/lld/ELF/SyntheticSections.cpp -+++ b/lld/ELF/SyntheticSections.cpp -@@ -3110,7 +3110,9 @@ size_t VersionTableSection::getSize() const { - void VersionTableSection::writeTo(uint8_t *buf) { - buf += 2; - for (const SymbolTableEntry &s : getPartition().dynSymTab->getSymbols()) { -- write16(buf, s.sym->versionId); -+ // Use the original versionId for an unfetched lazy symbol (undefined weak), -+ // which must be VER_NDX_GLOBAL (an undefined versioned symbol is an error). -+ write16(buf, s.sym->isLazy() ? VER_NDX_GLOBAL : s.sym->versionId); - buf += 2; - } - } -diff --git a/lld/test/ELF/version-script-weak.s b/lld/test/ELF/version-script-weak.s -index 7c902eb98bf4..cfa2455ee2bd 100644 ---- a/lld/test/ELF/version-script-weak.s -+++ b/lld/test/ELF/version-script-weak.s -@@ -24,6 +24,19 @@ - # CHECK-NEXT: Section: Undefined - # CHECK-NEXT: } - -+## The version of an unfetched lazy symbol is VER_NDX_GLOBAL. It is not affected by version scripts. -+# RUN: echo "v1 { *; };" > %t2.script -+# RUN: ld.lld -shared --version-script %t2.script %t.o --start-lib %t1.o --end-lib -o %t2.so -+# RUN: llvm-readelf --dyn-syms %t2.so | FileCheck %s --check-prefix=CHECK2 -+ -+# CHECK2: NOTYPE WEAK DEFAULT UND foo{{$}} -+ -+# RUN: ld.lld -shared --soname=tshared --version-script %t2.script %t1.o -o %tshared.so -+# RUN: ld.lld -shared --version-script %t2.script %t.o --start-lib %t1.o --end-lib %tshared.so -o %t3.so -+# RUN: llvm-readelf --dyn-syms %t3.so | FileCheck %s --check-prefix=CHECK3 -+ -+# CHECK3: NOTYPE WEAK DEFAULT UND foo@v1 -+ - .text - callq foo@PLT - .weak foo
