Hello , could you please review and push this small change fixing the aix jre generation in jdk10 :
http://cr.openjdk.java.net/~mbaesken/webrevs/8189618/ (and later on it would be good to get it into jdk9 as well because the same issue exists there too) Thanks and best regards, Matthias > -----Original Message----- > From: Magnus Ihse Bursie [mailto:[email protected]] > Sent: Mittwoch, 25. Oktober 2017 16:46 > To: Erik Joelsson <[email protected]>; Baesken, Matthias > <[email protected]>; Thomas Stüfe <[email protected]> > Cc: build-dev ([email protected]) <[email protected]>; > [email protected] > Subject: Re: AIX build not generating a jre image > > On 2017-10-25 15:21, Erik Joelsson wrote: > > Ah, good find. I would argue that the correct fix is: > > > > jdk: $(TOOL_JDK_TARGETS) $(JDK_TARGETS) > > jre: $(TOOL_JRE_TARGETS) $(JRE_TARGETS) > > Yeah, good find Matthias! > > I agree with Erik's suggested fix. This is a bit of "how has this ever > worked?!?". It turns out that our closed extensions are unconditionally > adding targets to JRE_TARGETS, so we never noticed that it could happen > that JRE_TARGETS are empty, and the building of the JRE image does not > work. This will happen on Windows as well as AIX. > > /Magnus > > > > > /Erik > > > > On 2017-10-25 14:57, Baesken, Matthias wrote: > >> Hi Magnus, thanks for your advice. > >> Adding a bit of tracing to Images.gmk indeed helps to clarify the > >> issue . > >> Output of $(info this is the jre location: > >> $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)) looks nice and as > expected > >> on AIX . > >> However it turns out the $(JRE_TARGETS) was empty on AIX , > >> this leads to an empty dependency > >> > >> jre: $(JRE_TARGETS) > >> > >> on AIX in Images.gmk , and this leads to “Nothing to be done for …. “. > >> Background is that aix was not considered in the platform > >> dependent parts of make/Images.gmk where JRE_TARGETS is filled > >> for linux, macosx, solaris. > >> I added aix there and the jre shows up in the images. > >> Here is my diff (openjdk9) , still with tracing output AND with > >> the added aix . > >> Now JRE_TARGETS is not empty anymore which leads to successful > >> generation of the JRE. > >> > >> Tracing output seen in the makefile > >> + echo JRE_TARGETS are: > /mygenerationdir/images/jre/man/man1/java.1 …. > >> > >> > >> Diff with tracing : > >> > >> diff -r a08cbfc0e4ec make/Images.gmk > >> --- a/make/Images.gmk Thu Aug 03 18:56:56 2017 +0000 > >> +++ b/make/Images.gmk Wed Oct 25 14:41:06 2017 +0200 > >> @@ -43,6 +43,10 @@ > >> $(eval $(call ReadImportMetaData)) > >> +# helpful tracing > >> +$(info this is the jre location: > >> $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)) > >> + > >> + > >> JRE_MODULES += $(filter $(ALL_MODULES), $(BOOT_MODULES) \ > >> $(PLATFORM_MODULES) $(JRE_TOOL_MODULES)) > >> JDK_MODULES += $(ALL_MODULES) > >> @@ -295,7 +299,7 @@ > >> $(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.PCK/man1/, > >> $(JDK_MAN_PAGES)) > >> endif > >> - ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), ) > >> + ifneq ($(findstring $(OPENJDK_TARGET_OS), aix linux macosx), ) > >> JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, > >> $(JRE_MAN_PAGES)) \ > >> $(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, > >> $(JRE_MAN_PAGES)) \ > >> $(JRE_IMAGE_DIR)/man/ja > >> @@ -436,6 +440,8 @@ > >> jdk: $(JDK_TARGETS) > >> jre: $(JRE_TARGETS) > >> + echo JRE_TARGETS are: $(JRE_TARGETS) , TOOL_JRE_TARGETS are: > >> $(TOOL_JRE_TARGETS) > >> + > >> symbols: $(SYMBOLS_TARGETS) > >> > >> > >> Best regards, Matthias > >> > >> From: Magnus Ihse Bursie [mailto:[email protected]] > >> Sent: Mittwoch, 25. Oktober 2017 10:24 > >> To: Baesken, Matthias <[email protected]>; Thomas Stüfe > >> <[email protected]> > >> Cc: build-dev ([email protected]) > >> <[email protected]>; [email protected] > >> Subject: Re: AIX build not generating a jre image > >> > >> > >> On 2017-10-24 16:44, Baesken, Matthias wrote: > >> > >> * Do you get to this stage at all? I.e, can you see "Createing > >> jre jimage" in the output? > >> > >> Hi Magnus, when comparing the linux and aix logs of our openjdk9 > >> builds , I see for Linux at some point : > >> > >> > >> > >> gmake[3]: Entering directory ` . . . /nightly/jdk9/make' > >> > >> /bin/echo Creating jre jimage > >> > >> > >> While on AIX it says : > >> > >> > >> make[3]: Entering directory ` . . . /nightly/jdk9/make' > >> > >> make[3]: Nothing to be done for `jre'. > >> > >> make[3]: Leaving directory ` . . . /nightly/jdk9/make' > >> > >> > >> this Looks wrong to me ! > >> That means that $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) is > considered > >> up to date by make. This is wrong if that file does not exist. Are > >> you *sure* you do not have a jre built? > >> Verify the contents of these variables. Perhaps add a > >> $(info this is the jre location: > $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)) > >> at the top of Images.gmk, > >> and check the location that is printed. > >> > >> /Magnus > >> > >> > >> > >> > >> ( the . . . in the output has been removed by me it points to > >> the build dir). > >> > >> Best regards, Matthias > >> > >> > >> From: ppc-aix-port-dev > >> [mailto:[email protected]] On Behalf Of > >> Magnus Ihse Bursie > >> Sent: Dienstag, 24. Oktober 2017 15:47 > >> To: Thomas Stüfe > >> <[email protected]><mailto:[email protected]> > >> Cc: build-dev > >> ([email protected]<mailto:[email protected]>) > >> <[email protected]><mailto:[email protected]>; > >> [email protected]<mailto:ppc-aix-port- > [email protected]> > >> > >> Subject: Re: AIX build not generating a jre image > >> > >> On 2017-10-23 10:16, Thomas Stüfe wrote: > >> Hi Magnus, > >> > >> On Mon, Oct 23, 2017 at 9:12 AM, Magnus Ihse Bursie > >> > <[email protected]<mailto:[email protected]> > > > >> wrote: > >> > >> On 2017-10-18 16:14, Thomas Stüfe wrote: > >> On Wed, Oct 18, 2017 at 3:25 PM, Volker Simonis > >> <[email protected]<mailto:[email protected]>> > >> wrote: > >> Hi Goetz, > >> > >> How do our nightly builds look like? Do they create the JRE image? > >> > >> Regards, > >> Volker > >> > >> > >> Goetz is in a meeting. > >> > >> None of our AIX builds creates a JRE image. Works on other platforms. > >> Looks > >> like a bug. > >> > >> I tried to build jre explicitly (make jre-image); build finishes > >> sucessfully but still no jre. > >> Since I don't have access to any AIX machines, it's difficult to for > >> me to do much about this. Let me know if you need assistance in > >> tracking this down. > >> > >> Some suggestions: > >> run "make LOG=info,cmdlines" to track the progress of the build. > >> > >> If you get lost in the log files, try running "make jre-image" and > >> then "rm build/$BUILD/images/jre", and then "make LOG=info,cmdlines > >> jre-image" to see only the output for the jre-image target. > >> > >> Thanks for the hints! I'll try that. I played around last week with > >> make -d --print-data-base but got lost in the information. > >> > >> Last week I burned some time on this problem without much success. I > >> got stuck understanding the rule in Images.gmk: > >> > >> $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \ > >> $(call DependOnVariable, JRE_MODULES_LIST) $(BASE_RELEASE_FILE) > >> $(ECHO) Creating jre jimage > >> $(RM) -r $(JRE_IMAGE_DIR) > >> $(JLINK_JRE_EXTRA_OPTS) \ > >> $(JLINK_TOOL) --add-modules $(JRE_MODULES_LIST) \ > >> --output $(JRE_IMAGE_DIR) > >> $(TOUCH) $@ > >> > >> and its brethren. > >> > >> It seems this rule just does not get executed for jre-image. So, > >> trying to understand this (I am no makefile expert): > >> > >> $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE) is one file from the target > >> dir, in this case jre/java, whose non-existence or out-of-dateness > >> triggers the rule > >> > >> Dependencies: > >> - $(JMODS) is <outputdir>/jmods, which gets built and does exist > >> - $(call DependOnVariable, JRE_MODULES_LIST) > >> This is just a macro that creates a dependency on the contents of the > >> variable JRE_MODULES_LIST. > >> > >> > >> > >> $(BASE_RELEASE_FILE) is a text file which, if it exists and it > >> contains the value of $JRE_MODULES_LIST, will result false (not out > >> of date), otherwise it will update the file with the value of > >> $JRE_MODULES_LIST and return true, triggering the target, yes? If I > >> got this right, why do we use the same output file for all targets > >> (jre, jdk) etc? > >> No, this is a separate dependency. It's the file named "release" in > >> the image that is to be included. If it has changed we need to > >> trigger a new image. > >> > >> Do you get to this stage at all? I.e, can you see "Createing jre > >> jimage" in the output? If not, there's a problem before we even get > >> to this rule. Otherwise, the jlink command is likely broken. Try > >> copy-pasting the full jlink command and running it from the shell > >> directly to see what happens. > >> > >> /Magnus > >> > >> > >> > >> ..Thomas > >> > >> > >> > >> /Magnus > >> > >> > >> > >> > >> I created https://bugs.openjdk.java.net/browse/JDK-8189618 to track > >> this. > >> > >> ..Thomas > >> > >> > >> > >> > >> Lindenmaier, Goetz > >> <[email protected]<mailto:[email protected]>> > schrieb > >> am Mi. 18. Okt. > >> 2017 > >> um 14:56: > >> Hi Steve, > >> > >> I think this is an error. > >> We never decided not to generate a jre image as far as I know. > >> > >> Best regards, > >> Goetz. > >> -----Original Message----- > >> From: ppc-aix-port-dev > >> [mailto:ppc-aix-port-dev-<mailto:ppc-aix-port-dev-> > >> [email protected]<mailto:[email protected]>] On > Behalf > >> Of Steve Groeger > >> Sent: Mittwoch, 18. Oktober 2017 14:34 > >> To: > >> [email protected]<mailto:ppc-aix-port- > [email protected]> > >> Subject: AIX build not generating a jre image > >> > >> Hi all, > >> > >> When building OpenJDK9 on AIX should the build generate a JRE image ie > >> build/aix-ppc64-normal-server-release/images/jre/bin as well as a JDK > >> image > >> ie build/aix-ppc64-normal-server-release/images/jdk/bin? When I try > >> building on my AIX system it is only generating a JDK image. Is this a > >> issue or is > >> it working correctly? > >> > >> > >> Thanks > >> Steve Groeger > >> Java Runtimes Development > >> IBM Hursley > >> IBM United Kingdom Ltd > >> Tel: (44) 1962 816911 Mobex: 279990 Mobile: 07718 517 129 > >> Fax (44) 1962 816800 > >> Lotus Notes: Steve Groeger/UK/IBM > >> Internet: [email protected]<mailto:[email protected]> > >> <mailto:[email protected]<mailto:[email protected]>> > >> > >> Unless stated otherwise above: > >> IBM United Kingdom Limited - Registered in England and Wales with > >> number > >> 741598. > >> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 > >> 3AU > >> Unless stated otherwise above: > >> IBM United Kingdom Limited - Registered in England and Wales with > >> number > >> 741598. > >> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 > >> 3AU > >> > >> > >> > >> > >> > >
