Project

General

Profile

Bug #773

tests/device/crystax-test-c++11 failed on arm64 device when being built with clang-based toolchain

Added by Dmitry Moskalchuk over 5 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Normal
Category:
-
Target version:
Start date:
12/24/2014
Due date:
% Done:

100%

Estimated time:
CPU Architecture:
arm64
Host OS:
Toolchain:
clang-3.4, clang-3.5
Android version:
CrystaX Version:

Description

COMMAND: /opt/android/android-sdk-mac/platform-tools/adb -s HT4AKJT00846 push /Volumes/android/ndk/out/tests/clang3.5/build/crystax-test-c++11/libs/arm64-v8a/libcrystax.so /data/local/tmp/ndk-tests/libcrystax.so

6967 KB/s (785576 bytes in 0.110s)

COMMAND: /opt/android/android-sdk-mac/platform-tools/adb -s HT4AKJT00846 shell chmod 0755 /data/local/tmp/ndk-tests/libcrystax.so

COMMAND: /opt/android/android-sdk-mac/platform-tools/adb -s HT4AKJT00846 push /Volumes/android/ndk/out/tests/clang3.5/build/crystax-test-c++11/libs/arm64-v8a/libgnustl_shared.so /data/local/tmp/ndk-tests/libgnustl_shared.so

7157 KB/s (1108248 bytes in 0.151s)

COMMAND: /opt/android/android-sdk-mac/platform-tools/adb -s HT4AKJT00846 shell chmod 0755 /data/local/tmp/ndk-tests/libgnustl_shared.so

COMMAND: /opt/android/android-sdk-mac/platform-tools/adb -s HT4AKJT00846 push /Volumes/android/ndk/out/tests/clang3.5/build/crystax-test-c++11/libs/arm64-v8a/crystax-test-c++11 /data/local/tmp/ndk-tests/crystax-test-c++11

6192 KB/s (75472 bytes in 0.011s)

COMMAND: /opt/android/android-sdk-mac/platform-tools/adb -s HT4AKJT00846 shell chmod 0755 /data/local/tmp/ndk-tests/crystax-test-c++11

Running device test [arm64-v8a]: crystax-test-c++11 (crystax-test-c++11)
/opt/android/android-sdk-mac/platform-tools/adb -s "HT4AKJT00846" shell "cd /data/local/tmp/ndk-tests && LD_LIBRARY_PATH=/data/local/tmp/ndk-tests ./crystax-test-c++11"
lambda call: 3
test1
test2: invalid format: missing arguments
test3: 1
extra arguments provided to fooprintf
r1: foo " \ bar
r2: this is raw string literal
void foobar(const A &)
void foobar(A &&)
test language: OK
test chrono_duration_ctor: OK
test chrono_duration_operators: OK
test chrono_duration_count: OK
test chrono_duration_min_max: OK
Thread 2 executing
pure virtual method called
terminate called without an active exception
Thread 2 executing
Thread 2 executing
Thread 2 executing
Thread 2 executing
Aborted
134
---> TEST FAILED!!

The same test built by gcc-4.9 works just fine:

COMMAND: /opt/android/android-sdk-mac/platform-tools/adb -s HT4AKJT00846 push /Volumes/android/ndk/out/tests/gcc4.9/build/crystax-test-c++11/libs/arm64-v8a/libcrystax.so /data/local/tmp/ndk-tests/libcrystax.so

7214 KB/s (785576 bytes in 0.106s)

COMMAND: /opt/android/android-sdk-mac/platform-tools/adb -s HT4AKJT00846 shell chmod 0755 /data/local/tmp/ndk-tests/libcrystax.so

COMMAND: /opt/android/android-sdk-mac/platform-tools/adb -s HT4AKJT00846 push /Volumes/android/ndk/out/tests/gcc4.9/build/crystax-test-c++11/libs/arm64-v8a/libgnustl_shared.so /data/local/tmp/ndk-tests/libgnustl_shared.so

7458 KB/s (1108248 bytes in 0.145s)

COMMAND: /opt/android/android-sdk-mac/platform-tools/adb -s HT4AKJT00846 shell chmod 0755 /data/local/tmp/ndk-tests/libgnustl_shared.so

COMMAND: /opt/android/android-sdk-mac/platform-tools/adb -s HT4AKJT00846 push /Volumes/android/ndk/out/tests/gcc4.9/build/crystax-test-c++11/libs/arm64-v8a/crystax-test-c++11 /data/local/tmp/ndk-tests/crystax-test-c++11

6602 KB/s (75456 bytes in 0.011s)

COMMAND: /opt/android/android-sdk-mac/platform-tools/adb -s HT4AKJT00846 shell chmod 0755 /data/local/tmp/ndk-tests/crystax-test-c++11

Running device test [arm64-v8a]: crystax-test-c++11 (crystax-test-c++11)
/opt/android/android-sdk-mac/platform-tools/adb -s "HT4AKJT00846" shell "cd /data/local/tmp/ndk-tests && LD_LIBRARY_PATH=/data/local/tmp/ndk-tests ./crystax-test-c++11"
lambda call: 3
test1
test2: invalid format: missing arguments
test3: 1
extra arguments provided to fooprintf
r1: foo " \ bar
r2: this is raw string literal
void foobar(const A&)
void foobar(A&&)
test language: OK
test chrono_duration_ctor: OK
test chrono_duration_operators: OK
test chrono_duration_count: OK
test chrono_duration_min_max: OK
Thread 2 executing
Thread 1 executing
Thread 2 executing
Thread 1 executing
Thread 2 executing
Thread 1 executing
Thread 2 executing
Thread 1 executing
Thread 2 executing
Thread 1 executing
Final value of n is 5
test thread: OK
test to_string: OK
test to_wstring: OK
test stol: OK
0

#1

Updated by Dmitry Moskalchuk over 5 years ago

  • Status changed from Open to In Progress
  • Assignee set to Dmitry Moskalchuk

This looks like clang bug reported "here":http://llvm.org/bugs/show_bug.cgi?id=12730
TL;DR: clang doesn't define _GCC_HAVE_SYNC_COMPARE_AND_SWAP[1248] macros for aarch64. In the link above people reporting they've added these macros for x86 and arm architectures. Obviously, it's still missing for aarch64, so hopefully fixing clang in a way defining those macros for aarch64 too will fix this issue.

#2

Updated by Dmitry Moskalchuk over 5 years ago

  • Status changed from In Progress to Closed
  • % Done changed from 0 to 100

Also available in: Atom PDF