protobuf tries to use an unsupported CPU instruction on ARM64 (__thread) |
||||
Issue descriptionI thought to report this upstream, but I cannot reproduce this with their build system. To reproduce: in a WebRTC checkout: gn gen out/linux-arm64-debug --args='target_cpu="arm64" is_debug=true' ninja -C out/linux-arm64-debug Although the build succeeds, towards the end it keeps repeating this worrisome line: /usr/bin/aarch64-linux-gnu-ld: obj/third_party/protobuf/libprotobuf_lite.a(arena.o)(.debug_info+0x3f): R_AARCH64_ABS64 used with TLS symbol _ZN6google8protobuf5Arena13thread_cache_E To me it seems like protobuf attempts to use some processor instruction which is not available on ARM64. I traced this to GOOGLE_PROTOBUF_NO_THREADLOCAL - if I force this macro to be defined unconditionally here then the error disappears: https://chromium.googlesource.com/chromium/src/third_party/+/1be414c149bd29dc8e4be4b7db7efa459327fd68/protobuf/src/google/protobuf/stubs/platform_macros.h#117 I guess that some investigation has been done regarding a similar error https://github.com/google/protobuf/issues/347 but the root cause is probably not that the OS is IPHONE or ANDROID but the CPU architecture. Reference: https://bugs.chromium.org/p/webrtc/issues/detail?id=7024
,
Mar 30 2017
,
Mar 30 2017
Let's only track this in Build, since there's nothing WebRTC infra can do about the problem.
,
Apr 4 2017
,
Apr 4 2017
Can you try locally reverting https://codereview.chromium.org/2759423004/ to see if that fixes the issue? |
||||
►
Sign in to add a comment |
||||
Comment 1 by oprypin@webrtc.org
, Mar 30 2017