Windows ARM64 Support

Having problems with building or using CEF's C/C++ APIs? This forum is here to help. Please do not post bug reports or feature requests here.

Windows ARM64 Support

Postby vbnsit » Mon Jun 15, 2020 3:41 am

Hi,
i tried building CEF branch 3945 using automated build steps https://bitbucket.org/chromiumembedded/ ... BuildSetup for Windows Surface Pro X(arm64). Post building CEF i generated libcefdllwrapper
using "cmake -G "Visual Studio 16 2019" -A ARM64 .." .On building libcefdllwrapper i faced compilation errors
Please add support for your architecture in cef_build.h
and
Atomic operations are not supported on your platform
. i added this flag
Code: Select all
defined(_M_ARM64)
to cef_build.h and cef_atomiccops.h by comparing these files to 4103 CEF branch(on 4103 i was able to build libcefdllwrapper successfully).
After this i was able to build libcefdllwrapper on 3945 branch successfully.
But on runtime i facing a crash in CEF 3945 Debug Binary with following log.
Code: Select all
Check failed: !g_blocking_disallowed.Get().Get(). Function marked as blocking was called from a scope that disallows blocking! If this task is running inside the ThreadPool, it needs to have MayBlock() in its TaskTraits. Otherwise, consider making this blocking work asynchronous or, as a last resort, you may use ScopedAllowBlocking (see its documentation for best practices).
g_blocking_disallowed currently set to true by
Backtrace:
   RtlCaptureStackBackTrace [0x00007FF9D50E0C78+24]
   napi_execute_work_item [0x00007FF988F98578+123260]
   cef_string_utf16_to_upper [0x00007FF9881313A4+182168]
   cef_string_utf16_to_upper [0x00007FF98819FF64+635736]
   GetHandleVerifier [0x00007FF98AFD7880+33644620]
   GetHandleVerifier [0x00007FF98AFD77EC+33644472]
   GetHandleVerifier [0x00007FF98A03E2C0+17287820]
   GetHandleVerifier [0x00007FF98A03E224+17287664]
   GetHandleVerifier [0x00007FF98A4C6358+22039332]
   GetHandleVerifier [0x00007FF9895A9D98+6194532]
   IsSandboxedProcess [0x00007FF9889A3C44+2507388]
   cef_string_utf16_to_upper [0x00007FF988516014+4264968]
   IsSandboxedProcess [0x00007FF9887FA29C+764116]
   cef_time_delta [0x00007FF988F6B588+15280]
   cef_zip_reader_create [0x00007FF9866F7054+17275556]
   cef_zip_reader_create [0x00007FF9866F6FE0+17275440]
   cef_zip_reader_create [0x00007FF9867165C0+17403920]
   cef_zip_reader_create [0x00007FF9867163CC+17403420]
   cef_zip_reader_create [0x00007FF9866F6480+17272528]
   cef_zip_reader_create [0x00007FF9867037C4+17326612]
   cef_zip_reader_create [0x00007FF9862BAC90+12834528]
   cef_zip_reader_create [0x00007FF9862BABA8+12834296]
   cef_zip_reader_create [0x00007FF9866094F0+16301888]
   cef_zip_reader_create [0x00007FF9866DFF48+17181080]
   cef_zip_reader_create [0x00007FF986725B90+17466848]
   cef_zip_reader_create [0x00007FF98671D088+17431256]
   cef_zip_reader_create [0x00007FF98671CEA4+17430772]
   cef_zip_reader_create [0x00007FF98671CE40+17430672]
   CrashForExceptionInNonABICompliantCodeRange [0x00007FF9880BE614+12833572]
   CrashForExceptionInNonABICompliantCodeRange [0x00007FF9880BE13C+12832332]
   CrashForExceptionInNonABICompliantCodeRange [0x00007FF9880BDB64+12830836]
   cef_string_utf16_to_upper [0x00007FF988185780+527220]
   napi_execute_work_item [0x00007FF988FB5208+241164]
   napi_execute_work_item [0x00007FF988FB4EF4+240376]
   cef_string_utf16_to_upper [0x00007FF98814CD98+295308]
   cef_string_utf16_to_upper [0x00007FF98814C250+292420]
   napi_execute_work_item [0x00007FF988FB5B78+243580]
   cef_string_utf16_to_upper [0x00007FF98816D050+427076]
   IsSandboxedProcess [0x00007FF988F56938+8482672]
   cef_string_utf16_to_upper [0x00007FF98819AAA0+614036]
   BaseThreadInitThunk [0x00007FF9D50B4974+52]
   RtlUserThreadStart [0x00007FF9D5C186F4+68]



I wanted to ask does 3945 branch have full support for arm64 since i had to change cef_build.h and cef_atomiccops.h for building libcefdllwrapper.(Also there were small changes in make_distrib.py)
Any ways to resolve this issue since i have requirement attached to 3945 branch.
vbnsit
Techie
 
Posts: 13
Joined: Mon Feb 03, 2020 1:09 am

Re: Windows ARM64 Support

Postby magreenblatt » Mon Jun 15, 2020 8:15 am

does 3945 branch have full support for arm64

No, but you can try cherry-picking the commits that were applied to newer branches. You’ll need to solve any issues yourself, since this old branch is no longer supported.
magreenblatt
Site Admin
 
Posts: 12409
Joined: Fri May 29, 2009 6:57 pm

Re: Windows ARM64 Support

Postby vbnsit » Mon Jun 15, 2020 9:33 am

Thanks for the reply. :)
Can you suggest any particular commits for this issue ?
it will be of great help.
vbnsit
Techie
 
Posts: 13
Joined: Mon Feb 03, 2020 1:09 am

Re: Windows ARM64 Support

Postby magreenblatt » Mon Jun 15, 2020 12:08 pm

magreenblatt
Site Admin
 
Posts: 12409
Joined: Fri May 29, 2009 6:57 pm

Re: Windows ARM64 Support

Postby vbnsit » Tue Jun 16, 2020 2:15 am

Hi, I am still facing the same issue after adding the mentioned commit
can you comment on which branch has full official support for arm64 for windows?
vbnsit
Techie
 
Posts: 13
Joined: Mon Feb 03, 2020 1:09 am

Re: Windows ARM64 Support

Postby magreenblatt » Tue Jun 16, 2020 10:56 am

Supported branches are listed here. You will need to create a local CEF/Chromium build for ARM64 as documented here.
magreenblatt
Site Admin
 
Posts: 12409
Joined: Fri May 29, 2009 6:57 pm

Re: Windows ARM64 Support

Postby masakotoda » Mon Jun 22, 2020 2:47 pm

I'm on 4103. I can build libcef.dll with ARM64 config, but am I supposed to be able to build cefclient as well? It fails to link due to missing OpenGL support. So, I'm currently injecting dummy functions so that I can build at least (OSR mode wouldn't work though).
masakotoda
Newbie
 
Posts: 1
Joined: Mon Jun 15, 2020 12:40 pm

Re: Windows ARM64 Support

Postby magreenblatt » Mon Jun 22, 2020 3:36 pm

masakotoda wrote:I'm on 4103. I can build libcef.dll with ARM64 config, but am I supposed to be able to build cefclient as well? It fails to link due to missing OpenGL support. So, I'm currently injecting dummy functions so that I can build at least (OSR mode wouldn't work though).

You can build the cefsimple target instead.
magreenblatt
Site Admin
 
Posts: 12409
Joined: Fri May 29, 2009 6:57 pm

Re: Windows ARM64 Support

Postby truenip » Mon Jun 22, 2020 3:39 pm

Yes, I realized that I can build cefsimple, but cefclient has lots more features and nice to be able to build ;)
truenip
Newbie
 
Posts: 4
Joined: Tue Jun 18, 2019 3:36 pm


Return to Support Forum

Who is online

Users browsing this forum: No registered users and 42 guests