| Age | Commit message (Collapse) | Author | Files | Lines |
|
Building the test cases in parallel might make tst-strftime2 and
tst-strftime3 fail. Simply re-running the test case (or building
serially) makes the problem go away. This patch adds the necessary
dependency to allow parallel builds in the time subdirectory.
Tested for powerpc64le.
Reviewed-by: Florian Weimer <fweimer@redhat.com>
Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
|
|
It moves the missing CFLAGS from rt/Makefile to time/Makefile missing
from 7b5af2d8f2a2b (Finish move of clock_* functions to libc. [BZ #24959]).
Checked on powerpc64le-linux-gnu.
* rt/Makefile (CFLAGS-clock_nanosleep.c): Move to ...
* time/Makefile (CFLAGS-clock_nanosleep.c): ... here.
|
|
Also, change sources.redhat.com to sourceware.org.
This patch was automatically generated by running the following shell
script, which uses GNU sed, and which avoids modifying files imported
from upstream:
sed -ri '
s,(http|ftp)(://(.*\.)?(gnu|fsf|sourceware)\.org($|[^.]|\.[^a-z])),https\2,g
s,(http|ftp)(://(.*\.)?)sources\.redhat\.com($|[^.]|\.[^a-z]),https\2sourceware.org\4,g
' \
$(find $(git ls-files) -prune -type f \
! -name '*.po' \
! -name 'ChangeLog*' \
! -path COPYING ! -path COPYING.LIB \
! -path manual/fdl-1.3.texi ! -path manual/lgpl-2.1.texi \
! -path manual/texinfo.tex ! -path scripts/config.guess \
! -path scripts/config.sub ! -path scripts/install-sh \
! -path scripts/mkinstalldirs ! -path scripts/move-if-change \
! -path INSTALL ! -path locale/programs/charmap-kw.h \
! -path po/libc.pot ! -path sysdeps/gnu/errlist.c \
! '(' -name configure \
-execdir test -f configure.ac -o -f configure.in ';' ')' \
! '(' -name preconfigure \
-execdir test -f preconfigure.ac ';' ')' \
-print)
and then by running 'make dist-prepare' to regenerate files built
from the altered files, and then executing the following to cleanup:
chmod a+x sysdeps/unix/sysv/linux/riscv/configure
# Omit irrelevant whitespace and comment-only changes,
# perhaps from a slightly-different Autoconf version.
git checkout -f \
sysdeps/csky/configure \
sysdeps/hppa/configure \
sysdeps/riscv/configure \
sysdeps/unix/sysv/linux/csky/configure
# Omit changes that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/powerpc/powerpc64/ppc-mcount.S: trailing lines
git checkout -f \
sysdeps/powerpc/powerpc64/ppc-mcount.S \
sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
# Omit change that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: last line does not end in newline
git checkout -f sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
|
|
In glibc 2.17, the functions clock_getcpuclockid, clock_getres,
clock_gettime, clock_nanosleep, and clock_settime were moved from
librt.so to libc.so, leaving compatibility stubs behind. Now that the
dynamic linker no longer insists on finding versioned symbols in the
same library that originally defined them, we do not need the stubs
anymore, and this means we don't need GLIBC_PRIVATE __-prefix aliases
for most of the functions anymore either. (clock_gettime still needs
one.) For ports added before 2.17, libc.so needs to provide two
symbol versions for each, the default at GLIBC_2.17 plus a compat
version matching what librt had.
While I'm at it, move the clock_*.c files and their tests from rt/ to
time/.
|
|
Co-authored-by: Rafal Luzynski <digitalfreak@lingonborough.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
ChangeLog:
[BZ #24293]
* time/Makefile (LOCALES): Add zh_TW.UTF-8, cmn_TW.UTF-8,
hak_TW.UTF-8, nan_TW.UTF-8, and lzh_TW.UTF-8.
* time/tst-strftime2.c (locales): Likewise.
(dates): Add 1910-04-01, 1911-12-31, 1912-01-01, 1913-04-01,
2010-04-01, and 2011-04-01.
(mkreftable): Add rules for the new locales and the new dates.
|
|
Test the transition points between all the currently listed Japanese
era name changes. This includes testing the transition between the
first year date and the second year date. This test will help test
the upcoming Japanese era name change.
Also fixes a fencepost error where the era name isn't properly parsed
by strptime in the last (partial) year of the era.
Example: if an era change happens in Feb 1990, and again in Aug 1995,
that's 5.5 years long, but the 0.5 year wasn't accounted for.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
|
|
The full representation of the alternative calendar year (%EY)
typically includes an internal use of "%Ey". As a GNU extension,
apply any flags on "%EY" (e.g. "%_EY", "%-EY") to the internal "%Ey",
allowing users of "%EY" to control how the year is padded.
Reviewed-by: Rafal Luzynski <digitalfreak@lingonborough.com>
Reviewed-by: Zack Weinberg <zackw@panix.com>
ChangeLog:
[BZ #24096]
* manual/time.texi (strftime): Document "%EC" and "%EY".
* time/Makefile (tests): Add tst-strftime2.
(LOCALES): Add ja_JP.UTF-8, lo_LA.UTF-8, and th_TH.UTF-8.
* time/strftime_l.c (__strftime_internal): Add argument yr_spec to
override padding for "%Ey".
If an optional flag ('_' or '-') is specified to "%EY", interpret the
"%Ey" in the subformat as if decorated with that flag.
* time/tst-strftime2.c: New file.
|
|
* All files with FSF copyright notices: Update copyright dates
using scripts/update-copyrights.
* locale/programs/charmap-kw.h: Regenerated.
* locale/programs/locfile-kw.h: Likewise.
|
|
[BZ#23789]
Based on a test suggested by Albert Aribaud in:
https://www.sourceware.org/ml/libc-alpha/2018-10/msg00662.html
* time/Makefile (tests): Add bug-mktime4.
* time/bug-mktime4.c: New file.
|
|
Bug 22639 reports localtime failing to handle time offset transitions
correctly in 2039 and later on platforms with 64-bit time_t.
The problem is the use of SECSPERDAY (constant 86400) in calculations
such as
t = ((year - 1970) * 365
+ /* Compute the number of leapdays between 1970 and YEAR
(exclusive). There is a leapday every 4th year ... */
+ ((year - 1) / 4 - 1970 / 4)
/* ... except every 100th year ... */
- ((year - 1) / 100 - 1970 / 100)
/* ... but still every 400th year. */
+ ((year - 1) / 400 - 1970 / 400)) * SECSPERDAY;
where t is of type time_t and year is of type int. Before my commit
92bd70fb85bce57ac47ba5d8af008736832c955a (an update from tzcode,
included in 2.26 and later releases), SECSPERDAY was obtained from a
file imported from tzcode, where the value included a cast to
int_fast32_t. On 64-bit platforms, glibc defines int_fast32_t to be
long int, so 64-bit, but my patch resulted in it changing to int.
(The bug would probably have existed even before my patch for x32,
which has 64-bit time_t but 32-bit int_fast32_t, but I haven't
verified that.)
This patch fixes the problem by including a cast to time_t in the
definition of SECSPERDAY. (64-bit time support for 32-bit systems
should move such code that isn't a public interface to using the
internal 64-bit version of time_t throughout.)
Tested for x86_64 and x86.
[BZ #22639]
* time/tzset.c (SECSPERDAY): Cast to time_t.
* time/tst-y2039.c: New file.
* time/Makefile (tests): Add tst-y2039.
|
|
All the previous changes also repeated to support abbreviated
alternative month names. In most languages which have declension and
need nominative/genitive month names the abbreviated forms for both
cases are the same. An example where they do differ is May in Russian:
this name is too short to be abbreviated so even the abbreviated form
features the declension suffixes.
[BZ #10871]
* locale/C-time.c (_nl_C_LC_TIME): Add abbreviated alternative month
names, define them as the same as abbreviated month names explicitly.
* locale/categories.def (LC_TIME): Add ab_alt_mon and wide-ab_alt_mon.
* locale/langinfo.h: (_NL_ABALTMON_1, _NL_ABALTMON_2, _NL_ABALTMON_3,
_NL_ABALTMON_4, _NL_ABALTMON_5, _NL_ABALTMON_6, _NL_ABALTMON_7,
_NL_ABALTMON_8, _NL_ABALTMON_9, _NL_ABALTMON_10, _NL_ABALTMON_11,
_NL_ABALTMON_12, _NL_WABALTMON_1, _NL_WABALTMON_2, _NL_WABALTMON_3,
_NL_WABALTMON_4, _NL_WABALTMON_5, _NL_WABALTMON_6, _NL_WABALTMON_7,
_NL_WABALTMON_8, _NL_WABALTMON_9, _NL_WABALTMON_10, _NL_WABALTMON_11,
_NL_WABALTMON_12): New enum constants.
* locale/programs/ld-time.c (struct locale_time_t): Add ab_alt_mon,
wab_alt_mon, and ab_alt_mon_defined members.
(time_output): Output ab_alt_mon and wab_alt_mon members.
(time_read): Read them, initialize them as copies of abmon and wabmon
respectively if they are missing, initialize ab_alt_mon_defined.
* locale/programs/locfile-kw.gperf (ab_alt_mon): Define.
* locale/programs/locfile-kw.h: Regenerate.
* locale/programs/locfile-token.h (tok_ab_alt_mon): New enum constant.
* time/Makefile [$(run-built-tests) = yes] (LOCALES): Add es_ES.UTF-8
and ru_RU.UTF-8.
* time/strftime_l.c (a_altmonth, aam_len): New macros.
[!COMPILE_WIDE] (ABALTMON_1): New macro.
(__strftime_internal): Handle %Ob and %Oh formats.
* time/strptime_l.c [_LIBC] (ab_alt_month_name): New macro.
(__strptime_internal): Handle %Ob and %Oh formats.
* time/tst-strptime.c (day_tests): Add more tests to parse different
forms of month names including the new %Ob format specifier.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
|
|
Some languages (Slavic, Baltic, etc.) require a genitive case of the
month name when formatting a full date (with the day number) while
they require a nominative case when referring to the month standalone.
This requirement cannot be fulfilled without providing two forms for
each month name. From now it is specified that nl_langinfo(MON_1)
series (up to MON_12) and strftime("%B") generate the month names in
the grammatical form used when the month is a part of a complete date.
If the grammatical form used when the month is named by itself is needed,
the new values nl_langinfo(ALTMON_1) (up to ALTMON_12) and
strftime("%OB") are supported. This new feature is optional so the
languages which do not need it or do not yet provide the updated
locales simply do not use it and their behaviour is unchanged.
[BZ #10871]
* locale/C-time.c (_nl_C_LC_TIME): Add alternative month names,
define them as the same as primary full month names explicitly.
* locale/categories.def (LC_TIME): Add alt_mon and wide-alt_mon.
* locale/langinfo.h (__ALTMON_1, __ALTMON_2, __ALTMON_3, __ALTMON_4,
__ALTMON_5, __ALTMON_6, __ALTMON_7, __ALTMON_8, __ALTMON_9, __ALTMON_10,
__ALTMON_11, __ALTMON_12, _NL_WALTMON_1, _NL_WALTMON_2, _NL_WALTMON_3,
_NL_WALTMON_4, _NL_WALTMON_5, _NL_WALTMON_6, _NL_WALTMON_7,
_NL_WALTMON_8, _NL_WALTMON_9, _NL_WALTMON_10, _NL_WALTMON_11,
_NL_WALTMON_12): New enum constants.
[__USE_GNU] (ALTMON_1, ALTMON_2, ALTMON_3, ALTMON_4, ALTMON_5, ALTMON_6,
ALTMON_7, ALTMON_8, ALTMON_9, ALTMON_10, ALTMON_11, ALTMON_12): New
macros.
* locale/programs/ld-time.c (struct locale_time_t): Add alt_mon,
walt_mon, and alt_mon_defined members.
(time_output): Output alt_mon and walt_mon members.
(time_read): Read them, initialize them as copies of mon and wmon
respectively if they are missing, initialize alt_mon_defined.
* locale/programs/locfile-kw.gperf (alt_mon): Define.
* locale/programs/locfile-kw.h: Regenerate.
* locale/programs/locfile-token.h (tok_alt_mon): New enum constant.
* localedata/tst-langinfo.c (map): Add tests for the new constants
ALTMON_1 .. ALTMON_12.
* time/Makefile [$(run-built-tests) = yes] (LOCALES): Add fr_FR.UTF-8
and pl_PL.UTF-8.
* time/strftime_l.c (f_altmonth): New macro.
(__strftime_internal): Handle %OB format.
* time/strptime_l.c [_LIBC] (alt_month_name): New macro.
(__strptime_internal): Handle %OB format.
* time/tst-strptime.c (day_tests): Add tests to parse different forms
of month names including the new %OB format specifier.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
|
|
* All files with FSF copyright notices: Update copyright dates
using scripts/update-copyrights.
* locale/programs/charmap-kw.h: Regenerated.
* locale/programs/locfile-kw.h: Likewise.
|
|
Replace = with += in CFLAGS-xxx.c and CPPFLAGS-xxx.c to allow Makefile
under sysdeps to define CFLAGS-xx.c and CPPFLAGS-xxx.c.
* argp/Makefile (CFLAGS-argp-help.c): Replace = with +=.
(CFLAGS-argp-parse.c): Likewise.
(CFLAGS-argp-fmtstream.c): Likewise.
* crypt/Makefile (CPPFLAGS-sha256-crypt.c): Likewise.
(CPPFLAGS-sha512-crypt.c): Likewise.
(CPPFLAGS-md5-crypt.c): Likewise.
* debug/Makefile (CFLAGS-stack_chk_fail.c): Likewise.
(CFLAGS-stack_chk_fail_local.c): Likewise.
(CFLAGS-backtrace.c): Likewise.
(CFLAGS-sprintf_chk.c): Likewise.
(CFLAGS-snprintf_chk.c): Likewise.
(CFLAGS-vsprintf_chk.c): Likewise.
(CFLAGS-vsnprintf_chk.c): Likewise.
(CFLAGS-asprintf_chk.c): Likewise.
(CFLAGS-vasprintf_chk.c): Likewise.
(CFLAGS-obprintf_chk.c): Likewise.
(CFLAGS-dprintf_chk.c): Likewise.
(CFLAGS-vdprintf_chk.c): Likewise.
(CFLAGS-printf_chk.c): Likewise.
(CFLAGS-fprintf_chk.c): Likewise.
(CFLAGS-vprintf_chk.c): Likewise.
(CFLAGS-vfprintf_chk.c): Likewise.
(CFLAGS-gets_chk.c): Likewise.
(CFLAGS-fgets_chk.c): Likewise.
(CFLAGS-fgets_u_chk.c): Likewise.
(CFLAGS-fread_chk.c): Likewise.
(CFLAGS-fread_u_chk.c): Likewise.
(CFLAGS-swprintf_chk.c): Likewise.
(CFLAGS-vswprintf_chk.c): Likewise.
(CFLAGS-wprintf_chk.c): Likewise.
(CFLAGS-fwprintf_chk.c): Likewise.
(CFLAGS-vwprintf_chk.c): Likewise.
(CFLAGS-vfwprintf_chk.c): Likewise.
(CFLAGS-fgetws_chk.c): Likewise.
(CFLAGS-fgetws_u_chk.c): Likewise.
(CFLAGS-read_chk.c): Likewise.
(CFLAGS-pread_chk.c): Likewise.
(CFLAGS-pread64_chk.c): Likewise.
(CFLAGS-recv_chk.c): Likewise.
(CFLAGS-recvfrom_chk.c): Likewise.
(CFLAGS-tst-longjmp_chk.c): Likewise.
(CPPFLAGS-tst-longjmp_chk.c): Likewise.
(CFLAGS-tst-longjmp_chk2.c): Likewise.
(CPPFLAGS-tst-longjmp_chk2.c): Likewise.
(CFLAGS-tst-longjmp_chk3.c): Likewise.
(CPPFLAGS-tst-longjmp_chk3.c): Likewise.
(CFLAGS-tst-chk1.c): Likewise.
(CFLAGS-tst-chk2.c): Likewise.
(CFLAGS-tst-chk3.c): Likewise.
(CFLAGS-tst-chk4.cc): Likewise.
(CFLAGS-tst-chk5.cc): Likewise.
(CFLAGS-tst-chk6.cc): Likewise.
(CFLAGS-tst-lfschk1.c): Likewise.
(CFLAGS-tst-lfschk2.c): Likewise.
(CFLAGS-tst-lfschk3.c): Likewise.
(CFLAGS-tst-lfschk4.cc): Likewise.
(CFLAGS-tst-lfschk5.cc): Likewise.
(CFLAGS-tst-lfschk6.cc): Likewise.
(CFLAGS-tst-ssp-1.c): Likewise.
* dirent/Makefile (CFLAGS-scandir.c): Likewise.
(CFLAGS-scandir64.c): Likewise.
(CFLAGS-scandir-tail.c): Likewise.
(CFLAGS-scandir64-tail.c): Likewise.
* elf/Makefile (CPPFLAGS-dl-tunables.c): Likewise.
(CFLAGS-dl-tunables.c): Likewise.
(CFLAGS-dl-runtime.c): Likewise.
(CFLAGS-dl-lookup.c): Likewise.
(CFLAGS-dl-iterate-phdr.c): Likewise.
(CFLAGS-vismain.c): Likewise.
(CFLAGS-tst-linkall-static.c): Likewise.
(CFLAGS-tst-linkall-static.c): Likewise.
(CPPFLAGS-dl-load.c): Likewise.
(CFLAGS-ldconfig.c): Likewise.
(CFLAGS-dl-cache.c): Likewise.
(CFLAGS-cache.c): Likewise.
(CFLAGS-rtld.c): Likewise.
(CFLAGS-multiload.c): Likewise.
(CFLAGS-filtmod1.c): Likewise.
(CFLAGS-tst-align.c): Likewise.
(CFLAGS-tst-align2.c): Likewise.
(CFLAGS-tst-alignmod.c): Likewise.
(CFLAGS-tst-alignmod2.c): Likewise.
(CPPFLAGS-tst-execstack.c): Likewise.
(CFLAGS-tst-ptrguard1-static.c): Likewise.
(CFLAGS-tst-latepthreadmod.c): Likewise.
* grp/Makefile (CFLAGS-getgrgid_r.c): Likewise.
(CFLAGS-getgrnam_r.c): Likewise.
(CFLAGS-getgrent_r.c): Likewise.
(CFLAGS-getgrent.c): Likewise.
(CFLAGS-fgetgrent.c): Likewise.
(CFLAGS-fgetgrent_r.c): Likewise.
(CFLAGS-putgrent.c): Likewise.
(CFLAGS-initgroups.c): Likewise.
(CFLAGS-getgrgid.c): Likewise.
* gshadow/Makefile (CFLAGS-getsgent_r.c): Likewise.
(CFLAGS-getsgent.c): Likewise.
(CFLAGS-fgetsgent.c): Likewise.
(CFLAGS-fgetsgent_r.c): Likewise.
(CFLAGS-putsgent.c): Likewise.
(CFLAGS-getsgnam.c): Likewise.
(CFLAGS-getsgnam_r.c): Likewise.
* iconv/Makefile (CFLAGS-iconv_prog.c): Likewise.
(CFLAGS-iconv_charmap.c): Likewise.
(CFLAGS-dummy-repertoire.c): Likewise.
(CFLAGS-charmap.c): Likewise.
(CFLAGS-linereader.c): Likewise.
(CFLAGS-simple-hash.c): Likewise.
(CFLAGS-gconv_conf.c): Likewise.
(CFLAGS-iconvconfig.c): Likewise.
* inet/Makefile (CFLAGS-gethstbyad_r.c): Likewise.
(CFLAGS-gethstbyad.c): Likewise.
(CFLAGS-gethstbynm_r.c): Likewise.
(CFLAGS-gethstbynm.c): Likewise.
(CFLAGS-gethstbynm2_r.c): Likewise.
(CFLAGS-gethstbynm2.c): Likewise.
(CFLAGS-gethstent_r.c): Likewise.
(CFLAGS-gethstent.c): Likewise.
(CFLAGS-rcmd.c): Likewise.
(CFLAGS-getnetbynm_r.c): Likewise.
(CFLAGS-getnetbynm.c): Likewise.
(CFLAGS-getnetbyad_r.c): Likewise.
(CFLAGS-getnetbyad.c): Likewise.
(CFLAGS-getnetent_r.c): Likewise.
(CFLAGS-getnetent.c): Likewise.
(CFLAGS-getaliasent_r.c): Likewise.
(CFLAGS-getaliasent.c): Likewise.
(CFLAGS-getrpcent_r.c): Likewise.
(CFLAGS-getrpcent.c): Likewise.
(CFLAGS-getservent_r.c): Likewise.
(CFLAGS-getservent.c): Likewise.
(CFLAGS-getprtent_r.c): Likewise.
(CFLAGS-getprtent.c): Likewise.
(CFLAGS-either_ntoh.c): Likewise.
(CFLAGS-either_hton.c): Likewise.
(CFLAGS-getnetgrent.c): Likewise.
(CFLAGS-getnetgrent_r.c): Likewise.
(CFLAGS-tst-checks-posix.c): Likewise.
(CFLAGS-tst-sockaddr.c): Likewise.
* intl/Makefile (CFLAGS-tst-gettext.c): Likewise.
(CFLAGS-tst-translit.c): Likewise.
(CFLAGS-tst-gettext2.c): Likewise.
(CFLAGS-tst-codeset.c): Likewise.
(CFLAGS-tst-gettext3.c): Likewise.
(CFLAGS-tst-gettext4.c): Likewise.
(CFLAGS-tst-gettext5.c): Likewise.
(CFLAGS-tst-gettext6.c): Likewise.
* io/Makefile (CFLAGS-open.c): Likewise.
(CFLAGS-open64.c): Likewise.
(CFLAGS-creat.c): Likewise.
(CFLAGS-creat64.c): Likewise.
(CFLAGS-fcntl.c): Likewise.
(CFLAGS-poll.c): Likewise.
(CFLAGS-ppoll.c): Likewise.
(CFLAGS-lockf.c): Likewise.
(CFLAGS-statfs.c): Likewise.
(CFLAGS-fstatfs.c): Likewise.
(CFLAGS-statvfs.c): Likewise.
(CFLAGS-fstatvfs.c): Likewise.
(CFLAGS-fts.c): Likewise.
(CFLAGS-fts64.c): Likewise.
(CFLAGS-ftw.c): Likewise.
(CFLAGS-ftw64.c): Likewise.
(CFLAGS-lockf.c): Likewise.
(CFLAGS-posix_fallocate.c): Likewise.
(CFLAGS-posix_fallocate64.c): Likewise.
(CFLAGS-fallocate.c): Likewise.
(CFLAGS-fallocate64.c): Likewise.
(CFLAGS-read.c): Likewise.
(CFLAGS-write.c): Likewise.
(CFLAGS-test-stat.c): Likewise.
(CFLAGS-test-lfs.c): Likewise.
* libio/Makefile (CFLAGS-fileops.c): Likewise.
(CFLAGS-fputc.c): Likewise.
(CFLAGS-fputwc.c): Likewise.
(CFLAGS-freopen64.c): Likewise.
(CFLAGS-freopen.c): Likewise.
(CFLAGS-fseek.c): Likewise.
(CFLAGS-fseeko64.c): Likewise.
(CFLAGS-fseeko.c): Likewise.
(CFLAGS-ftello64.c): Likewise.
(CFLAGS-ftello.c): Likewise.
(CFLAGS-fwide.c): Likewise.
(CFLAGS-genops.c): Likewise.
(CFLAGS-getc.c): Likewise.
(CFLAGS-getchar.c): Likewise.
(CFLAGS-getwc.c): Likewise.
(CFLAGS-getwchar.c): Likewise.
(CFLAGS-iofclose.c): Likewise.
(CFLAGS-iofflush.c): Likewise.
(CFLAGS-iofgetpos64.c): Likewise.
(CFLAGS-iofgetpos.c): Likewise.
(CFLAGS-iofgets.c): Likewise.
(CFLAGS-iofgetws.c): Likewise.
(CFLAGS-iofputs.c): Likewise.
(CFLAGS-iofputws.c): Likewise.
(CFLAGS-iofread.c): Likewise.
(CFLAGS-iofsetpos64.c): Likewise.
(CFLAGS-iofsetpos.c): Likewise.
(CFLAGS-ioftell.c): Likewise.
(CFLAGS-iofwrite.c): Likewise.
(CFLAGS-iogetdelim.c): Likewise.
(CFLAGS-iogetline.c): Likewise.
(CFLAGS-iogets.c): Likewise.
(CFLAGS-iogetwline.c): Likewise.
(CFLAGS-ioputs.c): Likewise.
(CFLAGS-ioseekoff.c): Likewise.
(CFLAGS-ioseekpos.c): Likewise.
(CFLAGS-iosetbuffer.c): Likewise.
(CFLAGS-iosetvbuf.c): Likewise.
(CFLAGS-ioungetc.c): Likewise.
(CFLAGS-ioungetwc.c): Likewise.
(CFLAGS-oldfileops.c): Likewise.
(CFLAGS-oldiofclose.c): Likewise.
(CFLAGS-oldiofgetpos64.c): Likewise.
(CFLAGS-oldiofgetpos.c): Likewise.
(CFLAGS-oldiofsetpos64.c): Likewise.
(CFLAGS-oldiofsetpos.c): Likewise.
(CFLAGS-peekc.c): Likewise.
(CFLAGS-putc.c): Likewise.
(CFLAGS-putchar.c): Likewise.
(CFLAGS-putwc.c): Likewise.
(CFLAGS-putwchar.c): Likewise.
(CFLAGS-rewind.c): Likewise.
(CFLAGS-wfileops.c): Likewise.
(CFLAGS-wgenops.c): Likewise.
(CFLAGS-oldiofopen.c): Likewise.
(CFLAGS-iofopen.c): Likewise.
(CFLAGS-iofopen64.c): Likewise.
(CFLAGS-oldtmpfile.c): Likewise.
(CFLAGS-tst_putwc.c): Likewise.
* locale/Makefile (CFLAGS-md5.c): Likewise.
(CFLAGS-charmap.c): Likewise.
(CFLAGS-locfile.c): Likewise.
(CFLAGS-charmap-dir.c): Likewise.
* login/Makefile (CFLAGS-grantpt.c): Likewise.
(CFLAGS-getpt.c): Likewise.
(CFLAGS-pt_chown.c): Likewise.
* malloc/Makefile (CFLAGS-mcheck-init.c): Likewise.
(CFLAGS-obstack.c): Likewise.
* math/Makefile (CFLAGS-test-tgmath3.c): Likewise.
(CFLAGS-test-double-vlen4-wrappers.c): Likewise.
(CFLAGS-test-double-vlen8-wrappers.c): Likewise.
(CFLAGS-test-float-vlen8-wrappers.c): Likewise.
(CFLAGS-test-float-vlen16-wrappers.c): Likewise.
(CFLAGS-test-tgmath.c): Likewise.
(CFLAGS-test-tgmath2.c): Likewise.
(CFLAGS-test-tgmath-ret.c): Likewise.
(CFLAGS-test-powl.c): Likewise.
(CFLAGS-test-snan.c): Likewise.
(CFLAGS-test-signgam-finite.c): Likewise.
(CFLAGS-test-signgam-finite-c99.c): Likewise.
(CFLAGS-test-signgam-finite-c11.c): Likewise.
(CFLAGS-test-signgam-uchar.c): Likewise.
(CFLAGS-test-signgam-uchar-init.c): Likewise.
(CFLAGS-test-signgam-uchar-static.c): Likewise.
(CFLAGS-test-signgam-uchar-init-static.c): Likewise.
(CFLAGS-test-signgam-uint.c): Likewise.
(CFLAGS-test-signgam-uint-init.c): Likewise.
(CFLAGS-test-signgam-uint-static.c): Likewise.
(CFLAGS-test-signgam-uint-init-static.c): Likewise.
(CFLAGS-test-signgam-ullong.c): Likewise.
(CFLAGS-test-signgam-ullong-init.c): Likewise.
(CFLAGS-test-signgam-ullong-static.c): Likewise.
(CFLAGS-test-signgam-ullong-init-static.c): Likewise.
(CFLAGS-test-math-cxx11.cc): Likewise.
(CFLAGS-test-math-isinff.cc): Likewise.
(CFLAGS-test-math-iszero.cc): Likewise.
(CFLAGS-test-math-issignaling.cc): Likewise.
(CFLAGS-test-math-iscanonical.cc): Likewise.
(CFLAGS-test-iszero-excess-precision.c): Likewise.
(CFLAGS-test-iseqsig-excess-precision.c): Likewise.
(CFLAGS-test-flt-eval-method.c): Likewise.
(CFLAGS-test-fe-snans-always-signal.c): Likewise.
(CFLAGS-test-finite-macros.c): Likewise.
* misc/Makefile (CFLAGS-select.c): Likewise.
(CFLAGS-tsearch.c): Likewise.
(CFLAGS-lsearch.c): Likewise.
(CFLAGS-pselect.c): Likewise.
(CFLAGS-readv.c): Likewise.
(CFLAGS-writev.c): Likewise.
(CFLAGS-preadv.c): Likewise.
(CFLAGS-preadv64.c): Likewise.
(CFLAGS-pwritev.c): Likewise.
(CFLAGS-pwritev64.c): Likewise.
(CFLAGS-preadv2.c): Likewise.
(CFLAGS-preadv64v2.c): Likewise.
(CFLAGS-pwritev2.c): Likewise.
(CFLAGS-pwritev64v2.c): Likewise.
(CFLAGS-usleep.c): Likewise.
(CFLAGS-syslog.c): Likewise.
(CFLAGS-error.c): Likewise.
(CFLAGS-getpass.c): Likewise.
(CFLAGS-mkstemp.c): Likewise.
(CFLAGS-mkstemp64.c): Likewise.
(CFLAGS-getsysstats.c): Likewise.
(CFLAGS-getusershell.c): Likewise.
(CFLAGS-err.c): Likewise.
(CFLAGS-tst-tsearch.c): Likewise.
(CFLAGS-msync.c): Likewise.
(CFLAGS-fdatasync.c): Likewise.
(CFLAGS-fsync.c): Likewise.
* nptl/Makefile (CFLAGS-nptl-init.c): Likewise.
(CFLAGS-unwind.c): Likewise.
(CFLAGS-unwind-forcedunwind.c): Likewise.
(CFLAGS-pthread_cancel.c): Likewise.
(CFLAGS-pthread_setcancelstate.c): Likewise.
(CFLAGS-pthread_setcanceltype.c): Likewise.
(CFLAGS-cancellation.c): Likewise.
(CFLAGS-libc-cancellation.c): Likewise.
(CFLAGS-pthread_exit.c): Likewise.
(CFLAGS-forward.c): Likewise.
(CFLAGS-pthread_testcancel.c): Likewise.
(CFLAGS-pthread_join.c): Likewise.
(CFLAGS-pthread_timedjoin.c): Likewise.
(CFLAGS-pthread_once.c): Likewise.
(CFLAGS-pthread_cond_wait.c): Likewise.
(CFLAGS-sem_wait.c): Likewise.
(CFLAGS-sem_timedwait.c): Likewise.
(CFLAGS-fcntl.c): Likewise.
(CFLAGS-lockf.c): Likewise.
(CFLAGS-pread.c): Likewise.
(CFLAGS-pread64.c): Likewise.
(CFLAGS-pwrite.c): Likewise.
(CFLAGS-pwrite64.c): Likewise.
(CFLAGS-wait.c): Likewise.
(CFLAGS-waitpid.c): Likewise.
(CFLAGS-sigwait.c): Likewise.
(CFLAGS-msgrcv.c): Likewise.
(CFLAGS-msgsnd.c): Likewise.
(CFLAGS-tcdrain.c): Likewise.
(CFLAGS-open.c): Likewise.
(CFLAGS-open64.c): Likewise.
(CFLAGS-pause.c): Likewise.
(CFLAGS-recv.c): Likewise.
(CFLAGS-send.c): Likewise.
(CFLAGS-accept.c): Likewise.
(CFLAGS-sendto.c): Likewise.
(CFLAGS-connect.c): Likewise.
(CFLAGS-recvfrom.c): Likewise.
(CFLAGS-recvmsg.c): Likewise.
(CFLAGS-sendmsg.c): Likewise.
(CFLAGS-close.c): Likewise.
(CFLAGS-read.c): Likewise.
(CFLAGS-write.c): Likewise.
(CFLAGS-nanosleep.c): Likewise.
(CFLAGS-sigsuspend.c): Likewise.
(CFLAGS-msync.c): Likewise.
(CFLAGS-fdatasync.c): Likewise.
(CFLAGS-fsync.c): Likewise.
(CFLAGS-pt-system.c): Likewise.
(CFLAGS-tst-cleanup2.c): Likewise.
(CFLAGS-tst-cleanupx2.c): Likewise.
(CFLAGS-flockfile.c): Likewise.
(CFLAGS-ftrylockfile.c): Likewise.
(CFLAGS-funlockfile.c): Likewise.
(CFLAGS-tst-initializers1.c): Likewise.
(CFLAGS-tst-initializers1-c89.c): Likewise.
(CFLAGS-tst-initializers1-c99.c): Likewise.
(CFLAGS-tst-initializers1-c11.c): Likewise.
(CFLAGS-tst-initializers1-gnu89.c): Likewise.
(CFLAGS-tst-initializers1-gnu99.c): Likewise.
(CFLAGS-tst-initializers1-gnu11.c): Likewise.
* nscd/Makefile (CFLAGS-nscd_getpw_r.c): Likewise.
(CFLAGS-nscd_getgr_r.c): Likewise.
(CFLAGS-nscd_gethst_r.c): Likewise.
(CFLAGS-nscd_getai.c): Likewise.
(CFLAGS-nscd_initgroups.c): Likewise.
* posix/Makefile (CFLAGS-getaddrinfo.c): Likewise.
(CFLAGS-pause.c): Likewise.
(CFLAGS-pread.c): Likewise.
(CFLAGS-pread64.c): Likewise.
(CFLAGS-pwrite.c): Likewise.
(CFLAGS-pwrite64.c): Likewise.
(CFLAGS-sleep.c): Likewise.
(CFLAGS-wait.c): Likewise.
(CFLAGS-waitid.c): Likewise.
(CFLAGS-waitpid.c): Likewise.
(CFLAGS-getopt.c): Likewise.
(CFLAGS-wordexp.c): Likewise.
(CFLAGS-sysconf.c): Likewise.
(CFLAGS-pathconf.c): Likewise.
(CFLAGS-fpathconf.c): Likewise.
(CFLAGS-spawn.c): Likewise.
(CFLAGS-spawnp.c): Likewise.
(CFLAGS-spawni.c): Likewise.
(CFLAGS-glob.c): Likewise.
(CFLAGS-glob64.c): Likewise.
(CFLAGS-getconf.c): Likewise.
(CFLAGS-nanosleep.c): Likewise.
* pwd/Makefile (CFLAGS-getpwent_r.c): Likewise.
(CFLAGS-getpwent.c): Likewise.
(CFLAGS-getpw.c): Likewise.
(CFLAGS-fgetpwent_r.c): Likewise.
* resolv/Makefile (CFLAGS-res_hconf.c): Likewise.
* rt/Makefile (CFLAGS-aio_suspend.c): Likewise.
(CFLAGS-mq_timedreceive.c): Likewise.
(CFLAGS-mq_timedsend.c): Likewise.
(CFLAGS-clock_nanosleep.c): Likewise.
(CFLAGS-librt-cancellation.c): Likewise.
* shadow/Makefile (CFLAGS-getspent_r.c): Likewise.
(CFLAGS-getspent.c): Likewise.
(CFLAGS-fgetspent.c): Likewise.
(CFLAGS-fgetspent_r.c): Likewise.
(CFLAGS-putspent.c): Likewise.
(CFLAGS-getspnam.c): Likewise.
(CFLAGS-getspnam_r.c): Likewise.
* signal/Makefile (CFLAGS-sigpause.c): Likewise.
(CFLAGS-sigsuspend.c): Likewise.
(CFLAGS-sigtimedwait.c): Likewise.
(CFLAGS-sigwait.c): Likewise.
(CFLAGS-sigwaitinfo.c): Likewise.
(CFLAGS-sigreturn.c): Likewise.
* stdio-common/Makefile (CFLAGS-vfprintf.c): Likewise.
(CFLAGS-vfwprintf.c): Likewise.
(CFLAGS-tmpfile.c): Likewise.
(CFLAGS-tmpfile64.c): Likewise.
(CFLAGS-tempname.c): Likewise.
(CFLAGS-psignal.c): Likewise.
(CFLAGS-vprintf.c): Likewise.
(CFLAGS-cuserid.c): Likewise.
(CFLAGS-errlist.c): Likewise.
(CFLAGS-siglist.c): Likewise.
(CFLAGS-scanf15.c): Likewise.
(CFLAGS-scanf17.c): Likewise.
* stdlib/Makefile (CFLAGS-bsearch.c): Likewise.
(CFLAGS-msort.c): Likewise.
(CFLAGS-qsort.c): Likewise.
(CFLAGS-system.c): Likewise.
(CFLAGS-fmtmsg.c): Likewise.
(CFLAGS-strfmon.c): Likewise.
(CFLAGS-strfmon_l.c): Likewise.
(CFLAGS-strfromd.c): Likewise.
(CFLAGS-strfromf.c): Likewise.
(CFLAGS-strfroml.c): Likewise.
(CFLAGS-tst-bsearch.c): Likewise.
(CFLAGS-tst-qsort.c): Likewise.
(CFLAGS-tst-makecontext2.c): Likewise.
* sunrpc/Makefile (CFLAGS-xbootparam_prot.c): Likewise.
(CFLAGS-xnlm_prot.c): Likewise.
(CFLAGS-xrstat.c): Likewise.
(CFLAGS-xyppasswd.c): Likewise.
(CFLAGS-xklm_prot.c): Likewise.
(CFLAGS-xrex.c): Likewise.
(CFLAGS-xsm_inter.c): Likewise.
(CFLAGS-xmount.c): Likewise.
(CFLAGS-xrusers.c): Likewise.
(CFLAGS-xspray.c): Likewise.
(CFLAGS-xnfs_prot.c): Likewise.
(CFLAGS-xrquota.c): Likewise.
(CFLAGS-xkey_prot.c): Likewise.
(CFLAGS-auth_unix.c): Likewise.
(CFLAGS-key_call.c): Likewise.
(CFLAGS-pmap_rmt.c): Likewise.
(CFLAGS-clnt_perr.c): Likewise.
(CFLAGS-openchild.c): Likewise.
* sysvipc/Makefile (CFLAGS-msgrcv.c): Likewise.
(CFLAGS-msgsnd.c): Likewise.
* termios/Makefile (CFLAGS-tcdrain.c): Likewise.
* time/Makefile (CFLAGS-tzfile.c): Likewise.
(CFLAGS-tzset.c): Likewise.
(CFLAGS-getdate.c): Likewise.
(CFLAGS-test_time.c): Likewise.
(CPPFLAGS-tst-tzname.c): Likewise.
* timezone/Makefile (CFLAGS-zdump.c): Likewise.
(CFLAGS-zic.c): Likewise.
* wcsmbs/Makefile (CFLAGS-wcwidth.c): Likewise.
(CFLAGS-wcswidth.c): Likewise.
(CFLAGS-wcstol.c): Likewise.
(CFLAGS-wcstoul.c): Likewise.
(CFLAGS-wcstoll.c): Likewise.
(CFLAGS-wcstoull.c): Likewise.
(CFLAGS-wcstod.c): Likewise.
(CFLAGS-wcstold.c): Likewise.
(CFLAGS-wcstof128.c): Likewise.
(CFLAGS-wcstof.c): Likewise.
(CFLAGS-wcstol_l.c): Likewise.
(CFLAGS-wcstoul_l.c): Likewise.
(CFLAGS-wcstoll_l.c): Likewise.
(CFLAGS-wcstoull_l.c): Likewise.
(CFLAGS-wcstod_l.c): Likewise.
(CFLAGS-wcstold_l.c): Likewise.
(CFLAGS-wcstof128_l.c): Likewise.
(CFLAGS-wcstof_l.c): Likewise.
(CPPFLAGS-tst-wchar-h.c): Likewise.
(CPPFLAGS-wcstold_l.c): Likewise.
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
|
|
|
|
Many headers are expected to expose a subset of the type definitions
in time.h. time.h has a whole bunch of messy logic for conditionally
defining some its types and structs, but, as best I can tell, this
has never worked 100%. In particular, __need_timespec is ineffective
if _TIME_H has already been defined, which means that if you compile
#include <time.h>
#include <sched.h>
with e.g. -fsyntax-only -std=c89 -Wall -Wsystem-headers, you will get
In file included from test.c:2:0:
/usr/include/sched.h:74:57: warning: "struct timespec" declared inside
parameter list will not be visible outside of this definition or declaration
extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
^~~~~~~~
And if you want to _use_ sched_rr_get_interval in a TU compiled that
way, you're hosed.
This patch replaces all of that with small bits/types/TYPE.h headers
as introduced earlier. time.h and bits/time.h are now *much* simpler,
and a lot of other headers are slightly simpler.
* time/time.h, bits/time.h, sysdeps/unix/sysv/linux/bits/time.h:
Remove all logic conditional on __need macros. Move all the
conditionally defined types to their own headers...
* time/bits/types/clock_t.h: Define clock_t here.
* time/bits/types/clockid_t.h: Define clockid_t here.
* time/bits/types/struct_itimerspec.h: Define struct itimerspec here.
* time/bits/types/struct_timespec.h: Define struct timespec here.
* time/bits/types/struct_timeval.h: Define struct timeval here.
* time/bits/types/struct_tm.h: Define struct tm here.
* time/bits/types/time_t.h: Define time_t here.
* time/bits/types/timer_t.h: Define timer_t here.
* time/Makefile: Install the new headers.
* bits/resource.h, io/fcntl.h, io/sys/poll.h, io/sys/stat.h
* io/utime.h, misc/sys/select.h, posix/sched.h, posix/sys/times.h
* posix/sys/types.h, resolv/netdb.h, rt/aio.h, rt/mqueue.h
* signal/signal.h, pthread/semaphore.h, sysdeps/nptl/pthread.h
* sysdeps/unix/sysv/linux/alpha/bits/resource.h
* sysdeps/unix/sysv/linux/alpha/sys/acct.h
* sysdeps/unix/sysv/linux/bits/resource.h
* sysdeps/unix/sysv/linux/bits/timex.h
* sysdeps/unix/sysv/linux/mips/bits/resource.h
* sysdeps/unix/sysv/linux/net/ppp_defs.h
* sysdeps/unix/sysv/linux/sparc/bits/resource.h
* sysdeps/unix/sysv/linux/sys/acct.h
* sysdeps/unix/sysv/linux/sys/timerfd.h
* sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h
* time/sys/time.h, time/sys/timeb.h
Use the new bits/types headers.
* include/time.h: Remove __need logic.
* include/bits/time.h
* include/bits/types/clock_t.h, include/bits/types/clockid_t.h
* include/bits/types/time_t.h, include/bits/types/timer_t.h
* include/bits/types/struct_itimerspec.h
* include/bits/types/struct_timespec.h
* include/bits/types/struct_timeval.h
* include/bits/types/struct_tm.h:
New wrapper headers.
|
|
If the TZDEFRULES file was used to set the DST rules when $TZ didn't
provide any we need to make sure that the next time it is used we
recompute everything as __tzfile_default changes some setting from what is
provided by TZDEFRULES.
|
|
|
|
|
|
|
|
This test verifies the sanity of ftime and exposes bugs such as BZ
2014-09-17 Arjun Shankar <arjun.is@lostca.se>
* time/tst-ftime.c: New test.
* time/Makefile (tests): Add tst-ftime.
|
|