rework build flags [release 9.0.1-4mamba;Sat Feb 08 2020]
This commit is contained in:
parent
1a3da34681
commit
1e0d217566
@ -1,23 +0,0 @@
|
|||||||
diff -Nru llvm-3.4.orig/tools/clang/lib/Driver/Tools.cpp llvm-3.4/tools/clang/lib/Driver/Tools.cpp
|
|
||||||
--- llvm-3.4.orig/clang-3.4/lib/Driver/Tools.cpp 2013-12-09 03:59:27.000000000 +0100
|
|
||||||
+++ llvm-3.4/clang-3.4/lib/Driver/Tools.cpp 2014-02-17 10:53:55.496716319 +0100
|
|
||||||
@@ -1309,7 +1309,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
// All x86 devices running Android have core2 as their common
|
|
||||||
- // denominator. This makes a better choice than pentium4.
|
|
||||||
+ // denominator. This makes a better choice than i586.
|
|
||||||
if (Triple.getEnvironment() == llvm::Triple::Android)
|
|
||||||
return "core2";
|
|
||||||
|
|
||||||
@@ -1327,8 +1327,8 @@
|
|
||||||
case llvm::Triple::Bitrig:
|
|
||||||
return "i686";
|
|
||||||
default:
|
|
||||||
- // Fallback to p4.
|
|
||||||
- return "pentium4";
|
|
||||||
+ // Fallback to i586.
|
|
||||||
+ return "i586";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
|||||||
Index: llvm-toolchain-snapshot-3.5~svn211313/tools/bugpoint/Makefile
|
|
||||||
===================================================================
|
|
||||||
--- llvm-toolchain-snapshot-3.5~svn211313.orig/tools/bugpoint/Makefile
|
|
||||||
+++ llvm-toolchain-snapshot-3.5~svn211313/tools/bugpoint/Makefile
|
|
||||||
@@ -12,6 +12,9 @@ TOOLNAME := bugpoint
|
|
||||||
LINK_COMPONENTS := asmparser instrumentation scalaropts ipo linker bitreader \
|
|
||||||
bitwriter irreader vectorize objcarcopts codegen
|
|
||||||
|
|
||||||
+# Crappy workaround to make sure it links correctly.
|
|
||||||
+LLVMLibsOptions := ../../lib/IR/Release*/Pass.o
|
|
||||||
+
|
|
||||||
# Support plugins.
|
|
||||||
NO_DEAD_STRIP := 1
|
|
||||||
|
|
||||||
Index: llvm-toolchain-snapshot-3.5~svn211313/tools/opt/Makefile
|
|
||||||
===================================================================
|
|
||||||
--- llvm-toolchain-snapshot-3.5~svn211313.orig/tools/opt/Makefile
|
|
||||||
+++ llvm-toolchain-snapshot-3.5~svn211313/tools/opt/Makefile
|
|
||||||
@@ -10,7 +10,9 @@
|
|
||||||
LEVEL := ../..
|
|
||||||
TOOLNAME := opt
|
|
||||||
LINK_COMPONENTS := bitreader bitwriter asmparser irreader instrumentation scalaropts objcarcopts ipo vectorize all-targets codegen
|
|
||||||
+# Crappy workaround to make sure it links correctly.
|
|
||||||
|
|
||||||
+LLVMLibsOptions := ../../lib/IR/Release*/Pass.o
|
|
||||||
# Support plugins.
|
|
||||||
NO_DEAD_STRIP := 1
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
|||||||
--- llvm-3.5.0.src.orig/tools/llvm-config/llvm-config.cpp 2014-09-10 15:06:29.305956568 +0200
|
|
||||||
+++ llvm-3.5.0.src/tools/llvm-config/llvm-config.cpp 2014-09-19 00:41:14.963576743 +0200
|
|
||||||
@@ -243,16 +243,16 @@
|
|
||||||
case MakefileStyle:
|
|
||||||
ActivePrefix = ActiveObjRoot;
|
|
||||||
ActiveBinDir = ActiveObjRoot + "/" + build_mode + "/bin";
|
|
||||||
- ActiveLibDir = ActiveObjRoot + "/" + build_mode + "/lib";
|
|
||||||
+ ActiveLibDir = ActiveObjRoot + "/" + build_mode + "/lib/llvm";
|
|
||||||
break;
|
|
||||||
case CMakeStyle:
|
|
||||||
ActiveBinDir = ActiveObjRoot + "/bin";
|
|
||||||
- ActiveLibDir = ActiveObjRoot + "/lib";
|
|
||||||
+ ActiveLibDir = ActiveObjRoot + "/lib/llvm";
|
|
||||||
break;
|
|
||||||
case CMakeBuildModeStyle:
|
|
||||||
ActivePrefix = ActiveObjRoot;
|
|
||||||
ActiveBinDir = ActiveObjRoot + "/bin/" + build_mode;
|
|
||||||
- ActiveLibDir = ActiveObjRoot + "/lib/" + build_mode;
|
|
||||||
+ ActiveLibDir = ActiveObjRoot + "/lib/llvm" + build_mode;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -263,7 +263,7 @@
|
|
||||||
ActivePrefix = CurrentExecPrefix;
|
|
||||||
ActiveIncludeDir = ActivePrefix + "/include";
|
|
||||||
ActiveBinDir = ActivePrefix + "/bin";
|
|
||||||
- ActiveLibDir = ActivePrefix + "/lib";
|
|
||||||
+ ActiveLibDir = ActivePrefix + "/lib/llvm";
|
|
||||||
ActiveIncludeOption = "-I" + ActiveIncludeDir;
|
|
||||||
}
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
|||||||
--- llvm-3.5.0.src.orig/tools/llvm-config/llvm-config.cpp 2014-09-10 15:06:29.305956568 +0200
|
|
||||||
+++ llvm-3.5.0.src/tools/llvm-config/llvm-config.cpp 2014-09-19 00:41:14.963576743 +0200
|
|
||||||
@@ -243,16 +243,16 @@
|
|
||||||
case MakefileStyle:
|
|
||||||
ActivePrefix = ActiveObjRoot;
|
|
||||||
ActiveBinDir = ActiveObjRoot + "/" + build_mode + "/bin";
|
|
||||||
- ActiveLibDir = ActiveObjRoot + "/" + build_mode + "/lib";
|
|
||||||
+ ActiveLibDir = ActiveObjRoot + "/" + build_mode + "/lib64/llvm";
|
|
||||||
break;
|
|
||||||
case CMakeStyle:
|
|
||||||
ActiveBinDir = ActiveObjRoot + "/bin";
|
|
||||||
- ActiveLibDir = ActiveObjRoot + "/lib";
|
|
||||||
+ ActiveLibDir = ActiveObjRoot + "/lib64/llvm";
|
|
||||||
break;
|
|
||||||
case CMakeBuildModeStyle:
|
|
||||||
ActivePrefix = ActiveObjRoot;
|
|
||||||
ActiveBinDir = ActiveObjRoot + "/bin/" + build_mode;
|
|
||||||
- ActiveLibDir = ActiveObjRoot + "/lib/" + build_mode;
|
|
||||||
+ ActiveLibDir = ActiveObjRoot + "/lib64/llvm" + build_mode;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -263,7 +263,7 @@
|
|
||||||
ActivePrefix = CurrentExecPrefix;
|
|
||||||
ActiveIncludeDir = ActivePrefix + "/include";
|
|
||||||
ActiveBinDir = ActivePrefix + "/bin";
|
|
||||||
- ActiveLibDir = ActivePrefix + "/lib";
|
|
||||||
+ ActiveLibDir = ActivePrefix + "/lib64/llvm";
|
|
||||||
ActiveIncludeOption = "-I" + ActiveIncludeDir;
|
|
||||||
}
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
|||||||
Description: Silent a test failing on yakkety amd64
|
|
||||||
/tmp/buildd/llvm-toolchain-snapshot-4.0~svn279801/test/tools/llvm-symbolizer/print_context.c:16:11: error: expected string not found in input
|
|
||||||
// CHECK: inc
|
|
||||||
^
|
|
||||||
<stdin>:1:1: note: scanning from here
|
|
||||||
_fini
|
|
||||||
^
|
|
||||||
<stdin>:1:3: note: possible intended match here
|
|
||||||
_fini
|
|
||||||
^
|
|
||||||
Author: Sylvestre <sylvestre@debian.org>
|
|
||||||
Last-Update: 2016-08-26
|
|
||||||
|
|
||||||
Index: llvm-toolchain-3.9-3.9~+rc1/test/tools/llvm-symbolizer/print_context.c
|
|
||||||
===================================================================
|
|
||||||
--- llvm-toolchain-3.9-3.9~+rc1.orig/test/tools/llvm-symbolizer/print_context.c
|
|
||||||
+++ llvm-toolchain-3.9-3.9~+rc1/test/tools/llvm-symbolizer/print_context.c
|
|
||||||
@@ -1,7 +1,7 @@
|
|
||||||
// REQUIRES: x86_64-linux
|
|
||||||
// RUN: %host_cc -O0 -g %s -o %t 2>&1
|
|
||||||
// RUN: %t 2>&1 | llvm-symbolizer -print-source-context-lines=5 -obj=%t | FileCheck %s
|
|
||||||
-
|
|
||||||
+// XFAIL: *
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
int inc(int a) {
|
|
@ -1,12 +0,0 @@
|
|||||||
--- llvm-5.0.0.src/tools/llvm-shlib/CMakeLists.txt.orig 2017-11-28 10:25:33.606319245 +0100
|
|
||||||
+++ llvm-5.0.0.src/tools/llvm-shlib/CMakeLists.txt 2017-11-28 10:24:41.439227412 +0100
|
|
||||||
@@ -36,7 +36,9 @@
|
|
||||||
|
|
||||||
add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME ${SOURCES})
|
|
||||||
|
|
||||||
+if(LIB_NAMES)
|
|
||||||
list(REMOVE_DUPLICATES LIB_NAMES)
|
|
||||||
+endif()
|
|
||||||
if(("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") OR (MINGW) OR (HAIKU) OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD") OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "DragonFly")) # FIXME: It should be "GNU ld for elf"
|
|
||||||
configure_file(
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/simple_version_script.map.in
|
|
@ -1,36 +0,0 @@
|
|||||||
From 4d613a84ce271c6225068bef67d727ae02b2e3b1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Pavel Labath <labath@google.com>
|
|
||||||
Date: Wed, 14 Mar 2018 09:28:38 +0000
|
|
||||||
Subject: [PATCH] Export LLVM_DYLIB_COMPONENTS in LLVMConfig.cmake
|
|
||||||
|
|
||||||
Summary:
|
|
||||||
This is needed so that external projects (e.g. a standalone build of
|
|
||||||
lldb) can link to the LLVM shared library via the USE_SHARED argument of
|
|
||||||
llvm_config. Without this, llvm_config would add LLVM to the link list,
|
|
||||||
but then also add the constituent static libraries, resulting in
|
|
||||||
multiply defined symbols.
|
|
||||||
|
|
||||||
Reviewers: beanz, mgorny
|
|
||||||
|
|
||||||
Subscribers: llvm-commits
|
|
||||||
|
|
||||||
Differential Revision: https://reviews.llvm.org/D44391
|
|
||||||
|
|
||||||
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327484 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
||||||
---
|
|
||||||
cmake/modules/LLVMConfig.cmake.in | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/cmake/modules/LLVMConfig.cmake.in b/cmake/modules/LLVMConfig.cmake.in
|
|
||||||
index fe4df5278498..e70018679846 100644
|
|
||||||
--- a/cmake/modules/LLVMConfig.cmake.in
|
|
||||||
+++ b/cmake/modules/LLVMConfig.cmake.in
|
|
||||||
@@ -13,6 +13,8 @@ set(LLVM_COMMON_DEPENDS @LLVM_COMMON_DEPENDS@)
|
|
||||||
|
|
||||||
set(LLVM_AVAILABLE_LIBS @LLVM_AVAILABLE_LIBS@)
|
|
||||||
|
|
||||||
+set(LLVM_DYLIB_COMPONENTS @LLVM_DYLIB_COMPONENTS@)
|
|
||||||
+
|
|
||||||
set(LLVM_ALL_TARGETS @LLVM_ALL_TARGETS@)
|
|
||||||
|
|
||||||
set(LLVM_TARGETS_TO_BUILD @LLVM_TARGETS_TO_BUILD@)
|
|
@ -1,262 +0,0 @@
|
|||||||
From 783006ec19853403b8fe799e4c1b9496cb03504a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Bjorn Pettersson <bjorn.a.pettersson@ericsson.com>
|
|
||||||
Date: Tue, 6 Mar 2018 08:47:07 +0000
|
|
||||||
Subject: [PATCH] [DebugInfo] Discard invalid DBG_VALUE instructions in
|
|
||||||
LiveDebugVariables
|
|
||||||
|
|
||||||
Summary:
|
|
||||||
This is a workaround for pr36417
|
|
||||||
https://bugs.llvm.org/show_bug.cgi?id=36417
|
|
||||||
|
|
||||||
LiveDebugVariables will now verify that the DBG_VALUE instructions
|
|
||||||
are sane (prior to register allocation) by asking LIS if a virtual
|
|
||||||
register used in the DBG_VALUE is live (or dead def) in the slot
|
|
||||||
index before the DBG_VALUE. If it isn't sane the DBG_VALUE is
|
|
||||||
discarded.
|
|
||||||
|
|
||||||
One pass that was identified as introducing non-sane DBG_VALUE
|
|
||||||
instructtons, when analysing pr36417, was the DAG->DAG Instruction
|
|
||||||
Selection. It sometimes inserts DBG_VALUE instructions referring to
|
|
||||||
a virtual register that is defined later in the same basic block.
|
|
||||||
So it is a use before def kind of problem. The DBG_VALUE is
|
|
||||||
typically inserted in the beginning of a basic block when this
|
|
||||||
happens. The problem can be seen in the test case
|
|
||||||
test/DebugInfo/X86/dbg-value-inlined-parameter.ll
|
|
||||||
|
|
||||||
Reviewers: aprantl, rnk, probinson
|
|
||||||
|
|
||||||
Reviewed By: aprantl
|
|
||||||
|
|
||||||
Subscribers: vsk, davide, alexcrichton, Ka-Ka, eraman, llvm-commits, JDevlieghere
|
|
||||||
|
|
||||||
Differential Revision: https://reviews.llvm.org/D43956
|
|
||||||
|
|
||||||
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326769 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
||||||
---
|
|
||||||
lib/CodeGen/LiveDebugVariables.cpp | 38 +++++-
|
|
||||||
test/DebugInfo/X86/dbg-value-inlined-parameter.ll | 6 +-
|
|
||||||
.../X86/live-debug-vars-discard-invalid.mir | 141 +++++++++++++++++++++
|
|
||||||
3 files changed, 181 insertions(+), 4 deletions(-)
|
|
||||||
create mode 100644 test/DebugInfo/X86/live-debug-vars-discard-invalid.mir
|
|
||||||
|
|
||||||
diff --git a/lib/CodeGen/LiveDebugVariables.cpp b/lib/CodeGen/LiveDebugVariables.cpp
|
|
||||||
index 09168b6b9309..f3fcd004defd 100644
|
|
||||||
--- a/lib/CodeGen/LiveDebugVariables.cpp
|
|
||||||
+++ b/lib/CodeGen/LiveDebugVariables.cpp
|
|
||||||
@@ -514,6 +514,39 @@ bool LDVImpl::handleDebugValue(MachineInstr &MI, SlotIndex Idx) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // Detect invalid DBG_VALUE instructions, with a debug-use of a virtual
|
|
||||||
+ // register that hasn't been defined yet. If we do not remove those here, then
|
|
||||||
+ // the re-insertion of the DBG_VALUE instruction after register allocation
|
|
||||||
+ // will be incorrect.
|
|
||||||
+ // TODO: If earlier passes are corrected to generate sane debug information
|
|
||||||
+ // (and if the machine verifier is improved to catch this), then these checks
|
|
||||||
+ // could be removed or replaced by asserts.
|
|
||||||
+ bool Discard = false;
|
|
||||||
+ if (MI.getOperand(0).isReg() &&
|
|
||||||
+ TargetRegisterInfo::isVirtualRegister(MI.getOperand(0).getReg())) {
|
|
||||||
+ const unsigned Reg = MI.getOperand(0).getReg();
|
|
||||||
+ if (!LIS->hasInterval(Reg)) {
|
|
||||||
+ // The DBG_VALUE is described by a virtual register that does not have a
|
|
||||||
+ // live interval. Discard the DBG_VALUE.
|
|
||||||
+ Discard = true;
|
|
||||||
+ DEBUG(dbgs() << "Discarding debug info (no LIS interval): "
|
|
||||||
+ << Idx << " " << MI);
|
|
||||||
+ } else {
|
|
||||||
+ // The DBG_VALUE is only valid if either Reg is live out from Idx, or Reg
|
|
||||||
+ // is defined dead at Idx (where Idx is the slot index for the instruction
|
|
||||||
+ // preceeding the DBG_VALUE).
|
|
||||||
+ const LiveInterval &LI = LIS->getInterval(Reg);
|
|
||||||
+ LiveQueryResult LRQ = LI.Query(Idx);
|
|
||||||
+ if (!LRQ.valueOutOrDead()) {
|
|
||||||
+ // We have found a DBG_VALUE with the value in a virtual register that
|
|
||||||
+ // is not live. Discard the DBG_VALUE.
|
|
||||||
+ Discard = true;
|
|
||||||
+ DEBUG(dbgs() << "Discarding debug info (reg not live): "
|
|
||||||
+ << Idx << " " << MI);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
// Get or create the UserValue for (variable,offset) here.
|
|
||||||
bool IsIndirect = MI.getOperand(1).isImm();
|
|
||||||
if (IsIndirect)
|
|
||||||
@@ -522,7 +555,10 @@ bool LDVImpl::handleDebugValue(MachineInstr &MI, SlotIndex Idx) {
|
|
||||||
const DIExpression *Expr = MI.getDebugExpression();
|
|
||||||
UserValue *UV =
|
|
||||||
getUserValue(Var, Expr, MI.getDebugLoc());
|
|
||||||
- UV->addDef(Idx, MI.getOperand(0), IsIndirect);
|
|
||||||
+ if (!Discard)
|
|
||||||
+ UV->addDef(Idx, MI.getOperand(0), IsIndirect);
|
|
||||||
+ else
|
|
||||||
+ UV->addDef(Idx, MachineOperand::CreateReg(0U, RegState::Debug), false);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/test/DebugInfo/X86/dbg-value-inlined-parameter.ll b/test/DebugInfo/X86/dbg-value-inlined-parameter.ll
|
|
||||||
index 9954039654bb..e83cf0aa7ffd 100644
|
|
||||||
--- a/test/DebugInfo/X86/dbg-value-inlined-parameter.ll
|
|
||||||
+++ b/test/DebugInfo/X86/dbg-value-inlined-parameter.ll
|
|
||||||
@@ -32,10 +32,10 @@
|
|
||||||
;CHECK-NEXT: DW_AT_call_line
|
|
||||||
|
|
||||||
;CHECK: DW_TAG_formal_parameter
|
|
||||||
-;FIXME: Linux shouldn't drop this parameter either...
|
|
||||||
;CHECK-NOT: DW_TAG
|
|
||||||
-;DARWIN: DW_AT_abstract_origin {{.*}} "sp"
|
|
||||||
-;DARWIN: DW_TAG_formal_parameter
|
|
||||||
+;FIXME: Shouldn't drop this parameter...
|
|
||||||
+;XCHECK: DW_AT_abstract_origin {{.*}} "sp"
|
|
||||||
+;XCHECK: DW_TAG_formal_parameter
|
|
||||||
;CHECK: DW_AT_abstract_origin {{.*}} "nums"
|
|
||||||
;CHECK-NOT: DW_TAG_formal_parameter
|
|
||||||
|
|
||||||
diff --git a/test/DebugInfo/X86/live-debug-vars-discard-invalid.mir b/test/DebugInfo/X86/live-debug-vars-discard-invalid.mir
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000000..abc21bc6ac90
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/test/DebugInfo/X86/live-debug-vars-discard-invalid.mir
|
|
||||||
@@ -0,0 +1,141 @@
|
|
||||||
+# RUN: llc -mtriple=x86_64-linux-gnu -start-before greedy -stop-after virtregrewriter -o - %s | FileCheck %s
|
|
||||||
+
|
|
||||||
+--- |
|
|
||||||
+ ; ModuleID = '<stdin>'
|
|
||||||
+ source_filename = "test/DebugInfo/X86/dbg-value-inlined-parameter.ll"
|
|
||||||
+ target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
|
|
||||||
+ target triple = "x86_64-apple-darwin"
|
|
||||||
+
|
|
||||||
+ %struct.S1 = type { float*, i32 }
|
|
||||||
+
|
|
||||||
+ @p = common global %struct.S1 zeroinitializer, align 8, !dbg !0
|
|
||||||
+
|
|
||||||
+ ; Function Attrs: nounwind optsize ssp
|
|
||||||
+ define void @foobar() !dbg !15 {
|
|
||||||
+ entry:
|
|
||||||
+ tail call void @llvm.dbg.value(metadata %struct.S1* @p, metadata !18, metadata !DIExpression()) , !dbg !25
|
|
||||||
+ ret void, !dbg !32
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ ; Function Attrs: nounwind readnone speculatable
|
|
||||||
+ declare void @llvm.dbg.value(metadata, metadata, metadata) #2
|
|
||||||
+
|
|
||||||
+ !llvm.dbg.cu = !{!2}
|
|
||||||
+ !llvm.module.flags = !{!14}
|
|
||||||
+
|
|
||||||
+ !0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
|
|
||||||
+ !1 = !DIGlobalVariable(name: "p", scope: !2, file: !3, line: 14, type: !6, isLocal: false, isDefinition: true)
|
|
||||||
+ !2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 2.9 (trunk 125693)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !4, globals: !5, imports: !4)
|
|
||||||
+ !3 = !DIFile(filename: "nm2.c", directory: "/private/tmp")
|
|
||||||
+ !4 = !{}
|
|
||||||
+ !5 = !{!0}
|
|
||||||
+ !6 = !DIDerivedType(tag: DW_TAG_typedef, name: "S1", scope: !2, file: !3, line: 4, baseType: !7)
|
|
||||||
+ !7 = !DICompositeType(tag: DW_TAG_structure_type, name: "S1", scope: !2, file: !3, line: 1, size: 128, align: 64, elements: !8)
|
|
||||||
+ !8 = !{!9, !12}
|
|
||||||
+ !9 = !DIDerivedType(tag: DW_TAG_member, name: "m", scope: !3, file: !3, line: 2, baseType: !10, size: 64, align: 64)
|
|
||||||
+ !10 = !DIDerivedType(tag: DW_TAG_pointer_type, scope: !2, baseType: !11, size: 64, align: 64)
|
|
||||||
+ !11 = !DIBasicType(name: "float", size: 32, align: 32, encoding: DW_ATE_float)
|
|
||||||
+ !12 = !DIDerivedType(tag: DW_TAG_member, name: "nums", scope: !3, file: !3, line: 3, baseType: !13, size: 32, align: 32, offset: 64)
|
|
||||||
+ !13 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
|
|
||||||
+ !14 = !{i32 1, !"Debug Info Version", i32 3}
|
|
||||||
+ !15 = distinct !DISubprogram(name: "foobar", scope: !3, file: !3, line: 15, type: !16, isLocal: false, isDefinition: true, virtualIndex: 6, isOptimized: true, unit: !2)
|
|
||||||
+ !16 = !DISubroutineType(types: !17)
|
|
||||||
+ !17 = !{null}
|
|
||||||
+ !18 = !DILocalVariable(name: "sp", arg: 1, scope: !19, file: !3, line: 7, type: !24)
|
|
||||||
+ !19 = distinct !DISubprogram(name: "foo", scope: !3, file: !3, line: 8, type: !20, isLocal: false, isDefinition: true, scopeLine: 8, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: true, unit: !2, variables: !22)
|
|
||||||
+ !20 = !DISubroutineType(types: !21)
|
|
||||||
+ !21 = !{!13}
|
|
||||||
+ !22 = !{!18, !23}
|
|
||||||
+ !23 = !DILocalVariable(name: "nums", arg: 2, scope: !19, file: !3, line: 7, type: !13)
|
|
||||||
+ !24 = !DIDerivedType(tag: DW_TAG_pointer_type, scope: !2, baseType: !6, size: 64, align: 64)
|
|
||||||
+ !25 = !DILocation(line: 7, column: 13, scope: !19, inlinedAt: !26)
|
|
||||||
+ !26 = !DILocation(line: 16, column: 3, scope: !27)
|
|
||||||
+ !27 = distinct !DILexicalBlock(scope: !15, file: !3, line: 15, column: 15)
|
|
||||||
+ !32 = !DILocation(line: 17, column: 1, scope: !27)
|
|
||||||
+
|
|
||||||
+...
|
|
||||||
+---
|
|
||||||
+name: foobar
|
|
||||||
+tracksRegLiveness: true
|
|
||||||
+body: |
|
|
||||||
+ bb.0:
|
|
||||||
+ %1:gr64 = IMPLICIT_DEF
|
|
||||||
+ %2:gr64 = IMPLICIT_DEF
|
|
||||||
+
|
|
||||||
+ bb.1:
|
|
||||||
+ ; This DBG_VALUE will be discarded (use before def of %0).
|
|
||||||
+ DBG_VALUE debug-use %0, debug-use %noreg, !18, !DIExpression(), debug-location !25
|
|
||||||
+ %0:gr64 = IMPLICIT_DEF
|
|
||||||
+ %0:gr64 = IMPLICIT_DEF
|
|
||||||
+ %0:gr64 = IMPLICIT_DEF
|
|
||||||
+ %0:gr64 = IMPLICIT_DEF
|
|
||||||
+
|
|
||||||
+ bb.2:
|
|
||||||
+ ; This DBG_VALUE will be discarded (%1 is defined earlier, but it is not live in, so we do not know where %1 is stored).
|
|
||||||
+ DBG_VALUE debug-use %1, debug-use %noreg, !18, !DIExpression(), debug-location !25
|
|
||||||
+ %1:gr64 = IMPLICIT_DEF
|
|
||||||
+ %1:gr64 = IMPLICIT_DEF
|
|
||||||
+ %1:gr64 = IMPLICIT_DEF
|
|
||||||
+ %1:gr64 = IMPLICIT_DEF
|
|
||||||
+ ; This DBG_VALUE is kept, even if %1 is dead, it was defined in the prev instruction,
|
|
||||||
+ ; so the value should be available for as long as the register allocated to %1 is live.
|
|
||||||
+ DBG_VALUE debug-use %1, debug-use %noreg, !18, !DIExpression(), debug-location !25
|
|
||||||
+
|
|
||||||
+ bb.3:
|
|
||||||
+ %1:gr64 = IMPLICIT_DEF
|
|
||||||
+ DBG_VALUE 0, debug-use %noreg, !23, !DIExpression(), debug-location !25
|
|
||||||
+ ; This DBG_VALUE is kept, even if %1 is dead, it was defined in the prev non-dbg instruction,
|
|
||||||
+ ; so the value should be available for as long as the register allocated to %1 is live.
|
|
||||||
+ DBG_VALUE debug-use %1, debug-use %noreg, !18, !DIExpression(), debug-location !25
|
|
||||||
+
|
|
||||||
+ bb.4:
|
|
||||||
+ ; All DBG_VALUEs here should survive. %2 is livein as it was defined in bb.0, and it has use/def in the BTS64rr instruction.
|
|
||||||
+ DBG_VALUE debug-use %2, debug-use %noreg, !18, !DIExpression(), debug-location !25
|
|
||||||
+ %2:gr64 = BTS64rr %2, 0, implicit-def %eflags
|
|
||||||
+ DBG_VALUE 0, debug-use %noreg, !23, !DIExpression(), debug-location !25
|
|
||||||
+ DBG_VALUE debug-use %2, debug-use %noreg, !18, !DIExpression(), debug-location !25
|
|
||||||
+ %2:gr64 = BTS64rr %2, 0, implicit-def %eflags
|
|
||||||
+ DBG_VALUE debug-use %2, debug-use %noreg, !18, !DIExpression(), debug-location !25
|
|
||||||
+ %2:gr64 = BTS64rr %2, 0, implicit-def %eflags
|
|
||||||
+ DBG_VALUE debug-use %2, debug-use %noreg, !18, !DIExpression(), debug-location !25
|
|
||||||
+
|
|
||||||
+ bb.5:
|
|
||||||
+ RET 0, debug-location !32
|
|
||||||
+...
|
|
||||||
+
|
|
||||||
+# CHECK-LABEL: name: foobar
|
|
||||||
+
|
|
||||||
+# CHECK-LABEL: bb.1:
|
|
||||||
+## After solving https://bugs.llvm.org/show_bug.cgi?id=36579 we expect to get a
|
|
||||||
+## DBG_VALUE debug-use %noreg
|
|
||||||
+## here.
|
|
||||||
+# CHECK-NOT: DBG_VALUE
|
|
||||||
+
|
|
||||||
+# CHECK-LABEL: bb.2:
|
|
||||||
+## After solving https://bugs.llvm.org/show_bug.cgi?id=36579 we expect to get a
|
|
||||||
+## DBG_VALUE debug-use %noreg
|
|
||||||
+## here.
|
|
||||||
+# CHECK-NOT: DBG_VALUE
|
|
||||||
+# CHECK: dead renamable %rcx = IMPLICIT_DEF
|
|
||||||
+# CHECK-NEXT: dead renamable %rcx = IMPLICIT_DEF
|
|
||||||
+# CHECK-NEXT: dead renamable %rcx = IMPLICIT_DEF
|
|
||||||
+# CHECK-NEXT: dead renamable %rcx = IMPLICIT_DEF
|
|
||||||
+# CHECK-NEXT: DBG_VALUE debug-use %rcx, debug-use %noreg, !18, !DIExpression()
|
|
||||||
+
|
|
||||||
+# CHECK-LABEL: bb.3:
|
|
||||||
+# CHECK: dead renamable %rcx = IMPLICIT_DEF
|
|
||||||
+# CHECK-NEXT: DBG_VALUE 0, debug-use %noreg, !23, !DIExpression()
|
|
||||||
+# CHECK-NEXT: DBG_VALUE debug-use %rcx, debug-use %noreg, !18, !DIExpression()
|
|
||||||
+
|
|
||||||
+# CHECK-LABEL: bb.4:
|
|
||||||
+# CHECK: liveins: %rax
|
|
||||||
+# CHECK: DBG_VALUE debug-use %rax, debug-use %noreg, !18, !DIExpression()
|
|
||||||
+# CHECK-NEXT: renamable %rax = BTS64rr killed renamable %rax, 0, implicit-def %eflags
|
|
||||||
+# CHECK-NEXT: DBG_VALUE 0, debug-use %noreg, !23, !DIExpression()
|
|
||||||
+# CHECK-NEXT: DBG_VALUE debug-use %rax, debug-use %noreg, !18, !DIExpression()
|
|
||||||
+# CHECK-NEXT: renamable %rax = BTS64rr killed renamable %rax, 0, implicit-def %eflags
|
|
||||||
+# CHECK-NEXT: DBG_VALUE debug-use %rax, debug-use %noreg, !18, !DIExpression()
|
|
||||||
+# CHECK-NEXT: dead renamable %rax = BTS64rr killed renamable %rax, 0, implicit-def %eflags
|
|
||||||
+
|
|
||||||
+# CHECK-LABEL: bb.5:
|
|
||||||
+# CHECK-NEXT: RET 0
|
|
@ -1,13 +0,0 @@
|
|||||||
Index: cmake/modules/LLVM-Config.cmake
|
|
||||||
===================================================================
|
|
||||||
--- cmake/modules/LLVM-Config.cmake
|
|
||||||
+++ cmake/modules/LLVM-Config.cmake
|
|
||||||
@@ -68,7 +68,7 @@
|
|
||||||
cmake_parse_arguments(ARG "USE_SHARED" "" "" ${ARGN})
|
|
||||||
set(link_components ${ARG_UNPARSED_ARGUMENTS})
|
|
||||||
|
|
||||||
- if(USE_SHARED)
|
|
||||||
+ if(ARG_USE_SHARED)
|
|
||||||
# If USE_SHARED is specified, then we link against libLLVM,
|
|
||||||
# but also against the component libraries below. This is
|
|
||||||
# done in case libLLVM does not contain all of the components
|
|
@ -1,28 +0,0 @@
|
|||||||
From 7c9054610e354340f9474dcd13a927f929912d1d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Eugene Zelenko <eugene.zelenko@gmail.com>
|
|
||||||
Date: Tue, 6 Mar 2018 23:06:13 +0000
|
|
||||||
Subject: [PATCH] [Transforms] Add missing header for InstructionCombining.cpp,
|
|
||||||
in order to export LLVMInitializeInstCombine as extern "C". Fixes PR35947.
|
|
||||||
|
|
||||||
Patch by Brenton Bostick.
|
|
||||||
|
|
||||||
Differential revision: https://reviews.llvm.org/D44140
|
|
||||||
|
|
||||||
|
|
||||||
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326843 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
||||||
---
|
|
||||||
lib/Transforms/InstCombine/InstructionCombining.cpp | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/lib/Transforms/InstCombine/InstructionCombining.cpp b/lib/Transforms/InstCombine/InstructionCombining.cpp
|
|
||||||
index a3b2fe9e5d22..7ec73433e8f6 100644
|
|
||||||
--- a/lib/Transforms/InstCombine/InstructionCombining.cpp
|
|
||||||
+++ b/lib/Transforms/InstCombine/InstructionCombining.cpp
|
|
||||||
@@ -34,6 +34,7 @@
|
|
||||||
//===----------------------------------------------------------------------===//
|
|
||||||
|
|
||||||
#include "InstCombineInternal.h"
|
|
||||||
+#include "llvm-c/Initialization.h"
|
|
||||||
#include "llvm/ADT/APInt.h"
|
|
||||||
#include "llvm/ADT/ArrayRef.h"
|
|
||||||
#include "llvm/ADT/DenseMap.h"
|
|
@ -1,34 +0,0 @@
|
|||||||
From 866cf8f3afa0224e31d36ca0351ac5cb0d303757 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Bjorn Pettersson <bjorn.a.pettersson@ericsson.com>
|
|
||||||
Date: Tue, 6 Mar 2018 13:23:28 +0000
|
|
||||||
Subject: [PATCH] Fixup for rL326769 (RegState::Debug is being truncated to a
|
|
||||||
bool)
|
|
||||||
|
|
||||||
I obviously messed up arguments to MachineOperand::CreateReg
|
|
||||||
in rL326769. This should make it work as intended.
|
|
||||||
|
|
||||||
Thanks to RKSimon for spotting this.
|
|
||||||
|
|
||||||
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326780 91177308-0d34-0410-b5e6-96231b3b80d8
|
|
||||||
---
|
|
||||||
lib/CodeGen/LiveDebugVariables.cpp | 7 +++++--
|
|
||||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/CodeGen/LiveDebugVariables.cpp b/lib/CodeGen/LiveDebugVariables.cpp
|
|
||||||
index f3fcd004defd..8c547cdcff33 100644
|
|
||||||
--- a/lib/CodeGen/LiveDebugVariables.cpp
|
|
||||||
+++ b/lib/CodeGen/LiveDebugVariables.cpp
|
|
||||||
@@ -557,8 +557,11 @@ bool LDVImpl::handleDebugValue(MachineInstr &MI, SlotIndex Idx) {
|
|
||||||
getUserValue(Var, Expr, MI.getDebugLoc());
|
|
||||||
if (!Discard)
|
|
||||||
UV->addDef(Idx, MI.getOperand(0), IsIndirect);
|
|
||||||
- else
|
|
||||||
- UV->addDef(Idx, MachineOperand::CreateReg(0U, RegState::Debug), false);
|
|
||||||
+ else {
|
|
||||||
+ MachineOperand MO = MachineOperand::CreateReg(0U, false);
|
|
||||||
+ MO.setIsDebug();
|
|
||||||
+ UV->addDef(Idx, MO, false);
|
|
||||||
+ }
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
|||||||
--- llvm-8.0.0.src/tools/clang/lib/Driver/ToolChains/Gnu.cpp.orig 2019-01-15 22:04:36.000000000 +0100
|
|
||||||
+++ llvm-8.0.0.src/tools/clang/lib/Driver/ToolChains/Gnu.cpp 2019-03-26 15:46:18.841353843 +0100
|
|
||||||
@@ -1877,7 +1877,7 @@
|
|
||||||
"aarch64_be-linux-gnu"};
|
|
||||||
|
|
||||||
static const char *const ARMLibDirs[] = {"/lib"};
|
|
||||||
- static const char *const ARMTriples[] = {"arm-linux-gnueabi",
|
|
||||||
+ static const char *const ARMTriples[] = {"arm-openmamba-linux-gnueabi", "arm-linux-gnueabi",
|
|
||||||
"arm-linux-androideabi"};
|
|
||||||
static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
|
|
||||||
"armv7hl-redhat-linux-gnueabi",
|
|
||||||
@@ -1891,6 +1891,7 @@
|
|
||||||
|
|
||||||
static const char *const X86_64LibDirs[] = {"/lib64", "/lib"};
|
|
||||||
static const char *const X86_64Triples[] = {
|
|
||||||
+ "x86_64-openmamba-linux-gnu",
|
|
||||||
"x86_64-linux-gnu", "x86_64-unknown-linux-gnu",
|
|
||||||
"x86_64-pc-linux-gnu", "x86_64-redhat-linux6E",
|
|
||||||
"x86_64-redhat-linux", "x86_64-suse-linux",
|
|
||||||
@@ -1900,6 +1901,7 @@
|
|
||||||
static const char *const X32LibDirs[] = {"/libx32"};
|
|
||||||
static const char *const X86LibDirs[] = {"/lib32", "/lib"};
|
|
||||||
static const char *const X86Triples[] = {
|
|
||||||
+ "i586-openmamba-linux-gnu",
|
|
||||||
"i686-linux-gnu", "i686-pc-linux-gnu", "i486-linux-gnu",
|
|
||||||
"i386-linux-gnu", "i386-redhat-linux6E", "i686-redhat-linux",
|
|
||||||
"i586-redhat-linux", "i386-redhat-linux", "i586-suse-linux",
|
|
@ -1,11 +0,0 @@
|
|||||||
--- llvm-9.0.1.src/tools/lld/docs/conf.py.orig 2019-12-30 19:06:39.896000000 +0100
|
|
||||||
+++ llvm-9.0.1.src/tools/lld/docs/conf.py 2019-12-30 19:05:48.263000000 +0100
|
|
||||||
@@ -134,7 +134,7 @@
|
|
||||||
#html_use_smartypants = True
|
|
||||||
|
|
||||||
# Custom sidebar templates, maps document names to template names.
|
|
||||||
-html_sidebars = {'index': 'indexsidebar.html'}
|
|
||||||
+html_sidebars = {'index': ['indexsidebar.html']}
|
|
||||||
|
|
||||||
# Additional templates that should be rendered to pages, maps page names to
|
|
||||||
# template names.
|
|
277
llvm.spec
277
llvm.spec
@ -2,7 +2,7 @@
|
|||||||
%define majver %(echo %version | cut -d. -f1-2)
|
%define majver %(echo %version | cut -d. -f1-2)
|
||||||
Name: llvm
|
Name: llvm
|
||||||
Version: 9.0.1
|
Version: 9.0.1
|
||||||
Release: 1mamba
|
Release: 4mamba
|
||||||
Summary: The Low Level Virtual Machine
|
Summary: The Low Level Virtual Machine
|
||||||
Group: Development/Languages
|
Group: Development/Languages
|
||||||
Vendor: openmamba
|
Vendor: openmamba
|
||||||
@ -10,27 +10,9 @@ Distribution: openmamba
|
|||||||
Packager: Davide Madrisan <davide.madrisan@gmail.com>
|
Packager: Davide Madrisan <davide.madrisan@gmail.com>
|
||||||
URL: https://llvm.org/
|
URL: https://llvm.org/
|
||||||
Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/llvm-%{version}.src.tar.xz
|
Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/llvm-%{version}.src.tar.xz
|
||||||
Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/clang-%{version}.src.tar.xz
|
|
||||||
Source2: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/compiler-rt-%{version}.src.tar.xz
|
|
||||||
Source3: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/clang-tools-extra-%{version}.src.tar.xz
|
|
||||||
Source4: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/lld-%{version}.src.tar.xz
|
|
||||||
Source5: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/lldb-%{version}.src.tar.xz
|
|
||||||
Source6: llvm-6.0.0-llvm-config.patch
|
Source6: llvm-6.0.0-llvm-config.patch
|
||||||
Patch0: %{name}-3.1-llvm-config.patch
|
Patch0: %{name}-3.1-llvm-config.patch
|
||||||
Patch1: llvm-3.4-default-to-i586.patch
|
|
||||||
Patch2: llvm-8.0.0-openmamba-triplet.patch
|
|
||||||
Patch3: llvm-3.5.0-buildfix-CommandLine_h-getOption.patch
|
|
||||||
Patch4: llvm-3.5.0-x86_64-llvm-config.patch
|
|
||||||
Patch5: llvm-3.5.0-llvm-config.patch
|
|
||||||
Patch6: llvm-3.8.0-ocamldoc-install.patch
|
Patch6: llvm-3.8.0-ocamldoc-install.patch
|
||||||
Patch7: llvm-5.0.0-llvm-shlib-build-fix.patch
|
|
||||||
Patch8: llvm-5.0.0-disable-symbolizer-test.patch
|
|
||||||
Patch9: llvm-6.0.0--export-LLVM_DYLIB_COMPONENTS-in-LLVMConfig.cmake.patch
|
|
||||||
Patch10: llvm-6.0.0-cmake-fix-a-typo-in-llvm_config-macro.patch
|
|
||||||
Patch11: llvm-6.0.0-export-LLVMInitializeInstCombine-as-extern-C.patch
|
|
||||||
Patch12: llvm-6.0.0-DebugInfo-discard-invalid-DBG_VALUE-instructions.patch
|
|
||||||
Patch13: llvm-6.0.0-fixup-for-rL326769-RegState-Debug-is-being-truncated.patch
|
|
||||||
Patch14: llvm-9.0.1-Sphinx-2.3.1.patch
|
|
||||||
License: NCSA
|
License: NCSA
|
||||||
## AUTOBUILDREQ-BEGIN
|
## AUTOBUILDREQ-BEGIN
|
||||||
BuildRequires: glibc-devel
|
BuildRequires: glibc-devel
|
||||||
@ -38,22 +20,24 @@ BuildRequires: libedit-devel
|
|||||||
BuildRequires: libffi-devel
|
BuildRequires: libffi-devel
|
||||||
BuildRequires: libgcc
|
BuildRequires: libgcc
|
||||||
BuildRequires: libncurses-devel
|
BuildRequires: libncurses-devel
|
||||||
BuildRequires: libperl
|
|
||||||
BuildRequires: libstdc++6-devel
|
BuildRequires: libstdc++6-devel
|
||||||
BuildRequires: libxml2-devel
|
BuildRequires: libxml2-devel
|
||||||
BuildRequires: libz-devel
|
BuildRequires: libz-devel
|
||||||
BuildRequires: perl-devel
|
BuildRequires: libz3-devel
|
||||||
|
BuildRequires: ocaml-ctypes-devel
|
||||||
|
BuildRequires: ocaml-integers
|
||||||
|
BuildRequires: ocaml-runtime
|
||||||
## AUTOBUILDREQ-END
|
## AUTOBUILDREQ-END
|
||||||
BuildRequires: gcc-c++ >= 8.1.0
|
|
||||||
BuildRequires: glibc-devel
|
BuildRequires: glibc-devel
|
||||||
BuildRequires: ocaml >= 4.09.0-4mamba
|
BuildRequires: ocaml >= 4.09.0-4mamba
|
||||||
BuildRequires: ocaml-ctypes >= 0.16
|
BuildRequires: ocaml-ctypes >= 0.16
|
||||||
BuildRequires: ocaml-ounit
|
BuildRequires: ocaml-ounit
|
||||||
BuildRequires: z3
|
BuildRequires: z3
|
||||||
BuildRequires: libz3-devel
|
BuildRequires: libz3-devel
|
||||||
#Requires: gcc >= %{gccver}
|
#BuildConflicts: llvm-ocaml
|
||||||
#Requires: gcc-c++ >= %{gccver}
|
Provides: llvm-tools
|
||||||
BuildConflicts: llvm-ocaml
|
Obsoletes: llvm-tools
|
||||||
|
Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release}
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-root
|
BuildRoot: %{_tmppath}/%{name}-%{version}-root
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -70,7 +54,6 @@ This package contains shared libraries for %{name}.
|
|||||||
%package -n lib%{name}-devel
|
%package -n lib%{name}-devel
|
||||||
Summary: Libraries and header files for LLVM
|
Summary: Libraries and header files for LLVM
|
||||||
Group: Development/Languages
|
Group: Development/Languages
|
||||||
Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release}
|
|
||||||
Provides: llvm-devel
|
Provides: llvm-devel
|
||||||
Obsoletes: llvm-devel
|
Obsoletes: llvm-devel
|
||||||
|
|
||||||
@ -88,50 +71,6 @@ Requires: gtk-doc
|
|||||||
%description -n lib%{name}-apidocs
|
%description -n lib%{name}-apidocs
|
||||||
This package includes the lib%{name} API documentation.
|
This package includes the lib%{name} API documentation.
|
||||||
|
|
||||||
%package tools
|
|
||||||
Summary: Additional LLVM tools
|
|
||||||
Group: Development/Languages
|
|
||||||
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
|
|
||||||
|
|
||||||
%description tools
|
|
||||||
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
|
|
||||||
Despite its name, LLVM has little to do with traditional virtual machines, though it does provide helpful libraries that can be used to build them.
|
|
||||||
This package contains additional LLVM tools.
|
|
||||||
|
|
||||||
%package -n clang
|
|
||||||
Summary: LLVM native C/C++/Objective-C compiler
|
|
||||||
Group: Development/Languages
|
|
||||||
Requires: gcc-c++
|
|
||||||
Provides: cfe
|
|
||||||
Provides: llvm-clang
|
|
||||||
Obsoletes: llvm-clang
|
|
||||||
|
|
||||||
%description -n clang
|
|
||||||
Cfe is an "LLVM native" C/C++/Objective-C compiler, which aims to deliver amazingly fast compiles, extremely useful error and warning messages and to provide a platform for building great source level tools.
|
|
||||||
The Cfe Static Analyzer is a tool automatically finds bugs in your code, and is a great example of the sort of tool that can be built using the Cfe frontend as a library to parse C/C++ code.
|
|
||||||
|
|
||||||
%package -n clang-devel
|
|
||||||
Summary: Libraries and header files for LLVM cfe
|
|
||||||
Group: Development/Languages
|
|
||||||
Requires: clang = %{?epoch:%epoch:}%{version}-%{release}
|
|
||||||
Provides: cfe-devel
|
|
||||||
Provides: llvm-clang-devel
|
|
||||||
Obsoletes: llvm-clang-devel
|
|
||||||
|
|
||||||
%description -n clang-devel
|
|
||||||
Cfe is an "LLVM native" C/C++/Objective-C compiler, which aims to deliver amazingly fast compiles, extremely useful error and warning messages and to provide a platform for building great source level tools.
|
|
||||||
The Cfe Static Analyzer is a tool automatically finds bugs in your code, and is a great example of the sort of tool that can be built using the Cfe frontend as a library to parse C/C++ code.
|
|
||||||
This package contains header files for the Cfe compiler.
|
|
||||||
|
|
||||||
%package -n clang-apidocs
|
|
||||||
Group: Documentation
|
|
||||||
Summary: clang API documentation
|
|
||||||
Requires: clang-devel = %{?epoch:%epoch:}%{version}-%{release}
|
|
||||||
Requires: gtk-doc
|
|
||||||
|
|
||||||
%description -n clang-apidocs
|
|
||||||
This package includes the clang API documentation.
|
|
||||||
|
|
||||||
%package ocaml
|
%package ocaml
|
||||||
Summary: OCaml binding for LLVM
|
Summary: OCaml binding for LLVM
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
@ -161,28 +100,11 @@ Requires: gtk-doc
|
|||||||
This package includes the LLVM ocaml API documentation.
|
This package includes the LLVM ocaml API documentation.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
#% setup -q -a1 -a2 -a3 -a4 -a5 -n %{name}-%{version}.src
|
%setup -q -n %{name}-%{version}.src
|
||||||
%setup -q -n %{name}-%{version}.src -D -T
|
#-D -T
|
||||||
:<< _EOF
|
#:<< _EOF
|
||||||
|
|
||||||
#%patch0 -p1
|
|
||||||
#%patch1 -p1
|
|
||||||
mv clang-%{version}.src tools/clang
|
|
||||||
mv compiler-rt-%{version}.src projects/compiler-rt
|
|
||||||
mv clang-tools-extra-%{version}.src tools/clang/tools/extra
|
|
||||||
mv lld-%{version}.src tools/lld
|
|
||||||
mv lldb-%{version}.src tools/lldb
|
|
||||||
|
|
||||||
%patch2 -p1
|
|
||||||
#%patch3 -p1
|
|
||||||
#%ifarch x86_64
|
|
||||||
#%patch4 -p1
|
|
||||||
#%else
|
|
||||||
#%patch5 -p1
|
|
||||||
#%endif
|
|
||||||
%patch6 -p1
|
%patch6 -p1
|
||||||
#%patch9 -p1
|
|
||||||
%patch14 -p1
|
|
||||||
|
|
||||||
# https://bugs.llvm.org/show_bug.cgi?id=34123
|
# https://bugs.llvm.org/show_bug.cgi?id=34123
|
||||||
#sed -i '/LLVMSupport/d' tools/clang/tools/extra/clangd/tool/CMakeLists.txt
|
#sed -i '/LLVMSupport/d' tools/clang/tools/extra/clangd/tool/CMakeLists.txt
|
||||||
@ -191,49 +113,45 @@ sed -i "/REMOVE_DUPLICATES/d" tools/llvm-shlib/CMakeLists.txt
|
|||||||
|
|
||||||
%build
|
%build
|
||||||
#:<< __EOF
|
#:<< __EOF
|
||||||
|
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
cd build
|
cd build
|
||||||
|
|
||||||
|
#%ifarch x86_64
|
||||||
|
# -DCMAKE_C_COMPILER=clang \
|
||||||
|
# -DCMAKE_CXX_COMPILER=clang++ \
|
||||||
|
# -DLLVM_ENABLE_LLD=ON \
|
||||||
|
#%else
|
||||||
|
# -DCMAKE_C_COMPILER=gcc \
|
||||||
|
# -DCMAKE_CXX_COMPILER=g++ \
|
||||||
|
#%endif
|
||||||
|
|
||||||
|
|
||||||
cmake \
|
cmake \
|
||||||
-G Ninja \
|
-G Ninja \
|
||||||
%ifarch x86_64
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
-DCMAKE_C_COMPILER=clang \
|
|
||||||
-DCMAKE_CXX_COMPILER=clang++ \
|
|
||||||
%else
|
|
||||||
-DCMAKE_C_COMPILER=gcc \
|
|
||||||
-DCMAKE_CXX_COMPILER=g++ \
|
|
||||||
%endif
|
|
||||||
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
|
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
|
||||||
-DLLVM_HOST_TRIPLE="%{_target_platform}" \
|
-DLLVM_HOST_TRIPLE="%{_target_platform}" \
|
||||||
-DLLVM_DEFAULT_TARGET_TRIPLE="%{_target_platform}" \
|
-DLLVM_DEFAULT_TARGET_TRIPLE="%{_target_platform}" \
|
||||||
-DLLVM_ENABLE_FFI=ON \
|
|
||||||
-DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
-DLLVM_BUILD_LLVM_DYLIB=ON \
|
-DLLVM_BUILD_LLVM_DYLIB=ON \
|
||||||
-DLLVM_LINK_LLVM_DYLIB=ON \
|
-DLLVM_LINK_LLVM_DYLIB=ON \
|
||||||
-DLLVM_BINUTILS_INCDIR=%{_includedir} \
|
|
||||||
-DPYTHON_EXECUTABLE=%{_bindir}/python \
|
|
||||||
-DLLDB_DISABLE_PYTHON=ON \
|
|
||||||
-DLLVM_INSTALL_UTILS=ON \
|
-DLLVM_INSTALL_UTILS=ON \
|
||||||
|
%ifnarch arm
|
||||||
|
-DLLVM_ENABLE_RTTI=ON \
|
||||||
|
%endif
|
||||||
|
-DLLVM_ENABLE_FFI=ON \
|
||||||
|
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=AVR \
|
||||||
|
-DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \
|
||||||
|
-DLLVM_BINUTILS_INCDIR=%{_includedir} \
|
||||||
-DLLVM_ENABLE_SPHINX=ON \
|
-DLLVM_ENABLE_SPHINX=ON \
|
||||||
|
-DSPHINX_WARNINGS_AS_ERRORS=OFF \
|
||||||
|
-DLLVM_BUILD_EXTERNAL_COMPILER_RT=OFF \
|
||||||
%ifarch x86_64
|
%ifarch x86_64
|
||||||
-DLLVM_LIBDIR_SUFFIX="64" \
|
-DLLVM_LIBDIR_SUFFIX="64" \
|
||||||
%endif
|
|
||||||
-DSPHINX_WARNINGS_AS_ERRORS=OFF \
|
|
||||||
%ifnarch arm
|
|
||||||
-DLLVM_ENABLE_RTTI=ON \
|
|
||||||
-DLLVM_BUILD_TESTS=ON \
|
|
||||||
-DLLVM_BUILD_DOCS=ON \
|
|
||||||
%else
|
|
||||||
-DLLVM_BUILD_EXTERNAL_COMPILER_RT=OFF \
|
|
||||||
%endif
|
%endif
|
||||||
-Wno-dev ..
|
-Wno-dev ..
|
||||||
|
|
||||||
#%ifarch x86_64
|
# -DLLVM_ENABLE_LTO=Thin \
|
||||||
# -DLLVM_LIBDIR_SUFFIX="64/llvm" \
|
|
||||||
#%else
|
|
||||||
# -DLLVM_LIBDIR_SUFFIX="/llvm" \
|
|
||||||
#%endif
|
|
||||||
# -DLLVM_TARGETS_TO_BUILD="host;AMDGPU" \
|
|
||||||
|
|
||||||
ninja all ocaml_doc
|
ninja all ocaml_doc
|
||||||
#% make all docs-llvm-html docs-llvm-man docs-clang-html docs-clang-man
|
#% make all docs-llvm-html docs-llvm-man docs-clang-html docs-clang-man
|
||||||
@ -275,134 +193,58 @@ rm -f %{buildroot}%{_datadir}/doc/llvm/html/.buildinfo
|
|||||||
%files
|
%files
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%{_bindir}/bugpoint
|
%{_bindir}/bugpoint
|
||||||
%{_bindir}/lit-cpuid
|
%{_bindir}/count
|
||||||
|
%{_bindir}/dsymutil
|
||||||
|
%{_bindir}/FileCheck
|
||||||
%{_bindir}/llc
|
%{_bindir}/llc
|
||||||
%{_bindir}/lli
|
%{_bindir}/lli
|
||||||
|
%{_bindir}/lli-child-target
|
||||||
%{_bindir}/llvm*
|
%{_bindir}/llvm*
|
||||||
|
%{_bindir}/not
|
||||||
%{_bindir}/obj2yaml
|
%{_bindir}/obj2yaml
|
||||||
%{_bindir}/sancov
|
%{_bindir}/sancov
|
||||||
%{_bindir}/sanstats
|
%{_bindir}/sanstats
|
||||||
%{_bindir}/verify-uselistorder
|
%{_bindir}/verify-uselistorder
|
||||||
%{_bindir}/yaml2obj
|
%{_bindir}/yaml2obj
|
||||||
%{_bindir}/wasm-ld
|
%{_bindir}/yaml-bench
|
||||||
%{_bindir}/opt
|
%{_bindir}/opt
|
||||||
%{_bindir}/scan-build
|
|
||||||
%{_bindir}/scan-view
|
|
||||||
%dir %{_datadir}/scan-build
|
|
||||||
%{_datadir}/scan-build/*
|
|
||||||
%dir %{_datadir}/scan-view
|
|
||||||
%{_datadir}/scan-view/*
|
|
||||||
%dir %{_datadir}/opt-viewer
|
%dir %{_datadir}/opt-viewer
|
||||||
%{_datadir}/opt-viewer/*
|
%{_datadir}/opt-viewer/*
|
||||||
%{_mandir}/man1/FileCheck.1*
|
#%{_mandir}/man1/FileCheck.1*
|
||||||
%{_mandir}/man1/bugpoint.1*
|
#%{_mandir}/man1/bugpoint.1*
|
||||||
%{_mandir}/man1/dsymutil.1*
|
#%{_mandir}/man1/dsymutil.1*
|
||||||
%{_mandir}/man1/lit.1*
|
#%{_mandir}/man1/lit.1*
|
||||||
%{_mandir}/man1/llc.1*
|
#%{_mandir}/man1/llc.1*
|
||||||
%{_mandir}/man1/lli.1*
|
#%{_mandir}/man1/lli.1*
|
||||||
%{_mandir}/man1/llvm-*.1*
|
#%{_mandir}/man1/llvm-*.1*
|
||||||
%{_mandir}/man1/opt.1*
|
#%{_mandir}/man1/opt.1*
|
||||||
%{_mandir}/man1/scan-build.1*
|
#%{_mandir}/man1/tblgen.1*
|
||||||
%{_mandir}/man1/tblgen.1*
|
|
||||||
%doc CREDITS.TXT LICENSE.TXT
|
%doc CREDITS.TXT LICENSE.TXT
|
||||||
#doc llvm-testlog.txt
|
#doc llvm-testlog.txt
|
||||||
|
|
||||||
%files tools
|
|
||||||
%defattr(-,root,root)
|
|
||||||
%{_bindir}/FileCheck
|
|
||||||
%{_bindir}/clangd
|
|
||||||
%{_bindir}/count
|
|
||||||
%{_bindir}/diagtool
|
|
||||||
%{_bindir}/dsymutil
|
|
||||||
%{_bindir}/hmaptool
|
|
||||||
%{_bindir}/find-all-symbols
|
|
||||||
%{_bindir}/ld64.lld
|
|
||||||
%{_bindir}/ld.lld
|
|
||||||
%{_bindir}/lld
|
|
||||||
%{_bindir}/lld-link
|
|
||||||
%{_bindir}/lldb
|
|
||||||
%{_bindir}/lldb-*
|
|
||||||
%{_bindir}/lli-child-target
|
|
||||||
%{_bindir}/modularize
|
|
||||||
%{_bindir}/not
|
|
||||||
%{_bindir}/yaml-bench
|
|
||||||
%dir %{_docdir}/clang-tools
|
|
||||||
%{_docdir}/clang-tools/*
|
|
||||||
%dir %{_docdir}/lld
|
|
||||||
%{_docdir}/lld/*
|
|
||||||
%dir %{_docdir}/lldb
|
|
||||||
%{_docdir}/lldb/*
|
|
||||||
%{_mandir}/man1/extraclangtools.1*
|
|
||||||
%{_mandir}/man1/diagtool.1*
|
|
||||||
|
|
||||||
%files -n libllvm
|
%files -n libllvm
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%{_libdir}/libLLVM-*.so
|
%{_libdir}/libLLVM-*.so
|
||||||
%{_libdir}/libLTO.so.*
|
%{_libdir}/libLTO.so.*
|
||||||
%{_libdir}/liblldb.so.*
|
|
||||||
%{_libdir}/liblldbIntelFeatures.so.*
|
|
||||||
%{_libdir}/libRemarks.so.*
|
%{_libdir}/libRemarks.so.*
|
||||||
%{_libdir}/libclang.so.*
|
|
||||||
%{_libdir}/libclang-cpp.so.*
|
|
||||||
|
|
||||||
%files -n libllvm-devel
|
%files -n libllvm-devel
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%{_includedir}/%{name}
|
%{_includedir}/%{name}
|
||||||
%{_includedir}/%{name}-c
|
%{_includedir}/%{name}-c
|
||||||
%dir %{_includedir}/lld
|
|
||||||
%{_includedir}/lld/*
|
|
||||||
%dir %{_includedir}/lldb
|
|
||||||
%{_includedir}/lldb/*
|
|
||||||
%{_libdir}/*.a
|
%{_libdir}/*.a
|
||||||
%{_libdir}/libLLVM.so
|
%{_libdir}/libLLVM.so
|
||||||
%{_libdir}/libLTO.so
|
%{_libdir}/libLTO.so
|
||||||
%{_libdir}/libRemarks.so
|
%{_libdir}/libRemarks.so
|
||||||
%{_libdir}/libclang-cpp.so
|
|
||||||
%{_libdir}/liblldb.so
|
|
||||||
%{_libdir}/liblldbIntelFeatures.so
|
|
||||||
%{_libdir}/LLVM*.so
|
%{_libdir}/LLVM*.so
|
||||||
%dir %{_libdir}/cmake/llvm
|
%dir %{_libdir}/cmake/llvm
|
||||||
%{_libdir}/cmake/llvm/*.cmake
|
%{_libdir}/cmake/llvm/*.cmake
|
||||||
%doc README.txt
|
#%doc README.txt
|
||||||
|
|
||||||
%files -n libllvm-apidocs
|
#%files -n libllvm-apidocs
|
||||||
%defattr(-,root,root)
|
#%defattr(-,root,root)
|
||||||
%dir %{_datadir}/doc/llvm/html/
|
#%dir %{_datadir}/doc/llvm/html/
|
||||||
%{_datadir}/doc/llvm/html/*
|
#%{_datadir}/doc/llvm/html/*
|
||||||
|
|
||||||
%files -n clang
|
|
||||||
%defattr(-,root,root)
|
|
||||||
%{_bindir}/c-index-test
|
|
||||||
%{_bindir}/clang
|
|
||||||
%{_bindir}/clang++
|
|
||||||
%{_bindir}/clang-*
|
|
||||||
%{_bindir}/git-clang-format
|
|
||||||
%{_prefix}/libexec/c++-analyzer
|
|
||||||
%{_prefix}/libexec/ccc-analyzer
|
|
||||||
%dir %{_libdir}/clang
|
|
||||||
%dir %{_libdir}/clang/%{version}
|
|
||||||
%{_libdir}/clang/%{version}/*
|
|
||||||
%dir %{_datadir}/clang/
|
|
||||||
%{_datadir}/clang/*
|
|
||||||
%{_mandir}/man1/clang.1*
|
|
||||||
%doc tools/clang/LICENSE.TXT
|
|
||||||
|
|
||||||
%files -n clang-devel
|
|
||||||
%defattr(-,root,root)
|
|
||||||
%dir %{_includedir}/clang-c
|
|
||||||
%{_includedir}/clang-c/*.h
|
|
||||||
%dir %{_includedir}/clang
|
|
||||||
%{_includedir}/clang/*
|
|
||||||
%dir %{_datadir}/doc/clang/html/
|
|
||||||
%{_datadir}/doc/clang/html/*
|
|
||||||
%{_libdir}/libclang.so
|
|
||||||
%dir %{_libdir}/cmake/clang
|
|
||||||
%{_libdir}/cmake/clang/*.cmake
|
|
||||||
%doc tools/clang/{NOTES.txt,README.txt}
|
|
||||||
|
|
||||||
%files -n clang-apidocs
|
|
||||||
%defattr(-,root,root)
|
|
||||||
%doc tools/clang/docs
|
|
||||||
|
|
||||||
%files ocaml
|
%files ocaml
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
@ -422,6 +264,15 @@ rm -f %{buildroot}%{_datadir}/doc/llvm/html/.buildinfo
|
|||||||
%{_docdir}/llvm/ocaml-html/*
|
%{_docdir}/llvm/ocaml-html/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat Feb 08 2020 Silvan Calarco <silvan.calarco@mambasoft.it> 9.0.1-4mamba
|
||||||
|
- rework build flags
|
||||||
|
|
||||||
|
* Sat Feb 08 2020 Silvan Calarco <silvan.calarco@mambasoft.it> 9.0.1-3mamba
|
||||||
|
- split build of llvm clang etc. in separate sources
|
||||||
|
|
||||||
|
* Tue Jan 07 2020 Silvan Calarco <silvan.calarco@mambasoft.it> 9.0.1-2mamba
|
||||||
|
- rebuild with -DLLVM_ENABLE_LTO=Thin
|
||||||
|
|
||||||
* Mon Dec 30 2019 Silvan Calarco <silvan.calarco@mambasoft.it> 9.0.1-1mamba
|
* Mon Dec 30 2019 Silvan Calarco <silvan.calarco@mambasoft.it> 9.0.1-1mamba
|
||||||
- update to 9.0.1
|
- update to 9.0.1
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user