diff options
-rw-r--r-- | ChangeLog | 86 | ||||
-rw-r--r-- | Makerules | 29 | ||||
-rw-r--r-- | config.make.in | 4 | ||||
-rwxr-xr-x | configure | 42 | ||||
-rw-r--r-- | configure.in | 10 | ||||
-rw-r--r-- | db/Makefile | 1 | ||||
-rw-r--r-- | elf/Makefile | 15 | ||||
-rw-r--r-- | extra-lib.mk | 2 | ||||
-rw-r--r-- | hesiod/Makefile | 1 | ||||
-rw-r--r-- | iconvdata/Makefile | 207 | ||||
-rw-r--r-- | linuxthreads/Makefile | 1 | ||||
-rw-r--r-- | locale/Makefile | 1 | ||||
-rw-r--r-- | login/Makefile | 1 | ||||
-rw-r--r-- | login/README.utmpd | 7 | ||||
-rw-r--r-- | math/Makefile | 2 | ||||
-rw-r--r-- | md5-crypt/Makefile | 3 | ||||
-rw-r--r-- | nis/Makefile | 3 | ||||
-rw-r--r-- | nss/Makefile | 3 | ||||
-rw-r--r-- | posix/wordexp-test.c | 10 | ||||
-rw-r--r-- | resolv/Makefile | 2 | ||||
-rw-r--r-- | rt/Makefile | 2 | ||||
-rw-r--r-- | sunrpc/Makefile | 9 | ||||
-rw-r--r-- | sysdeps/generic/setenv.c | 20 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/bits/socket.h | 2 | ||||
-rw-r--r-- | time/tzfile.c | 9 | ||||
-rw-r--r-- | time/tzset.c | 18 | ||||
-rw-r--r-- | wcsmbs/wcsmbsload.c | 3 |
27 files changed, 287 insertions, 206 deletions
diff --git a/ChangeLog b/ChangeLog index 5566a7f75d..75a2941ece 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,89 @@ +1998-05-15 14:36 Ulrich Drepper <drepper@cygnus.com> + + * posix/wordexp-test.c: Avoid duplicate messages. + + * sysdeps/generic/setenv.c: Use __tfind and __tsearch, not tfind and + tsearch. Correctly interpret values returned by those functions. + (unsetenv): Store pointer to string, not pointer to string pointer. + + * time/tzfile.c (__tzfile_compute): Take new arguments. Store + DST information and offset in them. + * time/tzset.c (__tz_convert): Pass extra parameters to + __tzfile_compute. Compute equivalent values for use of tz_rules. + +1998-05-15 00:49:11 Zack Weinberg <zack@rabi.phys.columbia.edu> + + * iconvdata/Makefile (gen-8bit-table): Use move-if-change and + stamp files to avoid unnecessary recompilation. + (gen-8bit-gap-table): Likewise. + (move-if-change): New variable. + (all generated .h rules): Change to be .stmp rules. + (%.h): New rule; depend on %.stmp; no commands. + (distribute): Add gen-8bit.sh, gen-8bit-gap.sh, + gen-8bit-gap-1.sh. + +1998-05-15 01:09 Zack Weinberg <zack@rabi.phys.columbia.edu> + + * Makerules (libc-map): Deleted. + (load-map-file): Set to the appropriate compiler switch, not + just the file name. If libfoo-map is not set, look for a + libfoo.map in the current directory and $(..). + (map-file): New variable, contains just the mapfile name. + (build-shlib): Adjust for new value of load-map-file. + (libc.so): Correct dependencies. + + * extra-lib.mk: Correct shlib dependencies since libfoo-map + may not be set anymore. + + * elf/Makefile: Set ld-map to $(..)libc.map, not $(libc-map). + Delete libdl-map. Tweak ld.so link rule to work with changed + variable settings in Makerules. + * iconvdata/Makefile: Tweak build-module to work with changed + variable settings in Makerules. + + * db/Makefile: Delete libdb-map. + * hesiod/Makefile: Delete libnss_hesiod-map. + * linuxthreads/Makefile: Delete libpthread-map. + * locale/Makefile: Delete libBrokenLocale-map. + * login/Makefile: Delete libutil-map. + * math/Makefile: Delete libm-map. + * md5-crypt/Makefile: Delete libcrypt-map. + * nis/Makefile: Delete libnsl-map, libnss_nis-map, + libnss_nisplus-map, and libnss_compat-map. + * nss/Makefile: Delete libnss_files-map, libnss_db-map, and + libnss_ldap-map. + * resolv/Makefile: Delete libresolv-map and libnss_dns-map. + * rt/Makefile: Delete librt-map. + +1998-05-15 01:06 Zack Weinberg <zack@rabi.phys.columbia.edu> + + * configure.in: Instead of substituting `yes' or `no' for whether + --no-whole-archive is available, set @no_whole_archive@ to the + appropriate gcc switch or the empty string. Likewise for + -fno-exceptions. + * config.make.in: Replace have-no-whole-archive with + no-whole-archive and have-no-exceptions with no-exceptions. + * Makerules: Delete stanzas setting no-whole-archive and + no-exceptions. + + * sunrpc/Makefile: Use move-if-change to update generated .h + and .c files. + +1998-05-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * wcsmbs/wcsmbsload.c (extract_charset_name): Use strcspn instead + of strchr loop. + +1998-05-15 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * time/tzfile.c (__tzfile_read): Remove unused variable info. + (__tzfile_compute): Likewise. + +1998-05-15 Andreas Jaeger <aj@arthur.rhein-neckar.de> + + * sysdeps/unix/sysv/linux/bits/socket.h (AF_SNA,PF_SNA): Add new + defines from Linux 2.1.102. + 1998-05-14 23:14 Ulrich Drepper <drepper@cygnus.com> * locale/programs/ld-ctype.c: Write correct mb_cur_max value. diff --git a/Makerules b/Makerules index 223442cbfe..dadafdbc88 100644 --- a/Makerules +++ b/Makerules @@ -325,9 +325,9 @@ ifeq (yes,$(build-shared)) # Reference map file only when versioning is selected and a map file name # is given. ifeq ($(versioning),yes) -load-map-file = $($(@F:%.so=%)-map) -else -load-map-file = +map-file = $(firstword $(wildcard \ + $($(@F:.so=-map)) $(@F:.so=.map) $(..)$(@F:.so=.map))) +load-map-file = $(map-file:%=-Wl,--version-script=%) endif # Pattern rule to build a shared object from an archive of PIC objects. @@ -338,12 +338,6 @@ endif lib%.so: lib%_pic.a $(+preinit) $(+postinit) $(build-shlib) -ifeq ($(have-no-whole-archive),yes) -no-whole-archive = -Wl,--no-whole-archive -else -no-whole-archive = -endif - ifeq ($(elf),yes) interp-obj = $(common-objpfx)elf/interp.os $(common-objpfx)libc.so: $(interp-obj) @@ -352,12 +346,12 @@ endif define build-shlib $(LINK.o) -shared -o $@ $(sysdep-LDFLAGS) $(config-LDFLAGS) \ - -B$(csu-objpfx) $(load-map-file:%=-Wl,--version-script=%) \ + -B$(csu-objpfx) $(load-map-file) \ -Wl,-soname=lib$(libprefix)$(@F:lib%.so=%).so$($(@F)-version) \ $(LDFLAGS.so) $(LDFLAGS-$(@F:lib%.so=%).so) \ -L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link) \ -Wl,--whole-archive \ - $(filter-out $($(@F:.so=)-map) $(+preinit) $(+postinit),$^) \ + $(filter-out $(map-file) $(+preinit) $(+postinit),$^) \ $(no-whole-archive) $(LDLIBS-$(@F:lib%.so=%).so) endef @@ -385,8 +379,6 @@ LDFLAGS-c.so = -nostdlib -nostartfiles LDLIBS-c.so = $(gnulib) # Give libc.so an entry point and make it directly runnable itself. LDFLAGS-c.so += -e __libc_main -# We have a versioning file for libc.so. -libc-map = $(..)libc.map # Pre-link the objects of libc_pic.a so that we can locally resolve # COMMON symbols before we link against ld.so. This is because ld.so # contains some of libc_pic.a already, which will prevent the COMMONs @@ -399,7 +391,7 @@ $(common-objpfx)libc_pic.os: $(common-objpfx)libc_pic.a $(common-objpfx)libc.so: $(elfobjdir)/soinit.os \ $(common-objpfx)libc_pic.os \ $(elfobjdir)/sofini.os $(elfobjdir)/ld.so \ - $(libc-map) + $(..)libc.map $(build-shlib) common-generated += libc.so libc_pic.os ifdef libc.so-version @@ -409,15 +401,6 @@ common-generated += libc.so$(libc.so-version) endif endif -# Some files must not be compiled with the exception handler mechanism -# enabled (introduced in gcc-2.8). Use $(no-exceptions) in the -# appropriate CFLAGS definition. -ifeq ($(have-no-exceptions),yes) -no-exceptions = -fno-exceptions -else -no-exceptions = -endif - # Figure out the source filenames in this directory. override sources := $(addsuffix .c,$(filter-out $(elided-routines),\ diff --git a/config.make.in b/config.make.in index d23ee8dbd8..0a76b10ede 100644 --- a/config.make.in +++ b/config.make.in @@ -37,9 +37,9 @@ need-nopic-initfini = @nopic_initfini@ with-cvs = @with_cvs@ versioning = @VERSIONING@ +no-whole-archive = @no_whole_archive@ +no-exceptions = @no_exceptions@ -have-no-whole-archive = @libc_cv_ld_no_whole_archive@ -have-no-exceptions = @libc_cv_gcc_no_exceptions@ have-bash2 = @libc_cv_have_bash2@ have-ksh = @libc_cv_have_ksh@ diff --git a/configure b/configure index 5e6f231bd1..cb9c48f279 100755 --- a/configure +++ b/configure @@ -2523,9 +2523,12 @@ rm -f conftest* fi echo "$ac_t""$libc_cv_ld_no_whole_archive" 1>&6 +if test $libc_cv_ld_no_whole_archive = yes; then + no_whole_archive=-Wl,--no-whole-archive +fi echo $ac_n "checking for gcc -fno-exceptions""... $ac_c" 1>&6 -echo "configure:2529: checking for gcc -fno-exceptions" >&5 +echo "configure:2532: checking for gcc -fno-exceptions" >&5 if eval "test \"`echo '$''{'libc_cv_gcc_no_exceptions'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2536,7 +2539,7 @@ __throw () {} EOF if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles -fno-exceptions - -o conftest conftest.c 1>&5'; { (eval echo configure:2540: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + -o conftest conftest.c 1>&5'; { (eval echo configure:2543: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_gcc_no_exceptions=yes else libc_cv_gcc_no_exceptions=no @@ -2545,17 +2548,20 @@ rm -f conftest* fi echo "$ac_t""$libc_cv_gcc_no_exceptions" 1>&6 +if test $libc_cv_ld_no_whole_archive = yes; then + no_exceptions=-fno-exceptions +fi if test "$base_machine" = alpha ; then echo $ac_n "checking for function ..ng prefix""... $ac_c" 1>&6 -echo "configure:2552: checking for function ..ng prefix" >&5 +echo "configure:2558: checking for function ..ng prefix" >&5 if eval "test \"`echo '$''{'libc_cv_gcc_alpha_ng_prefix'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.c <<\EOF foo () { } EOF -if { ac_try='${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null'; { (eval echo configure:2559: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; +if { ac_try='${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null'; { (eval echo configure:2565: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_gcc_alpha_ng_prefix=yes else @@ -2582,19 +2588,19 @@ if test "$host_cpu" = powerpc ; then # Check for a bug present in at least versions 2.8.x of GCC # and versions 1.0.x of EGCS. echo $ac_n "checking whether clobbering cr0 causes problems""... $ac_c" 1>&6 -echo "configure:2586: checking whether clobbering cr0 causes problems" >&5 +echo "configure:2592: checking whether clobbering cr0 causes problems" >&5 if eval "test \"`echo '$''{'libc_cv_c_asmcr0_bug'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 2591 "configure" +#line 2597 "configure" #include "confdefs.h" int tester(int x) { asm ("" : : : "cc"); return x & 123; } int main() { ; return 0; } EOF -if { (eval echo configure:2598: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* libc_cv_c_asmcr0_bug='no' else @@ -2616,12 +2622,12 @@ fi fi echo $ac_n "checking for DWARF2 unwind info support""... $ac_c" 1>&6 -echo "configure:2620: checking for DWARF2 unwind info support" >&5 +echo "configure:2626: checking for DWARF2 unwind info support" >&5 if eval "test \"`echo '$''{'libc_cv_gcc_dwarf2_unwind_info'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.c <<EOF -#line 2625 "configure" +#line 2631 "configure" static char __EH_FRAME_BEGIN__; _start () { @@ -2648,7 +2654,7 @@ __bzero () {} EOF if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame_info -nostdlib -nostartfiles - -o conftest conftest.c -lgcc >&5'; { (eval echo configure:2652: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + -o conftest conftest.c -lgcc >&5'; { (eval echo configure:2658: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_gcc_dwarf2_unwind_info=static else libc_cv_gcc_dwarf2_unwind_info=no @@ -2656,7 +2662,7 @@ fi if test $libc_cv_gcc_dwarf2_unwind_info = no; then if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame -nostdlib -nostartfiles - -o conftest conftest.c -lgcc >&5'; { (eval echo configure:2660: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + -o conftest conftest.c -lgcc >&5'; { (eval echo configure:2666: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then libc_cv_gcc_dwarf2_unwind_info=yes else libc_cv_gcc_dwarf2_unwind_info=no @@ -2730,7 +2736,7 @@ if test "$uname" = "sysdeps/generic"; then fi echo $ac_n "checking OS release for uname""... $ac_c" 1>&6 -echo "configure:2734: checking OS release for uname" >&5 +echo "configure:2740: checking OS release for uname" >&5 if eval "test \"`echo '$''{'libc_cv_uname_release'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2752,7 +2758,7 @@ echo "$ac_t""$libc_cv_uname_release" 1>&6 uname_release="$libc_cv_uname_release" echo $ac_n "checking OS version for uname""... $ac_c" 1>&6 -echo "configure:2756: checking OS version for uname" >&5 +echo "configure:2762: checking OS version for uname" >&5 if eval "test \"`echo '$''{'libc_cv_uname_version'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2774,7 +2780,7 @@ else fi echo $ac_n "checking stdio selection""... $ac_c" 1>&6 -echo "configure:2778: checking stdio selection" >&5 +echo "configure:2784: checking stdio selection" >&5 case $stdio in libio) cat >> confdefs.h <<\EOF @@ -2786,7 +2792,7 @@ esac echo "$ac_t""$stdio" 1>&6 echo $ac_n "checking ldap selection""... $ac_c" 1>&6 -echo "configure:2790: checking ldap selection" >&5 +echo "configure:2796: checking ldap selection" >&5 case $add_ons in *ldap*) @@ -2837,7 +2843,7 @@ if test $shared = default; then fi echo $ac_n "checking whether -fPIC is default""... $ac_c" 1>&6 -echo "configure:2841: checking whether -fPIC is default" >&5 +echo "configure:2847: checking whether -fPIC is default" >&5 if eval "test \"`echo '$''{'pic_default'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3044,8 +3050,8 @@ s%@AWK@%$AWK%g s%@PERL@%$PERL%g s%@VERSIONING@%$VERSIONING%g s%@libc_cv_have_initfini@%$libc_cv_have_initfini%g -s%@libc_cv_ld_no_whole_archive@%$libc_cv_ld_no_whole_archive%g -s%@libc_cv_gcc_no_exceptions@%$libc_cv_gcc_no_exceptions%g +s%@no_whole_archive@%$no_whole_archive%g +s%@no_exceptions@%$no_exceptions%g s%@uname_sysname@%$uname_sysname%g s%@uname_release@%$uname_release%g s%@uname_version@%$uname_version%g diff --git a/configure.in b/configure.in index d04c18b0b3..683f6b6a39 100644 --- a/configure.in +++ b/configure.in @@ -883,7 +883,10 @@ else libc_cv_ld_no_whole_archive=no fi rm -f conftest*]) -AC_SUBST(libc_cv_ld_no_whole_archive)dnl +if test $libc_cv_ld_no_whole_archive = yes; then + no_whole_archive=-Wl,--no-whole-archive +fi +AC_SUBST(no_whole_archive)dnl AC_CACHE_CHECK(for gcc -fno-exceptions, libc_cv_gcc_no_exceptions, [dnl cat > conftest.c <<\EOF @@ -900,7 +903,10 @@ else libc_cv_gcc_no_exceptions=no fi rm -f conftest*]) -AC_SUBST(libc_cv_gcc_no_exceptions)dnl +if test $libc_cv_ld_no_whole_archive = yes; then + no_exceptions=-fno-exceptions +fi +AC_SUBST(no_exceptions)dnl if test "$base_machine" = alpha ; then AC_CACHE_CHECK(for function ..ng prefix, libc_cv_gcc_alpha_ng_prefix, [dnl diff --git a/db/Makefile b/db/Makefile index e9817e2f89..32a637f0bf 100644 --- a/db/Makefile +++ b/db/Makefile @@ -19,7 +19,6 @@ libdb-routines := bt_close bt_conv bt_debug bt_delete bt_get \ mpool \ rec_close rec_delete rec_get rec_open rec_put rec_search \ rec_seq rec_utils -libdb-map := libdb.map headers := db.h mpool.h ndbm.h distribute := compat.h \ diff --git a/elf/Makefile b/elf/Makefile index 2f2e4b1934..b8b5b36b40 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -35,7 +35,7 @@ elide-routines.os = $(dl-routines) dl-support enbl-secure # ld.so uses those routines, plus some special stuff for being the program # interpreter and operating independent of libc. rtld-routines := rtld $(dl-routines) dl-sysdep dl-minimal -ld-map = $(libc-map) +ld-map = $(..)libc.map distribute = $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \ dl-hash.h soinit.c sofini.c ldd.sh.in ldd.bash.in eval.c \ genrtldtbl.awk atomicity.h dl-procinfo.h ldsodefs.h \ @@ -44,7 +44,6 @@ distribute = $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \ extra-libs = libdl extra-libs-others = $(extra-libs) libdl-routines := dlopen dlclose dlsym dlvsym dlerror dladdr -libdl-map := libdl.map before-compile = $(objpfx)trusted-dirs.h $(objpfx)rtldtbl.h @@ -112,14 +111,10 @@ endif $(objpfx)ld.so: $(objpfx)librtld.os $(addprefix $(objpfx),$(rtld-ldscript)) \ $(ld-map) - $(rtld-link) -Wl,-soname=$(rtld-installed-name) - -define rtld-link -$(LINK.o) -nostdlib -nostartfiles -shared -o $@ \ - -Wl,-rpath=$(default-rpath) $(LDFLAGS-rtld) \ - $(filter-out $(rtld-ldscript) $($(@F:.so=)-map),$^) \ - $(load-map-file:%=-Wl,--version-script=%) -endef + $(LINK.o) -nostdlib -nostartfiles -shared -o $@ \ + -Wl,-rpath=$(default-rpath) $(LDFLAGS-rtld) \ + $(filter-out $(rtld-ldscript) $(map-file),$^) \ + $(load-map-file) -Wl,-soname=$(rtld-installed-name) # The dl code in the static libc needs a default library path. CFLAGS-dl-support.c = -D'DEFAULT_RPATH="$(default-rpath)"' diff --git a/extra-lib.mk b/extra-lib.mk index 793dc09c38..0b79d4a459 100644 --- a/extra-lib.mk +++ b/extra-lib.mk @@ -50,6 +50,6 @@ object-suffixes-left = $(object-suffixes-$(lib)) include $(patsubst %,$(..)o-iterator.mk,$(object-suffixes-$(lib))) # Add the version script to the dependencies of the shared library. -$(objpfx)$(lib).so: $($(lib)-map) +$(objpfx)$(lib).so: $(firstword $(wildcard $($(lib)-map) $(lib).map $(..)$(lib).map)) endif diff --git a/hesiod/Makefile b/hesiod/Makefile index 9959cee3fc..f1356bbfbd 100644 --- a/hesiod/Makefile +++ b/hesiod/Makefile @@ -30,7 +30,6 @@ subdir-dirs = nss_hesiod vpath %.c nss_hesiod libnss_hesiod-routines := hesiod hesiod-grp hesiod-pwd hesiod-service -libnss_hesiod-map := libnss_hesiod.map # Build only shared library libnss_hesiod-inhibit-o = $(filter-out .os,$(object-suffixes)) diff --git a/iconvdata/Makefile b/iconvdata/Makefile index 778de6e76a..8d5ace82aa 100644 --- a/iconvdata/Makefile +++ b/iconvdata/Makefile @@ -195,7 +195,8 @@ distribute := 8bit-generic.c 8bit-gap.c gap.pl gaptab.pl gconv-modules \ ibm880.c ibm891.c ibm903.c ibm904.c ibm905.c ibm918.c \ ibm1004.c ibm1026.c ibm1047.c cp1250.c cp1251.c cp1252.c \ cp1253.c cp1254.c cp1255.c cp1256.c cp1257.c cp874.c cp874.h \ - cp737.c cp737.h cp775.c cp775.h iso-2022-jp.c iso-2022-kr.c + cp737.c cp737.h cp775.c cp775.h iso-2022-jp.c iso-2022-kr.c \ + gen-8bit.sh gen-8bit-gap.sh gen-8bit-gap-1.sh # We build the transformation modules only when we build shared libs. ifeq (yes,$(build-shared)) @@ -204,11 +205,11 @@ ifeq (yes,$(build-shared)) # and it does not depend on the destination name to start with `lib'. define build-module $(LINK.o) -shared -o $@ $(sysdep-LDFLAGS) $(config-LDFLAGS) \ - -B$(csu-objpfx) $(load-map-file:%=-Wl,--version-script=%) \ + -B$(csu-objpfx) $(load-map-file) \ $(LDFLAGS.so) $(LDFLAGS-$(@F:%.so=%).so) \ -L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link) \ -Wl,--whole-archive \ - $(filter-out $($(@F:.so=)-map) $(+preinit) $(+postinit),$^) \ + $(filter-out $(map-file) $(+preinit) $(+postinit),$^) \ $(no-whole-archive) $(LDLIBS-$(@F:%.so=%).so) endef @@ -223,11 +224,13 @@ install-others = $(addprefix $(inst_gconvdir)/, $(modules.so)) \ # If we have the localedata add-on available we can build the conversion # tables for numerous charsets. +move-if-change = ./$(..)scripts/move-if-change + define generate-8bit-table $(make-target-directory) -rm -f $@.new -$(SHELL) ./gen-8bit.sh $< > $@.new -mv -f $@.new $@ +$(SHELL) ./gen-8bit.sh $< > $(@:stmp=T) +$(move-if-change) $(@:stmp=T) $(@:stmp=h) +touch $@ endef sed-generated-headers := iso8859-2.h iso8859-3.h iso8859-4.h iso8859-6.h \ @@ -243,9 +246,9 @@ sed-generated-headers := iso8859-2.h iso8859-3.h iso8859-4.h iso8859-6.h \ define generate-8bit-gap-table $(make-target-directory) -rm -f $@.new -PERL="$(PERL)" $(SHELL) ./gen-8bit-gap.sh $< > $@.new -mv -f $@.new $@ +PERL="$(PERL)" $(SHELL) ./gen-8bit-gap.sh $< > $(@:stmp=T) +$(move-if-change) $(@:stmp=T) $(@:stmp=h) +touch $@ endef perl-generated-headers := koi8-r.h latin-greek.h latin-greek-1.h \ @@ -271,184 +274,190 @@ ifneq ($(PERL),no) before-compile += $(addprefix $(objpfx),$(perl-generated-headers)) endif - # Rules to generate the headers. -$(objpfx)iso8859-2.h: ../localedata/charmaps/ISO-8859-2 gen-8bit.sh +$(sed-generated-headers:%=$(objpfx)%): $(objpfx)%.h: $(objpfx)%.stmp + @: + +$(objpfx)iso8859-2.stmp: ../localedata/charmaps/ISO-8859-2 gen-8bit.sh $(generate-8bit-table) -$(objpfx)iso8859-3.h: ../localedata/charmaps/ISO-8859-3 gen-8bit.sh +$(objpfx)iso8859-3.stmp: ../localedata/charmaps/ISO-8859-3 gen-8bit.sh $(generate-8bit-table) -$(objpfx)iso8859-4.h: ../localedata/charmaps/ISO-8859-4 gen-8bit.sh +$(objpfx)iso8859-4.stmp: ../localedata/charmaps/ISO-8859-4 gen-8bit.sh $(generate-8bit-table) -$(objpfx)iso8859-6.h: ../localedata/charmaps/ISO-8859-6 gen-8bit.sh +$(objpfx)iso8859-6.stmp: ../localedata/charmaps/ISO-8859-6 gen-8bit.sh $(generate-8bit-table) -$(objpfx)iso8859-9.h: ../localedata/charmaps/ISO-8859-9 gen-8bit.sh +$(objpfx)iso8859-9.stmp: ../localedata/charmaps/ISO-8859-9 gen-8bit.sh $(generate-8bit-table) -$(objpfx)koi-8.h: ../localedata/charmaps/KOI-8 gen-8bit.sh +$(objpfx)koi-8.stmp: ../localedata/charmaps/KOI-8 gen-8bit.sh $(generate-8bit-table) - -$(objpfx)hp-roman8.h: ../localedata/charmaps/HP-ROMAN8 gen-8bit.sh +$(objpfx)hp-roman8.stmp: ../localedata/charmaps/HP-ROMAN8 gen-8bit.sh $(generate-8bit-table) -$(objpfx)ebcdic-at-de.h: ../localedata/charmaps/EBCDIC-AT-DE gen-8bit.sh +$(objpfx)ebcdic-at-de.stmp: ../localedata/charmaps/EBCDIC-AT-DE gen-8bit.sh $(generate-8bit-table) -$(objpfx)ebcdic-at-de-a.h: ../localedata/charmaps/EBCDIC-AT-DE-A gen-8bit.sh +$(objpfx)ebcdic-at-de-a.stmp: ../localedata/charmaps/EBCDIC-AT-DE-A gen-8bit.sh $(generate-8bit-table) -$(objpfx)ebcdic-ca-fr.h: ../localedata/charmaps/EBCDIC-CA-FR gen-8bit.sh +$(objpfx)ebcdic-ca-fr.stmp: ../localedata/charmaps/EBCDIC-CA-FR gen-8bit.sh $(generate-8bit-table) -$(objpfx)ebcdic-dk-no.h: ../localedata/charmaps/EBCDIC-DK-NO gen-8bit.sh +$(objpfx)ebcdic-dk-no.stmp: ../localedata/charmaps/EBCDIC-DK-NO gen-8bit.sh $(generate-8bit-table) -$(objpfx)ebcdic-dk-no-a.h: ../localedata/charmaps/EBCDIC-DK-NO-A gen-8bit.sh +$(objpfx)ebcdic-dk-no-a.stmp: ../localedata/charmaps/EBCDIC-DK-NO-A gen-8bit.sh $(generate-8bit-table) -$(objpfx)ebcdic-es.h: ../localedata/charmaps/EBCDIC-ES gen-8bit.sh +$(objpfx)ebcdic-es.stmp: ../localedata/charmaps/EBCDIC-ES gen-8bit.sh $(generate-8bit-table) -$(objpfx)ebcdic-es-a.h: ../localedata/charmaps/EBCDIC-ES-A gen-8bit.sh +$(objpfx)ebcdic-es-a.stmp: ../localedata/charmaps/EBCDIC-ES-A gen-8bit.sh $(generate-8bit-table) -$(objpfx)ebcdic-es-s.h: ../localedata/charmaps/EBCDIC-ES-S gen-8bit.sh +$(objpfx)ebcdic-es-s.stmp: ../localedata/charmaps/EBCDIC-ES-S gen-8bit.sh $(generate-8bit-table) -$(objpfx)ebcdic-fi-se.h: ../localedata/charmaps/EBCDIC-FI-SE gen-8bit.sh +$(objpfx)ebcdic-fi-se.stmp: ../localedata/charmaps/EBCDIC-FI-SE gen-8bit.sh $(generate-8bit-table) -$(objpfx)ebcdic-fi-se-a.h: ../localedata/charmaps/EBCDIC-FI-SE-A gen-8bit.sh +$(objpfx)ebcdic-fi-se-a.stmp: ../localedata/charmaps/EBCDIC-FI-SE-A gen-8bit.sh $(generate-8bit-table) -$(objpfx)ebcdic-fr.h: ../localedata/charmaps/EBCDIC-FR gen-8bit.sh +$(objpfx)ebcdic-fr.stmp: ../localedata/charmaps/EBCDIC-FR gen-8bit.sh $(generate-8bit-table) -$(objpfx)ebcdic-is-friss.h: ../localedata/charmaps/EBCDIC-IS-FRISS gen-8bit.sh +$(objpfx)ebcdic-is-friss.stmp: ../localedata/charmaps/EBCDIC-IS-FRISS gen-8bit.sh $(generate-8bit-table) -$(objpfx)ebcdic-it.h: ../localedata/charmaps/EBCDIC-IT gen-8bit.sh +$(objpfx)ebcdic-it.stmp: ../localedata/charmaps/EBCDIC-IT gen-8bit.sh $(generate-8bit-table) -$(objpfx)ebcdic-pt.h: ../localedata/charmaps/EBCDIC-PT gen-8bit.sh +$(objpfx)ebcdic-pt.stmp: ../localedata/charmaps/EBCDIC-PT gen-8bit.sh $(generate-8bit-table) -$(objpfx)ebcdic-uk.h: ../localedata/charmaps/EBCDIC-UK gen-8bit.sh +$(objpfx)ebcdic-uk.stmp: ../localedata/charmaps/EBCDIC-UK gen-8bit.sh $(generate-8bit-table) -$(objpfx)ebcdic-us.h: ../localedata/charmaps/EBCDIC-US gen-8bit.sh +$(objpfx)ebcdic-us.stmp: ../localedata/charmaps/EBCDIC-US gen-8bit.sh $(generate-8bit-table) -$(objpfx)ibm037.h: ../localedata/charmaps/IBM037 gen-8bit.sh + +$(objpfx)ibm037.stmp: ../localedata/charmaps/IBM037 gen-8bit.sh $(generate-8bit-table) -$(objpfx)ibm038.h: ../localedata/charmaps/IBM038 gen-8bit.sh +$(objpfx)ibm038.stmp: ../localedata/charmaps/IBM038 gen-8bit.sh $(generate-8bit-table) -$(objpfx)ibm274.h: ../localedata/charmaps/IBM274 gen-8bit.sh +$(objpfx)ibm274.stmp: ../localedata/charmaps/IBM274 gen-8bit.sh $(generate-8bit-table) -$(objpfx)ibm275.h: ../localedata/charmaps/IBM275 gen-8bit.sh +$(objpfx)ibm275.stmp: ../localedata/charmaps/IBM275 gen-8bit.sh $(generate-8bit-table) -$(objpfx)ibm423.h: ../localedata/charmaps/IBM423 gen-8bit.sh +$(objpfx)ibm423.stmp: ../localedata/charmaps/IBM423 gen-8bit.sh $(generate-8bit-table) -$(objpfx)ibm500.h: ../localedata/charmaps/IBM500 gen-8bit.sh +$(objpfx)ibm500.stmp: ../localedata/charmaps/IBM500 gen-8bit.sh $(generate-8bit-table) -$(objpfx)ibm870.h: ../localedata/charmaps/IBM870 gen-8bit.sh +$(objpfx)ibm870.stmp: ../localedata/charmaps/IBM870 gen-8bit.sh $(generate-8bit-table) -$(objpfx)ibm871.h: ../localedata/charmaps/IBM871 gen-8bit.sh +$(objpfx)ibm871.stmp: ../localedata/charmaps/IBM871 gen-8bit.sh $(generate-8bit-table) -$(objpfx)ibm891.h: ../localedata/charmaps/IBM891 gen-8bit.sh +$(objpfx)ibm891.stmp: ../localedata/charmaps/IBM891 gen-8bit.sh $(generate-8bit-table) -$(objpfx)ibm903.h: ../localedata/charmaps/IBM903 gen-8bit.sh +$(objpfx)ibm903.stmp: ../localedata/charmaps/IBM903 gen-8bit.sh $(generate-8bit-table) -$(objpfx)ibm904.h: ../localedata/charmaps/IBM904 gen-8bit.sh +$(objpfx)ibm904.stmp: ../localedata/charmaps/IBM904 gen-8bit.sh $(generate-8bit-table) -$(objpfx)ibm905.h: ../localedata/charmaps/IBM905 gen-8bit.sh +$(objpfx)ibm905.stmp: ../localedata/charmaps/IBM905 gen-8bit.sh $(generate-8bit-table) -$(objpfx)ibm1047.h: ../localedata/charmaps/IBM1047 gen-8bit.sh +$(objpfx)ibm1047.stmp: ../localedata/charmaps/IBM1047 gen-8bit.sh $(generate-8bit-table) - ifneq ($(PERL),no) -$(objpfx)iso8859-7jp.h: ../localedata/charmaps/ISO-8859-7 gen-8bit-gap-1.sh - $(make-target-directory) - rm -f $@.new - PERL="$(PERL)" $(SHELL) ./gen-8bit-gap-1.sh $< >$@.new - mv -f $@.new $@ +$(perl-generated-headers:%=$(objpfx)%): $(objpfx)%.h: $(objpfx)%.stmp + @: -$(objpfx)iso8859-5.h: ../localedata/charmaps/ISO-8859-5 gen-8bit-gap.sh +$(objpfx)iso8859-5.stmp: ../localedata/charmaps/ISO-8859-5 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)iso8859-7.h: ../localedata/charmaps/ISO-8859-7 gen-8bit-gap.sh +$(objpfx)iso8859-7.stmp: ../localedata/charmaps/ISO-8859-7 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)iso8859-8.h: ../localedata/charmaps/ISO-8859-8 gen-8bit-gap.sh +$(objpfx)iso8859-7jp.stmp: ../localedata/charmaps/ISO-8859-7 gen-8bit-gap-1.sh + $(make-target-directory) + PERL="$(PERL)" $(SHELL) ./gen-8bit-gap-1.sh $< >$(@:stmp=T) + $(move-if-change) $(@:stmp=T) $(@:stmp=h) + touch $@ + +$(objpfx)iso8859-8.stmp: ../localedata/charmaps/ISO-8859-8 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)iso8859-10.h: ../localedata/charmaps/ISO-8859-10 gen-8bit-gap.sh +$(objpfx)iso8859-10.stmp: ../localedata/charmaps/ISO-8859-10 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)koi8-r.h: ../localedata/charmaps/KOI8-R gen-8bit-gap.sh +$(objpfx)koi8-r.stmp: ../localedata/charmaps/KOI8-R gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)latin-greek.h: ../localedata/charmaps/LATIN-GREEK gen-8bit-gap.sh +$(objpfx)latin-greek.stmp: ../localedata/charmaps/LATIN-GREEK gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)latin-greek-1.h: ../localedata/charmaps/LATIN-GREEK-1 gen-8bit-gap.sh +$(objpfx)latin-greek-1.stmp: ../localedata/charmaps/LATIN-GREEK-1 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm256.h: ../localedata/charmaps/IBM256 gen-8bit-gap.sh + +$(objpfx)ibm256.stmp: ../localedata/charmaps/IBM256 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm273.h: ../localedata/charmaps/IBM273 gen-8bit-gap.sh +$(objpfx)ibm273.stmp: ../localedata/charmaps/IBM273 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm277.h: ../localedata/charmaps/IBM277 gen-8bit-gap.sh +$(objpfx)ibm277.stmp: ../localedata/charmaps/IBM277 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm278.h: ../localedata/charmaps/IBM278 gen-8bit-gap.sh +$(objpfx)ibm278.stmp: ../localedata/charmaps/IBM278 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm280.h: ../localedata/charmaps/IBM280 gen-8bit-gap.sh +$(objpfx)ibm280.stmp: ../localedata/charmaps/IBM280 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm281.h: ../localedata/charmaps/IBM281 gen-8bit-gap.sh +$(objpfx)ibm281.stmp: ../localedata/charmaps/IBM281 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm284.h: ../localedata/charmaps/IBM284 gen-8bit-gap.sh +$(objpfx)ibm284.stmp: ../localedata/charmaps/IBM284 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm285.h: ../localedata/charmaps/IBM285 gen-8bit-gap.sh +$(objpfx)ibm285.stmp: ../localedata/charmaps/IBM285 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm290.h: ../localedata/charmaps/IBM290 gen-8bit-gap.sh +$(objpfx)ibm290.stmp: ../localedata/charmaps/IBM290 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm297.h: ../localedata/charmaps/IBM297 gen-8bit-gap.sh +$(objpfx)ibm297.stmp: ../localedata/charmaps/IBM297 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm420.h: ../localedata/charmaps/IBM420 gen-8bit-gap.sh +$(objpfx)ibm420.stmp: ../localedata/charmaps/IBM420 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm424.h: ../localedata/charmaps/IBM424 gen-8bit-gap.sh +$(objpfx)ibm424.stmp: ../localedata/charmaps/IBM424 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm437.h: ../localedata/charmaps/IBM437 gen-8bit-gap.sh +$(objpfx)ibm437.stmp: ../localedata/charmaps/IBM437 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm850.h: ../localedata/charmaps/IBM850 gen-8bit-gap.sh +$(objpfx)ibm850.stmp: ../localedata/charmaps/IBM850 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm851.h: ../localedata/charmaps/IBM851 gen-8bit-gap.sh +$(objpfx)ibm851.stmp: ../localedata/charmaps/IBM851 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm852.h: ../localedata/charmaps/IBM852 gen-8bit-gap.sh +$(objpfx)ibm852.stmp: ../localedata/charmaps/IBM852 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm855.h: ../localedata/charmaps/IBM855 gen-8bit-gap.sh +$(objpfx)ibm855.stmp: ../localedata/charmaps/IBM855 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm857.h: ../localedata/charmaps/IBM857 gen-8bit-gap.sh +$(objpfx)ibm857.stmp: ../localedata/charmaps/IBM857 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm860.h: ../localedata/charmaps/IBM860 gen-8bit-gap.sh +$(objpfx)ibm860.stmp: ../localedata/charmaps/IBM860 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm861.h: ../localedata/charmaps/IBM861 gen-8bit-gap.sh +$(objpfx)ibm861.stmp: ../localedata/charmaps/IBM861 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm862.h: ../localedata/charmaps/IBM862 gen-8bit-gap.sh +$(objpfx)ibm862.stmp: ../localedata/charmaps/IBM862 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm863.h: ../localedata/charmaps/IBM863 gen-8bit-gap.sh +$(objpfx)ibm863.stmp: ../localedata/charmaps/IBM863 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm864.h: ../localedata/charmaps/IBM864 gen-8bit-gap.sh +$(objpfx)ibm864.stmp: ../localedata/charmaps/IBM864 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm865.h: ../localedata/charmaps/IBM865 gen-8bit-gap.sh +$(objpfx)ibm865.stmp: ../localedata/charmaps/IBM865 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm868.h: ../localedata/charmaps/IBM868 gen-8bit-gap.sh +$(objpfx)ibm868.stmp: ../localedata/charmaps/IBM868 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm869.h: ../localedata/charmaps/IBM869 gen-8bit-gap.sh +$(objpfx)ibm869.stmp: ../localedata/charmaps/IBM869 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm875.h: ../localedata/charmaps/IBM875 gen-8bit-gap.sh +$(objpfx)ibm875.stmp: ../localedata/charmaps/IBM875 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm880.h: ../localedata/charmaps/IBM880 gen-8bit-gap.sh +$(objpfx)ibm880.stmp: ../localedata/charmaps/IBM880 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm918.h: ../localedata/charmaps/IBM918 gen-8bit-gap.sh +$(objpfx)ibm918.stmp: ../localedata/charmaps/IBM918 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm1004.h: ../localedata/charmaps/IBM1004 gen-8bit-gap.sh +$(objpfx)ibm1004.stmp: ../localedata/charmaps/IBM1004 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)ibm1026.h: ../localedata/charmaps/IBM1026 gen-8bit-gap.sh +$(objpfx)ibm1026.stmp: ../localedata/charmaps/IBM1026 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)cp1250.h: ../localedata/charmaps/CP1250 gen-8bit-gap.sh + +$(objpfx)cp1250.stmp: ../localedata/charmaps/CP1250 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)cp1251.h: ../localedata/charmaps/CP1251 gen-8bit-gap.sh +$(objpfx)cp1251.stmp: ../localedata/charmaps/CP1251 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)cp1252.h: ../localedata/charmaps/CP1252 gen-8bit-gap.sh +$(objpfx)cp1252.stmp: ../localedata/charmaps/CP1252 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)cp1253.h: ../localedata/charmaps/CP1253 gen-8bit-gap.sh +$(objpfx)cp1253.stmp: ../localedata/charmaps/CP1253 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)cp1254.h: ../localedata/charmaps/CP1254 gen-8bit-gap.sh +$(objpfx)cp1254.stmp: ../localedata/charmaps/CP1254 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)cp1255.h: ../localedata/charmaps/CP1255 gen-8bit-gap.sh +$(objpfx)cp1255.stmp: ../localedata/charmaps/CP1255 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)cp1256.h: ../localedata/charmaps/CP1256 gen-8bit-gap.sh +$(objpfx)cp1256.stmp: ../localedata/charmaps/CP1256 gen-8bit-gap.sh $(generate-8bit-gap-table) -$(objpfx)cp1257.h: ../localedata/charmaps/CP1257 gen-8bit-gap.sh +$(objpfx)cp1257.stmp: ../localedata/charmaps/CP1257 gen-8bit-gap.sh $(generate-8bit-gap-table) endif diff --git a/linuxthreads/Makefile b/linuxthreads/Makefile index d75cb73631..da92138111 100644 --- a/linuxthreads/Makefile +++ b/linuxthreads/Makefile @@ -34,7 +34,6 @@ extra-libs-others := $(extra-libs) libpthread-routines := attr cancel condvar join manager mutex ptfork \ ptlongjmp pthread signals specific errno lockfile \ semaphore spinlock wrapsyscall rwlock -libpthread-map := libpthread.map include ../Rules diff --git a/locale/Makefile b/locale/Makefile index b93298310b..84005116c8 100644 --- a/locale/Makefile +++ b/locale/Makefile @@ -46,7 +46,6 @@ extra-libs = libBrokenLocale extra-libs-others = $(extra-libs) libBrokenLocale-routines = broken_cur_max -libBrokenLocale-map = libBrokenLocale.map subdir-dirs = programs vpath %.c programs diff --git a/login/Makefile b/login/Makefile index 96c75f7b4a..40cee55f80 100644 --- a/login/Makefile +++ b/login/Makefile @@ -48,7 +48,6 @@ extra-libs := libutil extra-libs-others := $(extra-libs) libutil-routines:= login login_tty logout logwtmp openpty forkpty -libutil-map := libutil.map include ../Rules diff --git a/login/README.utmpd b/login/README.utmpd index d70b3d8de2..b691c36f27 100644 --- a/login/README.utmpd +++ b/login/README.utmpd @@ -1,7 +1,8 @@ With the introduction of version 2 of the GNU C Library the format of -the UTMP and WTMP files changed for some configurations (see Q&A 10 of -the FAQ). This version of the GNU C Library contains a solution for -the problems this may cause, by providing an UTMP daemon `utmpd'. +the UTMP and WTMP files changed for some configurations (see Q&A `Why +does getlogin() always return NULL on my Linux box?' of the FAQ). +This version of the GNU C Library contains a solution for the problems +this may cause, by providing an UTMP daemon `utmpd'. Do I need it? ============= diff --git a/math/Makefile b/math/Makefile index 6b0b2bf6b4..103937e580 100644 --- a/math/Makefile +++ b/math/Makefile @@ -36,8 +36,6 @@ aux := fpu_control setfpucw extra-libs := libm extra-libs-others = $(extra-libs) -libm-map := libm.map - libm-support = k_standard s_lib_version s_matherr s_signgam \ fclrexcpt fgetexcptflg fraiseexcpt fsetexcptflg \ ftestexcept fegetround fesetround fegetenv feholdexcpt \ diff --git a/md5-crypt/Makefile b/md5-crypt/Makefile index e948fb0491..28b90df9a0 100644 --- a/md5-crypt/Makefile +++ b/md5-crypt/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1996, 1997 Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -32,7 +32,6 @@ extra-libs-others := $(extra-libs) md5-routines := crypt-entry md5-crypt md5 libcrypt-routines := $(md5-routines) -libcrypt-map := libcrypt.map onlymd5-routines := onlymd5-entry md5-crypt md5 distribute += onlymd5-entry.c diff --git a/nis/Makefile b/nis/Makefile index b31aad4401..f91121bc11 100644 --- a/nis/Makefile +++ b/nis/Makefile @@ -57,15 +57,12 @@ libnsl-map = libnsl.map libnss_compat-routines := $(addprefix compat-,grp pwd spwd) nisplus-parser libnss_compat-inhibit-o = $(filter-out .os,$(object-suffixes)) -libnss_compat-map := libnss_compat.map libnss_nis-routines := $(addprefix nis-,$(databases)) libnss_nis-inhibit-o = $(filter-out .os,$(object-suffixes)) -libnss_nis-map := libnss_nis.map libnss_nisplus-routines := $(addprefix nisplus-,$(databases)) nisplus-parser libnss_nisplus-inhibit-o = $(filter-out .os,$(object-suffixes)) -libnss_nisplus-map := libnss_nisplus.map include ../Rules diff --git a/nss/Makefile b/nss/Makefile index cf953f1019..69a99c6a75 100644 --- a/nss/Makefile +++ b/nss/Makefile @@ -54,18 +54,15 @@ vpath %.c $(subdir-dirs) libnss_files-routines := $(addprefix files-,$(filter-out key, $(databases))) -libnss_files-map := libnss_files.map distribute += files-XXX.c files-parse.c libnss_db-routines := $(addprefix db-,$(filter-out hosts network key,\ $(databases))) -libnss_db-map := libnss_db.map generated += $(filter-out db-alias.c db-netgrp.c, \ $(addsuffix .c,$(libnss_db-routines))) distribute += db-XXX.c libnss_ldap-routines := $(addprefix ldap-,proto) util ldap-nss -libnss_ldap-map := libnss_ldap.map # Build static module if requested diff --git a/posix/wordexp-test.c b/posix/wordexp-test.c index 81f93a1577..82af1666a2 100644 --- a/posix/wordexp-test.c +++ b/posix/wordexp-test.c @@ -205,9 +205,6 @@ main (int argc, char *argv[]) { struct test_case_struct ts; - printf ("Test %d (~root): ", ++tests); - fflush (stdout); - ts.retval = 0; ts.env = NULL; ts.words = "~root"; @@ -217,12 +214,7 @@ main (int argc, char *argv[]) ts.ifs = IFS; if (testit (&ts)) - { - printf ("FAILED\n"); - ++fail; - } - else - printf ("OK\n"); + ++fail; } puts ("tests completed, now cleaning up"); diff --git a/resolv/Makefile b/resolv/Makefile index 938cde75dd..fe5a0f16c1 100644 --- a/resolv/Makefile +++ b/resolv/Makefile @@ -36,13 +36,11 @@ extra-libs-others = $(extra-libs) libresolv-routines := gethnamaddr res_comp res_debug \ res_data res_mkquery res_query res_send \ inet_net_ntop inet_net_pton inet_neta base64 -libresolv-map := libresolv.map subdir-dirs = nss_dns vpath %.c nss_dns libnss_dns-routines := dns-host dns-network -libnss_dns-map := libnss_dns.map ifneq ($(build-static-nss),yes) libnss_dns-inhibit-o = $(filter-out .os,$(object-suffixes)) endif diff --git a/rt/Makefile b/rt/Makefile index bc8f9234bf..69d76151ed 100644 --- a/rt/Makefile +++ b/rt/Makefile @@ -28,8 +28,6 @@ librt-routines := aio_cancel aio_error aio_fsync aio_misc aio_read \ aio_write64 lio_listio lio_listio64 aio_sigqueue \ aio_notify -librt-map := librt.map - # Make sure that everything is distributed independent of configuration. distribute := aio_misc.h $(librt-routines:=.c) $(librt-map) diff --git a/sunrpc/Makefile b/sunrpc/Makefile index a6101cfc6b..3697e036c6 100644 --- a/sunrpc/Makefile +++ b/sunrpc/Makefile @@ -134,15 +134,14 @@ $(inst_sysconfdir)/rpc: etc.rpc $(+force) # Generate the rpcsvc headers with rpcgen. # We use a stamp file to avoid unnessary recompilation each time rpcgen is # relinked. +move-if-change = ./$(..)scripts/move-if-change $(rpcsvc:%.x=$(objpfx)rpcsvc/%.h): $(objpfx)rpcsvc/%.h: $(objpfx)rpcsvc/%.stmp @: $(objpfx)rpcsvc/%.stmp: rpcsvc/%.x $(objpfx)rpcgen $(make-target-directory) -@rm -f ${@:stmp=T} $@ $(rpcgen-cmd) -h $< -o ${@:stmp=T} - if test -r ${@:stmp=h} && cmp -s ${@:stmp=h} ${@:stmp=T}; \ - then rm -f ${@:stmp=T}; \ - else mv -f ${@:stmp=T} ${@:stmp=h}; fi + $(move-if-change) $(@:stmp=T) $(@:stmp=h) touch $@ # Generate the rpcsvc XDR functions with rpcgen. @@ -151,9 +150,7 @@ $(rpcsvc:%.x=$(objpfx)x%.c): $(objpfx)x%.c: $(objpfx)x%.stmp $(objpfx)x%.stmp: rpcsvc/%.x $(objpfx)rpcgen -@rm -f ${@:stmp=T} $@ $(rpcgen-cmd) -c $< -o ${@:stmp=T} - if test -r ${@:stmp=c} && cmp -s ${@:stmp=c} ${@:stmp=T}; \ - then rm -f ${@:stmp=T}; \ - else mv -f ${@:stmp=T} ${@:stmp=c}; fi + $(move-if-change) $(@:stmp=T) $(@:stmp=c) touch $@ # The generated source files depend on the corresponding generated headers. diff --git a/sysdeps/generic/setenv.c b/sysdeps/generic/setenv.c index 69bd992832..baae4c59b2 100644 --- a/sysdeps/generic/setenv.c +++ b/sysdeps/generic/setenv.c @@ -61,6 +61,8 @@ __libc_lock_define_initialized (static, envlock) # define setenv __setenv # define unsetenv __unsetenv # define clearenv __clearenv +# define tfind __tfind +# define tsearch __tsearch #endif /* In the GNU C library implementation we try to be more clever and @@ -75,8 +77,20 @@ __libc_lock_define_initialized (static, envlock) values. */ static void *known_values; -# define KNOWN_VALUE(Str) tfind (Str, &known_values, (__compar_fn_t) strcmp) -# define STORE_VALUE(Str) tsearch (Str, &known_values, (__compar_fn_t) strcmp) +# define KNOWN_VALUE(Str) \ + ({ \ + void **value = tfind (Str, &known_values, (__compar_fn_t) strcmp); \ + if (value != NULL) \ + value = *(const char **) value; \ + value; \ + }) +# define STORE_VALUE(Str) \ + ({ \ + void **value = tsearch (Str, &known_values, (__compar_fn_t) strcmp); \ + if (value != NULL) \ + value = *(const char **) value; \ + value; \ + }) #else # undef USE_TSEARCH @@ -240,7 +254,7 @@ unsetenv (name) char **dp = ep; /* Store the value so that we can reuse it later. */ - STORE_VALUE (ep); + STORE_VALUE (*ep); do dp[0] = dp[1]; diff --git a/sysdeps/unix/sysv/linux/bits/socket.h b/sysdeps/unix/sysv/linux/bits/socket.h index 9b07535816..5517ba8803 100644 --- a/sysdeps/unix/sysv/linux/bits/socket.h +++ b/sysdeps/unix/sysv/linux/bits/socket.h @@ -80,6 +80,7 @@ enum __socket_type #define PF_ASH 18 /* Ash. */ #define PF_ECONET 19 /* Acorn Econet. */ #define PF_ATMSVC 20 /* ATM SVCs. */ +#define PF_SNA 22 /* Linux SNA Project */ #define PF_MAX 32 /* For now.. */ /* Address families. */ @@ -107,6 +108,7 @@ enum __socket_type #define AF_ASH PF_ASH #define AF_ECONET PF_ECONET #define AF_ATMSVC PF_ATMSVC +#define AF_SNA PF_SNA #define AF_MAX PF_MAX /* Socket level values. Others are defined in the appropriate headers. diff --git a/time/tzfile.c b/time/tzfile.c index c9becf3238..9fab857ecc 100644 --- a/time/tzfile.c +++ b/time/tzfile.c @@ -90,7 +90,6 @@ __tzfile_read (const char *file) struct tzhead tzhead; size_t chars; register size_t i; - struct ttinfo *info; __use_tzfile = 0; @@ -415,13 +414,14 @@ find_transition (time_t timer) int __tzfile_compute (time_t timer, int use_localtime, - long int *leap_correct, int *leap_hit) + long int *leap_correct, int *leap_hit, + int *isdst, long int *offset) { + struct ttinfo *info = find_transition (timer); register size_t i; if (use_localtime) { - struct ttinfo *info = find_transition (timer); __daylight = rule_stdoff != rule_dstoff; __timezone = -rule_stdoff; __tzname[1] = NULL; @@ -434,6 +434,9 @@ __tzfile_compute (time_t timer, int use_localtime, __tzname[1] = __tzname[0]; } + *isdst = info->isdst; + *offset = info->offset; + *leap_correct = 0L; *leap_hit = 0; diff --git a/time/tzset.c b/time/tzset.c index e42be39db8..251967e5c6 100644 --- a/time/tzset.c +++ b/time/tzset.c @@ -37,7 +37,8 @@ extern struct tm _tmbuf; extern int __use_tzfile; extern void __tzfile_read __P ((const char *file)); extern int __tzfile_compute __P ((time_t timer, int use_localtime, - long int *leap_correct, int *leap_hit)); + long int *leap_correct, int *leap_hit, + int *isdst, long int *offset)); extern void __tzfile_default __P ((const char *std, const char *dst, long int stdoff, long int dstoff)); extern char *__tzstring __P ((const char *string)); @@ -594,6 +595,8 @@ __tz_convert (const time_t *timer, int use_localtime, struct tm *tp) { long int leap_correction; int leap_extra_secs; + int isdst; + long int offset; if (timer == NULL) { @@ -612,7 +615,8 @@ __tz_convert (const time_t *timer, int use_localtime, struct tm *tp) if (__use_tzfile) { if (! __tzfile_compute (*timer, use_localtime, - &leap_correction, &leap_extra_secs)) + &leap_correction, &leap_extra_secs, + &isdst, &offset)) tp = NULL; } else @@ -621,16 +625,18 @@ __tz_convert (const time_t *timer, int use_localtime, struct tm *tp) tp = NULL; leap_correction = 0L; leap_extra_secs = 0; + + isdst = (*timer >= tz_rules[0].change && *timer < tz_rules[1].change); + offset = tz_rules[isdst].offset; } if (tp) { if (use_localtime) { - tp->tm_isdst = (*timer >= tz_rules[0].change - && *timer < tz_rules[1].change); - tp->tm_zone = __tzname[tp->tm_isdst]; - tp->tm_gmtoff = tz_rules[tp->tm_isdst].offset; + tp->tm_isdst = isdst; + tp->tm_zone = __tzname[isdst]; + tp->tm_gmtoff = offset; } else { diff --git a/wcsmbs/wcsmbsload.c b/wcsmbs/wcsmbsload.c index 1f4065513d..f2699b6107 100644 --- a/wcsmbs/wcsmbsload.c +++ b/wcsmbs/wcsmbsload.c @@ -96,8 +96,7 @@ getfct (const char *to, const char *from) const char *cp = str; \ char *result = NULL; \ \ - while (strchr ("@.+,", *cp) == NULL) \ - ++cp; \ + cp += strcspn (cp, "@.+,"); \ if (*cp == '.') \ { \ const char *endp = ++cp; \ |