automatic version update by autodist [release 1.32.2-1mamba;Sun May 28 2023]
This commit is contained in:
parent
56f7cdd84c
commit
af12608fcd
File diff suppressed because it is too large
Load Diff
3033
ldc-1.32.2-llvm-16-add_llvm_profdata.patch
Normal file
3033
ldc-1.32.2-llvm-16-add_llvm_profdata.patch
Normal file
File diff suppressed because it is too large
Load Diff
14
ldc-1.32.2-llvm-16-context_usage.patch
Normal file
14
ldc-1.32.2-llvm-16-context_usage.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
--- ldc-1.32.2/gen/optimizer.cpp.orig 2023-05-28 16:28:05.653166497 +0200
|
||||||
|
+++ ldc-1.32.2/gen/optimizer.cpp 2023-05-28 16:28:54.543949601 +0200
|
||||||
|
@@ -654,7 +654,11 @@
|
||||||
|
bool debugLogging = false;
|
||||||
|
ppo.Indent = false;
|
||||||
|
ppo.SkipAnalyses = false;
|
||||||
|
+ #if LDC_LLVM_VER < 1600
|
||||||
|
StandardInstrumentations si(debugLogging, verifyEach, ppo);
|
||||||
|
+ #else
|
||||||
|
+ StandardInstrumentations si(M->getContext(), debugLogging, /*VerifyEach=*/false, ppo);
|
||||||
|
+ #endif
|
||||||
|
|
||||||
|
si.registerCallbacks(pic, &fam);
|
||||||
|
|
29
ldc-1.32.2-llvm-16-fix-aarch64-support.patch
Normal file
29
ldc-1.32.2-llvm-16-fix-aarch64-support.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
From 25cf7f83ce7e1b071912a015b366ce8f71783306 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ikey Doherty <ikey@serpentos.com>
|
||||||
|
Date: Mon, 22 May 2023 09:06:43 +0100
|
||||||
|
Subject: [PATCH] driver/targetmachine: Fix aarch64 support for LLVM >= 1600
|
||||||
|
|
||||||
|
This isn't *the* most ideal approach and in future we may want
|
||||||
|
to select specific fallbacks other than "generic".
|
||||||
|
|
||||||
|
Signed-off-by: Ikey Doherty <ikey@serpentos.com>
|
||||||
|
---
|
||||||
|
driver/targetmachine.cpp | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/driver/targetmachine.cpp b/driver/targetmachine.cpp
|
||||||
|
index be47a1dc93..3f16e20813 100644
|
||||||
|
--- a/driver/targetmachine.cpp
|
||||||
|
+++ b/driver/targetmachine.cpp
|
||||||
|
@@ -203,9 +203,11 @@ static std::string getARMTargetCPU(const llvm::Triple &triple) {
|
||||||
|
}
|
||||||
|
|
||||||
|
static std::string getAArch64TargetCPU(const llvm::Triple &triple) {
|
||||||
|
+#if LDC_LLVM_VER < 1600
|
||||||
|
auto defaultCPU = llvm::AArch64::getDefaultCPU(triple.getArchName());
|
||||||
|
if (!defaultCPU.empty())
|
||||||
|
return std::string(defaultCPU);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
return "generic";
|
||||||
|
}
|
31
ldc-1.32.2-llvm-16-fix-ms_cxx_helper.patch
Normal file
31
ldc-1.32.2-llvm-16-fix-ms_cxx_helper.patch
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
From 4d5b7dc86e5a282914b46c4982f612228bb75bb0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ikey Doherty <ikey@serpentos.com>
|
||||||
|
Date: Mon, 22 May 2023 08:48:56 +0100
|
||||||
|
Subject: [PATCH] gen/ms-cxx-helper: Use new `insertInto` LLVM16 API
|
||||||
|
|
||||||
|
Instructions now use friend APIs to add themselves into a
|
||||||
|
BasicBlock, rather than a BasicBlock having an API to add
|
||||||
|
the instructions.
|
||||||
|
|
||||||
|
Signed-off-by: Ikey Doherty <ikey@serpentos.com>
|
||||||
|
---
|
||||||
|
gen/ms-cxx-helper.cpp | 5 +++++
|
||||||
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/gen/ms-cxx-helper.cpp b/gen/ms-cxx-helper.cpp
|
||||||
|
index 52814fd5cf..9f4eb7627f 100644
|
||||||
|
--- a/gen/ms-cxx-helper.cpp
|
||||||
|
+++ b/gen/ms-cxx-helper.cpp
|
||||||
|
@@ -114,7 +114,12 @@ void cloneBlocks(const std::vector<llvm::BasicBlock *> &srcblocks,
|
||||||
|
if (!newInst)
|
||||||
|
newInst = Inst->clone();
|
||||||
|
|
||||||
|
+ #if LDC_LLVM_VER < 1600
|
||||||
|
nbb->getInstList().push_back(newInst);
|
||||||
|
+ #else
|
||||||
|
+ newInst->insertInto(nbb, nbb->end());
|
||||||
|
+ #endif
|
||||||
|
+
|
||||||
|
VMap[Inst] = newInst; // Add instruction map to value.
|
||||||
|
if (unwindTo)
|
||||||
|
if (auto dest = getUnwindDest(Inst))
|
29
ldc-1.32.2-llvm-16-stop_using_aggressive_combine.patch
Normal file
29
ldc-1.32.2-llvm-16-stop_using_aggressive_combine.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
From 097c9787d6d76cd069e90fdeccc083ccec5b9631 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ikey Doherty <ikey@serpentos.com>
|
||||||
|
Date: Mon, 22 May 2023 09:01:59 +0100
|
||||||
|
Subject: [PATCH] driver/main: For LLVM > 16, stop using AggressiveInstCombine
|
||||||
|
|
||||||
|
This was killed upstream in the codegen pipeline as part of a bunch of
|
||||||
|
legacy PM removals:
|
||||||
|
|
||||||
|
- https://reviews.llvm.org/D137116
|
||||||
|
|
||||||
|
Signed-off-by: Ikey Doherty <ikey@serpentos.com>
|
||||||
|
---
|
||||||
|
driver/main.cpp | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/driver/main.cpp b/driver/main.cpp
|
||||||
|
index 6d1c3441eb..fcaaf28983 100644
|
||||||
|
--- a/driver/main.cpp
|
||||||
|
+++ b/driver/main.cpp
|
||||||
|
@@ -579,7 +579,9 @@ void initializePasses() {
|
||||||
|
#endif
|
||||||
|
initializeVectorization(Registry);
|
||||||
|
initializeInstCombine(Registry);
|
||||||
|
+#if LDC_LLVM_VER < 1600
|
||||||
|
initializeAggressiveInstCombine(Registry);
|
||||||
|
+#endif
|
||||||
|
initializeIPO(Registry);
|
||||||
|
#if LDC_LLVM_VER < 1600
|
||||||
|
initializeInstrumentation(Registry);
|
25
ldc-1.32.2-llvm-16-update_to_ir_include.patch
Normal file
25
ldc-1.32.2-llvm-16-update_to_ir_include.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
From 815684cd36cc438c7b0ebfea672abdd107dd7c96 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ikey Doherty <ikey@serpentos.com>
|
||||||
|
Date: Mon, 22 May 2023 08:40:52 +0100
|
||||||
|
Subject: [PATCH] gen/runtime: Use the correct header path for ModRef
|
||||||
|
|
||||||
|
In stable LLVM 16 this is now under `Support` and not `IR`
|
||||||
|
|
||||||
|
Signed-off-by: Ikey Doherty <ikey@serpentos.com>
|
||||||
|
---
|
||||||
|
gen/runtime.cpp | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/gen/runtime.cpp b/gen/runtime.cpp
|
||||||
|
index 37cd6dc741..c2040341f2 100644
|
||||||
|
--- a/gen/runtime.cpp
|
||||||
|
+++ b/gen/runtime.cpp
|
||||||
|
@@ -33,7 +33,7 @@
|
||||||
|
#include "llvm/Bitcode/BitcodeWriter.h"
|
||||||
|
#include "llvm/IR/Attributes.h"
|
||||||
|
#if LDC_LLVM_VER >= 1600
|
||||||
|
-#include "llvm/IR/ModRef.h"
|
||||||
|
+#include "llvm/Support/ModRef.h"
|
||||||
|
#endif
|
||||||
|
#include "llvm/IR/Module.h"
|
||||||
|
#include "llvm/Support/CommandLine.h"
|
204
ldc-1.32.2-llvm-16-use_std_optional_api.patch
Normal file
204
ldc-1.32.2-llvm-16-use_std_optional_api.patch
Normal file
@ -0,0 +1,204 @@
|
|||||||
|
From 8e1dffa5203439996d6c461485cad566ec321884 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ikey Doherty <ikey@serpentos.com>
|
||||||
|
Date: Mon, 22 May 2023 10:53:55 +0100
|
||||||
|
Subject: [PATCH] For LLVM >= 16, use std::optional APIs
|
||||||
|
|
||||||
|
Unfortunately when building with LLVM < 15, we're using C++-11,
|
||||||
|
so the std::optional bits are only available in C++-17.
|
||||||
|
|
||||||
|
Even more unfortunately we can't really override this, rather
|
||||||
|
inherit the fact of using C++-17 when using LLVM > 16.
|
||||||
|
|
||||||
|
Thus, we add a slightly messy conditional compilation situation
|
||||||
|
to allow usage of LDC on older LLVM versions, and with newer
|
||||||
|
LLVM/libcxx.
|
||||||
|
|
||||||
|
Signed-off-by: Ikey Doherty <ikey@serpentos.com>
|
||||||
|
---
|
||||||
|
driver/args.cpp | 4 ++++
|
||||||
|
driver/linker.cpp | 4 ++++
|
||||||
|
driver/linker.h | 4 ++++
|
||||||
|
gen/dcompute/druntime.cpp | 7 ++++++-
|
||||||
|
gen/dibuilder.cpp | 21 +++++++++++++++++++++
|
||||||
|
gen/optimizer.cpp | 5 +++++
|
||||||
|
gen/uda.cpp | 4 ++++
|
||||||
|
utils/not.cpp | 4 ++++
|
||||||
|
8 files changed, 52 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/driver/args.cpp b/driver/args.cpp
|
||||||
|
index da291202d1..bad8e45dee 100644
|
||||||
|
--- a/driver/args.cpp
|
||||||
|
+++ b/driver/args.cpp
|
||||||
|
@@ -175,7 +175,11 @@ int executeAndWait(std::vector<const char *> fullArgs,
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::vector<llvm::StringRef> argv = toRefsVector(fullArgs);
|
||||||
|
+#if LDC_LLVM_VER < 1600
|
||||||
|
auto envVars = llvm::None;
|
||||||
|
+#else
|
||||||
|
+ auto envVars = std::nullopt;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
return llvm::sys::ExecuteAndWait(argv[0], argv, envVars, {}, 0, 0, errorMsg);
|
||||||
|
}
|
||||||
|
diff --git a/driver/linker.cpp b/driver/linker.cpp
|
||||||
|
index 76266379d2..803d5e883e 100644
|
||||||
|
--- a/driver/linker.cpp
|
||||||
|
+++ b/driver/linker.cpp
|
||||||
|
@@ -195,7 +195,11 @@ static std::vector<std::string> getDefaultLibNames() {
|
||||||
|
llvm::Optional<std::vector<std::string>> getExplicitPlatformLibs() {
|
||||||
|
if (platformLib.getNumOccurrences() > 0)
|
||||||
|
return parseLibNames(platformLib);
|
||||||
|
+#if LDC_LLVM_VER < 1600
|
||||||
|
return llvm::None;
|
||||||
|
+#else
|
||||||
|
+ return std::nullopt;
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
diff --git a/driver/linker.h b/driver/linker.h
|
||||||
|
index f962054efa..28362d8652 100644
|
||||||
|
--- a/driver/linker.h
|
||||||
|
+++ b/driver/linker.h
|
||||||
|
@@ -42,7 +42,11 @@ bool linkAgainstSharedDefaultLibs();
|
||||||
|
/**
|
||||||
|
* Returns the -platformlib library names, if specified.
|
||||||
|
*/
|
||||||
|
+#if LDC_LLVM_VER < 1600
|
||||||
|
llvm::Optional<std::vector<std::string>> getExplicitPlatformLibs();
|
||||||
|
+#else
|
||||||
|
+std::optional<std::vector<std::string>> getExplicitPlatformLibs();
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value of -mscrtlib.
|
||||||
|
diff --git a/gen/dcompute/druntime.cpp b/gen/dcompute/druntime.cpp
|
||||||
|
index 6867765466..aee93f4c53 100644
|
||||||
|
--- a/gen/dcompute/druntime.cpp
|
||||||
|
+++ b/gen/dcompute/druntime.cpp
|
||||||
|
@@ -42,8 +42,13 @@ bool isFromLDC_OpenCL(Dsymbol *sym) {
|
||||||
|
}
|
||||||
|
|
||||||
|
llvm::Optional<DcomputePointer> toDcomputePointer(StructDeclaration *sd) {
|
||||||
|
- if (sd->ident != Id::dcPointer || !isFromLDC_DCompute(sd))
|
||||||
|
+ if (sd->ident != Id::dcPointer || !isFromLDC_DCompute(sd)) {
|
||||||
|
+#if LDC_LLVM_VER < 1600
|
||||||
|
return llvm::Optional<DcomputePointer>(llvm::None);
|
||||||
|
+#else
|
||||||
|
+ return std::optional<DcomputePointer>(std::nullopt);
|
||||||
|
+#endif
|
||||||
|
+ }
|
||||||
|
|
||||||
|
TemplateInstance *ti = sd->isInstantiated();
|
||||||
|
int addrspace = isExpression((*ti->tiargs)[0])->toInteger();
|
||||||
|
diff --git a/gen/dibuilder.cpp b/gen/dibuilder.cpp
|
||||||
|
index 1e817ee3f4..f7068294dd 100644
|
||||||
|
--- a/gen/dibuilder.cpp
|
||||||
|
+++ b/gen/dibuilder.cpp
|
||||||
|
@@ -372,7 +372,11 @@ DIType DIBuilder::CreateEnumType(TypeEnum *type) {
|
||||||
|
DIType DIBuilder::CreatePointerType(TypePointer *type) {
|
||||||
|
// TODO: The addressspace is important for dcompute targets. See e.g.
|
||||||
|
// https://www.mail-archive.com/dwarf-discuss@lists.dwarfstd.org/msg00326.html
|
||||||
|
+#if LDC_LLVM_VER < 1600
|
||||||
|
const llvm::Optional<unsigned> DWARFAddressSpace = llvm::None;
|
||||||
|
+#else
|
||||||
|
+ const std::optional<unsigned> DWARFAddressSpace = std::nullopt;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
const auto name = processDIName(type->toPrettyChars(true));
|
||||||
|
|
||||||
|
@@ -730,7 +734,11 @@ DISubroutineType DIBuilder::CreateFunctionType(Type *type) {
|
||||||
|
}
|
||||||
|
|
||||||
|
DISubroutineType DIBuilder::CreateEmptyFunctionType() {
|
||||||
|
+#if LDC_LLVM_VER < 1600
|
||||||
|
auto paramsArray = DBuilder.getOrCreateTypeArray(llvm::None);
|
||||||
|
+#else
|
||||||
|
+ auto paramsArray = DBuilder.getOrCreateTypeArray(std::nullopt);
|
||||||
|
+#endif
|
||||||
|
return DBuilder.createSubroutineType(paramsArray);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -774,9 +782,16 @@ DIType DIBuilder::CreateTypeDescription(Type *t, bool voidToUbyte) {
|
||||||
|
return nullptr;
|
||||||
|
if (t->ty == TY::Tnull) {
|
||||||
|
// display null as void*
|
||||||
|
+#if LDC_LLVM_VER < 1600
|
||||||
|
return DBuilder.createPointerType(
|
||||||
|
CreateTypeDescription(Type::tvoid), target.ptrsize * 8, 0,
|
||||||
|
/* DWARFAddressSpace */ llvm::None, "typeof(null)");
|
||||||
|
+#else
|
||||||
|
+ return DBuilder.createPointerType(
|
||||||
|
+ CreateTypeDescription(Type::tvoid), target.ptrsize * 8, 0,
|
||||||
|
+ /* DWARFAddressSpace */ std::nullopt, "typeof(null)");
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
}
|
||||||
|
if (auto te = t->isTypeEnum())
|
||||||
|
return CreateEnumType(te);
|
||||||
|
@@ -798,8 +813,14 @@ DIType DIBuilder::CreateTypeDescription(Type *t, bool voidToUbyte) {
|
||||||
|
const auto aggregateDIType = CreateCompositeType(t);
|
||||||
|
const auto name =
|
||||||
|
(tc->sym->toPrettyChars(true) + llvm::StringRef("*")).str();
|
||||||
|
+#if LDC_LLVM_VER < 1600
|
||||||
|
return DBuilder.createPointerType(aggregateDIType, target.ptrsize * 8, 0,
|
||||||
|
llvm::None, processDIName(name));
|
||||||
|
+#else
|
||||||
|
+ return DBuilder.createPointerType(aggregateDIType, target.ptrsize * 8, 0,
|
||||||
|
+ std::nullopt, processDIName(name));
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
}
|
||||||
|
if (auto tf = t->isTypeFunction())
|
||||||
|
return CreateFunctionType(tf);
|
||||||
|
diff --git a/gen/optimizer.cpp b/gen/optimizer.cpp
|
||||||
|
index 86146bf6f3..13bad60a04 100644
|
||||||
|
--- a/gen/optimizer.cpp
|
||||||
|
+++ b/gen/optimizer.cpp
|
||||||
|
@@ -572,8 +572,13 @@ static llvm::Optional<PGOOptions> getPGOOptions() {
|
||||||
|
PGOOptions::CSPGOAction::NoCSAction,
|
||||||
|
debugInfoForProfiling, pseudoProbeForProfiling);
|
||||||
|
}
|
||||||
|
+#if LDC_LLVM_VER < 1600
|
||||||
|
return None;
|
||||||
|
+#else
|
||||||
|
+ return std::nullopt;
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
+
|
||||||
|
static PipelineTuningOptions getPipelineTuningOptions(unsigned optLevelVal, unsigned sizeLevelVal) {
|
||||||
|
PipelineTuningOptions pto;
|
||||||
|
|
||||||
|
diff --git a/gen/uda.cpp b/gen/uda.cpp
|
||||||
|
index 371b565b38..521205c5da 100644
|
||||||
|
--- a/gen/uda.cpp
|
||||||
|
+++ b/gen/uda.cpp
|
||||||
|
@@ -219,7 +219,11 @@ void applyAttrAllocSize(StructLiteralExp *sle, IrFunction *irFunc) {
|
||||||
|
if (numArgIdx >= 0) {
|
||||||
|
builder.addAllocSizeAttr(llvmSizeIdx, llvmNumIdx);
|
||||||
|
} else {
|
||||||
|
+#if LDC_LLVM_VER < 1600
|
||||||
|
builder.addAllocSizeAttr(llvmSizeIdx, llvm::Optional<unsigned>());
|
||||||
|
+#else
|
||||||
|
+ builder.addAllocSizeAttr(llvmSizeIdx, std::optional<unsigned>());
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
llvm::Function *func = irFunc->getLLVMFunc();
|
||||||
|
diff --git a/utils/not.cpp b/utils/not.cpp
|
||||||
|
index b434af7331..7ca8d1d8a6 100644
|
||||||
|
--- a/utils/not.cpp
|
||||||
|
+++ b/utils/not.cpp
|
||||||
|
@@ -43,7 +43,11 @@ int main(int argc, const char **argv) {
|
||||||
|
Argv.reserve(argc);
|
||||||
|
for (int i = 0; i < argc; ++i)
|
||||||
|
Argv.push_back(argv[i]);
|
||||||
|
+#if LDC_LLVM_VER < 1600
|
||||||
|
auto Env = llvm::None;
|
||||||
|
+#else
|
||||||
|
+ auto Env = std::nullopt;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
std::string ErrMsg;
|
||||||
|
int Result = sys::ExecuteAndWait(*Program, Argv, Env, {}, 0, 0, &ErrMsg);
|
30
ldc-1.32.2-llvm-16.0.4-use_std_optional_api.patch
Normal file
30
ldc-1.32.2-llvm-16.0.4-use_std_optional_api.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
--- ldc-1.32.2/driver/args.h.orig 2023-05-28 16:39:55.277642880 +0200
|
||||||
|
+++ ldc-1.32.2/driver/args.h 2023-05-28 16:43:17.582551616 +0200
|
||||||
|
@@ -40,8 +40,8 @@
|
||||||
|
// Executes a command line and returns its exit code.
|
||||||
|
// Optionally uses a response file to overcome cmdline length limitations.
|
||||||
|
int executeAndWait(std::vector<const char *> fullArgs,
|
||||||
|
- llvm::Optional<llvm::sys::WindowsEncodingMethod>
|
||||||
|
- responseFileEncoding = {llvm::None},
|
||||||
|
+ std::optional<llvm::sys::WindowsEncodingMethod>
|
||||||
|
+ responseFileEncoding = {std::nullopt},
|
||||||
|
std::string *errorMsg = nullptr);
|
||||||
|
} // namespace args
|
||||||
|
|
||||||
|
--- ldc-1.32.2/driver/args.cpp.orig 2023-05-28 16:43:44.700403861 +0200
|
||||||
|
+++ ldc-1.32.2/driver/args.cpp 2023-05-28 16:46:39.739443702 +0200
|
||||||
|
@@ -159,11 +159,11 @@
|
||||||
|
|
||||||
|
int executeAndWait(
|
||||||
|
std::vector<const char *> fullArgs,
|
||||||
|
- llvm::Optional<llvm::sys::WindowsEncodingMethod> responseFileEncoding,
|
||||||
|
+ std::optional<llvm::sys::WindowsEncodingMethod> responseFileEncoding,
|
||||||
|
std::string *errorMsg) {
|
||||||
|
args::ResponseFile rspFile;
|
||||||
|
- if (responseFileEncoding.hasValue() &&
|
||||||
|
- !rspFile.setup(fullArgs, responseFileEncoding.getValue())) {
|
||||||
|
+ if (responseFileEncoding.has_value() &&
|
||||||
|
+ !rspFile.setup(fullArgs, responseFileEncoding.value())) {
|
||||||
|
if (errorMsg)
|
||||||
|
*errorMsg = "could not write temporary response file";
|
||||||
|
return -1;
|
64
ldc.spec
64
ldc.spec
@ -1,7 +1,7 @@
|
|||||||
%define bootstrap 0
|
#% define bootstrap 0
|
||||||
Name: ldc
|
Name: ldc
|
||||||
Version: 1.31.0
|
Version: 1.32.2
|
||||||
Release: 2mamba
|
Release: 1mamba
|
||||||
Summary: The LLVM-based D Compiler
|
Summary: The LLVM-based D Compiler
|
||||||
Group: Applications/Development
|
Group: Applications/Development
|
||||||
Vendor: openmamba
|
Vendor: openmamba
|
||||||
@ -12,17 +12,24 @@ Source: https://github.com/ldc-developers/ldc.git/v%{version}/ldc-%{versi
|
|||||||
Source1: https://github.com/ldc-developers/ldc/releases/download/v%{version}/ldc2-%{version}-linux-x86_64.tar.xz
|
Source1: https://github.com/ldc-developers/ldc/releases/download/v%{version}/ldc2-%{version}-linux-x86_64.tar.xz
|
||||||
Source2: https://github.com/ldc-developers/ldc/releases/download/v1.2.0/ldc2-1.2.0-linux-x86.tar.xz
|
Source2: https://github.com/ldc-developers/ldc/releases/download/v1.2.0/ldc2-1.2.0-linux-x86.tar.xz
|
||||||
Source3: https://github.com/ldc-developers/ldc/releases/download/v%{version}/ldc2-%{version}-linux-aarch64.tar.xz
|
Source3: https://github.com/ldc-developers/ldc/releases/download/v%{version}/ldc2-%{version}-linux-aarch64.tar.xz
|
||||||
Patch0: ldc-1.23.0-llvm-11.patch
|
Patch0: ldc-1.32.2-llvm-16-update_to_ir_include.patch
|
||||||
|
Patch1: ldc-1.32.2-llvm-16-context_usage.patch
|
||||||
|
Patch2: ldc-1.32.2-llvm-16-fix-ms_cxx_helper.patch
|
||||||
|
Patch3: ldc-1.32.2-llvm-16-stop_using_aggressive_combine.patch
|
||||||
|
Patch4: ldc-1.32.2-llvm-16-fix-aarch64-support.patch
|
||||||
|
Patch5: ldc-1.32.2-llvm-16-use_std_optional_api.patch
|
||||||
|
Patch6: ldc-1.32.2-llvm-16-add_llvm_profdata.patch
|
||||||
|
Patch7: ldc-1.32.2-llvm-16.0.4-use_std_optional_api.patch
|
||||||
License: BSD
|
License: BSD
|
||||||
## AUTOBUILDREQ-BEGIN
|
## AUTOBUILDREQ-BEGIN
|
||||||
BuildRequires: glibc-devel
|
BuildRequires: glibc-devel
|
||||||
BuildRequires: libgcc
|
BuildRequires: libgcc
|
||||||
|
BuildRequires: liblld-devel
|
||||||
BuildRequires: libllvm-devel
|
BuildRequires: libllvm-devel
|
||||||
BuildRequires: libspirv-llvm-translator-devel
|
|
||||||
BuildRequires: libstdc++6-devel
|
BuildRequires: libstdc++6-devel
|
||||||
## AUTOBUILDREQ-END
|
## AUTOBUILDREQ-END
|
||||||
BuildRequires: cmake
|
BuildRequires: cmake
|
||||||
BuildRequires: libllvm-devel >= 14.0.3
|
BuildRequires: libllvm-devel >= 16.0.4
|
||||||
Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release}
|
Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release}
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -46,7 +53,7 @@ This package contains libraries and header files for developing applications tha
|
|||||||
%debug_package
|
%debug_package
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%if "0%{?bootstrap}"
|
%if "%{?bootstrap}" != ""
|
||||||
%ifarch x86_64
|
%ifarch x86_64
|
||||||
%setup -q -a1
|
%setup -q -a1
|
||||||
%endif
|
%endif
|
||||||
@ -59,21 +66,24 @@ This package contains libraries and header files for developing applications tha
|
|||||||
%else
|
%else
|
||||||
%setup -q
|
%setup -q
|
||||||
%endif
|
%endif
|
||||||
#%patch0 -p1
|
|
||||||
|
%patch 0 -p1 -b .llvm-16-update_to_ir_include
|
||||||
|
%patch 1 -p1 -b .llvm-16-context_usage
|
||||||
|
%patch 2 -p1 -b .llvm-16-add_llvm_profdata
|
||||||
|
%patch 3 -p1 -b .llvm-16-fix-ms_cxx_helper
|
||||||
|
%patch 4 -p1 -b .llvm-16-stop_using_aggressive_combine
|
||||||
|
%patch 5 -p1 -b .llvm-16-fix-aarch64-support
|
||||||
|
%patch 6 -p1 -b .llvm-16-use_std_optional_api
|
||||||
|
%patch 7 -p1 -b .llvm-16.0.4-use_std_optional_api
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%cmake -d build \
|
%cmake -d build \
|
||||||
-DBUILD_SHARED_LIBS=BOTH \
|
-DBUILD_SHARED_LIBS=BOTH \
|
||||||
-DBUILD_LTO_LIBS=ON \
|
-DBUILD_LTO_LIBS=ON \
|
||||||
-DLDC_WITH_LLD=OFF \
|
|
||||||
%ifarch x86_64 aarch64
|
|
||||||
-DD_COMPILER_FLAGS="-link-defaultlib-shared=false -linker=gold --flto=thin" \
|
|
||||||
%else
|
|
||||||
-DD_COMPILER_FLAGS="-link-defaultlib-shared=false --flto=thin" \
|
-DD_COMPILER_FLAGS="-link-defaultlib-shared=false --flto=thin" \
|
||||||
%endif
|
|
||||||
-DADDITIONAL_DEFAULT_LDC_SWITCHES="\"-link-defaultlib-shared\"" \
|
-DADDITIONAL_DEFAULT_LDC_SWITCHES="\"-link-defaultlib-shared\"" \
|
||||||
-DINCLUDE_INSTALL_DIR=%{_includedir}/d \
|
-DINCLUDE_INSTALL_DIR=%{_includedir}/dlang/ldc \
|
||||||
%if "0%{?bootstrap}" != "0"
|
%if "%{?bootstrap}" != ""
|
||||||
%ifarch x86_64
|
%ifarch x86_64
|
||||||
-DD_COMPILER=`pwd`/../ldc2-%{version}-linux-x86_64/bin/ldmd2
|
-DD_COMPILER=`pwd`/../ldc2-%{version}-linux-x86_64/bin/ldmd2
|
||||||
%endif
|
%endif
|
||||||
@ -106,6 +116,7 @@ This package contains libraries and header files for developing applications tha
|
|||||||
%{_bindir}/ldc-prune-cache
|
%{_bindir}/ldc-prune-cache
|
||||||
%{_bindir}/ldc2
|
%{_bindir}/ldc2
|
||||||
%{_bindir}/ldmd2
|
%{_bindir}/ldmd2
|
||||||
|
%{_bindir}/timetrace2txt
|
||||||
%{_datadir}/bash-completion/completions/ldc2
|
%{_datadir}/bash-completion/completions/ldc2
|
||||||
|
|
||||||
%files -n lib%{name}
|
%files -n lib%{name}
|
||||||
@ -119,18 +130,8 @@ This package contains libraries and header files for developing applications tha
|
|||||||
|
|
||||||
%files -n lib%{name}-devel
|
%files -n lib%{name}-devel
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%dir %{_includedir}/d
|
%dir %{_includedir}/dlang/ldc
|
||||||
%dir %{_includedir}/d/core
|
%{_includedir}/dlang/ldc/*
|
||||||
%{_includedir}/d/core/*
|
|
||||||
%dir %{_includedir}/d/etc
|
|
||||||
%{_includedir}/d/etc/*
|
|
||||||
%dir %{_includedir}/d/ldc
|
|
||||||
%{_includedir}/d/ldc/*
|
|
||||||
%{_includedir}/d/object.d
|
|
||||||
%dir %{_includedir}/d/std
|
|
||||||
%{_includedir}/d/std/*
|
|
||||||
%{_includedir}/d/__builtins.di
|
|
||||||
%{_includedir}/d/importc.h
|
|
||||||
%{_libdir}/ldc_rt.dso.o
|
%{_libdir}/ldc_rt.dso.o
|
||||||
%{_libdir}/libdruntime-ldc-debug-shared.so
|
%{_libdir}/libdruntime-ldc-debug-shared.so
|
||||||
%{_libdir}/libdruntime-ldc-shared.so
|
%{_libdir}/libdruntime-ldc-shared.so
|
||||||
@ -141,6 +142,15 @@ This package contains libraries and header files for developing applications tha
|
|||||||
%doc README.md
|
%doc README.md
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun May 28 2023 Automatic Build System <autodist@mambasoft.it> 1.32.2-1mamba
|
||||||
|
- automatic version update by autodist
|
||||||
|
|
||||||
|
* Tue Apr 18 2023 Automatic Build System <autodist@mambasoft.it> 1.32.1-1mamba
|
||||||
|
- automatic version update by autodist
|
||||||
|
|
||||||
|
* Tue Mar 14 2023 Automatic Build System <autodist@mambasoft.it> 1.32.0-1mamba
|
||||||
|
- automatic version update by autodist
|
||||||
|
|
||||||
* Sun Mar 12 2023 Silvan Calarco <silvan.calarco@mambasoft.it> 1.31.0-2mamba
|
* Sun Mar 12 2023 Silvan Calarco <silvan.calarco@mambasoft.it> 1.31.0-2mamba
|
||||||
- rebuiult with more cmake flags as attempt to fix 'Error: unrecognized trait classInstanceAlignment'
|
- rebuiult with more cmake flags as attempt to fix 'Error: unrecognized trait classInstanceAlignment'
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user