[8u] RFR: JDK-8164041: support old pre-c++11 toolchains and ucLibc

Andrey Petushkov andrey.petushkov at gmail.com
Fri Aug 26 13:01:47 UTC 2016

Hi Ed,

Thank you for response! It’s though not quite clear to me if it’s possible to use generated code there since these functions are inline, so having them as generated incur indirect call, which likely alleviates any performance gain (so for universal binary it’s easier to just build against the lowest supported CPU anyway)

BTW, one note to my other RFR - the C1 port there is only for ARMv6K and above since ldrexd instructions are used there as well


> On 26 Aug 2016, at 14:53, Edward Nevill <edward.nevill at gmail.com> wrote:
> Hi Andrey,
> This build fine for me now on my Samsung Chromebook. Thanks for
> updating this.
> For the future we might like to dynamically generate such code rather
> than building it statically. This would enable VMs built on one system
> to run on another without the need for having separate binaries for
> both. However this is an exercise for another date.
> Looks good to push,
> Ed.
> On Thu, 2016-08-25 at 08:40 +0000, Andrey Petushkov wrote:
>> Hi Ed, All,
>> Please consider the updated patch which should allow to build for
>> ARMv6
>> prior to revision K. Here
>> http://cr.openjdk.java.net/~apetushkov/8164041/webrev.01/
>> Please note that at first it's attempted to use the inline assembly
>> and
>> only if not not possible the fallback is done to gcc intrinsics. The
>> reason
>> is that we know that assembly is more robust. Unfortunately due to
>> differences in set of macros defined by different toolchains the
>> selection
>> condition in the #if look really crazy. I've tried to check every
>> single
>> symbol which could mean ldrexd is available, since I've met the case
>> when
>> only __ARM_ARCH_6ZK__ is defined and nothing else. If you're aware
>> that
>> it's guaranteed that some of checks are redundant please let me know
>> Thanks,
>> Andrey

More information about the aarch32-port-dev mailing list