On Mon, 2 Jun 2025 15:58:10 GMT, Magnus Ihse Bursie <i...@openjdk.org> wrote:

> I don't think this is a good way. We should not call to shell to make 
> calculations in the makefiles; if that were needed, it should be done in 
> configure. However, we are already doing this, or at least something very 
> similar. Have a look at line 398 in boot-jdk.m4. We set up `OLDEST_BOOT_JDK` 
> as the oldest JDK from the list in version-numbers.conf.
> 
> That should, I think, match your expectation of N-1. There is always a bit 
> uncertainty how you want these things to be handled around the version 
> rollover, and I'm not sure about your use case in those situations. But in 
> general, the oldest boot JDK will match the version number actually used in 
> the build as the boot JDK, that is, N-1.
> 
> Now, OLDEST_BOOT_JDK is not exported to make. But that is however:
> 
> ```
> BOOT_JDK_SOURCETARGET="-source $OLDEST_BOOT_JDK -target $OLDEST_BOOT_JDK 
> -Xlint:-options"
> ```
> 
> which is almost, but not exactly, what you were planning to add. The added 
> `-Xlint:-options` is harmless afaict, and I think was likely added at some 
> point due to option mismatch between N and N-1 javac lint support, so I think 
> it would make sense for you to use it as well.
> 
> So, in essense, my suggestion boils down to that you should only add 
> `$(BOOT_JDK_SOURCETARGET)` to your command line.

I don't know the particulars here, but using

`javac -source $OLD -target $OLD ..."

is _almost_ never more appropriate than using

`javac --release $OLD ..."

The `options` warning would be noting the possible use of `--release`.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/25494#issuecomment-2931680491

Reply via email to