issues with jdk/make/modules/modularize.sh

Jonathan Gibbons Jonathan.Gibbons at Sun.COM
Tue Jan 19 14:50:56 PST 2010


  On 01/19/2010 02:38 PM, Mandy Chung wrote:
>
> Jonathan Gibbons wrote:
>>  The current jigsaw forest does not build with the latest javac that 
>> I would like to put back.
>>
>> The build fails like this:
>>
>>> make[3]: Entering directory 
>>> `/mnt/w/jjg/work/jigsaw/jigsaw.testbuild/jdk/make/modules'
>>> SRC=../../src/share/modules 
>>> BIN=/mnt/w/jjg/work/jigsaw/jigsaw.testbuild/build/linux-amd64/bin 
>>> CLASSES=/mnt/w/jjg/work/jigsaw/jigsaw.testbuild/build/linux-amd64/classes 
>>> TMP=/mnt/w/jjg/work/jigsaw/jigsaw.testbuild/build/linux-amd64/tmp/jigsaw 
>>> MLIB=/mnt/w/jjg/work/jigsaw/jigsaw.testbuild/build/linux-amd64/lib/modules 
>>> \
>>>     JIGSAW_TRACE=3 sh modularize.sh boot base awt swing tools
>>> -- jdk.boot
>>> error: module library not found: 
>>> /mnt/w/jjg/work/jigsaw/jigsaw.testbuild/build/linux-amd64/lib/modules
>>> 1 error
>>
>> In modularize.sh I see some lines of the form:
>>
>>   $BIN/javac -source 7 -d $MCLS -modulepath $SRC 
>> $SRC/$m/module-info.java
>>
>> This line looks suspect, if only for putting what looks like a source 
>> directory on the module path. It should probably be:
>>
>>   $BIN/javac -source 7 -d $MCLS -modulepath $MCLS -sourcepath $SRC 
>> $SRC/$m/module-info.java
>>
>> It's also not the best way to invoke javac -- once per source file, 
>> using sourcepath, as compared to a single invocation for all relevant 
>> module-info.java files.
>>
> Jon,
>
> I'm working on merging the modules build makefile changes in TL with 
> the jigsaw modules build.  modularize.sh and imagine.sh will go away.
>
> I have changed the makefile to compile all module-info.java files in 
> one javac invocation in my repo.  As this is new javac functionality, 
> I didn't run into the problem you described above in my repo.  
> modularize.sh invokes jmod to install the module library.  I wonder if 
> this issue is related to the invocaton to jmod in creating the module 
> library.
>
> Mandy
>
>> Finally, this is the beginning of the iceberg of how to use javac to 
>> bootstrap the module system into existence.
>>
>> The error message from javac (module library not found) indicates 
>> that javac is trying to do a normal "end user" compilation, involving 
>> the default system module library. This is new functionality in this 
>> version of javac.
>>
>> The question is, how should we be handling this situation here?
>> -- Should we simply create (mkdir) an empty modules directory to keep 
>> javac happy?
>> -- Or, should javac have an option to disable looking for the system 
>> module library?
>> -- Or should javac not be looking for the system module library if it 
>> can satisfy all references via the command line.
>> -- Or should javac be running in a special bootstrap mode that is 
>> used for internal cases like this?
>>
>> -- Jon
>


Mandy,

I'm referring to my latest version of javac, that I have yet to push to 
a public forest. However, if modularize.sh will go away soon, I won't 
worry about it too much.

-- Jon



More information about the jigsaw-dev mailing list