RFR: JDK-8200358 Remove mapfiles for JDK executables
Magnus Ihse Bursie
magnus.ihse.bursie at oracle.com
Wed Mar 28 21:48:49 UTC 2018
On 2018-03-28 22:39, Martin Buchholz wrote:
>
>
> On Wed, Mar 28, 2018 at 12:07 PM, Magnus Ihse Bursie
> <magnus.ihse.bursie at oracle.com <mailto:magnus.ihse.bursie at oracle.com>>
> wrote:
>
>
> Anyway, with this patch all symbols in executables will be
> visible, so there should be no problem anyway.
>
>
> The symbols visible in the main executable are a sort-of-public
> interface. The difference is visible via e.g. nm -D, or any native
> code that does dlsym(NULL, symbolName) (yes, we do this!). The
> behavior of native code is likely to be affected if there is a symbol
> conflict. The larger the exported symbol table, the more overhead
> there will be at startup (probably). The theory is that changing an
> interface requires a CSR.
If I understand your objections correctly, you are claiming (correct me
if I'm misunderstanding you):
1) Removing the mapfiles will affect performance negatively
2) The exported symbols from executables are a public API and the change
therefore require a CSR.
To this I reply:
1) While theoretically this might affect startup time, I can't for the
life of me think this would even be measurable. I think any
uncertainities in the measurement of the startup of "java" will dwarf
any changes due to loading with a different set of exported symbols, in
several orders of magnitude. If you claim otherwise, I challenge you to
do the measurements.
2) If this is a public API, then show me the documentation. If there is
no documentation, then this is not a public interface. Just the fact
that you might have used "nm" to locate symbols in a native file and use
it, does not mean it's a public interface that requires a CSR to change.
If that would be the case, then we could not ever do any change to any
native file without filing a CSR, which is obviously absurd.
If you have code that are dependent on a certain set of symbols or
whatnot, and you want it to keep functioning, then I recommend that you
file a bug and submit a patch to get it into mainline. If you're just
collecting a bunch of downstream patches, and this change make your life
harder, well, then, sorry, that's not my problem.
/Magnus
More information about the build-dev
mailing list