Building jdk with `--with-extra-cflags='-Wno-incompatible-pointer-types'` triggers 1000+ warning messages like `cc1plus: warning: command-line option ‘-Wno-incompatible-pointer-types’ is valid for C/ObjC but not for C++`.
The root cause is that `JVM_CFLAGS ` which contains both `EXTRA_CXXFLAGS` and `EXTRA_CFLAGS` when compiling `src/hotspot` C++ source files and building `BUILD_LIBJVM`. This PR does: 1. Not to append `EXTRA_CFLAGS` or `EXTRA_CXXFLAGS` into `JVM_CFLAGS` before calling `SetupJdkLibrary`, instead let `SetupCompilerFlags` accept and merge `EXTRA_CFLAGS` and `EXTRA_CXXFLAGS` passed from `SetupJdkLibrary` as parameters, so CPP compilation will only see `EXTRA_CXXFLAGS` as expected. 2. Correct `PCH_COMMAND` to use `EXTRA_CXXFLAGS` as precompiled.hpp.gch should not be compiled with `EXTRA_CFLAGS`. 3. Fixed `STATIC_LIB_CFLAGS` in `Flags.gmk` to `-DSTATIC_BUILD=1`, which was missed by [cbab40bc](https://github.com/openjdk/jdk/commit/cbab40bce45a2f58906be49c841178fa1dfd457e#diff-ab3ce05e795360030f19402fd0c2fad1dc1f7c5e7acc993cc4a2096cf31ccf40R114-R121) for the refactor of building static libs. Tests: Passed jdk building on an AArch64 Linux system and tier1 sanity tests, also passed OpenJDK GHA Sanity Checks. ------------- Commit messages: - STATIC_LIB_CFLAGS in Flags.gmk should be updated to -DSTATIC_BUILD=1 too - precompiled.hpp.gch should be compiled with EXTRA_CXXFLAGS - 8352284: EXTRA_CFLAGS incorrectly applied to BUILD_LIBJVM src/hotspot C++ source files Changes: https://git.openjdk.org/jdk/pull/24115/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24115&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8352284 Stats: 8 lines in 5 files changed: 2 ins; 1 del; 5 mod Patch: https://git.openjdk.org/jdk/pull/24115.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24115/head:pull/24115 PR: https://git.openjdk.org/jdk/pull/24115