[8u] RFR: 8252975: [8u] JDK-8252395 breaks the build for --with-native-debug-symbols=internal
Severin Gehwolf
sgehwolf at redhat.com
Fri Sep 18 09:22:10 UTC 2020
Hi Andrew,
On Fri, 2020-09-18 at 06:40 +0100, Andrew Hughes wrote:
> On 20:16 Wed 09 Sep , Severin Gehwolf wrote:
> > Hi,
> >
> > Please review this 8u (jdk8u/jdk8u-dev tree) fix for JDK-8252395 that
> > I've pushed today. Thanks for Zhengyu Gu for noticing it. The pushed
> > fix added the java.debuginfo and unpack.debuginfo make targets on the
> > condition of ENABLE_DEBUG_SYMBOLS=true, which is insufficient. It needs
> > another check on POST_STRIP_CMD which is set to non-empty for --with-
> > native-debug-symbols={external,zipped}, and is indeed empty for --with-
> > native-debug-symbols=internal. For the --with-native-debug-symbols=none
> > case we have ENABLE_DEBUG_SYMBOLS=false.
> >
> > Bug: https://bugs.openjdk.java.net/browse/JDK-8252975
> > webrev: https://cr.openjdk.java.net/~sgehwolf/webrevs/JDK-8252975/01/webrev/
> >
> > Testing: Builds with --with-native-debug-symbols={none,internal,external,zipped} on Linux x86_64
> >
> > OK?
> >
> > Thanks,
> > Severin
> >
>
> Build is still broken for me with this patch:
>
> /usr/bin/cp /home/ahughes/builder/8u-dev/jdk/objs/java_objs/java.diz /home/ahughes/builder/8u-dev/jdk/bin/java.diz
> /usr/bin/cp: cannot stat '/home/ahughes/builder/8u-dev/jdk/objs/java_objs/java.diz': No such file or directory
>
> where --with-native-debug-symbols is not set (pre-JDK-8207324)
Hmm, I'm not sure how you are building. I've checked builds with:
$ bash configure \
--with-boot-jdk="/some/boot/jdk" \
--with-extra-cflags=-Wno-error \
--disable-zip-debug-info
$ make images
and
$ bash configure \
--with-boot-jdk="/some/boot/jdk" \
--with-extra-cflags=-Wno-error
$ make images
and
$ bash configure \
--with-boot-jdk="/some/boot/jdk" \
--with-extra-cflags=-Wno-error \
--disable-debug-symbols
$ make images
All seem to work fine for me. Are you sure you are not
setting POST_STRIP_CMD or the like explicitly somewhere else. Please
post the exact configure/make invocations you are using.
FWIW, that bug you've referenced seems wrong:
8207324: aarch64 jtreg: assert in TestOptionsWithRanges.jtr
You probably meant JDK-8036003:
8036003: Add --with-native-debug-symbols=[none|internal|external|zipped]
> The use of these two conditionals seems odd to me. What we want to know
> is whether zipped debuginfo is in use.
No. We want to know whether or not external debug symbols (zipped or
otherwise) are in use.
> This is not the same as debug symbols
> in general being enabled.
Yes. Correctly so.
> Also, DEBUGINFO_EXT is only being set when
> ZIP_DEBUGINFO_FILES is true!
How so?
ifeq ($(ZIP_DEBUGINFO_FILES), true)
DEBUGINFO_EXT := .diz
else ifeq ($(OPENJDK_TARGET_OS), macosx)
DEBUGINFO_EXT := .dSYM
else ifeq ($(OPENJDK_TARGET_OS), windows)
DEBUGINFO_EXT := .pdb
else
DEBUGINFO_EXT := .debuginfo
endif
On Linux with --with-native-debug-symbols=external this ends up with:
DEBUGINFO_EXT := .debuginfo
> POST_STRIP_CMD seems to only be used in image creation, so I don't
> think checking this is appropriate either.
Seems debatable.
> Instead, we should mirror what is done in make/common/NativeCompilation.gmk when
> creating the .diz files:
>
> -ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
> - ifneq ($(POST_STRIP_CMD), )
> +ifeq ($(ZIP_DEBUGINFO_FILES), true)
> + ifneq ($(STRIP_POLICY), no_strip)
>
> The second check is necessary because ZIP_DEBUGINFO_FILES is set by default,
> and so may be true even if STRIP_POLICY has been set to no_strip.
Your patch won't work for --with-native-debug-symbols=external. In that
case no *.debuginfo files for the java and unpack200 launchers would be
created.
With your patch:
$ find build/linux-x86_64-normal-server-release/images/j2sdk-image/bin/ | grep -E 'java\.debuginfo|unpack200\.debuginfo'
<nothing>
Expected:
$ find build/linux-x86_64-normal-server-release/images/j2sdk-image/bin/ | grep -E 'java\.debuginfo|unpack200\.debuginfo'
build/linux-x86_64-normal-server-release/images/j2sdk-image/bin/java.debuginfo
build/linux-x86_64-normal-server-release/images/j2sdk-image/bin/unpack200.debuginfo
> The attached patch fixed the build for me.
Sorry, I don't seem to be able to reproduce your build failure.
Thanks,
Severin
More information about the jdk8u-dev
mailing list