RFR: 8345016: [ASAN] java.c false positive ‘%s’ directive argument is null [-Werror=format-truncation=]

Jaikiran Pai jpai at openjdk.org
Wed Dec 4 15:45:43 UTC 2024


On Wed, 4 Dec 2024 14:57:22 GMT, SendaoYan <syan at openjdk.org> wrote:

> Hi all,
> The file src/java.base/share/native/libjli/java.c generate  false positive compile warning by gcc14 with gcc options `-fsanitize=undefined -O2`, and make jdk build error when configure with option `--enable-asan`. So I think it's necessory to disable the false positive compile warning to make jdk build normally with configure option `--enable-asan`.
> This PR use gcc `_Pragma` to disbale the `-Wformat-truncation` compile warning, to make the disable code area as small as possible, and make the change looks ugly. There is another solution to disable the compile warning seen as below, but it will disable the compile warning of java.c. So I use the first solution.
> 
> 
> diff --git a/make/modules/java.base/lib/CoreLibraries.gmk b/make/modules/java.base/lib/CoreLibraries.gmk
> index 61ac495968a..5bc83cf0978 100644
> --- a/make/modules/java.base/lib/CoreLibraries.gmk
> +++ b/make/modules/java.base/lib/CoreLibraries.gmk
> @@ -178,6 +178,7 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBJLI, \
>      OPTIMIZATION := HIGH, \
>      CFLAGS := $(LIBJLI_CFLAGS) $(LIBZ_CFLAGS), \
>      DISABLED_WARNINGS_gcc := unused-function unused-variable, \
> +    DISABLED_WARNINGS_gcc_java.c := format-truncation, \
>      DISABLED_WARNINGS_clang := deprecated-non-prototype format-nonliteral \
>          unused-function, \
>      DISABLED_WARNINGS_clang_java_md_macosx.m := unused-variable, \

Hello @sendaoYan, what exact version of `gcc` is this?

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

PR Comment: https://git.openjdk.org/jdk/pull/22546#issuecomment-2517812472


More information about the core-libs-dev mailing list