glocalfile: Disable faccessat()-based query_exists on FreeBSD

It appears not to work, and nobody interested in FreeBSD has picked it
up to investigate yet.

Rather than have a completely broken implementation of
`g_file_query_exists()` on FreeBSD, let’s settle for using the old one.
It’s slightly slower than the new one, but has worked fine for people
for years.

This essentially reverts commit 65ad41d8a4
on FreeBSD. This commit can be reverted when a FreeBSD person
investigates what’s going wrong with the `faccessat()`-based
implementation.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>

Helps: #3495
This commit is contained in:
Philip Withnall
2024-10-22 13:37:55 +01:00
parent e9902a66a9
commit ad67d4e833

View File

@@ -1259,7 +1259,9 @@ g_local_file_query_info (GFile *file,
return info;
}
#ifdef HAVE_FACCESSAT
/* FIXME: faccessat() is available on FreeBSD but appears to not work correctly
* here. This needs diagnosing; https://gitlab.gnome.org/GNOME/glib/-/issues/3495 */
#if defined(HAVE_FACCESSAT) && !defined(__FreeBSD__)
static gboolean
g_local_file_query_exists (GFile *file,
GCancellable *cancellable)
@@ -3153,7 +3155,7 @@ g_local_file_file_iface_init (GFileIface *iface)
iface->monitor_dir = g_local_file_monitor_dir;
iface->monitor_file = g_local_file_monitor_file;
iface->measure_disk_usage = g_local_file_measure_disk_usage;
#ifdef HAVE_FACCESSAT
#if defined(HAVE_FACCESSAT) && !defined(__FreeBSD__)
iface->query_exists = g_local_file_query_exists;
#endif