From 0d6038196239dbaace34e71f40bdd5c2f1561cc8 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Nov 05 2019 19:37:49 +0000 Subject: import lld-8.0.1-1.module+el8.1.0+3866+6be7f4d8 --- diff --git a/.gitignore b/.gitignore index a535748..d47670c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/lld-7.0.1.src.tar.xz +SOURCES/lld-8.0.1.src.tar.xz diff --git a/.lld.metadata b/.lld.metadata index cad80df..814088a 100644 --- a/.lld.metadata +++ b/.lld.metadata @@ -1 +1 @@ -3b69e107f27d466488838d5fa65bdfd77b885007 SOURCES/lld-7.0.1.src.tar.xz +67d84c054c8b858d29389aa8ad47a25f632e4a3a SOURCES/lld-8.0.1.src.tar.xz diff --git a/SOURCES/0001-Partial-support-of-SHT_GROUP-without-flag.patch b/SOURCES/0001-Partial-support-of-SHT_GROUP-without-flag.patch deleted file mode 100644 index c060ba3..0000000 --- a/SOURCES/0001-Partial-support-of-SHT_GROUP-without-flag.patch +++ /dev/null @@ -1,121 +0,0 @@ -diff -r -u --new-file lld-7.0.1.src.orig/ELF/InputFiles.cpp lld-7.0.1.src/ELF/InputFiles.cpp ---- lld-7.0.1.src.orig/ELF/InputFiles.cpp 2019-01-25 10:12:56.412850573 +0000 -+++ lld-7.0.1.src/ELF/InputFiles.cpp 2019-01-25 10:14:50.557726268 +0000 -@@ -324,17 +324,6 @@ - return Signature; - } - --template --ArrayRef::Elf_Word> --ObjFile::getShtGroupEntries(const Elf_Shdr &Sec) { -- const ELFFile &Obj = this->getObj(); -- ArrayRef Entries = -- CHECK(Obj.template getSectionContentsAsArray(&Sec), this); -- if (Entries.empty() || Entries[0] != GRP_COMDAT) -- fatal(toString(this) + ": unsupported SHT_GROUP format"); -- return Entries.slice(1); --} -- - template bool ObjFile::shouldMerge(const Elf_Shdr &Sec) { - // On a regular link we don't merge sections if -O0 (default is -O1). This - // sometimes makes the linker significantly faster, although the output will -@@ -439,22 +428,33 @@ - case SHT_GROUP: { - // De-duplicate section groups by their signatures. - StringRef Signature = getShtGroupSignature(ObjSections, Sec); -- bool IsNew = ComdatGroups.insert(CachedHashStringRef(Signature)).second; - this->Sections[I] = &InputSection::Discarded; - -- // If it is a new section group, we want to keep group members. -- // Group leader sections, which contain indices of group members, are -- // discarded because they are useless beyond this point. The only -- // exception is the -r option because in order to produce re-linkable -- // object files, we want to pass through basically everything. -+ ArrayRef Entries = -+ CHECK(Obj.template getSectionContentsAsArray(&Sec), this); -+ if (Entries.empty()) -+ fatal(toString(this) + ": empty SHT_GROUP"); -+ -+ // The first word of a SHT_GROUP section contains flags. Currently, -+ // the standard defines only "GRP_COMDAT" flag for the COMDAT group. -+ // An group with the empty flag doesn't define anything; such sections -+ // are just skipped. -+ if (Entries[0] == 0) -+ continue; -+ -+ if (Entries[0] != GRP_COMDAT) -+ fatal(toString(this) + ": unsupported SHT_GROUP format"); -+ -+ bool IsNew = ComdatGroups.insert(CachedHashStringRef(Signature)).second; - if (IsNew) { - if (Config->Relocatable) - this->Sections[I] = createInputSection(Sec); - continue; - } - -+ - // Otherwise, discard group members. -- for (uint32_t SecIndex : getShtGroupEntries(Sec)) { -+ for (uint32_t SecIndex : Entries.slice(1)) { - if (SecIndex >= Size) - fatal(toString(this) + - ": invalid section index in group: " + Twine(SecIndex)); -diff -r -u --new-file lld-7.0.1.src.orig/test/ELF/sht-group-empty.test lld-7.0.1.src/test/ELF/sht-group-empty.test ---- lld-7.0.1.src.orig/test/ELF/sht-group-empty.test 1970-01-01 00:00:00.000000000 +0000 -+++ lld-7.0.1.src/test/ELF/sht-group-empty.test 2019-01-25 10:13:19.312026250 +0000 -@@ -0,0 +1,55 @@ -+# RUN: yaml2obj %s -o %t.o -+# RUN: ld.lld %t.o %t.o -o %t -r -+# RUN: llvm-readobj -s %t | FileCheck %s -+ -+# CHECK: Name: .text.foo -+# CHECK: Name: .rela.text.foo -+ -+--- !ELF -+FileHeader: -+ Class: ELFCLASS64 -+ Data: ELFDATA2LSB -+ Type: ET_REL -+ Machine: EM_X86_64 -+Sections: -+ - Name: .group -+ Type: SHT_GROUP -+ Link: .symtab -+ Info: foo -+ Members: -+ - SectionOrType: GRP_COMDAT -+ - SectionOrType: .text.foo -+ - SectionOrType: .text.bar -+ - SectionOrType: .note -+ - Name: .note -+ Type: SHT_NOTE -+ Flags: [ SHF_GROUP ] -+ - Name: .text.foo -+ Type: SHT_PROGBITS -+ Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] -+ - Name: .text.bar -+ Type: SHT_PROGBITS -+ Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ] -+ - Name: .rela.text.foo -+ Type: SHT_RELA -+ Flags: [ SHF_INFO_LINK, SHF_GROUP ] -+ Link: .symtab -+ Info: .text.foo -+ Relocations: -+ - Offset: 0x0000000000000000 -+ Symbol: foo -+ Type: R_X86_64_64 -+ - Name: .rela.text.bar -+ Type: SHT_RELA -+ Flags: [ SHF_INFO_LINK, SHF_GROUP ] -+ Link: .symtab -+ Info: .text.bar -+ Relocations: -+ - Offset: 0x0000000000000000 -+ Symbol: bar -+ Type: R_X86_64_64 -+Symbols: -+ Global: -+ - Name: foo -+ - Name: bar -+ diff --git a/SPECS/lld.spec b/SPECS/lld.spec index 3b701db..87e8d70 100644 --- a/SPECS/lld.spec +++ b/SPECS/lld.spec @@ -1,32 +1,38 @@ +#%%global rc_ver 2 %global lld_srcdir lld-%{version}%{?rc_ver:rc%{rc_ver}}.src +# armv7lhl tests disabled because of arm issue, see https://koji.fedoraproject.org/koji/taskinfo?taskID=33660162 +%ifnarch i686 %{arm} +%global enable_test_pkg 1 +%endif + Name: lld -Version: 7.0.1 -Release: 3%{?dist} +Version: 8.0.1 +Release: 1%{?rc_ver:.rc%{rc_ver}}%{?dist} Summary: The LLVM Linker License: NCSA URL: http://llvm.org -Source0: http://%{?rc_ver:pre}releases.llvm.org/%{version}/%{?rc_ver:rc%{rc_ver}}/%{lld_srcdir}.tar.xz +Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}%{?rc_ver:-%{rc_ver}}/%{lld_srcdir}.tar.xz Patch0: 0001-CMake-Check-for-gtest-headers-even-if-lit.py-is-not-.patch Patch1: 0001-lld-Prefer-using-the-newest-installed-python-version.patch -Patch2: 0001-Partial-support-of-SHT_GROUP-without-flag.patch -BuildRequires: gcc -BuildRequires: gcc-c++ -BuildRequires: cmake -BuildRequires: llvm-devel = %{version} -BuildRequires: llvm-static = %{version} -BuildRequires: ncurses-devel -BuildRequires: zlib-devel -BuildRequires: chrpath +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: cmake +BuildRequires: llvm-devel = %{version} +%if 0%{?enable_test_pkg} +BuildRequires: llvm-test = %{version} +%endif +BuildRequires: ncurses-devel +BuildRequires: zlib-devel +BuildRequires: chrpath # For make check: -# This pulls in /usr/bin/python3 -BuildRequires: python3-devel -BuildRequires: python3-lit = 0.7.1 -BuildRequires: llvm-googletest +BuildRequires: python3-rpm-macros +BuildRequires: python3-lit +BuildRequires: llvm-googletest = %{version} %description The LLVM project linker. @@ -55,14 +61,12 @@ cd %{_target_platform} %cmake .. \ -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \ -DLLVM_DYLIB_COMPONENTS="all" \ + -DPYTHON_EXECUTABLE=%{__python3} \ -DLLVM_INCLUDE_TESTS=ON \ -DLLVM_MAIN_SRC_DIR=%{_datadir}/llvm/src \ -DLLVM_EXTERNAL_LIT=%{_bindir}/lit \ -DLLVM_LIT_ARGS="-sv \ - -DFileCheck=%{_libdir}/llvm/FileCheck \ - -Dcount=%{_libdir}/llvm/count \ - -Dnot=%{_libdir}/llvm/not \ - --path %{_libdir}/llvm" \ + --path %{_libdir}/llvm" \ %if 0%{?__isa_bits} == 64 -DLLVM_LIBDIR_SUFFIX=64 %else @@ -80,10 +84,12 @@ chrpath --delete %{buildroot}%{_bindir}/* chrpath --delete %{buildroot}%{_libdir}/*.so* %check + +%if 0%{?enable_test_pkg} make -C %{_target_platform} %{?_smp_mflags} check-lld +%endif -%post libs -p /sbin/ldconfig -%postun libs -p /sbin/ldconfig +%ldconfig_scriptlets libs %files %{_bindir}/lld* @@ -99,6 +105,18 @@ make -C %{_target_platform} %{?_smp_mflags} check-lld %{_libdir}/liblld*.so.* %changelog +* Thu Aug 1 2019 sguelton@redhat.com - 8.0.1-1 +- 8.0.1 release + +* Mon Jun 17 2019 sguelton@redhat.com - 8.0.1-0.2.rc2 +- Remove unnecessary threading patch + +* Thu Jun 13 2019 sguelton@redhat.com - 8.0.1-0.1.rc2 +- 8.0.1rc2 Release + +* Tue Apr 16 2019 sguelton@redhat.com - 8.0.0-1 +- 8.0.0 Release + * Mon Jan 14 2019 sguelton@redhat.com - 7.0.1-3 - Fix lld + annobin integration & Setup basic CI tests