Date: Mon, 31 Jan 2011 20:10:47 GMT From: Edward Tomasz Napierala <trasz@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 188393 for review Message-ID: <201101312010.p0VKAlwG017797@skunkworks.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@188393?ac=10 Change 188393 by trasz@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@FreeBSD.org> + * Copyright (c) 2010-2011 Pawel Jakub Dawidek <pjd@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) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201101312010.p0VKAlwG017797>