From 686554bff63dff0f8b20c84e9bdca45e643f9d9c Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Sat, 7 Jun 2014 19:58:36 +0000 Subject: [PATCH] Remove redundant C locale settings. 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 * 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. --- ChangeLog | 24 ++++++++++++++++++++++++ INSTALL | 12 ++++++------ Makefile | 2 +- Makefile.in | 2 +- assert/Makefile | 3 --- elf/Makefile | 1 - iconvdata/Makefile | 2 +- io/ftwtest-sh | 2 -- libio/Makefile | 1 - localedata/ChangeLog | 5 +++++ localedata/tst-fmon.sh | 2 +- localedata/tst-locale.sh | 2 +- manual/install.texi | 2 +- nptl/tst-tls6.sh | 10 +++++----- posix/globtest.sh | 2 -- string/Makefile | 3 --- sysdeps/s390/s390-64/Makefile | 2 +- timezone/Makefile | 3 +-- 18 files changed, 48 insertions(+), 32 deletions(-) diff --git a/ChangeLog b/ChangeLog index 79c68fc4bc..d508d741e9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,27 @@ +2014-06-07 Joseph Myers + + * 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. + 2014-06-06 Roland McGrath * nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Moved ... diff --git a/INSTALL b/INSTALL index 63630b8bbe..9ed4202923 100644 --- a/INSTALL +++ b/INSTALL @@ -254,12 +254,12 @@ Installing the C Library ======================== To install the library and its header files, and the Info files of the -manual, type `env LANGUAGE=C LC_ALL=C make install'. This will build -things, if necessary, before installing them; however, you should still -compile everything first. If you are installing the GNU C Library as -your primary C library, we recommend that you shut the system down to -single-user mode first, and reboot afterward. This minimizes the risk -of breaking things when the library changes out from underneath. +manual, type `make install'. This will build things, if necessary, +before installing them; however, you should still compile everything +first. If you are installing the GNU C Library as your primary C +library, we recommend that you shut the system down to single-user mode +first, and reboot afterward. This minimizes the risk of breaking +things when the library changes out from underneath. `make install' will do the entire job of upgrading from a previous installation of the GNU C Library version 2.x. There may sometimes be diff --git a/Makefile b/Makefile index 2eab98c3f6..ad180347e1 100644 --- a/Makefile +++ b/Makefile @@ -105,7 +105,7 @@ install-symbolic-link: subdir_install rm -f $(symbolic-link-list) install: - -test ! -x $(elf-objpfx)ldconfig || LC_ALL=C LANGUAGE=C \ + -test ! -x $(elf-objpfx)ldconfig || LC_ALL=C \ $(elf-objpfx)ldconfig $(addprefix -r ,$(install_root)) \ $(slibdir) $(libdir) ifneq (no,$(PERL)) diff --git a/Makefile.in b/Makefile.in index 945bc32d4d..710ce7e2c2 100644 --- a/Makefile.in +++ b/Makefile.in @@ -9,7 +9,7 @@ all .DEFAULT: $(MAKE) -r PARALLELMFLAGS="$(PARALLELMFLAGS)" -C $(srcdir) objdir=`pwd` $@ install: - LANGUAGE=C LC_ALL=C; export LANGUAGE LC_ALL; \ + LC_ALL=C; export LC_ALL; \ $(MAKE) -r PARALLELMFLAGS="$(PARALLELMFLAGS)" -C $(srcdir) objdir=`pwd` $@ bench bench-clean: diff --git a/assert/Makefile b/assert/Makefile index 97fb476cd6..3ed21be147 100644 --- a/assert/Makefile +++ b/assert/Makefile @@ -28,6 +28,3 @@ routines := assert assert-perr __assert tests := test-assert test-assert-perr include ../Rules - -test-assert-ENV = LANGUAGE=C -test-assert-perr-ENV = LANGUAGE=C diff --git a/elf/Makefile b/elf/Makefile index eb16c5998c..a2f5ce5c47 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -591,7 +591,6 @@ $(objpfx)neededtest3: $(libdl) $(objpfx)neededtest3.out: $(objpfx)neededobj1.so $(objpfx)neededobj2.so \ $(objpfx)neededobj3.so $(objpfx)neededobj4.so -neededtest4-ENV = LC_ALL=C LANGUAGE=C $(objpfx)neededtest4: $(libdl) $(objpfx)neededobj1.so $(objpfx)neededtest4.out: $(objpfx)neededobj5.so $(objpfx)neededobj6.so diff --git a/iconvdata/Makefile b/iconvdata/Makefile index 8fb746e1d5..424e8ee049 100644 --- a/iconvdata/Makefile +++ b/iconvdata/Makefile @@ -251,7 +251,7 @@ ifeq (no,$(cross-compiling)) # Update the $(prefix)/lib/gconv/gconv-modules.cache file. This is necessary # if this libc has more gconv modules than the previously installed one. if test -f "$(inst_gconvdir)/gconv-modules.cache"; then \ - LC_ALL=C LANGUAGE=C \ + LC_ALL=C \ $(elf-objpfx)ld.so --library-path $(rpath-link) \ $(common-objpfx)iconv/iconvconfig \ $(addprefix --prefix=,$(install_root)); \ diff --git a/io/ftwtest-sh b/io/ftwtest-sh index db1c6bcc32..3a9e8f4a6b 100644 --- a/io/ftwtest-sh +++ b/io/ftwtest-sh @@ -40,8 +40,6 @@ fi # Since we use `sort' we must make sure to use the same locale everywhere. LC_ALL=C export LC_ALL -LANG=C -export LANG # First create our scenario: tmp=${objpfx}io diff --git a/libio/Makefile b/libio/Makefile index 4552360c49..56952ce744 100644 --- a/libio/Makefile +++ b/libio/Makefile @@ -148,7 +148,6 @@ CFLAGS-tst_putwc.c = -DOBJPFX=\"$(objpfx)\" tst_wprintf2-ARGS = "Some Text" -tst-widetext-ENV = LANGUAGE=C tst-fopenloc-ENV = MALLOC_TRACE=$(objpfx)tst-fopenloc.mtrace generated += tst-fopenloc.mtrace tst-fopenloc.check diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 7d91d38314..666b6dcbe7 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,3 +1,8 @@ +2014-06-07 Joseph Myers + + * tst-fmon.sh: Don't set LANGUAGE. + * tst-locale.sh: Likewise. + 2014-06-06 Joseph Myers * Makefile ($(addprefix $(objpfx),$(CTYPE_FILES))): Use diff --git a/localedata/tst-fmon.sh b/localedata/tst-fmon.sh index 7f1b2488a2..275428e5c2 100755 --- a/localedata/tst-fmon.sh +++ b/localedata/tst-fmon.sh @@ -37,7 +37,7 @@ for cns in `cd ./tst-fmon-locales && ls tstfmon_*`; do fn=charmaps/ISO-8859-1 ${run_program_prefix_before_env} \ ${run_program_env} \ - I18NPATH=. LANGUAGE=C \ + I18NPATH=. \ ${run_program_prefix_after_env} ${common_objpfx}locale/localedef \ --quiet -i $cn -f $fn ${common_objpfx}localedata/$cns done diff --git a/localedata/tst-locale.sh b/localedata/tst-locale.sh index 7c71dcf72c..7942a69ac6 100755 --- a/localedata/tst-locale.sh +++ b/localedata/tst-locale.sh @@ -36,7 +36,7 @@ test_locale () fi ${localedef_before_env} \ ${run_program_env} \ - I18NPATH=. LANGUAGE=C \ + I18NPATH=. \ ${localedef_after_env} --quiet -c -f $charmap -i $input \ ${rep} ${common_objpfx}localedata/$out diff --git a/manual/install.texi b/manual/install.texi index 08851e1d5b..6ca3ea161a 100644 --- a/manual/install.texi +++ b/manual/install.texi @@ -291,7 +291,7 @@ the last assignment specified must take precedence. @cindex installing To install the library and its header files, and the Info files of the -manual, type @code{env LANGUAGE=C LC_ALL=C make install}. This will +manual, type @code{make install}. This will build things, if necessary, before installing them; however, you should still compile everything first. If you are installing @theglibc{} as your primary C library, we recommend that you shut the system down to diff --git a/nptl/tst-tls6.sh b/nptl/tst-tls6.sh index 2d31826c7f..846c3219e5 100755 --- a/nptl/tst-tls6.sh +++ b/nptl/tst-tls6.sh @@ -36,7 +36,7 @@ for aligned in a e f; do echo "preload tst-tls5mod{$aligned,b,c,d}.so" >> $logfile echo "===============" >> $logfile ${test_wrapper_env} \ - ${run_program_env} LANG=C \ + ${run_program_env} \ LD_PRELOAD="`echo ${common_objpfx}nptl/tst-tls5mod{$aligned,b,c,d}.so \ | sed 's/:$//;s/: /:/g'`" ${tst_tls5} >> $logfile || fail=1 echo >> $logfile @@ -44,7 +44,7 @@ for aligned in a e f; do echo "preload tst-tls5mod{b,$aligned,c,d}.so" >> $logfile echo "===============" >> $logfile ${test_wrapper_env} \ - ${run_program_env} LANG=C \ + ${run_program_env} \ LD_PRELOAD="`echo ${common_objpfx}nptl/tst-tls5mod{b,$aligned,c,d}.so \ | sed 's/:$//;s/: /:/g'`" ${tst_tls5} >> $logfile || fail=1 echo >> $logfile @@ -52,7 +52,7 @@ for aligned in a e f; do echo "preload tst-tls5mod{b,c,d,$aligned}.so" >> $logfile echo "===============" >> $logfile ${test_wrapper_env} \ - ${run_program_env} LANG=C \ + ${run_program_env} \ LD_PRELOAD="`echo ${common_objpfx}nptl/tst-tls5mod{b,c,d,$aligned}.so \ | sed 's/:$//;s/: /:/g'`" ${tst_tls5} >> $logfile || fail=1 echo >> $logfile @@ -61,7 +61,7 @@ done echo "preload tst-tls5mod{d,a,b,c,e}" >> $logfile echo "===============" >> $logfile ${test_wrapper_env} \ -${run_program_env} LANG=C \ +${run_program_env} \ LD_PRELOAD="`echo ${common_objpfx}nptl/tst-tls5mod{d,a,b,c,e}.so \ | sed 's/:$//;s/: /:/g'`" ${tst_tls5} >> $logfile || fail=1 echo >> $logfile @@ -69,7 +69,7 @@ echo >> $logfile echo "preload tst-tls5mod{d,a,b,e,f}" >> $logfile echo "===============" >> $logfile ${test_wrapper_env} \ -${run_program_env} LANG=C \ +${run_program_env} \ LD_PRELOAD="`echo ${common_objpfx}nptl/tst-tls5mod{d,a,b,e,f}.so \ | sed 's/:$//;s/: /:/g'`" ${tst_tls5} >> $logfile || fail=1 echo >> $logfile diff --git a/posix/globtest.sh b/posix/globtest.sh index d76fc6c772..77f00940ef 100755 --- a/posix/globtest.sh +++ b/posix/globtest.sh @@ -40,8 +40,6 @@ esac # Since we use `sort' we must make sure to use the same locale everywhere. LC_ALL=C export LC_ALL -LANG=C -export LANG # Create the arena testdir=${common_objpfx}posix/globtest-dir diff --git a/string/Makefile b/string/Makefile index 70b9c19b1b..98c2961db5 100644 --- a/string/Makefile +++ b/string/Makefile @@ -64,9 +64,6 @@ endif include ../Rules -tester-ENV = LANGUAGE=C -inl-tester-ENV = LANGUAGE=C -noinl-tester-ENV = LANGUAGE=C CFLAGS-inl-tester.c = -fno-builtin CFLAGS-noinl-tester.c = -fno-builtin CFLAGS-tst-strlen.c = -fno-builtin diff --git a/sysdeps/s390/s390-64/Makefile b/sysdeps/s390/s390-64/Makefile index 9fee71b515..4e69e90378 100644 --- a/sysdeps/s390/s390-64/Makefile +++ b/sysdeps/s390/s390-64/Makefile @@ -76,7 +76,7 @@ ifeq (no,$(cross-compiling)) # Update the $(prefix)/lib/gconv/gconv-modules.cache file. This is necessary # if this libc has more gconv modules than the previously installed one. if test -f "$(inst_gconvdir)/gconv-modules.cache"; then \ - LC_ALL=C LANGUAGE=C \ + LC_ALL=C \ $(elf-objpfx)ld.so --library-path $(rpath-link) \ $(common-objpfx)iconv/iconvconfig \ $(addprefix --prefix=,$(install_root)); \ diff --git a/timezone/Makefile b/timezone/Makefile index d10c3a511e..6e008bc956 100644 --- a/timezone/Makefile +++ b/timezone/Makefile @@ -80,8 +80,7 @@ CFLAGS-scheck.c = -Wno-strict-prototypes -DNOID -DHAVE_GETTEXT # Don't add leapseconds here since test-tz made checks that work only without # leapseconds. define build-testdata -$(built-program-cmd-before-env) $(run-program-env) LANGUAGE=C \ - $(built-program-cmd-after-env) -d $(testdata) -y ./yearistype $<; \ +$(built-program-cmd) -d $(testdata) -y ./yearistype $<; \ $(evaluate-test) endef