Bug 260165

Summary: emulators/wine: Fail link if devel/libsysinfo installed: unix/virtual.o: in function `virtual_get_system_info': virtual.c:(.text+0x4b57): undefined reference to `sysinfo'
Product: Ports & Packages Reporter: alt2600
Component: Individual Port(s)Assignee: Gerald Pfeifer <gerald>
Status: Closed FIXED    
Severity: Affects Some People CC: gerald, grahamperrin, imp
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   
See Also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=257398
Attachments:
Description Flags
git-diff-patch-libsysinfo_checks none

Description alt2600 2021-12-02 03:16:45 UTC
Created attachment 229839 [details]
git-diff-patch-libsysinfo_checks

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=257398

tools/winegcc/winegcc -o dlls/odbc32/odbc32.dll.fake --wine-objdir . -m64 -fPIC -fasynchronous-unwind-tables -shared \
  dlls/odbc32/odbc32.spec -mno-cygwin dlls/odbc32/proxyodbc.o dlls/odbc32/rsrc.res -ladvapi32 \
  dlls/ucrtbase/libucrtbase.a -fstack-protector-strong -Wl,-rpath=/usr/local/lib/gcc10 -L/usr/local/lib/gcc10 
tools/winegcc/winegcc -o dlls/odbc32/odbc32.so --wine-objdir . -m64 -fPIC -fasynchronous-unwind-tables -munix -shared \
  dlls/odbc32/odbc32.spec dlls/odbc32/unixlib.o -lntdll dlls/winecrt0/libwinecrt0.a \
  libs/port/libwine_port.a -L/usr/local/lib -fstack-protector-strong -Wl,-rpath=/usr/local/lib/gcc10 -L/usr/local/lib/gcc10 
/usr/local/bin/ld: dlls/ntdll/unix/virtual.o: in function `virtual_get_system_info':
virtual.c:(.text+0x4b57): undefined reference to `sysinfo'
collect2: error: ld returned 1 exit status
winegcc: /usr/local/bin/gcc10 failed
gmake[1]: *** [Makefile:95968: dlls/ntdll/ntdll.so] Error 2
gmake[1]: *** Waiting for unfinished jobs....
gmake[1]: Leaving directory '/usr/ports/emulators/wine/work/wine-6.0.2'
===> Compilation failed unexpectedly.
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to
the maintainer.
*** Error code 1

Stop.
make: stopped in /usr/ports/emulators/wine

this issue was fixed in wine-devel, but not in wine. so I back ported those changes to the wine port as a patch set. and have attached the git diff to add those files. I did notice an issue with the plist, I'm not sure if we should be using those joystick drivers, but I'm intrigued if those would allow usb joysticks in wine.

====> Checking for pkg-plist issues (check-plist)
===> Parsing plist
===> Checking for items in STAGEDIR missing from pkg-plist
Error: Orphaned: lib/wine/fakedlls/winejoystick.drv
Error: Orphaned: lib/wine/winejoystick.drv.so
===> Checking for items in pkg-plist which are not in STAGEDIR
===> Error: Plist issues found.
*** Error code 1

build packages, and installs fine. I am trying to get re-acclimated after the i386-wine port was removed, as well as working with my old prefix. I can confirm though that after running pkg32 and setting the wineprefix I can launch Diablo II LOD fine. and some random win64 apps seem to be running.
Comment 1 Gerald Pfeifer freebsd_committer freebsd_triage 2021-12-15 21:20:15 UTC
Well, this is really just my patch as it went upstream and the issue
only appears when not building in a clean environment, but okay, let
me temporarily back port my own patch...
Comment 2 commit-hook freebsd_committer freebsd_triage 2021-12-15 21:32:45 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=b75f3b5a79927f27605bee328c36d9d7d8b425ec

commit b75f3b5a79927f27605bee328c36d9d7d8b425ec
Author:     Gerald Pfeifer <gerald@FreeBSD.org>
AuthorDate: 2021-12-15 21:27:50 +0000
Commit:     Gerald Pfeifer <gerald@FreeBSD.org>
CommitDate: 2021-12-15 21:31:35 +0000

    emulators/wine: Fix build with devel/libsysinfo present

    This back ports the patch I pushed upstream and that wine-devel has
    inherited from there a few months ago. It will go away with the next
    major release.

    PR:             257398, 260165 [1]
    Suggested by:   alt2600@icloud.com [1]

 emulators/wine/files/patch-sysinfo (new) | 72 ++++++++++++++++++++++++++++++++
 1 file changed, 72 insertions(+)