ldc: Enable the package, switch to lightly tweaked llvm from ldc repo, add more targe...
authorJoakim <git@joakim.fea.st>
Fri, 25 Aug 2017 08:54:10 +0000 (08:54 +0000)
committerFredrik Fornwall <fredrik@fornwall.net>
Tue, 29 Aug 2017 19:15:08 +0000 (21:15 +0200)
disabled-packages/ldc/llvm-android_tls.patch.beforehostbuild [deleted file]
packages/ldc/build.sh [moved from disabled-packages/ldc/build.sh with 94% similarity]
packages/ldc/ldc-config-stdlib.patch.beforehostbuild.in [moved from disabled-packages/ldc/ldc-config-stdlib.patch.beforehostbuild.in with 100% similarity]
packages/ldc/ldc-disable-idgen.patch [moved from disabled-packages/ldc/ldc-disable-idgen.patch with 100% similarity]
packages/ldc/ldc-linker-flags.patch.in [moved from disabled-packages/ldc/ldc-linker-flags.patch.in with 100% similarity]
packages/ldc/ldc-llvm-config.patch.in [moved from disabled-packages/ldc/ldc-llvm-config.patch.in with 73% similarity]
packages/ldc/ldc-phobos.patch.beforehostbuild [moved from disabled-packages/ldc/ldc-phobos.patch.beforehostbuild with 100% similarity]
packages/ldc/ldc-readme.patch [moved from disabled-packages/ldc/ldc-readme.patch with 93% similarity]
packages/ldc/ldc-tools-utils-bugs.patch [moved from disabled-packages/ldc/ldc-tools-utils-bugs.patch with 100% similarity]

diff --git a/disabled-packages/ldc/llvm-android_tls.patch.beforehostbuild b/disabled-packages/ldc/llvm-android_tls.patch.beforehostbuild
deleted file mode 100644 (file)
index 9d31e8c..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-diff --git a/lib/CodeGen/TargetLoweringObjectFileImpl.cpp b/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
-index 9f1e06b..cc6fb08 100644
---- a/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
-+++ b/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
-@@ -139,6 +139,7 @@
-     return SectionKind::getThreadData();
-   if (Name == ".tbss" ||
-+      Name == ".tcommon" ||
-       Name.startswith(".tbss.") ||
-       Name.startswith(".gnu.linkonce.tb.") ||
-       Name.startswith(".llvm.linkonce.tb."))
-@@ -176,8 +176,8 @@ getELFSectionFlags(SectionKind K) {
-   if (K.isWriteable())
-     Flags |= ELF::SHF_WRITE;
--  if (K.isThreadLocal())
--    Flags |= ELF::SHF_TLS;
-+  //if (K.isThreadLocal())
-+    //Flags |= ELF::SHF_TLS;
-   if (K.isMergeableCString() || K.isMergeableConst())
-     Flags |= ELF::SHF_MERGE;
-diff --git a/lib/MC/MCELFStreamer.cpp b/lib/MC/MCELFStreamer.cpp
-index bdc4a84..14537be 100644
---- a/lib/MC/MCELFStreamer.cpp
-+++ b/llvm/lib/MC/MCELFStreamer.cpp
-@@ -397,7 +397,7 @@ void MCELFStreamer::fixSymbolsInTLSFixups(const MCExpr *expr) {
-       break;
-     }
-     getAssembler().registerSymbol(symRef.getSymbol());
--    cast<MCSymbolELF>(symRef.getSymbol()).setType(ELF::STT_TLS);
-+    //cast<MCSymbolELF>(symRef.getSymbol()).setType(ELF::STT_TLS);
-     break;
-   }
-diff --git a/lib/MC/MCObjectFileInfo.cpp b/lib/MC/MCObjectFileInfo.cpp
-index 8015ebb..0a2639f 100644
---- a/lib/MC/MCObjectFileInfo.cpp
-+++ b/llvm/lib/MC/MCObjectFileInfo.cpp
-@@ -448,10 +448,10 @@
-   TLSDataSection =
-       Ctx->getELFSection(".tdata", ELF::SHT_PROGBITS,
--                         ELF::SHF_ALLOC | ELF::SHF_TLS | ELF::SHF_WRITE);
-+                         ELF::SHF_ALLOC | /*ELF::SHF_TLS |*/ ELF::SHF_WRITE);
-   TLSBSSSection = Ctx->getELFSection(
--      ".tbss", ELF::SHT_NOBITS, ELF::SHF_ALLOC | ELF::SHF_TLS | ELF::SHF_WRITE);
-+      ".tbss", ELF::SHT_NOBITS, ELF::SHF_ALLOC | /*ELF::SHF_TLS |*/ ELF::SHF_WRITE);
-   DataRelROSection = Ctx->getELFSection(".data.rel.ro", ELF::SHT_PROGBITS,
-                                         ELF::SHF_ALLOC | ELF::SHF_WRITE);
-diff --git a/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp b/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
-index a821a6b..d169ab1 100644
---- a/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
-+++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp
-@@ -174,7 +174,7 @@ unsigned ARMELFObjectWriter::GetRelocTypeInner(const MCValue &Target,
-         Type = ELF::R_ARM_GOT_BREL;
-         break;
-       case MCSymbolRefExpr::VK_TLSGD:
--        Type = ELF::R_ARM_TLS_GD32;
-+        Type = ELF::R_ARM_GOT_PREL;
-         break;
-       case MCSymbolRefExpr::VK_TPOFF:
-         Type = ELF::R_ARM_TLS_LE32;
-diff --git a/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp b/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
-index e8b0b4c..fcb9954 100644
---- a/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
-+++ b/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
-@@ -211,7 +211,7 @@
-   case MCSymbolRefExpr::VK_TLSGD:
-     assert(Type == RT32_32);
-     assert(!IsPCRel);
--    return ELF::R_386_TLS_GD;
-+    return ELF::R_386_GOT32;
-   case MCSymbolRefExpr::VK_GOTTPOFF:
-     assert(Type == RT32_32);
-     assert(!IsPCRel);
similarity index 94%
rename from disabled-packages/ldc/build.sh
rename to packages/ldc/build.sh
index 562b139..9a09752 100644 (file)
@@ -21,18 +21,18 @@ TERMUX_PKG_MAINTAINER="Joakim @joakim-noah"
 termux_step_post_extract_package () {
        local LLVM_SRC_VERSION=4.0.1
        termux_download \
-               http://llvm.org/releases/${LLVM_SRC_VERSION}/llvm-${LLVM_SRC_VERSION}.src.tar.xz \
+               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 \
-               da783db1f82d516791179fe103c71706046561f7972b18f0049242dee6712b51
+               53dee2054a4da0a292fc55830119ae167812cc0eed5cc670223adc5a8731f71b
 
        tar xf $TERMUX_PKG_CACHEDIR/llvm-${LLVM_SRC_VERSION}.src.tar.xz
        mv llvm-${LLVM_SRC_VERSION}.src llvm
 
-       DMD_COMPILER_VERSION=2.074.1
+       DMD_COMPILER_VERSION=2.075.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 \
-               e48783bd91d77bfdcd702bd268c5ac5d322975dd4b3ad68831babd74509d2ce9
+               6531c098020cf321b5e71c420a10db729566006b72e0af873b15b506a1583c57
 
        sed "s#\@TERMUX_C_COMPILER\@#$TERMUX_STANDALONE_TOOLCHAIN/bin/$TERMUX_HOST_PLATFORM-clang#" \
                $TERMUX_PKG_BUILDER_DIR/ldc-config-stdlib.patch.beforehostbuild.in > \
@@ -74,7 +74,7 @@ termux_step_pre_configure () {
        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=ARM"
+       TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" -DLLVM_TARGET_ARCH=ARM -DLLVM_TARGETS_TO_BUILD=AArch64;ARM;X86"
 
        # CPPFLAGS adds the system llvm to the include path, which causes
        # conflicts with the local patched llvm when compiling ldc
similarity index 73%
rename from disabled-packages/ldc/ldc-llvm-config.patch.in
rename to packages/ldc/ldc-llvm-config.patch.in
index 0bb1dba..a61378c 100644 (file)
@@ -55,7 +55,7 @@ index a6a0b0b7..06d6c1c1 100644
      endif()
 -    llvm_set(LIBRARY_DIRS libdir true)
 -    llvm_set_libs(LIBRARIES libs)
-+    set(LLVM_LIBRARIES "-lLLVMTableGen;-lLLVMObjectYAML;-lLLVMOrcJIT;-lLLVMLineEditor;-lLLVMARMDisassembler;-lLLVMARMCodeGen;-lLLVMGlobalISel;-lLLVMSelectionDAG;-lLLVMAsmPrinter;-lLLVMARMAsmParser;-lLLVMARMDesc;-lLLVMMCDisassembler;-lLLVMARMInfo;-lLLVMARMAsmPrinter;-lLLVMMCJIT;-lLLVMLibDriver;-lLLVMOption;-lLLVMLTO;-lLLVMPasses;-lLLVMObjCARCOpts;-lLLVMMIRParser;-lLLVMSymbolize;-lLLVMDebugInfoPDB;-lLLVMDebugInfoCodeView;-lLLVMDebugInfoMSF;-lLLVMDebugInfoDWARF;-lgtest_main;-lgtest;-lLLVMCoroutines;-lLLVMipo;-lLLVMInstrumentation;-lLLVMVectorize;-lLLVMLinker;-lLLVMIRReader;-lLLVMAsmParser;-lLLVMInterpreter;-lLLVMExecutionEngine;-lLLVMRuntimeDyld;-lLLVMCodeGen;-lLLVMTarget;-lLLVMScalarOpts;-lLLVMInstCombine;-lLLVMTransformUtils;-lLLVMBitWriter;-lLLVMAnalysis;-lLLVMCoverage;-lLLVMProfileData;-lLLVMObject;-lLLVMMCParser;-lLLVMMC;-lLLVMBitReader;-lLLVMCore;-lLLVMSupport;-lLLVMDemangle")
++    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")
@@ -64,7 +64,7 @@ index a6a0b0b7..06d6c1c1 100644
          endif()
      endif()
 -    llvm_set(TARGETS_TO_BUILD targets-built)
-+    set(LLVM_TARGETS_TO_BUILD "ARM")
++    set(LLVM_TARGETS_TO_BUILD "AArch64 ARM X86")
      string(REGEX MATCHALL "${pattern}[^ ]+" LLVM_TARGETS_TO_BUILD ${LLVM_TARGETS_TO_BUILD})
  endif()
  
similarity index 93%
rename from disabled-packages/ldc/ldc-readme.patch
rename to packages/ldc/ldc-readme.patch
index 46c8478..75fc381 100644 (file)
@@ -18,7 +18,7 @@ index 00000000..cd578cb7
 +You can find instructions on building Android apps at the
 +D wiki:
 +
-+http://wiki.dlang.org/Build_LDC_for_Android
++http://wiki.dlang.org/Build_D_for_Android
 +
 +For further information, including how to report bugs,
 +please refer to the LDC wiki: http://wiki.dlang.org/LDC.