OpenJDK6 build oddity
Kelly.Ohair at Sun.COM
Tue Sep 8 09:06:11 PDT 2009
Andrew John Hughes wrote:
> It seems whenever you do a build of OpenJDK6 you get an empty
> 'fastdebug' directory, due to the following under setup in the
> top-level Makefile:
> $(MKDIR) -p $(OUTPUTDIR)/j2sdk-image
> $(MKDIR) -p $(ABS_OUTPUTDIR)/j2sdk-image
> $(MKDIR) -p $(OUTPUTDIR)-fastdebug/j2sdk-image
> $(MKDIR) -p $(ABS_OUTPUTDIR)-fastdebug/j2sdk-image
> Shouldn't there be a conditional here so that only the appropriate
> mkdir invocations are used?
> The logic in OpenJDK7's Makefile is completely different, and doesn't
> produce this empty directory.
This strange stuff came about while dealing with Windows and
the so called "8.3 short paths", or paths without spaces.
The makefiles generally need paths without spaces, but these
dang 8.3 paths are kind of a dynamic appendage on the long path,
and strange things happen when one or the other gets deleted and
recreated. I never got to the very bottom of this, but the top level
makefile somehow manages to delete and recreate, and sometimes you
would end up with several 8.3 paths (different directories) in these
two variables, but only one was actually used. Ugly stuff. :^(
The fastdebug ones had something to do with the way the top level
Makefile works when it created both the product images and the
fastdebug images. I forget the details, but some of the initialization
logic only got run once, so it had to create both.
I am sure this could be cleaned up, a complete build on Windows would
need to verify it is ok.
More information about the jdk6-dev