首页 > 解决方案 > 在将 openjdk 11u 交叉编译为 aarch64 时出错

问题描述

我正在尝试将 openjdk 11u 交叉编译为 aarch64。我正在使用以下命令:

bash configure --openjdk-target=aarch64-linux-gnu --disable-warnings-as-errors

接下来我使用make命令编译openjdk,但我得到以下输出错误:

错误:目标“默认(爆炸图像)”的构建失败
配置“linux-aarch64-normal-server-release”(退出代码 2)

=== 此处重复的失败命令的输出 ===
* 对于目标hotspot_variant-server_libjvm_gtest_objs_BUILD_GTEST_LIBJVM_link:
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld:
/mnt/c/Users/ACER/downloads/jdk11-source/build/linux-aarch64-normal-server-release/hotspot/variant-server/libjvm/objs/macroAssembler_aarch64.o:
在函数“RegSet::operator-(RegSet) const”中:
/mnt/c/Users/ACER/downloads/jdk11-source/src/hotspot/cpu/aarch64/register_aarch64.hpp:239:
未定义对“JavaThread::aarch64_get_thread_helper()”的引用
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld:
/mnt/c/Users/ACER/downloads/jdk11-source/build/linux-aarch64-normal-server-release/hotspot/variant-server/libjvm/objs/macroAssembler_aarch64.o:
在函数“MacroAssembler::push(RegSet, RegisterImpl*)”中:
/mnt/c/Users/ACER/downloads/jdk11-source/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp:518:
未定义对“JavaThread::aarch64_get_thread_helper()”的引用
collect2:错误:ld 返回 1 个退出状态
* 对于目标hotspot_variant-server_libjvm_objs_BUILD_LIBJVM_link:/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld:
/mnt/c/Users/ACER/downloads/jdk11-source/build/linux-aarch64-normal-server-release/hotspot/variant-server/libjvm/objs/macroAssembler_aarch64.o:
在函数“RegSet::operator-(RegSet) const”中:
/mnt/c/Users/ACER/downloads/jdk11-source/src/hotspot/cpu/aarch64/register_aarch64.hpp:239:
未定义对“JavaThread::aarch64_get_thread_helper()”的引用
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld:
/mnt/c/Users/ACER/downloads/jdk11-source/build/linux-aarch64-normal-server-release/hotspot/variant-server/libjvm/objs/macroAssembler_aarch64.o:
在函数“MacroAssembler::push(RegSet, RegisterImpl*)”中:
/mnt/c/Users/ACER/downloads/jdk11-source/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp:518:
未定义对“JavaThread::aarch64_get_thread_helper()”的引用
collect2:错误:ld 返回 1 个退出状态

* /mnt/c/Users/ACER/downloads/jdk11-source/build/linux-aarch64-normal-server-release/make-support/failure-logs 中提供的所有命令行。
=== 重复输出结束 ===

没有发现失败目标的迹象。提示:尝试搜索构建
记录“] 错误”。提示:请参阅 doc/building.html#troubleshooting
协助。

制作[1]:***
[/mnt/c/Users/ACER/downloads/jdk11-source/make/Init.gmk:305: 主]
错误 2 品牌:***
[/mnt/c/Users/ACER/downloads/jdk11-source/make/Init.gmk:186:默认]
错误 2

我不知道如何解决这个错误。

标签: javalinuxgccarmopenjdk-11

解决方案


推荐阅读