Revert part of the last commit, remove {g|s}etflags from the libc
interface, and statically link them to the programs using them. These functions, upon reflection and discussion, are too generically named for a library interface with such specific functionality. Also the api that they use, whilst ok for private use, isn't good enough for a libc function. Additionally there were complications with the build/install-world process. It depends heavily upon xinstall, which got broken by the change in api, and caused bootstrap problems and general mayhem. There is work in progress to address future problems that may be caused by changes in install-chain tools, and better names for {g|s}etflags can be derived when some future program requires them. For now the code has been left in src/lib/libc/gen (it started off in src/bin/ls). It's important to provide library functions for manipulating file flag strings if we ever want this interface to be adopted outside of the source tree, but now isn't necessarily the right moment with 4.0-release just around the corner. Approved: jkh
This commit is contained in:
parent
6ef70f5717
commit
bb1bbb6d1f
@ -5,5 +5,7 @@ NOSHARED?=yes
|
||||
|
||||
PROG= chflags
|
||||
CFLAGS+=-Wall
|
||||
.PATH: ${.CURDIR}/../../lib/libc/gen
|
||||
SRCS= chflags.c setflags.c
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
|
@ -56,6 +56,8 @@ static const char rcsid[] =
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
extern u_long setflags __P((char **, u_long *, u_long *));
|
||||
|
||||
void usage __P((void));
|
||||
|
||||
int
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
|
||||
PROG= ls
|
||||
SRCS= cmp.c ls.c print.c util.c
|
||||
SRCS= cmp.c setflags.c ls.c print.c util.c
|
||||
.PATH: ${.CURDIR}/../../lib/libc/gen
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
|
@ -74,6 +74,8 @@ static const char rcsid[] =
|
||||
*/
|
||||
#define STRBUF_SIZEOF(t) (1 + CHAR_BIT * sizeof(t) / 3 + 1)
|
||||
|
||||
char *getflags __P((u_long, char *));
|
||||
|
||||
static void display __P((FTSENT *, FTSENT *));
|
||||
static u_quad_t makenines __P((u_long));
|
||||
static int mastercmp __P((const FTSENT **, const FTSENT **));
|
||||
|
@ -2,8 +2,10 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PROG= rm
|
||||
SRCS= rm.c setflags.c
|
||||
|
||||
LINKS= ${BINDIR}/rm ${BINDIR}/unlink
|
||||
MLINKS= rm.1 unlink.1
|
||||
.PATH: ${.CURDIR}/../../lib/libc/gen
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
|
@ -61,6 +61,8 @@ static const char rcsid[] =
|
||||
#include <sysexits.h>
|
||||
#include <unistd.h>
|
||||
|
||||
char *getflags __P((u_long, char *));
|
||||
|
||||
int dflag, eval, fflag, iflag, Pflag, vflag, Wflag, stdin_ok;
|
||||
uid_t uid;
|
||||
|
||||
|
@ -134,7 +134,6 @@ int ftruncate __P((int, off_t));
|
||||
#endif
|
||||
int getdomainname __P((char *, int));
|
||||
int getdtablesize __P((void));
|
||||
char *getflags __P((u_long, char *));
|
||||
int getgrouplist __P((const char *, int, int *, int *));
|
||||
long gethostid __P((void));
|
||||
int gethostname __P((char *, int));
|
||||
@ -182,7 +181,6 @@ int select __P((int, fd_set *, fd_set *, fd_set *, struct timeval *));
|
||||
int setdomainname __P((const char *, int));
|
||||
int setegid __P((gid_t));
|
||||
int seteuid __P((uid_t));
|
||||
int setflags __P((char **, u_long *, u_long *));
|
||||
int setgroups __P((int, const gid_t *));
|
||||
void sethostid __P((long));
|
||||
int sethostname __P((const char *, int));
|
||||
|
@ -20,7 +20,7 @@ SRCS+= _rand48.c _spinlock_stub.c alarm.c arc4random.c assert.c \
|
||||
nlist.c nrand48.c ntp_gettime.c opendir.c \
|
||||
pause.c popen.c psignal.c pwcache.c raise.c readdir.c rewinddir.c \
|
||||
scandir.c seed48.c seekdir.c semconfig.c semctl.c semget.c semop.c \
|
||||
setdomainname.c setflags.c sethostname.c setjmperr.c setmode.c shmat.c \
|
||||
setdomainname.c sethostname.c setjmperr.c setmode.c shmat.c \
|
||||
shmctl.c shmdt.c shmget.c siginterrupt.c siglist.c signal.c \
|
||||
sigsetops.c sleep.c srand48.c stringlist.c \
|
||||
sysconf.c sysctl.c sysctlbyname.c \
|
||||
@ -45,8 +45,7 @@ MAN3+= alarm.3 arc4random.3 clock.3 \
|
||||
glob.3 initgroups.3 isinf.3 \
|
||||
ldexp.3 lockf.3 modf.3 msgctl.3 msgget.3 msgrcv.3 msgsnd.3 \
|
||||
nice.3 nlist.3 pause.3 popen.3 psignal.3 pwcache.3 \
|
||||
raise.3 rand48.3 scandir.3 setflags.3 \
|
||||
setjmp.3 setmode.3 siginterrupt.3 \
|
||||
raise.3 rand48.3 scandir.3 setjmp.3 setmode.3 siginterrupt.3 \
|
||||
signal.3 sigsetops.3 sleep.3 stringlist.3 \
|
||||
sysconf.3 sysctl.3 syslog.3 tcgetpgrp.3 \
|
||||
tcsendbreak.3 tcsetattr.3 tcsetpgrp.3 time.3 times.3 timezone.3 \
|
||||
@ -101,7 +100,6 @@ MLINKS+=rand48.3 _rand48.3 rand48.3 drand48.3 rand48.3 erand48.3 \
|
||||
rand48.3 mrand48.3 rand48.3 nrand48.3 rand48.3 seed48.3 \
|
||||
rand48.3 srand48.3
|
||||
MLINKS+=scandir.3 alphasort.3
|
||||
MLINKS+=setflags.3 getflags.3
|
||||
MLINKS+=setjmp.3 _longjmp.3 setjmp.3 _setjmp.3 setjmp.3 longjmp.3 \
|
||||
setjmp.3 longjmperr.3 setjmp.3 longjmperror.3 \
|
||||
setjmp.3 siglongjmp.3 setjmp.3 sigsetjmp.3
|
||||
|
@ -14,8 +14,8 @@ LDADD= -lskey -lmd -lcrypt -lutil
|
||||
DPADD= ${LIBSKEY} ${LIBMD} ${LIBCRYPT} ${LIBUTIL}
|
||||
|
||||
LSDIR= ../../bin/ls
|
||||
.PATH: ${.CURDIR}/${LSDIR}
|
||||
SRCS+= ls.c cmp.c print.c util.c
|
||||
.PATH: ${.CURDIR}/${LSDIR} ${.CURDIR}/../../lib/libc/gen
|
||||
SRCS+= ls.c cmp.c print.c setflags.c util.c
|
||||
CFLAGS+=-DINTERNAL_LS -Dmain=ls_main -I${.CURDIR}/${LSDIR}
|
||||
|
||||
.if defined(NOPAM)
|
||||
|
@ -5,5 +5,7 @@ NOSHARED?=yes
|
||||
|
||||
PROG= chflags
|
||||
CFLAGS+=-Wall
|
||||
.PATH: ${.CURDIR}/../../lib/libc/gen
|
||||
SRCS= chflags.c setflags.c
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
|
@ -56,6 +56,8 @@ static const char rcsid[] =
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
extern u_long setflags __P((char **, u_long *, u_long *));
|
||||
|
||||
void usage __P((void));
|
||||
|
||||
int
|
||||
|
@ -2,6 +2,7 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PROG= find
|
||||
SRCS= find.c function.c ls.c main.c misc.c operator.c option.c
|
||||
SRCS= find.c function.c ls.c main.c misc.c operator.c option.c setflags.c
|
||||
.PATH: ${.CURDIR}/../../lib/libc/gen
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
|
@ -71,6 +71,8 @@ static char rcsid[] = "$FreeBSD$";
|
||||
} \
|
||||
}
|
||||
|
||||
u_long setflags __P((char **, u_long *, u_long *));
|
||||
|
||||
static PLAN *palloc __P((enum ntype, int (*) __P((PLAN *, FTSENT *))));
|
||||
|
||||
/*
|
||||
|
@ -2,6 +2,8 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PROG= xinstall
|
||||
SRCS= setflags.c xinstall.c
|
||||
.PATH: ${.CURDIR}/../../lib/libc/gen
|
||||
MAN1= install.1
|
||||
|
||||
install: maninstall
|
||||
|
@ -2,9 +2,9 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PROG= mtree
|
||||
SRCS= compare.c crc.c create.c misc.c mtree.c spec.c verify.c
|
||||
SRCS= compare.c crc.c create.c misc.c mtree.c spec.c verify.c setflags.c
|
||||
MAN8= mtree.8
|
||||
.PATH: ${.CURDIR}/../../usr.bin/cksum
|
||||
.PATH: ${.CURDIR}/../../usr.bin/cksum ${.CURDIR}/../../lib/libc/gen
|
||||
|
||||
.if !defined(WORLD)
|
||||
DPADD+= ${LIBMD}
|
||||
|
Loading…
Reference in New Issue
Block a user