From 71cc8d1d0cc53ed4ed0e98e249ebe4c5b2fb045f Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Tue, 26 Sep 2017 18:48:38 +0000 Subject: [PATCH] Fix build with LLVM 5.0 --- ...edded-llvm-ar-to-LLVM-5.0-final-2349.patch | 58 +++++++++++++++++++ ldc.spec | 8 ++- 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 0001-Adapt-embedded-llvm-ar-to-LLVM-5.0-final-2349.patch diff --git a/0001-Adapt-embedded-llvm-ar-to-LLVM-5.0-final-2349.patch b/0001-Adapt-embedded-llvm-ar-to-LLVM-5.0-final-2349.patch new file mode 100644 index 0000000..a2e2ff4 --- /dev/null +++ b/0001-Adapt-embedded-llvm-ar-to-LLVM-5.0-final-2349.patch @@ -0,0 +1,58 @@ +From e8bfc4d9876f09b2bf08420998a92a002f752edb Mon Sep 17 00:00:00 2001 +From: kinke +Date: Tue, 26 Sep 2017 20:04:39 +0200 +Subject: [PATCH] Adapt embedded llvm-ar to LLVM 5.0 final (#2349) + +--- + driver/archiver.cpp | 14 +++++++++----- + 1 file changed, 9 insertions(+), 5 deletions(-) + +diff --git a/driver/archiver.cpp b/driver/archiver.cpp +index 78cafc8..7893129 100644 +--- a/driver/archiver.cpp ++++ b/driver/archiver.cpp +@@ -50,7 +50,7 @@ bool Symtab = true; + bool Deterministic = true; + bool Thin = false; + +-void fail(Twine Error) { outs() << "llvm-ar: " << Error << ".\n"; } ++void fail(Twine Error) { errs() << "llvm-ar: " << Error << ".\n"; } + + void fail(std::error_code EC, std::string Context = {}) { + if (Context.empty()) +@@ -79,6 +79,12 @@ int addMember(std::vector &Members, StringRef FileName, + fail(std::move(Error), FileName); + return 1; + } ++ ++#if LDC_LLVM_VER >= 500 ++ // Use the basename of the object path for the member name. ++ NMOrErr->MemberName = sys::path::filename(NMOrErr->MemberName); ++#endif ++ + if (Pos == -1) + Members.push_back(std::move(*NMOrErr)); + else +@@ -221,7 +227,7 @@ int performWriteOperation() { + auto Buf = MemoryBuffer::getFile(ArchiveName, -1, false); + std::error_code EC = Buf.getError(); + if (EC && EC != errc::no_such_file_or_directory) { +- fail("error opening '" + ArchiveName + "': " + EC.message() + "!"); ++ fail("error opening '" + ArchiveName + "': " + EC.message()); + return 1; + } + +@@ -230,9 +236,7 @@ int performWriteOperation() { + object::Archive Archive(Buf.get()->getMemBufferRef(), Err); + EC = errorToErrorCode(std::move(Err)); + if (EC) { +- fail( +- EC, +- ("error loading '" + ArchiveName + "': " + EC.message() + "!").str()); ++ fail(EC, ("error loading '" + ArchiveName + "': " + EC.message()).str()); + return 1; + } + return performWriteOperation(&Archive, std::move(Buf.get())); +-- +1.8.3.1 + diff --git a/ldc.spec b/ldc.spec index 8db1ea3..a7e9804 100644 --- a/ldc.spec +++ b/ldc.spec @@ -15,7 +15,7 @@ Name: ldc Epoch: 1 Version: 1.4.0 -Release: 2%{?pre:.%{pre}}%{?dist} +Release: 3%{?pre:.%{pre}}%{?dist} Summary: A compiler for the D programming language # The DMD frontend in dmd/* GPL version 1 or artistic license @@ -28,6 +28,8 @@ Source1: https://github.com/ldc-developers/ldc/releases/download/v%{boots %endif Source3: macros.%{name} +Patch0: 0001-Adapt-embedded-llvm-ar-to-LLVM-5.0-final-2349.patch + ExclusiveArch: %{ldc_arches} %if ! 0%{?bootstrap} @@ -151,6 +153,7 @@ Active l'autocompletion pour pour la bibliothèque phobos dans geany (IDE) %prep %setup -q -n %{name}-%{version}%{?pre:-%{pre}}-src +%patch0 -p1 # temp geany config directory for allow geany to generate tags mkdir geany_config @@ -244,6 +247,9 @@ install -m0644 phobos.d.tags %{buildroot}/%{_datadir}/geany/tags/ %{_datadir}/geany/tags/phobos.d.tags %changelog +* Tue Sep 26 2017 Tom Stellard - 1:1.4.0-3 +- Fix build with LLVM 5.0 + * Wed Sep 13 2017 Kalev Lember - 1:1.4.0-2 - Disable bootstrap