diff --git a/make/autoconf/flags-cflags.m4 b/make/autoconf/flags-cflags.m4 index 6298bcae416..1a6a040965b 100644 --- a/make/autoconf/flags-cflags.m4 +++ b/make/autoconf/flags-cflags.m4 @@ -93,8 +93,25 @@ AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS], ) fi - CFLAGS_DEBUG_SYMBOLS="-g -gdwarf-4" - ASFLAGS_DEBUG_SYMBOLS="-g" + # Enough to produce viable backtrace without blowing up debug info size. + GCC_DEBUG_LEVEL=1 + + case $DEBUG_LEVEL in + slowdebug ) + # Default to produce debuggable binaries + GCC_DEBUG_LEVEL=2 + ;; + esac + + UTIL_ARG_WITH(NAME: gcc-debug-level, TYPE: string, + DEFAULT: ${GCC_DEBUG_LEVEL}, + RESULT: GCC_DEBUG_LEVEL, + DESC: [Sets the GCC debug level, when debug info generation is enabled], + DEFAULT_DESC: [from build debug level]) + AC_SUBST(GCC_DEBUG_LEVEL) + + CFLAGS_DEBUG_SYMBOLS="-gdwarf-4 -g${GCC_DEBUG_LEVEL}" + ASFLAGS_DEBUG_SYMBOLS="-g${GCC_DEBUG_LEVEL}" elif test "x$TOOLCHAIN_TYPE" = xclang; then if test "x$ALLOW_ABSOLUTE_PATHS_IN_OUTPUT" = "xfalse"; then # Check if compiler supports -fdebug-prefix-map. If so, use that to make diff --git a/make/langtools/src/classes/build/tools/symbolgenerator/CreateSymbols.java b/make/langtools/src/classes/build/tools/symbolgenerator/CreateSymbols.java index fe5938ce0e3..220face0868 100644 --- a/make/langtools/src/classes/build/tools/symbolgenerator/CreateSymbols.java +++ b/make/langtools/src/classes/build/tools/symbolgenerator/CreateSymbols.java @@ -282,6 +282,8 @@ public void createSymbols(String ctDescriptionFileExtra, String ctDescriptionFil try (OutputStream fos = new FileOutputStream(ctSymLocation); OutputStream bos = new BufferedOutputStream(fos); ZipOutputStream jos = new ZipOutputStream(bos)) { + // Do not compress ct.sym, allow external compressor to work on it. + jos.setLevel(0); for (Entry> e : directory2FileData.entrySet()) { jos.putNextEntry(createZipEntry(e.getKey(), timestamp)); for (FileData fd : e.getValue()) {