RFR: 8015145: Smartjavac needs more flexibility with linking to sources
erik.joelsson at oracle.com
Thu Aug 15 03:36:26 PDT 2013
Friendly reminder that this needs to be looked at. The JCE team
converting to the new build is dependent on this change.
On 2013-08-07 11:37, Erik Joelsson wrote:
> 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.
>> -- 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.
More information about the compiler-dev