gnu: llvm-for-extempore: Update to 3.8.

* gnu/packages/llvm.scm (llvm-for-extempore): Update to 3.8.
[source]: Use upstream patched source.
* gnu/packages/patches/llvm-for-extempore.patch: Delete due to source being
already patched.
* gnu/local.mk (dist_patch_DATA): Remove it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Giacomo Leidi 2020-04-20 23:56:13 +02:00 committed by Ludovic Courtès
parent 4c0cc7bed3
commit b1cb8b5d83
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
3 changed files with 8 additions and 122 deletions

View file

@ -1184,7 +1184,6 @@ dist_patch_DATA = \
%D%/packages/patches/lirc-localstatedir.patch \
%D%/packages/patches/lirc-reproducible-build.patch \
%D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch \
%D%/packages/patches/llvm-for-extempore.patch \
%D%/packages/patches/lm-sensors-hwmon-attrs.patch \
%D%/packages/patches/lrcalc-includes.patch \
%D%/packages/patches/lrzip-CVE-2017-8842.patch \

View file

@ -14,6 +14,7 @@
;;; Copyright © 2019 Arm Ltd <David.Truby@arm.com>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -627,12 +628,16 @@ (define-public clang-3.5
#:patches '("clang-3.5-libc-search-path.patch")))
(define-public llvm-for-extempore
(package (inherit llvm-3.7)
(package (inherit llvm-3.8)
(name "llvm-for-extempore")
(source
(origin
(inherit (package-source llvm-3.7))
(patches (list (search-patch "llvm-for-extempore.patch")))))
(method url-fetch)
(uri (string-append "http://extempore.moso.com.au/extras/"
"llvm-3.8.0.src-patched-for-extempore.tar.xz"))
(sha256
(base32
"1svdl6fxn8l01ni8mpm0bd5h856ahv3h9sdzgmymr6fayckjvqzs"))))
;; Extempore refuses to build on architectures other than x86_64
(supported-systems '("x86_64-linux"))))

View file

@ -1,118 +0,0 @@
This patch to LLVM is required by the developers of the Extempore language.
The following explanation was posted to the extemporelang@googlegroups.com
mailing list:
"There is an assumption in the parser that all definitions occur within the
same compilation unit - i.e. the parser has local state about what has been
parsed in this unit of work. Extempore obviously does lots of little units
rather than one big unit and this causes problems for named types that were
defined in another unit - which they always are. The patch simply checks the
current module to see if the type has been previously defined, and intervenes
appropriately if it has."
Message-ID: <CAOjrPOqoreXuZo4ZpDBvHE7M_tgAR_V8Txq5JFjh1HnGRn2EsA@mail.gmail.com>
--- llvm-3.7.1.src/include/llvm/MC/MCSectionCOFF.h 2015-04-11 12:11:45.000000000 +1000
+++ llvm-3.7.1.src/include/llvm/MC/MCSectionCOFF.h 2015-09-14 09:22:56.000000000 +1000
@@ -16,7 +16,6 @@
#include "llvm/ADT/StringRef.h"
#include "llvm/MC/MCSection.h"
-#include "llvm/Support/COFF.h"
namespace llvm {
class MCSymbol;
--- llvm-3.7.1.src/lib/AsmParser/LLParser.cpp 2015-07-11 20:30:36.000000000 +1000
+++ llvm-3.7.1.src/lib/AsmParser/LLParser.cpp 2015-09-14 09:20:57.000000000 +1000
@@ -1754,8 +1754,14 @@
// If the type hasn't been defined yet, create a forward definition and
// remember where that forward def'n was seen (in case it never is defined).
if (!Entry.first) {
- Entry.first = StructType::create(Context, Lex.getStrVal());
- Entry.second = Lex.getLoc();
+ // this here for extempore
+ if (M->getTypeByName(Lex.getStrVal())) {
+ Entry.first = M->getTypeByName(Lex.getStrVal());
+ Entry.second = SMLoc();
+ } else {
+ Entry.first = StructType::create(Context, Lex.getStrVal());
+ Entry.second = Lex.getLoc();
+ }
}
Result = Entry.first;
Lex.Lex();
--- llvm-3.7.1.src/lib/CodeGen/TargetLoweringObjectFileImpl.cpp 2015-07-01 05:10:31.000000000 +1000
+++ llvm-3.7.1.src/lib/CodeGen/TargetLoweringObjectFileImpl.cpp 2015-09-14 09:23:40.000000000 +1000
@@ -32,6 +32,7 @@
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCSymbolELF.h"
#include "llvm/MC/MCValue.h"
+#include "llvm/Support/COFF.h"
#include "llvm/Support/Dwarf.h"
#include "llvm/Support/ELF.h"
#include "llvm/Support/ErrorHandling.h"
--- llvm-3.7.1.src/lib/ExecutionEngine/MCJIT/MCJIT.cpp 2015-07-31 02:31:16.000000000 +1000
+++ llvm-3.7.1.src/lib/ExecutionEngine/MCJIT/MCJIT.cpp 2015-09-14 09:21:28.000000000 +1000
@@ -524,6 +524,17 @@
rv.IntVal = APInt(32, PF(ArgValues[0].IntVal.getZExtValue()));
return rv;
}
+ if (FTy->getNumParams() == 1 &&
+ RetTy->isVoidTy() &&
+ FTy->getParamType(0)->isPointerTy()) {
+ GenericValue rv;
+ //void (*PF)(char *) = (void(*)(char *))(intptr_t)FPtr;
+ //printf("are symbols available: %d\n",isSymbolSearchingDisabled());
+ void (*PF)(char *) = (void(*)(char *))FPtr;
+ char* mzone = (char*) GVTOP(ArgValues[0]);
+ PF(mzone);
+ return rv;
+ }
break;
}
}
--- llvm-3.7.1.src/lib/MC/MCContext.cpp 2015-06-23 21:31:32.000000000 +1000
+++ llvm-3.7.1.src/lib/MC/MCContext.cpp 2015-09-14 09:24:01.000000000 +1000
@@ -23,6 +23,7 @@
#include "llvm/MC/MCSymbolCOFF.h"
#include "llvm/MC/MCSymbolELF.h"
#include "llvm/MC/MCSymbolMachO.h"
+#include "llvm/Support/COFF.h"
#include "llvm/Support/ELF.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/FileSystem.h"
--- llvm-3.7.1.src/lib/MC/MCObjectFileInfo.cpp 2015-06-25 10:28:42.000000000 +1000
+++ llvm-3.7.1.src/lib/MC/MCObjectFileInfo.cpp 2015-09-14 09:24:17.000000000 +1000
@@ -16,6 +16,7 @@
#include "llvm/MC/MCSectionCOFF.h"
#include "llvm/MC/MCSectionELF.h"
#include "llvm/MC/MCSectionMachO.h"
+#include "llvm/Support/COFF.h"
using namespace llvm;
static bool useCompactUnwind(const Triple &T) {
--- llvm-3.7.1.src/lib/MC/MCSectionCOFF.cpp 2015-06-09 10:31:39.000000000 +1000
+++ llvm-3.7.1.src/lib/MC/MCSectionCOFF.cpp 2015-09-14 09:24:25.000000000 +1000
@@ -11,6 +11,7 @@
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCSymbol.h"
+#include "llvm/Support/COFF.h"
#include "llvm/Support/raw_ostream.h"
using namespace llvm;
--- llvm-3.7.1.src/lib/Target/X86/X86TargetObjectFile.cpp 2015-06-27 04:55:48.000000000 +1000
+++ llvm-3.7.1.src/lib/Target/X86/X86TargetObjectFile.cpp 2015-09-14 09:25:03.000000000 +1000
@@ -16,6 +16,7 @@
#include "llvm/MC/MCSectionCOFF.h"
#include "llvm/MC/MCSectionELF.h"
#include "llvm/MC/MCValue.h"
+#include "llvm/Support/COFF.h"
#include "llvm/Support/Dwarf.h"
#include "llvm/Target/TargetLowering.h"