PERFORCE change 30750 for review
Peter Wemm
peter at FreeBSD.org
Wed May 7 23:30:39 PDT 2003
http://perforce.freebsd.org/chv.cgi?CH=30750
Change 30750 by peter at peter_daintree on 2003/05/07 23:30:21
IFC @30749
Affected files ...
.. //depot/projects/hammer/lib/libc/amd64/gen/modf.S#6 integrate
.. //depot/projects/hammer/lib/libc/amd64/gen/setjmp.S#5 integrate
.. //depot/projects/hammer/lib/libc/amd64/gen/sigsetjmp.S#5 integrate
.. //depot/projects/hammer/libexec/rtld-elf/rtld.c#7 integrate
.. //depot/projects/hammer/release/Makefile#17 integrate
.. //depot/projects/hammer/sbin/vinum/commands.c#7 integrate
.. //depot/projects/hammer/share/man/man5/disktab.5#3 integrate
.. //depot/projects/hammer/sys/dev/vinum/vinumioctl.c#7 integrate
.. //depot/projects/hammer/usr.sbin/pw/pw.8#3 integrate
Differences ...
==== //depot/projects/hammer/lib/libc/amd64/gen/modf.S#6 (text+ko) ====
@@ -40,7 +40,7 @@
#if defined(LIBC_SCCS)
RCSID("$NetBSD: modf.S,v 1.5 1997/07/16 14:37:18 christos Exp $")
#endif
-__FBSDID("$FreeBSD: src/lib/libc/amd64/gen/modf.S,v 1.1 2003/04/30 16:21:03 obrien Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/amd64/gen/modf.S,v 1.2 2003/05/08 03:19:37 peter Exp $");
/*
* modf(value, iptr): return fractional part of value, and stores the
==== //depot/projects/hammer/lib/libc/amd64/gen/setjmp.S#5 (text+ko) ====
@@ -38,7 +38,7 @@
.asciz "@(#)setjmp.s 5.1 (Berkeley) 4/23/90"
#endif /* LIBC_SCCS and not lint */
#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/amd64/gen/setjmp.S,v 1.23 2003/04/30 18:09:33 peter Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/amd64/gen/setjmp.S,v 1.24 2003/05/08 06:25:03 peter Exp $");
/*
* C library -- _setjmp, _longjmp
@@ -55,9 +55,9 @@
ENTRY(setjmp)
pushq %rdi
movq %rdi,%rcx
- leaq 72(%rcx),%rdi /* (sigset_t*)oset */
+ movq $1,%rdi /* SIG_BLOCK */
movq $0,%rsi /* (sigset_t*)set */
- movq $1,%rdx /* SIG_BLOCK */
+ leaq 72(%rcx),%rdx /* (sigset_t*)oset */
call PIC_PLT(CNAME(_sigprocmask))
popq %rdi
movq %rdi,%rcx
@@ -80,9 +80,9 @@
pushq %rdi
pushq %rsi
movq %rdi,%rdx
- movq $0,%rdi /* (sigset_t*)oset */
+ movq $1,%rdi /* SIG_SETMASK */
leaq 72(%rdx),%rsi /* (sigset_t*)set */
- movq $3,%rdx /* SIG_SETMASK */
+ movq $0,%rdx /* (sigset_t*)oset */
call PIC_PLT(CNAME(_sigprocmask))
popq %rsi
popq %rdi /* jmpbuf */
==== //depot/projects/hammer/lib/libc/amd64/gen/sigsetjmp.S#5 (text+ko) ====
@@ -41,7 +41,7 @@
.asciz "$Id: sigsetjmp.S,v 1.1 1993/12/05 13:01:05 ats Exp $"
#endif /* LIBC_SCCS and not lint */
#include <machine/asm.h>
-__FBSDID("$FreeBSD: src/lib/libc/amd64/gen/sigsetjmp.S,v 1.25 2003/04/30 18:09:33 peter Exp $");
+__FBSDID("$FreeBSD: src/lib/libc/amd64/gen/sigsetjmp.S,v 1.26 2003/05/08 06:25:03 peter Exp $");
#include "SYS.h"
@@ -58,18 +58,17 @@
*/
ENTRY(sigsetjmp)
- pushq %rdi
- movq %rdi,%rcx
- movl %esi,88(%rcx)
+ movl %esi,88(%rdi)
testl %esi,%esi
jz 2f
- leaq 72(%rcx),%rdi /* (sigset_t*)oset */
+ pushq %rdi
+ movq $1,%rdi /* SIG_BLOCK */
movq $0,%rsi /* (sigset_t*)set */
- movq $1,%rdx /* SIG_BLOCK */
+ leaq 72(%rcx),%rdx /* (sigset_t*)oset */
call PIC_PLT(CNAME(_sigprocmask))
popq %rdi
- movq %rdi,%rcx
-2: movq 0(%rsp),%rdx /* retval */
+2: movq %rdi,%rcx
+ movq 0(%rsp),%rdx /* retval */
movq %rdx, 0(%rcx) /* retval */
movq %rbx, 8(%rcx)
movq %rsp,16(%rcx)
@@ -90,9 +89,9 @@
movq %rdi,%rdx
pushq %rdi
pushq %rsi
- movq $0,%rdi /* (sigset_t*)oset */
+ movq $3,%rdi /* SIG_SETMASK */
leaq 72(%rdx),%rsi /* (sigset_t*)set */
- movq $3,%rdx /* SIG_SETMASK */
+ movq $0,%rdx /* (sigset_t*)oset */
call PIC_PLT(CNAME(_sigprocmask))
popq %rsi
popq %rdi /* jmpbuf */
==== //depot/projects/hammer/libexec/rtld-elf/rtld.c#7 (text+ko) ====
@@ -23,7 +23,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/libexec/rtld-elf/rtld.c,v 1.78 2003/05/04 00:56:00 obrien Exp $
+ * $FreeBSD: src/libexec/rtld-elf/rtld.c,v 1.79 2003/05/08 01:31:36 kan Exp $
*/
/*
@@ -126,6 +126,7 @@
static void unlink_object(Obj_Entry *);
static void unload_object(Obj_Entry *);
static void unref_dag(Obj_Entry *);
+static void ref_dag(Obj_Entry *);
void r_debug_state(struct r_debug*, struct link_map*);
@@ -361,7 +362,6 @@
*obj_tail = obj_main;
obj_tail = &obj_main->next;
obj_count++;
- obj_main->refcount++;
/* Make sure we don't call the main program's init and fini functions. */
obj_main->init = obj_main->fini = NULL;
@@ -383,8 +383,10 @@
die();
/* Make a list of all objects loaded at startup. */
- for (obj = obj_list; obj != NULL; obj = obj->next)
+ for (obj = obj_list; obj != NULL; obj = obj->next) {
objlist_push_tail(&list_main, obj);
+ obj->refcount++;
+ }
if (ld_tracing) { /* We're done */
trace_loaded_objects(obj_main);
@@ -970,6 +972,8 @@
if (donelist_check(dlp, obj))
return;
+
+ obj->refcount++;
objlist_push_tail(&obj->dldags, root);
objlist_push_tail(&root->dagmembers, obj);
for (needed = obj->needed; needed != NULL; needed = needed->next)
@@ -1223,7 +1227,6 @@
} else
free(path);
- obj->refcount++;
return obj;
}
@@ -1579,6 +1582,7 @@
/* Unreference the object and its dependencies. */
root->dl_refcount--;
+
unref_dag(root);
if (root->refcount == 0) {
@@ -1682,8 +1686,14 @@
/* Make list of init functions to call. */
initlist_add_objects(obj, &obj->next, &initlist);
}
- } else if (ld_tracing)
- goto trace;
+ } else {
+
+ /* Bump the reference counts for objects on this DAG. */
+ ref_dag(obj);
+
+ if (ld_tracing)
+ goto trace;
+ }
}
GDB_STATE(RT_CONSISTENT,obj ? &obj->linkmap : NULL);
@@ -2405,7 +2415,6 @@
static void
unlink_object(Obj_Entry *root)
{
- const Needed_Entry *needed;
Objlist_Entry *elm;
if (root->refcount == 0) {
@@ -2413,25 +2422,28 @@
objlist_remove(&list_global, root);
/* Remove the object from all objects' DAG lists. */
- STAILQ_FOREACH(elm, &root->dagmembers , link)
+ STAILQ_FOREACH(elm, &root->dagmembers , link) {
objlist_remove(&elm->obj->dldags, root);
+ if (elm->obj != root)
+ unlink_object(elm->obj);
+ }
}
+}
- for (needed = root->needed; needed != NULL; needed = needed->next)
- if (needed->obj != NULL)
- unlink_object(needed->obj);
+static void
+ref_dag(Obj_Entry *root)
+{
+ Objlist_Entry *elm;
+
+ STAILQ_FOREACH(elm, &root->dagmembers , link)
+ elm->obj->refcount++;
}
static void
unref_dag(Obj_Entry *root)
{
- const Needed_Entry *needed;
+ Objlist_Entry *elm;
- if (root->refcount == 0)
- return;
- root->refcount--;
- if (root->refcount == 0)
- for (needed = root->needed; needed != NULL; needed = needed->next)
- if (needed->obj != NULL)
- unref_dag(needed->obj);
+ STAILQ_FOREACH(elm, &root->dagmembers , link)
+ elm->obj->refcount--;
}
==== //depot/projects/hammer/release/Makefile#17 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/release/Makefile,v 1.774 2003/05/05 07:58:42 markm Exp $
+# $FreeBSD: src/release/Makefile,v 1.775 2003/05/08 03:25:17 obrien Exp $
#
# make release [BUILDNAME=somename] CHROOTDIR=/some/dir CVSROOT=/cvs/dir \
# [RELEASETAG=tag]
@@ -756,6 +756,117 @@
.endif
touch release.9
+release.9.alpha:
+.if ${TARGET_ARCH} != "ia64" || ${TARGET_ARCH} == ${MACHINE_ARCH}
+ cp ${RD}/trees/base/etc/disktab /etc
+ rm -rf ${RD}/mfsfd
+ mkdir ${RD}/mfsfd
+ cd ${RD}/mfsfd && \
+ mkdir -p etc/defaults dev mnt stand/etc/defaults stand/help
+ @cd ${.CURDIR} && $(MAKE) installCRUNCH CRUNCH=boot \
+ DIR=${RD}/mfsfd/stand ZIP=false
+ ( cd ${RD}/mfsfd && \
+ for dir in bin sbin ; do \
+ ln -sf /stand $$dir; \
+ done )
+ cp ${RD}/trees/base/sbin/dhclient-script ${RD}/mfsfd/stand
+.if ${TARGET} == "pc98"
+ cp ${.CURDIR}/../etc/defaults/pccard.conf ${RD}/mfsfd/etc/defaults/pccard.conf
+.endif
+ cp ${.CURDIR}/../etc/usbd.conf ${RD}/mfsfd/etc/usbd.conf
+ ( for F in defaults/rc.conf netconfig protocols ; do \
+ sed -e '/^#.*$$/d' -e 's/[:space:]*#.*$$//g' \
+ ${RD}/trees/base/etc/$$F > ${RD}/mfsfd/stand/etc/$$F ; \
+ done )
+ grep -E '^(ftp|nameserver|domain|sunrpc|cmd|nfsd)[^-\w]' \
+ ${RD}/trees/base/etc/services | \
+ sed -e '/^#.*$$/d' -e 's/[:space:]*#.*$$//g' \
+ > ${RD}/mfsfd/stand/etc/services
+ ln ${RD}/mfsfd/stand/etc/services ${RD}/mfsfd/etc/services
+ ln ${RD}/mfsfd/stand/etc/netconfig ${RD}/mfsfd/etc/netconfig
+ cp ${RD}/trees/base/COPYRIGHT ${RD}/mfsfd/stand/help/COPYRIGHT.hlp
+.if !defined(NODOC)
+ @for i in ${DIST_DOCS_ARCH_INDEP}; do \
+ cp ${RND}/${RELNOTES_LANG}/$$i/article.txt ${RD}/mfsfd/stand/help/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \
+ done
+ @for i in ${DIST_DOCS_ARCH_DEP}; do \
+ cp ${RND}/${RELNOTES_LANG}/$$i/${TARGET}/article.txt ${RD}/mfsfd/stand/help/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \
+ done
+ @mv ${RD}/mfsfd/stand/help/INSTALLATION.TXT ${RD}/mfsfd/stand/help/INSTALL.TXT
+ @mv ${RD}/mfsfd/stand/help/EARLY-ADOPTER.TXT ${RD}/mfsfd/stand/help/EARLY.TXT
+.endif
+ -test -f ${.CURDIR}/install.cfg && cp ${.CURDIR}/install.cfg ${RD}/mfsfd
+ @mkdir -p ${RD}/mfsfd/boot
+.if ${TARGET_ARCH} != "ia64"
+ @cp ${RD}/trees/base/boot/boot* ${RD}/mfsfd/boot
+.endif
+.if ${TARGET} == "i386"
+ @cp ${RD}/trees/base/boot/mbr ${RD}/mfsfd/boot
+.endif
+ @echo "Making the regular boot floppy."
+ @tar --exclude CVS -cf - -C ${.CURDIR}/../usr.sbin/sysinstall help | \
+ tar xf - -C ${RD}/mfsfd/stand
+.if ${TARGET_ARCH} == "alpha" && !defined(NO_FLOPPIES)
+ rm -rf ${RD}/mfsfd/stand/help/*
+.endif
+.if defined(SMALLBOOTSIZE)
+.if exists(${.CURDIR}/${TARGET}/drivers-small.conf)
+ @rm -rf ${RD}/mfsfd/modules
+ @mkdir -p ${RD}/mfsfd/modules
+ @awk -f ${.CURDIR}/scripts/driver-copy2.awk 2 \
+ ${.CURDIR}/${TARGET}/drivers-small.conf \
+ ${RD}/trees/base/boot/kernel ${RD}/mfsfd/modules
+.endif
+ sh -e ${DOFS_SH} mfsroot ${RD} ${MNT} \
+ ${MFSSIZE} ${RD}/mfsfd ${MFSINODE} ${MFSLABEL}
+ @gzip -9vc mfsroot > mfsroot.gz
+ @sh -e ${DOFS_SH} ${RD}/floppies/mfsroot-small.flp \
+ ${RD} ${MNT} ${SMALLBOOTSIZE} mfsroot.gz \
+ ${BOOTINODE} ${SMALLBOOTLABEL}
+.endif
+.if exists(${.CURDIR}/${TARGET}/drivers.conf)
+ @rm -rf ${RD}/mfsfd/modules
+ @mkdir -p ${RD}/mfsfd/modules
+ @awk -f ${.CURDIR}/scripts/driver-copy2.awk 2 \
+ ${.CURDIR}/${TARGET}/drivers.conf \
+ ${RD}/trees/base/boot/kernel ${RD}/mfsfd/modules
+ @rm -rf ${RD}/driversfd
+ @mkdir ${RD}/driversfd
+ @awk -f ${.CURDIR}/scripts/driver-copy2.awk 3 \
+ ${.CURDIR}/${TARGET}/drivers.conf \
+ ${RD}/trees/base/boot/kernel ${RD}/driversfd
+ - at rmdir ${RD}/driversfd
+ if [ -d ${RD}/driversfd ]; then \
+ sh -e ${DOFS_SH} \
+ ${RD}/floppies/drivers.flp ${RD} ${MNT} ${DRIVERSIZE} \
+ ${RD}/driversfd ${DRIVERINODE} ${DRIVERLABEL}; \
+ cd ${RD}/driversfd && awk -f ${.CURDIR}/scripts/driver-desc.awk \
+ *.dsc >> ${RD}/floppies/DRIVERS.TXT; \
+ fi
+.endif
+ sh -e ${DOFS_SH} mfsroot ${RD} ${MNT} \
+ ${MFSSIZE} ${RD}/mfsfd ${MFSINODE} ${MFSLABEL}
+ @gzip -9vc mfsroot > mfsroot.gz
+ @mkdir -p ${RD}/mfsroot
+ @cp mfsroot.gz ${RD}/mfsroot
+.if !defined(NO_FLOPPIES)
+.if defined(BOOTSIZE)
+ @sh -e ${DOFS_SH} ${RD}/floppies/mfsroot.flp \
+ ${RD} ${MNT} ${BOOTSIZE} mfsroot.gz ${BOOTINODE} ${BOOTLABEL}
+ @cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=kern
+.endif
+.if defined(SMALLBOOTSIZE)
+ @cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=kern-small FDSIZE=SMALL
+.endif
+.if defined(BIGBOOTSIZE)
+ @cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=boot FDSIZE=BIG
+.endif
+.endif
+ @rm mfsroot mfsroot.gz
+ @echo "Regular and MFS boot floppies made."
+.endif
+ touch release.9.alpha
+
#
# --==## Create a fixit floppy ##==--
#
@@ -972,8 +1083,14 @@
md5 * > CHECKSUM.MD5) \
)
+.if ${TARGET_ARCH} == "alpha"
+RELEASE9=release.9.${TARGET_ARCH}
+.else
+RELEASE9=release.9
+.endif
+
doRELEASE: release.1 release.2 release.3 ${DOCREL} release.4 release.5 \
- release.6 release.7 release.8 release.9 ${FIXIT_TARGET}
+ release.6 release.7 release.8 ${RELEASE9} ${FIXIT_TARGET}
@cd ${.CURDIR} && ${MAKE} ${EXTRAS}
@echo "Release done"
==== //depot/projects/hammer/sbin/vinum/commands.c#7 (text+ko) ====
@@ -36,8 +36,8 @@
* otherwise) arising in any way out of the use of this software, even if
* advised of the possibility of such damage.
*
- * $Id: commands.c,v 1.23 2003/05/04 05:23:59 grog Exp grog $
- * $FreeBSD: src/sbin/vinum/commands.c,v 1.51 2003/05/05 22:49:23 obrien Exp $
+ * $Id: commands.c,v 1.24 2003/05/07 03:17:43 grog Exp grog $
+ * $FreeBSD: src/sbin/vinum/commands.c,v 1.52 2003/05/08 00:33:57 grog Exp $
*/
#include "vext.h"
@@ -160,18 +160,12 @@
strcat(buffer, " ");
}
}
- if (ioctl(superdev, VINUM_STARTCONFIG, &force)) { /* can't get config? */
- fprintf(stderr, "Can't configure: %s (%d)\n", strerror(errno), errno);
- return;
- }
ioctl(superdev, VINUM_READCONFIG, &buffer);
if (reply->error != 0) { /* error in config */
fprintf(stdout, "** %s: %s\n", reply->msg, strerror(reply->error));
- error = ioctl(superdev, VINUM_RELEASECONFIG, NULL); /* save the config to disk */
if (error != 0)
perror("Can't save Vinum config");
} else {
- error = ioctl(superdev, VINUM_RELEASECONFIG, NULL); /* save the config to disk */
if (error != 0)
perror("Can't save Vinum config");
if (no_devfs)
==== //depot/projects/hammer/share/man/man5/disktab.5#3 (text+ko) ====
@@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)disktab.5 8.1 (Berkeley) 6/5/93
-.\" $FreeBSD: src/share/man/man5/disktab.5,v 1.11 2002/12/12 17:25:57 ru Exp $
+.\" $FreeBSD: src/share/man/man5/disktab.5,v 1.12 2003/05/08 00:14:48 trhodes Exp $
.\"
.Dd June 5, 1993
.Dt DISKTAB 5
@@ -54,16 +54,15 @@
.Xr termcap 5
terminal data base. Entries in
.Nm
-consist of a number of `:' separated fields. The
-first entry for each disk gives the names which are
-known for the disk, separated by `|' characters. The
+consist of a number of `:'-separated fields. The
+first field for each entry gives the names by which a
+disk's entry may be selected, separated by `|' characters. The
last name given should be a long name fully identifying
the disk.
.Pp
-The following list indicates the normal values
-stored for each disk entry.
+The optional fields for each entry are:
.Bl -column "indent" "boolx"
-.It Sy "Name Type Description"
+.It Sy "ID Type Description"
.It "\&ty str Type of disk (e.g. removable, winchester)"
.It "\&dt str Type of controller (e.g."
.Tn SMD , ESDI ,
@@ -86,6 +85,8 @@
.It "\&d[0-4] num Drive-type-dependent parameters"
.It "\&bs num Boot block size, default"
.Dv BBSIZE
+.It "\&b[0-1] num Boot block filenames; see"
+.Xr bsdlabel 8
.It "\&sb num Superblock size, default"
.Dv SBSIZE
.It "\&ba num Block size for partition `a' (bytes)"
==== //depot/projects/hammer/sys/dev/vinum/vinumioctl.c#7 (text+ko) ====
@@ -41,8 +41,8 @@
* otherwise) arising in any way out of the use of this software, even if
* advised of the possibility of such damage.
*
- * $Id: vinumioctl.c,v 1.21 2003/05/04 05:23:09 grog Exp grog $
- * $FreeBSD: src/sys/dev/vinum/vinumioctl.c,v 1.45 2003/05/05 08:41:53 grog Exp $
+ * $Id: vinumioctl.c,v 1.22 2003/05/07 03:31:45 grog Exp grog $
+ * $FreeBSD: src/sys/dev/vinum/vinumioctl.c,v 1.46 2003/05/08 00:36:20 grog Exp $
*/
#include <dev/vinum/vinumhdr.h>
@@ -303,9 +303,6 @@
return error;
case VINUM_READCONFIG:
- error = lock_config(); /* get the config for us alone */
- if (error) /* can't do it, */
- return error; /* give up */
if (((char *) data)[0] == '\0')
ioctl_reply->error = vinum_scandisk(NULL); /* built your own list */
else
@@ -317,7 +314,6 @@
strcpy(ioctl_reply->msg, "no drives found");
} else if (ioctl_reply->error)
strcpy(ioctl_reply->msg, "can't read configuration information, see log file");
- unlock_config();
return 0; /* must be 0 to return the real error info */
case VINUM_INIT:
==== //depot/projects/hammer/usr.sbin/pw/pw.8#3 (text+ko) ====
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/usr.sbin/pw/pw.8,v 1.32 2002/12/12 17:26:03 ru Exp $
+.\" $FreeBSD: src/usr.sbin/pw/pw.8,v 1.33 2003/05/08 00:28:36 trhodes Exp $
.\"
.Dd December 9, 1996
.Dt PW 8
@@ -912,6 +912,14 @@
.Xr fingerd 8 ,
and a small number of TCP/IP clients, such as IRC, where full names
specified in the passwd file may be used by default.
+.Pp
+The
+.Nm
+utility writes a log to the
+.Pa /var/log/userlog
+file when actions such as user or group additions or deletions occur.
+The location of this logfile can be changed in
+.Xr pw.conf 5 .
.Sh FILES
.Bl -tag -width /etc/master.passwd.new -compact
.It Pa /etc/master.passwd
@@ -930,6 +938,8 @@
Temporary copy of the group file
.It Pa /etc/pw.conf
Pw default options file
+.It Pa /var/log/userlog
+User/group modification logfile
.El
.Sh SEE ALSO
.Xr chpass 1 ,
More information about the p4-projects
mailing list