[aarch64-port-dev ] Build failure: invalid register name for ‘r_exchange_value’

Aleksey Shipilev shade at redhat.com
Sun Dec 24 15:33:14 UTC 2017


On 12/08/2017 06:54 PM, Andrew Haley wrote:
> On 07/12/17 15:00, Aleksey Shipilev wrote:
>> /pool/buildbot/slaves/sobornost/jdk8u-rh-int/build/hotspot/src/os_cpu/linux_aarch64/vm/atomic_linux_aarch64.inline.hpp:
>> In member function ‘void AccessFlags::atomic_set_bits(jint)’:
>> /pool/buildbot/slaves/sobornost/jdk8u-rh-int/build/hotspot/src/os_cpu/linux_aarch64/vm/atomic_linux_aarch64.inline.hpp:128:18:
>> error: invalid register name for ‘r_exchange_value’
>>     register jint r_exchange_value asm("w0") = exchange_value;
> 
> w0 is a legitimate register name.  This is a bug in GCC.  You can
> try "x0" to see what happens.

Indeed. The configure log identifies the smoking gun: while the builds is configured with aarch64
target, it still tries to use x86_64 compiler:

configure: Using x86_64-linux-gnu-gcc-6 (Debian 6.3.0-18) 6.3.0 C compiler version 6.3.0 (located at
/usr/bin/x86_64-linux-gnu-gcc-6)
checking for aarch64-linux-gnu-/usr/bin/x86_64-linux-gnu-gcc-6... /usr/bin/x86_64-linux-gnu-gcc-6

...

A new configuration has been successfully created in
/pool/buildbot/slaves/sobornost/jdk8u-rh-int/build/build/linux-aarch64-normal-server-fastdebug
using configure arguments '--with-jtreg=jtreg/ --with-cacerts-file=/etc/ssl/certs/java/cacerts
--with-freetype-include=/usr/include/freetype2/ --with-extra-cflags=-Wno-deprecated-declarations
-Wno-maybe-uninitialized -Wno-misleading-indentation -Wno-shift-negative-value -Wno-deprecated
--with-debug-level=fastdebug --openjdk-target=aarch64-linux-gnu
--with-freetype-lib=/usr/lib/aarch64-linux-gnu/'.

Configuration summary:
* Debug level:    fastdebug
* JDK variant:    normal
* JVM variants:   server
* OpenJDK target: OS: linux, CPU architecture: aarch64, address length: 64

Tools summary:
* Boot JDK:       openjdk version "1.8.0_151" OpenJDK Runtime Environment (build
1.8.0_151-8u151-b12-1~deb9u1-b12) OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)  (at
/usr/lib/jvm/java-8-openjdk-amd64)
* C Compiler:     x86_64-linux-gnu-gcc-6 (Debian 6.3.0-18) 6.3.0 version 6.3.0 (at
/usr/bin/x86_64-linux-gnu-gcc-6)
* C++ Compiler:   x86_64-linux-gnu-g++-6 (Debian 6.3.0-18) 6.3.0 version 6.3.0 (at
/usr/bin/x86_64-linux-gnu-g++-6)

This seems to only affect jdk8 builds on Debian 9 and GCC 6.3.0. Maybe there is some easy patch missing?

Thanks,
-Aleksey



More information about the aarch64-port-dev mailing list