Hello.
I’m using parts of Wine (specifically the vbscript engine) while porting Visual Pinball to be cross platform.
I have been using the WIDL utility extensively and it has worked great.
I wanted to keep my patches up to date so I don’t fall behind, however I am having issues compiling wine after version 7.20.
This was my typical compile:
brew install llvm llvm-mingw git clone -b wine-7.20 git://source.winehq.org/git/wine.git git clone git@github.com:vpinball/pinmame.git cd wine export MACOSX_DEPLOYMENT_TARGET="10.14" export LDFLAGS="-Wl,-rpath,/opt/X11/lib" export PATH="$(brew --prefix llvm)/bin:$PATH" export PATH="$(brew --prefix bison)/bin:$PATH" ./configure --without-freetype make -j10 tools/widl/widl -o ../vpinmame_i.h --nostdinc -Ldlls/* -Iinclude -D__WINESRC__ -D_UCRT ../pinmame/src/win32com/VPinMAME.idl
Now with anything past 7.20 I’m getting:
configure: error: PE cross-compilation is required for ARM64, please install clang/llvm-dlltool/lld, or llvm-mingw.
Is there anyway to disable this?
Thanks Jason
On Feb 10, 2023, at 5:56 AM, Jason Millard jsm174@gmail.com wrote:
Hello.
I’m using parts of Wine (specifically the vbscript engine) while porting Visual Pinball to be cross platform.
I have been using the WIDL utility extensively and it has worked great.
I wanted to keep my patches up to date so I don’t fall behind, however I am having issues compiling wine after version 7.20.
This was my typical compile:
brew install llvm llvm-mingw git clone -b wine-7.20 git://source.winehq.org/git/wine.git git clone git@github.com:vpinball/pinmame.git cd wine export MACOSX_DEPLOYMENT_TARGET="10.14" export LDFLAGS="-Wl,-rpath,/opt/X11/lib" export PATH="$(brew --prefix llvm)/bin:$PATH" export PATH="$(brew --prefix bison)/bin:$PATH" ./configure --without-freetype make -j10 tools/widl/widl -o ../vpinmame_i.h --nostdinc -Ldlls/* -Iinclude -D__WINESRC__ -D_UCRT ../pinmame/src/win32com/VPinMAME.idl
Now with anything past 7.20 I’m getting:
configure: error: PE cross-compilation is required for ARM64, please install clang/llvm-dlltool/lld, or llvm-mingw.
Hi,
I’m not sure why you would be getting that error, can you post your config.log? Testing on Ventura, I’m able to configure with just bison and llvm from homebrew:
export PATH=/opt/homebrew/opt/llvm/bin:/opt/homebrew/opt/bison/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin ./configure --without-freetype
Also I don’t see an ‘llvm-mingw’ formula, where is that installed from?
Brendan
Hello. Thanks!
`llvm-mingw` was a typo from my notes. Sorry about that.
After examining paths, they looked the same, so I tried without the
export LDFLAGS="-Wl,-rpath,/opt/X11/lib"
and that worked and I can now make it through configure!
Now during the build, I get:
dlls/ntdll/unix/dwarf.h:915:45: warning: taking the absolute value of unsigned type 'ULONG_PTR' (aka 'unsigned long') has no effect [-Wabsolute-value] case DW_OP_abs: stack[sp] = labs(stack[sp]); break; ^ dlls/ntdll/unix/dwarf.h:915:45: note: remove the call to 'labs' since unsigned values cannot be negative case DW_OP_abs: stack[sp] = labs(stack[sp]); break; ^~~~ <inline asm>:305:2: error: conditional branch requires assembler-local label. '.L__wine_syscall_dispatcher_return' is external. cbnz w16, .L__wine_syscall_dispatcher_return ^ 1 warning and 1 error generated. make: *** [dlls/ntdll/unix/signal_arm64.o] Error 1 ➜ wine git:(6677c044abb) ✗ (BINARY-N/A)
On Fri, Feb 10, 2023 at 1:33 PM Brendan Shanks bshanks@codeweavers.com wrote:
On Feb 10, 2023, at 5:56 AM, Jason Millard jsm174@gmail.com wrote:
Hello.
I’m using parts of Wine (specifically the vbscript engine) while porting
Visual Pinball to be cross platform.
I have been using the WIDL utility extensively and it has worked great.
I wanted to keep my patches up to date so I don’t fall behind, however I
am having issues compiling wine after version 7.20.
This was my typical compile:
brew install llvm llvm-mingw git clone -b wine-7.20 git://source.winehq.org/git/wine.git git clone git@github.com:vpinball/pinmame.git cd wine export MACOSX_DEPLOYMENT_TARGET="10.14" export LDFLAGS="-Wl,-rpath,/opt/X11/lib" export PATH="$(brew --prefix llvm)/bin:$PATH" export PATH="$(brew --prefix bison)/bin:$PATH" ./configure --without-freetype make -j10 tools/widl/widl -o ../vpinmame_i.h --nostdinc -Ldlls/* -Iinclude
-D__WINESRC__ -D_UCRT ../pinmame/src/win32com/VPinMAME.idl
Now with anything past 7.20 I’m getting:
configure: error: PE cross-compilation is required for ARM64, please
install clang/llvm-dlltool/lld, or llvm-mingw.
Hi,
I’m not sure why you would be getting that error, can you post your config.log? Testing on Ventura, I’m able to configure with just bison and llvm from homebrew:
export PATH=/opt/homebrew/opt/llvm/bin:/opt/homebrew/opt/bison/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin ./configure --without-freetype
Also I don’t see an ‘llvm-mingw’ formula, where is that installed from?
Brendan
On Feb 10, 2023, at 11:10 AM, Jason Millard jsm174@gmail.com wrote:
Hello. Thanks!
`llvm-mingw` was a typo from my notes. Sorry about that.
After examining paths, they looked the same, so I tried without the
export LDFLAGS="-Wl,-rpath,/opt/X11/lib"
and that worked and I can now make it through configure!
Now during the build, I get:
dlls/ntdll/unix/dwarf.h:915:45: warning: taking the absolute value of unsigned type 'ULONG_PTR' (aka 'unsigned long') has no effect [-Wabsolute-value] case DW_OP_abs: stack[sp] = labs(stack[sp]); break; ^ dlls/ntdll/unix/dwarf.h:915:45: note: remove the call to 'labs' since unsigned values cannot be negative case DW_OP_abs: stack[sp] = labs(stack[sp]); break; ^~~~ <inline asm>:305:2: error: conditional branch requires assembler-local label. '.L__wine_syscall_dispatcher_return' is external. cbnz w16, .L__wine_syscall_dispatcher_return ^
Great, I just pushed an MR for that error: https://gitlab.winehq.org/wine/wine/-/merge_requests/2158
With that it should build, but otherwise ARM64 Wine completely does not work on macOS. But if you only need widl maybe that’s ok :)
Brendan
Wow! That did the trick!!!
Thank you again so much!!
/*** Autogenerated by WIDL 8.0 from /Users/jmillard/vpinball/standalone/inc/vpinmame/VPinMAME.idl - Do not edit ***/
#ifdef _WIN32 #ifndef __REQUIRED_RPCNDR_H_VERSION__ #define __REQUIRED_RPCNDR_H_VERSION__ 475 #endif #include <rpc.h> #include <rpcndr.h> #endif
On Fri, Feb 10, 2023 at 2:15 PM Brendan Shanks bshanks@codeweavers.com wrote:
On Feb 10, 2023, at 11:10 AM, Jason Millard jsm174@gmail.com wrote:
Hello. Thanks!
`llvm-mingw` was a typo from my notes. Sorry about that.
After examining paths, they looked the same, so I tried without the
export LDFLAGS="-Wl,-rpath,/opt/X11/lib"
and that worked and I can now make it through configure!
Now during the build, I get:
dlls/ntdll/unix/dwarf.h:915:45: warning: taking the absolute value of
unsigned type 'ULONG_PTR' (aka 'unsigned long') has no effect [-Wabsolute-value]
case DW_OP_abs: stack[sp] = labs(stack[sp]); break; ^
dlls/ntdll/unix/dwarf.h:915:45: note: remove the call to 'labs' since
unsigned values cannot be negative
case DW_OP_abs: stack[sp] = labs(stack[sp]); break; ^~~~
<inline asm>:305:2: error: conditional branch requires assembler-local
label. '.L__wine_syscall_dispatcher_return' is external.
cbnz w16, .L__wine_syscall_dispatcher_return ^
Great, I just pushed an MR for that error: https://gitlab.winehq.org/wine/wine/-/merge_requests/2158
With that it should build, but otherwise ARM64 Wine completely does not work on macOS. But if you only need widl maybe that’s ok :)
Brendan