On Tue, 27 Feb 2024 11:04:49 GMT, Magnus Ihse Bursie <i...@openjdk.org> wrote:

>> I tend to agree, this should not have been changed to specifying -o 
>> directly. We generally keep options inside Makefile variables rather than 
>> directly passing them like this, much like how $(OBJ_SUFFIX) was recently 
>> used to replace directly specifying the object file suffix in the make system
>
> This was actually an important part of this PR, trying to combat the all too 
> general solution we had when trying to combine microsoft and non-microsoft 
> linking. On all Unix-style linkers, the option to mark the output file is `-o 
> `. That is such a fundemental option that we do not want to make it general, 
> especially not considering the additional difficulty that the corresponding 
> option for the microsoft `link.exe` is to specify `/out:<filename>`, without 
> a space. This forced us to define LD_OUT_OPTION as `-o$(SPACE)` on unix 
> linkers, and it forced us to setup the linker command line with 
> `$(LD_OUT_OPTION)$$($1_TARGET_RELOCATABLE)` with no space between. 
> 
> That is in clear contrast with how we can add multiple sets of command line 
> options like e.g. `(LDFLAGS_CXX_PARTIAL_LINKING) $$($1_SYSROOT_LDFLAGS)` 
> where we can just stack them after each other with a space between.

Also, 

> the flexibility of specifying the non-linker specific option here

I don't know what you mean by that. LD_OUT_OPTION was thought of as an 
abstraction between the difference of `-o ` and `/out:`. It should not be used 
to include anything else, so no flexibility is lost.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/17987#discussion_r1504051487

Reply via email to