ldc: update to 1.5 release (#1731)
authorjoakim-noah <gh@joakim.fea.st>
Tue, 31 Oct 2017 18:10:15 +0000 (23:40 +0530)
committerFredrik Fornwall <fredrik@fornwall.net>
Tue, 31 Oct 2017 18:10:15 +0000 (19:10 +0100)
packages/ldc/build.sh
packages/ldc/ldc-config-stdlib.patch.beforehostbuild.in
packages/ldc/ldc-linker-flags.patch.in
packages/ldc/ldc-llvm-config.patch.in [deleted file]
packages/ldc/llvm-config.in [new file with mode: 0644]
packages/ldc/rdmd-tempDir.patch [deleted file]

index 7dfbc5e..fdf0f43 100644 (file)
@@ -1,9 +1,9 @@
 TERMUX_PKG_HOMEPAGE=https://github.com/ldc-developers/ldc
 TERMUX_PKG_DESCRIPTION="D programming language compiler, built with LLVM"
-_PKG_MAJOR_VERSION=1.4
+_PKG_MAJOR_VERSION=1.5
 TERMUX_PKG_VERSION=${_PKG_MAJOR_VERSION}.0
 TERMUX_PKG_SRCURL=https://github.com/ldc-developers/ldc/releases/download/v${TERMUX_PKG_VERSION}/ldc-${TERMUX_PKG_VERSION}-src.tar.gz
-TERMUX_PKG_SHA256=dd29a5833ae02307c387e87d861d5de588b9b16ea3574ef96f8da1f81bbd7c5c
+TERMUX_PKG_SHA256=03659a4b9cafff0cf8d537469dd15579f097c7748a342ea2a5770fa0edd3a084
 TERMUX_PKG_DEPENDS="clang"
 TERMUX_PKG_HOSTBUILD=true
 TERMUX_PKG_BLACKLISTED_ARCHES="aarch64,i686,x86_64"
@@ -21,25 +21,25 @@ TERMUX_PKG_NO_DEVELSPLIT=yes
 TERMUX_PKG_MAINTAINER="Joakim @joakim-noah"
 
 termux_step_post_extract_package () {
-       local LLVM_SRC_VERSION=4.0.1
+       local LLVM_SRC_VERSION=5.0.0-2
        termux_download \
                https://github.com/ldc-developers/llvm/releases/download/ldc-v${LLVM_SRC_VERSION}/llvm-${LLVM_SRC_VERSION}.src.tar.xz \
                $TERMUX_PKG_CACHEDIR/llvm-${LLVM_SRC_VERSION}.src.tar.xz \
-               53dee2054a4da0a292fc55830119ae167812cc0eed5cc670223adc5a8731f71b
+               7bb7621ecb05ad9a9a2165bae69c0548c179fdaf7e12e8458897c5e8bc1a6dae
 
        tar xf $TERMUX_PKG_CACHEDIR/llvm-${LLVM_SRC_VERSION}.src.tar.xz
        mv llvm-${LLVM_SRC_VERSION}.src llvm
 
-       DMD_COMPILER_VERSION=2.076.0
+       DMD_COMPILER_VERSION=2.076.1
        termux_download \
                http://downloads.dlang.org/releases/2.x/${DMD_COMPILER_VERSION}/dmd.${DMD_COMPILER_VERSION}.linux.tar.xz \
                $TERMUX_PKG_CACHEDIR/dmd.${DMD_COMPILER_VERSION}.linux.tar.xz \
-               3e3fc9fbdc61681edea837e9d095a341dda6c325ab4dbc437017239d576ba433
+               1d0b8fb6aadc80f6c5dfe7acf46fc17d2b3de24a0bf46e947352094bb21fef04
 
        termux_download \
                https://github.com/dlang/tools/archive/v${DMD_COMPILER_VERSION}.tar.gz \
                $TERMUX_PKG_CACHEDIR/tools-v${DMD_COMPILER_VERSION}.tar.gz \
-               5f58dc6492e1abb539291a5fbf2bfb06eed818bd158912f090b55cd712c2a34a
+               cf42d4e5f9ceb5acfb5bd3000dd9c1ed7120b136f252b33b07fb026f36970e77
 
        tar xf $TERMUX_PKG_CACHEDIR/tools-v${DMD_COMPILER_VERSION}.tar.gz
        mv tools-${DMD_COMPILER_VERSION} rdmd
@@ -56,33 +56,42 @@ termux_step_post_extract_package () {
        sed "s#\@TERMUX_C_COMPILER\@#$TERMUX_STANDALONE_TOOLCHAIN/bin/$TERMUX_HOST_PLATFORM-clang#" \
                $TERMUX_PKG_BUILDER_DIR/ldc-config-stdlib.patch.beforehostbuild.in > \
                $TERMUX_PKG_BUILDER_DIR/ldc-config-stdlib.patch.beforehostbuild
-       sed -i "s#\@TERMUX_C_FLAGS\@#-march=armv7-a -mfpu=neon -mfloat-abi=softfp -mthumb -Oz -I$TERMUX_PREFIX/include#" \
-               $TERMUX_PKG_BUILDER_DIR/ldc-config-stdlib.patch.beforehostbuild
+
        sed "s#\@TERMUX_PKG_HOSTBUILD\@#$TERMUX_PKG_HOSTBUILD_DIR#" $TERMUX_PKG_BUILDER_DIR/ldc-linker-flags.patch.in > \
                $TERMUX_PKG_BUILDER_DIR/ldc-linker-flags.patch
-       sed "s#\@TERMUX_PKG_BUILD\@#$TERMUX_PKG_BUILDDIR#" $TERMUX_PKG_BUILDER_DIR/ldc-llvm-config.patch.in > \
-               $TERMUX_PKG_BUILDER_DIR/ldc-llvm-config.patch
-       sed -i "s#\@TERMUX_PKG_SRC\@#$TERMUX_PKG_SRCDIR#" $TERMUX_PKG_BUILDER_DIR/ldc-llvm-config.patch
+
+       sed $TERMUX_PKG_BUILDER_DIR/llvm-config.in \
+               -e "s|@LLVM_VERSION@|$LLVM_SRC_VERSION|g" \
+               -e "s|@LLVM_BUILD_DIR@|$TERMUX_PKG_BUILDDIR/llvm|g" \
+               -e "s|@TERMUX_PKG_SRCDIR@|$TERMUX_PKG_SRCDIR|g" \
+               -e "s|@LLVM_TARGETS@|ARM AArch64 X86|g" \
+               -e "s|@LLVM_DEFAULT_TARGET_TRIPLE@|armv7-none-linux-android|g" \
+               -e "s|@TERMUX_ARCH@|$TERMUX_ARCH|g" > $TERMUX_PKG_BUILDDIR/llvm-config
+       chmod 755 $TERMUX_PKG_BUILDDIR/llvm-config
 }
 
 termux_step_host_build () {
        tar xf $TERMUX_PKG_CACHEDIR/dmd.${DMD_COMPILER_VERSION}.linux.tar.xz
 
        termux_setup_cmake
-       cmake -G "Unix Makefiles" $TERMUX_PKG_SRCDIR/llvm \
+       termux_setup_ninja
+       cmake -GNinja $TERMUX_PKG_SRCDIR/llvm \
                -DCMAKE_BUILD_TYPE=Release \
                -DLLVM_TARGETS_TO_BUILD=ARM \
                -DLLVM_DEFAULT_TARGET_TRIPLE=armv7-none-linux-android \
                -DLLVM_BUILD_TOOLS=OFF \
                -DLLVM_BUILD_UTILS=OFF
-       make -j $TERMUX_MAKE_PROCESSES all llvm-config
+       ninja -j $TERMUX_MAKE_PROCESSES all llvm-config
 
        mkdir ldc-bootstrap
        cd ldc-bootstrap
        export DMD="$TERMUX_PKG_HOSTBUILD_DIR/dmd2/linux/bin64/dmd"
-       cmake -G "Unix Makefiles" $TERMUX_PKG_SRCDIR \
+
+       cmake -GNinja $TERMUX_PKG_SRCDIR \
+               -DD_FLAGS="-w;-mcpu=cortex-a8" \
+               -DRT_CFLAGS="-march=armv7-a -mfpu=neon -mfloat-abi=softfp -mthumb -Oz -I$TERMUX_PREFIX/include" \
                -DLLVM_CONFIG="$TERMUX_PKG_HOSTBUILD_DIR/bin/llvm-config"
-       make -j $TERMUX_MAKE_PROCESSES druntime-ldc phobos2-ldc \
+       ninja -j $TERMUX_MAKE_PROCESSES druntime-ldc phobos2-ldc \
                druntime-ldc-debug phobos2-ldc-debug ldmd2
        cd ..
 }
@@ -90,7 +99,6 @@ termux_step_host_build () {
 termux_step_pre_configure () {
        rm $TERMUX_PKG_BUILDER_DIR/ldc-config-stdlib.patch.beforehostbuild
        rm $TERMUX_PKG_BUILDER_DIR/ldc-linker-flags.patch
-       rm $TERMUX_PKG_BUILDER_DIR/ldc-llvm-config.patch
 
        TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" -DLLVM_DEFAULT_TARGET_TRIPLE=armv7a-linux-androideabi"
        TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" -DLLVM_TARGET_ARCH=ARM -DLLVM_TARGETS_TO_BUILD=AArch64;ARM;X86"
@@ -112,7 +120,8 @@ termux_step_post_configure () {
        TERMUX_PKG_BUILDDIR=$OLD_TERMUX_PKG_BUILDDIR
        cd "$TERMUX_PKG_BUILDDIR"
 
-       TERMUX_PKG_EXTRA_CONFIGURE_ARGS=""
+       mv llvm-config llvm/bin
+       TERMUX_PKG_EXTRA_CONFIGURE_ARGS="-DLLVM_CONFIG=$TERMUX_PKG_BUILDDIR/llvm/bin/llvm-config"
        export DMD="$TERMUX_PKG_HOSTBUILD_DIR/ldc-bootstrap/bin/ldmd2"
 
        termux_step_configure_cmake
@@ -133,7 +142,7 @@ termux_step_make () {
        fi
 
        # Build the rdmd scripting wrapper and the dub package manager
-       D_FLAGS="-w -dw -O -inline -release"
+       D_FLAGS="-w -de -O -inline -release -mcpu=cortex-a8"
        $DMD $D_FLAGS -c $TERMUX_PKG_SRCDIR/rdmd/rdmd.d -of=$TERMUX_PKG_BUILDDIR/bin/rdmd.o
        D_LDFLAGS="-fuse-ld=bfd -L${TERMUX_PKG_HOSTBUILD_DIR}/ldc-bootstrap/lib -lphobos2-ldc -ldruntime-ldc -Wl,--gc-sections -ldl -lm -Wl,--fix-cortex-a8 -fPIE -pie -Wl,-z,nocopyreloc ${LDFLAGS}"
        $CC $TERMUX_PKG_BUILDDIR/bin/rdmd.o $D_LDFLAGS -o $TERMUX_PKG_BUILDDIR/bin/rdmd
index b7e9d88..c00389e 100644 (file)
@@ -2,20 +2,11 @@ diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt
 index 32795da6..091d344b 100644
 --- a/runtime/CMakeLists.txt
 +++ b/runtime/CMakeLists.txt
-@@ -78,6 +78,7 @@ file(GLOB_RECURSE DRUNTIME_D_GCSTUB ${RUNTIME_DIR}/src/gcstub/*.d)
- list(REMOVE_ITEM DRUNTIME_D ${DRUNTIME_D_GCSTUB})
- # remove some modules in rt/
- list(REMOVE_ITEM DRUNTIME_D
-+    ${RUNTIME_DIR}/src/core/stdc/tgmath.d
-     ${RUNTIME_DIR}/src/rt/alloca.d
-     ${RUNTIME_DIR}/src/rt/deh.d
-     ${RUNTIME_DIR}/src/rt/deh_win32.d
-@@ -551,6 +551,10 @@ include(profile-rt/DefineBuildProfileRT.cmake)
+@@ -551,6 +551,9 @@ include(profile-rt/DefineBuildProfileRT.cmake)
  #
  # Set up build and install targets
  #
 +
-+set(RT_CFLAGS "@TERMUX_C_FLAGS@")
 +set(CMAKE_C_COMPILER @TERMUX_C_COMPILER@)
 +set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
  
index 1388209..21941a6 100644 (file)
@@ -8,7 +8,7 @@ index 336bbdbc..4b9e8c88 100644
  
 -    include(ExtractDMDSystemLinker)
 +    #include(ExtractDMDSystemLinker)
-+    set(D_LINKER_ARGS "-fuse-ld=bfd;-L@TERMUX_PKG_HOSTBUILD@/ldc-bootstrap/lib;-lphobos2-ldc;-ldruntime-ldc;-Wl,--gc-sections;-ldl;-lm")
++    set(D_LINKER_ARGS "-fuse-ld=bfd;-L@TERMUX_PKG_HOSTBUILD@/ldc-bootstrap/lib;-lphobos2-ldc;-ldruntime-ldc;-Wl,--gc-sections")
      message(STATUS "Host D compiler linker program: ${D_LINKER_COMMAND}")
      message(STATUS "Host D compiler linker flags: ${D_LINKER_ARGS}")
      list(APPEND LDC_LINKERFLAG_LIST ${D_LINKER_ARGS})
diff --git a/packages/ldc/ldc-llvm-config.patch.in b/packages/ldc/ldc-llvm-config.patch.in
deleted file mode 100644 (file)
index 691653f..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-diff --git a/cmake/Modules/FindLLVM.cmake b/cmake/Modules/FindLLVM.cmake
-index a6a0b0b7..06d6c1c1 100644
---- a/cmake/Modules/FindLLVM.cmake
-+++ b/cmake/Modules/FindLLVM.cmake
-@@ -35,11 +35,12 @@ set(llvm_config_names llvm-config-5.0 llvm-config50
-                       llvm-config-3.8 llvm-config38
-                       llvm-config-3.7 llvm-config37
-                       llvm-config)
--find_program(LLVM_CONFIG
--    NAMES ${llvm_config_names}
--    PATHS ${LLVM_ROOT_DIR}/bin NO_DEFAULT_PATH
--    DOC "Path to llvm-config tool.")
--find_program(LLVM_CONFIG NAMES ${llvm_config_names})
-+set(LLVM_CONFIG "/bin/ls")
-+#find_program(LLVM_CONFIG
-+#    NAMES ${llvm_config_names}
-+#    PATHS ${LLVM_ROOT_DIR}/bin NO_DEFAULT_PATH
-+#    DOC "Path to llvm-config tool.")
-+#find_program(LLVM_CONFIG NAMES ${llvm_config_names})
- # Prints a warning/failure message depending on the required/quiet flags. Copied
- # from FindPackageHandleStandardArgs.cmake because it doesn't seem to be exposed.
-@@ -175,12 +176,12 @@ else()
-         endif()
-     endmacro()
--    llvm_set(VERSION_STRING version)
--    llvm_set(CXXFLAGS cxxflags)
--    llvm_set(HOST_TARGET host-target)
--    llvm_set(INCLUDE_DIRS includedir true)
--    llvm_set(ROOT_DIR prefix true)
--    llvm_set(ENABLE_ASSERTIONS assertion-mode)
-+    set(LLVM_VERSION_STRING "4.0.1")
-+    set(LLVM_CXXFLAGS "-I@TERMUX_PKG_SRC@/llvm/include -I@TERMUX_PKG_BUILD@/llvm/include  -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -Werror=date-time -std=c++11 -ffunction-sections -fdata-sections -O3 -DNDEBUG  -fno-exceptions -fno-rtti -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS")
-+    set(LLVM_HOST_TARGET "armv7-none-linux-android")
-+    set(LLVM_INCLUDE_DIRS "@TERMUX_PKG_SRC@/llvm/include")
-+    set(LLVM_ROOT_DIR "@TERMUX_PKG_BUILD@/llvm")
-+    set(LLVM_ENABLE_ASSERTIONS "OFF")
-     if(${LLVM_VERSION_STRING} MATCHES "^3\\.[0-8][\\.0-9A-Za-z]*")
-         # Versions below 3.9 do not support components debuginfocodeview, globalisel
-@@ -207,13 +208,13 @@ else()
-         list(REMOVE_ITEM LLVM_FIND_COMPONENTS "debuginfomsf" index)
-     endif()
--    llvm_set(LDFLAGS ldflags)
-+    set(LLVM_LIBRARY_DIRS "${LLVM_ROOT_DIR}/lib")
-+    set(LLVM_LDFLAGS "-L${LLVM_LIBRARY_DIRS}")
-     # In LLVM 3.5+, the system library dependencies (e.g. "-lz") are accessed
-     # using the separate "--system-libs" flag.
--    llvm_set(SYSTEM_LIBS system-libs)
-+    set(LLVM_SYSTEM_LIBS "-ldl -lncurses -lz -lm")
-     string(REPLACE "\n" " " LLVM_LDFLAGS "${LLVM_LDFLAGS} ${LLVM_SYSTEM_LIBS}")
--    llvm_set(LIBRARY_DIRS libdir true)
--    llvm_set_libs(LIBRARIES libs)
-+    set(LLVM_LIBRARIES "-lLLVMTableGen;-lLLVMLibDriver;-lLLVMOption;-lLLVMSymbolize;-lLLVMDebugInfoPDB;-lLLVMDebugInfoDWARF;-lLLVMAArch64Disassembler;-lLLVMAArch64CodeGen;-lLLVMAArch64AsmParser;-lLLVMAArch64Desc;-lLLVMAArch64Info;-lLLVMAArch64AsmPrinter;-lLLVMAArch64Utils;-lLLVMARMDisassembler;-lLLVMARMCodeGen;-lLLVMARMAsmParser;-lLLVMARMDesc;-lLLVMARMInfo;-lLLVMARMAsmPrinter;-lLLVMLineEditor;-lLLVMMIRParser;-lLLVMLTO;-lLLVMPasses;-lLLVMObjCARCOpts;-lLLVMOrcJIT;-lLLVMInterpreter;-lLLVMObjectYAML;-lLLVMX86Disassembler;-lLLVMX86AsmParser;-lLLVMX86CodeGen;-lLLVMGlobalISel;-lLLVMSelectionDAG;-lLLVMAsmPrinter;-lLLVMDebugInfoCodeView;-lLLVMDebugInfoMSF;-lLLVMCodeGen;-lLLVMX86Desc;-lLLVMMCDisassembler;-lLLVMX86Info;-lLLVMX86AsmPrinter;-lLLVMX86Utils;-lLLVMMCJIT;-lLLVMExecutionEngine;-lLLVMTarget;-lLLVMRuntimeDyld;-lgtest_main;-lgtest;-lLLVMCoroutines;-lLLVMipo;-lLLVMInstrumentation;-lLLVMVectorize;-lLLVMScalarOpts;-lLLVMLinker;-lLLVMIRReader;-lLLVMAsmParser;-lLLVMInstCombine;-lLLVMTransformUtils;-lLLVMBitWriter;-lLLVMAnalysis;-lLLVMCoverage;-lLLVMProfileData;-lLLVMObject;-lLLVMMCParser;-lLLVMMC;-lLLVMBitReader;-lLLVMCore;-lLLVMSupport;-lLLVMDemangle")
-     # LLVM bug: llvm-config --libs tablegen returns -lLLVM-3.8.0
-     # but code for it is not in shared library
-     if("${LLVM_FIND_COMPONENTS}" MATCHES "tablegen")
-@@ -223,7 +224,7 @@ else()
-             set(LLVM_LIBRARIES "${LLVM_LIBRARIES};-lLLVMTableGen")
-         endif()
-     endif()
--    llvm_set(TARGETS_TO_BUILD targets-built)
-+    set(LLVM_TARGETS_TO_BUILD "AArch64 ARM X86")
-     string(REGEX MATCHALL "${pattern}[^ ]+" LLVM_TARGETS_TO_BUILD ${LLVM_TARGETS_TO_BUILD})
- endif()
diff --git a/packages/ldc/llvm-config.in b/packages/ldc/llvm-config.in
new file mode 100644 (file)
index 0000000..6fbce41
--- /dev/null
@@ -0,0 +1,106 @@
+#!/bin/sh
+show_help () {
+echo "usage: llvm-config <OPTION>... [<COMPONENT>...]
+
+Get various configuration information needed to compile programs which use
+LLVM.  Typically called from 'configure' scripts.  Examples:
+  llvm-config --cxxflags
+  llvm-config --ldflags
+  llvm-config --libs engine bcreader scalaropts
+
+Options:
+  --version         Print LLVM version.
+  --prefix          Print the installation prefix.
+  --src-root        Print the source root LLVM was built from.
+  --obj-root        Print the object root used to build LLVM.
+  --bindir          Directory containing LLVM executables.
+  --includedir      Directory containing LLVM headers.
+  --libdir          Directory containing LLVM libraries.
+  --cppflags        C preprocessor flags for files that include LLVM headers.
+  --cflags          C compiler flags for files that include LLVM headers.
+  --cxxflags        C++ compiler flags for files that include LLVM headers.
+  --ldflags         Print Linker flags.
+  --system-libs     System Libraries needed to link against LLVM components.
+  --libs            Libraries needed to link against LLVM components.
+  --libnames        Bare library names for in-tree builds.
+  --libfiles        Fully qualified library filenames for makefile depends.
+  --components      List of all possible components.
+  --targets-built   List of all targets currently built.
+  --host-target     Target triple used to configure LLVM.
+  --build-mode      Print build mode of LLVM tree (e.g. Debug or Release).
+  --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.                                                                                                                                 
+Typical components:                                                                                                                                                                          
+  all               All LLVM libraries (default).                                                                                                                                            
+  engine            Either a native JIT or a bitcode interpreter."
+}
+
+arch=@TERMUX_ARCH@
+version=@LLVM_VERSION@
+prefix=@LLVM_BUILD_DIR@
+has_rtti=NO
+CPPFLAGS="-I@TERMUX_PKG_SRCDIR@/llvm/include -I${prefix}/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS"
+CFLAGS="${CPPFLAGS} -Os -fPIC -Wall -W -Wno-unused-parameter -Wwrite-strings -Wmissing-field-initializers"
+CFLAGS="${CFLAGS} -pedantic -Wno-long-long -Wdelete-non-virtual-dtor -Werror=date-time -ffunction-sections"
+CFLAGS="${CFLAGS} -fdata-sections -DNDEBUG"
+CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden -Wcast-qual -Wnon-virtual-dtor -std=c++11 -fno-exceptions"
+if [ "$has_rtti" != "YES" ]; then CXXFLAGS="$CXXFLAGS -fno-rtti"; fi
+LDFLAGS="-L${prefix}/lib"
+LIBFILE="${prefix}/lib/libLLVM-$version.so"
+LLVM_LIBRARIES="-lLLVMTableGen -lLLVMLibDriver -lLLVMOption -lLLVMSymbolize -lLLVMDebugInfoPDB -lLLVMDebugInfoDWARF -lLLVMTestingSupport -lLLVMAArch64Disassembler -lLLVMAArch64CodeGen -lLLVMAArch64AsmParser -lLLVMAArch64Desc -lLLVMAArch64Info -lLLVMAArch64AsmPrinter -lLLVMAArch64Utils -lLLVMARMDisassembler -lLLVMARMCodeGen -lLLVMARMAsmParser -lLLVMARMDesc -lLLVMARMInfo -lLLVMARMAsmPrinter -lLLVMLineEditor -lLLVMMIRParser -lLLVMLTO -lLLVMPasses -lLLVMObjCARCOpts -lLLVMOrcJIT -lLLVMInterpreter -lLLVMObjectYAML -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMDebugInfoCodeView -lLLVMDebugInfoMSF -lLLVMCodeGen -lLLVMX86Desc -lLLVMMCDisassembler -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMMCJIT -lLLVMExecutionEngine -lLLVMTarget -lLLVMRuntimeDyld -lgtest_main -lgtest -lLLVMCoroutines -lLLVMipo -lLLVMInstrumentation -lLLVMVectorize -lLLVMScalarOpts -lLLVMLinker -lLLVMIRReader -lLLVMAsmParser -lLLVMDlltoolDriver -lLLVMInstCombine -lLLVMTransformUtils -lLLVMBitWriter -lLLVMAnalysis -lLLVMCoverage -lLLVMProfileData -lLLVMObject -lLLVMMCParser -lLLVMMC -lLLVMBitReader -lLLVMCore -lLLVMBinaryFormat -lLLVMSupport -lLLVMDemangle"
+
+show_components () {
+if [ "$arch" == "x86_64" -o "$arch" == "i686" ]; then arch="x86"; fi
+components="all all-targets analysis $arch ${arch}asmparser ${arch}asmprinter ${arch}codegen ${arch}desc"
+components="$components ${arch}disassembler ${arch}info asmparser asmprinter bitreader bitwriter codegen"
+components="$components core coroutines coverage debuginfocodeview debuginfodwarf debuginfomsf debuginfopdb"
+components="$components demangle engine executionengine globalisel instcombine instrumentation interpreter"
+components="$components ipo irreader libdriver lineeditor linker lto mc mcdisassembler mcjit mcparser"
+components="$components mirparser native nativecodegen objcarcopts object objectyaml option orcjit passes"
+components="$components profiledata runtimedyld scalaropts selectiondag support symbolize tablegen target"
+components="$components transformutils vectorize"
+if [ "$arch" != "arm" ]; then components="$components ${arch}utils"; fi
+echo "$components"
+}
+
+handle_args () {
+       case "${1##--}" in
+               version) echo "$version";;
+               prefix) echo "$prefix";;
+               src-root) echo "@TERMUX_PKG_SRCDIR@";;
+               obj-root) echo "$prefix";;
+               bindir) echo "$prefix/bin";;
+               includedir) echo "@TERMUX_PKG_SRCDIR@/llvm/include";;
+               libdir) echo "$prefix/lib";;
+               cppflags) echo "$CPPFLAGS";;
+               cflags) echo "$CFLAGS";;
+               cxxflags) echo "$CXXFLAGS";;
+               ldflags) echo "$LDFLAGS";;
+               system-libs) echo "-lc -ldl -lncurses -lz -lm";;
+               libs) echo "$LLVM_LIBRARIES";;
+               libnames) echo "libLLVM-$version.so";;
+               libfiles) echo "$LIBFILE";;
+               components) show_components;;
+               targets-built) echo "@LLVM_TARGETS@";;
+               host-target) echo "@LLVM_DEFAULT_TARGET_TRIPLE@";;
+               build-mode) echo "Release";;
+               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";;
+               # don't know what these do
+               link-shared) ;;
+               link-static) ;;
+               *) show_help >&2;;
+       esac
+}
+
+for arg in $@; do handle_args $arg; done
+
diff --git a/packages/ldc/rdmd-tempDir.patch b/packages/ldc/rdmd-tempDir.patch
deleted file mode 100644 (file)
index a786c1d..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-diff --git a/rdmd/rdmd.d b/rdmd/rdmd.d
-index 06f46d7..af22c35 100755
---- a/rdmd/rdmd.d
-+++ b/rdmd/rdmd.d
-@@ -386,7 +386,13 @@ bool inALibrary(string source, string object)
- private @property string myOwnTmpDir()
- {
--    auto tmpRoot = userTempDir ? userTempDir : tempDir();
-+    import std.file : empty, exists;
-+    import std.process : environment;
-+
-+    string shellTemp = environment.get("TMPDIR");
-+    string defaultTemp = !shellTemp.empty && shellTemp.exists ? shellTemp
-+                                                              : tempDir();
-+    auto tmpRoot = userTempDir ? userTempDir : defaultTemp;
-     version (Posix)
-     {
-         import core.sys.posix.unistd;