jdk-repo-only-build broken in openjdk6 (original) (raw)
Martin Buchholz martinrb at google.com
Mon Apr 6 14:55:03 PDT 2009
- Previous message: jdk-repo-only-build broken in openjdk6
- Next message: hg: jdk6/jdk6/jdk: 6806019: 38 JCK api/javax_sound/midi/ tests fails starting from jdk7 b46
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- Previous message: jdk-repo-only-build broken in openjdk6
- Next message: hg: jdk6/jdk6/jdk: 6806019: 38 JCK api/javax_sound/midi/ tests fails starting from jdk7 b46
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]