]> Zhao Yanbai Git Server - minix.git/commitdiff
Workaround missing lchmod/lchown
authorLionel Sambuc <lionel@minix3.org>
Sat, 15 Mar 2014 13:11:22 +0000 (14:11 +0100)
committerLionel Sambuc <lionel@minix3.org>
Mon, 28 Jul 2014 15:05:20 +0000 (17:05 +0200)
Change-Id: I231a0010722619d389b763af35ff55f84ca9cb76

bin/pax/Makefile
include/unistd.h
lib/libc/sys-minix/Makefile.inc
lib/libpuffs/Makefile
tools/compat/lchmod.c
tools/compat/lchown.c
usr.bin/sort/Makefile
usr.sbin/mtree/Makefile

index 0e6e13e136d1f61e30b3a6c994c512fb069073ab..9b2f6a6dbd2030fdc8882c8c5cc7f492479e78b0 100644 (file)
@@ -53,7 +53,6 @@ DPADD+=       ${LIBRMT}
 
 .if defined(__MINIX)
 CPPFLAGS+= -DHOSTPROG
-CPPFLAGS+= -Dlchown=chown -Dlchmod=chmod
 
 MLINKS+= pax.1 bsdtar.1
 .endif # defined(__MINIX)
index c8aa39c8c68145f01acd63bb755f94a8637bfc74..6ab39eb5690884ec9ce3d09c47b19cc133540e0a 100644 (file)
@@ -259,12 +259,12 @@ __pure int
         getpagesize(void);             /* legacy */
 #if !defined(__minix)
 pid_t   getpgid(pid_t);
+#endif /* !defined(__minix) */
 #if defined(_XOPEN_SOURCE)
 int     lchown(const char *, uid_t, gid_t) __RENAME(__posix_lchown);
 #else
 int     lchown(const char *, uid_t, gid_t);
 #endif
-#endif /* !defined(__minix) */
 int     lockf(int, int, off_t);
 #if __SSP_FORTIFY_LEVEL == 0
 ssize_t         readlink(const char * __restrict, char * __restrict, size_t);
index 2dea8f10d357074ab13d10624bddf21afac5db65..b7d38d15315ff487c92445e4c98332351ce7495c 100644 (file)
@@ -27,4 +27,9 @@ SRCS+=        accept.c access.c adjtime.c bind.c brk.c sbrk.c m_closefrom.c getsid.c \
 # Minix specific syscalls / utils.
 SRCS+= cprofile.c sprofile.c stack_utils.c _mcontext.c
 
+# Emulation for missing lchown/lchmod
+OBJS+= lchown.o lchmod.o
+lchown.o lchown.pico lchown.bc: ${NETBSDSRCDIR}/tools/compat/lchown.c
+lchmod.o lchmod.pico lchmod.bc: ${NETBSDSRCDIR}/tools/compat/lchmod.c
+
 .include "${ARCHDIR}/sys-minix/Makefile.inc"
index fd47ff51f3635e075a6213266b8dd37ef0260ee8..138d7a504cf81993a70e5b468b70e79236102afc 100644 (file)
@@ -22,7 +22,6 @@ LINTFLAGS+=-S -w
 SRCS+=         inode.c link.c misc.c mount.c open.c path.c path_puffs.c \
                protect.c read.c stadir.c time.c utility.c table.c
 
-CPFFLAGS+=-Dlchown=chown -Dlchmod=chmod
 CPPFLAGS+= -D_MINIX_SYSTEM
 
 NOGCCERROR=yes
index 459f77ae4f2bec9564ab979d987534c6731ecf08..3d11ed28415f36f84a987defc7541a6dc2e21a7c 100644 (file)
@@ -32,7 +32,9 @@
 /* Emulate lchmod(2), checking path with lstat(2) first to ensure that
  * it's not a symlink, and then call chmod(2) */
 
+#if !defined(__minix) && !defined(_LIBC)
 #include "nbtool_config.h"
+#endif /* !defined(__minix) && !defined(_LIBC) */
 
 #if !HAVE_LCHMOD
 #include <sys/stat.h>
index c99148dc57024fb583f4caf8265ebc2d80f4c594..ddd17e8f9ce3df71de9b0ff0a45ea9f79cf1cd94 100644 (file)
 /* Emulate lchown(2), checking path with lstat(2) first to ensure that
  * it's not a symlink, and then call chown(2) */
 
+#if !defined(__minix) && !defined(_LIBC)
 #include "nbtool_config.h"
+#endif /* !defined(__minix) && !defined(_LIBC) */
 
 #if !HAVE_LCHOWN
 #include <sys/stat.h>
 #include <errno.h>
 #include <unistd.h>
 
+#if defined(__minix) && defined(__weak_alias) && defined(_LIBC)
+__weak_alias(__posix_lchown, lchown)
+#endif /* defined(__minix) && defined(__weak_alias) && defined(_LIBC) */
+
 int
 lchown(const char *path, uid_t owner, gid_t group)
 {
index 9219a22558d5738bc482a47183fc51a94fa1b263..fd177c57f4e970b348d9498cfec7ca86284ece65 100644 (file)
@@ -8,8 +8,4 @@ SRCS+=  radix_sort.c
 LDADD+=-lutil
 DPADD+=${LIBUTIL}
 
-.if defined(__MINIX)
-CPPFLAGS+= -Dlchown=chown -Dlchmod=chmod
-.endif # defined(__MINIX)
-
 .include <bsd.prog.mk>
index e2dea5f8c7b47e3461ba0fe26a84262152e9dd08..3613e141a9a1bacbe4cedb66013e47b9c33a2247 100644 (file)
@@ -10,9 +10,6 @@ MAN=  mtree.8
 SRCS=  compare.c crc.c create.c excludes.c misc.c mtree.c spec.c specspec.c \
        verify.c getid.c pack_dev.c only.c
 .if (${HOSTPROG:U} == "")
-.if defined(__MINIX)
-CPPFLAGS+= -Dlchown=chown -Dlchmod=chmod 
-.endif
 DPADD+= ${LIBUTIL}
 LDADD+= -lutil
 .endif