You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Linux上编译带OpenJ9的OpenJDK时解决NUMA找不到报错

问题描述

各位Stack Overflow用户大家好!
我尝试在Linux系统上构建集成OpenJ9的OpenJDK,运行configure脚本时收到如下报错:

configure: error: Could not find numa! 

我本身没有配置多CPU,按常理脚本应该直接生成配置文件,允许我继续构建。
我已经搜索过该报错信息,也查阅并遵循了项目GitHub上的官方文档。
我使用的配置命令如下:

bash configure --with-boot-jdk=/home/USER/bootjdk16

完整的执行输出如下,供参考:

configure: Configuration created at Sun Nov 21 14:08:05 CET 2021.
checking for basename... /usr/bin/basename
checking for dirname... /usr/bin/dirname
checking for file... /usr/bin/file
checking for ldd... /usr/bin/ldd
checking for bash... /usr/bin/bash
checking for cat... /usr/bin/cat
checking for chmod... /usr/bin/chmod
checking for cp... /usr/bin/cp
checking for cut... /usr/bin/cut
checking for date... /usr/bin/date
checking for gdiff... [not found]
checking for diff... /usr/bin/diff
checking for echo... echo [builtin]
checking for expr... /usr/bin/expr
checking for find... /usr/bin/find
checking for gunzip... /usr/bin/gunzip
checking for pigz... [not found]
checking for gzip... /usr/bin/gzip
checking for head... /usr/bin/head
checking for ln... /usr/bin/ln
checking for ls... /usr/bin/ls
checking for gmkdir... [not found]
checking for mkdir... /usr/bin/mkdir
checking for mktemp... /usr/bin/mktemp
checking for mv... /usr/bin/mv
checking for gawk... /usr/bin/gawk
checking for printf... printf [builtin]
checking for rm... /usr/bin/rm
checking for rmdir... /usr/bin/rmdir
checking for sh... /usr/bin/sh
checking for sort... /usr/bin/sort
checking for tail... /usr/bin/tail
checking for gtar... [not found]
checking for tar... /usr/bin/tar
checking for tee... /usr/bin/tee
checking for touch... /usr/bin/touch
checking for tr... /usr/bin/tr
checking for uname... /usr/bin/uname
checking for wc... /usr/bin/wc
checking for xargs... /usr/bin/xargs
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for a sed that does not truncate output... /usr/bin/sed
checking for df... /usr/bin/df
checking for nice... /usr/bin/nice
checking for greadlink... [not found]
checking for readlink... /usr/bin/readlink
checking for cygpath... [not found]
checking for wslpath... [not found]
checking for lsb_release... [not found]
checking for cmd.exe... [not found]
checking for cmp... /usr/bin/cmp
checking for uniq... /usr/bin/uniq
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking openjdk-build os-cpu... linux-x86_64
checking openjdk-build C library... gnu
checking openjdk-target os-cpu... linux-x86_64
checking openjdk-target C library... gnu
checking compilation type... native
checking for top-level directory... /home/USER/openj9-openjdk-jdk17
checking if custom source is suppressed (openjdk-only)... disabled, default
checking for --enable-debug... disabled, default
checking which debug level to use... release
checking which variants of the JVM to build... server
checking for m4... /usr/bin/m4
checking for cmake... /usr/bin/cmake
checking for CRIU support... no (default)
checking for cuda... no (default)
checking for ddr... yes (default for xa64)
checking if demos should be included in jdk image... no
checking checking for numa... no
configure: error: Could not find numa! 
configure exiting with result code 1

在此先感谢各位的帮助!


解决方案

OpenJ9构建默认开启NUMA支持校验,和你当前是否使用多CPU/NUMA硬件无关,你可以选择以下任意一种方案解决该问题:

  • 安装NUMA依赖包
    对应不同Linux发行版执行对应安装命令即可:
    • Debian/Ubuntu及衍生版:sudo apt install libnuma-dev
    • CentOS/RHEL/Fedora及衍生版:sudo dnf install numactl-devel
      依赖安装完成后重新执行原configure命令即可正常通过校验。
  • 禁用NUMA特性
    如果你确认不需要NUMA功能,可以在configure命令中添加--disable-numa参数跳过校验,调整后的命令如下:
    bash configure --with-boot-jdk=/home/USER/bootjdk16 --disable-numa
    

内容的提问来源于stack exchange,提问作者LaserSami

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 23:15:00