diff --git a/packages/libllvm/build.sh b/packages/libllvm/build.sh index ad2a7e1f5..73e2f06ed 100644 --- a/packages/libllvm/build.sh +++ b/packages/libllvm/build.sh @@ -2,17 +2,16 @@ TERMUX_PKG_HOMEPAGE=https://clang.llvm.org/ TERMUX_PKG_DESCRIPTION="Modular compiler and toolchain technologies library" TERMUX_PKG_LICENSE="NCSA" TERMUX_PKG_MAINTAINER="@buttaface" -TERMUX_PKG_VERSION=12.0.1 -TERMUX_PKG_REVISION=1 -TERMUX_PKG_SHA256=129cb25cd13677aad951ce5c2deb0fe4afc1e9d98950f53b51bdcfb5a73afa0e +TERMUX_PKG_VERSION=13.0.0 +TERMUX_PKG_SHA256=6075ad30f1ac0e15f07c1bf062c1e1268c241d674f11bd32cdf0e040c71f2bf3 TERMUX_PKG_SRCURL=https://github.com/llvm/llvm-project/releases/download/llvmorg-$TERMUX_PKG_VERSION/llvm-project-$TERMUX_PKG_VERSION.src.tar.xz TERMUX_PKG_HOSTBUILD=true TERMUX_PKG_RM_AFTER_INSTALL=" -bin/ld64.lld.darwinnew +bin/ld64.lld.darwin* lib/libgomp.a lib/libiomp5.a " -TERMUX_PKG_DEPENDS="binutils, libc++, ncurses, ndk-sysroot, libffi, zlib, libxml2" +TERMUX_PKG_DEPENDS="libc++, ncurses, libffi, zlib, libxml2" # Replace gcc since gcc is deprecated by google on android and is not maintained upstream. # Conflict with clang versions earlier than 3.9.1-3 since they bundled llvm. TERMUX_PKG_CONFLICTS="gcc, clang (<< 3.9.1-3)" @@ -27,8 +26,10 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" -DLLVM_ENABLE_LIBEDIT=OFF -DLLVM_INCLUDE_TESTS=OFF -DCLANG_DEFAULT_CXX_STDLIB=libc++ +-DCLANG_DEFAULT_LINKER=lld -DCLANG_INCLUDE_TESTS=OFF -DCLANG_TOOL_C_INDEX_TEST_BUILD=OFF +-DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON -DDEFAULT_SYSROOT=$(dirname $TERMUX_PREFIX) -DLLVM_LINK_LLVM_DYLIB=ON -DLLDB_TABLEGEN=$TERMUX_PKG_HOSTBUILD_DIR/bin/lldb-tblgen @@ -36,7 +37,6 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" -DCLANG_TABLEGEN=$TERMUX_PKG_HOSTBUILD_DIR/bin/clang-tblgen -DLIBOMP_ENABLE_SHARED=FALSE -DOPENMP_ENABLE_LIBOMPTARGET=OFF --DLLVM_BINUTILS_INCDIR=$TERMUX_PREFIX/include -DLLVM_ENABLE_SPHINX=ON -DSPHINX_OUTPUT_MAN=ON -DSPHINX_WARNINGS_AS_ERRORS=OFF diff --git a/packages/libllvm/clang-lib-Driver-ToolChains-Linux.cpp.patch b/packages/libllvm/clang-lib-Driver-ToolChains-Linux.cpp.patch index d719c58b3..a271fb948 100644 --- a/packages/libllvm/clang-lib-Driver-ToolChains-Linux.cpp.patch +++ b/packages/libllvm/clang-lib-Driver-ToolChains-Linux.cpp.patch @@ -1,14 +1,5 @@ --- a/clang/lib/Driver/ToolChains/Linux.cpp 2019-12-21 22:30:03.676720096 +0000 +++ b/clang/lib/Driver/ToolChains/Linux.cpp 2019-12-21 22:34:42.941719383 +0000 -@@ -374,7 +374,7 @@ - // those searched. - // FIXME: It's not clear whether we should use the driver's installed - // directory ('Dir' below) or the ResourceDir. -- if (StringRef(D.Dir).startswith(SysRoot)) { -+ if (StringRef(D.Dir).startswith(SysRoot) && !IsAndroid) { - addPathIfExists(D, D.Dir + "/../lib/" + MultiarchTriple, Paths); - addPathIfExists(D, D.Dir + "/../" + OSLibDir, Paths); - } @@ -403,7 +403,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args) if (Triple.getVendor() == llvm::Triple::OpenEmbedded && Triple.isArch64Bit()) diff --git a/packages/libllvm/clang.subpackage.sh b/packages/libllvm/clang.subpackage.sh index 795668d18..672948f8e 100644 --- a/packages/libllvm/clang.subpackage.sh +++ b/packages/libllvm/clang.subpackage.sh @@ -1,4 +1,5 @@ TERMUX_SUBPKG_INCLUDE=" +bin/analyze-build bin/c++ bin/cc bin/*clang* @@ -9,6 +10,7 @@ bin/*g++ bin/*gcc bin/git-clang-format bin/hmaptool +bin/intercept-build bin/modularize bin/pp-trace bin/scan-* @@ -16,19 +18,23 @@ include/clang* include/omp*.h lib/clang/*/include/*.h lib/clang/*/include/*.modulemap +lib/clang/*/include/cuda_wrappers/ lib/clang/*/include/openmp_wrappers/ lib/clang/*/include/ppc_wrappers/ -lib/clang/*/include/cuda_wrappers/ lib/cmake/clang +lib/cmake/openmp lib/libclang*so +lib/libear/ lib/libomp.a +lib/libscanbuild/ libexec/ share/clang -share/scan-* share/man/man1/clang.1.gz share/man/man1/scan-* +share/scan-* " TERMUX_SUBPKG_DESCRIPTION="C language frontend for LLVM" +TERMUX_SUBPKG_DEPENDS="lld, ndk-sysroot, libcompiler-rt" TERMUX_SUBPKG_BREAKS="libllvm (<< 11.0.0-1), clangd" TERMUX_SUBPKG_REPLACES="libllvm (<< 11.0.0-1), clangd" TERMUX_SUBPKG_GROUPS="base-devel" diff --git a/packages/libllvm/compiler-rt-lib-builtins-CMakeLists.txt.patch b/packages/libllvm/compiler-rt-lib-builtins-CMakeLists.txt.patch new file mode 100644 index 000000000..8105d61fb --- /dev/null +++ b/packages/libllvm/compiler-rt-lib-builtins-CMakeLists.txt.patch @@ -0,0 +1,18 @@ +Something changed between clang 9 in NDK 21d and clang 12 in NDK 23, where we have to pass +this flag now. + +diff --git a/compiler-rt/lib/builtins/CMakeLists.txt b/compiler-rt/lib/builtins/CMakeLists.txt +index 59d83631a5f4..561384460d85 100644 +--- a/compiler-rt/lib/builtins/CMakeLists.txt ++++ b/compiler-rt/lib/builtins/CMakeLists.txt +@@ -729,8 +729,8 @@ else () + + # Needed for clear_cache on debug mode, due to r7's usage in inline asm. + # Release mode already sets it via -O2/3, Debug mode doesn't. +- if (${arch} STREQUAL "armhf") +- list(APPEND BUILTIN_CFLAGS_${arch} -fomit-frame-pointer -DCOMPILER_RT_ARMHF_TARGET) ++ if (${arch} STREQUAL "arm") ++ list(APPEND BUILTIN_CFLAGS_${arch} -fomit-frame-pointer)# -DCOMPILER_RT_ARMHF_TARGET) + endif() + + # For RISCV32, we must force enable int128 for compiling long diff --git a/packages/libllvm/libcompiler-rt.subpackage.sh b/packages/libllvm/libcompiler-rt.subpackage.sh index e5c9b2c3c..b27259a89 100644 --- a/packages/libllvm/libcompiler-rt.subpackage.sh +++ b/packages/libllvm/libcompiler-rt.subpackage.sh @@ -7,7 +7,7 @@ lib/clang/*/include/profile/InstrProfData.inc lib/clang/*/include/sanitizer/ lib/clang/*/include/xray/ lib/clang/*/lib/android/ -lib/clang/*/share/asan_blacklist.txt -lib/clang/*/share/cfi_blacklist.txt -lib/clang/*/share/hwasan_blacklist.txt +lib/clang/*/share/asan_ignorelist.txt +lib/clang/*/share/cfi_ignorelist.txt +lib/clang/*/share/hwasan_ignorelist.txt " diff --git a/packages/libllvm/lld.subpackage.sh b/packages/libllvm/lld.subpackage.sh index d360d481d..fccddb696 100644 --- a/packages/libllvm/lld.subpackage.sh +++ b/packages/libllvm/lld.subpackage.sh @@ -1,11 +1,11 @@ TERMUX_SUBPKG_INCLUDE=" +bin/ld.lld +bin/ld64.lld +bin/lld +bin/lld-link +bin/wasm-ld include/lld/ lib/cmake/lld/ lib/liblld*.a -bin/lld -bin/lld-link -bin/ld.lld -bin/wasm-ld -bin/ld64.lld " TERMUX_SUBPKG_DESCRIPTION="LLVM-based linker" diff --git a/packages/libllvm/lldb-include-lldb-Host-Editline.h.patch b/packages/libllvm/lldb-include-lldb-Host-Editline.h.patch index 511d165d9..54402f181 100644 --- a/packages/libllvm/lldb-include-lldb-Host-Editline.h.patch +++ b/packages/libllvm/lldb-include-lldb-Host-Editline.h.patch @@ -4,10 +4,10 @@ index 356e8f734732..c717f7b0cebb 100644 +++ b/lldb/include/lldb/Host/Editline.h @@ -43,7 +43,7 @@ - #if defined(_WIN32) - #include "lldb/Host/windows/editlinewin.h" --#elif !defined(__ANDROID__) -+#else + #include "lldb/lldb-private.h" + +-#if !defined(_WIN32) && !defined(__ANDROID__) ++#if !defined(_WIN32) #include #endif diff --git a/packages/libllvm/lldb-source-API-SBReproducerPrivate.h.patch b/packages/libllvm/lldb-source-API-SBReproducerPrivate.h.patch new file mode 100644 index 000000000..431ddaa3c --- /dev/null +++ b/packages/libllvm/lldb-source-API-SBReproducerPrivate.h.patch @@ -0,0 +1,15 @@ +lldb wants to serialize a FILE, so pass it the header with the size now that it's an opaque +struct. + +diff --git a/lldb/source/API/SBReproducerPrivate.h b/lldb/source/API/SBReproducerPrivate.h +index 02ac31c2ad89..0ec65e63fffe 100644 +--- a/lldb/source/API/SBReproducerPrivate.h ++++ b/lldb/source/API/SBReproducerPrivate.h +@@ -19,6 +19,7 @@ + #include "lldb/Utility/ReproducerProvider.h" + + #include "llvm/ADT/DenseMap.h" ++#include + + #define LLDB_GET_INSTRUMENTATION_DATA() \ + lldb_private::repro::InstrumentationData::Instance() diff --git a/packages/libllvm/lldb-source-Plugins-Process-Linux-NativeProcessLinux.cpp.patch b/packages/libllvm/lldb-source-Plugins-Process-Linux-NativeProcessLinux.cpp.patch index 688af1281..0b97cff23 100644 --- a/packages/libllvm/lldb-source-Plugins-Process-Linux-NativeProcessLinux.cpp.patch +++ b/packages/libllvm/lldb-source-Plugins-Process-Linux-NativeProcessLinux.cpp.patch @@ -8,9 +8,9 @@ info. #include "Plugins/Process/POSIX/ProcessPOSIXLog.h" #include "Plugins/Process/Utility/LinuxProcMaps.h" -#include "Procfs.h" - #include "lldb/Core/EmulateInstruction.h" #include "lldb/Core/ModuleSpec.h" #include "lldb/Host/Host.h" + #include "lldb/Host/HostProcess.h" @@ -46,6 +45,7 @@ #include "llvm/Support/Errno.h" #include "llvm/Support/FileSystem.h" diff --git a/packages/libllvm/llvm-config.in b/packages/libllvm/llvm-config.in index d16928c2d..f53b0a6e3 100644 --- a/packages/libllvm/llvm-config.in +++ b/packages/libllvm/llvm-config.in @@ -31,7 +31,6 @@ Options: --assertion-mode Print assertion mode of LLVM tree (ON or OFF). --build-system Print the build system used to build LLVM (always cmake). --has-rtti Print whether or not LLVM was built with rtti (YES or NO). - --has-global-isel Print whether or not LLVM was built with global-isel support (YES or NO). --shared-mode Print how the provided components can be collectively linked (\`shared\` or \`static\`). --link-shared Link the components as shared libraries. --link-static Link the component libraries statically. @@ -56,9 +55,9 @@ analysis arm armasmparser armcodegen armdesc armdisassembler arminfo armutils as asmprinter avr avrasmparser avrcodegen avrdesc avrdisassembler avrinfo binaryformat \ bitreader bitstreamreader bitwriter bpf bpfasmparser bpfcodegen bpfdesc bpfdisassembler \ bpfinfo cfguard codegen core coroutines coverage debuginfocodeview debuginfodwarf \ -debuginfogsym debuginfomsf debuginfopdb demangle dlltooldriver dwarflinker engine \ +debuginfogsym debuginfomsf debuginfopdb demangle dlltooldriver dwarflinker dwp engine \ executionengine extensions filecheck frontendopenacc frontendopenmp \ -fuzzmutate globalisel hellonew hexagon hexagonasmparser hexagoncodegen hexagondesc \ +fuzzmutate globalisel hexagon hexagonasmparser hexagoncodegen hexagondesc \ hexagondisassembler hexagoninfo instcombine instrumentation interfacestub \ interpreter ipo irreader jitlink lanai lanaiasmparser lanaicodegen lanaidesc \ lanaidisassembler lanaiinfo libdriver lineeditor linker lto mc mca mcdisassembler \ @@ -72,18 +71,18 @@ runtimedyld scalaropts selectiondag sparc sparcasmparser sparccodegen sparcdesc sparcdisassembler sparcinfo support symbolize systemz systemzasmparser systemzcodegen \ systemzdesc systemzdisassembler systemzinfo tablegen target textapi transformutils vectorize webassembly \ webassemblyasmparser webassemblycodegen webassemblydesc webassemblydisassembler \ -webassemblyinfo windowsmanifest x86 x86asmparser x86codegen x86desc x86disassembler x86info \ +webassemblyinfo webassemblyutils windowsmanifest x86 x86asmparser x86codegen x86desc x86disassembler x86info \ xcore xcorecodegen xcoredesc xcoredisassembler xcoreinfo xray" static_libs="-lLLVMObjectYAML -lLLVMDlltoolDriver -lLLVMLineEditor -lLLVMFuzzMutate \ --lLLVMCoroutines -lLLVMLTO -lLLVMPasses -lLLVMObjCARCOpts -lLLVMHelloNew -lLLVMTextAPI -lLLVMCoverage \ --lLLVMXRay -lLLVMInterpreter -lLLVMRemarks -lLLVMMIRParser -lLLVMSymbolize -lLLVMDebugInfoPDB \ +-lLLVMCoroutines -lLLVMLTO -lLLVMPasses -lLLVMObjCARCOpts -lLLVMTextAPI -lLLVMCoverage \ +-lLLVMXRay -lLLVMInterpreter -lLLVMRemarks -lLLVMMIRParser -lLLVMDWP -lLLVMSymbolize -lLLVMDebugInfoPDB \ -lLLVMDebugInfoDWARF -lLLVMAVRAsmParser -lLLVMInterfaceStub -lLLVMFileCheck -lLLVMAVRCodeGen -lLLVMAVRDesc -lLLVMAVRDisassembler \ -lLLVMAVRInfo -lLLVMRISCVDisassembler -lLLVMRISCVCodeGen -lLLVMRISCVAsmParser \ -lLLVMRISCVDesc -lLLVMRISCVInfo -lLLVMXCoreDisassembler -lLLVMXCoreCodeGen \ -lLLVMXCoreDesc -lLLVMXCoreInfo -lLLVMX86Disassembler -lLLVMX86CodeGen -lLLVMX86AsmParser \ -lLLVMX86Desc -lLLVMX86Info -lLLVMWebAssemblyDisassembler \ -lLLVMWebAssemblyCodeGen -lLLVMWebAssemblyDesc -lLLVMWebAssemblyAsmParser \ --lLLVMWebAssemblyInfo -lLLVMSystemZDisassembler -lLLVMSystemZCodeGen \ +-lLLVMWebAssemblyUtils -lLLVMWebAssemblyInfo -lLLVMSystemZDisassembler -lLLVMSystemZCodeGen \ -lLLVMSystemZAsmParser -lLLVMSystemZDesc -lLLVMSystemZInfo -lLLVMSparcDisassembler \ -lLLVMSparcCodeGen -lLLVMSparcAsmParser -lLLVMSparcDesc -lLLVMSparcInfo \ -lLLVMPowerPCDisassembler -lLLVMPowerPCCodeGen -lLLVMPowerPCAsmParser -lLLVMPowerPCDesc \ @@ -136,7 +135,6 @@ handle_args () { assertion-mode) echo "OFF";; build-system) echo "cmake";; has-rtti) echo "$has_rtti";; - has-global-isel) echo "OFF";; shared-mode) echo "shared";; cmakedir) echo "$prefix/lib/cmake/llvm";; *) show_help >&2;; diff --git a/packages/libllvm/llvm.subpackage.sh b/packages/libllvm/llvm.subpackage.sh index dfb2d73dd..414065dc5 100644 --- a/packages/libllvm/llvm.subpackage.sh +++ b/packages/libllvm/llvm.subpackage.sh @@ -4,21 +4,19 @@ bin/dsymutil bin/llc bin/lli bin/llvm* -bin/obj2yaml bin/opt bin/sancov bin/sanstats bin/split-file bin/verify-uselistorder -bin/yaml2obj -share/opt-viewer +share/man/man1/bugpoint.1.gz +share/man/man1/dsymutil.1.gz share/man/man1/llc.1.gz share/man/man1/lli.1.gz share/man/man1/llvm* share/man/man1/opt.1.gz -share/man/man1/bugpoint.1.gz -share/man/man1/dsymutil.1.gz -share/man/man1/xxx-tblgen.1.gz +share/man/man1/*tblgen.1.gz +share/opt-viewer " TERMUX_SUBPKG_DESCRIPTION="LLVM modular compiler and toolchain executables" TERMUX_SUBPKG_BREAKS="libllvm (<< 11.0.0-1)"