Кросс-компиляция OpenJDK: HOSTCC, BUILD_CC? - PullRequest
0 голосов
/ 05 апреля 2019

Я портирую OpenJDK8 (на мипсель с муслом) и меня довольно смущает терминология. В мире autotools «build» относится к системе, на которой строится код, а «host» относится к системе, на которой будет выполняться код, а «target» используется при сборке компиляторов, которые должны запускаться на «host». архитектура, но производят код для третьей архитектуры (так называемый «канадский крест»).

Хотя OpenJDK8 только недавно был преобразован в автоинструментальные средства, меня смущает терминология, и, возможно, они тоже. Одна библиотека собирается с помощью компилятора сборки, но передает мой --sysroot для моего инструментария хоста и библиотек, тем самым нарушая сборку. Но, похоже, терминология переворачивается в подпроекте hotspot!

общее / Autoconf / spec.gmk.in: 391

# BUILD_CC/BUILD_LD is a compiler/linker that generates code that is runnable on the
# build platform.
BUILD_CC:=@FIXPATH@ @BUILD_CC@
BUILD_LD:=@FIXPATH@ @BUILD_LD@

общая / Autoconf / hotspot-spec.gmk.in: 49

# The HOSTCC/HOSTCXX is Hotspot terminology for the BUILD_CC/BUILD_CXX, i.e. the
# compiler that produces code that can be run on the build platform.
HOSTCC:=@FIXPATH@ @BUILD_CC@
HOSTCXX:=@FIXPATH@ @BUILD_CXX@

Кто-нибудь может пролить свет на это? Это только для этого подпроекта?

По крайней мере с JDK9 они добавили некоторую документацию по этому вопросу.

Кстати, вот где он сейчас ломается:

Compiling genSocketOptionRegistry.c (for genSocketOptionRegistry)
/usr/bin/cc --sysroot="/home/daniel/proj/embedded/openwrt/staging_dir/target-mipsel_24kc_musl"  -DTHIS_FILE='"genSocketOptionRegistry.c"' -c -MMD -MF /mnt/home/daniel/proj/openjdk/icedtea-openjdk8/build/linux-mipsel-normal-zero-release/jdk/btnative/genSocketOptionRegistry/genSocketOptionRegistry.d -o /mnt/home/daniel/proj/openjdk/icedtea-openjdk8/build/linux-mipsel-normal-zero-release/jdk/btnative/genSocketOptionRegistry/genSocketOptionRegistry.o /mnt/home/daniel/proj/openjdk/icedtea-openjdk8/jdk/make/src/native/genconstants/ch/genSocketOptionRegistry.c
/mnt/home/daniel/proj/openjdk/icedtea-openjdk8/jdk/make/src/native/genconstants/ch/genSocketOptionRegistry.c:26:10: fatal error: stdio.h: No such file or directory
 #include <stdio.h>
          ^~~~~~~~~
...