Need help with setting up LDC to cross-compile to Android/ARM

H. S. Teoh hsteoh at quickfur.ath.cx
Fri Oct 19 22:00:27 UTC 2018


On Fri, Oct 19, 2018 at 02:41:48PM -0700, H. S. Teoh via Digitalmars-d wrote:
[...]
> I tried ldc-build-runtime with --ninja and it came back with a bunch of
> errors about "cortex-a8" being an unsupported target, and then
> segfaulted.  So I'm going to try the "official" LDC release instead...
[...]

I'm getting the same error with the official LDC 12.0.  Running with
--ninja revealed that it's not just sys/types.h, but seems that a bunch
of standard C headers (possibly all?) that are mysteriously missing:


	$ ldc-build-runtime --targetPreset=Android-arm --dFlags=-w;-mcpu=cortex-a8 --buildDir=droid32 --ninja
	-- Configuring done
	-- Generating done
	CMake Warning (dev):
	  Policy CMP0058 is not set: Ninja requires custom command byproducts to be
	  explicit.  Run "cmake --help-policy CMP0058" for policy details.  Use the
	  cmake_policy command to set the policy and suppress this warning.

	  This project specifies custom command DEPENDS on files in the build tree
	  that are not specified as the OUTPUT or BYPRODUCTS of any
	  add_custom_command or add_custom_target:

	   ldc-src/runtime/druntime/src/core/atomic.d
	   ldc-src/runtime/druntime/src/core/attribute.d
	   ldc-src/runtime/druntime/src/core/bitop.d
	   ldc-src/runtime/druntime/src/core/checkedint.d
	   ldc-src/runtime/druntime/src/core/cpuid.d
	   ldc-src/runtime/druntime/src/core/demangle.d
	   ldc-src/runtime/druntime/src/core/exception.d
	   ldc-src/runtime/druntime/src/core/internal/abort.d
	   ldc-src/runtime/druntime/src/core/internal/arrayop.d
	   ldc-src/runtime/druntime/src/core/internal/convert.d

	  For compatibility with versions of CMake that did not have the BYPRODUCTS
	  option, CMake is generating phony rules for such files to convince 'ninja'
	  to build.

	  Project authors should add the missing BYPRODUCTS or OUTPUT options to the
	  custom commands that produce these files.
	This warning is for project developers.  Use -Wno-dev to suppress it.

	-- Build files have been written to: /mnt/3/usr/src/d/android/droid32
	[1/40] Building C object CMakeFiles/phobos2-ldc.dir/phobos/etc/c/zlib/gzwrite.c.o
	FAILED: CMakeFiles/phobos2-ldc.dir/phobos/etc/c/zlib/gzwrite.c.o 
	/usr/lib/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang   -DHAVE_UNISTD_H -fPIC   -ffunction-sections -funwind-tables -fstack-protector-strong -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -no-canonical-prefixes -g -DNDEBUG -DANDROID  -D__ANDROID_API__=21 -Wa,--noexecstack -Wformat -Werror=format-security -fpie -target armv7-none-linux-androideabi21 -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Os -gcc-toolchain /usr/lib/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 --sysroot /usr/lib/android-ndk/sysroot -isystem /usr/lib/android-ndk/sysroot/usr/include/arm-linux-androideabi -fno-integrated-as -MD -MT CMakeFiles/phobos2-ldc.dir/phobos/etc/c/zlib/gzwrite.c.o -MF CMakeFiles/phobos2-ldc.dir/phobos/etc/c/zlib/gzwrite.c.o.d -o CMakeFiles/phobos2-ldc.dir/phobos/etc/c/zlib/gzwrite.c.o   -c ldc-src/runtime/phobos/etc/c/zlib/gzwrite.c
	In file included from ldc-src/runtime/phobos/etc/c/zlib/gzwrite.c:6:
	ldc-src/runtime/phobos/etc/c/zlib/gzguts.h:21:10: fatal error: 'stdio.h' file not found
	#include <stdio.h>
		 ^
	1 error generated.
	[2/40] Building C object CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/compress.c.o
	FAILED: CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/compress.c.o 
	/usr/lib/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang   -DHAVE_UNISTD_H -fPIC   -ffunction-sections -funwind-tables -fstack-protector-strong -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -no-canonical-prefixes -g -DNDEBUG -DANDROID  -D__ANDROID_API__=21 -Wa,--noexecstack -Wformat -Werror=format-security -fpie -target armv7-none-linux-androideabi21 -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Os -gcc-toolchain /usr/lib/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 --sysroot /usr/lib/android-ndk/sysroot -isystem /usr/lib/android-ndk/sysroot/usr/include/arm-linux-androideabi -fno-integrated-as -MD -MT CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/compress.c.o -MF CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/compress.c.o.d -o CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/compress.c.o   -c ldc-src/runtime/phobos/etc/c/zlib/compress.c
	In file included from ldc-src/runtime/phobos/etc/c/zlib/compress.c:9:
	In file included from ldc-src/runtime/phobos/etc/c/zlib/zlib.h:34:
	ldc-src/runtime/phobos/etc/c/zlib/zconf.h:444:14: fatal error: 'sys/types.h' file not found
	#    include <sys/types.h>      /* for off_t */
		     ^
	1 error generated.
	[3/40] Building C object CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/adler32.c.o
	FAILED: CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/adler32.c.o 
	/usr/lib/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang   -DHAVE_UNISTD_H -fPIC   -ffunction-sections -funwind-tables -fstack-protector-strong -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -no-canonical-prefixes -g -DNDEBUG -DANDROID  -D__ANDROID_API__=21 -Wa,--noexecstack -Wformat -Werror=format-security -fpie -target armv7-none-linux-androideabi21 -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Os -gcc-toolchain /usr/lib/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 --sysroot /usr/lib/android-ndk/sysroot -isystem /usr/lib/android-ndk/sysroot/usr/include/arm-linux-androideabi -fno-integrated-as -MD -MT CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/adler32.c.o -MF CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/adler32.c.o.d -o CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/adler32.c.o   -c ldc-src/runtime/phobos/etc/c/zlib/adler32.c
	In file included from ldc-src/runtime/phobos/etc/c/zlib/adler32.c:8:
	In file included from ldc-src/runtime/phobos/etc/c/zlib/zutil.h:22:
	In file included from ldc-src/runtime/phobos/etc/c/zlib/zlib.h:34:
	ldc-src/runtime/phobos/etc/c/zlib/zconf.h:444:14: fatal error: 'sys/types.h' file not found
	#    include <sys/types.h>      /* for off_t */
		     ^
	1 error generated.
	[4/40] Building C object CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/gzlib.c.o
	FAILED: CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/gzlib.c.o 
	/usr/lib/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang   -DHAVE_UNISTD_H -fPIC   -ffunction-sections -funwind-tables -fstack-protector-strong -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -no-canonical-prefixes -g -DNDEBUG -DANDROID  -D__ANDROID_API__=21 -Wa,--noexecstack -Wformat -Werror=format-security -fpie -target armv7-none-linux-androideabi21 -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Os -gcc-toolchain /usr/lib/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 --sysroot /usr/lib/android-ndk/sysroot -isystem /usr/lib/android-ndk/sysroot/usr/include/arm-linux-androideabi -fno-integrated-as -MD -MT CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/gzlib.c.o -MF CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/gzlib.c.o.d -o CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/gzlib.c.o   -c ldc-src/runtime/phobos/etc/c/zlib/gzlib.c
	In file included from ldc-src/runtime/phobos/etc/c/zlib/gzlib.c:6:
	ldc-src/runtime/phobos/etc/c/zlib/gzguts.h:21:10: fatal error: 'stdio.h' file not found
	#include <stdio.h>
		 ^
	1 error generated.
	[5/40] Building C object CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/gzread.c.o
	FAILED: CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/gzread.c.o 
	/usr/lib/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang   -DHAVE_UNISTD_H -fPIC   -ffunction-sections -funwind-tables -fstack-protector-strong -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -no-canonical-prefixes -g -DNDEBUG -DANDROID  -D__ANDROID_API__=21 -Wa,--noexecstack -Wformat -Werror=format-security -fpie -target armv7-none-linux-androideabi21 -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Os -gcc-toolchain /usr/lib/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 --sysroot /usr/lib/android-ndk/sysroot -isystem /usr/lib/android-ndk/sysroot/usr/include/arm-linux-androideabi -fno-integrated-as -MD -MT CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/gzread.c.o -MF CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/gzread.c.o.d -o CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/gzread.c.o   -c ldc-src/runtime/phobos/etc/c/zlib/gzread.c
	In file included from ldc-src/runtime/phobos/etc/c/zlib/gzread.c:6:
	ldc-src/runtime/phobos/etc/c/zlib/gzguts.h:21:10: fatal error: 'stdio.h' file not found
	#include <stdio.h>
		 ^
	1 error generated.
	[6/40] Building C object CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/deflate.c.o
	FAILED: CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/deflate.c.o 
	/usr/lib/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang   -DHAVE_UNISTD_H -fPIC   -ffunction-sections -funwind-tables -fstack-protector-strong -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -no-canonical-prefixes -g -DNDEBUG -DANDROID  -D__ANDROID_API__=21 -Wa,--noexecstack -Wformat -Werror=format-security -fpie -target armv7-none-linux-androideabi21 -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Os -gcc-toolchain /usr/lib/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 --sysroot /usr/lib/android-ndk/sysroot -isystem /usr/lib/android-ndk/sysroot/usr/include/arm-linux-androideabi -fno-integrated-as -MD -MT CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/deflate.c.o -MF CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/deflate.c.o.d -o CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/deflate.c.o   -c ldc-src/runtime/phobos/etc/c/zlib/deflate.c
	In file included from ldc-src/runtime/phobos/etc/c/zlib/deflate.c:52:
	In file included from ldc-src/runtime/phobos/etc/c/zlib/deflate.h:16:
	In file included from ldc-src/runtime/phobos/etc/c/zlib/zutil.h:22:
	In file included from ldc-src/runtime/phobos/etc/c/zlib/zlib.h:34:
	ldc-src/runtime/phobos/etc/c/zlib/zconf.h:444:14: fatal error: 'sys/types.h' file not found
	#    include <sys/types.h>      /* for off_t */
		     ^
	1 error generated.
	[7/40] Building C object CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/gzclose.c.o
	FAILED: CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/gzclose.c.o 
	/usr/lib/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang   -DHAVE_UNISTD_H -fPIC   -ffunction-sections -funwind-tables -fstack-protector-strong -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -no-canonical-prefixes -g -DNDEBUG -DANDROID  -D__ANDROID_API__=21 -Wa,--noexecstack -Wformat -Werror=format-security -fpie -target armv7-none-linux-androideabi21 -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Os -gcc-toolchain /usr/lib/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 --sysroot /usr/lib/android-ndk/sysroot -isystem /usr/lib/android-ndk/sysroot/usr/include/arm-linux-androideabi -fno-integrated-as -MD -MT CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/gzclose.c.o -MF CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/gzclose.c.o.d -o CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/gzclose.c.o   -c ldc-src/runtime/phobos/etc/c/zlib/gzclose.c
	In file included from ldc-src/runtime/phobos/etc/c/zlib/gzclose.c:6:
	ldc-src/runtime/phobos/etc/c/zlib/gzguts.h:21:10: fatal error: 'stdio.h' file not found
	#include <stdio.h>
		 ^
	1 error generated.
	[8/40] Building C object CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/crc32.c.o
	FAILED: CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/crc32.c.o 
	/usr/lib/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang   -DHAVE_UNISTD_H -fPIC   -ffunction-sections -funwind-tables -fstack-protector-strong -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -no-canonical-prefixes -g -DNDEBUG -DANDROID  -D__ANDROID_API__=21 -Wa,--noexecstack -Wformat -Werror=format-security -fpie -target armv7-none-linux-androideabi21 -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Os -gcc-toolchain /usr/lib/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 --sysroot /usr/lib/android-ndk/sysroot -isystem /usr/lib/android-ndk/sysroot/usr/include/arm-linux-androideabi -fno-integrated-as -MD -MT CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/crc32.c.o -MF CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/crc32.c.o.d -o CMakeFiles/phobos2-ldc-debug.dir/phobos/etc/c/zlib/crc32.c.o   -c ldc-src/runtime/phobos/etc/c/zlib/crc32.c
	In file included from ldc-src/runtime/phobos/etc/c/zlib/crc32.c:31:
	In file included from ldc-src/runtime/phobos/etc/c/zlib/zutil.h:22:
	In file included from ldc-src/runtime/phobos/etc/c/zlib/zlib.h:34:
	ldc-src/runtime/phobos/etc/c/zlib/zconf.h:444:14: fatal error: 'sys/types.h' file not found
	#    include <sys/types.h>      /* for off_t */
		     ^
	1 error generated.
	ninja: build stopped: subcommand failed.
	Warning: build directory already exists: droid32
	Invoking: ["cmake", "-DLDC_EXE_FULL=/mnt/3/usr/src/d/android/ldc2-1.12.0-linux-x86_64/bin/ldc2", "-DD_VERSION=2", "-DDMDFE_MINOR_VERSION=0", "-DDMDFE_PATCH_VERSION=82", "-DLDC_TARGET_PRESET=Android-arm", "-DTARGET_SYSTEM=AUTO", "-DD_FLAGS=-w;-mcpu=cortex-a8", "-DRT_CFLAGS=", "-DLD_FLAGS=", "-DCMAKE_SYSTEM_NAME=Linux", "-DCMAKE_C_COMPILER_WORKS=True", "-G", "Ninja", "/mnt/3/usr/src/d/android/droid32/ldc-src/runtime"]
	Invoking: ["ninja", "all"]
	Error: command failed with status 1


T

-- 
Государство делает вид, что платит нам зарплату, а мы делаем вид, что работаем.


More information about the Digitalmars-d mailing list