diff options
-rw-r--r-- | ChangeLog | 17 | ||||
-rw-r--r-- | assert/Depend | 1 | ||||
-rw-r--r-- | assert/Makefile | 5 | ||||
-rw-r--r-- | io/sys/stat.h | 4 | ||||
-rw-r--r-- | localedata/ChangeLog | 6 | ||||
-rw-r--r-- | localedata/Depend | 1 | ||||
-rw-r--r-- | localedata/Makefile | 57 | ||||
-rw-r--r-- | localedata/gen-locale.sh | 16 | ||||
-rw-r--r-- | sysdeps/alpha/dl-machine.h | 10 |
9 files changed, 78 insertions, 39 deletions
diff --git a/ChangeLog b/ChangeLog index 70e4454550..95009e32fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,22 @@ 2000-06-30 Ulrich Drepper <drepper@redhat.com> + * assert/Depend: Add localedata. + * assert/Makefile (test-assert-ENV): New. Define LANGUAGE=C. + (test-assert-perr-ENV): New. Define LANGUAGE=C. + + * sysdeps/alpha/dl-machine.h (elf_machine_rela) [r_type == + R_ALPHA_REFQUAD]: Use memcpy to load and store value from + relocation address to prevent unaligned trap. + Suggested by Richard Henderson <rth@cygnus.com>. + +2000-06-30 Jakub Jelinek <jakub@redhat.com> + + * io/sys/stat.h (stat64, lstat64, fstat64): Don't define inlines + if redirecting and either redirection is done using defines or + not optimizing. + +2000-06-30 Ulrich Drepper <drepper@redhat.com> + * sunrpc/rpc_cout.c (inline_struct): Add missing braces in generated expressions. Patch by Darren McClelland <dmcclell@zetec.com>. diff --git a/assert/Depend b/assert/Depend index e35d3258a3..981111e299 100644 --- a/assert/Depend +++ b/assert/Depend @@ -1 +1,2 @@ iconvdata +localedata diff --git a/assert/Makefile b/assert/Makefile index 63fb9253ff..c18d673b94 100644 --- a/assert/Makefile +++ b/assert/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991, 1994, 1997, 1998 Free Software Foundation, Inc. +# Copyright (C) 1991, 1994, 1997, 1998, 2000 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 @@ -26,3 +26,6 @@ routines := assert assert-perr tests := test-assert test-assert-perr include ../Rules + +test-assert-ENV = LANGUAGE=C +test-assert-perr-ENV = LANGUAGE=C diff --git a/io/sys/stat.h b/io/sys/stat.h index d8d8620198..7a8c8b3e1e 100644 --- a/io/sys/stat.h +++ b/io/sys/stat.h @@ -360,7 +360,9 @@ extern __inline__ int mknod (__const char *__path, __mode_t __mode, } # endif -# ifdef __USE_LARGEFILE64 +# if defined __USE_LARGEFILE64 \ + && (! defined __USE_FILE_OFFSET64 \ + || (defined __REDIRECT && defined __OPTIMIZE__)) extern __inline__ int stat64 (__const char *__path, struct stat64 *__statbuf) __THROW { diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 217b709c30..035f88b13b 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,5 +1,11 @@ 2000-06-30 Ulrich Drepper <drepper@redhat.com> + * Depend: New file. + + * Makefile: Rewrite rules to generate locale data. + * gen-locale.sh: Generate only one locale which is described in a + command line parameter. + * gen-locale.sh: Print that it might take a while to finish. 2000-06-30 Jakub Jelinek <jakub@redhat.com> diff --git a/localedata/Depend b/localedata/Depend new file mode 100644 index 0000000000..193b759b5a --- /dev/null +++ b/localedata/Depend @@ -0,0 +1 @@ +locale diff --git a/localedata/Makefile b/localedata/Makefile index af70f7cca4..428ae27381 100644 --- a/localedata/Makefile +++ b/localedata/Makefile @@ -117,46 +117,49 @@ CFLAGS-tst-trans.c = -Wno-format ifeq (no,$(cross-compiling)) ifeq (yes,$(build-shared)) +# We have to generate locales +LOCALES := de_DE.ISO-8859-1 de_DE.UTF-8 en_US.ANSI_X3.4-1968 \ + en_US.ISO-8859-1 ja_JP.EUC-JP +LOCALE_SRCS := $(shell echo "$(LOCALES)"|sed 's/\([^ .]*\)[^ ]*/\1/g') +CHARMAPS := $(shell echo "$(LOCALES)"|sed 's/[^ .]*[.]\([^ ]*\)/\1/g') +CTYPE_FILES = $(addsuffix /LC_CTYPE,$(LOCALES)) + +# Dependency for the locale files. We actually make it depend only on +# one of the files. +$(addprefix $(objpfx),$(CTYPE_FILES)): %: \ + gen-locale.sh Makefile $(common-objpfx)locale/localedef \ + $(addprefix charmaps/,$(CHARMAPS)) $(addprefix locales/,$(LOCALE_SRCS)) + @$(SHELL) -e gen-locale.sh $(common-objpfx) $@ + +$(addsuffix .out,$(addprefix $(objpfx),$(locale_test_suite))): %: \ + $(addprefix $(objpfx),$(CTYPE_FILES)) + .PHONY: do-collate-test do-tst-fmon do-tst-locale do-tst-rpmatch do-tst-trans \ do-tst-mbswcs do-tst-ctype tests: do-collate-test do-tst-fmon do-tst-locale do-tst-rpmatch do-tst-trans \ do-tst-mbswcs do-tst-ctype do-collate-test: sort-test.sh $(objpfx)collate-test $(objpfx)xfrm-test \ - $(test-input-data) + $(test-input-data) $(addprefix $(objpfx),$(CTYPE_FILES)) $(SHELL) -e $< $(common-objpfx) $(test-input) -do-tst-fmon: tst-fmon.sh $(objpfx)tst-fmon tst-fmon.data do-collate-test +do-tst-fmon: tst-fmon.sh $(objpfx)tst-fmon tst-fmon.data do-collate-test \ + $(addprefix $(objpfx),$(CTYPE_FILES)) $(SHELL) -e $< $(common-objpfx) tst-fmon.data -do-tst-locale: tst-locale.sh $(ld-test-srcs) +do-tst-locale: tst-locale.sh $(ld-test-srcs) \ + $(addprefix $(objpfx),$(CTYPE_FILES)) $(SHELL) -e $< $(common-objpfx) -do-tst-rpmatch: tst-rpmatch.sh $(objpfx)tst-rpmatch do-tst-fmon +do-tst-rpmatch: tst-rpmatch.sh $(objpfx)tst-rpmatch do-tst-fmon \ + $(addprefix $(objpfx),$(CTYPE_FILES)) $(SHELL) -e $< $(common-objpfx) -do-tst-trans: tst-trans.sh $(objpfx)tst-trans +do-tst-trans: tst-trans.sh $(objpfx)tst-trans \ + $(addprefix $(objpfx),$(CTYPE_FILES)) $(SHELL) -e $< $(common-objpfx) do-tst-mbswcs: tst-mbswcs.sh $(objpfx)tst-mbswcs1 $(objpfx)tst-mbswcs2 \ - $(objpfx)tst-mbswcs3 $(objpfx)tst-mbswcs4 $(objpfx)tst-mbswcs5 + $(objpfx)tst-mbswcs3 $(objpfx)tst-mbswcs4 $(objpfx)tst-mbswcs5 \ + $(addprefix $(objpfx),$(CTYPE_FILES)) $(SHELL) -e $< $(common-objpfx) -do-tst-ctype: tst-ctype.sh $(objpfx)tst-ctype do-collate-test +do-tst-ctype: tst-ctype.sh $(objpfx)tst-ctype do-collate-test \ + $(addprefix $(objpfx),$(CTYPE_FILES)) $(SHELL) -e $< $(common-objpfx) - -# Theses locales are generated by gen-locale.sh -LOCALES := de_DE.ISO-8859-1 de_DE.UTF-8 en_US.ANSI_X3.4-1968 \ - en_US.ISO-8859-1 ja_JP.EUC-JP - -LOCALE_FILES := LC_ADDRESS LC_IDENTIFICATION LC_MONETARY LC_PAPER \ - LC_COLLATE LC_MEASUREMENT LC_NAME LC_TELEPHONE LC_CTYPE \ - LC_NUMERIC LC_TIME LC_MESSAGES/SYS_LC_MESSAGES - -ALL_LC_FILES := $(foreach locale, $(LOCALES), \ - $(addprefix $(locale)/, $(LOCALE_FILES))) - -ALL_OBJ_LC_FILES := $(addprefix $(objpfx), $(ALL_LC_FILES)) - -$(ALL_OBJ_LC_FILES): gen-locale.sh Makefile charmaps/* locales/* \ - $(common-objpfx)locale/localedef - $(SHELL) -e gen-locale.sh $(common-objpfx) - -$(addsuffix .out,$(addprefix $(objpfx),$(locale_test_suite))): %: $(ALL_OBJ_LC_FILES) - endif endif diff --git a/localedata/gen-locale.sh b/localedata/gen-locale.sh index ca110741c0..b68e364a1e 100644 --- a/localedata/gen-locale.sh +++ b/localedata/gen-locale.sh @@ -1,5 +1,5 @@ #! /bin/sh -# Generate test locale files +# Generate test locale files. # Copyright (C) 2000 Free Software Foundation, Inc. # This file is part of the GNU C Library. # @@ -18,7 +18,8 @@ # not, write to the Free Software Foundation, Inc., # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -common_objpfx=$1; shift +common_objpfx="$1"; shift +locfile="$1"; shift generate_locale () { @@ -37,9 +38,8 @@ generate_locale () fi } -echo "Generating locale data: this might take a while..." -generate_locale UTF8 de_DE de_DE.UTF-8 -generate_locale ISO-8859-1 de_DE de_DE.ISO-8859-1 -generate_locale ISO-8859-1 en_US en_US.ISO-8859-1 -generate_locale EUC-JP ja_JP ja_JP.EUC-JP -generate_locale ANSI_X3.4-1968 en_US en_US.ANSI_X3.4-1968 +locale=`echo $locfile|sed 's|.*/\([^/.]*\)[.].*/LC_CTYPE|\1|'` +charmap=`echo $locfile|sed 's|.*/[^/.]*[.]\(.*\)/LC_CTYPE|\1|'` + +echo "Generating locale $locale.$charmap: this might take a while..." +generate_locale $charmap $locale $locale.$charmap diff --git a/sysdeps/alpha/dl-machine.h b/sysdeps/alpha/dl-machine.h index e20493b33f..a7f13e0192 100644 --- a/sysdeps/alpha/dl-machine.h +++ b/sysdeps/alpha/dl-machine.h @@ -500,7 +500,12 @@ elf_machine_rela (struct link_map *map, elf_machine_fixup_plt (map, NULL, reloc, reloc_addr, sym_value); else if (r_type == R_ALPHA_REFQUAD) { - sym_value += *reloc_addr; + void *reloc_addr_1 = reloc_addr; + Elf64_Addr reloc_addr_val; + + /* Load value without causing unaligned trap. */ + memcpy (&reloc_addr_val, reloc_addr_1, 8); + sym_value += reloc_addr_val; #ifndef RTLD_BOOTSTRAP if (map == &_dl_rtld_map) { @@ -516,7 +521,8 @@ elf_machine_rela (struct link_map *map, sym_value -= reloc->r_addend; } #endif - *reloc_addr = sym_value; + /* Store value without causing unaligned trap. */ + memcpy (reloc_addr_1, &sym_value, 8); } else _dl_reloc_bad_type (map, r_type, 0); |