Building of jaxp with new build system (at least) broken.

Nils Loodin nils.loodin at oracle.com
Fri Apr 27 08:27:40 PDT 2012


When syncing out a fresh clone from http://hg.openjdk.java.net/jdk8/jdk8/ and trying to build, I get errors when building jaxp. 
This is both on my linux workstation and my mac workstation.

This is what i do:
nloodinmba:safix loon$ cd common/makefiles/
nloodinmba:makefiles loon$ make

This is the error:
wc: /Users/loon/hg-workspaces/safix/build/macosx-x64-normal-server-release/jaxp/classes/_the.batch.tmp: open: No such file or directory
Compiling files in batch BUILD_JAXP
javac: file not found: /Users/loon/hg-workspaces/safix/build/macosx-x64-normal-server-release/jaxp/classes/_the.batch.tmp (No such file or directory)
make[1]: *** [/Users/loon/hg-workspaces/safix/build/macosx-x64-normal-server-release/jaxp/classes/_the.batch] Error 3
make: *** [jaxp] Error 2

Looking through and trying to make sense of the infra changes (sorry, I haven't really been following this closely) it seemed to me that for each subdir, the file tree is traversed in search for source files, these are recorded into _the.batch.tmp, and this is sent to javac. In this case, after some printf-debugging, It really looked like the string containing the source files was empty, and no file was generated.

This is done in the file common/makefiles/JavaCompilation.gmk, and the top source dir is looked for in the variable $1_SRCROOTSC, which in my case was empty.

Looking through jaxp/makefiles/Makefile, the source dir seems to be set to jaxp/src/share/classes:
(…) SRC:=$(JAXP_TOPDIR)/src/share/classes,\ (…)

However, looking through the src-folder in jaxp, this is empty, and all classes are located directly under jaxp/src.

Looking through the mercurial history, I came across change 
Revision: 292
Changeset: 7b89fed7212b9e4a9506cdd8c628f48ab447da0b[7b89fed7212b]
Author: joehw
Date: April 12, 2012 17:38:26 GMT+02:00

7160496: Rename JDK8 JAXP source directory
Summary: moving src/share/classes to src
Reviewed-by: ohair

The issue is clear then, the source files were moved, but the new makefile wasn't updated.

Here's a suggested fix:

diff --git a/makefiles/Makefile b/makefiles/Makefile
--- a/makefiles/Makefile
+++ b/makefiles/Makefile
@@ -47,7 +47,7 @@
 
 $(eval $(call SetupJavaCompilation,BUILD_JAXP,\
 		SETUP:=GENERATE_NEWBYTECODE_DEBUG,\
-		SRC:=$(JAXP_TOPDIR)/src/share/classes,\
+		SRC:=$(JAXP_TOPDIR)/src,\
 		CLEAN:=.properties,\
 		BIN:=$(JAXP_OUTPUTDIR)/classes,\
 		SRCZIP:=$(JAXP_OUTPUTDIR)/dist/lib/src.zip))


I created bug 7164961 for this.
I created a webrev and put it here: http://cr.openjdk.java.net/~nloodin/7164961/webrev.00/ 

If approved I would need a sponsor to push this, I'm not a committer.. 

Regards,
Nils Loodin


More information about the build-infra-dev mailing list