Index: head/bin/rcp/Makefile =================================================================== --- head/bin/rcp/Makefile (revision 137163) +++ head/bin/rcp/Makefile (revision 137164) @@ -1,12 +1,12 @@ # @(#)Makefile 8.1 (Berkeley) 7/19/93 # $FreeBSD$ PROG= rcp SRCS= rcp.c util.c CFLAGS+=-DBINDIR=${BINDIR} BINOWN= root BINMODE=4555 -INSTALLFLAGS=-fschg +PRECIOUSPROG= .include Index: head/kerberos5/usr.bin/ksu/Makefile =================================================================== --- head/kerberos5/usr.bin/ksu/Makefile (revision 137163) +++ head/kerberos5/usr.bin/ksu/Makefile (revision 137164) @@ -1,18 +1,18 @@ # $FreeBSD$ PROG= ksu .if defined(ENABLE_SUID_K5SU) BINMODE=4555 -INSTALLFLAGS=-fschg +PRECIOUSPROG= .endif NOMAN= SRCS= su.c CFLAGS+=-I${KRB5DIR}/lib/roken DPADD= ${LIBKAFS5} ${LIBKRB5} ${LIBROKEN} ${LIBVERS} \ ${LIBASN1} ${LIBCRYPTO} ${LIBCRYPT} ${LIBCOM_ERR} LDADD= -lkafs5 -lkrb5 -lroken ${LIBVERS} \ -lasn1 -lcrypto -lcrypt -lcom_err .include .PATH: ${KRB5DIR}/appl/su Index: head/libexec/rtld-aout/Makefile =================================================================== --- head/libexec/rtld-aout/Makefile (revision 137163) +++ head/libexec/rtld-aout/Makefile (revision 137164) @@ -1,17 +1,18 @@ # $FreeBSD$ PROG= ld.so SRCS= mdprologue.S rtld.c shlib.c md.c support.c MAN= rtld.1aout # As there is relocation going on behind GCC's back, don't cache function addresses. PICFLAG=-fpic -fno-function-cse CFLAGS+=-I${.CURDIR} -I${.CURDIR}/${MACHINE_ARCH} ${PICFLAG} -DRTLD -Wall LDFLAGS+=-nostdlib -Wl,-Bshareable,-Bsymbolic,-assert,nosymbolic ASFLAGS+=-k DPADD+= ${LIBC:S/c.a/c_pic.a/} ${LIBC:S/c.a/gcc_pic.a/} LDADD+= -lc_pic -lgcc_pic -INSTALLFLAGS= -fschg -C # -C to install as atomically as possible +INSTALLFLAGS= -C # -C to install as atomically as possible +PRECIOUSPROG= MLINKS= rtld.1aout ld.so.1aout .PATH: ${.CURDIR}/${MACHINE_ARCH} .include Index: head/libexec/rtld-elf/Makefile =================================================================== --- head/libexec/rtld-elf/Makefile (revision 137163) +++ head/libexec/rtld-elf/Makefile (revision 137164) @@ -1,54 +1,55 @@ # $FreeBSD$ PROG?= ld-elf.so.1 SRCS= rtld_start.S \ reloc.c rtld.c rtld_lock.c map_object.c \ malloc.c xmalloc.c debug.c libmap.c MAN= rtld.1 CSTD?= gnu99 CFLAGS+= -Wall -DFREEBSD_ELF -DIN_RTLD CFLAGS+= -I${.CURDIR}/${MACHINE_ARCH} -I${.CURDIR} LDFLAGS+= -nostdlib -e .rtld_start -INSTALLFLAGS= -fschg -C -b +INSTALLFLAGS= -C -b +PRECIOUSPROG= BINDIR= /libexec SYMLINKS= ${BINDIR}/${PROG} /usr/libexec/${PROG} MLINKS= rtld.1 ld-elf.so.1.1 \ rtld.1 ld.so.1 .if exists(${.CURDIR}/${MACHINE_ARCH}/Makefile.inc) .include "${.CURDIR}/${MACHINE_ARCH}/Makefile.inc" .endif # If LDSCRIPT is defined, we build the dynamic linker as an # executable. Otherwise we build it as a shared object. We ignore # LDSCRIPT if the running kernel is too old to support it. .if defined(LDSCRIPT) KERN_OSRELDATE!= /sbin/sysctl -n kern.osreldate 2>/dev/null || echo 0 .if ${KERN_OSRELDATE} >= 400001 LDSO_IS_EXECUTABLE= .endif .endif .ifdef LDSO_IS_EXECUTABLE OBJS+= dyn_hack.so LDFLAGS+= -Wl,-T,${LDSCRIPT} -Wl,-E -Wl,-Bstatic DPADD= ${LIBC} LDADD= -lc .else CFLAGS+= -fpic -DPIC LDFLAGS+= -shared -Wl,-Bsymbolic DPADD= ${LIBC_PIC} LDADD= -lc_pic .endif dyn_hack.so: ${CC} -shared -nostdlib -o dyn_hack.so -x c /dev/null # Since moving rtld-elf to /libexec, we need to create a symlink. # Fixup the existing binary that's there so we can symlink over it. beforeinstall: -chflags noschg ${DESTDIR}/usr/libexec/${PROG} .PATH: ${.CURDIR}/${MACHINE_ARCH} .include Index: head/release/picobsd/tinyware/login/Makefile =================================================================== --- head/release/picobsd/tinyware/login/Makefile (revision 137163) +++ head/release/picobsd/tinyware/login/Makefile (revision 137164) @@ -1,25 +1,25 @@ # From: @(#)Makefile 8.1 (Berkeley) 7/19/93 # $FreeBSD$ .PATH: ${.CURDIR}/../../../../usr.bin/login PROG= login SRCS= pico-login.c login_access.c login_fbtab.c MAN= login.1 login.access.5 CFLAGS+=-DLOGIN_ACCESS -DLOGALL DPADD= ${LIBUTIL} ${LIBCRYPT} LDADD= -lutil -lcrypt .if !defined(NOPAM) CFLAGS+= -DUSE_PAM DPADD+= ${LIBPAM} LDADD+= ${MINUSLPAM} .endif BINOWN= root BINMODE=4555 -INSTALLFLAGS=-fschg +PRECIOUSPROG= .include Index: head/sbin/init/Makefile =================================================================== --- head/sbin/init/Makefile (revision 137163) +++ head/sbin/init/Makefile (revision 137164) @@ -1,16 +1,17 @@ # @(#)Makefile 8.1 (Berkeley) 7/19/93 # $FreeBSD$ PROG= init MAN= init.8 MLINKS= init.8 securelevel.8 BINMODE=500 -INSTALLFLAGS=-fschg -b -B.bak +PRECIOUSPROG= +INSTALLFLAGS=-b -B.bak CFLAGS+=-DDEBUGSHELL -DSECURE -DLOGIN_CAP -DCOMPAT_SYSV_INIT WARNS?= 0 DPADD= ${LIBUTIL} ${LIBCRYPT} LDADD= -lutil -lcrypt NOSHARED?= YES .include Index: head/share/mk/bsd.prog.mk =================================================================== --- head/share/mk/bsd.prog.mk (revision 137163) +++ head/share/mk/bsd.prog.mk (revision 137164) @@ -1,199 +1,203 @@ # from: @(#)bsd.prog.mk 5.26 (Berkeley) 6/25/91 # $FreeBSD$ .include .SUFFIXES: .out .o .c .cc .cpp .cxx .C .m .y .l .ln .s .S .asm # XXX The use of COPTS in modern makefiles is discouraged. .if defined(COPTS) CFLAGS+=${COPTS} .endif .if defined(DEBUG_FLAGS) CFLAGS+=${DEBUG_FLAGS} .endif .if defined(CRUNCH_CFLAGS) CFLAGS+=${CRUNCH_CFLAGS} .endif .if !defined(DEBUG_FLAGS) STRIP?= -s .endif .if defined(NOSHARED) && (${NOSHARED} != "no" && ${NOSHARED} != "NO") LDFLAGS+= -static .endif .if defined(PROG_CXX) PROG= ${PROG_CXX} .endif .if defined(PROG) .if defined(SRCS) # If there are Objective C sources, link with Objective C libraries. .if !empty(SRCS:M*.m) OBJCLIBS?= -lobjc LDADD+= ${OBJCLIBS} .endif OBJS+= ${SRCS:N*.h:R:S/$/.o/g} ${PROG}: ${OBJS} .if defined(PROG_CXX) ${CXX} ${CXXFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDADD} .else ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDADD} .endif .else !defined(SRCS) .if !target(${PROG}) .if defined(PROG_CXX) SRCS= ${PROG}.cc .else SRCS= ${PROG}.c .endif # Always make an intermediate object file because: # - it saves time rebuilding when only the library has changed # - the name of the object gets put into the executable symbol table instead of # the name of a variable temporary object. # - it's useful to keep objects around for crunching. OBJS= ${PROG}.o ${PROG}: ${OBJS} .if defined(PROG_CXX) ${CXX} ${CXXFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDADD} .else ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJS} ${LDADD} .endif .endif .endif .if !defined(NOMAN) && !defined(MAN) && \ !defined(MAN1) && !defined(MAN2) && !defined(MAN3) && \ !defined(MAN4) && !defined(MAN5) && !defined(MAN6) && \ !defined(MAN7) && !defined(MAN8) && !defined(MAN9) && \ !defined(MAN1aout) MAN= ${PROG}.1 MAN1= ${MAN} .endif .endif all: objwarn ${PROG} ${SCRIPTS} .if !defined(NOMAN) all: _manpages .endif .if defined(PROG) CLEANFILES+= ${PROG} .endif .if defined(OBJS) CLEANFILES+= ${OBJS} .endif .include .if defined(PROG) _EXTRADEPEND: .if defined(LDFLAGS) && !empty(LDFLAGS:M-nostdlib) .if defined(DPADD) && !empty(DPADD) echo ${PROG}: ${DPADD} >> ${DEPENDFILE} .endif .else echo ${PROG}: ${LIBC} ${DPADD} >> ${DEPENDFILE} .if defined(PROG_CXX) echo ${PROG}: ${LIBSTDCPLUSPLUS} >> ${DEPENDFILE} .endif .endif .endif .if !target(install) +.if defined(PRECIOUSPROG) && !defined(NOFSCHG) +INSTALLFLAGS+= -fschg +.endif + _INSTALLFLAGS:= ${INSTALLFLAGS} .for ie in ${INSTALLFLAGS_EDIT} _INSTALLFLAGS:= ${_INSTALLFLAGS${ie}} .endfor .if !target(realinstall) && !defined(INTERNALPROG) realinstall: _proginstall .ORDER: beforeinstall _proginstall _proginstall: .if defined(PROG) .if defined(PROGNAME) ${INSTALL} ${STRIP} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ ${_INSTALLFLAGS} ${PROG} ${DESTDIR}${BINDIR}/${PROGNAME} .else ${INSTALL} ${STRIP} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ ${_INSTALLFLAGS} ${PROG} ${DESTDIR}${BINDIR} .endif .endif .endif !target(realinstall) .if defined(SCRIPTS) && !empty(SCRIPTS) realinstall: _scriptsinstall .ORDER: beforeinstall _scriptsinstall SCRIPTSDIR?= ${BINDIR} SCRIPTSOWN?= ${BINOWN} SCRIPTSGRP?= ${BINGRP} SCRIPTSMODE?= ${BINMODE} .for script in ${SCRIPTS} .if defined(SCRIPTSNAME) SCRIPTSNAME_${script:T}?= ${SCRIPTSNAME} .else SCRIPTSNAME_${script:T}?= ${script:T:R} .endif SCRIPTSDIR_${script:T}?= ${SCRIPTSDIR} SCRIPTSOWN_${script:T}?= ${SCRIPTSOWN} SCRIPTSGRP_${script:T}?= ${SCRIPTSGRP} SCRIPTSMODE_${script:T}?= ${SCRIPTSMODE} _scriptsinstall: _SCRIPTSINS_${script:T} _SCRIPTSINS_${script:T}: ${script} ${INSTALL} -o ${SCRIPTSOWN_${.ALLSRC:T}} \ -g ${SCRIPTSGRP_${.ALLSRC:T}} -m ${SCRIPTSMODE_${.ALLSRC:T}} \ ${.ALLSRC} \ ${DESTDIR}${SCRIPTSDIR_${.ALLSRC:T}}/${SCRIPTSNAME_${.ALLSRC:T}} .endfor .endif NLSNAME?= ${PROG} .include .include .include .include .if !defined(NOMAN) realinstall: _maninstall .ORDER: beforeinstall _maninstall .endif .endif .if !target(lint) lint: ${SRCS:M*.c} .if defined(PROG) ${LINT} ${LINTFLAGS} ${CFLAGS:M-[DIU]*} ${.ALLSRC} .endif .endif .if !defined(NOMAN) .include .endif .include .if defined(PROG) && !exists(${.OBJDIR}/${DEPENDFILE}) ${OBJS}: ${SRCS:M*.h} .endif .include .include Index: head/usr.bin/login/Makefile =================================================================== --- head/usr.bin/login/Makefile (revision 137163) +++ head/usr.bin/login/Makefile (revision 137164) @@ -1,16 +1,16 @@ # @(#)Makefile 8.1 (Berkeley) 7/19/93 # $FreeBSD$ PROG= login SRCS= login.c login_fbtab.c CFLAGS+=-DLOGALL DPADD= ${LIBUTIL} ${LIBPAM} LDADD= -lutil ${MINUSLPAM} MAN= login.1 login.access.5 .if !defined(NO_SETUID_LOGIN) BINOWN= root BINMODE=4555 -INSTALLFLAGS=-fschg +PRECIOUSPROG= .endif .include Index: head/usr.bin/newgrp/Makefile =================================================================== --- head/usr.bin/newgrp/Makefile (revision 137163) +++ head/usr.bin/newgrp/Makefile (revision 137164) @@ -1,12 +1,12 @@ # $FreeBSD$ PROG= newgrp DPADD= ${LIBCRYPT} ${LIBUTIL} LDADD= -lcrypt -lutil .if defined(ENABLE_SUID_NEWGRP) BINMODE= 4555 -INSTALLFLAGS= -fschg +PRECIOUSPROG= .endif .include Index: head/usr.bin/opieinfo/Makefile =================================================================== --- head/usr.bin/opieinfo/Makefile (revision 137163) +++ head/usr.bin/opieinfo/Makefile (revision 137164) @@ -1,20 +1,20 @@ # $FreeBSD$ # OPIE_DIST?= ${.CURDIR}/../../contrib/opie PROG= opieinfo CFLAGS+=-I${.CURDIR}/../../lib/libopie CFLAGS+=-I${OPIE_DIST} CFLAGS+=-DINSECURE_OVERRIDE DPADD= ${LIBOPIE} ${LIBMD} LDADD= -lopie -lmd BINOWN= root BINMODE=4555 -INSTALLFLAGS=-fschg +PRECIOUSPROG= .PATH: ${OPIE_DIST} .include Index: head/usr.bin/opiepasswd/Makefile =================================================================== --- head/usr.bin/opiepasswd/Makefile (revision 137163) +++ head/usr.bin/opiepasswd/Makefile (revision 137164) @@ -1,20 +1,20 @@ # $FreeBSD$ # OPIE_DIST?= ${.CURDIR}/../../contrib/opie PROG= opiepasswd CFLAGS+=-I${.CURDIR}/../../lib/libopie CFLAGS+=-I${OPIE_DIST} CFLAGS+=-DINSECURE_OVERRIDE DPADD= ${LIBOPIE} ${LIBMD} LDADD= -lopie -lmd BINOWN= root BINMODE=4555 -INSTALLFLAGS=-fschg +PRECIOUSPROG= .PATH: ${OPIE_DIST} .include Index: head/usr.bin/rlogin/Makefile =================================================================== --- head/usr.bin/rlogin/Makefile (revision 137163) +++ head/usr.bin/rlogin/Makefile (revision 137164) @@ -1,11 +1,11 @@ # @(#)Makefile 8.1 (Berkeley) 7/19/93 # $FreeBSD$ PROG= rlogin SRCS= rlogin.c BINOWN= root BINMODE=4555 -INSTALLFLAGS=-fschg +PRECIOUSPROG= .include Index: head/usr.bin/rsh/Makefile =================================================================== --- head/usr.bin/rsh/Makefile (revision 137163) +++ head/usr.bin/rsh/Makefile (revision 137164) @@ -1,12 +1,12 @@ # @(#)Makefile 8.1 (Berkeley) 7/19/93 # $FreeBSD$ PROG= rsh SRCS= rsh.c CFLAGS+=-I${.CURDIR}/../../libexec/rlogind BINOWN= root BINMODE=4555 -INSTALLFLAGS=-fschg +PRECIOUSPROG= .include Index: head/usr.bin/su/Makefile =================================================================== --- head/usr.bin/su/Makefile (revision 137163) +++ head/usr.bin/su/Makefile (revision 137164) @@ -1,13 +1,13 @@ # @(#)Makefile 8.1 (Berkeley) 7/19/93 # $FreeBSD$ PROG= su DPADD= ${LIBUTIL} ${LIBPAM} LDADD= -lutil ${MINUSLPAM} BINOWN= root BINMODE=4555 -INSTALLFLAGS=-fschg +PRECIOUSPROG= .include Index: head/usr.sbin/cron/crontab/Makefile =================================================================== --- head/usr.sbin/cron/crontab/Makefile (revision 137163) +++ head/usr.sbin/cron/crontab/Makefile (revision 137164) @@ -1,16 +1,16 @@ # $FreeBSD$ BINDIR= /usr/bin PROG= crontab MAN= crontab.1 crontab.5 BINOWN= root BINMODE=4555 -INSTALLFLAGS=-fschg +PRECIOUSPROG= CFLAGS+= -I${.CURDIR}/../cron DPADD= ${LIBCRON} ${LIBMD} ${LIBUTIL} LDADD= ${LIBCRON} -lmd -lutil .include Index: head/usr.sbin/moused/Makefile =================================================================== --- head/usr.sbin/moused/Makefile (revision 137163) +++ head/usr.sbin/moused/Makefile (revision 137164) @@ -1,9 +1,9 @@ # $FreeBSD$ PROG= moused MAN= moused.8 #BINMODE=4555 -#INSTALLFLAGS=-fschg +#PRECIOUSPROG= .include Index: head/usr.sbin/sliplogin/Makefile =================================================================== --- head/usr.sbin/sliplogin/Makefile (revision 137163) +++ head/usr.sbin/sliplogin/Makefile (revision 137164) @@ -1,11 +1,11 @@ # @(#)Makefile 8.1 (Berkeley) 7/19/93 # $FreeBSD$ PROG= sliplogin MAN= sliplogin.8 BINOWN= root BINGRP= network BINMODE=4550 -INSTALLFLAGS=-fschg +PRECIOUSPROG= .include