Search code examples
armcross-compilingatomicchromium-embedded

Chromium Embedded cross-compiling for ARM


I've successfully built CEF for x86, now I'm trying to cross-compile it for ARM. I've almost done it, but came across an issue with atomic operations support for the platform:

In file included from ../../cef/include/base/cef_atomic_ref_count.h:55:0,
             from ../../cef/include/cef_base.h:35,
             from ../../cef/include/cef_auth_callback.h:41,
             from ../../cef/include/cef_request_handler.h:41,
             from ../../cef/libcef_dll/ctocpp/allow_certificate_error_callback_ctocpp.h:21,
             from ../../cef/libcef_dll/ctocpp/allow_certificate_error_callback_ctocpp.cc:13:
../../cef/include/base/cef_atomicops.h:187:2: error: #error "Atomic operations are not supported on your platform"

From what I see, by default it has support only for x86 and mac platforms. For me it seems quite strange that CEF requires some x86 features with lack of support for other platforms. Though I've used GYP_CROSSCOMPILE=1 and " target_arch=arm embedded=1" in GYP_DEFINES while generating ninja files.

So, is there any way to turn off use of atomic operations in CEF? Or any other way to overcome this problem?

Thanks in advance!


Solution

  • I've found answer. Something was broken in defines. If you define BUILDING_CEF_SHARED, it starts to use chromium atomics which support ARM platform.