How to compile wine for Android 12 with Android source code

Questions about Wine on Android
Locked
kelvin.wei
Newbie
Newbie
Posts: 2
Joined: Sun Aug 07, 2022 8:50 pm

How to compile wine for Android 12 with Android source code

Post by kelvin.wei »

Build Server: ubuntu x86_64
Android 12: aarch64
target to run windows application: x86 and x64
target wine: wine-7.0 (https://dl.winehq.org/wine/source/7.0/wine-7.0.tar.xz)


------------------------------ cut line --------------------------
According to the guidance of https://wiki.winehq.org/Android,I have make the build script:
#!/bin/bash
TOOLCHAIN=/pathtomyAndroidSourceCode/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin
TOOLCHAIN_PREFIX=aarch64-linux-android

export ANDROID_HOME=/pathtomyAndroidSourceCode/
export NDK_SYSROOT=/pathtosysroot/sysroot

export PATH=$TOOLCHAIN:$PATH

./configure --without-x --without-freetype --host=$TOOLCHAIN_PREFIX host_alias=$TOOLCHAIN_PREFIX --enable-win64 && make



------------------------------ cut line --------------------------
warning :
include/winnt.h:1617:0: warning: "CONTEXT_CONTROL" redefined
#define CONTEXT_CONTROL CONTEXT_ARM64_CONTROL

include/winnt.h:1248:0: note: this is the location of the previous definition
#define CONTEXT_CONTROL CONTEXT_AMD64_CONTROL

same more redefined warning...


------------------------------ cut line --------------------------
error:
include/winnt.h:1624:44: error: conflicting types for ‘RUNTIME_FUNCTION’
typedef IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY RUNTIME_FUNCTION, *PRUNTIME_FUNCTION;
^~~~~~~~~~~~~~~~
include/winnt.h:1258:32: note: previous declaration of ‘RUNTIME_FUNCTION’ was here
typedef AMD64_RUNTIME_FUNCTION RUNTIME_FUNCTION, *PRUNTIME_FUNCTION;
^~~~~~~~~~~~~~~~
include/winnt.h:1624:63: error: conflicting types for ‘PRUNTIME_FUNCTION’
typedef IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY RUNTIME_FUNCTION, *PRUNTIME_FUNCTION;
^~~~~~~~~~~~~~~~~
include/winnt.h:1258:51: note: previous declaration of ‘PRUNTIME_FUNCTION’ was here
typedef AMD64_RUNTIME_FUNCTION RUNTIME_FUNCTION, *PRUNTIME_FUNCTION;
^~~~~~~~~~~~~~~~~
include/winnt.h:1626:26: error: conflicting types for ‘CONTEXT’
typedef ARM64_NT_CONTEXT CONTEXT, *PCONTEXT;
^~~~~~~
include/winnt.h:1257:23: note: previous declaration of ‘CONTEXT’ was here
typedef AMD64_CONTEXT CONTEXT, *PCONTEXT;
^~~~~~~
include/winnt.h:1626:36: error: conflicting types for ‘PCONTEXT’
typedef ARM64_NT_CONTEXT CONTEXT, *PCONTEXT;

same more redefined warning...


------------------------------ cut line --------------------------
add this to include/winnt.h, I found both defined
#ifdef __x86_64__
#warning "__x86_64__ define"
#endif

#ifdef __aarch64__
#warning "__aarch64__ define"
#endif

include/winnt.h:25:2: warning: #warning "__x86_64__ define" [-Wcpp]
#warning "__x86_64__ define"
^~~~~~~
include/winnt.h:29:2: warning: #warning "__aarch64__ define" [-Wcpp]
#warning "__aarch64__ define"
^~~~~~~


------------------------------ cut line --------------------------
according build msg, the gcc is not crossing gcc?

configure: Finished. Do 'make' to compile Wine.

gcc -c -o dlls/acledit/main.o dlls/acledit/main.c -Idlls/acledit -Iinclude -Iinclude/msvcrt -D__WINESRC__ -D_UCRT \
-fPIC -fasynchronous-unwind-tables -D_WIN32 -fno-builtin -fshort-wchar -Wall -pipe \
-fno-stack-protector -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body \
-Wignored-qualifiers -Winit-self -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \
-Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith -Wlogical-op -gdwarf-4 -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D__aarch64__
In file included from include/windef.h:290:0,



------------------------------ cut line --------------------------
toolchain list show
$ ls $TOOLCHAIN
aarch64-linux-android-addr2line aarch64-linux-android-gprof aarch64-linux-android-ld
aarch64-linux-android-ar aarch64-linux-androidkernel-ar aarch64-linux-android-ld.bfd
aarch64-linux-android-as aarch64-linux-androidkernel-as aarch64-linux-android-ld.gold
aarch64-linux-android-c++filt aarch64-linux-androidkernel-elfedit aarch64-linux-android-nm
aarch64-linux-android-dwp aarch64-linux-androidkernel-ld aarch64-linux-android-objcopy
aarch64-linux-android-elfedit aarch64-linux-androidkernel-nm aarch64-linux-android-objdump
aarch64-linux-android-gcc-ar aarch64-linux-androidkernel-objcopy aarch64-linux-android-ranlib
aarch64-linux-android-gcc-nm aarch64-linux-androidkernel-objdump aarch64-linux-android-readelf
aarch64-linux-android-gcc-ranlib aarch64-linux-androidkernel-readelf aarch64-linux-android-size
aarch64-linux-android-gcov aarch64-linux-androidkernel-size aarch64-linux-android-strings
aarch64-linux-android-gcov-tool aarch64-linux-androidkernel-strip aarch64-linux-android-strip

------------------------------ cut line --------------------------

How To next?
Locked