RFR: 8015145: Smartjavac needs more flexibility with linking to sources
Erik Joelsson
erik.joelsson at oracle.com
Wed Aug 7 02:37:00 PDT 2013
On 2013-07-26 22:40, Jonathan Gibbons wrote:
> I am concerned by the preceding comment, starting line 255.
>
> 255 // Always reuse -src for linking as well! This means
> that we might
> 256 // get two -sourcepath on the commandline after the
> rewrite, which is
> 257 // fine. We can have as many as we like.
>
> Yes, you can put as many -sourcepath options as you want, but as far
> as javac
> is concerned, "last one wins". If you want all the options to be
> significant in the
> child javac commands, you need to join the values.
>
I have reworded the comment, explaining that they are indeed joined
later, before being handed to javac. I also added a test for the usecase
I'm describing below and made the Sjavac tests runnable by jtreg.
http://cr.openjdk.java.net/~erikj/8015145/webrev.langtools.02/
/Erik
> -- Jon
>
> On 06/07/2013 05:43 AM, Erik Joelsson wrote:
>> Here is a patch solving a problem with -sourcepath for sjavac.
>>
>> First some background. The security sources (the ones that require
>> signing) need to be built to a separate directory. If they aren't (as
>> is the case now) security tests will fail if run on the exploded jdk
>> image (the one you get when just typing make or make jdk). In
>> JDK-8009280, I'm trying to fix this. The solution I have for that bug
>> is working well, except when running with sjavac, and basically
>> builds all classes except the security classes first to the normal
>> outputdir and then as a separate step builds just the security
>> classes to a different outputdir.
>>
>> There are two issues that need to be addressed in sjavac for this to
>> work. First, it needs to be possible to supply the same source root
>> both to the -src and -sourcepath option (but with different filter
>> rules). Sjavac is very picky and only links to sources that are
>> included in either of those options, and since we are excluding the
>> security sources from -src, we need to add them to -sourcepath.
>>
>> The second thing is more of a bug as far as I can tell. Sjavac
>> compares the found set of sources to compile with what the makefile
>> think needs to be compiled, as a safety check. Currently, sjavac is
>> including sources that are just being linked to in this comparison. I
>> would think that it should only include sources that are meant to be
>> compiled.
>>
>> http://cr.openjdk.java.net/~erikj/8015145/webrev.langtools.01/
>>
>> http://bugs.sun.com/view_bug.do?bug_id=8015145
>>
>> /Erik
>
More information about the compiler-dev
mailing list