Error when building openjdk 7
Kelly O'Hair
kelly.ohair at oracle.com
Wed Apr 27 15:26:16 UTC 2011
This is a reply to a delayed email, but the answer may be helpful to someone, assuming this email
doesn't get delayed...
There is a bug in the corba idlj tool that causes build failures when the root of the directory path doing the
build starts with /d or /i or /D or /T ... basically any / followed by what is an option letter for idlj.
The idlj command line parsing was originally setup to accept -option or /option, trying to be Unix and
Windows friendly I suspect, but that was obviously (now) a bad idea.
This was fixed in the jdk7 idlj, but the problem lingers in the jdk6 version.
---
Slightly related to this is an outstanding bug with the corba repository build process in that the idlj
tool should be handled more like the langtools javac.jar, we should build a idlj.jar first with the
latest idlj sources in jdk7, run that as part of the jdk7 corba build (run idlj.jar with the bootdir jdk),
and also build idlj classes with -target 7 for delivery into the jdk7 product.
This means that these corba sources need to be compilable and runnable with the boot jdk.
Had that been done, the original issue would not have been seen because we would not have been
running the boot jdk idlj, which has this build failure issue.
Yeah yeah ZZZZZZZZ blah blah blah ;^)
-kto
On Apr 5, 2011, at 7:06 AM, jingguo yao wrote:
> I am using Ubuntu desktop 10.04. And I ran the following commands to
> set up the build environment (SUN JDK 1.6.0_24 is used):
>
> export LANG=C
> expor ALT_BOOTDIR=/usr/lib/jvm/java-6-sun
>
> And "make sanity" passed. There was the following error when running "make":
>
> make[5]: Leaving directory
> `/data/prog/java/openjdk/jdk7/corba/make/org/omg/sources'
> make[5]: Entering directory
> `/data/prog/java/openjdk/jdk7/corba/make/org/omg/PortableServer'
> ../../../common/shared/Defs-linux.gmk:130: "WARNING: Value of
> JDK_IMPORT_PATH cannot be empty, check or set ALT_JDK_IMPORT_PATH"
> make[5]: *** No rule to make target
> `/data/prog/java/openjdk/jdk7/build/linux-i586/corba/classes/org/omg/PortableServer/AdapterActivator.class',
> needed by `/data/prog/java/openjdk/jdk7/build/linux-i586/corba/tmp/org/org.omg.PortableServer/.classes.list'.
> Stop.
> make[5]: Leaving directory
> `/data/prog/java/openjdk/jdk7/corba/make/org/omg/PortableServer'
> make[4]: *** [build] Error 1
> make[4]: Leaving directory `/data/prog/java/openjdk/jdk7/corba/make/org/omg'
> make[3]: *** [build] Error 1
> make[3]: Leaving directory `/data/prog/java/openjdk/jdk7/corba/make/org'
> make[2]: *** [build] Error 1
> make[2]: Leaving directory `/data/prog/java/openjdk/jdk7/corba/make'
> make[1]: *** [corba-build] Error 2
> make[1]: Leaving directory `/data/prog/java/openjdk/jdk7'
> make: *** [build_product_image] Error 2
>
> Then I checked the previous make messages. I found the following message:
>
> make[5]: Entering directory
> `/data/prog/java/openjdk/jdk7/corba/make/org/omg/sources'
> ../../../common/shared/Defs-linux.gmk:130: "WARNING: Value of
> JDK_IMPORT_PATH cannot be empty, check or set ALT_JDK_IMPORT_PATH"
> /usr/lib/jvm/java-6-sun/bin/idlj -J-XX:-PrintVMOptions
> -J-XX:+UnlockDiagnosticVMOptions -J-XX:-LogVMOutput -J-client
> -J-Xmx896m -J-Xms128m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -td
> "/data/prog/java/openjdk/jdk7/build/linux-i586/corba/gensrc" -i
> "../../../../src/share/classes/org/omg/PortableServer" -i
> "../../../../src/share/classes/org/omg/PortableInterceptor" -corba 3.0
> -fall -pkgPrefix PortableServer org.omg
> ../../../../src/share/classes/org/omg/PortableServer/poa.idl
> com.sun.tools.corba.se.idl.InvalidArgument: Invalid argument: -td.
>
> Compiler Usage:
>
> java com.sun.tools.corba.se.idl.toJavaPortable.Compile [options] <idl file>
>
> where <idl file> is the name of a file containing IDL definitions, and
> [options] is any combination of the options listed below. The options
> are optional and may appear in any order; <idl file> is required and
> must appear last.
>
> Options:
> -d <symbol> This is equivalent to the following line in an
> IDL file: #define <symbol>
> -emitAll Emit all types, including those found in
> #included files.
> -f<side> Define what bindings to emit. <side> is one
> of client,
> server, all, serverTIE, allTIE. serverTIE and allTIE
> cause delegate model skeletons to be emitted. If this
> flag is not used, -fclient is assumed.
> -i <include path> By default, the current directory is scanned for
> included files. This option adds another directory.
> -keep If a file to be generated already exists, do not
> overwrite it. By default it is overwritten.
> -noWarn Suppress warnings.
> -oldImplBase Generate skeletons compatible with old
> (pre-1.4) JDK ORBs.
> -pkgPrefix <t> <prefix> When the type or module name <t> is encountered at
> file scope, begin the Java package name for all files
> generated for <t> with <prefix>.
> -pkgTranslate <t> <pkg> When the type or module name <t> in
> encountered, replace
> it with <pkg> in the generated java package.
> Note that
> pkgPrefix changes are made first. <t> must match the
> full package name exactly. Also, <t> must not be
> org, org.omg, or any subpackage of org.omg.
> -skeletonName <xxx%yyy> Name the skeleton according to the pattern.
> The defaults are:
> %POA for the POA base class (-fserver or -fall)
> _%ImplBase for the oldImplBase base class
> (-oldImplBase and (-fserver or -fall)).
> -td <dir> use <dir> for the output directory instead of
> the current directory.
> -tieName <xxx%yyy> Name the tie according to the pattern. The
> defaults are:
> %POATie for the POA tie (-fserverTie or -fallTie)
> %_Tie for the oldImplBase tie
> (-oldImplBase and (-fserverTie or -fallTie)).
> -v, -verbose Verbose mode.
> -version Display the version number and quit.
>
> It seems that the cause is that a invalid argument -td is passed to
> "java com.sun.tools.corba.se.idl.toJavaPortable.Compile". Can anybody
> help me on this? Thanks.
>
> --
> Jingguo
More information about the build-dev
mailing list