import lld-7.0.1-3.module+el8+2753+d9ab2218
This commit is contained in:
commit
62059a7c7f
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
SOURCES/lld-7.0.1.src.tar.xz
|
1
.lld.metadata
Normal file
1
.lld.metadata
Normal file
@ -0,0 +1 @@
|
|||||||
|
3b69e107f27d466488838d5fa65bdfd77b885007 SOURCES/lld-7.0.1.src.tar.xz
|
@ -0,0 +1,47 @@
|
|||||||
|
From e5bdf4580677da063abe8d3880fbab9eaa7a7efe Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tom Stellard <tstellar@redhat.com>
|
||||||
|
Date: Thu, 30 Aug 2018 08:53:56 -0700
|
||||||
|
Subject: [PATCH] CMake: Check for gtest headers even if lit.py is not present
|
||||||
|
|
||||||
|
This makes it possible to build the unittests even withotu a full
|
||||||
|
checkout of the llvm source tree.
|
||||||
|
---
|
||||||
|
CMakeLists.txt | 15 +++++++++------
|
||||||
|
1 file changed, 9 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index e2fbdbf..c9b2927 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -75,6 +75,15 @@ Please install Python or specify the PYTHON_EXECUTABLE CMake variable.")
|
||||||
|
set(LLVM_UTILS_PROVIDED ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
+ # Check for gtest
|
||||||
|
+ set(UNITTEST_DIR ${LLVM_MAIN_SRC_DIR}/utils/unittest)
|
||||||
|
+ if(EXISTS ${UNITTEST_DIR}/googletest/include/gtest/gtest.h
|
||||||
|
+ AND NOT EXISTS ${LLVM_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||||
|
+ AND EXISTS ${UNITTEST_DIR}/CMakeLists.txt)
|
||||||
|
+ add_subdirectory(${UNITTEST_DIR} utils/unittest)
|
||||||
|
+ endif()
|
||||||
|
+
|
||||||
|
+ # Check for lit
|
||||||
|
if(EXISTS ${LLVM_MAIN_SRC_DIR}/utils/lit/lit.py)
|
||||||
|
# Note: path not really used, except for checking if lit was found
|
||||||
|
set(LLVM_LIT ${LLVM_MAIN_SRC_DIR}/utils/lit/lit.py)
|
||||||
|
@@ -84,12 +93,6 @@ Please install Python or specify the PYTHON_EXECUTABLE CMake variable.")
|
||||||
|
set(LLVM_UTILS_PROVIDED ON)
|
||||||
|
set(LLD_TEST_DEPS FileCheck not)
|
||||||
|
endif()
|
||||||
|
- set(UNITTEST_DIR ${LLVM_MAIN_SRC_DIR}/utils/unittest)
|
||||||
|
- if(EXISTS ${UNITTEST_DIR}/googletest/include/gtest/gtest.h
|
||||||
|
- AND NOT EXISTS ${LLVM_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||||
|
- AND EXISTS ${UNITTEST_DIR}/CMakeLists.txt)
|
||||||
|
- add_subdirectory(${UNITTEST_DIR} utils/unittest)
|
||||||
|
- endif()
|
||||||
|
else()
|
||||||
|
# Seek installed Lit.
|
||||||
|
find_program(LLVM_LIT
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
121
SOURCES/0001-Partial-support-of-SHT_GROUP-without-flag.patch
Normal file
121
SOURCES/0001-Partial-support-of-SHT_GROUP-without-flag.patch
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
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
|
||||||
|
+
|
@ -0,0 +1,26 @@
|
|||||||
|
From 39ce39a20a0854380997df7912e739b6c348f8a1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tom Stellard <tstellar@redhat.com>
|
||||||
|
Date: Thu, 30 Aug 2018 14:59:06 -0700
|
||||||
|
Subject: [PATCH] [lld] Prefer using the newest installed python version rather
|
||||||
|
than 2.7
|
||||||
|
|
||||||
|
This only affects the lit tests, which seem to pass fine with python3.
|
||||||
|
---
|
||||||
|
CMakeLists.txt | 1 -
|
||||||
|
1 file changed, 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 087377d..6e5f2a7 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -56,7 +56,6 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||||
|
include(HandleLLVMOptions)
|
||||||
|
|
||||||
|
if(LLVM_INCLUDE_TESTS)
|
||||||
|
- set(Python_ADDITIONAL_VERSIONS 2.7)
|
||||||
|
include(FindPythonInterp)
|
||||||
|
if(NOT PYTHONINTERP_FOUND)
|
||||||
|
message(FATAL_ERROR
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
166
SPECS/lld.spec
Normal file
166
SPECS/lld.spec
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
%global lld_srcdir lld-%{version}%{?rc_ver:rc%{rc_ver}}.src
|
||||||
|
|
||||||
|
Name: lld
|
||||||
|
Version: 7.0.1
|
||||||
|
Release: 3%{?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
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
# For make check:
|
||||||
|
# This pulls in /usr/bin/python3
|
||||||
|
BuildRequires: python3-devel
|
||||||
|
BuildRequires: python3-lit = 0.7.1
|
||||||
|
BuildRequires: llvm-googletest
|
||||||
|
|
||||||
|
%description
|
||||||
|
The LLVM project linker.
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: Libraries and header files for LLD
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
This package contains library and header files needed to develop new native
|
||||||
|
programs that use the LLD infrastructure.
|
||||||
|
|
||||||
|
%package libs
|
||||||
|
Summary: LLD shared libraries
|
||||||
|
|
||||||
|
%description libs
|
||||||
|
Shared libraries for LLD.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -n %{name}-%{version}%{?rc_ver:rc%{rc_ver}}.src -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
|
||||||
|
mkdir %{_target_platform}
|
||||||
|
cd %{_target_platform}
|
||||||
|
|
||||||
|
%cmake .. \
|
||||||
|
-DLLVM_LINK_LLVM_DYLIB:BOOL=ON \
|
||||||
|
-DLLVM_DYLIB_COMPONENTS="all" \
|
||||||
|
-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" \
|
||||||
|
%if 0%{?__isa_bits} == 64
|
||||||
|
-DLLVM_LIBDIR_SUFFIX=64
|
||||||
|
%else
|
||||||
|
-DLLVM_LIBDIR_SUFFIX=
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%make_build
|
||||||
|
|
||||||
|
%install
|
||||||
|
cd %{_target_platform}
|
||||||
|
%make_install
|
||||||
|
|
||||||
|
# Remove rpath
|
||||||
|
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
|
||||||
|
|
||||||
|
%files
|
||||||
|
%{_bindir}/lld*
|
||||||
|
%{_bindir}/ld.lld
|
||||||
|
%{_bindir}/ld64.lld
|
||||||
|
%{_bindir}/wasm-ld
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%{_includedir}/lld
|
||||||
|
%{_libdir}/liblld*.so
|
||||||
|
|
||||||
|
%files libs
|
||||||
|
%{_libdir}/liblld*.so.*
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Mon Jan 14 2019 sguelton@redhat.com - 7.0.1-3
|
||||||
|
- Fix lld + annobin integration & Setup basic CI tests
|
||||||
|
|
||||||
|
* Sat Dec 15 2018 Tom Stellard <tstellar@redhat.com> - 7.0.1-2
|
||||||
|
- Bump required python3-lit version
|
||||||
|
|
||||||
|
* Fri Dec 14 2018 Tom Stellard <tstellar@redhat.com> - 7.0.1-1
|
||||||
|
- 7.0.1-1 Release
|
||||||
|
|
||||||
|
* Mon Dec 10 2018 Tom Stellard <tstellar@redhat.com> - 7.0.1-0.2.rc3
|
||||||
|
- 7.0.1-rc3 Release
|
||||||
|
|
||||||
|
* Tue Nov 27 2018 Tom Stellard <tstellar@redhat.com> - 7.0.0-1
|
||||||
|
- 7.0.0 Release
|
||||||
|
|
||||||
|
* Mon Oct 01 2018 Tom Stellard <tstellar@redhat.com> - 6.0.1-2
|
||||||
|
- Drop scl macros
|
||||||
|
|
||||||
|
* Wed Jun 27 2018 Tom Stellard <tstellar@redhat.com> - 6.0.1-1
|
||||||
|
- 6.0.1 Release
|
||||||
|
|
||||||
|
* Fri May 11 2018 Tom Stellard <tstellar@redhat.com> - 6.0.1-0.1.rc1
|
||||||
|
- 6.0.1-rc1 Release
|
||||||
|
|
||||||
|
* Thu Mar 08 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-1
|
||||||
|
- 6.0.0 Release
|
||||||
|
|
||||||
|
* Tue Feb 13 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-0.3.rc2
|
||||||
|
- 6.0.0-rc2 Release
|
||||||
|
|
||||||
|
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 6.0.0-0.2.rc1
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jan 25 2018 Tom Stellard <tstellar@redhat.com> - 6.0.0-0.1.rc1
|
||||||
|
- 6.0.0-rc1 Release
|
||||||
|
|
||||||
|
* Thu Dec 21 2017 Tom Stellard <tstellar@redhat.com> - 5.0.1-1
|
||||||
|
- 5.0.1 Release
|
||||||
|
|
||||||
|
* Mon Sep 11 2017 Tom Stellard <tstellar@redhat.com> - 5.0.0-1
|
||||||
|
- 5.0.0 Release
|
||||||
|
|
||||||
|
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.1-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 4.0.1-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 06 2017 Tom Stellard <tstellar@redhat.com> - 4.0.1-2
|
||||||
|
- Backport r307092
|
||||||
|
|
||||||
|
* Tue Jul 04 2017 Tom Stellard <tstellar@redhat.com> - 4.0.1-1
|
||||||
|
- 4.0.1 Release
|
||||||
|
|
||||||
|
* Tue Jul 04 2017 Tom Stellard <tstellar@redhat.com> - 4.0.0-4
|
||||||
|
- Fix build without llvm-static
|
||||||
|
|
||||||
|
* Wed May 31 2017 Tom Stellard <tstellar@redhat.com> - 4.0.0-3
|
||||||
|
- Remove llvm-static dependency
|
||||||
|
|
||||||
|
* Mon May 15 2017 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0.0-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Mar 14 2017 Tom Stellard <tstellar@redhat.com> - 4.0.0-1
|
||||||
|
- lld 4.0.0 Final Release
|
Loading…
Reference in New Issue
Block a user