I used these shell commands:
../glibc/scripts/update-copyrights $PWD/../gnulib/build-aux/update-copyright
(cd ../glibc && git commit -am"[this commit message]")
and then ignored the output, which consisted lines saying "FOO: warning:
copyright statement not found" for each of 6694 files FOO.
I then removed trailing white space from benchtests/bench-pthread-locks.c
and iconvdata/tst-iconv-big5-hkscs-to-2ucs4.c, to work around this
diagnostic from Savannah:
remote: *** pre-commit check failed ...
remote: *** error: lines with trailing whitespace found
remote: error: hook declined to update refs/heads/master
The error and warning handling in localedef, locale, and iconv
is a bit of a mess.
We use ugly constructs like this:
WITH_CUR_LOCALE (error (1, errno, gettext ("\
cannot read character map directory `%s'"), directory));
to issue errors, and read error_message_count directly from the
error API to detect errors. The problem with that is that the
code also uses error to print warnings, and informative messages.
All of this leads to problems where just having warnings will
produce an exit status as-if errors had been seen.
To fix this situation I have adopted the following high-level
changes:
* All errors are counted distinctly.
* All warnings are counted distinctly.
* All informative messages are not counted.
* Increasing verbosity cannot generate *more* errors, and
it previously did for errors conditional on verbose,
this is now fixed.
* Increasing verbosity *can* generate *more* warnings.
* Making the output quiet cannot generate *fewer* errors,
and it previously did for errors conditional on be_quiet,
this is now fixed.
* Each of error, warning, and informative message has it's
own function to call defined in record-status.h, and they
are: record_error, record_warning, and record_verbose.
* The record_error function always records an error, but
conditional on be_quiet may not print it.
* The record_warning function always records a warning,
but conditional on be_quiet may not print it.
* The record_verbose function only prints the verbose
message if verbose is true and be_quiet is false.
This has allowed the following fix:
* Previously any warnings were being treated as errors
because they incremented error_message_count, but now
we properly return an exit status of 1 if there are
warnings but output was generated.
All of this allows localedef to correctly decide if errors,
or warnings were present, and produce the correct exit code.
The locale and iconv programs now also use record-status.h
and we have removed the WITH_CUR_LOCALE hack, and instead
have internal push_locale/pop_locale functions centralized
in the record routines.
Signed-off-by: Carlos O'Donell <carlos@redhat.com>
Various glibc build / install / test code has C locale settings that
are redundant with LC_ALL=C.
LC_ALL takes precedence over LANG, so anywhere that sets LC_ALL=C
(explicitly, or through it being in the default environment for
running tests) does not need to set LANG=C. LC_ALL=C also takes
precedence over LANGUAGE, since
2001-01-02 Ulrich Drepper <drepper@redhat.com>
* intl/dcigettext.c (guess_category_value): Rewrite so that LANGUAGE
value is ignored if the selected locale is the C locale.
* intl/tst-gettext.c: Set locale for above change.
* intl/tst-translit.c: Likewise.
and so settings of LANGUAGE=C are also redundant when LC_ALL=C is
set. One test also had LC_ALL=C in its -ENV setting, although it's
part of the default environment used for tests.
This patch removes the redundant settings. It removes a suggestion in
install.texi of setting LANGUAGE=C LC_ALL=C for "make install"; the
Makefile.in target "install" already sets LC_ALL_C so there's no need
for the user to set it (and nor should there be any need for the user
to set it).
If some build machine tool used by "make install" uses a version of
libintl predating that 2001 change, and the user has LANGUAGE set, the
removal of LANGUAGE=C from the Makefile.in "install" rule could in
principle affect the user's installation. However, I don't think we
need to be concerned about pre-2001 build tools.
Tested x86_64.
* Makefile (install): Don't set LANGUAGE.
* Makefile.in (install): Likewise.
* assert/Makefile (test-assert-ENV): Remove variable.
(test-assert-perr-ENV): Likewise.
* elf/Makefile (neededtest4-ENV): Likewise.
* iconvdata/Makefile ($(inst_gconvdir)/gconv-modules)
[$(cross-compiling) = no]: Don't set LANGUAGE.
* io/ftwtest-sh (LANG): Remove variable.
* libio/Makefile (tst-widetext-ENV): Likewise.
* manual/install.texi (Running make install): Don't refer to
environment settings for make install.
* INSTALL: Regenerated.
* nptl/tst-tls6.sh: Don't set LANG.
* posix/globtest.sh (LANG): Remove variable.
* string/Makefile (tester-ENV): Likewise.
(inl-tester-ENV): Likewise.
(noinl-tester-ENV): Likewise.
* sysdeps/s390/s390-64/Makefile ($(inst_gconvdir)/gconv-modules)
[$(cross-compiling) = no]: Don't set LANGUAGE.
* timezone/Makefile (build-testdata): Use $(built-program-cmd)
without explicit environment settings.
localedata/ChangeLog:
* tst-fmon.sh: Don't set LANGUAGE.
* tst-locale.sh: Likewise.
One wart in the original support for test wrappers for cross testing,
as noted in
<https://sourceware.org/ml/libc-alpha/2012-10/msg00722.html>, is the
requirement for test wrappers to pass a poorly-defined set of
environment variables from the build system to the system running the
glibc under test. Although some variables are passed explicitly via
$(test-wrapper-env), including LD_* variables that simply can't be
passed implicitly because of the side effects they'd have on the build
system's dynamic linker, others are passed implicitly, including
variables such as GCONV_PATH and LOCPATH that could potentially affect
the build system's libc (so effectively relying on any such effects
not breaking the wrappers). In addition, the code in
cross-test-ssh.sh for preserving environment variables is fragile (it
depends on how bash formats a list of exported variables, and could
well break for multi-line variable definitions where the contents
contain things looking like other variable definitions).
This patch moves to explicitly passing environment variables via
$(test-wrapper-env). Makefile variables that previously used
$(test-wrapper) are split up into -before-env and -after-env parts
that can be passed separately to the various .sh files used in
testing, so those files can then insert environment settings between
the two parts.
The common default environment settings in make-test-out are made into
a separate makefile variable that can also be passed to scripts,
rather than many scripts duplicating those settings (for testing an
installed glibc, it is desirable to have the GCONV_PATH setting on
just one place, so just that one place needs to support it pointing to
an installed sysroot instead of the build tree). The default settings
are included in the variables such as $(test-program-prefix), so that
if tests do not need any non-default settings they can continue to use
single variables rather than the split-up variables.
Although this patch cleans up LC_ALL=C settings (that being part of
the common defaults), various LANG=C and LANGUAGE=C settings remain.
Those are generally unnecessary and I propose a subsequent cleanup to
remove them. LC_ALL takes precedence over LANG, and while LANGUAGE
takes precedence over LC_ALL, it only does so for settings other than
LC_ALL=C. So LC_ALL=C on its own is sufficient to ensure the C
locale, and anything that gets LC_ALL=C does not need the other
settings.
While preparing this patch I noticed some tests with .sh files that
appeared to do nothing beyond what the generic makefile support for
tests can do (localedata/tst-wctype.sh - the makefiles support -ENV
variables and .input files - and localedata/tst-mbswcs.sh - just runs
five tests that could be run individually from the makefile). So I
propose another subsequent cleanup to move those to using the generic
support instead of special .sh files.
Tested x86_64 (native) and powerpc32 (cross).
* Makeconfig (run-program-env): New variable.
(run-program-prefix-before-env): Likewise.
(run-program-prefix-after-env): Likewise.
(run-program-prefix): Define in terms of new variables.
(built-program-cmd-before-env): New variable.
(built-program-cmd-after-env): Likewise.
(built-program-cmd): Define in terms of new variables.
(test-program-prefix-before-env): New variable.
(test-program-prefix-after-env): Likewise.
(test-program-prefix): Define in terms of new variables.
(test-program-cmd-before-env): New variable.
(test-program-cmd-after-env): Likewise.
(test-program-cmd): Define in terms of new variables.
* Rules (make-test-out): Use $(run-program-env).
* scripts/cross-test-ssh.sh (env_blacklist): Remove variable.
(help): Do not mention environment variables. Mention
--timeoutfactor option.
(timeoutfactor): New variable.
(blacklist_exports): Remove function.
(exports): Remove variable.
(command): Do not include ${exports}.
* manual/install.texi (Configuring and compiling): Do not mention
test wrappers preserving environment variables. Mention that last
assignment to a variable must take precedence.
* INSTALL: Regenerated.
* benchtests/Makefile (run-bench): Use $(run-program-env).
* catgets/Makefile ($(objpfx)test1.cat): Use
$(built-program-cmd-before-env), $(run-program-env) and
$(built-program-cmd-after-env).
($(objpfx)test2.cat): Do not specify environment variables
explicitly.
($(objpfx)de/libc.cat): Use $(built-program-cmd-before-env),
$(run-program-env) and $(built-program-cmd-after-env).
($(objpfx)test-gencat.out): Use $(test-program-cmd-before-env),
$(run-program-env) and $(test-program-cmd-after-env).
($(objpfx)sample.SJIS.cat): Do not specify environment variables
explicitly.
* catgets/test-gencat.sh: Use test_program_cmd_before_env,
run_program_env and test_program_cmd_after_env arguments.
* elf/Makefile ($(objpfx)tst-pathopt.out): Use $(run-program-env).
* elf/tst-pathopt.sh: Use run_program_env argument.
* iconvdata/Makefile ($(objpfx)iconv-test.out): Use
$(test-wrapper-env) and $(run-program-env).
* iconvdata/run-iconv-test.sh: Use test_wrapper_env and
run_program_env arguments.
* iconvdata/tst-table.sh: Do not set GCONV_PATH explicitly.
* intl/Makefile ($(objpfx)tst-gettext.out): Use
$(test-program-prefix-before-env), $(run-program-env) and
$(test-program-prefix-after-env).
($(objpfx)tst-gettext2.out): Likewise.
* intl/tst-gettext.sh: Use test_program_prefix_before_env,
run_program_env and test_program_prefix_after_env arguments.
* intl/tst-gettext2.sh: Likewise.
* intl/tst-gettext4.sh: Do not set environment variables
explicitly.
* intl/tst-gettext6.sh: Likewise.
* intl/tst-translit.sh: Likewise.
* malloc/Makefile ($(objpfx)tst-mtrace.out): Use
$(test-program-prefix-before-env), $(run-program-env) and
$(test-program-prefix-after-env).
* malloc/tst-mtrace.sh: Use test_program_prefix_before_env,
run_program_env and test_program_prefix_after_env arguments.
* math/Makefile (run-regen-ulps): Use $(run-program-env).
* nptl/Makefile ($(objpfx)tst-tls6.out): Use $(run-program-env).
* nptl/tst-tls6.sh: Use run_program_env argument. Set LANG=C
explicitly with each use of ${test_wrapper_env}.
* posix/Makefile ($(objpfx)wordexp-tst.out): Use
$(test-program-prefix-before-env), $(run-program-env) and
$(test-program-prefix-after-env).
* posix/tst-getconf.sh: Do not set environment variables
explicitly.
* posix/wordexp-tst.sh: Use test_program_prefix_before_env,
run_program_env and test_program_prefix_after_env arguments.
* stdio-common/tst-printf.sh: Do not set environment variables
explicitly.
* stdlib/Makefile ($(objpfx)tst-fmtmsg.out): Use
$(test-program-prefix-before-env), $(run-program-env) and
$(test-program-prefix-after-env).
* stdlib/tst-fmtmsg.sh: Use test_program_prefix_before_env,
run_program_env and test_program_prefix_after_env arguments.
Split $test calls into $test_pre and $test.
* timezone/Makefile (build-testdata): Use
$(built-program-cmd-before-env), $(run-program-env) and
$(built-program-cmd-after-env).
localedata/ChangeLog:
* Makefile ($(addprefix $(objpfx),$(CTYPE_FILES))): Use
$(built-program-cmd-before-env), $(run-program-env) and
$(built-program-cmd-after-env).
($(objpfx)sort-test.out): Use $(test-program-prefix-before-env),
$(run-program-env) and $(test-program-prefix-after-env).
($(objpfx)tst-fmon.out): Use $(run-program-prefix-before-env),
$(run-program-env) and $(run-program-prefix-after-env).
($(objpfx)tst-locale.out): Use $(built-program-cmd-before-env),
$(run-program-env) and $(built-program-cmd-after-env).
($(objpfx)tst-trans.out): Use $(run-program-prefix-before-env),
$(run-program-env), $(run-program-prefix-after-env),
$(test-program-prefix-before-env) and
$(test-program-prefix-after-env).
($(objpfx)tst-ctype.out): Use $(test-program-cmd-before-env),
$(run-program-env) and $(test-program-cmd-after-env).
($(objpfx)tst-wctype.out): Likewise.
($(objpfx)tst-langinfo.out): Likewise.
($(objpfx)tst-langinfo-static.out): Likewise.
* gen-locale.sh: Use localedef_before_env, run_program_env and
localedef_after_env arguments.
* sort-test.sh: Use test_program_prefix_before_env,
run_program_env and test_program_prefix_after_env arguments.
* tst-ctype.sh: Use tst_ctype_before_env, run_program_env and
tst_ctype_after_env arguments.
* tst-fmon.sh: Use run_program_prefix_before_env, run_program_env
and run_program_prefix_after_env arguments.
* tst-langinfo.sh: Use tst_langinfo_before_env, run_program_env
and tst_langinfo_after_env arguments.
* tst-locale.sh: Use localedef_before_env, run_program_env and
localedef_after_env arguments.
* tst-mbswcs.sh: Do not set environment variables explicitly.
* tst-numeric.sh: Likewise.
* tst-rpmatch.sh: Likewise.
* tst-trans.sh: Use run_program_prefix_before_env,
run_program_env, run_program_prefix_after_env,
test_program_prefix_before_env and test_program_prefix_after_env
arguments.
* tst-wctype.sh: Use tst_wctype_before_env, run_program_env and
tst_wctype_after_env arguments.
2004-01-01 Petter Reinholdtsen <pere@hungry.com>
* tst-fmon.data: Add simple test to check left justified currency
values in the C locale.
* tst-fmon.sh: Don't print every line. The program already prints
the failing ones.
2003-11-30 Petter Reinholdtsen <pere@hungry.com>
* stdlib/strfmon.c: Correct formatting of international currency
values. The international currency formatting should prefer the
int_* values if they are set for a locale, and use the domestic
values if the int_* values are unset.
2003-06-16 Ulrich Drepper <drepper@redhat.com>
* elf/rtld.c (dl_main): Use l_map_start not l_addr in Phdr
computation so that prelinking wroks.
* inet/netinet/ip6.h (IP6OPT_PAD1, IP6OPT_PADN): Define.
2001-07-06 Paul Eggert <eggert@twinsun.com>
* manual/argp.texi: Remove ignored LGPL copyright notice; it's
not appropriate for documentation anyway.
* manual/libc-texinfo.sh: "Library General Public License" ->
"Lesser General Public License".
2001-07-06 Andreas Jaeger <aj@suse.de>
* All files under GPL/LGPL version 2: Place under LGPL version
2.1.
2000-07-16 Ulrich Drepper <drepper@redhat.com>
* Makefile: Rewrite rules for tests to run them only when necessary.
* sort-test.sh: Produce output for failed tests.
* tst-fmon.sh: Likewise.
* tst-rpmatch.sh: Likewise.
2000-07-12 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_open.c (__gconv_open): Merge duplicated code.
2000-07-12 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_builtin.c (__gconv_get_builtin_trans): Initialize
__modname.
2000-07-12 Bruno Haible <haible@clisp.cons.org>
* iconv/gconv_open.c (__gconv_open): Initialize
result->__steps[cnt].__data.
2000-07-12 Mark Kettenis <kettenis@gnu.org>
* nss/getent.c (services_keys): Pass port number in network byte
order in call to getservbyport.
2000-07-11 Andreas Jaeger <aj@suse.de>
* stdlib/Makefile (test-canon-ARGS): Fix for building in the
source dir.
* intl/Makefile (do-gettext-test): Likewise.
* dirent/Makefile (opendir-tst1-ARGS): Likewise.
2000-07-11 Andreas Schwab <schwab@suse.de>
* Makeconfig (run-program-prefix): New rule.
(built-program-cmd): Use run-program-prefix.
2000-04-09 Ulrich Drepper <drepper@redhat.com>
* localedata/Makefile: Add rules to clean up directories created by
new strfmon tests.
2000-04-09 Geoff Clare <gwc@unisoft.com>
* localedata/tst-fmon.data: Added new tests for strfmon()
using test locales with all combinations of cs_precedes,
sign_posn and sep_by_space.
* localedata/tst-fmon.sh: Updated to support the new tests.
* localedata/tst-fmon-locales/tstfmon_n01y12: New file containing
the localedef source for the new strfmon() test locale.
* localedata/tst-fmon-locales/tstfmon_n02n40: Likewise.
* localedata/tst-fmon-locales/tstfmon_n10y31: Likewise.
* localedata/tst-fmon-locales/tstfmon_n11y41: Likewise.
* localedata/tst-fmon-locales/tstfmon_n12y11: Likewise.
* localedata/tst-fmon-locales/tstfmon_n20n32: Likewise.
* localedata/tst-fmon-locales/tstfmon_n30y20: Likewise.
* localedata/tst-fmon-locales/tstfmon_n41n00: Likewise.
* localedata/tst-fmon-locales/tstfmon_y01y10: Likewise.
* localedata/tst-fmon-locales/tstfmon_y02n22: Likewise.
* localedata/tst-fmon-locales/tstfmon_y22n42: Likewise.
* localedata/tst-fmon-locales/tstfmon_y30y21: Likewise.
* localedata/tst-fmon-locales/tstfmon_y32n31: Likewise.
* localedata/tst-fmon-locales/tstfmon_y40y00: Likewise.
* localedata/tst-fmon-locales/tstfmon_y42n21: Likewise.
* stdlib/strfmon.c: Correct problems with missing or extra
spaces for unusual combinations of sign_posn and sep_by_space.
Improved left-precision alignment code.
1998-02-24 15:12 Ulrich Drepper <drepper@cygnus.com>
* Makeconfig: Filter out frame-pointer effecting options when
compiling profiling or debugging code.
* config.h.in (internal_function): Don't define here if PROF is
defined.
* gmon/gmon.c (__moncontrol): Don't change state if already in error
state.
(__monstartup): If calloc fails set error state and mark array as
not allocated.
(_mcleanup): Don't call write_gmon if in error state. Don't try
to free array if not successfully allocated.
* elf/dl-load.c (STRING): Define to __STRING to enble expansion.
Include elf.h to get macro definitions.
Use __ELF?NATIVE?CLASS in message, not __ELF_WORDSIZE.
1998-02-24 09:40 Ulrich Drepper <drepper@cygnus.com>
* elf/ldd.sh.in: Add compatibility for broken old shells.
* elf/ldd.bash.in: Likewise.
1998-02-24 08:11 H.J. Lu <hjl@gnu.org>
* sunrpc/rpc_main.c (open_input): Check pipe return error.
* time/clocktest.c (main): Check signal return error.
1998-02-24 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* iconv/Makefile ($(inst_bindir)/iconv): Correct typo, add
"/" and use do-install-program. Reported by Mark M. Kettenis.
(subdir_install): Likewise.
1998-02-22 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc_sample.c: Fix typo.
* nscd/connections.c: Use locale.
* nscd/grpcache.c: Add debug messages, gidtbl should get the
calloc result.
* nscd/nscd.c: Check if init functions fails.
* nscd/nscd_conf.c: Allow disabling of group cache.
* nscd/nscd_getgr_r.c: Fix return code if group not found.
* nscd/pwdcache.c: Fix debug messages.
1998-02-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* libc.map: Add __monstartup and _mcleanup for profiling support.
1998-02-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* libc.map: Export __getpagesize, for binary compatibility with
2.0.
1998-02-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* posix/globtest.sh: Use --library-path instead of
LD_LIBRARY_PATH.
* localedata/sort-test.sh: Likewise.
* localedata/tst-fmon.sh: Likewise. Avoid useless use of cat.
1998-02-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/sigaction.c: Translate between struct
sigaction and struct kernel_sigaction for __syscall_rt_sigaction.
* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/kernel_sigaction.h (struct
kernel_sigaction): Define.
* sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h (struct
kernel_sigaction): Define.
1998-02-23 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* math/libm-test.c: Change epsilons for libm-ieee754.
1998-02-23 12:33 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/__longjmp.S: Fix race condition.
Reported by Bruno Haible <haible@ilog.fr>.
1997-10-09 04:56 Ulrich Drepper <drepper@cygnus.com>
* locales/is_IS: Update from Debian version.
1997-08-29 03:16 Ulrich Drepper <drepper@cygnus.com>
* tst-fmon.c: New file. strfmon test program.
* tst-fmon.sh: New file. Script to run strfmon test.
* fmon-de_DE.exp: New file. Expected result of strfmon test for de_DE.
* fmon-en_US.exp: New file. Expected result of strfmon test for en_US.
* locales/cs_CZ: Update from author.
1997-08-29 02:36 Ulrich Drepper <drepper@cygnus.com>
* Makefile (version-info.h): Use ISO form for the date.
* catgets/catgetsinfo.h: Include <bits/libc-lock.h>.
(struct catalog_obj): Add lock field.
(__open_catalog): Remove second parameter from prototype.
* catgets/catgets.c (catopen): Initialize lock field.
(catgets): Don't pass second parameter to __open_catalog.
* catgets/gencat.c: Initialize lock field and don't pass second
parameter to __open_catalog.
* catgets/open_catalog.c (__open_catalog): Decide about use of
path by examining path in struct, not based on extra argument.
Acquire a the lock before trying to load the catalog and release
it before returning.
* csu/Makefile (abi-tag.h): Make sure target directory exists.
* io/Makefile (headers): Add bits/poll.h.
* io/sys/poll.h: Remove definitions of POLL* constants.
Include <bits/poll.h>.
* sysdeps/generic/bits/poll.h: New file.
* sysdeps/unix/sysv/linux/bits/poll.h: New file.
* sysdeps/unix/sysv/linux/m68k/bits/poll.h: New file.
* sysdeps/unix/sysv/linux/mips/bits/poll.h: New file.
* sysdeps/unix/sysv/linux/sparc/bits/poll.h: New file.
* libio/fileops.c (_IO_file_read, _IO_file_write): Remove dead code.
* malloc/obstack.c: Add casts to keep very verbose compilers on
64bit machine quiet.
* nss/Makefile (libnss_db.so): Find libdb.so in db2 directory.
1997-08-28 17:30 Ulrich Drepper <drepper@cygnus.com>
* catgets/catgets.c (catopen): Correctly determine length of string
in NLSPATH evironment variable. Patch by HJ Lu <hjl@gnu.ai.mit.edu>.
1997-08-27 23:19 Richard Henderson <rth@cygnus.com>
* sysdeps/generic/dl-sysdep.c (DL_FIND_ARG_COMPONENTS): Provide
default macro to track down arguments from stack start.
(_dl_sysdep_start): Use it.
* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Truncate to simply
providing a special DL_FIND_ARG_COMPONENTS and including the next
file up the line.
* sysdeps/powerpc/e_sqrt.c: Move contents to w_sqrt.c and provide stub.
* sysdeps/powerpc/e_sqrtf.c: Likewise.
* sysdeps/powerpc/s_copysignf.S: Provide empty file; symbol is with
the double precision version.
* sysdeps/powerpc/s_fabsf.S: Likewise.
* sysdeps/powerpc/s_isnanf.S: Likewise.