summaryrefslogtreecommitdiff
path: root/lang/clang
diff options
context:
space:
mode:
authortnn <tnn>2015-03-03 16:27:33 +0000
committertnn <tnn>2015-03-03 16:27:33 +0000
commitc1af7e92564672bf3261fa9e6a171fafa0215f22 (patch)
tree2e34d0c20453181fee39e950c1da0fd5f573a32d /lang/clang
parentfd20c97ec065c7bfb874ade4a3fa3bd581bca213 (diff)
downloadpkgsrc-c1af7e92564672bf3261fa9e6a171fafa0215f22.tar.gz
Add default off shlib option for building PIC & installing shared libLLVM libs.
I will spin this off to a libLLVM package when we have a ready use case for it. Packages that may want to use libLLVM are for example MesaLib and OpenJDK.
Diffstat (limited to 'lang/clang')
-rw-r--r--lang/clang/Makefile3
-rw-r--r--lang/clang/PLIST.shlib129
-rw-r--r--lang/clang/distinfo4
-rw-r--r--lang/clang/options.mk23
-rw-r--r--lang/clang/patches/patch-tools_lli_Makefile14
-rw-r--r--lang/clang/patches/patch-unittests_ExecutionEngine_MCJIT_Makefile14
6 files changed, 181 insertions, 6 deletions
diff --git a/lang/clang/Makefile b/lang/clang/Makefile
index 23899ce8ed3..2fda33edb71 100644
--- a/lang/clang/Makefile
+++ b/lang/clang/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.35 2015/03/03 12:04:08 tnn Exp $
+# $NetBSD: Makefile,v 1.36 2015/03/03 16:27:33 tnn Exp $
DISTNAME= clang-3.6.0
CATEGORIES= lang
@@ -23,7 +23,6 @@ CONFIGURE_ARGS+= --disable-assertions
CONFIGURE_ARGS+= --disable-bindings # disable OCaml
CONFIGURE_ARGS+= --disable-timestamps
CONFIGURE_ARGS+= --enable-optimized
-#CONFIGURE_ARGS+= --enable-shared
MAKE_DIRS+= etc/llvm
diff --git a/lang/clang/PLIST.shlib b/lang/clang/PLIST.shlib
new file mode 100644
index 00000000000..875cc4f0d74
--- /dev/null
+++ b/lang/clang/PLIST.shlib
@@ -0,0 +1,129 @@
+@comment $NetBSD@
+lib/libLLVM-3.6.0.${SOEXT}
+lib/libLLVM-3.6.${SOEXT}
+lib/libLLVMAArch64AsmParser.${SOEXT}
+lib/libLLVMAArch64AsmPrinter.${SOEXT}
+lib/libLLVMAArch64CodeGen.${SOEXT}
+lib/libLLVMAArch64Desc.${SOEXT}
+lib/libLLVMAArch64Disassembler.${SOEXT}
+lib/libLLVMAArch64Info.${SOEXT}
+lib/libLLVMAArch64Utils.${SOEXT}
+lib/libLLVMARMAsmParser.${SOEXT}
+lib/libLLVMARMAsmPrinter.${SOEXT}
+lib/libLLVMARMCodeGen.${SOEXT}
+lib/libLLVMARMDesc.${SOEXT}
+lib/libLLVMARMDisassembler.${SOEXT}
+lib/libLLVMARMInfo.${SOEXT}
+lib/libLLVMAnalysis.${SOEXT}
+lib/libLLVMAsmParser.${SOEXT}
+lib/libLLVMAsmPrinter.${SOEXT}
+lib/libLLVMBitReader.${SOEXT}
+lib/libLLVMBitWriter.${SOEXT}
+lib/libLLVMCodeGen.${SOEXT}
+lib/libLLVMCore.${SOEXT}
+lib/libLLVMCppBackendCodeGen.${SOEXT}
+lib/libLLVMCppBackendInfo.${SOEXT}
+lib/libLLVMDebugInfo.${SOEXT}
+lib/libLLVMExecutionEngine.${SOEXT}
+lib/libLLVMHexagonCodeGen.${SOEXT}
+lib/libLLVMHexagonDesc.${SOEXT}
+lib/libLLVMHexagonDisassembler.${SOEXT}
+lib/libLLVMHexagonInfo.${SOEXT}
+lib/libLLVMIRReader.${SOEXT}
+lib/libLLVMInstCombine.${SOEXT}
+lib/libLLVMInstrumentation.${SOEXT}
+lib/libLLVMInterpreter.${SOEXT}
+lib/libLLVMLTO.${SOEXT}
+lib/libLLVMLineEditor.${SOEXT}
+lib/libLLVMLinker.${SOEXT}
+lib/libLLVMMC.${SOEXT}
+lib/libLLVMMCDisassembler.${SOEXT}
+lib/libLLVMMCJIT.${SOEXT}
+lib/libLLVMMCParser.${SOEXT}
+lib/libLLVMMSP430AsmPrinter.${SOEXT}
+lib/libLLVMMSP430CodeGen.${SOEXT}
+lib/libLLVMMSP430Desc.${SOEXT}
+lib/libLLVMMSP430Info.${SOEXT}
+lib/libLLVMMipsAsmParser.${SOEXT}
+lib/libLLVMMipsAsmPrinter.${SOEXT}
+lib/libLLVMMipsCodeGen.${SOEXT}
+lib/libLLVMMipsDesc.${SOEXT}
+lib/libLLVMMipsDisassembler.${SOEXT}
+lib/libLLVMMipsInfo.${SOEXT}
+lib/libLLVMNVPTXAsmPrinter.${SOEXT}
+lib/libLLVMNVPTXCodeGen.${SOEXT}
+lib/libLLVMNVPTXDesc.${SOEXT}
+lib/libLLVMNVPTXInfo.${SOEXT}
+lib/libLLVMObjCARCOpts.${SOEXT}
+lib/libLLVMObject.${SOEXT}
+lib/libLLVMOption.${SOEXT}
+lib/libLLVMPowerPCAsmParser.${SOEXT}
+lib/libLLVMPowerPCAsmPrinter.${SOEXT}
+lib/libLLVMPowerPCCodeGen.${SOEXT}
+lib/libLLVMPowerPCDesc.${SOEXT}
+lib/libLLVMPowerPCDisassembler.${SOEXT}
+lib/libLLVMPowerPCInfo.${SOEXT}
+lib/libLLVMProfileData.${SOEXT}
+lib/libLLVMR600AsmParser.${SOEXT}
+lib/libLLVMR600AsmPrinter.${SOEXT}
+lib/libLLVMR600CodeGen.${SOEXT}
+lib/libLLVMR600Desc.${SOEXT}
+lib/libLLVMR600Info.${SOEXT}
+lib/libLLVMRuntimeDyld.${SOEXT}
+lib/libLLVMScalarOpts.${SOEXT}
+lib/libLLVMSelectionDAG.${SOEXT}
+lib/libLLVMSparcAsmParser.${SOEXT}
+lib/libLLVMSparcAsmPrinter.${SOEXT}
+lib/libLLVMSparcCodeGen.${SOEXT}
+lib/libLLVMSparcDesc.${SOEXT}
+lib/libLLVMSparcDisassembler.${SOEXT}
+lib/libLLVMSparcInfo.${SOEXT}
+lib/libLLVMSupport.${SOEXT}
+lib/libLLVMSystemZAsmParser.${SOEXT}
+lib/libLLVMSystemZAsmPrinter.${SOEXT}
+lib/libLLVMSystemZCodeGen.${SOEXT}
+lib/libLLVMSystemZDesc.${SOEXT}
+lib/libLLVMSystemZDisassembler.${SOEXT}
+lib/libLLVMSystemZInfo.${SOEXT}
+lib/libLLVMTableGen.${SOEXT}
+lib/libLLVMTarget.${SOEXT}
+lib/libLLVMTransformUtils.${SOEXT}
+lib/libLLVMVectorize.${SOEXT}
+lib/libLLVMX86AsmParser.${SOEXT}
+lib/libLLVMX86AsmPrinter.${SOEXT}
+lib/libLLVMX86CodeGen.${SOEXT}
+lib/libLLVMX86Desc.${SOEXT}
+lib/libLLVMX86Disassembler.${SOEXT}
+lib/libLLVMX86Info.${SOEXT}
+lib/libLLVMX86Utils.${SOEXT}
+lib/libLLVMXCoreAsmPrinter.${SOEXT}
+lib/libLLVMXCoreCodeGen.${SOEXT}
+lib/libLLVMXCoreDesc.${SOEXT}
+lib/libLLVMXCoreDisassembler.${SOEXT}
+lib/libLLVMXCoreInfo.${SOEXT}
+lib/libLLVMipa.${SOEXT}
+lib/libLLVMipo.${SOEXT}
+lib/libclangARCMigrate.${SOEXT}
+lib/libclangAST.${SOEXT}
+lib/libclangASTMatchers.${SOEXT}
+lib/libclangAnalysis.${SOEXT}
+lib/libclangBasic.${SOEXT}
+lib/libclangCodeGen.${SOEXT}
+lib/libclangDriver.${SOEXT}
+lib/libclangDynamicASTMatchers.${SOEXT}
+lib/libclangEdit.${SOEXT}
+lib/libclangFormat.${SOEXT}
+lib/libclangFrontend.${SOEXT}
+lib/libclangFrontendTool.${SOEXT}
+lib/libclangIndex.${SOEXT}
+lib/libclangLex.${SOEXT}
+lib/libclangParse.${SOEXT}
+lib/libclangRewrite.${SOEXT}
+lib/libclangRewriteFrontend.${SOEXT}
+lib/libclangSema.${SOEXT}
+lib/libclangSerialization.${SOEXT}
+lib/libclangStaticAnalyzerCheckers.${SOEXT}
+lib/libclangStaticAnalyzerCore.${SOEXT}
+lib/libclangStaticAnalyzerFrontend.${SOEXT}
+lib/libclangTooling.${SOEXT}
+lib/libclangToolingCore.${SOEXT}
diff --git a/lang/clang/distinfo b/lang/clang/distinfo
index 87ebce9d9b8..6c45c3bd7ef 100644
--- a/lang/clang/distinfo
+++ b/lang/clang/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.29 2015/03/03 12:04:08 tnn Exp $
+$NetBSD: distinfo,v 1.30 2015/03/03 16:27:33 tnn Exp $
SHA1 (cfe-3.6.0.src.tar.xz) = 06b252867a3d118c95ca279fd3c4ac05f6730551
RMD160 (cfe-3.6.0.src.tar.xz) = 2e04853d2f8133fea493ee12d7f05bc6b27dc988
@@ -17,3 +17,5 @@ SHA1 (patch-ac) = 0f0cc98d443ec957fc5374fb491809d27e4f9d4e
SHA1 (patch-ad) = ad1f6720e4c73e57fce10ba968b03637a133602d
SHA1 (patch-include_llvm_Support_Host.h) = 545f9542cd2aaa6cea58d3653902b4e1a9e7189a
SHA1 (patch-tools_clang_tools_scan-build_scan-build) = a671f1e513fb43ddc0e73751a78235ab39aeaf9d
+SHA1 (patch-tools_lli_Makefile) = 9801878144833b9c871677110183539cd0a08e9a
+SHA1 (patch-unittests_ExecutionEngine_MCJIT_Makefile) = 8243131319b77f025568592acf9436cf6fe5219c
diff --git a/lang/clang/options.mk b/lang/clang/options.mk
index f864a3d54bb..35309d0b4fc 100644
--- a/lang/clang/options.mk
+++ b/lang/clang/options.mk
@@ -1,13 +1,30 @@
-# $NetBSD: options.mk,v 1.1 2014/10/01 09:41:02 wiz Exp $
+# $NetBSD: options.mk,v 1.2 2015/03/03 16:27:33 tnn Exp $
PKG_OPTIONS_VAR= PKG_OPTIONS.clang
-PKG_SUPPORTED_OPTIONS= clang-static-analyzer
+PKG_SUPPORTED_OPTIONS= clang-static-analyzer shlib
PKG_SUGGESTED_OPTIONS= # clang-static-analyzer disabled since it needs python and perl
.include "../../mk/bsd.options.mk"
+PLIST_SRC= ${PLIST_SRC_DFLT}
+
+# XXX should be spun off to a libLLVM package when we have a use case for it
+.if !empty(PKG_OPTIONS:Mshlib)
+PLIST_SRC+= PLIST.shlib
+CONFIGURE_ARGS+= --enable-shared
+MAKE_ENV+= SHARED_LIBRARY=1
+MAKE_ENV+= LD_LIBRARY_PATH=${WRKSRC}/Release/lib
+# fixup shared library dependencies in a less intrusive way than patching
+BUILDLINK_TRANSFORM+= l:clangTooling:clangToolingCore:clangASTMatchers:clangTooling
+BUILDLINK_TRANSFORM+= l:LLVMMipsDesc:LLVMMipsAsmPrinter:LLVMMipsDesc
+BUILDLINK_TRANSFORM+= l:LLVMARMAsmParser:LLVMARMInfo:LLVMARMAsmParser
+BUILDLINK_TRANSFORM+= l:clangARCMigrate:clangStaticAnalyzerCore:clangStaticAnalyzerCheckers:clangARCMigrate
+BUILDLINK_TRANSFORM+= l:clangStaticAnalyzerCheckers:clangStaticAnalyzerCore:clangStaticAnalyzerCheckers
+BUILDLINK_TRANSFORM+= l:clangFrontendTool:clangStaticAnalyzerFrontend:clangFrontendTool
+.endif
+
.if !empty(PKG_OPTIONS:Mclang-static-analyzer)
-PLIST_SRC+= PLIST PLIST.static-analyzer
+PLIST_SRC+= PLIST.static-analyzer
INSTALLATION_DIRS+= bin
INSTALLATION_DIRS+= libexec
diff --git a/lang/clang/patches/patch-tools_lli_Makefile b/lang/clang/patches/patch-tools_lli_Makefile
new file mode 100644
index 00000000000..5532594513f
--- /dev/null
+++ b/lang/clang/patches/patch-tools_lli_Makefile
@@ -0,0 +1,14 @@
+$NetBSD: patch-tools_lli_Makefile,v 1.1 2015/03/03 16:27:33 tnn Exp $
+
+Fix build with shlib option.
+
+--- tools/lli/Makefile.orig 2014-09-02 22:28:02.000000000 +0000
++++ tools/lli/Makefile
+@@ -15,6 +15,7 @@ PARALLEL_DIRS := ChildTarget
+ include $(LEVEL)/Makefile.config
+
+ LINK_COMPONENTS := mcjit instrumentation interpreter nativecodegen bitreader asmparser irreader selectiondag native
++USEDLIBS += LLVMMCJIT.a
+
+ # If Intel JIT Events support is confiured, link against the LLVM Intel JIT
+ # Events interface library
diff --git a/lang/clang/patches/patch-unittests_ExecutionEngine_MCJIT_Makefile b/lang/clang/patches/patch-unittests_ExecutionEngine_MCJIT_Makefile
new file mode 100644
index 00000000000..37f0a1aaec9
--- /dev/null
+++ b/lang/clang/patches/patch-unittests_ExecutionEngine_MCJIT_Makefile
@@ -0,0 +1,14 @@
+$NetBSD: patch-unittests_ExecutionEngine_MCJIT_Makefile,v 1.1 2015/03/03 16:27:33 tnn Exp $
+
+Fix build with shlib option.
+
+--- unittests/ExecutionEngine/MCJIT/Makefile.orig 2014-09-02 22:28:02.000000000 +0000
++++ unittests/ExecutionEngine/MCJIT/Makefile
+@@ -10,6 +10,7 @@
+ LEVEL = ../../..
+ TESTNAME = MCJIT
+ LINK_COMPONENTS := core ipo mcjit native support
++USEDLIBS += LLVMMCJIT.a
+
+ include $(LEVEL)/Makefile.config
+ include $(LLVM_SRC_ROOT)/unittests/Makefile.unittest