Search code examples
macoscompilationhomebrewwine

Problem while compiling WINE (prefix) on mac 14.2


I've recently decided to try compiling Wine for my MacBook. I followed the instructions from the original website. I already had another (Wine Devel), which I installed from Homebrew, So I deleted that. Then installed all dependencies (alongside other things). And started compiling.

First I cd /Users/<user>/Downloads/wine-9.2/wine64_build. Then started by ../configure --enable-archs=i386,x86_64 CC="ccache gcc" CROSSCC="ccache i686-w64-mingw32-gcc" --without-v4l2 --without-wayland --without-inotify --without-udev --without-oss --without-capi --without-sane --without-gssapi

My results were huge, so i shortened it a bit:

checking build system type... aarch64-apple-darwin23.1.0
checking host system type... aarch64-apple-darwin23.1.0
checking whether make sets $(MAKE)... yes
checking for gcc... ccache gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether ccache gcc accepts -g... yes
checking for ccache gcc option to enable C11 features... none needed
checking for g++... g++
checking whether the compiler supports GNU C++... yes
checking whether g++ accepts -g... yes
checking for g++ option to enable C++11 features... unsupported
checking for g++ option to enable C++98 features... unsupported
checking for cpp... cpp
checking for ld... ld
checking for the directory containing the Wine tools... 
checking for flex... flex
checking whether flex is recent enough... yes
checking for bison... bison
checking whether bison is recent enough... yes
checking for ar... ar
checking for strip... strip
checking for ranlib... ranlib
checking whether ln -s works... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ldconfig... true
checking for msgfmt... msgfmt
checking for pkg-config... pkg-config
checking whether msgfmt supports contexts... yes
checking for i386_set_ldt in -li386... no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for CL/cl.h... no
checking for EGL/egl.h... no
checking for OpenCL/opencl.h... yes
checking for arpa/inet.h... yes
checking for arpa/nameser.h... yes
checking for asm/types.h... no
checking for asm/user.h... no
checking for elf.h... no
checking for float.h... yes
checking for gettext-po.h... yes
checking for libproc.h... yes
checking for link.h... no
checking for linux/cdrom.h... no
checking for linux/filter.h... no
checking for linux/hdreg.h... no
checking for linux/hidraw.h... no
checking for linux/input.h... no
checking for linux/ioctl.h... no
checking for linux/major.h... no
checking for linux/param.h... no
checking for linux/serial.h... no
checking for linux/types.h... no
checking for linux/ucdrom.h... no
checking for linux/wireless.h... no
checking for lwp.h... no
checking for mach-o/loader.h... yes
checking for mach/mach.h... yes
checking for machine/cpu.h... no
checking for machine/sysarch.h... no
checking for mntent.h... no
checking for netdb.h... yes
checking for netinet/in.h... yes
checking for netinet/in_systm.h... yes
checking for netinet/tcp.h... yes
checking for netinet/tcp_fsm.h... yes
checking for pcap/pcap.h... yes
checking for port.h... no
checking for pwd.h... yes
checking for sched.h... yes
checking for scsi/scsi.h... no
checking for scsi/scsi_ioctl.h... no
checking for scsi/sg.h... no
checking for stdint.h... (cached) yes
checking for sys/attr.h... yes
checking for sys/auxv.h... no
checking for sys/cdio.h... no
checking for sys/epoll.h... no
checking for sys/event.h... yes
checking for sys/extattr.h... no
checking for sys/filio.h... yes
checking for sys/ipc.h... yes
checking for sys/link.h... no
checking for sys/modem.h... no
checking for sys/mtio.h... no
checking for sys/param.h... yes
checking for sys/prctl.h... no
checking for sys/ptrace.h... yes
checking for sys/queue.h... yes
checking for sys/random.h... yes
checking for sys/resource.h... yes
checking for sys/scsiio.h... no
checking for sys/shm.h... yes
checking for sys/signal.h... yes
checking for sys/socketvar.h... yes
checking for sys/sockio.h... yes
checking for sys/statvfs.h... yes
checking for sys/strtio.h... no
checking for sys/syscall.h... yes
checking for sys/sysinfo.h... no
checking for sys/times.h... yes
checking for sys/uio.h... yes
checking for sys/user.h... yes
checking for sys/utsname.h... yes
checking for sys/vnode.h... yes
checking for sys/xattr.h... yes
checking for syscall.h... no
checking for utime.h... yes
checking for valgrind/memcheck.h... no
checking for valgrind/valgrind.h... no
checking for sys/mkdev.h... no
checking for sys/sysmacros.h... no
checking whether stat file-mode macros are broken... no
checking for sys/conf.h... yes
checking for sys/mount.h... yes
checking for sys/statfs.h... no
checking for sys/user.h... (cached) yes
checking for sys/vfs.h... no
checking for sys/sysctl.h... yes
checking for netinet/ip.h... yes
checking for net/if.h... yes
checking for net/if_arp.h... yes
checking for net/if_dl.h... yes
checking for net/if_types.h... yes
checking for net/route.h... yes
checking for netinet/if_ether.h... yes
checking for netinet/in_pcb.h... yes
checking for netinet/ip_icmp.h... yes
checking for netinet/ip_var.h... yes
checking for netinet/udp.h... yes
checking for netinet6/ip6_var.h... no
checking for netipx/ipx.h... no
checking for sys/un.h... yes
checking for netinet/udp_var.h... yes
checking for netinet/icmp_var.h... yes
checking for netinet/icmp6.h... yes
checking for netinet/tcp_var.h... yes
checking for linux/ipx.h... no
checking for linux/irda.h... no
checking for linux/rtnetlink.h... no
checking for resolv.h... yes
checking for ifaddrs.h... yes
checking for sys/ucontext.h... yes
checking for sys/thr.h... no
checking for pthread_np.h... no
checking for linux/videodev2.h... no
checking for libprocstat.h... no
checking whether getxattr takes additional arguments... yes
checking for ldd... true
checking for otool... otool
checking for readelf... readelf
checking whether MTLDevice protocol supports registryID property... checking for gcc... gcc
checking whether the compiler supports GNU Objective C... yes
checking whether gcc accepts -g... yes
yes
checking for i686-w64-mingw32-gcc... i686-w64-mingw32-gcc
checking whether i686-w64-mingw32-gcc works... yes
checking whether i686-w64-mingw32-gcc supports -target i686-w64-mingw32 -fuse-ld=lld  --no-default-config... yes
checking for i686-w64-mingw32-gcc option to enable C99 features... none needed
checking whether i686-w64-mingw32-gcc supports -fno-strict-aliasing... yes
checking whether i686-w64-mingw32-gcc supports -Werror=unknown-warning-option... yes
checking whether i686-w64-mingw32-gcc supports -Werror=ignored-optimization-argument... yes
checking whether i686-w64-mingw32-gcc supports -Wdeclaration-after-statement... yes
checking whether i686-w64-mingw32-gcc supports -Wempty-body... yes
checking whether i686-w64-mingw32-gcc supports -Wignored-qualifiers... yes
checking whether i686-w64-mingw32-gcc supports -Winit-self... yes
checking whether i686-w64-mingw32-gcc supports -Wpacked-not-aligned... no
checking whether i686-w64-mingw32-gcc supports -Wpragma-pack... yes
checking whether i686-w64-mingw32-gcc supports -Wmicrosoft-enum-forward-reference... yes
checking whether i686-w64-mingw32-gcc supports -Wshift-overflow=2... no
checking whether i686-w64-mingw32-gcc supports -Wstrict-prototypes... yes
checking whether i686-w64-mingw32-gcc supports -Wtype-limits... yes
checking whether i686-w64-mingw32-gcc supports -Wunused-but-set-parameter... yes
checking whether i686-w64-mingw32-gcc supports -Wvla... yes
checking whether i686-w64-mingw32-gcc supports -Wwrite-strings... yes
checking whether i686-w64-mingw32-gcc supports -Wpointer-arith... yes
checking whether i686-w64-mingw32-gcc supports -Wlogical-op... no
checking whether i686-w64-mingw32-gcc supports -Wabsolute-value... yes
checking whether i686-w64-mingw32-gcc supports -Wenum-conversion... yes
checking whether i686-w64-mingw32-gcc supports -fno-omit-frame-pointer... yes
checking whether i686-w64-mingw32-gcc supports -mpreferred-stack-boundary=2... no
checking whether i686-w64-mingw32-gcc supports -Wl,--disable-stdcall-fixup... yes
checking for x86_64-w64-mingw32-gcc... x86_64-w64-mingw32-gcc
checking whether x86_64-w64-mingw32-gcc works... yes
checking whether x86_64-w64-mingw32-gcc supports -target x86_64-w64-mingw32 -fuse-ld=lld  --no-default-config... yes
checking for x86_64-w64-mingw32-gcc option to enable C99 features... none needed
checking whether x86_64-w64-mingw32-gcc supports SEH directives... yes
checking whether x86_64-w64-mingw32-gcc supports -fno-strict-aliasing... yes
checking whether x86_64-w64-mingw32-gcc supports -Werror=unknown-warning-option... yes
checking whether x86_64-w64-mingw32-gcc supports -Werror=ignored-optimization-argument... yes
checking whether x86_64-w64-mingw32-gcc supports -Wdeclaration-after-statement... yes
checking whether x86_64-w64-mingw32-gcc supports -Wempty-body... yes
checking whether x86_64-w64-mingw32-gcc supports -Wignored-qualifiers... yes
checking whether x86_64-w64-mingw32-gcc supports -Winit-self... yes
checking whether x86_64-w64-mingw32-gcc supports -Wpacked-not-aligned... no
checking whether x86_64-w64-mingw32-gcc supports -Wpragma-pack... yes
checking whether x86_64-w64-mingw32-gcc supports -Wmicrosoft-enum-forward-reference... yes
checking whether x86_64-w64-mingw32-gcc supports -Wshift-overflow=2... no
checking whether x86_64-w64-mingw32-gcc supports -Wstrict-prototypes... yes
checking whether x86_64-w64-mingw32-gcc supports -Wtype-limits... yes
checking whether x86_64-w64-mingw32-gcc supports -Wunused-but-set-parameter... yes
checking whether x86_64-w64-mingw32-gcc supports -Wvla... yes
checking whether x86_64-w64-mingw32-gcc supports -Wwrite-strings... yes
checking whether x86_64-w64-mingw32-gcc supports -Wpointer-arith... yes
checking whether x86_64-w64-mingw32-gcc supports -Wlogical-op... no
checking whether x86_64-w64-mingw32-gcc supports -Wabsolute-value... yes
checking whether x86_64-w64-mingw32-gcc supports -Wenum-conversion... yes
checking whether x86_64-w64-mingw32-gcc supports -Wformat-overflow... no
checking whether x86_64-w64-mingw32-gcc supports -Wnonnull... yes
checking whether x86_64-w64-mingw32-gcc supports -mcx16... yes
checking whether x86_64-w64-mingw32-gcc supports -mcmodel=small... yes
checking for pthread_create... yes
checking how to run the C preprocessor... ccache gcc -E
checking for X... libraries , headers 
checking for gethostbyname... yes
checking for connect... yes
checking for remove... yes
checking for shmat... yes
checking for IceConnectionNumber in -lICE... no
checking for -lX11... libX11.6.dylib
checking for -lXext... libXext.6.dylib
checking for X11/extensions/shape.h... yes
checking for X11/extensions/XInput2.h... yes
checking for X11/extensions/XShm.h... yes
checking for X11/extensions/Xfixes.h... yes
checking for X11/extensions/Xinerama.h... yes
checking for X11/extensions/Xrandr.h... yes
checking for X11/extensions/Xrender.h... yes
checking for X11/extensions/xf86vmode.h... no
checking for X11/extensions/xf86vmproto.h... yes
checking for X11/Xcursor/Xcursor.h... no
checking for X11/extensions/XInput.h... yes
checking for -lXi... libXi.6.dylib
checking for XShmQueryExtension in -lXext... yes
checking for XShapeQueryExtension in -lXext... yes
checking for -lXxf86vm... not found
checking for -lXrender... libXrender.1.dylib
checking for XRenderSetPictureTransform in -lXrender... yes
checking for XRenderCreateLinearGradient in -lXrender... yes
checking for -lXrandr... libXrandr.2.dylib
checking for -lXfixes... libXfixes.3.dylib
checking for -lXinerama... libXinerama.1.dylib
checking for X11/extensions/Xcomposite.h... no
checking for XICCallback.callback... yes
checking for XEvent.xcookie... yes
checking for -lGL... libGL.1.dylib
checking for -lOSMesa... not found
checking for pcap_init in -lpcap... yes
checking for SCardEstablishContext in -lpcsclite... no
checking for dbus/dbus.h... yes
checking for -ldbus-1... libdbus-1.3.dylib
checking for gnutls/gnutls.h... yes
checking for -lgnutls... libgnutls.30.dylib
checking for gnutls_cipher_init... yes
checking for libusb.h... yes
checking for libusb_interrupt_event_handler in -lusb-1.0... yes
checking for gphoto2-camera.h... yes
checking for gp_camera_new in -lgphoto2... yes
checking for gphoto2-port.h... yes
checking for gp_port_info_list_new in -lgphoto2_port... yes
checking for resolver library... -lresolv
checking for res_getservers... yes
checking for ft2build.h... yes
checking for -lfreetype... libfreetype.6.dylib
checking for FT_TrueTypeEngineType... yes
checking for pthread_getthreadid_np... no
checking for pulse/pulseaudio.h... yes
checking for pa_stream_is_corked in -lpulse... yes
checking for gst/gst.h... yes
checking whether gint64 defined by gst/gst.h is indeed 64-bit... yes
checking for gst_pad_new in -lgstreamer-1.0... yes
checking for snd_pcm_hw_params_get_access_mask in -lasound... no
checking for SDL.h... yes
checking for -lSDL2... libSDL2-2.0.0.dylib
checking for cups/cups.h... yes
checking for cups/ppd.h... yes
checking for -lcups... libcups.2.dylib
checking for krb5/krb5.h... yes
checking for -lkrb5... libkrb5.26.dylib
checking for -lodbc... libodbc.2.dylib
checking for -lnetapi... libnetapi.inst.dylib
checking for -lvulkan... libvulkan.1.dylib
checking whether the compiler supports -Werror=unknown-warning-option... yes
checking whether the compiler supports -Werror=unused-command-line-argument... yes
checking whether the compiler supports -Werror=ignored-optimization-argument... yes
checking whether the compiler supports -fcf-protection=none... yes
checking whether the compiler supports -fvisibility=hidden... yes
checking whether the compiler supports -fno-stack-protector... yes
checking whether the compiler supports -fno-strict-aliasing... yes
checking whether the compiler supports -Wdeclaration-after-statement... yes
checking whether the compiler supports -Wempty-body... yes
checking whether the compiler supports -Wignored-qualifiers... yes
checking whether the compiler supports -Winit-self... yes
checking whether the compiler supports -Wpacked-not-aligned... no
checking whether the compiler supports -Wpragma-pack... yes
checking whether the compiler supports -Wshift-overflow=2... no
checking whether the compiler supports -Wstrict-prototypes... yes
checking whether the compiler supports -Wtype-limits... yes
checking whether the compiler supports -Wunused-but-set-parameter... yes
checking whether the compiler supports -Wvla... yes
checking whether the compiler supports -Wwrite-strings... yes
checking whether the compiler supports -Wpointer-arith... yes
checking for broken string.h that generates warnings with -Wpointer-arith... no
checking whether the compiler supports -Wlogical-op... no
checking for flags needed for 64-bit compare-and-swap support... none needed
checking whether the compiler supports -gdwarf-4... yes
checking whether the compiler supports -fno-builtin... yes
checking whether the compiler supports -fshort-wchar... yes
checking whether the compiler supports -Wno-format... yes
checking for the need to disable Fortify... yes
checking whether CFI directives are supported in assembly code... yes
checking for library containing dlopen... none required
checking for library containing gethostbyname... none required
checking for library containing connect... none required
checking for library containing inet_aton... none required
checking for dladdr1... no
checking for dlinfo... no
checking for epoll_create... no
checking for fstatfs... yes
checking for futimens... yes
checking for futimes... yes
checking for futimesat... no
checking for getaddrinfo... yes
checking for getattrlist... yes
checking for getauxval... no
checking for getifaddrs... yes
checking for getrandom... no
checking for kqueue... yes
checking for mach_continuous_time... yes
checking for pipe2... no
checking for port_create... no
checking for posix_fadvise... no
checking for posix_fallocate... no
checking for prctl... no
checking for proc_pidinfo... yes
checking for sched_yield... yes
checking for setproctitle... no
checking for setprogname... yes
checking for sigprocmask... yes
checking for sysinfo... no
checking for tcdrain... yes
checking for thr_kill2... no
checking for sched_setaffinity... no
checking for inline... inline
checking for request_sense... no
checking for struct xinpgen... yes
checking whether we can use re-entrant gethostbyname_r Linux style... no
checking for struct msghdr.msg_accrights... no
checking for struct sockaddr_un.sun_len... yes
checking for scsireq_t.cmd... no
checking for sg_io_hdr_t.interface_id... no
checking for siginfo_t.si_fd... no
checking for struct mtget.mt_blksiz... no
checking for struct mtget.mt_gstat... no
checking for struct mtget.mt_blkno... no
checking for struct stat.st_mtim... no
checking for struct stat.st_mtimespec... yes
checking for struct stat.st_ctim... no
checking for struct stat.st_ctimespec... yes
checking for struct stat.st_atim... no
checking for struct stat.st_atimespec... yes
checking for struct stat.st_birthtime... yes
checking for struct stat.st_birthtim... no
checking for struct stat.st_birthtimespec... yes
checking for struct stat.__st_birthtime... no
checking for struct stat.__st_birthtim... no
checking for struct sockaddr_in6.sin6_scope_id... yes
checking for struct __res_state._u._ext.nscount6... no
checking for struct in6_pktinfo.ipi6_addr... yes
checking for struct ipstat.ips_total... yes
checking for struct ip_stats.ips_total... no
checking for struct ip6stat.ip6s_total... no
checking for struct icmpstat.icps_error... yes
checking for struct icmp6stat.icp6s_error... yes
checking for struct tcpstat.tcps_connattempt... yes
checking for struct tcp_stats.tcps_connattempt... no
checking for struct udpstat.udps_ipackets... yes
checking for struct ifreq.ifr_hwaddr... no
checking for struct sysinfo.totalram... no
checking for struct sysinfo.mem_unit... no
checking for __builtin_popcount... yes
checking for __clear_cache... yes
checking whether we need to define __aarch64__... no
creating Makefile rules... done
configure: creating ./config.status
config.status: creating include/config.h
config.status: include/config.h is unchanged
config.status: linking ../tools/winewrapper to wine
config.status: executing include/stamp-h commands
config.status: executing tools/makedep commands
In file included from ../tools/makedep.c:27:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:64:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdio.h:93:16: warning: pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified) [-Wnullability-completeness]
        unsigned char   *_base;

... There was about 215 warning of the same format as the above warning.

config.status: executing Makefile commands

configure: libxcursor development files not found, the Xcursor extension won't be supported.
configure: libXxf86vm development files not found, XFree86 Vidmode won't be supported.
configure: libxcomposite development files not found, Xcomposite won't be supported.
configure: libOSMesa development files not found (or too old), OpenGL rendering in bitmaps won't be supported.

configure: WARNING: can't build Wine preloader; many programs won't work

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

I don't know what the "preloader" does exactly, but what I do know from the other install that it is the thing that runs the actual windows program. Running ./wine after make gives me- zsh: killed ./wine.

Soo, I can't really do much after this. Help appreciated!


Solution

  • OK, after some research and testing. I have figured out that Wine does not compile for arm64 architecture on Mac. I figured this by first looking up the preloader_mac.c from the wine source code. After reading it through I found no mentions of arm64 or aarch64. I found only for i386 and x86_64. So I turned on Rosetta in Terminal and sure enough, after running ./configure It didn't give the warning configure: WARNING: can't build Wine preloader; many programs won't work. Although, unsurprisingly, the make command fails due to lack of equivalent x86_64 dependencies...