diff options
author | Warner Losh <imp@FreeBSD.org> | 2019-03-12 04:49:47 +0000 |
---|---|---|
committer | Warner Losh <imp@FreeBSD.org> | 2019-03-12 04:49:47 +0000 |
commit | 329f0aa95244ad1e615e8c2abb50366b5b957bdf (patch) | |
tree | 3e7ca8140cee70adbe8ba8c469e9c629237f9e30 /sys | |
parent | 42a5a356a886b864cab196ee7526fd5c9b3548e7 (diff) | |
download | src-329f0aa95244ad1e615e8c2abb50366b5b957bdf.tar.gz src-329f0aa95244ad1e615e8c2abb50366b5b957bdf.zip |
Kill tz_minuteswest and tz_dsttime.
Research Unix, 7th Edition introduced TIMEZONE and DSTFLAG
compile-time constants in sys/param.h to communicate these values for
the machine. 4.2BSD moved from the compile-time to run-time and
introduced these variables and used for localtime() to return the
right offset from UTC (sometimes referred to as GMT, for this purpose
is the same). 4.4BSD migrated to using the tzdata code/database and
these variables were basically unused.
FreeBSD removed the real need for these with adjkerntz in
1995. However, some RTC clocks continued to use these variables,
though they were largely unused otherwise. Later, phk centeralized
most of the uses in utc_offset, but left it using both tz_minuteswest
and adjkerntz.
POSIX (IEEE Std 1003.1-2017) states in the gettimeofday specification
"If tzp is not a null pointer, the behavior is unspecified" so there's
no standards reason to retain it anymore. In fact, gettimeofday has
been marked as obsolecent, meaning it could be removed from a future
release of the standard. It is the only interface defined in POSIX
that references these two values. All other references come from the
tzdata database via tzset().
These were used to more faithfully implement early unix ABIs which
have been removed from FreeBSD. NetBSD has completely eliminated
these variables years ago. Linux has migrated to tzdata as well,
though these variables technically still exist for compatibility
with unspecified older programs.
So, there's no real reason to have them these days. They are a
historical vestige that's no longer used in any meaningful way.
Reviewed By: jhb@, brooks@
Differential Revision: https://reviews.freebsd.org/D19550
Notes
Notes:
svn path=/head/; revision=345049
Diffstat (limited to 'sys')
-rw-r--r-- | sys/amd64/linux32/linux32_machdep.c | 4 | ||||
-rw-r--r-- | sys/compat/freebsd32/freebsd32_misc.c | 4 | ||||
-rw-r--r-- | sys/kern/kern_time.c | 8 | ||||
-rw-r--r-- | sys/kern/subr_clock.c | 5 | ||||
-rw-r--r-- | sys/sys/clock.h | 6 |
5 files changed, 7 insertions, 20 deletions
diff --git a/sys/amd64/linux32/linux32_machdep.c b/sys/amd64/linux32/linux32_machdep.c index 61ecc87dc77c..9ac308f8fbf9 100644 --- a/sys/amd64/linux32/linux32_machdep.c +++ b/sys/amd64/linux32/linux32_machdep.c @@ -674,8 +674,8 @@ linux_gettimeofday(struct thread *td, struct linux_gettimeofday_args *uap) error = copyout(&atv32, uap->tp, sizeof(atv32)); } if (error == 0 && uap->tzp != NULL) { - rtz.tz_minuteswest = tz_minuteswest; - rtz.tz_dsttime = tz_dsttime; + rtz.tz_minuteswest = 0; + rtz.tz_dsttime = 0; error = copyout(&rtz, uap->tzp, sizeof(rtz)); } return (error); diff --git a/sys/compat/freebsd32/freebsd32_misc.c b/sys/compat/freebsd32/freebsd32_misc.c index f411815dc1a0..64e3b046ecf0 100644 --- a/sys/compat/freebsd32/freebsd32_misc.c +++ b/sys/compat/freebsd32/freebsd32_misc.c @@ -834,8 +834,8 @@ freebsd32_gettimeofday(struct thread *td, error = copyout(&atv32, uap->tp, sizeof (atv32)); } if (error == 0 && uap->tzp != NULL) { - rtz.tz_minuteswest = tz_minuteswest; - rtz.tz_dsttime = tz_dsttime; + rtz.tz_minuteswest = 0; + rtz.tz_dsttime = 0; error = copyout(&rtz, uap->tzp, sizeof (rtz)); } return (error); diff --git a/sys/kern/kern_time.c b/sys/kern/kern_time.c index 3b6b42b64b31..b8423768ccdf 100644 --- a/sys/kern/kern_time.c +++ b/sys/kern/kern_time.c @@ -660,8 +660,8 @@ sys_gettimeofday(struct thread *td, struct gettimeofday_args *uap) error = copyout(&atv, uap->tp, sizeof (atv)); } if (error == 0 && uap->tzp != NULL) { - rtz.tz_minuteswest = tz_minuteswest; - rtz.tz_dsttime = tz_dsttime; + rtz.tz_minuteswest = 0; + rtz.tz_dsttime = 0; error = copyout(&rtz, uap->tzp, sizeof (rtz)); } return (error); @@ -713,10 +713,6 @@ kern_settimeofday(struct thread *td, struct timeval *tv, struct timezone *tzp) return (EINVAL); error = settime(td, tv); } - if (tzp && error == 0) { - tz_minuteswest = tzp->tz_minuteswest; - tz_dsttime = tzp->tz_dsttime; - } return (error); } diff --git a/sys/kern/subr_clock.c b/sys/kern/subr_clock.c index fa72e5425d1f..e3a427c49a63 100644 --- a/sys/kern/subr_clock.c +++ b/sys/kern/subr_clock.c @@ -52,9 +52,6 @@ __FBSDID("$FreeBSD$"); #include <sys/sysctl.h> #include <sys/timetc.h> -int tz_minuteswest; -int tz_dsttime; - /* * The adjkerntz and wall_cmos_clock sysctls are in the "machdep" sysctl * namespace because they were misplaced there originally. @@ -386,5 +383,5 @@ int utc_offset(void) { - return (tz_minuteswest * 60 + (wall_cmos_clock ? adjkerntz : 0)); + return (wall_cmos_clock ? adjkerntz : 0); } diff --git a/sys/sys/clock.h b/sys/sys/clock.h index bfbd6efd2ad3..790efdfee19f 100644 --- a/sys/sys/clock.h +++ b/sys/sys/clock.h @@ -51,12 +51,6 @@ #ifdef _KERNEL /* No user serviceable parts */ -/* - * Timezone info from settimeofday(2), usually not used - */ -extern int tz_minuteswest; -extern int tz_dsttime; - int utc_offset(void); /* |