From aa170282445e89ac91a32baeaebb2a17635b8657 Mon Sep 17 00:00:00 2001 From: Stewart X Addison Date: Fri, 30 Jun 2023 11:02:20 +0100 Subject: [PATCH] Configure JDK19+ on Linux with hsdis capstone support --- .../platform-specific-configurations/linux.sh | 6 ++++++ sbin/build.sh | 15 +++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/build-farm/platform-specific-configurations/linux.sh b/build-farm/platform-specific-configurations/linux.sh index 94d43424ea..a7215aa02d 100755 --- a/build-farm/platform-specific-configurations/linux.sh +++ b/build-farm/platform-specific-configurations/linux.sh @@ -338,6 +338,12 @@ elif [ -r /usr/bin/gcc-7 ]; then [ -r /usr/bin/g++-7 ] && export CXX=/usr/bin/g++-7 fi +if [ "$JAVA_FEATURE_VERSION" -ge 20 ]; then + if [ -r /usr/local/lib/libcapstone.so.4 ]; then + export CONFIGURE_ARGS_FOR_ANY_PLATFORM="${CONFIGURE_ARGS_FOR_ANY_PLATFORM} --with-capstone=/usr/local" + fi +fi + if [ "${VARIANT}" == "${BUILD_VARIANT_BISHENG}" ]; then # BUILD_C/CXX required for native (non-cross) RISC-V builds of Bisheng if [ -n "$CXX" ]; then diff --git a/sbin/build.sh b/sbin/build.sh index 23f524e4be..4ff7895a14 100755 --- a/sbin/build.sh +++ b/sbin/build.sh @@ -90,6 +90,20 @@ configureShenandoahBuildParameter() { fi } +# capstone disassembler support is available in JDK19+ +configureCapstoneBuildParameter() { + if [[ "${BUILD_CONFIG[OPENJDK_FEATURE_NUMBER]}" -ge 19 && "${BUILD_CONFIG[OS_KERNEL_NAME]}" = "linux" ]]; then + # Ref: https://github.com/adoptium/jdk21/blob/c86f4dea9529640cd3234c5cad2f36f3201b1385/make/Hsdis.gmk#L45 + if [ "${ARCHITECTURE}" = "x64" -o "${ARCHITECTURE}" = "aarch64" ]; then + echo Configuring with hsdis capstone bundling support + addConfigureArg "--enable-hsdis-bundling" "" + addConfigureArg "--with-hsdis=" "capstone" + addConfigureArg "--with-capstone=" "/usr/local" + else + echo Not configuring with hsdis/capstone support as we are not building on x64 or aarch64 + fi + fi +} # Configure reproducible build # jdk-17 and jdk-19+ support reproducible builds configureReproducibleBuildParameter() { @@ -492,6 +506,7 @@ configureFreetypeLocation() { configureCommandParameters() { configureVersionStringParameter configureBootJDKConfigureParameter + configureCapstoneBuildParameter configureShenandoahBuildParameter configureMacOSCodesignParameter configureDebugParameters