[8u] RFR: 8252975: [8u] JDK-8252395 breaks the build for --with-native-debug-symbols=internal
Andrew Hughes
gnu.andrew at redhat.com
Wed Sep 23 03:39:09 UTC 2020
On 11:22 Fri 18 Sep , Severin Gehwolf wrote:
> Hi Andrew,
>
> > 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]
No, JDK-8207234 (must have flipped the digits) as referenced in
common/autoconf/jdk-options.m4.
This is building with:
$ make [...] STRIP_POLICY=no_strip
>
> > 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
>
Right, I misread this. Sorry for the confusion. It was late, and what
should have been a simple merge led to an unexpected build failure
from this.
> > POST_STRIP_CMD seems to only be used in image creation, so I don't
> > think checking this is appropriate either.
>
> Seems debatable.
>
I don't see how...
$ grep -r 'POST_STRIP_CMD' make jdk/make/
jdk/make/Images.gmk:ifneq ($(POST_STRIP_CMD), )
jdk/make/Images.gmk: $(POST_STRIP_CMD) $<
That's the only instance, other than in your patch.
$ grep -r 'STRIP_POLICY' make jdk/make/
make/common/NativeCompilation.gmk: ifeq ($$($1_STRIP_POLICY),)
make/common/NativeCompilation.gmk: $1_STRIP_POLICY:=$$(STRIP_POLICY)
make/common/NativeCompilation.gmk: ifneq ($$($1_STRIP_POLICY), no_strip)
make/common/NativeCompilation.gmk: ifneq ($$($1_STRIP_POLICY), no_strip)
make/common/NativeCompilation.gmk: ifneq ($$($1_STRIP_POLICY), no_strip)
make/common/NativeCompilation.gmk: ifneq ($$($1_STRIP_POLICY), no_strip)
make/common/NativeCompilation.gmk: ifneq ($$($1_STRIP_POLICY), no_strip)
TL;DR: we need a check on STRIP_POLICY in the conditional.
It doesn't really matter whether this is in addition to
POST_STRIP_CMD or not, but it's needed as STRIP_POLICY=no_strip
alone worked before and now it doesn't.
Thanks,
--
Andrew :)
Senior Free Java Software Engineer
OpenJDK Package Owner
Red Hat, Inc. (http://www.redhat.com)
PGP Key: ed25519/0xCFDA0F9B35964222 (hkp://keys.gnupg.net)
Fingerprint = 5132 579D D154 0ED2 3E04 C5A0 CFDA 0F9B 3596 4222
More information about the jdk8u-dev
mailing list