about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2006-02-02 09:24:43 +0000
committerJakub Jelinek <jakub@redhat.com>2006-02-02 09:24:43 +0000
commitc3a8c11b0c6a6e44e98dcd4bb0fdb397e4fd56f7 (patch)
tree06122af4d2362ce1d73b832105580ff1904433ff
parent8e3cf1ca614800e0baf9f20ec5027a19216bdb66 (diff)
downloadglibc-c3a8c11b0c6a6e44e98dcd4bb0fdb397e4fd56f7.tar.gz
glibc-c3a8c11b0c6a6e44e98dcd4bb0fdb397e4fd56f7.tar.xz
glibc-c3a8c11b0c6a6e44e98dcd4bb0fdb397e4fd56f7.zip
2006-02-02 Roland McGrath <roland@redhat.com> cvs/fedora-glibc-2_3_90-33
	* timezone/private.h: Update from tzcode2006a.
	* timezone/scheck.c: Likewise.
	* timezone/asia: Update from tzdata2006a.
	* timezone/northamerica: Likewise.
	* timezone/zone.tab: Likewise.

	* sysdeps/powerpc/powerpc64/Makefile (no-special-regs): New variable.
	(CFLAGS-mcount.c): Use it instead of -msoft-float.
	* sysdeps/powerpc/powerpc64/elf/Makefile
	(CFLAGS-dl-runtime.os, CFLAGS-dl-lookup.os, CFLAGS-dl-misc.os,
	CFLAGS-rtld-mempcpy.os, CFLAGS-rtld-memmove.os, CFLAGS-rtld-memchr.os,
	CFLAGS-rtld-strnlen.os): LIkewise

2006-02-01  Roland McGrath  <roland@redhat.com>

	* sysdeps/ieee754/ldbl-opt/Makefile (sysdep-CFLAGS): Avoid adding
	-mlong-double-128 when it's already there.
-rw-r--r--ChangeLog20
-rw-r--r--sysdeps/ieee754/ldbl-opt/Makefile2
-rw-r--r--sysdeps/powerpc/powerpc64/Makefile14
-rw-r--r--sysdeps/powerpc/powerpc64/elf/Makefile14
-rw-r--r--timezone/asia14
-rw-r--r--timezone/northamerica222
-rw-r--r--timezone/private.h2
-rw-r--r--timezone/scheck.c11
-rw-r--r--timezone/zone.tab17
9 files changed, 226 insertions, 90 deletions
diff --git a/ChangeLog b/ChangeLog
index 34eaad0426..ec8e939f49 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,23 @@
+2006-02-02  Roland McGrath  <roland@redhat.com>
+
+	* timezone/private.h: Update from tzcode2006a.
+	* timezone/scheck.c: Likewise.
+	* timezone/asia: Update from tzdata2006a.
+	* timezone/northamerica: Likewise.
+	* timezone/zone.tab: Likewise.
+
+	* sysdeps/powerpc/powerpc64/Makefile (no-special-regs): New variable.
+	(CFLAGS-mcount.c): Use it instead of -msoft-float.
+	* sysdeps/powerpc/powerpc64/elf/Makefile
+	(CFLAGS-dl-runtime.os, CFLAGS-dl-lookup.os, CFLAGS-dl-misc.os,
+	CFLAGS-rtld-mempcpy.os, CFLAGS-rtld-memmove.os, CFLAGS-rtld-memchr.os,
+	CFLAGS-rtld-strnlen.os): LIkewise
+
+2006-02-01  Roland McGrath  <roland@redhat.com>
+
+	* sysdeps/ieee754/ldbl-opt/Makefile (sysdep-CFLAGS): Avoid adding
+	-mlong-double-128 when it's already there.
+
 2006-02-01  Roland McGrath  <roland@frob.com>
 
 	* mach/Machrules ($(objpfx)%.uh, $(objpfx)%.__h): Use static pattern
diff --git a/sysdeps/ieee754/ldbl-opt/Makefile b/sysdeps/ieee754/ldbl-opt/Makefile
index bcafb3c84a..7f7bc3ce33 100644
--- a/sysdeps/ieee754/ldbl-opt/Makefile
+++ b/sysdeps/ieee754/ldbl-opt/Makefile
@@ -2,7 +2,9 @@
 # -mlong-double-128 option is used (or when it becomes a default
 # when -mlong-double-64 is not used).
 long-double-fcts = yes
+ifeq (,$(filter -mlong-double-128,$(sysdep-CFLAGS)))
 sysdep-CFLAGS += -mlong-double-128
+endif
 
 ifeq ($(subdir),math)
 libm-routines += s_nexttowardfd
diff --git a/sysdeps/powerpc/powerpc64/Makefile b/sysdeps/powerpc/powerpc64/Makefile
index cf7c4337e0..78d4f07e57 100644
--- a/sysdeps/powerpc/powerpc64/Makefile
+++ b/sysdeps/powerpc/powerpc64/Makefile
@@ -10,6 +10,18 @@ ifeq (yes,$(build-shared))
 pic-ccflag = -fpic
 endif
 
+# These flags prevent FPU or Altivec registers from being used,
+# for code called in contexts that is not allowed to touch those registers.
+# Stupid GCC requires us to pass all these ridiculous switches.
+no-special-regs := $(sort $(foreach n,40 41 50 51 60 61 62 63 \
+				      $(foreach m,2 3 4 5 6 7 8 9, \
+						  3$m 4$m 5$m),\
+				    -ffixed-$n)) \
+		   $(sort $(foreach n,$(foreach m,0 1 2 3 4 5 6 7 8 9,\
+						$m 1$m 2$m) 30 31,\
+				    -ffixed-v$n)) \
+		   -ffixed-vrsave -ffixed-vscr
+
 ifeq ($(subdir),csu)
 sysdep_routines += hp-timing
 elide-routines.os += hp-timing
@@ -29,5 +41,5 @@ ifeq ($(subdir),gmon)
 # The assembly functions assume that fp arg regs are not trashed.
 # Compiling with -msoft-float ensures that fp regs are not used
 # for moving memory around.
-CFLAGS-mcount.c += -msoft-float
+CFLAGS-mcount.c += $(no-special-regs)
 endif
diff --git a/sysdeps/powerpc/powerpc64/elf/Makefile b/sysdeps/powerpc/powerpc64/elf/Makefile
index bd0580ebc9..6a77e116bd 100644
--- a/sysdeps/powerpc/powerpc64/elf/Makefile
+++ b/sysdeps/powerpc/powerpc64/elf/Makefile
@@ -2,10 +2,10 @@
 
 # Need to prevent gcc from using fprs in code used during dynamic linking.
 
-CFLAGS-dl-runtime.os := -msoft-float
-CFLAGS-dl-lookup.os := -msoft-float
-CFLAGS-dl-misc.os := -msoft-float
-CFLAGS-rtld-mempcpy.os := -msoft-float
-CFLAGS-rtld-memmove.os := -msoft-float
-CFLAGS-rtld-memchr.os := -msoft-float
-CFLAGS-rtld-strnlen.os := -msoft-float
+CFLAGS-dl-runtime.os = $(no-special-regs)
+CFLAGS-dl-lookup.os = $(no-special-regs)
+CFLAGS-dl-misc.os = $(no-special-regs)
+CFLAGS-rtld-mempcpy.os = $(no-special-regs)
+CFLAGS-rtld-memmove.os = $(no-special-regs)
+CFLAGS-rtld-memchr.os = $(no-special-regs)
+CFLAGS-rtld-strnlen.os = $(no-special-regs)
diff --git a/timezone/asia b/timezone/asia
index 59e62dde4f..059ad7f245 100644
--- a/timezone/asia
+++ b/timezone/asia
@@ -1,4 +1,4 @@
-# @(#)asia	7.90
+# @(#)asia	7.91
 # <pre>
 
 # This data is by no means authoritative; if you think you know better,
@@ -934,6 +934,10 @@ Zone	Asia/Tokyo	9:18:59	-	LMT	1887 Dec 31 15:00u
 # From Paul Eggert (2005-11-22):
 # Starting 2003 transitions are from Steffen Thorsen's web site timeanddate.com.
 #
+# From Steffen Thorsen (2005-11-23):
+# For Jordan I have received multiple independent user reports every year
+# about DST end dates, as the end-rule is different every year.
+#
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule	Jordan	1973	only	-	Jun	6	0:00	1:00	S
 Rule	Jordan	1973	1975	-	Oct	1	0:00	0	-
@@ -1433,6 +1437,12 @@ Zone	Asia/Karachi	4:28:12 -	LMT	1907
 # From Paul Eggert (2005-11-22):
 # Starting 2004 transitions are from Steffen Thorsen's web site timeanddate.com.
 
+# From Steffen Thorsen (2005-11-23):
+# A user from Gaza reported that Gaza made the change early because of
+# the Ramadan.  Next year Ramadan will be even earlier, so I think
+# there is a good chance next year's end date will be around two weeks
+# earlier--the same goes for Jordan.
+
 # The rules for Egypt are stolen from the `africa' file.
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
 Rule EgyptAsia	1957	only	-	May	10	0:00	1:00	S
@@ -1445,7 +1455,7 @@ Rule EgyptAsia	1966	only	-	Oct	 1	3:00	0	-
 Rule Palestine	1999	max	-	Apr	Fri>=15	0:00	1:00	S
 Rule Palestine	1999	2003	-	Oct	Fri>=15	0:00	0	-
 Rule Palestine	2004	only	-	Oct	 1	1:00	0	-
-Rule Palestine	2005	max	-	Oct	 4	1:00	0	-
+Rule Palestine	2005	max	-	Oct	 4	2:00	0	-
 
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Gaza	2:17:52	-	LMT	1900 Oct
diff --git a/timezone/northamerica b/timezone/northamerica
index 9f9b98b09c..087fa544e6 100644
--- a/timezone/northamerica
+++ b/timezone/northamerica
@@ -1,4 +1,4 @@
-# @(#)northamerica	7.87
+# @(#)northamerica	7.88
 # <pre>
 
 # also includes Central America and the Caribbean
@@ -321,6 +321,14 @@ Zone America/Chicago	-5:50:36 -	LMT	1883 Nov 18 12:09:24
 Zone America/North_Dakota/Center -6:45:12 - LMT	1883 Nov 18 12:14:48
 			-7:00	US	M%sT	1992 Oct 25 02:00
 			-6:00	US	C%sT
+# From Paul Eggert (2006-01-20):
+# The following is not implemented yet.
+# What is the most populous city in that area?
+# From http://www.statoids.com/tus.html (2006-01-20):
+# 2003-10-26 02:00: All of Morton County, ND, and the part of Sioux
+# County, ND east of ND route 31 moved from MT to CT.  (The area
+# around Fort Yates in Sioux County and the area around Mandan in
+# Morton County were already in CT.)
 
 # US mountain time, represented by Denver
 #
@@ -519,9 +527,9 @@ Zone America/Boise	-7:44:49 -	LMT	1883 Nov 18 12:15:11
 # For a map of Indiana's time zone regions, see:
 # <a href="http://www.mccsc.edu/time.html">
 # What time is it in Indiana?
-# </a> (2005-05-03)
+# </a> (2005-10-30)
 #
-# From Paul Eggert (2005-08-22):
+# From Paul Eggert (2006-01-20):
 # Since 1970, most of Indiana has been like America/Indiana/Indianapolis,
 # with the following exceptions:
 #
@@ -533,11 +541,14 @@ Zone America/Boise	-7:44:49 -	LMT	1883 Nov 18 12:15:11
 # - Clark, Floyd, and Harrison counties have been like
 #   America/Kentucky/Louisville.
 #
-# - Crawford, Starke, and Switzerland counties have their own time zone
+# - Daviess, Dubois, Knox, Martin, Perry, and Pulaski counties
+#   have been like America/Indiana/Vincennes.
+#
+# - Crawford, Pike, Starke, and Switzerland counties have their own time zone
 #   histories as noted below.
 #
-# Shanks partitions Indiana into 345 regions, each with its own time history,
-# and writes ``Even newspaper reports present contradictory information.''
+# Shanks partitioned Indiana into 345 regions, each with its own time history,
+# and wrote ``Even newspaper reports present contradictory information.''
 # Fortunately, most of the complexity occurred before our cutoff date of 1970.
 #
 # Other than Indianapolis, the Indiana place names are so nondescript
@@ -545,11 +556,19 @@ Zone America/Boise	-7:44:49 -	LMT	1883 Nov 18 12:15:11
 # So we reluctantly put them all in a subdirectory `America/Indiana'.
 
 # From Paul Eggert (2005-08-16):
-# http://www.mccsc.edu/time.html says that Indiana will use DST starting 2006,
-# and that many counties may switch either to Central or to Eastern time.
-# The county-by-county decisions have not been made yet, so for now assume
-# that no counties will switch: this assumption is most likely wrong,
-# but it's the best we can do for now.
+# http://www.mccsc.edu/time.html says that Indiana will use DST starting 2006.
+
+# From Deborah Goldsmith (2006-01-18):
+# http://dmses.dot.gov/docimages/pdf95/382329_web.pdf
+# From Paul Eggert (2006-01-20):
+# It says "DOT is relocating the time zone boundary in Indiana to move Starke,
+# Pulaski, Knox, Daviess, Martin, Pike, Dubois, and Perry Counties from the
+# Eastern Time Zone to the Central Time Zone.... The effective date of
+# this rule is 2:OO a.m. EST Sunday, April 2, 2006, which is the
+# changeover date from standard time to Daylight Saving Time."
+# Strictly speaking, this means the affected counties will change their
+# clocks twice that night, but this obviously is in error.  The intent
+# is that 01:59:59 EST be followed by 02:00:00 CDT.
 
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
 Rule Indianapolis 1941	only	-	Jun	22	2:00	1:00	D
@@ -568,8 +587,8 @@ Zone America/Indiana/Indianapolis -5:44:38 - LMT 1883 Nov 18 12:15:22
 			-5:00	-	EST	2006
 			-5:00	US	E%sT
 #
-# Part of Crawford County, Indiana, last observed DST in 1975,
-# and left its clocks alone in 1974.
+# Eastern Crawford County, Indiana, left its clocks alone in 1974,
+# as well as from 1976 through 2005.
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
 Rule	Marengo	1951	only	-	Apr	lastSun	2:00	1:00	D
 Rule	Marengo	1951	only	-	Sep	lastSun	2:00	0	S
@@ -586,7 +605,45 @@ Zone America/Indiana/Marengo -5:45:23 -	LMT	1883 Nov 18 12:14:37
 			-5:00	-	EST	2006
 			-5:00	US	E%sT
 #
-# Starke County, Indiana
+# Daviess, Dubois, Knox, Martin, Perry, and Pulaski Counties, Indiana,
+# switched from eastern to central time in April 2006.
+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
+Rule Vincennes	1946	only	-	Apr	lastSun	2:00	1:00	D
+Rule Vincennes	1946	only	-	Sep	lastSun	2:00	0	S
+Rule Vincennes	1953	1954	-	Apr	lastSun	2:00	1:00	D
+Rule Vincennes	1953	1959	-	Sep	lastSun	2:00	0	S
+Rule Vincennes	1955	only	-	May	 1	0:00	1:00	D
+Rule Vincennes	1956	1963	-	Apr	lastSun	2:00	1:00	D
+Rule Vincennes	1960	only	-	Oct	lastSun	2:00	0	S
+Rule Vincennes	1961	only	-	Sep	lastSun	2:00	0	S
+Rule Vincennes	1962	1963	-	Oct	lastSun	2:00	0	S
+# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
+Zone America/Indiana/Vincennes -5:50:07 - LMT	1883 Nov 18 12:09:53
+			-6:00	US	C%sT	1946
+			-6:00 Vincennes	C%sT	1964 Apr 26 2:00
+			-5:00	-	EST	1969
+			-5:00	US	E%sT	1971
+			-5:00	-	EST	2006 Apr  2 2:00
+			-6:00	US	C%sT
+# 
+# Pike County, Indiana moved from central to eastern time in 1977,
+# then switched back in 2006.
+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
+Rule	Pike	1955	only	-	May	 1	0:00	1:00	D
+Rule	Pike	1955	1960	-	Sep	lastSun	2:00	0	S
+Rule	Pike	1956	1964	-	Apr	lastSun	2:00	1:00	D
+Rule	Pike	1961	1964	-	Oct	lastSun	2:00	0	S
+# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
+Zone America/Indiana/Petersburg -5:49:07 - LMT	1883 Nov 18 12:10:53
+			-6:00	US	C%sT	1955
+			-6:00	Pike	C%sT	1965 Apr 25 2:00
+			-5:00	-	EST	1966 Oct 30 2:00
+			-6:00	US	C%sT	1977 Oct 30 2:00
+			-5:00	-	EST	2006 Apr  2 2:00
+			-6:00	US	C%sT
+#
+# Starke County, Indiana moved from central to eastern time in 1991,
+# then switched back in 2006.
 # From Arthur David Olson (1991-10-28):
 # An article on page A3 of the Sunday, 1991-10-27 Washington Post
 # notes that Starke County switched from Central time to Eastern time as of
@@ -603,10 +660,10 @@ Zone America/Indiana/Knox -5:46:30 -	LMT	1883 Nov 18 12:13:30
 			-6:00	Starke	C%sT	1962 Apr 29 2:00
 			-5:00	-	EST	1963 Oct 27 2:00
 			-6:00	US	C%sT	1991 Oct 27 2:00
-			-5:00	-	EST	2006
-			-5:00	US	E%sT
+			-5:00	-	EST	2006 Apr  2 2:00
+			-6:00	US	C%sT
 #
-# Switzerland County, Indiana, last observed DST in 1972.
+# Switzerland County, Indiana, did not observe DST from 1973 through 2005.
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone America/Indiana/Vevay -5:40:16 -	LMT	1883 Nov 18 12:19:44
 			-6:00	US	C%sT	1954 Apr 25 2:00
@@ -636,7 +693,7 @@ Zone America/Kentucky/Louisville -5:43:02 -	LMT	1883 Nov 18 12:16:58
 			-6:00	1:00	CDT	1974 Oct 27 2:00
 			-5:00	US	E%sT
 #
-# Wayne, Clinton, and Russell Counties, Kentucky
+# Wayne County, Kentucky
 #
 # From
 # <a href="http://www.lake-cumberland.com/life/archive/news990129time.shtml">
@@ -733,7 +790,8 @@ Zone America/Detroit	-5:32:11 -	LMT	1905
 			-5:00	-	EST	1975 Apr 27 2:00
 			-5:00	US	E%sT
 #
-# The Michigan border with Wisconsin switched from EST to CST/CDT in 1973.
+# Dickinson, Gogebic, Iron, and Menominee Counties, Michigan,
+# switched from EST to CST/CDT in 1973.
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER
 Rule Menominee	1946	only	-	Apr	lastSun	2:00	1:00	D
 Rule Menominee	1946	only	-	Sep	lastSun	2:00	0	S
@@ -929,7 +987,7 @@ Zone America/Goose_Bay	-4:01:40 -	LMT	1884 # Happy Valley-Goose Bay
 			-4:00	StJohns	A%sT
 
 
-# west Labrador, New Brunswick, Nova Scotia, Prince Edward I
+# west Labrador, Nova Scotia, Prince Edward I
 
 # From Paul Eggert (1996-06-12):
 # Shanks writes that since 1970 most of this region has been like Halifax.
@@ -938,53 +996,48 @@ Zone America/Goose_Bay	-4:01:40 -	LMT	1884 # Happy Valley-Goose Bay
 # Shanks also writes that Liverpool, NS was the only town in Canada to observe
 # DST in 1971 but not 1970; for now we'll assume this is a typo.
 
-# From Paul Eggert (2000-10-02):
-# INMS (2000-09-12) says that, since 1988 at least, New Brunswick switches
-# at 00:01 local time.  FIXME: verify and create a new Zone for this.
-
-
 # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
-Rule Halifax	1916	only	-	Apr	 1	0:00	1:00	D
-Rule Halifax	1916	only	-	Oct	 1	0:00	0	S
-Rule Halifax	1920	only	-	May	 9	0:00	1:00	D
-Rule Halifax	1920	only	-	Aug	29	0:00	0	S
-Rule Halifax	1921	only	-	May	 6	0:00	1:00	D
-Rule Halifax	1921	1922	-	Sep	 5	0:00	0	S
-Rule Halifax	1922	only	-	Apr	30	0:00	1:00	D
-Rule Halifax	1923	1925	-	May	Sun>=1	0:00	1:00	D
-Rule Halifax	1923	only	-	Sep	 4	0:00	0	S
-Rule Halifax	1924	only	-	Sep	15	0:00	0	S
-Rule Halifax	1925	only	-	Sep	28	0:00	0	S
-Rule Halifax	1926	only	-	May	16	0:00	1:00	D
-Rule Halifax	1926	only	-	Sep	13	0:00	0	S
-Rule Halifax	1927	only	-	May	 1	0:00	1:00	D
-Rule Halifax	1927	only	-	Sep	26	0:00	0	S
-Rule Halifax	1928	1931	-	May	Sun>=8	0:00	1:00	D
-Rule Halifax	1928	only	-	Sep	 9	0:00	0	S
-Rule Halifax	1929	only	-	Sep	 3	0:00	0	S
-Rule Halifax	1930	only	-	Sep	15	0:00	0	S
-Rule Halifax	1931	1932	-	Sep	Mon>=24	0:00	0	S
-Rule Halifax	1932	only	-	May	 1	0:00	1:00	D
-Rule Halifax	1933	only	-	Apr	30	0:00	1:00	D
-Rule Halifax	1933	only	-	Oct	 2	0:00	0	S
-Rule Halifax	1934	only	-	May	20	0:00	1:00	D
-Rule Halifax	1934	only	-	Sep	16	0:00	0	S
-Rule Halifax	1935	only	-	Jun	 2	0:00	1:00	D
-Rule Halifax	1935	only	-	Sep	30	0:00	0	S
-Rule Halifax	1936	only	-	Jun	 1	0:00	1:00	D
-Rule Halifax	1936	only	-	Sep	14	0:00	0	S
-Rule Halifax	1937	1938	-	May	Sun>=1	0:00	1:00	D
-Rule Halifax	1937	1941	-	Sep	Mon>=24	0:00	0	S
-Rule Halifax	1939	only	-	May	28	0:00	1:00	D
-Rule Halifax	1940	1941	-	May	Sun>=1	0:00	1:00	D
-Rule Halifax	1946	1949	-	Sep	lastSun	2:00	0	S
-Rule Halifax	1946	1949	-	Apr	lastSun	2:00	1:00	D
-Rule Halifax	1951	1954	-	Sep	lastSun	2:00	0	S
-Rule Halifax	1951	1954	-	Apr	lastSun	2:00	1:00	D
-Rule Halifax	1956	1959	-	Sep	lastSun	2:00	0	S
-Rule Halifax	1956	1959	-	Apr	lastSun	2:00	1:00	D
-Rule Halifax	1962	1973	-	Apr	lastSun	2:00	1:00	D
-Rule Halifax	1962	1973	-	Oct	lastSun	2:00	0	S
+Rule	Halifax	1916	only	-	Apr	 1	0:00	1:00	D
+Rule	Halifax	1916	only	-	Oct	 1	0:00	0	S
+Rule	Halifax	1920	only	-	May	 9	0:00	1:00	D
+Rule	Halifax	1920	only	-	Aug	29	0:00	0	S
+Rule	Halifax	1921	only	-	May	 6	0:00	1:00	D
+Rule	Halifax	1921	1922	-	Sep	 5	0:00	0	S
+Rule	Halifax	1922	only	-	Apr	30	0:00	1:00	D
+Rule	Halifax	1923	1925	-	May	Sun>=1	0:00	1:00	D
+Rule	Halifax	1923	only	-	Sep	 4	0:00	0	S
+Rule	Halifax	1924	only	-	Sep	15	0:00	0	S
+Rule	Halifax	1925	only	-	Sep	28	0:00	0	S
+Rule	Halifax	1926	only	-	May	16	0:00	1:00	D
+Rule	Halifax	1926	only	-	Sep	13	0:00	0	S
+Rule	Halifax	1927	only	-	May	 1	0:00	1:00	D
+Rule	Halifax	1927	only	-	Sep	26	0:00	0	S
+Rule	Halifax	1928	1931	-	May	Sun>=8	0:00	1:00	D
+Rule	Halifax	1928	only	-	Sep	 9	0:00	0	S
+Rule	Halifax	1929	only	-	Sep	 3	0:00	0	S
+Rule	Halifax	1930	only	-	Sep	15	0:00	0	S
+Rule	Halifax	1931	1932	-	Sep	Mon>=24	0:00	0	S
+Rule	Halifax	1932	only	-	May	 1	0:00	1:00	D
+Rule	Halifax	1933	only	-	Apr	30	0:00	1:00	D
+Rule	Halifax	1933	only	-	Oct	 2	0:00	0	S
+Rule	Halifax	1934	only	-	May	20	0:00	1:00	D
+Rule	Halifax	1934	only	-	Sep	16	0:00	0	S
+Rule	Halifax	1935	only	-	Jun	 2	0:00	1:00	D
+Rule	Halifax	1935	only	-	Sep	30	0:00	0	S
+Rule	Halifax	1936	only	-	Jun	 1	0:00	1:00	D
+Rule	Halifax	1936	only	-	Sep	14	0:00	0	S
+Rule	Halifax	1937	1938	-	May	Sun>=1	0:00	1:00	D
+Rule	Halifax	1937	1941	-	Sep	Mon>=24	0:00	0	S
+Rule	Halifax	1939	only	-	May	28	0:00	1:00	D
+Rule	Halifax	1940	1941	-	May	Sun>=1	0:00	1:00	D
+Rule	Halifax	1946	1949	-	Apr	lastSun	2:00	1:00	D
+Rule	Halifax	1946	1949	-	Sep	lastSun	2:00	0	S
+Rule	Halifax	1951	1954	-	Apr	lastSun	2:00	1:00	D
+Rule	Halifax	1951	1954	-	Sep	lastSun	2:00	0	S
+Rule	Halifax	1956	1959	-	Apr	lastSun	2:00	1:00	D
+Rule	Halifax	1956	1959	-	Sep	lastSun	2:00	0	S
+Rule	Halifax	1962	1973	-	Apr	lastSun	2:00	1:00	D
+Rule	Halifax	1962	1973	-	Oct	lastSun	2:00	0	S
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone America/Halifax	-4:14:24 -	LMT	1902 Jun 15
 			-4:00	Halifax	A%sT	1918
@@ -1000,6 +1053,43 @@ Zone America/Glace_Bay	-3:59:48 -	LMT	1902 Jun 15
 			-4:00	Halifax	A%sT	1974
 			-4:00	Canada	A%sT
 
+# New Brunswick
+
+# From Paul Eggert (2006-01-20):
+# New Brunswick's Time Definition Act
+# <http://www.gnb.ca/0062/PDF-acts/t-06.pdf> says they change at 00:01, and
+# <http://www.canlii.org/nb/laws/sta/t-6/20030127/whole.html> makes it
+# clear that this has been the case since at least 1993.
+# For now, assume it started in 1993.  The Office of the Premier announced
+# <http://www.gnb.ca/cnb/news/pre/2005e1737pr.htm> (2005-12-23)
+# that they will bring forward proposed amendments to harmonize with the US;
+# for now assume that this will happen, but they'll still switch at 00:01.
+
+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
+Rule	Moncton	1933	1935	-	Jun	Sun>=8	1:00	1:00	D
+Rule	Moncton	1933	1935	-	Sep	Sun>=8	1:00	0	S
+Rule	Moncton	1936	1938	-	Jun	Sun>=1	1:00	1:00	D
+Rule	Moncton	1936	1938	-	Sep	Sun>=1	1:00	0	S
+Rule	Moncton	1939	only	-	May	27	1:00	1:00	D
+Rule	Moncton	1939	1941	-	Sep	Sat>=21	1:00	0	S
+Rule	Moncton	1940	only	-	May	19	1:00	1:00	D
+Rule	Moncton	1941	only	-	May	 4	1:00	1:00	D
+Rule	Moncton	1946	1972	-	Apr	lastSun	2:00	1:00	D
+Rule	Moncton	1946	1956	-	Sep	lastSun	2:00	0	S
+Rule	Moncton	1956	1972	-	Oct	lastSun	2:00	0	S
+Rule	Moncton	1993	2006	-	Apr	Sun>=1	0:01	1:00	D
+Rule	Moncton	1993	2006	-	Oct	lastSun	0:01	0	S
+Rule	Moncton	2007	max	-	Mar	Sun>=8	0:01	1:00	D
+Rule	Moncton	2007	max	-	Nov	Sun>=1	0:01	0	S
+# Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
+Zone America/Moncton	-4:19:08 -	LMT	1883 Dec  9
+			-5:00	-	EST	1902 Jun 15
+			-4:00	Canada	A%sT	1933
+			-4:00	Moncton	A%sT	1942
+			-4:00	Canada	A%sT	1946
+			-4:00	Moncton	A%sT	1973
+			-4:00	Canada	A%sT	1993
+			-4:00	Moncton	A%sT
 
 # Ontario, Quebec
 
diff --git a/timezone/private.h b/timezone/private.h
index 33dc4c3de9..d9f232c8e3 100644
--- a/timezone/private.h
+++ b/timezone/private.h
@@ -218,7 +218,7 @@ char *	imalloc P((int n));
 void *	irealloc P((void * pointer, int size));
 void	icfree P((char * pointer));
 void	ifree P((char * pointer));
-char *	scheck P((const char *string, char *format));
+const char *scheck P((const char *string, const char *format));
 
 /*
 ** Finally, some convenience items.
diff --git a/timezone/scheck.c b/timezone/scheck.c
index 2dd9b35285..bc156379a0 100644
--- a/timezone/scheck.c
+++ b/timezone/scheck.c
@@ -1,6 +1,6 @@
 #ifndef lint
 #ifndef NOID
-static char	elsieid[] = "@(#)scheck.c	8.16";
+static char	elsieid[] = "@(#)scheck.c	8.17";
 #endif /* !defined lint */
 #endif /* !defined NOID */
 
@@ -8,20 +8,19 @@ static char	elsieid[] = "@(#)scheck.c	8.16";
 
 #include "private.h"
 
-char *
+const char *
 scheck(string, format)
 const char * const	string;
-char * const		format;
+const char * const	format;
 {
 	register char *		fbuf;
 	register const char *	fp;
 	register char *		tp;
 	register int		c;
-	register char *		result;
+	register const char *	result;
 	char			dummy;
-	static char		nada;
 
-	result = &nada;
+	result = "";
 	if (string == NULL || format == NULL)
 		return result;
 	fbuf = imalloc((int) (2 * strlen(format) + 4));
diff --git a/timezone/zone.tab b/timezone/zone.tab
index d9b278b0ec..b2e12460e9 100644
--- a/timezone/zone.tab
+++ b/timezone/zone.tab
@@ -1,4 +1,4 @@
-# @(#)zone.tab	1.32
+# @(#)zone.tab	1.33
 #
 # TZ zone descriptions
 #
@@ -100,8 +100,9 @@ BW	-2545+02555	Africa/Gaborone
 BY	+5354+02734	Europe/Minsk
 BZ	+1730-08812	America/Belize
 CA	+4734-05243	America/St_Johns	Newfoundland Island
-CA	+4439-06336	America/Halifax	Atlantic Time - Nova Scotia (most places), NB, W Labrador, E Quebec & PEI
+CA	+4439-06336	America/Halifax	Atlantic Time - Nova Scotia (most places), W Labrador, E Quebec & PEI
 CA	+4612-05957	America/Glace_Bay	Atlantic Time - Nova Scotia - places that did not observe DST 1966-1971
+CA	+4606-06447	America/Moncton	Atlantic Time - New Brunswick
 CA	+5320-06025	America/Goose_Bay	Atlantic Time - E Labrador
 CA	+4531-07334	America/Montreal	Eastern Time - Quebec - most locations
 CA	+4339-07923	America/Toronto	Eastern Time - Ontario - most locations
@@ -370,12 +371,14 @@ US	+404251-0740023	America/New_York	Eastern Time
 US	+421953-0830245	America/Detroit	Eastern Time - Michigan - most locations
 US	+381515-0854534	America/Kentucky/Louisville	Eastern Time - Kentucky - Louisville area
 US	+364947-0845057	America/Kentucky/Monticello	Eastern Time - Kentucky - Wayne County
-US	+394606-0860929	America/Indiana/Indianapolis	Eastern Standard Time - Indiana - most locations
-US	+382232-0862041	America/Indiana/Marengo	Eastern Standard Time - Indiana - Crawford County
-US	+411745-0863730	America/Indiana/Knox	Eastern Standard Time - Indiana - Starke County
-US	+384452-0850402	America/Indiana/Vevay	Eastern Standard Time - Indiana - Switzerland County
+US	+394606-0860929	America/Indiana/Indianapolis	Eastern Time - Indiana - most locations
+US	+382232-0862041	America/Indiana/Marengo	Eastern Time - Indiana - Crawford County
+US	+411745-0863730	America/Indiana/Knox	Eastern Time - Indiana - Starke County
+US	+384452-0850402	America/Indiana/Vevay	Eastern Time - Indiana - Switzerland County
 US	+415100-0873900	America/Chicago	Central Time
-US	+450628-0873651	America/Menominee	Central Time - Michigan - Wisconsin border
+US	+384038-0873143	America/Indiana/Vincennes	Central Time - Indiana - Daviess, Dubois, Knox, Martin, Perry & Pulaski
+US	+382931-0871643	America/Indiana/Petersburg	Central Time - Indiana - Pike County
+US	+450628-0873651	America/Menominee	Central Time - Michigan - Dickinson, Gogebic, Iron & Menominee Counties
 US	+470659-1011757	America/North_Dakota/Center	Central Time - North Dakota - Oliver County
 US	+394421-1045903	America/Denver	Mountain Time
 US	+433649-1161209	America/Boise	Mountain Time - south Idaho & east Oregon