PERFORCE change 188393 for review
Edward Tomasz Napierala
trasz at FreeBSD.org
Mon Jan 31 20:10:48 UTC 2011
http://p4web.freebsd.org/@@188393?ac=10
Change 188393 by trasz at trasz_victim on 2011/01/31 20:10:29
IFC.
Affected files ...
.. //depot/projects/soc2009/trasz_limits/Makefile#12 integrate
.. //depot/projects/soc2009/trasz_limits/Makefile.inc1#19 integrate
.. //depot/projects/soc2009/trasz_limits/bin/sh/jobs.c#11 integrate
.. //depot/projects/soc2009/trasz_limits/contrib/tzdata/australasia#5 integrate
.. //depot/projects/soc2009/trasz_limits/contrib/tzdata/northamerica#4 integrate
.. //depot/projects/soc2009/trasz_limits/etc/ftpusers#2 integrate
.. //depot/projects/soc2009/trasz_limits/etc/group#2 integrate
.. //depot/projects/soc2009/trasz_limits/etc/mail/aliases#2 integrate
.. //depot/projects/soc2009/trasz_limits/etc/master.passwd#2 integrate
.. //depot/projects/soc2009/trasz_limits/gnu/lib/libgcc/Makefile#13 integrate
.. //depot/projects/soc2009/trasz_limits/libexec/rtld-elf/rtld.c#19 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/hastd/hast.h#7 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/hastd/hastd.c#13 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/hastd/hastd.h#6 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/hastd/pjdlog.c#9 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/hastd/pjdlog.h#5 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/hastd/primary.c#13 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/hastd/proto.c#5 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/hastd/proto.h#4 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/hastd/proto_common.c#4 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/hastd/proto_impl.h#3 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/hastd/proto_socketpair.c#4 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/hastd/proto_tcp4.c#5 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/hastd/proto_uds.c#3 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/hastd/secondary.c#9 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/hastd/subr.c#2 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/hastd/subr.h#2 integrate
.. //depot/projects/soc2009/trasz_limits/sbin/ifconfig/ifieee80211.c#12 integrate
.. //depot/projects/soc2009/trasz_limits/share/syscons/keymaps/Makefile#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/amd64/linux32/linux32_machdep.c#8 integrate
.. //depot/projects/soc2009/trasz_limits/sys/amd64/linux32/linux32_proto.h#5 integrate
.. //depot/projects/soc2009/trasz_limits/sys/amd64/linux32/syscalls.master#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/arm/include/fdt.h#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/arm/s3c2xx0/std.ln2410sbc#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/compat/linprocfs/linprocfs.c#14 integrate
.. //depot/projects/soc2009/trasz_limits/sys/compat/linux/linux_futex.c#6 integrate
.. //depot/projects/soc2009/trasz_limits/sys/compat/linux/linux_futex.h#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/conf/files#45 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ahci/ahci.c#20 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/alc/if_alc.c#18 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ata/ata-pci.h#13 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ata/chipsets/ata-intel.c#13 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ath/ath_hal/ah.h#8 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ath/ath_hal/ar5416/ar5416.h#6 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c#8 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c#7 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c#6 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ath/ath_hal/ar5416/ar5416phy.h#5 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ath/ath_hal/ar5416/ar5416reg.h#7 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ath/ath_hal/ar9002/ar9280.h#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ath/ath_hal/ar9002/ar9285.h#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ath/if_ath.c#21 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ath/if_ath_debug.c#1 branch
.. //depot/projects/soc2009/trasz_limits/sys/dev/ath/if_ath_debug.h#1 branch
.. //depot/projects/soc2009/trasz_limits/sys/dev/ath/if_ath_misc.h#1 branch
.. //depot/projects/soc2009/trasz_limits/sys/dev/ath/if_ath_tx.c#1 branch
.. //depot/projects/soc2009/trasz_limits/sys/dev/ath/if_ath_tx.h#1 branch
.. //depot/projects/soc2009/trasz_limits/sys/dev/ath/if_athvar.h#8 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/cs/if_cs.c#6 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/cs/if_csreg.h#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/cs/if_csvar.h#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/fdt/fdt_common.c#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/fdt/fdt_pci.c#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/fdt/fdtbus.c#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/flash/mx25l.c#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ichsmb/ichsmb_pci.c#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ichwd/ichwd.c#9 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/ichwd/ichwd.h#5 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/tsec/if_tsec_fdt.c#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/dev/xen/netfront/netfront.c#10 integrate
.. //depot/projects/soc2009/trasz_limits/sys/i386/linux/linux_machdep.c#6 integrate
.. //depot/projects/soc2009/trasz_limits/sys/i386/linux/linux_proto.h#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/i386/linux/syscalls.master#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/modules/ath/Makefile#5 integrate
.. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_ioctl.c#8 integrate
.. //depot/projects/soc2009/trasz_limits/sys/net80211/ieee80211_scan.c#5 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp.h#8 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_cc_functions.c#10 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_constants.h#10 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_header.h#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_indata.c#18 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_indata.h#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_input.c#19 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_output.c#24 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_output.h#6 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_pcb.c#20 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_structs.h#11 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_sysctl.c#11 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_sysctl.h#9 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_timer.c#13 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_uio.h#11 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netinet/sctputil.c#22 integrate
.. //depot/projects/soc2009/trasz_limits/sys/netinet/tcp_usrreq.c#13 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/include/fdt.h#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/include/intr_machdep.h#5 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/include/openpicvar.h#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/mambo/mambo_openpic.c#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/mpc85xx/atpic.c#7 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/mpc85xx/isa.c#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/mpc85xx/nexus.c#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/mpc85xx/openpic_fdt.c#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/mpc85xx/pci_fdt.c#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/powermac/cpcht.c#6 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/powermac/hrowpic.c#5 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/powermac/openpic_macio.c#5 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/powerpc/intr_machdep.c#8 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/powerpc/openpic.c#7 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/powerpc/pic_if.m#4 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/ps3/ps3pic.c#2 integrate
.. //depot/projects/soc2009/trasz_limits/sys/powerpc/psim/openpic_iobus.c#3 integrate
.. //depot/projects/soc2009/trasz_limits/sys/vm/vm_map.c#32 integrate
.. //depot/projects/soc2009/trasz_limits/sys/vm/vm_page.c#26 integrate
.. //depot/projects/soc2009/trasz_limits/tools/regression/bin/sh/execution/killed2.0#1 branch
.. //depot/projects/soc2009/trasz_limits/tools/tools/ath/athpow/athpow.c#2 integrate
.. //depot/projects/soc2009/trasz_limits/usr.bin/xlint/arch/powerpc64/targparam.h#3 integrate
.. //depot/projects/soc2009/trasz_limits/usr.sbin/newsyslog/newsyslog.8#5 integrate
.. //depot/projects/soc2009/trasz_limits/usr.sbin/newsyslog/newsyslog.c#8 integrate
.. //depot/projects/soc2009/trasz_limits/usr.sbin/newsyslog/newsyslog.conf.5#4 integrate
.. //depot/projects/soc2009/trasz_limits/usr.sbin/newsyslog/pathnames.h#2 integrate
.. //depot/projects/soc2009/trasz_limits/usr.sbin/sysinstall/installUpgrade.c#4 integrate
Differences ...
==== //depot/projects/soc2009/trasz_limits/Makefile#12 (text+ko) ====
@@ -1,5 +1,5 @@
#
-# $FreeBSD: src/Makefile,v 1.382 2011/01/25 08:13:31 bz Exp $
+# $FreeBSD: src/Makefile,v 1.383 2011/01/31 15:17:47 imp Exp $
#
# The user-driven targets are:
#
@@ -126,6 +126,38 @@
-m ${.CURDIR}/share/mk
_MAKE= PATH=${PATH} ${BINMAKE} -f Makefile.inc1
+# Guess machine architecture from machine type, and vice versa.
+.if !defined(TARGET_ARCH) && defined(TARGET)
+_TARGET_ARCH= ${TARGET:S/pc98/i386/:S/sun4v/sparc64/:S/mips/mipsel/}
+.elif !defined(TARGET) && defined(TARGET_ARCH) && \
+ ${TARGET_ARCH} != ${MACHINE_ARCH}
+_TARGET= ${TARGET_ARCH:C/mips.*e[lb]/mips/:C/armeb/arm/}
+.endif
+# Legacy names, for a transition period mips:mips -> mipsel:mips
+.if defined(TARGET) && defined(TARGET_ARCH) && \
+ ${TARGET_ARCH} == "mips" && ${TARGET} == "mips"
+.warning "TARGET_ARCH of mips is deprecated in favor of mipsel or mipseb"
+.if defined(TARGET_BIG_ENDIAN)
+_TARGET_ARCH=mipseb
+.else
+_TARGET_ARCH=mipsel
+.endif
+.endif
+# arm with TARGET_BIG_ENDIAN -> armeb
+.if defined(TARGET_ARCH) && ${TARGET_ARCH} == "arm" && defined(TARGET_BIG_ENDIAN)
+.warning "TARGET_ARCH of arm with TARGET_BIG_ENDIAN is deprecated. use armeb"
+_TARGET_ARCH=armeb
+.endif
+.if defined(TARGET) && !defined(_TARGET)
+_TARGET=${TARGET}
+.endif
+.if defined(TARGET_ARCH) && !defined(_TARGET_ARCH)
+_TARGET_ARCH=${TARGET_ARCH}
+.endif
+# Otherwise, default to current machine type and architecture.
+_TARGET?= ${MACHINE}
+_TARGET_ARCH?= ${MACHINE_ARCH}
+
#
# Make sure we have an up-to-date make(1). Only world and buildworld
# should do this as those are the initial targets used for upgrades.
@@ -173,8 +205,7 @@
#
${TGTS}:
- ${_+_}@cd ${.CURDIR}; \
- ${_MAKE} ${.TARGET}
+ ${_+_}cd ${.CURDIR}; ${_MAKE} TARGET=${_TARGET} TARGET_ARCH=${_TARGET_ARCH} ${.TARGET}
# Set a reasonable default
.MAIN: all
==== //depot/projects/soc2009/trasz_limits/Makefile.inc1#19 (text+ko) ====
@@ -1,5 +1,5 @@
#
-# $FreeBSD: src/Makefile.inc1,v 1.676 2011/01/07 20:26:33 imp Exp $
+# $FreeBSD: src/Makefile.inc1,v 1.677 2011/01/31 15:17:47 imp Exp $
#
# Make command line options:
# -DNO_CLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
@@ -116,32 +116,6 @@
VERSION+= ${OSRELDATE}
.endif
-# Guess machine architecture from machine type, and vice versa.
-.if !defined(TARGET_ARCH) && defined(TARGET)
-TARGET_ARCH= ${TARGET:S/pc98/i386/:S/sun4v/sparc64/:S/mips/mipsel/}
-.elif !defined(TARGET) && defined(TARGET_ARCH) && \
- ${TARGET_ARCH} != ${MACHINE_ARCH}
-TARGET= ${TARGET_ARCH:C/mips.*e[lb]/mips/:C/armeb/arm/}
-.endif
-# Legacy names, for a transition period mips:mips -> mipsel:mips
-.if defined(TARGET) && defined(TARGET_ARCH) && \
- ${TARGET_ARCH} == "mips" && ${TARGET} == "mips"
-.warning "TARGET_ARCH of mips is deprecated in favor of mipsel or mipseb"
-.if defined(TARGET_BIG_ENDIAN)
-TARGET_ARCH=mipseb
-.else
-TARGET_ARCH=mipsel
-.endif
-.endif
-# arm with TARGET_BIG_ENDIAN -> armeb
-.if defined(TARGET_ARCH) && ${TARGET_ARCH} == "arm" && defined(TARGET_BIG_ENDIAN)
-.warning "TARGET_ARCH of arm with TARGET_BIG_ENDIAN is deprecated. use armeb"
-TARGET_ARCH=armeb
-.endif
-# Otherwise, default to current machine type and architecture.
-TARGET?= ${MACHINE}
-TARGET_ARCH?= ${MACHINE_ARCH}
-
KNOWN_ARCHES?= amd64 arm armeb/arm i386 i386/pc98 ia64 mipsel/mips mipseb/mips mips64el/mips mips64eb/mips mipsn32el/mips mipsn32eb/mips powerpc powerpc64/powerpc sparc64 sparc64/sun4v
.if ${TARGET} == ${TARGET_ARCH}
_t= ${TARGET}
==== //depot/projects/soc2009/trasz_limits/bin/sh/jobs.c#11 (text+ko) ====
@@ -36,7 +36,7 @@
#endif
#endif /* not lint */
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/bin/sh/jobs.c,v 1.90 2011/01/18 21:18:31 jilles Exp $");
+__FBSDID("$FreeBSD: src/bin/sh/jobs.c,v 1.91 2011/01/30 22:57:52 jilles Exp $");
#include <sys/ioctl.h>
#include <sys/param.h>
@@ -1056,13 +1056,13 @@
}
if (sig > 0 && sig != SIGINT && sig != SIGPIPE) {
if (sig < sys_nsig && sys_siglist[sig])
- out1str(sys_siglist[sig]);
+ out2str(sys_siglist[sig]);
else
- out1fmt("Signal %d", sig);
+ outfmt(out2, "Signal %d", sig);
if (coredump)
- out1str(" (core dumped)");
- out1c('\n');
- flushout(out1);
+ out2str(" (core dumped)");
+ out2c('\n');
+ flushout(out2);
}
} else {
TRACE(("Not printing status, rootshell=%d, job=%p\n", rootshell, job));
==== //depot/projects/soc2009/trasz_limits/contrib/tzdata/australasia#5 (text+ko) ====
@@ -1,5 +1,5 @@
# <pre>
-# @(#)australasia 8.20
+# @(#)australasia 8.22
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
@@ -84,14 +84,13 @@
Rule AS 1987 2007 - Oct lastSun 2:00s 1:00 -
Rule AS 1972 only - Feb 27 2:00s 0 -
Rule AS 1973 1985 - Mar Sun>=1 2:00s 0 -
-Rule AS 1986 1989 - Mar Sun>=15 2:00s 0 -
-Rule AS 1990 only - Mar Sun>=18 2:00s 0 -
-Rule AS 1991 only - Mar Sun>=1 2:00s 0 -
-Rule AS 1992 only - Mar Sun>=18 2:00s 0 -
-Rule AS 1993 only - Mar Sun>=1 2:00s 0 -
-Rule AS 1994 only - Mar Sun>=18 2:00s 0 -
+Rule AS 1986 1990 - Mar Sun>=15 2:00s 0 -
+Rule AS 1991 only - Mar 3 2:00s 0 -
+Rule AS 1992 only - Mar 22 2:00s 0 -
+Rule AS 1993 only - Mar 7 2:00s 0 -
+Rule AS 1994 only - Mar 20 2:00s 0 -
Rule AS 1995 2005 - Mar lastSun 2:00s 0 -
-Rule AS 2006 only - Apr Sun>=1 2:00s 0 -
+Rule AS 2006 only - Apr 2 2:00s 0 -
Rule AS 2007 only - Mar lastSun 2:00s 0 -
Rule AS 2008 max - Apr Sun>=1 2:00s 0 -
Rule AS 2008 max - Oct Sun>=1 2:00s 1:00 -
==== //depot/projects/soc2009/trasz_limits/contrib/tzdata/northamerica#4 (text+ko) ====
@@ -1,5 +1,5 @@
# <pre>
-# @(#)northamerica 8.34
+# %W%
# This file is in the public domain, so clarified as of
# 2009-05-17 by Arthur David Olson.
@@ -471,20 +471,50 @@
# three votes for and one against."
# Hawaii
+
+# From Arthur David Olson (2010-12-09):
+# "Hawaiian Time" by Robert C. Schmitt and Doak C. Cox appears on pages 207-225
+# of volume 26 of The Hawaiian Journal of History (1992). As of 2010-12-09,
+# the article is available at
+# <a href="http://evols.library.manoa.hawaii.edu/bitstream/10524/239/2/JL26215.pdf">
+# http://evols.library.manoa.hawaii.edu/bitstream/10524/239/2/JL26215.pdf
+# </a>
+# and indicates that standard time was adopted effective noon, January
+# 13, 1896 (page 218), that in "1933, the Legislature decreed daylight
+# saving for the period between the last Sunday of each April and the
+# last Sunday of each September, but less than a month later repealed the
+# act," (page 220), that year-round daylight saving time was in effect
+# from 1942-02-09 to 1945-09-30 (page 221, with no time of day given for
+# when clocks changed) and that clocks were changed by 30 minutes
+# effective the second Sunday of June, 1947 (page 219, with no time of
+# day given for when clocks changed). A footnote for the 1933 changes
+# cites Session Laws of Hawaii 1933, "Act. 90 (approved 26 Apr. 1933)
+# and Act 163 (approved 21 May 1933)."
+
+# From Arthur David Olson (2011-01-19):
+# The following is from "Laws of the Territory of Hawaii Passed by the
+# Seventeenth Legislature: Regular Session 1933," available (as of
+# 2011-01-19) at American University's Pence Law Library. Page 85: "Act
+# 90...At 2 o'clock ante meridian of the last Sunday in April of each
+# year, the standard time of this Territory shall be advanced one
+# hour...This Act shall take effect upon its approval. Approved this 26th
+# day of April, A. D. 1933. LAWRENCE M JUDD, Governor of the Territory of
+# Hawaii." Page 172: "Act 163...Act 90 of the Session Laws of 1933 is
+# hereby repealed...This Act shall take effect upon its approval, upon
+# which date the standard time of this Territory shall be restored to
+# that existing immediately prior to the taking effect of said Act 90.
+# Approved this 21st day of May, A. D. 1933. LAWRENCE M. JUDD, Governor
+# of the Territory of Hawaii."
#
-# From Arthur David Olson:
-# And then there's Hawaii.
-# DST was observed for one day in 1933;
-# standard time was changed by half an hour in 1947;
-# it's always standard as of 1986.
-#
-# From Paul Eggert:
-# Shanks says the 1933 experiment lasted for three weeks. Go with Shanks.
-#
-Zone Pacific/Honolulu -10:31:26 - LMT 1900 Jan 1 12:00
- -10:30 - HST 1933 Apr 30 2:00
- -10:30 1:00 HDT 1933 May 21 2:00
- -10:30 US H%sT 1947 Jun 8 2:00
+# Note that 1933-05-21 was a Sunday.
+# We're left to guess the time of day when Act 163 was approved; guess noon.
+
+Zone Pacific/Honolulu -10:31:26 - LMT 1896 Jan 13 12:00 #Schmitt&Cox
+ -10:30 - HST 1933 Apr 30 2:00 #Laws 1933
+ -10:30 1:00 HDT 1933 May 21 12:00 #Laws 1933+12
+ -10:30 - HST 1942 Feb 09 2:00 #Schmitt&Cox+2
+ -10:30 1:00 HDT 1945 Sep 30 2:00 #Schmitt&Fox+2
+ -10:30 US H%sT 1947 Jun 8 2:00 #Schmitt&Fox+2
-10:00 - HST
# Now we turn to US areas that have diverged from the consensus since 1970.
==== //depot/projects/soc2009/trasz_limits/etc/ftpusers#2 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/etc/ftpusers,v 1.14 2005/06/07 03:41:19 maxim Exp $
+# $FreeBSD: src/etc/ftpusers,v 1.15 2011/01/31 07:47:28 maxim Exp $
#
# list of users disallowed any ftp access.
# read by ftpd(8).
@@ -20,6 +20,7 @@
uucp
pop
www
+hast
nobody
mailnull
smmsp
==== //depot/projects/soc2009/trasz_limits/etc/group#2 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/etc/group,v 1.35 2007/06/11 18:36:39 ceri Exp $
+# $FreeBSD: src/etc/group,v 1.36 2011/01/28 22:28:12 pjd Exp $
#
wheel:*:0:root
daemon:*:1:
@@ -27,5 +27,6 @@
network:*:69:
audit:*:77:
www:*:80:
+hast:*:845:
nogroup:*:65533:
nobody:*:65534:
==== //depot/projects/soc2009/trasz_limits/etc/mail/aliases#2 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/etc/mail/aliases,v 1.22 2009/03/23 00:40:07 gshapiro Exp $
+# $FreeBSD: src/etc/mail/aliases,v 1.23 2011/01/31 07:47:28 maxim Exp $
# @(#)aliases 5.3 (Berkeley) 5/24/90
#
# Aliases in this file will NOT be expanded in the header from
@@ -30,6 +30,7 @@
bind: root
daemon: root
games: root
+hast: root
kmem: root
mailnull: postmaster
man: root
==== //depot/projects/soc2009/trasz_limits/etc/master.passwd#2 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/etc/master.passwd,v 1.40 2005/06/06 20:19:56 brooks Exp $
+# $FreeBSD: src/etc/master.passwd,v 1.42 2011/01/28 22:29:38 pjd Exp $
#
root::0:0::0:0:Charlie &:/root:/bin/csh
toor:*:0:0::0:0:Bourne-again Superuser:/root:
@@ -20,4 +20,5 @@
uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/local/libexec/uucp/uucico
pop:*:68:6::0:0:Post Office Owner:/nonexistent:/usr/sbin/nologin
www:*:80:80::0:0:World Wide Web Owner:/nonexistent:/usr/sbin/nologin
+hast:*:845:845::0:0:HAST unprivileged user:/var/empty:/usr/sbin/nologin
nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/usr/sbin/nologin
==== //depot/projects/soc2009/trasz_limits/gnu/lib/libgcc/Makefile#13 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/gnu/lib/libgcc/Makefile,v 1.79 2011/01/27 14:16:12 jchandra Exp $
+# $FreeBSD: src/gnu/lib/libgcc/Makefile,v 1.80 2011/01/29 10:32:00 jchandra Exp $
GCCDIR= ${.CURDIR}/../../../contrib/gcc
GCCLIB= ${.CURDIR}/../../../contrib/gcclibs
@@ -122,7 +122,8 @@
.if ${TARGET_CPUARCH} == mips
LIB2FUNCS_EXTRA = floatunsidf.c floatunsisf.c
# ABIs other than o32 need this
-.if ${TARGET_ARCH:Mmipse[lb]} == ""
+.if ${TARGET_ARCH:Mmips64*} != "" || \
+ ${TARGET_ARCH:Mmipsn32*} != ""
LIB2FUNCS_EXTRA+= floatdidf.c fixunsdfsi.c
LIB2FUNCS_EXTRA+= floatdisf.c floatundidf.c
LIB2FUNCS_EXTRA+= fixsfdi.c floatundisf.c
==== //depot/projects/soc2009/trasz_limits/libexec/rtld-elf/rtld.c#19 (text+ko) ====
@@ -24,7 +24,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.169 2011/01/28 17:30:24 pluknet Exp $
+ * $FreeBSD: src/libexec/rtld-elf/rtld.c,v 1.172 2011/01/30 16:21:25 kib Exp $
*/
/*
@@ -93,7 +93,6 @@
static char *find_library(const char *, const Obj_Entry *);
static const char *gethints(void);
static void init_dag(Obj_Entry *);
-static void init_dag1(Obj_Entry *, Obj_Entry *, DoneList *);
static void init_rtld(caddr_t, Elf_Auxinfo **);
static void initlist_add_neededs(Needed_Entry *, Objlist *);
static void initlist_add_objects(Obj_Entry *, Obj_Entry **, Objlist *);
@@ -1331,28 +1330,33 @@
static void
init_dag(Obj_Entry *root)
{
+ const Needed_Entry *needed;
+ const Objlist_Entry *elm;
DoneList donelist;
if (root->dag_inited)
return;
donelist_init(&donelist);
- init_dag1(root, root, &donelist);
- root->dag_inited = true;
-}
-static void
-init_dag1(Obj_Entry *root, Obj_Entry *obj, DoneList *dlp)
-{
- const Needed_Entry *needed;
+ /* Root object belongs to own DAG. */
+ objlist_push_tail(&root->dldags, root);
+ objlist_push_tail(&root->dagmembers, root);
+ donelist_check(&donelist, root);
- if (donelist_check(dlp, obj))
- return;
-
- objlist_push_tail(&obj->dldags, root);
- objlist_push_tail(&root->dagmembers, obj);
- for (needed = obj->needed; needed != NULL; needed = needed->next)
- if (needed->obj != NULL)
- init_dag1(root, needed->obj, dlp);
+ /*
+ * Add dependencies of root object to DAG in breadth order
+ * by exploiting the fact that each new object get added
+ * to the tail of the dagmembers list.
+ */
+ STAILQ_FOREACH(elm, &root->dagmembers, link) {
+ for (needed = elm->obj->needed; needed != NULL; needed = needed->next) {
+ if (needed->obj == NULL || donelist_check(&donelist, needed->obj))
+ continue;
+ objlist_push_tail(&needed->obj->dldags, root);
+ objlist_push_tail(&root->dagmembers, needed->obj);
+ }
+ }
+ root->dag_inited = true;
}
/*
@@ -2320,32 +2324,28 @@
donelist_init(&donelist);
if (obj->mainprog) {
- /* Search main program and all libraries loaded by it. */
- res = symlook_list(&req, &list_main, &donelist);
+ /* Handle obtained by dlopen(NULL, ...) implies global scope. */
+ res = symlook_global(&req, &donelist);
if (res == 0) {
def = req.sym_out;
defobj = req.defobj_out;
- } else {
- /*
- * We do not distinguish between 'main' object and
- * global scope. If symbol is not defined by objects
- * loaded at startup, continue search among
- * dynamically loaded objects with RTLD_GLOBAL scope.
- */
- res = symlook_list(&req, &list_global, &donelist);
+ }
+ /*
+ * Search the dynamic linker itself, and possibly resolve the
+ * symbol from there. This is how the application links to
+ * dynamic linker services such as dlopen.
+ */
+ if (def == NULL || ELF_ST_BIND(def->st_info) == STB_WEAK) {
+ res = symlook_obj(&req, &obj_rtld);
if (res == 0) {
def = req.sym_out;
defobj = req.defobj_out;
}
}
- } else {
- Needed_Entry fake;
-
+ }
+ else {
/* Search the whole DAG rooted at the given object. */
- fake.next = NULL;
- fake.obj = (Obj_Entry *)obj;
- fake.name = 0;
- res = symlook_needed(&req, &fake, &donelist);
+ res = symlook_list(&req, &obj->dagmembers, &donelist);
if (res == 0) {
def = req.sym_out;
defobj = req.defobj_out;
@@ -2960,53 +2960,33 @@
}
/*
- * Search the symbol table of a shared object and all objects needed
- * by it for a symbol of the given name. Search order is
- * breadth-first. Returns a pointer to the symbol, or NULL if no
- * definition was found.
+ * Search the chain of DAGS cointed to by the given Needed_Entry
+ * for a symbol of the given name. Each DAG is scanned completely
+ * before advancing to the next one. Returns a pointer to the symbol,
+ * or NULL if no definition was found.
*/
static int
symlook_needed(SymLook *req, const Needed_Entry *needed, DoneList *dlp)
{
- const Elf_Sym *def, *def_w;
+ const Elf_Sym *def;
const Needed_Entry *n;
- const Obj_Entry *defobj, *defobj1;
+ const Obj_Entry *defobj;
SymLook req1;
int res;
- def = def_w = NULL;
+ def = NULL;
defobj = NULL;
symlook_init_from_req(&req1, req);
for (n = needed; n != NULL; n = n->next) {
- if (n->obj == NULL || donelist_check(dlp, n->obj) ||
- (res = symlook_obj(&req1, n->obj)) != 0)
+ if (n->obj == NULL ||
+ (res = symlook_list(&req1, &n->obj->dagmembers, dlp)) != 0)
continue;
- def = req1.sym_out;
- defobj = req1.defobj_out;
- if (ELF_ST_BIND(def->st_info) != STB_WEAK) {
- req->defobj_out = defobj;
- req->sym_out = def;
- return (0);
- }
- }
- /*
- * There we come when either symbol definition is not found in
- * directly needed objects, or found symbol is weak.
- */
- for (n = needed; n != NULL; n = n->next) {
- if (n->obj == NULL)
- continue;
- res = symlook_needed(&req1, n->obj->needed, dlp);
- if (res != 0)
- continue;
- def_w = req1.sym_out;
- defobj1 = req1.defobj_out;
- if (def == NULL || ELF_ST_BIND(def_w->st_info) != STB_WEAK) {
- def = def_w;
- defobj = defobj1;
+ if (def == NULL || ELF_ST_BIND(req1.sym_out->st_info) != STB_WEAK) {
+ def = req1.sym_out;
+ defobj = req1.defobj_out;
+ if (ELF_ST_BIND(def->st_info) != STB_WEAK)
+ break;
}
- if (ELF_ST_BIND(def_w->st_info) != STB_WEAK)
- break;
}
if (def != NULL) {
req->sym_out = def;
@@ -3724,10 +3704,17 @@
}
for (needed = obj->needed; needed != NULL; needed = needed->next) {
- if (needed->obj == NULL)
- continue;
- if (object_match_name(needed->obj, name))
- return needed->obj;
+ if (strcmp(obj->strtab + needed->name, name) == 0 ||
+ (needed->obj != NULL && object_match_name(needed->obj, name))) {
+ /*
+ * If there is DT_NEEDED for the name we are looking for,
+ * we are all set. Note that object might not be found if
+ * dependency was not loaded yet, so the function can
+ * return NULL here. This is expected and handled
+ * properly by the caller.
+ */
+ return (needed->obj);
+ }
}
_rtld_error("%s: Unexpected inconsistency: dependency %s not found",
obj->path, name);
@@ -3853,6 +3840,8 @@
vn = obj->verneed;
while (vn != NULL) {
depobj = locate_dependency(obj, obj->strtab + vn->vn_file);
+ if (depobj == NULL)
+ return (-1);
vna = (const Elf_Vernaux *) ((char *)vn + vn->vn_aux);
for (;;) {
if (check_object_provided_version(obj, depobj, vna))
==== //depot/projects/soc2009/trasz_limits/sbin/hastd/hast.h#7 (text+ko) ====
@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sbin/hastd/hast.h,v 1.7 2011/01/27 19:33:57 pjd Exp $
+ * $FreeBSD: src/sbin/hastd/hast.h,v 1.8 2011/01/28 22:33:47 pjd Exp $
*/
#ifndef _HAST_H_
@@ -81,6 +81,7 @@
#define HIO_FLUSH 4
#define HIO_KEEPALIVE 5
+#define HAST_USER "hast"
#define HAST_TIMEOUT 5
#define HAST_CONFIG "/etc/hast.conf"
#define HAST_CONTROL "/var/run/hastctl"
==== //depot/projects/soc2009/trasz_limits/sbin/hastd/hastd.c#13 (text+ko) ====
@@ -1,6 +1,6 @@
/*-
* Copyright (c) 2009-2010 The FreeBSD Foundation
- * Copyright (c) 2010 Pawel Jakub Dawidek <pjd at FreeBSD.org>
+ * Copyright (c) 2010-2011 Pawel Jakub Dawidek <pjd at FreeBSD.org>
* All rights reserved.
*
* This software was developed by Pawel Jakub Dawidek under sponsorship from
@@ -29,14 +29,14 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sbin/hastd/hastd.c,v 1.30 2011/01/27 19:31:35 pjd Exp $");
+__FBSDID("$FreeBSD: src/sbin/hastd/hastd.c,v 1.33 2011/01/31 18:32:17 pjd Exp $");
#include <sys/param.h>
#include <sys/linker.h>
#include <sys/module.h>
+#include <sys/stat.h>
#include <sys/wait.h>
-#include <assert.h>
#include <err.h>
#include <errno.h>
#include <libutil.h>
@@ -93,6 +93,172 @@
}
}
+void
+descriptors_cleanup(struct hast_resource *res)
+{
+ struct hast_resource *tres;
+
+ TAILQ_FOREACH(tres, &cfg->hc_resources, hr_next) {
+ if (tres == res) {
+ PJDLOG_VERIFY(res->hr_role == HAST_ROLE_SECONDARY ||
+ (res->hr_remotein == NULL &&
+ res->hr_remoteout == NULL));
+ continue;
+ }
+ if (tres->hr_remotein != NULL)
+ proto_close(tres->hr_remotein);
+ if (tres->hr_remoteout != NULL)
+ proto_close(tres->hr_remoteout);
+ }
+ if (cfg->hc_controlin != NULL)
+ proto_close(cfg->hc_controlin);
+ proto_close(cfg->hc_controlconn);
+ proto_close(cfg->hc_listenconn);
+ (void)pidfile_close(pfh);
+ hook_fini();
+ pjdlog_fini();
+}
+
+static const char *
+dtype2str(mode_t mode)
+{
+
+ if (S_ISBLK(mode))
+ return ("block device");
+ else if (S_ISCHR(mode))
+ return ("character device");
+ else if (S_ISDIR(mode))
+ return ("directory");
+ else if (S_ISFIFO(mode))
+ return ("pipe or FIFO");
+ else if (S_ISLNK(mode))
+ return ("symbolic link");
+ else if (S_ISREG(mode))
+ return ("regular file");
+ else if (S_ISSOCK(mode))
+ return ("socket");
+ else if (S_ISWHT(mode))
+ return ("whiteout");
+ else
+ return ("unknown");
+}
+
+void
+descriptors_assert(const struct hast_resource *res, int pjdlogmode)
+{
+ char msg[256];
+ struct stat sb;
+ long maxfd;
+ bool isopen;
+ mode_t mode;
+ int fd;
+
+ /*
+ * At this point descriptor to syslog socket is closed, so if we want
+ * to log assertion message, we have to first store it in 'msg' local
+ * buffer and then open syslog socket and log it.
+ */
+ msg[0] = '\0';
+
+ maxfd = sysconf(_SC_OPEN_MAX);
+ if (maxfd < 0) {
+ pjdlog_errno(LOG_WARNING, "sysconf(_SC_OPEN_MAX) failed");
+ maxfd = 16384;
+ }
+ for (fd = 0; fd <= maxfd; fd++) {
+ if (fstat(fd, &sb) == 0) {
+ isopen = true;
+ mode = sb.st_mode;
+ } else if (errno == EBADF) {
+ isopen = false;
+ mode = 0;
+ } else {
+ isopen = true; /* silence gcc */
+ mode = 0; /* silence gcc */
+ snprintf(msg, sizeof(msg),
+ "Unable to fstat descriptor %d: %s", fd,
+ strerror(errno));
+ }
+ if (fd == STDIN_FILENO || fd == STDOUT_FILENO ||
+ fd == STDERR_FILENO) {
+ if (!isopen) {
+ snprintf(msg, sizeof(msg),
+ "Descriptor %d (%s) is closed, but should be open.",
+ fd, (fd == STDIN_FILENO ? "stdin" :
+ (fd == STDOUT_FILENO ? "stdout" : "stderr")));
+ break;
+ }
+ } else if (fd == proto_descriptor(res->hr_event)) {
+ if (!isopen) {
+ snprintf(msg, sizeof(msg),
+ "Descriptor %d (event) is closed, but should be open.",
+ fd);
+ break;
+ }
+ if (!S_ISSOCK(mode)) {
+ snprintf(msg, sizeof(msg),
+ "Descriptor %d (event) is %s, but should be %s.",
+ fd, dtype2str(mode), dtype2str(S_IFSOCK));
+ break;
+ }
+ } else if (fd == proto_descriptor(res->hr_ctrl)) {
+ if (!isopen) {
+ snprintf(msg, sizeof(msg),
+ "Descriptor %d (ctrl) is closed, but should be open.",
+ fd);
+ break;
+ }
+ if (!S_ISSOCK(mode)) {
+ snprintf(msg, sizeof(msg),
+ "Descriptor %d (ctrl) is %s, but should be %s.",
+ fd, dtype2str(mode), dtype2str(S_IFSOCK));
+ break;
+ }
+ } else if (res->hr_role == HAST_ROLE_SECONDARY &&
+ fd == proto_descriptor(res->hr_remotein)) {
+ if (!isopen) {
+ snprintf(msg, sizeof(msg),
+ "Descriptor %d (remote in) is closed, but should be open.",
+ fd);
+ break;
+ }
+ if (!S_ISSOCK(mode)) {
+ snprintf(msg, sizeof(msg),
+ "Descriptor %d (remote in) is %s, but should be %s.",
+ fd, dtype2str(mode), dtype2str(S_IFSOCK));
+ break;
+ }
+ } else if (res->hr_role == HAST_ROLE_SECONDARY &&
+ fd == proto_descriptor(res->hr_remoteout)) {
+ if (!isopen) {
+ snprintf(msg, sizeof(msg),
+ "Descriptor %d (remote out) is closed, but should be open.",
+ fd);
+ break;
+ }
+ if (!S_ISSOCK(mode)) {
+ snprintf(msg, sizeof(msg),
+ "Descriptor %d (remote out) is %s, but should be %s.",
+ fd, dtype2str(mode), dtype2str(S_IFSOCK));
+ break;
+ }
+ } else {
+ if (isopen) {
+ snprintf(msg, sizeof(msg),
+ "Descriptor %d is open (%s), but should be closed.",
+ fd, dtype2str(mode));
+ break;
+ }
+ }
+ }
+ if (msg[0] != '\0') {
+ pjdlog_init(pjdlogmode);
+ pjdlog_prefix_set("[%s] (%s) ", res->hr_name,
+ role2str(res->hr_role));
+ PJDLOG_ABORT("%s", msg);
+ }
+}
+
static void
child_exit_log(unsigned int pid, int status)
{
@@ -161,7 +327,7 @@
const struct hast_resource *res1)
{
- assert(strcmp(res0->hr_name, res1->hr_name) == 0);
+ PJDLOG_ASSERT(strcmp(res0->hr_name, res1->hr_name) == 0);
if (strcmp(res0->hr_provname, res1->hr_provname) != 0)
return (true);
@@ -186,9 +352,9 @@
const struct hast_resource *res1)
{
- assert(strcmp(res0->hr_name, res1->hr_name) == 0);
- assert(strcmp(res0->hr_provname, res1->hr_provname) == 0);
- assert(strcmp(res0->hr_localpath, res1->hr_localpath) == 0);
+ PJDLOG_ASSERT(strcmp(res0->hr_name, res1->hr_name) == 0);
+ PJDLOG_ASSERT(strcmp(res0->hr_provname, res1->hr_provname) == 0);
+ PJDLOG_ASSERT(strcmp(res0->hr_localpath, res1->hr_localpath) == 0);
if (res0->hr_role != HAST_ROLE_PRIMARY)
return (false);
@@ -210,7 +376,7 @@
struct nv *nvin, *nvout;
int error;
- assert(res->hr_role == HAST_ROLE_PRIMARY);
+ PJDLOG_ASSERT(res->hr_role == HAST_ROLE_PRIMARY);
nvout = nv_alloc();
nv_add_uint8(nvout, HASTCTL_RELOAD, "cmd");
@@ -357,7 +523,7 @@
if (strcmp(cres->hr_name, nres->hr_name) == 0)
break;
}
- assert(cres != NULL);
+ PJDLOG_ASSERT(cres != NULL);
if (resource_needs_restart(cres, nres)) {
pjdlog_info("Resource %s configuration was modified, restarting it.",
cres->hr_name);
@@ -533,10 +699,10 @@
* we have to cancel those and accept the new connection.
*/
if (token == NULL) {
- assert(res->hr_remoteout == NULL);
+ PJDLOG_ASSERT(res->hr_remoteout == NULL);
pjdlog_debug(1, "Initial connection from %s.", raddr);
if (res->hr_workerpid != 0) {
- assert(res->hr_remotein == NULL);
+ PJDLOG_ASSERT(res->hr_remotein == NULL);
pjdlog_debug(1,
"Worker process exists (pid=%u), stopping it.",
(unsigned int)res->hr_workerpid);
@@ -676,29 +842,29 @@
hastd_reload();
break;
default:
- assert(!"invalid condition");
+ PJDLOG_ABORT("Unexpected signal (%d).", signo);
}
}
/* Setup descriptors for select(2). */
FD_ZERO(&rfds);
maxfd = fd = proto_descriptor(cfg->hc_controlconn);
- assert(fd >= 0);
+ PJDLOG_ASSERT(fd >= 0);
FD_SET(fd, &rfds);
fd = proto_descriptor(cfg->hc_listenconn);
- assert(fd >= 0);
+ PJDLOG_ASSERT(fd >= 0);
FD_SET(fd, &rfds);
maxfd = fd > maxfd ? fd : maxfd;
TAILQ_FOREACH(res, &cfg->hc_resources, hr_next) {
if (res->hr_event == NULL)
continue;
fd = proto_descriptor(res->hr_event);
- assert(fd >= 0);
+ PJDLOG_ASSERT(fd >= 0);
FD_SET(fd, &rfds);
maxfd = fd > maxfd ? fd : maxfd;
}
- assert(maxfd + 1 <= (int)FD_SETSIZE);
+ PJDLOG_ASSERT(maxfd + 1 <= (int)FD_SETSIZE);
ret = select(maxfd + 1, &rfds, NULL, NULL, &seltimeout);
if (ret == 0)
hook_check();
@@ -790,7 +956,7 @@
}
cfg = yy_config_parse(cfgpath, true);
- assert(cfg != NULL);
+ PJDLOG_ASSERT(cfg != NULL);
/*
* Restore default actions for interesting signals in case parent
==== //depot/projects/soc2009/trasz_limits/sbin/hastd/hastd.h#6 (text+ko) ====
@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sbin/hastd/hastd.h,v 1.5 2011/01/24 15:04:15 pjd Exp $
+ * $FreeBSD: src/sbin/hastd/hastd.h,v 1.7 2011/01/28 21:56:47 pjd Exp $
*/
#ifndef _HASTD_H_
@@ -43,6 +43,9 @@
extern bool sigexit_received;
extern struct pidfh *pfh;
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list