jdk-repo-only-build broken in openjdk6 (original) (raw)
Tim Bell Tim.Bell at Sun.COM
Mon Apr 6 14:33:02 PDT 2009
- Previous message: jdk-repo-only-build broken in openjdk6
- Next message: jdk-repo-only-build broken in openjdk6
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi Martin:
I tried building just the openjdk6 jdk repo in (more or less) the usual way using 'cd jdk/make && make...'
This works in openjdk7 but fails in openjdk6 (and has failed for quite a while) ------------------------------------------------------------
Recursively making smartcardio all @ Sun Apr 5 16:04:57 PDT 2009 ... make[3]: Entering directory
/usr/local/google/home/martin/ws/openjdk6/jdk/make/sun/security/smartcardio'_ _/bin/mkdir -p ../../../../build/linux-i586/tmp/sun/sun.security.smartcardio/j2pcsc/objg_ _rm -f ../../../../build/linux-i586/tmp/sun/sun.security.smartcardio/j2pcsc/objg/.class.headers.i586_ _# Running javah:_ _/usr/local/google/SLASHJAVA/re/openjdk/6/promoted/latest/binaries/linux-i586/bin/javah_ _-bootclasspath ../../../../build/linux-i586/classes -d_ _../../../../build/linux-i586/tmp/sun/sun.security.smartcardio/j2pcsc/CClassHeaders/_ _\_ _sun.security.smartcardio.PCSC sun.security.smartcardio.PlatformPCSC_ _error: cannot access sun.security.smartcardio.PCSC_ _class file for sun.security.smartcardio.PCSC not found_ _javadoc: error - Class sun.security.smartcardio.PCSC not found._ _error: cannot access sun.security.smartcardio.PlatformPCSC_ _class file for sun.security.smartcardio.PlatformPCSC not found_ _javadoc: error - Class sun.security.smartcardio.PlatformPCSC not found._ _Error: No classes were specified on the command line. Try -help._ _make[3]: *** [../../../../build/linux-i586/tmp/sun/sun.security.smartcardio/j2pcsc/objg/.class.headers.i586]_ _Error 15_ _make[3]: Leaving directory_ _
/usr/local/google/home/martin/ws/openjdk6/jdk/make/sun/security/smartcardio' make[2]: *** [all] Error 1 make[2]: Leaving directory/usr/local/google/home/martin/ws/openjdk6/jdk/make/sun/security'_ _make[1]: *** [all] Error 1_ _make[1]: Leaving directory_ _
/usr/local/google/home/martin/ws/openjdk6/jdk/make/sun' make: *** [all] Error 1 Command /usr/bin/nice /usr/bin/linux32 make SHELL=/bin/bash VARIANT=DBG sanity all docs images failed: rc=2 ------------------------------------------------------------
This fingerprint matches 6668260/6668018
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/view_bug.do?bug_id=6668260 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6668018
Did you previously do a control build at the top level? 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
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: jdk-repo-only-build broken in openjdk6
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]