Skip to content

Commit 87c99b1

Browse files
committed
Configure JDK19+ on Linux with hsdis capstone support
1 parent 60358cd commit 87c99b1

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

build-farm/platform-specific-configurations/linux.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,12 @@ elif [ -r /usr/bin/gcc-7 ]; then
338338
[ -r /usr/bin/g++-7 ] && export CXX=/usr/bin/g++-7
339339
fi
340340

341+
if [ "$JAVA_FEATURE_VERSION" -ge 20 ]; then
342+
if [ -r /usr/local/lib/libcapstone.so.4 ]; then
343+
export CONFIGURE_ARGS_FOR_ANY_PLATFORM="${CONFIGURE_ARGS_FOR_ANY_PLATFORM} --with-capstone=/usr/local"
344+
fi
345+
fi
346+
341347
if [ "${VARIANT}" == "${BUILD_VARIANT_BISHENG}" ]; then
342348
# BUILD_C/CXX required for native (non-cross) RISC-V builds of Bisheng
343349
if [ -n "$CXX" ]; then

sbin/build.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,20 @@ configureShenandoahBuildParameter() {
9090
fi
9191
}
9292

93+
# capstone disassembler support is available in JDK19+
94+
configureCapstoneBuildParameter() {
95+
if [[ "${BUILD_CONFIG[OPENJDK_FEATURE_NUMBER]}" -ge 19 && "${BUILD_CONFIG[OS_KERNEL_NAME]}" = "linux" ]]; then
96+
# Ref: https://github.com/adoptium/jdk21/blob/c86f4dea9529640cd3234c5cad2f36f3201b1385/make/Hsdis.gmk#L45
97+
if [ "${ARCHITECTURE}" = "x64" -o "${ARCHITECTURE}" = "aarch64 " ]; then
98+
echo Configuring with hsdis capstone bundling support
99+
addConfigureArg "--enable-hsdis-bundling" ""
100+
addConfigureArg "--with-hsdis=" "capstone"
101+
addConfigureArg "--with-capstone=" "/usr/local"
102+
else
103+
echo Not configuring with hsdis/capstone support as we are not building on x64 or aarch64
104+
fi
105+
fi
106+
}
93107
# Configure reproducible build
94108
# jdk-17 and jdk-19+ support reproducible builds
95109
configureReproducibleBuildParameter() {
@@ -492,6 +506,7 @@ configureFreetypeLocation() {
492506
configureCommandParameters() {
493507
configureVersionStringParameter
494508
configureBootJDKConfigureParameter
509+
configureCapstoneBuildParameter
495510
configureShenandoahBuildParameter
496511
configureMacOSCodesignParameter
497512
configureDebugParameters

0 commit comments

Comments
 (0)