On Thu, 22 Jul 2021 17:38:28 GMT, Mikael Vidstedt <mik...@openjdk.org> wrote:

>> Hi!
>> 
>> Please review this tiny patch which removes the special casing of 
>> `--with-native-debug-symbols=external` for the static libs build. I don't 
>> see why this is needed. If no debug symbols are wanted 
>> `--with-native-debug-symbols=none` can be used to achieve the same effect. 
>> Therefore, I propose to remove this hunk.
>> 
>> Testing: Inspecting of the log files and seeing that `-g` switch is there. 
>> Run the reproducer test on the resulting static libraries.
>> 
>> Thoughts?
>
> If I understand things correctly (and I may well be misunderstanding 
> something), with this change the debug symbols are included in release 
> versions of the static libraries when --with-native-debug-symbols=external is 
> specified. That's a significant change - people may be depending on debug 
> symbols *not* being included in the resulting release binaries.
> 
> Doesn't --with-native-debug-symbols=none turn off debug symbols completely 
> for all native code? What if one wants external debug symbols for other 
> (non-static) libraries?

@vidmik Yes, correct. It's equally incorrect to **not** produce any debuginfo 
for `--with-native-debug-symbols=external`, no? With this change we have a 
situation where the external case for static libraries would have them include 
like the 'internal' case does. What's missing is the stripping part of `*.a` 
files, which if desired can get added to this patch too (for Linux). But to me 
this special casing, is not very intuitive either. Thoughts?

> Doesn't --with-native-debug-symbols=none turn off debug symbols completely 
> for all native code? What if one wants external debug symbols for other 
> (non-static) libraries?

Yes. Are you suggesting that somebody is relying on these exact semantics? 
Configure **once** with `--with-native-debug-symbols=external` and expect 
static libs to have *no* debuginfo (neither inline nor in an external file) 
while shared bits should have them in external files? That use case would still 
be possible by using two configurations. One with 
`--with-native-debug-symbols=external` and one with 
`--with-native-debug-symbols=none` and building only the needed targets each.

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

PR: https://git.openjdk.java.net/jdk/pull/4876

Reply via email to