On Thu, 23 Nov 2023 09:09:37 GMT, Galder Zamarreño <d...@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@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 refreshed the contents of this pull request, and 
> previous commits have been removed. The incremental views will show 
> differences compared to the previous content of the PR. The pull request 
> contains two new commits since the last revision:
> 
>  - 8320533: Use autoconf to select the right capstone arch name
>  - 8320533: Update capstone aarch64 integration
>    
>    * `CAPSTONE_ARCH` for aarch64 is now `CS_ARCH_AARCH64` instead
>    of `CS_ARCH_ARM64`.
>    * The `-Daarch64` macro was getting in the way
>    and was causing invalid C to be produced.
>    Undefined it before including `capstone.h`.

src/utils/hsdis/capstone/hsdis-capstone.c line 54:

> 52: #include <inttypes.h>
> 53: #include <string.h>
> 54: 

Need a comment about this `undef`

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

PR Review Comment: https://git.openjdk.org/jdk/pull/16788#discussion_r1403107442

Reply via email to