Tue Mar 3 16:27:33 2015 UTC ()
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.


(tnn)
diff -r1.35 -r1.36 pkgsrc/lang/clang/Makefile
diff -r0 -r1.1 pkgsrc/lang/clang/PLIST.shlib
diff -r1.29 -r1.30 pkgsrc/lang/clang/distinfo
diff -r1.1 -r1.2 pkgsrc/lang/clang/options.mk
diff -r0 -r1.1 pkgsrc/lang/clang/patches/patch-tools_lli_Makefile
diff -r0 -r1.1 pkgsrc/lang/clang/patches/patch-unittests_ExecutionEngine_MCJIT_Makefile

cvs diff -r1.35 -r1.36 pkgsrc/lang/clang/Makefile (expand / switch to unified diff)

--- pkgsrc/lang/clang/Makefile 2015/03/03 12:04:08 1.35
+++ pkgsrc/lang/clang/Makefile 2015/03/03 16:27:33 1.36
@@ -1,39 +1,38 @@ @@ -1,39 +1,38 @@
1# $NetBSD: Makefile,v 1.35 2015/03/03 12:04:08 tnn Exp $ 1# $NetBSD: Makefile,v 1.36 2015/03/03 16:27:33 tnn Exp $
2 2
3DISTNAME= clang-3.6.0 3DISTNAME= clang-3.6.0
4CATEGORIES= lang 4CATEGORIES= lang
5MASTER_SITES= http://llvm.org/releases/${PKGVERSION_NOREV}/ 5MASTER_SITES= http://llvm.org/releases/${PKGVERSION_NOREV}/
6DISTFILES= llvm-${PKGVERSION_NOREV}.src.tar.xz \ 6DISTFILES= llvm-${PKGVERSION_NOREV}.src.tar.xz \
7 libcxx-${PKGVERSION_NOREV}.src.tar.xz \ 7 libcxx-${PKGVERSION_NOREV}.src.tar.xz \
8 cfe-${PKGVERSION_NOREV}.src.tar.xz \ 8 cfe-${PKGVERSION_NOREV}.src.tar.xz \
9 compiler-rt-${PKGVERSION_NOREV}.src.tar.xz 9 compiler-rt-${PKGVERSION_NOREV}.src.tar.xz
10 10
11MAINTAINER= adam.hoka@gmail.com 11MAINTAINER= adam.hoka@gmail.com
12HOMEPAGE= http://llvm.org/ 12HOMEPAGE= http://llvm.org/
13COMMENT= Low Level Virtual Machine compiler infrastructure 13COMMENT= Low Level Virtual Machine compiler infrastructure
14LICENSE= modified-bsd 14LICENSE= modified-bsd
15 15
16WRKSRC= ${WRKDIR}/llvm-${PKGVERSION_NOREV}.src 16WRKSRC= ${WRKDIR}/llvm-${PKGVERSION_NOREV}.src
17 17
18USE_LANGUAGES= c c++ 18USE_LANGUAGES= c c++
19USE_TOOLS+= chown gmake groff pod2html pod2man 19USE_TOOLS+= chown gmake groff pod2html pod2man
20GCC_REQD+= 4.7 4.8 20GCC_REQD+= 4.7 4.8
21GNU_CONFIGURE= yes 21GNU_CONFIGURE= yes
22CONFIGURE_ARGS+= --disable-assertions 22CONFIGURE_ARGS+= --disable-assertions
23CONFIGURE_ARGS+= --disable-bindings # disable OCaml 23CONFIGURE_ARGS+= --disable-bindings # disable OCaml
24CONFIGURE_ARGS+= --disable-timestamps 24CONFIGURE_ARGS+= --disable-timestamps
25CONFIGURE_ARGS+= --enable-optimized 25CONFIGURE_ARGS+= --enable-optimized
26#CONFIGURE_ARGS+= --enable-shared 
27 26
28MAKE_DIRS+= etc/llvm 27MAKE_DIRS+= etc/llvm
29 28
30INSTALLATION_DIRS= bin lib libexec 29INSTALLATION_DIRS= bin lib libexec
31 30
32CHECK_PORTABILITY_SKIP= utils/buildit/build_llvm 31CHECK_PORTABILITY_SKIP= utils/buildit/build_llvm
33 32
34TEST_TARGET= check unittests 33TEST_TARGET= check unittests
35 34
36.include "../../mk/bsd.prefs.mk" 35.include "../../mk/bsd.prefs.mk"
37 36
38.if ${_OPSYS_SHLIB_TYPE} == "dylib" 37.if ${_OPSYS_SHLIB_TYPE} == "dylib"
39PLIST_SUBST+= SOEXT="dylib" 38PLIST_SUBST+= SOEXT="dylib"

File Added: pkgsrc/lang/clang/Attic/PLIST.shlib
@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}

cvs diff -r1.29 -r1.30 pkgsrc/lang/clang/distinfo (expand / switch to unified diff)

--- pkgsrc/lang/clang/distinfo 2015/03/03 12:04:08 1.29
+++ pkgsrc/lang/clang/distinfo 2015/03/03 16:27:33 1.30
@@ -1,19 +1,21 @@ @@ -1,19 +1,21 @@
1$NetBSD: distinfo,v 1.29 2015/03/03 12:04:08 tnn Exp $ 1$NetBSD: distinfo,v 1.30 2015/03/03 16:27:33 tnn Exp $
2 2
3SHA1 (cfe-3.6.0.src.tar.xz) = 06b252867a3d118c95ca279fd3c4ac05f6730551 3SHA1 (cfe-3.6.0.src.tar.xz) = 06b252867a3d118c95ca279fd3c4ac05f6730551
4RMD160 (cfe-3.6.0.src.tar.xz) = 2e04853d2f8133fea493ee12d7f05bc6b27dc988 4RMD160 (cfe-3.6.0.src.tar.xz) = 2e04853d2f8133fea493ee12d7f05bc6b27dc988
5Size (cfe-3.6.0.src.tar.xz) = 8640776 bytes 5Size (cfe-3.6.0.src.tar.xz) = 8640776 bytes
6SHA1 (compiler-rt-3.6.0.src.tar.xz) = 771cbf0535dce1ca3a3be022377781e32fdea70e 6SHA1 (compiler-rt-3.6.0.src.tar.xz) = 771cbf0535dce1ca3a3be022377781e32fdea70e
7RMD160 (compiler-rt-3.6.0.src.tar.xz) = 716cbd5e101959b064331ad73bfe18fcb98347c5 7RMD160 (compiler-rt-3.6.0.src.tar.xz) = 716cbd5e101959b064331ad73bfe18fcb98347c5
8Size (compiler-rt-3.6.0.src.tar.xz) = 1140616 bytes 8Size (compiler-rt-3.6.0.src.tar.xz) = 1140616 bytes
9SHA1 (libcxx-3.6.0.src.tar.xz) = 5445194366ae2291092fd2204030cb3d01ad6272 9SHA1 (libcxx-3.6.0.src.tar.xz) = 5445194366ae2291092fd2204030cb3d01ad6272
10RMD160 (libcxx-3.6.0.src.tar.xz) = 9221db789b801dde45ad89f57c7a74fd3b082cf4 10RMD160 (libcxx-3.6.0.src.tar.xz) = 9221db789b801dde45ad89f57c7a74fd3b082cf4
11Size (libcxx-3.6.0.src.tar.xz) = 946380 bytes 11Size (libcxx-3.6.0.src.tar.xz) = 946380 bytes
12SHA1 (llvm-3.6.0.src.tar.xz) = 6eb2b7381d924bb3f267281c9058c817d825d824 12SHA1 (llvm-3.6.0.src.tar.xz) = 6eb2b7381d924bb3f267281c9058c817d825d824
13RMD160 (llvm-3.6.0.src.tar.xz) = cd2216a21871ba5be52e193e28e444bd04dacee2 13RMD160 (llvm-3.6.0.src.tar.xz) = cd2216a21871ba5be52e193e28e444bd04dacee2
14Size (llvm-3.6.0.src.tar.xz) = 12750908 bytes 14Size (llvm-3.6.0.src.tar.xz) = 12750908 bytes
15SHA1 (patch-ab) = 8dd0da6d47a57ac25eea358996cf874dd3289e08 15SHA1 (patch-ab) = 8dd0da6d47a57ac25eea358996cf874dd3289e08
16SHA1 (patch-ac) = 0f0cc98d443ec957fc5374fb491809d27e4f9d4e 16SHA1 (patch-ac) = 0f0cc98d443ec957fc5374fb491809d27e4f9d4e
17SHA1 (patch-ad) = ad1f6720e4c73e57fce10ba968b03637a133602d 17SHA1 (patch-ad) = ad1f6720e4c73e57fce10ba968b03637a133602d
18SHA1 (patch-include_llvm_Support_Host.h) = 545f9542cd2aaa6cea58d3653902b4e1a9e7189a 18SHA1 (patch-include_llvm_Support_Host.h) = 545f9542cd2aaa6cea58d3653902b4e1a9e7189a
19SHA1 (patch-tools_clang_tools_scan-build_scan-build) = a671f1e513fb43ddc0e73751a78235ab39aeaf9d 19SHA1 (patch-tools_clang_tools_scan-build_scan-build) = a671f1e513fb43ddc0e73751a78235ab39aeaf9d
 20SHA1 (patch-tools_lli_Makefile) = 9801878144833b9c871677110183539cd0a08e9a
 21SHA1 (patch-unittests_ExecutionEngine_MCJIT_Makefile) = 8243131319b77f025568592acf9436cf6fe5219c

cvs diff -r1.1 -r1.2 pkgsrc/lang/clang/Attic/options.mk (expand / switch to unified diff)

--- pkgsrc/lang/clang/Attic/options.mk 2014/10/01 09:41:02 1.1
+++ pkgsrc/lang/clang/Attic/options.mk 2015/03/03 16:27:33 1.2
@@ -1,23 +1,40 @@ @@ -1,23 +1,40 @@
1# $NetBSD: options.mk,v 1.1 2014/10/01 09:41:02 wiz Exp $ 1# $NetBSD: options.mk,v 1.2 2015/03/03 16:27:33 tnn Exp $
2 2
3PKG_OPTIONS_VAR= PKG_OPTIONS.clang 3PKG_OPTIONS_VAR= PKG_OPTIONS.clang
4PKG_SUPPORTED_OPTIONS= clang-static-analyzer 4PKG_SUPPORTED_OPTIONS= clang-static-analyzer shlib
5PKG_SUGGESTED_OPTIONS= # clang-static-analyzer disabled since it needs python and perl 5PKG_SUGGESTED_OPTIONS= # clang-static-analyzer disabled since it needs python and perl
6 6
7.include "../../mk/bsd.options.mk" 7.include "../../mk/bsd.options.mk"
8 8
 9PLIST_SRC= ${PLIST_SRC_DFLT}
 10
 11# XXX should be spun off to a libLLVM package when we have a use case for it
 12.if !empty(PKG_OPTIONS:Mshlib)
 13PLIST_SRC+= PLIST.shlib
 14CONFIGURE_ARGS+= --enable-shared
 15MAKE_ENV+= SHARED_LIBRARY=1
 16MAKE_ENV+= LD_LIBRARY_PATH=${WRKSRC}/Release/lib
 17# fixup shared library dependencies in a less intrusive way than patching
 18BUILDLINK_TRANSFORM+= l:clangTooling:clangToolingCore:clangASTMatchers:clangTooling
 19BUILDLINK_TRANSFORM+= l:LLVMMipsDesc:LLVMMipsAsmPrinter:LLVMMipsDesc
 20BUILDLINK_TRANSFORM+= l:LLVMARMAsmParser:LLVMARMInfo:LLVMARMAsmParser
 21BUILDLINK_TRANSFORM+= l:clangARCMigrate:clangStaticAnalyzerCore:clangStaticAnalyzerCheckers:clangARCMigrate
 22BUILDLINK_TRANSFORM+= l:clangStaticAnalyzerCheckers:clangStaticAnalyzerCore:clangStaticAnalyzerCheckers
 23BUILDLINK_TRANSFORM+= l:clangFrontendTool:clangStaticAnalyzerFrontend:clangFrontendTool
 24.endif
 25
9.if !empty(PKG_OPTIONS:Mclang-static-analyzer) 26.if !empty(PKG_OPTIONS:Mclang-static-analyzer)
10PLIST_SRC+= PLIST PLIST.static-analyzer 27PLIST_SRC+= PLIST.static-analyzer
11 28
12INSTALLATION_DIRS+= bin 29INSTALLATION_DIRS+= bin
13INSTALLATION_DIRS+= libexec 30INSTALLATION_DIRS+= libexec
14INSTALLATION_DIRS+= ${PKGMANDIR}/man1 31INSTALLATION_DIRS+= ${PKGMANDIR}/man1
15INSTALLATION_DIRS+= share/llvm/static-analyzer 32INSTALLATION_DIRS+= share/llvm/static-analyzer
16INSTALLATION_DIRS+= share/llvm/static-analyzer/Resources 33INSTALLATION_DIRS+= share/llvm/static-analyzer/Resources
17 34
18USE_TOOLS+= perl:run 35USE_TOOLS+= perl:run
19REPLACE_PERL+= tools/clang/tools/scan-build/c++-analyzer 36REPLACE_PERL+= tools/clang/tools/scan-build/c++-analyzer
20REPLACE_PERL+= tools/clang/tools/scan-build/ccc-analyzer 37REPLACE_PERL+= tools/clang/tools/scan-build/ccc-analyzer
21REPLACE_PERL+= tools/clang/tools/scan-build/scan-build 38REPLACE_PERL+= tools/clang/tools/scan-build/scan-build
22 39
23REPLACE_PYTHON+= tools/clang/tools/scan-view/scan-view 40REPLACE_PYTHON+= tools/clang/tools/scan-view/scan-view

File Added: pkgsrc/lang/clang/patches/Attic/patch-tools_lli_Makefile
$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

File Added: pkgsrc/lang/clang/patches/Attic/patch-unittests_ExecutionEngine_MCJIT_Makefile
$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