On 13/04/2022 21:55, Jeffrey Walton wrote:
Hi Pádraig,

Below is from a Mac-Mini (Intel), x86_84, OS X 10.12. The attachment
used 'make -k'. Obviously, it did not move on to 'make check'.

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.12.6
BuildVersion:   16G2136

$ make -k V=1 2>&1 | tee coreutils-make.log
...
gcc   -g -O2   -o src/comm src/comm.o src/libver.a lib/libcoreutils.a
-L/usr/local/lib -li
ntl -liconv -ldl -lpthread -Wl,-framework -Wl,CoreFoundation
lib/libcoreutils.a
depbase=`echo src/cp.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        gcc  -I. -I./lib  -Ilib -I./lib -Isrc -I./src
-I/usr/local/include   -g -O2 -MT sr
c/cp.o -MD -MP -MF $depbase.Tpo -c -o src/cp.o src/cp.c &&\
        mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/copy.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        gcc  -I. -I./lib  -Ilib -I./lib -Isrc -I./src
-I/usr/local/include   -g -O2 -MT sr
c/copy.o -MD -MP -MF $depbase.Tpo -c -o src/copy.o src/copy.c &&\
        mv -f $depbase.Tpo $depbase.Po
src/copy.c:1192:53: error: use of undeclared identifier 'CLONE_NOOWNERCOPY'
      int clone_flags = x->preserve_ownership ? 0 : CLONE_NOOWNERCOPY;
                                                    ^
1 error generated.
make[2]: *** [src/copy.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Oh nice one.
The attached should fix this up.

thanks!
Pádraig
From bcfbcef928cd540e53d35fc2869d9def2fedeb84 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <p...@draigbrady.com>
Date: Thu, 14 Apr 2022 13:35:22 +0100
Subject: [PATCH] build: copy: fix build on macos 10.12

* src/copy.c (copy_reg): Handle the case where CLONE_NOOWNERCOPY
is not defined.
Reported by Jeffrey Walton
---
 src/copy.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/copy.c b/src/copy.c
index cb31067cd..b15d91990 100644
--- a/src/copy.c
+++ b/src/copy.c
@@ -1189,9 +1189,14 @@ copy_reg (char const *src_name, char const *dst_name,
   if (*new_dst)
     {
 #if HAVE_FCLONEFILEAT && !USE_XATTR
+/* CLONE_NOOWNERCOPY only available on macos >= 10.13.  */
+# ifndef CLONE_NOOWNERCOPY
+#  define CLONE_NOOWNERCOPY 0
+# endif
       int clone_flags = x->preserve_ownership ? 0 : CLONE_NOOWNERCOPY;
       if (data_copy_required && x->reflink_mode
           && x->preserve_mode && x->preserve_timestamps
+          && (x->preserve_ownership || CLONE_NOOWNERCOPY)
           && (fclonefileat (source_desc, dst_dirfd, dst_relname, clone_flags)
               == 0))
         goto close_src_desc;
-- 
2.26.2

Reply via email to