Did Xcode13 now break i386 targets?, as Xcode12 on my M1 Mac Mini had compiled i386 target wine for me when using MacOSX10.13.SDK
The proposed patch reminds me of a change to meson a while back that removed this as it caused issues on Linux when cross-compiling for other distros/archs.
Something I've been working on lately is cross-compiling Wine for 32-bit
Mac from newer 64-bit-only macOS versions (10.15 and newer). This should
be especially useful for anyone packaging Wine for macOS.
The first part needed is a toolchain. Apple's last official toolchain to
support targeting i386 is Xcode 9.4.1 and the 10.13 SDK, but this is
unable to run on any OS newer than 10.14.
To fix this, I've created a hack that allows the Xcode 9.4.1 toolchain to
be used on newer OSes: <https://github.com/mrpippy/XcodeNueve>
With the toolchain working, building i386 with it is now a cross-compile.
Apple does not prefix the commands with the host triplet though
(i.e. 'i386-apple-darwin'), which Wine seems to expect for cross-compiling.
Specifically, configure adds "-b <host triplet>" to TARGETFLAGS, causing
winebuild to search for commands like ld and nm prefixed with that host
triplet, which fails.
This is a patch which only sets that TARGETFLAGS when the host triplet
appears in $CC. I'm open to a different approach to fixing this though.
Here's the command I use to configure, assuming the modified Xcode 9.4.1
is at /Applications/Xcode9.app:
DEVELOPER_DIR="/Applications/Xcode9.app" \
SDKROOT="/Applications/Xcode9.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk" \
../configure --host=i386-apple-darwin \
--with-wine-tools=<path to wine64 build> --with-wine64=<path to wine64 build> \
CC="clang -arch i386" TARGETFLAGS="-m32"
Make also needs to be run with DEVELOPER_DIR and SDKROOT set.
And this also works on Apple Silicon, just run with 'arch -x86_64'
Brendan Shanks (1):
configure: Only set TARGETFLAGS when cross-compiling with
host-prefixed tools.
configure.ac | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
--
2.30.1 (Apple Git-130)