2 files changed +11
-2
lines changed Original file line number Diff line number Diff line change @@ -231,8 +231,14 @@ AC_DEFUN([FLAGS_SETUP_OPTIMIZATION],
231
231
# -D_FORTIFY_SOURCE=2 hardening option needs optimization (at least -O1) enabled
232
232
# set for lower O-levels -U_FORTIFY_SOURCE to overwrite previous settings
233
233
if test "x$OPENJDK_TARGET_OS" = xlinux -a "x$DEBUG_LEVEL" = "xfastdebug"; then
234
- ENABLE_FORTIFY_CFLAGS="-D_FORTIFY_SOURCE=2"
235
234
DISABLE_FORTIFY_CFLAGS="-U_FORTIFY_SOURCE"
235
+ # ASan doesn't work well with _FORTIFY_SOURCE
236
+ # See https://github.com/google/sanitizers/wiki/AddressSanitizer#faq
237
+ if test "x$ASAN_ENABLED" = xyes; then
238
+ ENABLE_FORTIFY_CFLAGS="${DISABLE_FORTIFY_CFLAGS}"
239
+ else
240
+ ENABLE_FORTIFY_CFLAGS="-D_FORTIFY_SOURCE=2"
241
+ fi
236
242
C_O_FLAG_HIGHEST_JVM="${C_O_FLAG_HIGHEST_JVM} ${ENABLE_FORTIFY_CFLAGS}"
237
243
C_O_FLAG_HIGHEST="${C_O_FLAG_HIGHEST} ${ENABLE_FORTIFY_CFLAGS}"
238
244
C_O_FLAG_HI="${C_O_FLAG_HI} ${ENABLE_FORTIFY_CFLAGS}"
Original file line number Diff line number Diff line change @@ -423,7 +423,10 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_ADDRESS_SANITIZER],
423
423
fi
424
424
] ,
425
425
IF_ENABLED: [
426
- ASAN_CFLAGS="-fsanitize=address -fno-omit-frame-pointer"
426
+ # ASan is simply incompatible with gcc -Wstringop-truncation. See
427
+ # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85650
428
+ # It's harmless to be suppressed in clang as well.
429
+ ASAN_CFLAGS="-fsanitize=address -Wno-stringop-truncation -fno-omit-frame-pointer"
427
430
ASAN_LDFLAGS="-fsanitize=address"
428
431
JVM_CFLAGS="$JVM_CFLAGS $ASAN_CFLAGS"
429
432
JVM_LDFLAGS="$JVM_LDFLAGS $ASAN_LDFLAGS"
0 commit comments