jdk-repo-only-build broken in openjdk6 (original) (raw)

Martin Buchholz martinrb at google.com
Mon Apr 6 14:55:03 PDT 2009


On Mon, Apr 6, 2009 at 14:33, Tim Bell <Tim.Bell at sun.com> wrote:

Hi Martin:

Bug ID: 6668260 build in openjdk/jdk/make fails if openjdk/build exists Bug ID: 6668018 Incremental/partial OpenJDK builds from jdk/make subdirectories do not always work http://bugs.sun.com/bugdatabase/viewbug.do?bugid=6668260 http://bugs.sun.com/bugdatabase/viewbug.do?bugid=6668018 Did you previously do a control build at the top level?

Ah yes indeed - good clue!

 If so, another

workaround is to rename that output directory.  In your case, that would be:  _mv /usr/local/google/home/martin/ws/openjdk6/build _ /usr/local/google/home/martin/ws/openjdk6/build.ignore

I think my JDK_TOPDIR workaround is another clue, that should be added to the bug report.

Since it appears that this bug is also in openjdk7, I would make it a P2, just because of the extreme frustration developers are likely to encounter.

The Makefiles could simply make JDK_TOPDIR absolute, but that has the problem that FullPath is defined in a Makefile included using a path that uses JDK_TOPDIR.

Martin

HTH - Tim

It's not obvious why a full control build doesn't encounter this issue. After much frustrating debugging, I found that it's due to the control build passing an absolute JDKTOPDIR to the jdk repo sub-build. So I have a fine workaround.  Define JDKTOPDIR to the absolute path of the jdk directory.  I still don't know where in the makefiles is a dependency on JDKTOPDIR not being relative.  The smartcardio Makefile appears to be blameless.  This would be a P2 bug to fix, were it not for the fact that openjdk6 does not see a lot of development. Here's a snippet of perl I use in my build script: {  # Work around bug in openjdk6, that requires an absolute JDKTOPDIR  use Cwd 'getcwd';  my $dir = getcwd();  while ($dir ne '') {  sub isJdkDir($) { -r "$[0]/make/common/Program.gmk" }  last if isJdkDir "$dir/jdk";  if (isJdkDir $dir) {  $ENV{JDKTOPDIR} = $dir;  print "JDKTOPDIR=$dir\n" if $verbose;  last;  }  $dir =~ s~/[^/]*$~~;  } } Hope this helps. Martin



More information about the jdk6-dev mailing list