Digging into this further, I noticed Zebediah's commit https://github.com/wine-staging/wine-staging/commit/1d149ff59d6d4b400ad53eb5... was the one breaking FreeBSD here.
The
#ifndef XATTR_USER_PREFIX_LEN # define XATTR_USER_PREFIX_LEN (sizeof(XATTR_USER_PREFIX) - 1) #endif
bit plus defining xattr_valid_namespace() both of which they removed from libs/port/xattr.c are still missing to completely restore the build on FreeBSD.
Should those bits be moved to dlls/ntdll/unix/file.c by adding them to patches/ntdll-DOS_Attributes/0006-libport-Add-support-for-FreeBSD-style-extended-attri.patch too?
Zebediah, can you help, please?
Thank you, Gerald
On Wed, 14 Oct 2020, Gerald Pfeifer wrote:
Alistair Leslie-Hughes wrote:
As always, if you find a bug, please report it via https://bugs.winehq.org
I did that with https://bugs.winehq.org/show_bug.cgi?id=49829 ("file.c:237:37: error: 'EXTATTR_NAMESPACE_USER' undeclared on FreeBSD") and even have debugged this and found a first fix.
Alas the instructions at https://wiki.winehq.org/Wine-Staging do not really apply: The link provided goes into Bugzilla.
Anyway, here is that first step towards fixing things up on FreeBSD.
Gerald
Properly include sys/extattr.h when available.
dlls/ntdll/unix/file.c special cases when sys/extattr.h is available, alas failed to actually include that file.
Signed-off-by: Gerald Pfeifer gerald@pfeifer.com
--- dlls/ntdll/unix/file.c.orig 2020-10-14 19:03:39.476740000 +0000 +++ dlls/ntdll/unix/file.c 2020-10-14 19:49:03.226593000 +0000 @@ -112,6 +112,9 @@ #elif defined(HAVE_SYS_XATTR_H) #include <sys/xattr.h> #endif +#ifdef HAVE_SYS_EXTATTR_H +#include <sys/extattr.h> +#endif #include <time.h> #ifdef HAVE_UNISTD_H # include <unistd.h>