RFR(xs): 8171408: [aix] TOC overflow when linking the gtest libjvm.so
erik.joelsson at oracle.com
Tue Dec 20 08:31:46 UTC 2016
On 2016-12-20 09:30, Thomas Stüfe wrote:
> Hi guys,
> updated 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 <thomas.stuefe at gmail.com
> <mailto:thomas.stuefe at gmail.com>> wrote:
> Hi Erik,
> On Tue, Dec 20, 2016 at 9:17 AM, Erik Joelsson
> <erik.joelsson at oracle.com <mailto:erik.joelsson at oracle.com>> wrote:
> 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.
> So, could you try removing the filtering and see if it still
> 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.
> (Hope the webrev link works, the webserver is still down).
> Kind Regards, Thomas
More information about the hotspot-dev