pkgsrc/devel/lldb/Makefile
adam a3ebdf18b6 Changes 3.9.1:
The LLVMContext gains a new runtime check (see LLVMContext::discardValueNames()) that can be set to discard Value names (other than GlobalValue). This is intended to be used in release builds by clients that are interested in saving CPU/memory as much as possible.
There is no longer a “global context” available in LLVM, except for the C API.
The autoconf build system has been removed in favor of CMake. LLVM 3.9 requires CMake 3.4.3 or later to build. For information about using CMake please see the documentation on Building LLVM with CMake. For information about the CMake language there is also a CMake Primer document available.
C API functions LLVMParseBitcode, LLVMParseBitcodeInContext, LLVMGetBitcodeModuleInContext and LLVMGetBitcodeModule having been removed. LLVMGetTargetMachineData has been removed (use LLVMGetDataLayout instead).
The C API function LLVMLinkModules has been removed.
The C API function LLVMAddTargetData has been removed.
The C API function LLVMGetDataLayout is deprecated in favor of LLVMGetDataLayoutStr.
The C API enum LLVMAttribute and associated API is deprecated in favor of the new LLVMAttributeRef API. The deprecated functions are LLVMAddFunctionAttr, LLVMAddTargetDependentFunctionAttr, LLVMRemoveFunctionAttr, LLVMGetFunctionAttr, LLVMAddAttribute, LLVMRemoveAttribute, LLVMGetAttribute, LLVMAddInstrAttribute, LLVMRemoveInstrAttribute and LLVMSetInstrParamAlignment.
TargetFrameLowering::eliminateCallFramePseudoInstr now returns an iterator to the next instruction instead of void. Targets that previously did MBB.erase(I); return; now probably want return MBB.erase(I);.
SelectionDAGISel::Select now returns void. Out-of-tree targets will need to be updated to replace the argument node and remove any dead nodes in cases where they currently return an SDNode * from this interface.
Added the MemorySSA analysis, which hopes to replace MemoryDependenceAnalysis. It should provide higher-quality results than MemDep, and be algorithmically faster than MemDep. Currently, GVNHoist (which is off by default) makes use of MemorySSA.
The minimum density for lowering switches with jump tables has been reduced from 40% to 10% for functions which are not marked optsize (that is, compiled with -Os).
2017-01-05 11:54:32 +00:00

147 lines
6.2 KiB
Makefile

# $NetBSD: Makefile,v 1.6 2017/01/05 11:54:32 adam Exp $
DISTNAME= lldb-3.9.1.src
PKGNAME= ${DISTNAME:S/.src//}
CATEGORIES= lang devel
MASTER_SITES= http://llvm.org/releases/${PKGVERSION_NOREV}/
EXTRACT_SUFX= .tar.xz
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://lldb.org/
COMMENT= Next generation, high-performance debugger
LICENSE= modified-bsd
DEPENDS+= ${PYPKGPREFIX}-six-[0-9]*:../../lang/py-six
CONFIGURE_DIRS= ${WRKDIR}/build
CMAKE_ARG_PATH= ${WRKSRC}
USE_LANGUAGES= c c++
USE_CMAKE= yes
GCC_REQD+= 4.8
PY_PATCHPLIST= yes
PYTHON_VERSIONS_INCOMPATIBLE= 34 35 36 # compilation failure in 3.8.1 (3.8.0 worked)
CMAKE_ARGS+= -DLLVM_CONFIG=${LLVM_CONFIG_PATH}
CMAKE_ARGS+= -DCMAKE_BUILD_TYPE=Release
CMAKE_ARGS+= -DCMAKE_C_COMPILER=gcc
CMAKE_ARGS+= -DCMAKE_CXX_COMPILER=g++
CMAKE_ARGS+= -DHAVE_CXX_ATOMICS64_WITHOUT_LIB=ON
CHECK_PORTABILITY_SKIP= utils/buildit/build_llvm
REPLACE_PERL+= packages/Python/lldbsuite/test/attic/dotest.pl
REPLACE_PERL+= scripts/build-llvm.pl
REPLACE_PERL+= scripts/checkpoint-llvm.pl
REPLACE_PERL+= scripts/disasm-gdb-remote.pl
REPLACE_PERL+= scripts/generate-vers.pl
REPLACE_PERL+= scripts/sed-sources
REPLACE_PYTHON+= examples/darwin/heap_find/heap.py
REPLACE_PYTHON+= examples/python/cmdtemplate.py
REPLACE_PYTHON+= examples/python/crashlog.py
REPLACE_PYTHON+= examples/python/delta.py
REPLACE_PYTHON+= examples/python/disasm-stress-test.py
REPLACE_PYTHON+= examples/python/disasm.py
REPLACE_PYTHON+= examples/python/gdbremote.py
REPLACE_PYTHON+= examples/python/globals.py
REPLACE_PYTHON+= examples/python/lldb_module_utils.py
REPLACE_PYTHON+= examples/python/lldbtk.py
REPLACE_PYTHON+= examples/python/mach_o.py
REPLACE_PYTHON+= examples/python/memory.py
REPLACE_PYTHON+= examples/python/operating_system.py
REPLACE_PYTHON+= examples/python/performance.py
REPLACE_PYTHON+= examples/python/process_events.py
REPLACE_PYTHON+= examples/python/sbvalue.py
REPLACE_PYTHON+= examples/python/sources.py
REPLACE_PYTHON+= examples/python/stacks.py
REPLACE_PYTHON+= examples/python/symbolication.py
REPLACE_PYTHON+= examples/python/types.py
REPLACE_PYTHON+= examples/python/x86_64_linux_target_definition.py
REPLACE_PYTHON+= examples/python/x86_64_qemu_target_definition.py
REPLACE_PYTHON+= examples/python/x86_64_target_definition.py
REPLACE_PYTHON+= packages/Python/lldbsuite/test/attic/tester.py
REPLACE_PYTHON+= packages/Python/lldbsuite/test/bench.py
REPLACE_PYTHON+= packages/Python/lldbsuite/test/curses_results.py
REPLACE_PYTHON+= packages/Python/lldbsuite/test/dosep.py
REPLACE_PYTHON+= packages/Python/lldbsuite/test/functionalities/plugins/python_os_plugin/operating_system.py
REPLACE_PYTHON+= packages/Python/lldbsuite/test/functionalities/plugins/python_os_plugin/operating_system2.py
REPLACE_PYTHON+= packages/Python/lldbsuite/test/redo.py
REPLACE_PYTHON+= packages/Python/lldbsuite/test/test_runner/test/inferior.py
REPLACE_PYTHON+= packages/Python/lldbsuite/test/test_runner/test/process_control_tests.py
REPLACE_PYTHON+= scripts/Python/remote-build.py
REPLACE_PYTHON+= scripts/buildbot.py
REPLACE_PYTHON+= scripts/shush
REPLACE_PYTHON+= scripts/verify_api.py
REPLACE_PYTHON+= scripts/prepare_bindings.py
REPLACE_PYTHON+= test/dotest.py
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/FSM.py
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/examples/astat.py
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/examples/bd_client.py
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/examples/bd_serv.py
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/examples/cgishell.cgi
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/examples/chess.py
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/examples/chess2.py
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/examples/chess3.py
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/examples/df.py
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/examples/fix_cvs_files.py
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/examples/ftp.py
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/examples/hive.py
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/examples/monitor.py
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/examples/passmass.py
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/examples/python.py
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/examples/rippy.py
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/examples/script.py
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/examples/ssh_tunnel.py
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/examples/sshls.py
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/examples/topip.py
REPLACE_PYTHON+= third_party/Python/module/pexpect-2.4/examples/uptime.py
REPLACE_PYTHON+= third_party/Python/module/progress/progress.py
REPLACE_PYTHON+= utils/git-svn/convert.py
REPLACE_PYTHON+= utils/lui/lui.py
REPLACE_PYTHON+= utils/lui/sandbox.py
REPLACE_PYTHON+= utils/misc/grep-svn-log.py
REPLACE_PYTHON+= utils/sync-source/syncsource.py
REPLACE_PYTHON+= utils/test/disasm.py
REPLACE_PYTHON+= utils/test/lldb-disasm.py
REPLACE_PYTHON+= utils/test/llvm-mc-shell.py
REPLACE_PYTHON+= utils/test/ras.py
REPLACE_PYTHON+= utils/test/run-dis.py
REPLACE_PYTHON+= utils/test/run-until-faulted.py
TEST_TARGET= check-lldb
TEST_ENV+= LD_LIBRARY_PATH=${WRKDIR}/build/lib
.include "../../mk/bsd.prefs.mk"
PLIST_VARS+= posix
.if ${OPSYS} != "Darwin"
PLIST.posix= yes
.endif
.if ${OPSYS} == "NetBSD"
. if exists(/usr/include/panel.h)
CMAKE_ARGS+= -DLLDB_DISABLE_CURSES:BOOL=FALSE
. else
CMAKE_ARGS+= -DLLDB_DISABLE_CURSES:BOOL=TRUE
. endif
.endif
post-extract:
${RUN} mkdir -p ${WRKDIR}/build
.include "../../mk/readline.buildlink3.mk"
.include "../../mk/curses.buildlink3.mk"
.include "../../textproc/libxml2/buildlink3.mk"
DEPENDS+= llvm-${PKGVERSION_NOREV}{,nb*}:../../lang/llvm
.include "../../lang/llvm/buildlink3.mk"
DEPENDS+= clang-${PKGVERSION_NOREV}{,nb*}:../../lang/clang
.include "../../lang/clang/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../lang/python/application.mk"
.include "../../lang/python/tool.mk"
.include "../../lang/python/extension.mk"
.include "../../devel/swig/buildlink3.mk"
.include "../../devel/libatomic_ops/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"