ldc: Update from 1.10 to 1.11, add AArch64 build, update llvm-config
script, and use Ninja to build.
This commit is contained in:
parent
5a5cf2b11d
commit
542fbbd197
@ -1,24 +1,26 @@
|
||||
TERMUX_PKG_HOMEPAGE=https://github.com/ldc-developers/ldc
|
||||
TERMUX_PKG_DESCRIPTION="D programming language compiler, built with LLVM"
|
||||
_PKG_MAJOR_VERSION=1.10
|
||||
TERMUX_PKG_VERSION=()
|
||||
TERMUX_PKG_VERSION+=(${_PKG_MAJOR_VERSION}.0)
|
||||
TERMUX_PKG_VERSION+=(6.0.0) # LLVM version
|
||||
TERMUX_PKG_VERSION+=(2.080.1) # TOOLS version
|
||||
TERMUX_PKG_VERSION+=(1.9.0) # DUB version
|
||||
TERMUX_PKG_VERSION+=(1.11.0)
|
||||
TERMUX_PKG_VERSION+=(6.0.1-2) # LLVM version
|
||||
TERMUX_PKG_VERSION+=(2.081.2) # TOOLS version
|
||||
TERMUX_PKG_VERSION+=(1.10.0) # DUB version
|
||||
|
||||
TERMUX_PKG_SRCURL=(https://github.com/ldc-developers/ldc/releases/download/v${TERMUX_PKG_VERSION}/ldc-${TERMUX_PKG_VERSION}-src.tar.gz
|
||||
https://github.com/ldc-developers/llvm/releases/download/ldc-v${TERMUX_PKG_VERSION[1]}/llvm-${TERMUX_PKG_VERSION[1]}.src.tar.xz
|
||||
https://github.com/dlang/tools/archive/v${TERMUX_PKG_VERSION[2]}.tar.gz
|
||||
https://github.com/dlang/dub/archive/v${TERMUX_PKG_VERSION[3]}.tar.gz)
|
||||
TERMUX_PKG_SHA256=(99b6e2b8dcaf28a2947318fb25e43fa0b96dd3a6377995146f987c4d17dd8371
|
||||
5444d9da5929fd9062ac3d7793f484366de8b372411e0e5602ea23c2ff3fdb05
|
||||
d8fe0af45ba0e19a95ad3e1bbb19c005176346bb264c8ddd8272e9195304b625
|
||||
48f7387e93977d0ece686106c9725add2c4f5f36250da33eaa0dbb66900f9d57)
|
||||
https://github.com/dlang/dub/archive/v${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=(85464fae47bc605308910afd6cfc6ddeafe95a8ad5b61e2c0c23caff82119f70
|
||||
768a78f5a6e918da7bd8180f9afad94182056fcf2f9b7d1d9bdb67953d7122d0
|
||||
d7dc67d258499e5ee401467f0570b4ca2547deb7720e7cd163b73fccb039a60e
|
||||
db6c3a9e45408d2431bc3d1138a31b561fb71665c1d89db4b0cb3725b2b12faa
|
||||
43b826ef2bd0c249115bc83dad12f3638fd6997fdc80a6a7db147f9ae0fa3fe8)
|
||||
TERMUX_PKG_DEPENDS="clang"
|
||||
TERMUX_PKG_HOSTBUILD=true
|
||||
TERMUX_PKG_BLACKLISTED_ARCHES="aarch64,i686,x86_64"
|
||||
TERMUX_PKG_BLACKLISTED_ARCHES="i686,x86_64"
|
||||
TERMUX_PKG_FORCE_CMAKE=yes
|
||||
TERMUX_CMAKE_BUILD="Ninja"
|
||||
#These CMake args are only used to configure a patched LLVM
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
|
||||
-DLLVM_ENABLE_PIC=ON
|
||||
@ -26,7 +28,6 @@ TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
|
||||
-DLLVM_BUILD_UTILS=OFF
|
||||
-DLLVM_TABLEGEN=$TERMUX_PKG_HOSTBUILD_DIR/bin/llvm-tblgen
|
||||
-DPYTHON_EXECUTABLE=`which python`
|
||||
-DCOMPILER_RT_INCLUDE_TESTS=OFF
|
||||
"
|
||||
TERMUX_PKG_KEEP_STATIC_LIBRARIES=true
|
||||
TERMUX_PKG_NO_DEVELSPLIT=yes
|
||||
@ -37,28 +38,18 @@ termux_step_post_extract_package () {
|
||||
mv tools-${TERMUX_PKG_VERSION[2]} rdmd
|
||||
mv dub-${TERMUX_PKG_VERSION[3]} dub
|
||||
|
||||
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
|
||||
|
||||
export 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_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
|
||||
-e "s|@LLVM_DEFAULT_TARGET_TRIPLE@|$LLVM_TRIPLE|g" \
|
||||
-e "s|@LLVM_TARGETS@|ARM AArch64 X86|g" > $TERMUX_PKG_BUILDDIR/llvm-config
|
||||
chmod 755 $TERMUX_PKG_BUILDDIR/llvm-config
|
||||
}
|
||||
|
||||
termux_step_host_build () {
|
||||
termux_download \
|
||||
https://github.com/ldc-developers/ldc/releases/download/v${TERMUX_PKG_VERSION}/ldc2-${TERMUX_PKG_VERSION}-linux-x86_64.tar.xz \
|
||||
$TERMUX_PKG_CACHEDIR/ldc2-${TERMUX_PKG_VERSION}-linux-x86_64.tar.xz \
|
||||
9f93c3c6f2e6e967e2db81ac1c3cb6539bd9147db25213480d436b6a95cf7f06
|
||||
|
||||
tar xf $TERMUX_PKG_CACHEDIR/ldc2-${TERMUX_PKG_VERSION}-linux-x86_64.tar.xz
|
||||
mv ldc2-${TERMUX_PKG_VERSION}-linux-x86_64 ldc-bootstrap
|
||||
|
||||
termux_setup_cmake
|
||||
termux_setup_ninja
|
||||
cmake -GNinja $TERMUX_PKG_SRCDIR/llvm \
|
||||
@ -66,19 +57,23 @@ termux_step_host_build () {
|
||||
-DLLVM_BUILD_UTILS=OFF \
|
||||
-DCOMPILER_RT_INCLUDE_TESTS=OFF
|
||||
ninja -j $TERMUX_MAKE_PROCESSES llvm-tblgen
|
||||
|
||||
CC="$TERMUX_STANDALONE_TOOLCHAIN/bin/$TERMUX_HOST_PLATFORM-clang" \
|
||||
./ldc-bootstrap/bin/ldc-build-runtime --ninja -j $TERMUX_MAKE_PROCESSES \
|
||||
--dFlags="-mtriple=armv7-none-linux-android;-w;-mcpu=cortex-a8" \
|
||||
--cFlags="-march=armv7-a -mfpu=neon -mfloat-abi=softfp -mthumb -Os -I$TERMUX_PREFIX/include" \
|
||||
--targetSystem="Android;Linux;UNIX" --ldcSrcDir="$TERMUX_PKG_SRCDIR"
|
||||
}
|
||||
|
||||
termux_step_pre_configure () {
|
||||
rm $TERMUX_PKG_BUILDER_DIR/ldc-linker-flags.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"
|
||||
local LLVM_TARGET_ARCH
|
||||
if [ $TERMUX_ARCH = "arm" ]; then
|
||||
LLVM_TARGET_ARCH=ARM
|
||||
elif [ $TERMUX_ARCH = "aarch64" ]; then
|
||||
LLVM_TARGET_ARCH=AArch64
|
||||
elif [ $TERMUX_ARCH = "i686" ]; then
|
||||
LLVM_TARGET_ARCH=X86
|
||||
elif [ $TERMUX_ARCH = "x86_64" ]; then
|
||||
LLVM_TARGET_ARCH=X86
|
||||
else
|
||||
termux_error_exit "Invalid arch: $TERMUX_ARCH"
|
||||
fi
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${LLVM_TRIPLE}"
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" -DLLVM_TARGET_ARCH=${LLVM_TARGET_ARCH} -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
|
||||
@ -98,38 +93,54 @@ termux_step_post_configure () {
|
||||
cd "$TERMUX_PKG_BUILDDIR"
|
||||
|
||||
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"
|
||||
export DFLAGS="-mtriple=armv7-none-linux-android -mcpu=cortex-a8"
|
||||
|
||||
export LDC_FLAGS="-mtriple=$LLVM_TRIPLE"
|
||||
if [ $TERMUX_ARCH = arm ]; then LDC_FLAGS="$LDC_FLAGS;-mcpu=cortex-a8"; fi
|
||||
|
||||
export LDC_PATH=$TERMUX_PKG_SRCDIR/ldc2-$TERMUX_PKG_VERSION-linux-x86_64
|
||||
|
||||
# Couldn't use -DD_COMPILER_FLAGS_ENV_INIT=\"${LDC_FLAGS//;/ }\"" because of the space
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" -DD_FLAGS=$LDC_FLAGS \
|
||||
-DLLVM_CONFIG=$TERMUX_PKG_BUILDDIR/llvm/bin/llvm-config \
|
||||
-DD_COMPILER=$LDC_PATH/bin/ldmd2"
|
||||
|
||||
termux_step_configure_cmake
|
||||
}
|
||||
|
||||
termux_step_make () {
|
||||
$LDC_PATH/bin/ldc-build-runtime --ninja -j $TERMUX_MAKE_PROCESSES \
|
||||
--dFlags="$LDC_FLAGS" --cFlags="$CFLAGS -I$TERMUX_PREFIX/include" \
|
||||
--targetSystem="Android;Linux;UNIX" --ldcSrcDir="$TERMUX_PKG_SRCDIR"
|
||||
|
||||
cd llvm
|
||||
if ls ./*akefile &> /dev/null; then
|
||||
make -j $TERMUX_MAKE_PROCESSES
|
||||
if test -f build.ninja; then
|
||||
ninja -j $TERMUX_MAKE_PROCESSES
|
||||
fi
|
||||
|
||||
cd ..
|
||||
if ls ./*akefile &> /dev/null; then
|
||||
make -j $TERMUX_MAKE_PROCESSES ldc2 ldmd2 ldc-build-runtime
|
||||
export DFLAGS="${LDC_FLAGS//;/ }"
|
||||
|
||||
if test -f build.ninja; then
|
||||
ninja -j $TERMUX_MAKE_PROCESSES ldc2 ldmd2 ldc-build-runtime
|
||||
fi
|
||||
|
||||
# Build the rdmd scripting wrapper and the dub package manager
|
||||
D_FLAGS="-w -dw -O"
|
||||
DMD=$LDC_PATH/bin/ldmd2
|
||||
D_FLAGS="-w -de -O"
|
||||
D_LDFLAGS="-fuse-ld=bfd -L$TERMUX_PKG_BUILDDIR/ldc-build-runtime.tmp/lib -lphobos2-ldc -ldruntime-ldc -Wl,--gc-sections -ldl -lm -fPIE -pie -Wl,-z,nocopyreloc ${LDFLAGS}"
|
||||
if [ $TERMUX_ARCH = arm ]; then D_LDFLAGS="$D_LDFLAGS -Wl,--fix-cortex-a8"; fi
|
||||
|
||||
$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-build-runtime.tmp/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
|
||||
|
||||
cd $TERMUX_PKG_SRCDIR/dub
|
||||
$DMD $D_FLAGS -version=DubUseCurl -Isource -c @build-files.txt -of=$TERMUX_PKG_BUILDDIR/bin/dub.o
|
||||
cd $TERMUX_PKG_BUILDDIR
|
||||
$CC $TERMUX_PKG_BUILDDIR/bin/dub.o $D_LDFLAGS -o $TERMUX_PKG_BUILDDIR/bin/dub
|
||||
}
|
||||
|
||||
termux_step_make_install () {
|
||||
cp bin/{dub,ldc-build-runtime,ldc2,ldmd2,rdmd} $TERMUX_PREFIX/bin
|
||||
cp $TERMUX_PKG_HOSTBUILD_DIR/ldc-build-runtime.tmp/lib/lib{druntime,phobos2}*.a $TERMUX_PREFIX/lib
|
||||
cp $TERMUX_PKG_BUILDDIR/ldc-build-runtime.tmp/lib/lib{druntime,phobos2}*.a $TERMUX_PREFIX/lib
|
||||
sed -i "/runtime\/druntime\/src/d" bin/ldc2.conf
|
||||
sed -i "/runtime\/jit-rt\/d/d" bin/ldc2.conf
|
||||
sed -i "s|$TERMUX_PKG_SRCDIR/runtime/phobos|%%ldcbinarypath%%/../include/d|" bin/ldc2.conf
|
||||
@ -138,10 +149,9 @@ termux_step_make_install () {
|
||||
rm -Rf $TERMUX_PREFIX/include/d
|
||||
mkdir $TERMUX_PREFIX/include/d
|
||||
cp -r $TERMUX_PKG_SRCDIR/runtime/druntime/src/{core,etc,ldc,object.d} $TERMUX_PREFIX/include/d
|
||||
cp $TERMUX_PKG_HOSTBUILD_DIR/ldc-bootstrap/import/ldc/gccbuiltins_arm.di $TERMUX_PREFIX/include/d/ldc
|
||||
cp $LDC_PATH/import/ldc/gccbuiltins_{aarch64,arm,x86}.di $TERMUX_PREFIX/include/d/ldc
|
||||
cp -r $TERMUX_PKG_SRCDIR/runtime/phobos/etc/c $TERMUX_PREFIX/include/d/etc
|
||||
rm -Rf $TERMUX_PREFIX/include/d/etc/c/zlib
|
||||
find $TERMUX_PKG_SRCDIR/runtime/phobos/std -name "*.orig" -delete
|
||||
cp -r $TERMUX_PKG_SRCDIR/runtime/phobos/std $TERMUX_PREFIX/include/d
|
||||
|
||||
rm -Rf $TERMUX_PREFIX/share/ldc
|
||||
|
@ -8,7 +8,7 @@ index 336bbdbc..4b9e8c88 100644
|
||||
|
||||
- include(ExtractDMDSystemLinker)
|
||||
+ #include(ExtractDMDSystemLinker)
|
||||
+ set(D_LINKER_ARGS "-fuse-ld=bfd;-L@TERMUX_PKG_HOSTBUILD@/ldc-build-runtime.tmp/lib;-lphobos2-ldc;-ldruntime-ldc;-Wl,--gc-sections")
|
||||
+ set(D_LINKER_ARGS "-fuse-ld=bfd;-Lldc-build-runtime.tmp/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})
|
@ -1,62 +0,0 @@
|
||||
diff --git a/std/stdio.d b/std/stdio.d
|
||||
index 0c315026..8b1860d0 100644
|
||||
--- a/std/stdio.d
|
||||
+++ b/runtime/phobos/std/stdio.d
|
||||
@@ -310,6 +310,45 @@ else version (GENERIC_IO)
|
||||
void funlockfile(FILE*);
|
||||
}
|
||||
|
||||
+ version(CRuntime_Bionic)
|
||||
+ {
|
||||
+ import core.stdc.wchar_ : mbstate_t;
|
||||
+ import core.sys.posix.sys.types : pthread_mutex_t;
|
||||
+
|
||||
+ extern(C) struct wchar_io_data
|
||||
+ {
|
||||
+ mbstate_t wcio_mbstate_in;
|
||||
+ mbstate_t wcio_mbstate_out;
|
||||
+ wchar_t[1] wcio_ungetwc_buf;
|
||||
+ size_t wcio_ungetwc_inbuf;
|
||||
+ int wcio_mode;
|
||||
+ }
|
||||
+
|
||||
+ extern(C) struct __sfileext
|
||||
+ {
|
||||
+ __sbuf _ub;
|
||||
+ wchar_io_data _wcio;
|
||||
+ pthread_mutex_t _lock;
|
||||
+ }
|
||||
+
|
||||
+ void bionic_lock(FILE* foo)
|
||||
+ {
|
||||
+ if( foo == stdout._p.handle || foo == stdin._p.handle || foo == stderr._p.handle)
|
||||
+ {
|
||||
+ auto ext = cast(__sfileext*) foo._ext._base;
|
||||
+ if (ext._lock.value == 0)
|
||||
+ {
|
||||
+ // A bionic regression in Android 5.0 leaves
|
||||
+ // the mutex for stdout/err/in uninitialized,
|
||||
+ // so check for that and initialize it.
|
||||
+ printf("lock is zero, initializing...\n");
|
||||
+ ext._lock.value = 0x4000;
|
||||
+ }
|
||||
+ }
|
||||
+ flockfile(foo);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
int fputc_unlocked(int c, _iobuf* fp) { return fputc(c, cast(shared) fp); }
|
||||
int fputwc_unlocked(wchar_t c, _iobuf* fp)
|
||||
{
|
||||
@@ -328,7 +367,10 @@ else version (GENERIC_IO)
|
||||
alias FGETC = fgetc_unlocked;
|
||||
alias FGETWC = fgetwc_unlocked;
|
||||
|
||||
- alias FLOCK = flockfile;
|
||||
+ version(CRuntime_Bionic)
|
||||
+ alias FLOCK = bionic_lock;
|
||||
+ else
|
||||
+ alias FLOCK = flockfile;
|
||||
alias FUNLOCK = funlockfile;
|
||||
}
|
||||
else
|
@ -5,7 +5,7 @@ index 00000000..cd578cb7
|
||||
+++ b/README
|
||||
@@ -0,0 +1,18 @@
|
||||
+This is LDC, the LLVM-based D compiler. It will natively
|
||||
+compile D on Android/ARM devices.
|
||||
+compile D on Android devices.
|
||||
+
|
||||
+The compiler configuration file is etc/ldc2.conf, and by
|
||||
+default only include/d is on the module search path.
|
||||
|
@ -40,25 +40,54 @@ Typical components:
|
||||
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"
|
||||
CFLAGS="${CPPFLAGS} ${CFLAGS} -fPIC -Werror=date-time -Wall -W -Wno-unused-parameter -Wwrite-strings -Wmissing-field-initializers -pedantic \
|
||||
-Wno-long-long -Wcovered-switch-default -Wdelete-non-virtual-dtor -Wstring-conversion \
|
||||
-ffunction-sections -fdata-sections -Os -DNDEBUG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS \
|
||||
-D__STDC_LIMIT_MACROS"
|
||||
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 -lLLVMARMDisassembler -lLLVMARMCodeGen -lLLVMARMAsmParser -lLLVMARMDesc -lLLVMARMInfo -lLLVMARMAsmPrinter -lLLVMARMUtils -lLLVMAArch64Disassembler -lLLVMAArch64CodeGen -lLLVMAArch64AsmParser -lLLVMAArch64Desc -lLLVMAArch64Info -lLLVMAArch64AsmPrinter -lLLVMAArch64Utils -lLLVMTestingSupport -lLLVMCoverage -lLLVMLineEditor -lLLVMLTO -lLLVMPasses -lLLVMObjCARCOpts -lLLVMOrcJIT -lLLVMObjectYAML -lLLVMFuzzMutate -lLLVMInterpreter -lLLVMWindowsManifest -lLLVMMIRParser -lLLVMLibDriver -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMAsmPrinter -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 -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoPDB -lLLVMDebugInfoCodeView -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMDlltoolDriver -lLLVMOption -lLLVMObject -lLLVMMCParser -lLLVMMC -lLLVMBitReader -lLLVMCore -lLLVMBinaryFormat -lLLVMSupport -lLLVMDemangle"
|
||||
|
||||
components="aarch64 aarch64asmparser aarch64asmprinter aarch64codegen aarch64desc aarch64disassembler aarch64info aarch64utils all all-targets analysis arm armasmparser armasmprinter armcodegen armdesc armdisassembler arminfo armutils asmparser asmprinter binaryformat bitreader bitwriter codegen core coroutines coverage debuginfocodeview debuginfodwarf debuginfomsf debuginfopdb demangle dlltooldriver engine executionengine fuzzmutate globalisel gtest gtest_main instcombine instrumentation interpreter ipo irreader libdriver lineeditor linker lto mc mcdisassembler mcjit mcparser mirparser native nativecodegen objcarcopts object objectyaml option orcjit passes profiledata runtimedyld scalaropts selectiondag support symbolize tablegen target testingsupport transformutils vectorize windowsmanifest x86 x86asmparser x86asmprinter x86codegen x86desc x86disassembler x86info x86utils"
|
||||
|
||||
components="aarch64 aarch64asmparser aarch64asmprinter aarch64codegen aarch64desc \
|
||||
aarch64disassembler aarch64info aarch64utils all all-targets amdgpu amdgpuasmparser amdgpuasmprinter \
|
||||
amdgpucodegen amdgpudesc amdgpudisassembler amdgpuinfo amdgpuutils analysis arm armasmparser armasmprinter \
|
||||
armcodegen armdesc armdisassembler arminfo armutils asmparser asmprinter binaryformat bitreader bitwriter \
|
||||
bpf bpfasmparser bpfasmprinter bpfcodegen bpfdesc bpfdisassembler bpfinfo codegen core coroutines coverage \
|
||||
debuginfocodeview debuginfodwarf debuginfomsf debuginfopdb demangle dlltooldriver engine executionengine \
|
||||
fuzzmutate globalisel hexagon hexagonasmparser hexagoncodegen hexagondesc hexagondisassembler hexagoninfo \
|
||||
instcombine instrumentation interpreter ipo irreader lanai lanaiasmparser lanaiasmprinter lanaicodegen \
|
||||
lanaidesc lanaidisassembler lanaiinfo libdriver lineeditor linker lto mc mcdisassembler mcjit mcparser \
|
||||
mips mipsasmparser mipsasmprinter mipscodegen mipsdesc mipsdisassembler mipsinfo mirparser msp430 \
|
||||
msp430asmprinter msp430codegen msp430desc msp430info native nativecodegen nvptx nvptxasmprinter \
|
||||
nvptxcodegen nvptxdesc nvptxinfo objcarcopts object objectyaml option orcjit passes powerpc powerpcasmparser \
|
||||
powerpcasmprinter powerpccodegen powerpcdesc powerpcdisassembler powerpcinfo profiledata runtimedyld scalaropts \
|
||||
selectiondag sparc sparcasmparser sparcasmprinter sparccodegen sparcdesc sparcdisassembler sparcinfo support symbolize \
|
||||
systemz systemzasmparser systemzasmprinter systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target \
|
||||
transformutils vectorize webassembly webassemblyasmprinter webassemblycodegen webassemblydesc webassemblydisassembler \
|
||||
webassemblyinfo windowsmanifest x86 x86asmparser x86asmprinter x86codegen x86desc x86disassembler x86info x86utils xcore \
|
||||
xcoreasmprinter xcorecodegen xcoredesc xcoredisassembler xcoreinfo"
|
||||
static_libs="-lLLVMTableGen -lLLVMLTO -lLLVMPasses -lLLVMObjCARCOpts -lLLVMMIRParser -lLLVMSymbolize -lLLVMDebugInfoPDB -lLLVMDebugInfoDWARF \
|
||||
-lLLVMCoverage -lLLVMDlltoolDriver -lLLVMOrcJIT -lLLVMARMDisassembler \
|
||||
-lLLVMARMCodeGen -lLLVMARMAsmParser -lLLVMARMDesc -lLLVMARMInfo -lLLVMARMAsmPrinter -lLLVMARMUtils \
|
||||
-lLLVMAArch64Disassembler -lLLVMAArch64CodeGen -lLLVMAArch64AsmParser -lLLVMAArch64Desc -lLLVMAArch64Info -lLLVMAArch64AsmPrinter \
|
||||
-lLLVMAArch64Utils -lLLVMObjectYAML -lLLVMLibDriver -lLLVMOption -lLLVMWindowsManifest -lLLVMFuzzMutate -lLLVMX86Disassembler \
|
||||
-lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMDebugInfoCodeView -lLLVMDebugInfoMSF \
|
||||
-lLLVMX86Desc -lLLVMMCDisassembler -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMMCJIT -lLLVMLineEditor -lLLVMInterpreter \
|
||||
-lLLVMExecutionEngine -lLLVMRuntimeDyld -lLLVMCodeGen -lLLVMTarget -lLLVMCoroutines -lLLVMipo -lLLVMInstrumentation -lLLVMVectorize \
|
||||
-lLLVMScalarOpts -lLLVMLinker -lLLVMIRReader -lLLVMAsmParser -lLLVMInstCombine -lLLVMTransformUtils -lLLVMBitWriter -lLLVMAnalysis \
|
||||
-lLLVMProfileData -lLLVMObject -lLLVMMCParser -lLLVMMC -lLLVMBitReader -lLLVMCore -lLLVMBinaryFormat -lLLVMSupport -lLLVMDemangle"
|
||||
shared_libs="-lLLVM-$version"
|
||||
libs=$shared_libs
|
||||
handle_args () {
|
||||
case "${1##--}" in
|
||||
version) echo "$version";;
|
||||
link-shared) libs=$shared_libs ;;
|
||||
link-static) libs=$static_libs ;;
|
||||
version) echo "$version\n";;
|
||||
prefix) echo "$prefix";;
|
||||
src-root) echo "@TERMUX_PKG_SRCDIR@";;
|
||||
obj-root) echo "$prefix";;
|
||||
@ -69,8 +98,8 @@ handle_args () {
|
||||
cflags) echo "$CFLAGS";;
|
||||
cxxflags) echo "$CXXFLAGS";;
|
||||
ldflags) echo "$LDFLAGS";;
|
||||
system-libs) echo "-lc -ldl -lncurses -lz -lm";;
|
||||
libs) echo "$LLVM_LIBRARIES";;
|
||||
system-libs) echo "-lc -ldl -lcurses -lz -lm";;
|
||||
libs) echo "$static_libs";;
|
||||
libnames) echo "libLLVM-$version.so";;
|
||||
libfiles) echo "$LIBFILE";;
|
||||
components) echo "$components";;
|
||||
@ -83,9 +112,6 @@ handle_args () {
|
||||
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
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user