[Bug 59213] New: [wineandroid]: pCreateDesktop blocks main thread until some action in pCreateWindow should be fired, preventing pCreateDesktop from being executed
http://bugs.winehq.org/show_bug.cgi?id=59213 Bug ID: 59213 Summary: [wineandroid]: pCreateDesktop blocks main thread until some action in pCreateWindow should be fired, preventing pCreateDesktop from being executed Product: Wine Version: 10.0 Hardware: x86 OS: Android Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@list.winehq.org Reporter: twaikyont@gmail.com Hello. It seems that starting from https://gitlab.winehq.org/wine/wine/-/merge_requests/2923 (or possibly earlier) wineandroid has been broken. I tried to build wineandroid and found several issues that should be addressed: 1. --- ./dlls/ntdll/unix/loader.c @@ -1878,9 +1878,9 @@ #define WINE_JAVA_CLASS "org/winehq/wine/WineActivity" #endif -JavaVM *java_vm = NULL; -jobject java_object = 0; -unsigned short java_gdt_sel = 0; +DECLSPEC_EXPORT JavaVM *java_vm = NULL; +DECLSPEC_EXPORT jobject java_object = 0; +DECLSPEC_EXPORT unsigned short java_gdt_sel = 0; /* main Wine initialisation */ static jstring wine_init_jni( JNIEnv *env, jobject obj, jobjectArray cmdline, jobjectArray environment ) Without this change, code like p_java_object = dlsym( ntdll, "java_object" ); and other related logic in wineandroid.drv/init.c does not work. 2. Sometimes I get the following crash: err:virtual:virtual_alloc_first_teb wine: failed to map the shared user data: c0000018 This likely indicates that something in the thread allocation code interferes with bionic. I am not completely sure, but this seems plausible. 3. As mentioned in the summary, the current pCreateDesktop implementation does not work correctly. It blocks the main Wine thread and prevents further progress, so pCreateDesktop never completes properly. Additionally, there is an assertion in wait_events: assert( GetCurrentThreadId() == desktop_tid ); This assertion is triggered in ANDROID_CreateDesktop before pCreateWindow has any chance to be invoked, which will most likely result in an abort. 4. etc. Currently, I am experimenting with an Android 7.0.1 VirtualBox image from the Android-x86 project and trying to revive this code before attempting to reimplement the native windowing part using AHardwareBuffer on the native process side and a GLES renderer for windows on the Activity side, in order to comply with possible platform restrictions. I do have general development experience, but I lack experience specifically with Wine, so I need some help. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59213 --- Comment #1 from twaik <twaikyont@gmail.com> --- As I assumed, explorer creates desktop and only after this creates window. https://gitlab.winehq.org/wine/wine/-/blob/master/programs/explorer/desktop.... -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
WineHQ Bugzilla