On 2018-03-28 14:19, Martin Buchholz wrote:
I'm not sure about this.

IIRC the AIX linker is able to use executables as a build-time input.  Maybe our AIX maintainers have some expertise here.
As you heard from Thomas, this does not seem to be a problem.

I think the _dynamic_ linker will see symbols in the executable.  Resolving them is likely to be strictly more work at startup, and it is likely that the symbols are visible to dlsym(NULL ...)

We have local patches at Google that involve adding symbols to these mapfiles to increase visibility to dlsym. Maintaining mapfiles is no fun, but the precise definition of symbol visibility seems in the Spirit of Java.

Maintaining map files is no fun. Yes indeed. I don't think the current presense of mapfiles is intended to be the "Spirit of Java", but rather "everything in the build sucked back when Java was created" (or perhaps "Everthing in the build was designed from how the programmers thought that you should do things on Solaris" -- which may or may not mean the same thing as the previous sentense ;-)).

Are you loading symbols from *executables* at Google? You sure about that?

Anyway, with this patch all symbols in executables will be visible, so there should be no problem anyway.

/Magnus


On Wed, Mar 28, 2018 at 4:08 AM, Magnus Ihse Bursie <magnus.ihse.bur...@oracle.com <mailto:magnus.ihse.bur...@oracle.com>> wrote:

    This patch removes mapfiles for the JDK executables (launchers).
    There's really no reason to have mapfiles in the first place for
    executables. Since no-one is linking to them, what symbols they
    export is immaterial.

    Bug: https://bugs.openjdk.java.net/browse/JDK-8200358
    <https://bugs.openjdk.java.net/browse/JDK-8200358>
    WebRev:
    
http://cr.openjdk.java.net/~ihse/JDK-8200358-remove-launcher-mapfiles/webrev.01
    
<http://cr.openjdk.java.net/%7Eihse/JDK-8200358-remove-launcher-mapfiles/webrev.01>

    /Magnus



Reply via email to