summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog86
-rw-r--r--Makerules29
-rw-r--r--config.make.in4
-rwxr-xr-xconfigure42
-rw-r--r--configure.in10
-rw-r--r--db/Makefile1
-rw-r--r--elf/Makefile15
-rw-r--r--extra-lib.mk2
-rw-r--r--hesiod/Makefile1
-rw-r--r--iconvdata/Makefile207
-rw-r--r--linuxthreads/Makefile1
-rw-r--r--locale/Makefile1
-rw-r--r--login/Makefile1
-rw-r--r--login/README.utmpd7
-rw-r--r--math/Makefile2
-rw-r--r--md5-crypt/Makefile3
-rw-r--r--nis/Makefile3
-rw-r--r--nss/Makefile3
-rw-r--r--posix/wordexp-test.c10
-rw-r--r--resolv/Makefile2
-rw-r--r--rt/Makefile2
-rw-r--r--sunrpc/Makefile9
-rw-r--r--sysdeps/generic/setenv.c20
-rw-r--r--sysdeps/unix/sysv/linux/bits/socket.h2
-rw-r--r--time/tzfile.c9
-rw-r--r--time/tzset.c18
-rw-r--r--wcsmbs/wcsmbsload.c3
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; \