From 9e342fd8cec636ebdd38db98d9e8e0b39a1c00c3 Mon Sep 17 00:00:00 2001 From: Martin Kinkelin Date: Sun, 29 Sep 2019 22:41:21 +0200 Subject: [PATCH] LDC: Upgrade to v1.18.0-beta2 --- packages/ldc/build.sh | 41 +++++----- packages/ldc/ldc-cmake-fix.patch | 70 ---------------- packages/ldc/ldc-druntime-fix.patch | 26 ------ packages/ldc/llvm-config.in | 121 ---------------------------- 4 files changed, 22 insertions(+), 236 deletions(-) delete mode 100644 packages/ldc/ldc-cmake-fix.patch delete mode 100644 packages/ldc/ldc-druntime-fix.patch delete mode 100644 packages/ldc/llvm-config.in diff --git a/packages/ldc/build.sh b/packages/ldc/build.sh index 61ea8f51d..5506e06d7 100644 --- a/packages/ldc/build.sh +++ b/packages/ldc/build.sh @@ -4,8 +4,8 @@ TERMUX_PKG_HOMEPAGE=https://github.com/ldc-developers/ldc TERMUX_PKG_DESCRIPTION="D programming language compiler, built with LLVM" TERMUX_PKG_LICENSE="BSD 3-Clause" TERMUX_PKG_VERSION=() -TERMUX_PKG_VERSION+=(1.18.0-beta1) -TERMUX_PKG_VERSION+=(8.0.1) # LLVM version +TERMUX_PKG_VERSION+=(1.18.0-beta2) +TERMUX_PKG_VERSION+=(9.0.0) # LLVM version TERMUX_PKG_VERSION+=(2.088.0) # TOOLS version TERMUX_PKG_VERSION+=(8ffc09ed6fb9625837161ffbbda2d926f490196c) # DUB version TERMUX_PKG_REVISION=5 @@ -15,11 +15,11 @@ TERMUX_PKG_SRCURL=(https://github.com/ldc-developers/ldc/releases/download/v${TE https://github.com/dlang/tools/archive/v${TERMUX_PKG_VERSION[2]}.tar.gz https://github.com/dlang/dub/archive/${TERMUX_PKG_VERSION[3]}.tar.gz https://github.com/ldc-developers/ldc/releases/download/v${TERMUX_PKG_VERSION}/ldc2-${TERMUX_PKG_VERSION}-linux-x86_64.tar.xz) -TERMUX_PKG_SHA256=(7bfa87a325f0c2202ec4dc6bd50ea56ebe30049ff06f6a630c63b6a33a9cafcc - af469483241e90366f910af32ca3a23e878ad8d2f29c0518811da19e1b6f4454 +TERMUX_PKG_SHA256=(e439dc40e534132756a8aafa9b1983de85868a6a1bf3e0e701a34b9d7747f0d5 + 0d8d5ebde82843f9b9829494a210c09315c6866c9f8b5df78be35d44943bb1f0 b21d4ab4750d671351f4307660b798a27922e7b0d8982ca5680918863a9970fe e11c4b171c0d26f4d85216aabb1e03d289a5551eda4e2c1bd7b70cf2ca57fd6a - d58524bdddacfe336371328a6888b4a9108e32c144aab2824de37ce9e9fbc6e4) + e42f3d0587ad5ae9e962dd27f99915a173867286481aacd9fc39cee2e528b2fe) TERMUX_PKG_DEPENDS="clang, libc++, zlib" TERMUX_PKG_NO_STATICSPLIT=true TERMUX_PKG_HOSTBUILD=true @@ -27,15 +27,17 @@ TERMUX_PKG_FORCE_CMAKE=true #These CMake args are only used to configure a patched LLVM TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" -DLLVM_ENABLE_PIC=ON +-DLLVM_ENABLE_PLUGINS=OFF -DLLVM_BUILD_TOOLS=OFF -DLLVM_BUILD_UTILS=OFF -DCOMPILER_RT_INCLUDE_TESTS=OFF +-DLLVM_INCLUDE_TESTS=OFF -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_ENABLE_LIBEDIT=OFF -DLLVM_TABLEGEN=$TERMUX_PKG_HOSTBUILD_DIR/bin/llvm-tblgen +-DLLVM_CONFIG_PATH=$TERMUX_PKG_HOSTBUILD_DIR/bin/llvm-config -DPYTHON_EXECUTABLE=$(which python3) --DLLVM_TARGETS_TO_BUILD='AArch64;ARM;X86' --DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly +-DLLVM_TARGETS_TO_BUILD='AArch64;ARM;WebAssembly;X86' -DCMAKE_INSTALL_PREFIX=$LLVM_INSTALL_DIR " @@ -52,13 +54,6 @@ termux_step_post_extract_package() { LLVM_TRIPLE=${TERMUX_HOST_PLATFORM/-/--} if [ $TERMUX_ARCH = arm ]; then LLVM_TRIPLE=${LLVM_TRIPLE/arm-/armv7a-}; fi - sed $TERMUX_PKG_BUILDER_DIR/llvm-config.in \ - -e "s|@LLVM_VERSION@|${TERMUX_PKG_VERSION[1]}|g" \ - -e "s|@LLVM_INSTALL_DIR@|$LLVM_INSTALL_DIR|g" \ - -e "s|@TERMUX_PKG_SRCDIR@|$TERMUX_PKG_SRCDIR|g" \ - -e "s|@LLVM_DEFAULT_TARGET_TRIPLE@|$LLVM_TRIPLE|g" \ - -e "s|@LLVM_TARGETS@|AArch64 ARM X86 WebAssembly|g" > $TERMUX_PKG_BUILDDIR/llvm-config - chmod 755 $TERMUX_PKG_BUILDDIR/llvm-config } termux_step_host_build() { @@ -70,7 +65,8 @@ termux_step_host_build() { -DCMAKE_BUILD_TYPE=Release \ -DLLVM_BUILD_TOOLS=OFF \ -DLLVM_BUILD_UTILS=OFF \ - -DCOMPILER_RT_INCLUDE_TESTS=OFF + -DCOMPILER_RT_INCLUDE_TESTS=OFF \ + -DLLVM_INCLUDE_TESTS=OFF ninja -j $TERMUX_MAKE_PROCESSES llvm-tblgen } @@ -116,16 +112,22 @@ termux_step_post_configure() { ninja -j $TERMUX_MAKE_PROCESSES install fi - # Replace non-native llvm-config executable with bash script, - # as it is going to be invoked during LDC CMake config. - mv ../llvm-config $LLVM_INSTALL_DIR/bin - # Invoke CMake for LDC: TERMUX_PKG_SRCDIR=$OLD_TERMUX_PKG_SRCDIR TERMUX_PKG_BUILDDIR=$OLD_TERMUX_PKG_BUILDDIR cd "$TERMUX_PKG_BUILDDIR" + # Replace non-native llvm-config executable with bash script, + # as it is going to be invoked during LDC CMake config. + sed $TERMUX_PKG_SRCDIR/.azure-pipelines/android-llvm-config.in \ + -e "s|@LLVM_VERSION@|${TERMUX_PKG_VERSION[1]}|g" \ + -e "s|@LLVM_INSTALL_DIR@|$LLVM_INSTALL_DIR|g" \ + -e "s|@TERMUX_PKG_SRCDIR@|$TERMUX_PKG_SRCDIR/llvm|g" \ + -e "s|@LLVM_DEFAULT_TARGET_TRIPLE@|$LLVM_TRIPLE|g" \ + -e "s|@LLVM_TARGETS@|AArch64 ARM X86 WebAssembly|g" > $LLVM_INSTALL_DIR/bin/llvm-config + chmod 755 $LLVM_INSTALL_DIR/bin/llvm-config + LDC_FLAGS="-mtriple=$LLVM_TRIPLE" if [ $TERMUX_ARCH = arm ]; then LDC_FLAGS="$LDC_FLAGS;-mcpu=cortex-a8"; fi @@ -135,6 +137,7 @@ termux_step_post_configure() { TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" -DLLVM_ROOT_DIR=$LLVM_INSTALL_DIR \ -DD_COMPILER=$DMD \ -DCMAKE_INSTALL_PREFIX=$TERMUX_PREFIX \ + -DLDC_WITH_LLD=OFF \ -DD_LINKER_ARGS='-fuse-ld=bfd;-Lldc-build-runtime.tmp/lib;-lphobos2-ldc;-ldruntime-ldc;-Wl,--gc-sections'" termux_step_configure_cmake diff --git a/packages/ldc/ldc-cmake-fix.patch b/packages/ldc/ldc-cmake-fix.patch deleted file mode 100644 index 9f6b8ba1b..000000000 --- a/packages/ldc/ldc-cmake-fix.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index a9cd81983..b7700a7d2 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -562,6 +562,16 @@ add_custom_target(${LDMD_EXE} ALL DEPENDS ${LDMD_EXE_FULL}) - # Figure out how to link the main LDC executable, for which we need to take the - # LLVM flags into account. - set(LDC_LINKERFLAG_LIST ${SANITIZE_LDFLAGS} ${LLVM_LIBRARIES} ${LLVM_LDFLAGS}) -+if(MSVC) -+ # Issue 1297 – set LDC's stack to 8 MiB like on Linux and Mac (default: 1 MiB). -+ list(APPEND LDC_LINKERFLAG_LIST "/STACK:8388608") -+ # VS 2017+: Use undocumented /NOOPTTLS MS linker switch to keep on emitting -+ # a .tls section. Required for older host druntime versions, otherwise the -+ # GC TLS ranges are garbage starting with VS 2017 Update 15.3. -+ if(MSVC_VERSION GREATER 1900) # VS 2017+ -+ list(APPEND LDC_LINKERFLAG_LIST "/NOOPTTLS") -+ endif() -+endif() - if(LDC_WITH_LLD) - # ELF, Mach-O, MinGW and WebAssembly formats supported since LLD 6.0.0, otherwise just Windows COFF - if(NOT (LDC_LLVM_VER LESS 600)) -@@ -615,9 +625,11 @@ if(UNIX AND (CMAKE_COMPILER_IS_GNUCXX OR (${CMAKE_CXX_COMPILER_ID} MATCHES "Clan - # we manually invoke the linker instead of using the D compiler to do so. - set(LDC_LINK_MANUALLY ON) - -- include(ExtractDMDSystemLinker) -- message(STATUS "Host D compiler linker program: ${D_LINKER_COMMAND}") -- message(STATUS "Host D compiler linker flags: ${D_LINKER_ARGS}") -+ if(NOT DEFINED D_LINKER_ARGS) -+ include(ExtractDMDSystemLinker) -+ message(STATUS "Host D compiler linker program: ${D_LINKER_COMMAND}") -+ message(STATUS "Host D compiler linker flags: ${D_LINKER_ARGS}") -+ endif() - list(APPEND LDC_LINKERFLAG_LIST ${D_LINKER_ARGS}) - - if(NOT "${CMAKE_EXE_LINKER_FLAGS}" STREQUAL "") -@@ -625,23 +637,11 @@ if(UNIX AND (CMAKE_COMPILER_IS_GNUCXX OR (${CMAKE_CXX_COMPILER_ID} MATCHES "Clan - list(APPEND LDC_LINKERFLAG_LIST ${flags}) - endif() - else() -- # Use D compiler for linking, trying to translate a few common linker flags. -+ # use D compiler for linking - set(LDC_TRANSLATED_LINKER_FLAGS "") - foreach(f ${LDC_LINKERFLAG_LIST}) -- string(REPLACE "-LIBPATH:" "/LIBPATH:" f ${f}) - list(APPEND LDC_TRANSLATED_LINKER_FLAGS "-L${f}") - endforeach() -- -- if(MSVC) -- # Issue 1297 – set LDC's stack to 8 MiB like on Linux and Mac (default: 1 MiB). -- list(APPEND LDC_TRANSLATED_LINKER_FLAGS "-L/STACK:8388608") -- # VS 2017+: Use undocumented /NOOPTTLS MS linker switch to keep on emitting -- # a .tls section. Required for older host druntime versions, otherwise the -- # GC TLS ranges are garbage starting with VS 2017 Update 15.3. -- if(MSVC_VERSION GREATER 1900) # VS 2017+ -- list(APPEND LDC_TRANSLATED_LINKER_FLAGS "-L/NOOPTTLS") -- endif() -- endif() - endif() - - # CONFIG generator expressions need to be repeated due to https://cmake.org/Bug/view.php?id=14353 -@@ -838,7 +838,7 @@ endif() - # - # Auxiliary build and test utils. - # --add_subdirectory(utils) -+#add_subdirectory(utils) - - # - # Auxiliary tools. diff --git a/packages/ldc/ldc-druntime-fix.patch b/packages/ldc/ldc-druntime-fix.patch deleted file mode 100644 index bb5a2450c..000000000 --- a/packages/ldc/ldc-druntime-fix.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/src/core/runtime.d b/src/core/runtime.d -index 03103daa..fd185816 100644 ---- a/src/core/runtime.d -+++ b/runtime/druntime/src/core/runtime.d -@@ -799,7 +799,8 @@ unittest - } - - /// Default implementation for POSIX systems --version (Posix) private class DefaultTraceInfo : Throwable.TraceInfo -+version (CRuntime_Bionic) { /* no backtrace[_symbols] */ } -+else version (Posix) private class DefaultTraceInfo : Throwable.TraceInfo - { - // backtrace - version (CRuntime_Glibc) -@@ -825,7 +826,10 @@ version (Posix) private class DefaultTraceInfo : Throwable.TraceInfo - { - version (LDC) - { -- numframes = backtrace( callstack.ptr, MAXFRAMES ); -+ static if ( __traits( compiles, backtrace ) ) -+ numframes = backtrace( callstack.ptr, MAXFRAMES ); -+ else -+ numframes = 0; - } - else - { diff --git a/packages/ldc/llvm-config.in b/packages/ldc/llvm-config.in deleted file mode 100644 index fc288760b..000000000 --- a/packages/ldc/llvm-config.in +++ /dev/null @@ -1,121 +0,0 @@ -#!/bin/bash -show_help () { -echo "usage: llvm-config