RFR: 8320533: Adjust capstone integration for v6 changes [v5]

Magnus Ihse Bursie ihse at openjdk.org
Mon Nov 27 08:30:08 UTC 2023


On Mon, 27 Nov 2023 07:38:28 GMT, Galder Zamarreño <duke at openjdk.org> wrote:

>> FYI @theRealAph
>> 
>> It includes a couple of commits to integrate with Capstone v6 while still working with Capstone v5 and before:
>> * `CAPSTONE_ARCH` for aarch64 is now `CS_ARCH_AARCH64` instead of `CS_ARCH_ARM64`. See [this document](https://github.com/Rot127/capstone/blob/v6-release-guide/docs/cs_v6_release_guide.md) to understand motivation for this Capstone change.
>> * The `-Daarch64` macro was getting in the way and was causing invalid C to be produced. Undefined it before including `capstone.h`. Thx @rwestrel for suggesting the fix!
>> * Enhanced autoconf to select the right aarch64 arch name depending on the capstone library in use.
>> 
>> Here's some output to demonstrate autoconf:
>> 
>> 1. If using capstone v6, you will see:
>> 
>> checking capstone aarch64 arch name... AARCH64
>> 
>> 
>> 2. If using capstone v5, or earlier, you will see:
>> 
>> checking capstone aarch64 arch name... ARM64
>> 
>> 
>> With v5 or earlier, the compilation error in the config log file is the expected one:
>> 
>> 
>> configure:142906: checking capstone aarch64 arch name
>> configure:142919: /usr/bin/clang -c  -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk -iframework /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/System/Library/Frameworks  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk -iframework /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.0.sdk/System/Library/Frameworks conftest.c >&5
>> conftest.c:27:16: error: use of undeclared identifier 'CS_ARCH_AARCH64'; did you mean 'CS_ARCH_ARM64'?
>> cs_arch test = CS_ARCH_AARCH64
>>                ^~~~~~~~~~~~~~~
>>                CS_ARCH_ARM64
>> /Users/galder/opt/capstone-5/include/capstone/capstone.h:76:2: note: 'CS_ARCH_ARM64' declared here
>>         CS_ARCH_ARM64,          ///< ARM-64, also called AArch64
>>         ^
>> 1 error generated.
>> configure:142919: $? = 1
>> configure: failed program was:
>> | /* confdefs.h */
>> | #define PACKAGE_NAME "OpenJDK"
>> | #define PACKAGE_TARNAME "openjdk"
>> | #define PACKAGE_VERSION "openjdk"
>> | #define PACKAGE_STRING "OpenJDK openjdk"
>> | #define PACKAGE_BUGREPORT "build-dev at openjdk.org"
>> | #define PACKAGE_URL "https://openjdk.org"
>> | #define HAVE_STDIO_H 1
>> | #define HAVE_STDLIB_H 1
>> | #define HAVE_STRING_H 1
>> | #define HAVE_INTTYPES_H 1
>> | #define HAVE_STDINT_H 1...
>
> Galder Zamarreño has updated the pull request incrementally with one additional commit since the last revision:
> 
>   8320533: Updated copyright year

The PR title must be the same (after the bug ID and colon) as the JBS title. I updated the title in JBS for you (since the PR title seemed better to describe the changes imho). When the bots detect this (will happen shortly), they will remove the integration blocker, and you will be able to issue `/integrate`.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/16788#issuecomment-1827352521


More information about the build-dev mailing list