Looks good.

/Erik


On 2016-12-20 09:30, Thomas Stüfe wrote:
Hi guys,

updated webrev: http://cr.openjdk.java.net/~stuefe/webrevs/8171408-aix-TOC-overflow-when-linking-the-gtest-libjvm/webrev.01/webrev/ <http://cr.openjdk.java.net/%7Estuefe/webrevs/8171408-aix-TOC-overflow-when-linking-the-gtest-libjvm/webrev.01/webrev/>

Only change is that I removed the offending filter-out expression. This means that gtest modules are compiled with both -qpic followed by -qpic=large, but the latter should take precedence, so it is ok. Also keeps the makefile simple.

Kind Regards, Thomas

On Tue, Dec 20, 2016 at 9:21 AM, Thomas Stüfe <[email protected] <mailto:[email protected]>> wrote:

    Hi Erik,

    On Tue, Dec 20, 2016 at 9:17 AM, Erik Joelsson
    <[email protected] <mailto:[email protected]>> wrote:

        Hello,

        I understand why you want to filter out the -qpic flag from
        the general JVM_CFLAGS, but that kind of logic is brittle so
        we try to avoid it unless absolutely necessary. I prefer to
        just rely on the tools treating command line options as the
        last one takes precedence. I assume the AIX compiler behaves
        that way too and that a -qpic=large will override a -qpic
        earlier on the command line. We have consciously designed
        SetupNativeCompilation to add all the *FLAGS in the order of
        most specific flags last for this reason.


    You are right, and Volker just complained about the same thing :)
    I'll post an updated ref where I just rely on qpic=large following
    qpic. I was not happy with that filter-out expression either.

    ..Thomas

        So, could you try removing the filtering and see if it still
        works?

        /Erik



        On 2016-12-18 13:50, Thomas Stüfe wrote:

            Hi all,

            please take a look at this small fix. In short, on AIX
            when linking the
            gtest version of libjvm.so, the TOC overflows.

            So the gtest libjvm.so must be linked with -bbigtoc, in
            contrast to the
            regular libjvm.so, which has no problems and can keep
            using a small TOC.

            Also, I compile all gtest objects with -qpic=large. Note
            that this only
            affects the gtest objects. The regular objects - which the
            gtest libjvm.so
            shares with the regular libjvm.so - I left at
            -qpic[=small]. This means we
            pay a bit of a performance overhead in the gtest libjvm.so
            but leave the
            regular libjvm.so at its optimal linker settings.

            Issue:
            https://bugs.openjdk.java.net/browse/JDK-8171408
            <https://bugs.openjdk.java.net/browse/JDK-8171408>

            Webrev:
            
http://cr.openjdk.java.net/~stuefe/webrevs/8171408-aix-TOC-overflow-when-linking-the-gtest-libjvm/webrev.00/
            
<http://cr.openjdk.java.net/%7Estuefe/webrevs/8171408-aix-TOC-overflow-when-linking-the-gtest-libjvm/webrev.00/>

            (Hope the webrev link works, the webserver is still down).

            Kind Regards, Thomas





Reply via email to