Getting gcj to compile what it finds when scanning

Bryce McKinlay mckinlay@redhat.com
Mon Feb 21 22:34:00 GMT 2005


Tom Tromey wrote:
>Andrew> gcj does this if you are having it generate .class files (-C) and you
>Andrew> give it a -d flag
>>Hmm, I thought it didn't do this.
>>
Right, it doesn't. For .class files it is definitely a bug that "gcj -C" 
doesn't recursively generate the dependencies since it behaves 
differently compared to javac etc, and performance is reduced because we 
keep parsing the same .java files over and over.
For native compilation its not so clear. It could be useful in some 
cases, such as static compilation, but there are a lot of caveats. 
There's no way for the compiler to detect classes that are only loaded 
dynamically, for example. There is also the issue of where to stop - do 
you include classes seen in jar files, or in libgcj itself? Or will the 
developer want these classes in shared libraries? Think of generating an 
executable or .so in gcj as analogous to generating a .jar with the 
traditional java tools - in most cases its probably better for the 
developer to keep control of what goes into the final binary.
>Andrew> Is having gcj automatically compile necessary complements
>Andrew> hypothetically possible, or does it violate some ancient
>Andrew> deeply held religious superstition? If it were to be doable, I
>Andrew> don't suppose there is any chance that it might sneak its way
>Andrew> into GCJ-4?
>>I think the problem is that this is something that would have to be
>handled by the gcc driver, say by invoking jc1 and as multiple times.
>I don't think this can be done purely in gcj.
>>
Yeah, it would probably require major changes to GCC's backend machinery 
to allow the front end to generate multiple .o files from one 
invocation. I suppose the driver could call jc1 to get a list of 
dependencies, then invoke it once for each file that it gets back - but 
this would be much slower than a single jc1 invocation, and I think the 
benefits of doing this are questionable.
Regards
Bryce


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /