import lld-8.0.1-1.module+el8.1.0+3866+6be7f4d8
This commit is contained in:
parent
62059a7c7f
commit
0cafe79873
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
||||
SOURCES/lld-7.0.1.src.tar.xz
|
||||
SOURCES/lld-8.0.1.src.tar.xz
|
||||
|
@ -1 +1 @@
|
||||
3b69e107f27d466488838d5fa65bdfd77b885007 SOURCES/lld-7.0.1.src.tar.xz
|
||||
67d84c054c8b858d29389aa8ad47a25f632e4a3a SOURCES/lld-8.0.1.src.tar.xz
|
||||
|
@ -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 <class ELFT>
|
||||
-ArrayRef<typename ObjFile<ELFT>::Elf_Word>
|
||||
-ObjFile<ELFT>::getShtGroupEntries(const Elf_Shdr &Sec) {
|
||||
- const ELFFile<ELFT> &Obj = this->getObj();
|
||||
- ArrayRef<Elf_Word> Entries =
|
||||
- CHECK(Obj.template getSectionContentsAsArray<Elf_Word>(&Sec), this);
|
||||
- if (Entries.empty() || Entries[0] != GRP_COMDAT)
|
||||
- fatal(toString(this) + ": unsupported SHT_GROUP format");
|
||||
- return Entries.slice(1);
|
||||
-}
|
||||
-
|
||||
template <class ELFT> bool ObjFile<ELFT>::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<Elf_Word> Entries =
|
||||
+ CHECK(Obj.template getSectionContentsAsArray<Elf_Word>(&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
|
||||
+
|
@ -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
|
||||
make -C %{_target_platform} %{?_smp_mflags} check-lld
|
||||
|
||||
%post libs -p /sbin/ldconfig
|
||||
%postun libs -p /sbin/ldconfig
|
||||
%if 0%{?enable_test_pkg}
|
||||
make -C %{_target_platform} %{?_smp_mflags} check-lld
|
||||
%endif
|
||||
|
||||
%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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user