Hi Matthias, good job, thanks (and thanks to Magnus)!
Just tried it, works. Change looks good. ..Thomas On Thu, Oct 26, 2017 at 9:05 AM, Baesken, Matthias <[email protected] > wrote: > 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 > > >> > > >> > > >> > > >> > > >> > > > > >
