Update.
authorUlrich Drepper <drepper@redhat.com>
Thu, 5 Sep 2002 10:28:51 +0000 (10:28 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 5 Sep 2002 10:28:51 +0000 (10:28 +0000)
2002-07-29  Steven Munroe  <sjmunroe@us.ibm.com>

* sysdeps/powerpc/__longjmp.S: Moved to...
* sysdeps/powerpc/powerpc32/__longjmp.S: ...here.
* sysdeps/powerpc/add_n.S: Moved to...
* sysdeps/powerpc/powerpc32/add_n.S: ...here.
* sysdeps/powerpc/addmul_1.S: Moved to...
* sysdeps/powerpc/powerpc32/addmul_1.S: ...here.
* sysdeps/powerpc/atomicity.h: Moved to...
* sysdeps/powerpc/powerpc32/atomicity.h: ...here.
* sysdeps/powerpc/backtrace.c: Moved to...
* sysdeps/powerpc/powerpc32/backtrace.c: ...here.
* sysdeps/powerpc/bp-asm.h: Moved to...
* sysdeps/powerpc/powerpc32/bp-asm.h: ...here.
* sysdeps/powerpc/bsd-_setjmp.S: Moved to...
* sysdeps/powerpc/powerpc32/bsd-_setjmp.S: ...here.
* sysdeps/powerpc/bsd-setjmp.S: Moved to...
* sysdeps/powerpc/powerpc32/bsd-setjmp.S: ...here.
* sysdeps/powerpc/dl-machine.c: Moved to...
* sysdeps/powerpc/powerpc32/dl-machine.c: ...here.
* sysdeps/powerpc/dl-machine.h: Moved to...
* sysdeps/powerpc/powerpc32/dl-machine.h: ...here.
* sysdeps/powerpc/dl-start.S: Moved to...
* sysdeps/powerpc/powerpc32/dl-start.S: ...here.
* sysdeps/powerpc/gprrest0.S: Moved to...
* sysdeps/powerpc/powerpc32/gprrest0.S: ...here.
* sysdeps/powerpc/gprrest1.S: Moved to...
* sysdeps/powerpc/powerpc32/gprrest1.S: ...here.
* sysdeps/powerpc/gprsave0.S: Moved to...
* sysdeps/powerpc/powerpc32/gprsave0.S: ...here.
* sysdeps/powerpc/gprsave1.S: Moved to...
* sysdeps/powerpc/powerpc32/gprsave1.S: ...here.
* sysdeps/powerpc/lshift.S: Moved to...
* sysdeps/powerpc/powerpc32/lshift.S: ...here.
* sysdeps/powerpc/memset.S: Moved to...
* sysdeps/powerpc/powerpc32/memset.S: ...here.
* sysdeps/powerpc/mul_1.S: Moved to...
* sysdeps/powerpc/powerpc32/mul_1.S: ...here.
* sysdeps/powerpc/ppc-mcount.S: Moved to...
* sysdeps/powerpc/powerpc32/ppc-mcount.S: ...here.
* sysdeps/powerpc/register-dump.h: Moved to...
* sysdeps/powerpc/powerpc32/register-dump.h: ...here.
* sysdeps/powerpc/rshift.S: Moved to...
* sysdeps/powerpc/powerpc32/rshift.S: ...here.
* sysdeps/powerpc/setjmp.S: Moved to...
* sysdeps/powerpc/powerpc32/setjmp.S: ...here.
* sysdeps/powerpc/stpcpy.S: Moved to...
* sysdeps/powerpc/powerpc32/stpcpy.S: ...here.
* sysdeps/powerpc/strchr.S: Moved to...
* sysdeps/powerpc/powerpc32/strchr.S: ...here.
* sysdeps/powerpc/strcmp.S: Moved to...
* sysdeps/powerpc/powerpc32/strcmp.S: ...here.
* sysdeps/powerpc/strcpy.S: Moved to...
* sysdeps/powerpc/powerpc32/strcpy.S: ...here.
* sysdeps/powerpc/strlen.S: Moved to...
* sysdeps/powerpc/powerpc32/strlen.S: ...here.
* sysdeps/powerpc/sub_n.S: Moved to...
* sysdeps/powerpc/powerpc32/sub_n.S: ...here.
* sysdeps/powerpc/submul_1.S: Moved to...
* sysdeps/powerpc/powerpc32/submul_1.S: ...here.
* sysdeps/powerpc/elf/bzero.S: Moved to...
* sysdeps/powerpc/powerpc32/elf/bzero.S: ...here.
* sysdeps/powerpc/elf/start.S: Moved to...
* sysdeps/powerpc/powerpc32/elf/start.S: ...here.
* sysdeps/powerpc/fpu/__longjmp.S: Moved to...
* sysdeps/powerpc/powerpc32/fpu/__longjmp.S: ...here.
* sysdeps/powerpc/fpu/fprrest.S: Moved to...
* sysdeps/powerpc/powerpc32/fpu/fprrest.S: ...here.
* sysdeps/powerpc/fpu/fprsave.S: Moved to...
* sysdeps/powerpc/powerpc32/fpu/fprsave.S: ...here.
* sysdeps/powerpc/fpu/setjmp.S: Moved to...
* sysdeps/powerpc/powerpc32/fpu/setjmp.S: ...here.
* sysdeps/powerpc/fpu/s_copysign.S: Moved to...
* sysdeps/powerpc/powerpc32/fpu/s_copysign.S: ...here.
* sysdeps/powerpc/fpu/s_copysignf.S: Moved to...
* sysdeps/powerpc/powerpc32/fpu/s_copysignf.S: ...here.
* sysdeps/unix/sysv/linux/powerpc/brk.S: Moved to...
* sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S: ...here.
* sysdeps/unix/sysv/linux/powerpc/clone.S: Moved to...
* sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: ...here.
* sysdeps/unix/sysv/linux/powerpc/glob64.c: Moved to...
* sysdeps/unix/sysv/linux/powerpc/powerpc32/glob64.c: ...here.
* sysdeps/unix/sysv/linux/powerpc/kernel_stat.h: Moved to...
* sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h: ...here.
* sysdeps/unix/sysv/linux/powerpc/socket.S: Moved to...
* sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S: ...here.
* sysdeps/unix/sysv/linux/powerpc/sysdep.h: Moved to...
* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: ...here.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Moved to...
* sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list: ...here.
Support PowerPC64.  Separate powerpc into powerpc/powerpc32 and
powerpc/powerpc64.

2002-07-29  Steven Munroe  <sjmunroe@us.ibm.com>

* FAQ.in: Add powerpc64 to supported targets list. Also state the
minimum gcc version is 3.2
* README: Add powerpc64 to supported targets list.
* configure.in: Change machine=powerpc to machine=powerpc/powerpc32.
Add powerpc64 and machine=powerpc/powerpc64.
(HAVE_ASM_GLOBAL_DOT_NAME): Define if linux*powerpc/powerpc64*.
* shlib-versions: Set DEFAULT version to 2.2.5 for powerpc64.
* sysdeps/powerpc/Dist: Remove dl-machine.c, dl-start.S, ppc-mcount.S,
gprsave1.S, gprsave0.S, gprrest1.S, and gprrest0.S.
* sysdeps/powerpc/powerpc32/Dist: New file.
* sysdeps/powerpc/Implies: Remove wordsize-32 and powerpc/soft-fp.
* sysdeps/powerpc/powerpc32/Implies: New file.
* sysdeps/powerpc/Makefile(cflags): Remove powerpc32 specific cflags.
($(with-fp) = no): Move test to powerpc32/Makefile.
($(subdir) = misc): Move to powerpc32/Makefile.
($(build-shared) = yes): Move to powerpc32/Makefile.
($(subdir) = csu): Move to powerpc32/Makefile.
(sysdep-rtld-routines): Remove dl-start.  Moved these bits to ...
* sysdeps/powerpc/powerpc32/Makefile: New file.
* sysdeps/powerpc/Versions: Remove libgcc functions.
* sysdeps/powerpc/powerpc32/Versions: New file.
* sysdeps/powerpc/fpu/Makefile: Remove fprsave and fprrest.
* sysdeps/powerpc/powerpc32/fpu/Makefile: New file.
* sysdeps/unix/sysv/linux/configure.in (powerpc*):
Set arch_minimum_kernel=2.4.19 for powerpc/powerpc64. Also set
libc_cv_gcc_unwind_find_fde=yes only if !powerpc/powerpc64.
($machine): Add powerpc/powerpc64 to if ... | for
libc_cv_slibdir=/libc64.
(powerpc*): Set ldd_rewrite_script.
* sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed: New file.
* sysdeps/unix/sysv/linux/powerpc/Dist: Remove clone.S.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/Dist: New file.
Add clone.S.
* sysdeps/unix/sysv/linux/powerpc/Makefile: Remove oldgetrlimit64.
* sysdeps/unix/sysv/linux/powerpc/Versions: Remove GLIBC_2.0
functions.  Remove GLIBC_2.2 functions except getrlimit and
setrlimit.  Moved them to ...
* sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions: New file.

2002-09-04  Ulrich Drepper  <drepper@redhat.com>

* libio/tst-atime.c: Include <errno.h>.
(do_test): Only perform fstatvfs check if ST_NOATIME is defined.

2002-09-03  Isamu Hasegawa  <isamu@yamato.ibm.com>

* posix/regcomp.c (regcomp): Append "__restrict" modifier to avoid
warnings of some compilers.
(build_collating_symbol): Change the type of characters from
"unsigned char" to "char", and append a cast to "char*" pointer in
array subscript.
(build_collating_symbol): Likewise.
(build_equiv_class): Likewise.
(build_charclass): Likewise.
(re_compile_pattern): Remove incorrect cast.
(re_compile_fastmap_iter): Change the type of characters from
"unsigned char" to "char", and append a cast to "char*" pointer
in array subscript.
(parse_bracket_exp): Likewise.
* posix/regex_internal.c (re_string_construct_common): Likewise.
(re_string_allocate): Likewise.
(re_string_construct): Likewise.
(re_string_realloc_buffers): Likewise.
(build_wcs_buffer): Likewise.
(re_string_reconstruct): Likewise.
* posix/regex_internal.h: Change the type of characters in
re_string_t and bracket_elem_t from "unsigned char" to "char".
* posix/regexec.c (regexec): Append "__restrict" modifier to avoid
warnings of some compilers.
(transit_state_bkref_loop): Change the type of characters from
"unsigned char" to "char", and append a cast to "char*" pointer in
array subscript.
(check_node_accept_bytes): Likewise.
(find_collation_sequence_value): Likewise.

73 files changed:
ChangeLog
FAQ.in
README.template
configure.in
libio/tst-atime.c
linuxthreads/ChangeLog
linuxthreads/shlib-versions
linuxthreads/sysdeps/powerpc/powerpc32/pt-machine.h [moved from linuxthreads/sysdeps/powerpc/pt-machine.h with 100% similarity]
posix/regex_internal.c
posix/regex_internal.h
posix/regexec.c
shlib-versions
sysdeps/powerpc/Implies
sysdeps/powerpc/Makefile
sysdeps/powerpc/Versions
sysdeps/powerpc/fpu/Makefile
sysdeps/powerpc/powerpc32/Dist [moved from sysdeps/powerpc/Dist with 100% similarity]
sysdeps/powerpc/powerpc32/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc32/Makefile [new file with mode: 0644]
sysdeps/powerpc/powerpc32/Versions [new file with mode: 0644]
sysdeps/powerpc/powerpc32/__longjmp.S [moved from sysdeps/powerpc/__longjmp.S with 100% similarity]
sysdeps/powerpc/powerpc32/add_n.S [moved from sysdeps/powerpc/add_n.S with 100% similarity]
sysdeps/powerpc/powerpc32/addmul_1.S [moved from sysdeps/powerpc/addmul_1.S with 100% similarity]
sysdeps/powerpc/powerpc32/atomicity.h [moved from sysdeps/powerpc/atomicity.h with 100% similarity]
sysdeps/powerpc/powerpc32/backtrace.c [moved from sysdeps/powerpc/backtrace.c with 100% similarity]
sysdeps/powerpc/powerpc32/bp-asm.h [moved from sysdeps/powerpc/bp-asm.h with 100% similarity]
sysdeps/powerpc/powerpc32/bsd-_setjmp.S [moved from sysdeps/powerpc/bsd-_setjmp.S with 100% similarity]
sysdeps/powerpc/powerpc32/bsd-setjmp.S [moved from sysdeps/powerpc/bsd-setjmp.S with 100% similarity]
sysdeps/powerpc/powerpc32/divdi3.c [moved from sysdeps/powerpc/divdi3.c with 100% similarity]
sysdeps/powerpc/powerpc32/dl-machine.c [moved from sysdeps/powerpc/dl-machine.c with 100% similarity]
sysdeps/powerpc/powerpc32/dl-machine.h [moved from sysdeps/powerpc/dl-machine.h with 100% similarity]
sysdeps/powerpc/powerpc32/dl-start.S [moved from sysdeps/powerpc/dl-start.S with 100% similarity]
sysdeps/powerpc/powerpc32/elf/bzero.S [moved from sysdeps/powerpc/elf/bzero.S with 100% similarity]
sysdeps/powerpc/powerpc32/elf/start.S [moved from sysdeps/powerpc/elf/start.S with 100% similarity]
sysdeps/powerpc/powerpc32/fpu/Makefile [new file with mode: 0644]
sysdeps/powerpc/powerpc32/fpu/__longjmp.S [moved from sysdeps/powerpc/fpu/__longjmp.S with 100% similarity]
sysdeps/powerpc/powerpc32/fpu/fprrest.S [moved from sysdeps/powerpc/fpu/fprrest.S with 100% similarity]
sysdeps/powerpc/powerpc32/fpu/fprsave.S [moved from sysdeps/powerpc/fpu/fprsave.S with 100% similarity]
sysdeps/powerpc/powerpc32/fpu/s_copysign.S [moved from sysdeps/powerpc/fpu/s_copysign.S with 100% similarity]
sysdeps/powerpc/powerpc32/fpu/s_copysignf.S [moved from sysdeps/powerpc/fpu/s_copysignf.S with 100% similarity]
sysdeps/powerpc/powerpc32/fpu/setjmp.S [moved from sysdeps/powerpc/fpu/setjmp.S with 100% similarity]
sysdeps/powerpc/powerpc32/gprrest0.S [moved from sysdeps/powerpc/gprrest0.S with 100% similarity]
sysdeps/powerpc/powerpc32/gprrest1.S [moved from sysdeps/powerpc/gprrest1.S with 100% similarity]
sysdeps/powerpc/powerpc32/gprsave0.S [moved from sysdeps/powerpc/gprsave0.S with 100% similarity]
sysdeps/powerpc/powerpc32/gprsave1.S [moved from sysdeps/powerpc/gprsave1.S with 100% similarity]
sysdeps/powerpc/powerpc32/libgcc-compat.S [moved from sysdeps/powerpc/libgcc-compat.S with 100% similarity]
sysdeps/powerpc/powerpc32/lshift.S [moved from sysdeps/powerpc/lshift.S with 100% similarity]
sysdeps/powerpc/powerpc32/memset.S [moved from sysdeps/powerpc/memset.S with 100% similarity]
sysdeps/powerpc/powerpc32/mul_1.S [moved from sysdeps/powerpc/mul_1.S with 100% similarity]
sysdeps/powerpc/powerpc32/ppc-mcount.S [moved from sysdeps/powerpc/ppc-mcount.S with 100% similarity]
sysdeps/powerpc/powerpc32/register-dump.h [moved from sysdeps/powerpc/register-dump.h with 100% similarity]
sysdeps/powerpc/powerpc32/rshift.S [moved from sysdeps/powerpc/rshift.S with 100% similarity]
sysdeps/powerpc/powerpc32/setjmp.S [moved from sysdeps/powerpc/setjmp.S with 100% similarity]
sysdeps/powerpc/powerpc32/stpcpy.S [moved from sysdeps/powerpc/stpcpy.S with 100% similarity]
sysdeps/powerpc/powerpc32/strchr.S [moved from sysdeps/powerpc/strchr.S with 100% similarity]
sysdeps/powerpc/powerpc32/strcmp.S [moved from sysdeps/powerpc/strcmp.S with 100% similarity]
sysdeps/powerpc/powerpc32/strcpy.S [moved from sysdeps/powerpc/strcpy.S with 100% similarity]
sysdeps/powerpc/powerpc32/strlen.S [moved from sysdeps/powerpc/strlen.S with 100% similarity]
sysdeps/powerpc/powerpc32/sub_n.S [moved from sysdeps/powerpc/sub_n.S with 100% similarity]
sysdeps/powerpc/powerpc32/submul_1.S [moved from sysdeps/powerpc/submul_1.S with 100% similarity]
sysdeps/unix/sysv/linux/configure.in
sysdeps/unix/sysv/linux/powerpc/Dist
sysdeps/unix/sysv/linux/powerpc/Makefile
sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/powerpc32/Dist [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions [moved from sysdeps/unix/sysv/linux/powerpc/Versions with 100% similarity]
sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S [moved from sysdeps/unix/sysv/linux/powerpc/brk.S with 100% similarity]
sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S [moved from sysdeps/unix/sysv/linux/powerpc/clone.S with 100% similarity]
sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h [moved from sysdeps/unix/sysv/linux/powerpc/kernel_stat.h with 100% similarity]
sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S [moved from sysdeps/unix/sysv/linux/powerpc/socket.S with 100% similarity]
sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list [moved from sysdeps/unix/sysv/linux/powerpc/syscalls.list with 100% similarity]
sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h [moved from sysdeps/unix/sysv/linux/powerpc/sysdep.h with 100% similarity]

index 9cf0160b8f3a074e9fffd562908c129ba6f4dc05..e66e1245d22244fdd212c395e856eb2680c4bb91 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,173 @@
+2002-07-29  Steven Munroe  <sjmunroe@us.ibm.com>
+
+       * sysdeps/powerpc/__longjmp.S: Moved to...
+       * sysdeps/powerpc/powerpc32/__longjmp.S: ...here.
+       * sysdeps/powerpc/add_n.S: Moved to...
+       * sysdeps/powerpc/powerpc32/add_n.S: ...here.
+       * sysdeps/powerpc/addmul_1.S: Moved to...
+       * sysdeps/powerpc/powerpc32/addmul_1.S: ...here.
+       * sysdeps/powerpc/atomicity.h: Moved to...
+       * sysdeps/powerpc/powerpc32/atomicity.h: ...here.
+       * sysdeps/powerpc/backtrace.c: Moved to...
+       * sysdeps/powerpc/powerpc32/backtrace.c: ...here.
+       * sysdeps/powerpc/bp-asm.h: Moved to...
+       * sysdeps/powerpc/powerpc32/bp-asm.h: ...here.
+       * sysdeps/powerpc/bsd-_setjmp.S: Moved to...
+       * sysdeps/powerpc/powerpc32/bsd-_setjmp.S: ...here.
+       * sysdeps/powerpc/bsd-setjmp.S: Moved to...
+       * sysdeps/powerpc/powerpc32/bsd-setjmp.S: ...here.
+       * sysdeps/powerpc/dl-machine.c: Moved to...
+       * sysdeps/powerpc/powerpc32/dl-machine.c: ...here.
+       * sysdeps/powerpc/dl-machine.h: Moved to...
+       * sysdeps/powerpc/powerpc32/dl-machine.h: ...here.
+       * sysdeps/powerpc/dl-start.S: Moved to...
+       * sysdeps/powerpc/powerpc32/dl-start.S: ...here.
+       * sysdeps/powerpc/gprrest0.S: Moved to...
+       * sysdeps/powerpc/powerpc32/gprrest0.S: ...here.
+       * sysdeps/powerpc/gprrest1.S: Moved to...
+       * sysdeps/powerpc/powerpc32/gprrest1.S: ...here.
+       * sysdeps/powerpc/gprsave0.S: Moved to...
+       * sysdeps/powerpc/powerpc32/gprsave0.S: ...here.
+       * sysdeps/powerpc/gprsave1.S: Moved to...
+       * sysdeps/powerpc/powerpc32/gprsave1.S: ...here.
+       * sysdeps/powerpc/lshift.S: Moved to...
+       * sysdeps/powerpc/powerpc32/lshift.S: ...here.
+       * sysdeps/powerpc/memset.S: Moved to...
+       * sysdeps/powerpc/powerpc32/memset.S: ...here.
+       * sysdeps/powerpc/mul_1.S: Moved to...
+       * sysdeps/powerpc/powerpc32/mul_1.S: ...here.
+       * sysdeps/powerpc/ppc-mcount.S: Moved to...
+       * sysdeps/powerpc/powerpc32/ppc-mcount.S: ...here.
+       * sysdeps/powerpc/register-dump.h: Moved to...
+       * sysdeps/powerpc/powerpc32/register-dump.h: ...here.
+       * sysdeps/powerpc/rshift.S: Moved to...
+       * sysdeps/powerpc/powerpc32/rshift.S: ...here.
+       * sysdeps/powerpc/setjmp.S: Moved to...
+       * sysdeps/powerpc/powerpc32/setjmp.S: ...here.
+       * sysdeps/powerpc/stpcpy.S: Moved to...
+       * sysdeps/powerpc/powerpc32/stpcpy.S: ...here.
+       * sysdeps/powerpc/strchr.S: Moved to...
+       * sysdeps/powerpc/powerpc32/strchr.S: ...here.
+       * sysdeps/powerpc/strcmp.S: Moved to...
+       * sysdeps/powerpc/powerpc32/strcmp.S: ...here.
+       * sysdeps/powerpc/strcpy.S: Moved to...
+       * sysdeps/powerpc/powerpc32/strcpy.S: ...here.
+       * sysdeps/powerpc/strlen.S: Moved to...
+       * sysdeps/powerpc/powerpc32/strlen.S: ...here.
+       * sysdeps/powerpc/sub_n.S: Moved to...
+       * sysdeps/powerpc/powerpc32/sub_n.S: ...here.
+       * sysdeps/powerpc/submul_1.S: Moved to...
+       * sysdeps/powerpc/powerpc32/submul_1.S: ...here.
+       * sysdeps/powerpc/elf/bzero.S: Moved to...
+       * sysdeps/powerpc/powerpc32/elf/bzero.S: ...here.
+       * sysdeps/powerpc/elf/start.S: Moved to...
+       * sysdeps/powerpc/powerpc32/elf/start.S: ...here.
+       * sysdeps/powerpc/fpu/__longjmp.S: Moved to...
+       * sysdeps/powerpc/powerpc32/fpu/__longjmp.S: ...here.
+       * sysdeps/powerpc/fpu/fprrest.S: Moved to...
+       * sysdeps/powerpc/powerpc32/fpu/fprrest.S: ...here.
+       * sysdeps/powerpc/fpu/fprsave.S: Moved to...
+       * sysdeps/powerpc/powerpc32/fpu/fprsave.S: ...here.
+       * sysdeps/powerpc/fpu/setjmp.S: Moved to...
+       * sysdeps/powerpc/powerpc32/fpu/setjmp.S: ...here.
+       * sysdeps/powerpc/fpu/s_copysign.S: Moved to...
+       * sysdeps/powerpc/powerpc32/fpu/s_copysign.S: ...here.
+       * sysdeps/powerpc/fpu/s_copysignf.S: Moved to...
+       * sysdeps/powerpc/powerpc32/fpu/s_copysignf.S: ...here.
+       * sysdeps/unix/sysv/linux/powerpc/brk.S: Moved to...
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S: ...here.
+       * sysdeps/unix/sysv/linux/powerpc/clone.S: Moved to...
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: ...here.
+       * sysdeps/unix/sysv/linux/powerpc/glob64.c: Moved to...
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/glob64.c: ...here.
+       * sysdeps/unix/sysv/linux/powerpc/kernel_stat.h: Moved to...
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h: ...here.
+       * sysdeps/unix/sysv/linux/powerpc/socket.S: Moved to...
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S: ...here.
+       * sysdeps/unix/sysv/linux/powerpc/sysdep.h: Moved to...
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: ...here.
+       * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Moved to...
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list: ...here.
+       Support PowerPC64.  Separate powerpc into powerpc/powerpc32 and
+       powerpc/powerpc64.
+
+2002-07-29  Steven Munroe  <sjmunroe@us.ibm.com>
+
+       * FAQ.in: Add powerpc64 to supported targets list. Also state the
+       minimum gcc version is 3.2
+       * README: Add powerpc64 to supported targets list.
+       * configure.in: Change machine=powerpc to machine=powerpc/powerpc32.
+       Add powerpc64 and machine=powerpc/powerpc64.
+       (HAVE_ASM_GLOBAL_DOT_NAME): Define if linux*powerpc/powerpc64*.
+       * shlib-versions: Set DEFAULT version to 2.2.5 for powerpc64.
+       * sysdeps/powerpc/Dist: Remove dl-machine.c, dl-start.S, ppc-mcount.S,
+       gprsave1.S, gprsave0.S, gprrest1.S, and gprrest0.S.
+       * sysdeps/powerpc/powerpc32/Dist: New file.
+       * sysdeps/powerpc/Implies: Remove wordsize-32 and powerpc/soft-fp.
+       * sysdeps/powerpc/powerpc32/Implies: New file.
+       * sysdeps/powerpc/Makefile(cflags): Remove powerpc32 specific cflags.
+       ($(with-fp) = no): Move test to powerpc32/Makefile.
+       ($(subdir) = misc): Move to powerpc32/Makefile.
+       ($(build-shared) = yes): Move to powerpc32/Makefile.
+       ($(subdir) = csu): Move to powerpc32/Makefile.
+       (sysdep-rtld-routines): Remove dl-start.  Moved these bits to ...
+       * sysdeps/powerpc/powerpc32/Makefile: New file.
+       * sysdeps/powerpc/Versions: Remove libgcc functions.
+       * sysdeps/powerpc/powerpc32/Versions: New file.
+       * sysdeps/powerpc/fpu/Makefile: Remove fprsave and fprrest.
+       * sysdeps/powerpc/powerpc32/fpu/Makefile: New file.
+       * sysdeps/unix/sysv/linux/configure.in (powerpc*):
+       Set arch_minimum_kernel=2.4.19 for powerpc/powerpc64. Also set
+       libc_cv_gcc_unwind_find_fde=yes only if !powerpc/powerpc64.
+       ($machine): Add powerpc/powerpc64 to if ... | for
+       libc_cv_slibdir=/libc64.
+       (powerpc*): Set ldd_rewrite_script.
+       * sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed: New file.
+       * sysdeps/unix/sysv/linux/powerpc/Dist: Remove clone.S.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/Dist: New file.
+       Add clone.S.
+       * sysdeps/unix/sysv/linux/powerpc/Makefile: Remove oldgetrlimit64.
+       * sysdeps/unix/sysv/linux/powerpc/Versions: Remove GLIBC_2.0
+       functions.  Remove GLIBC_2.2 functions except getrlimit and
+       setrlimit.  Moved them to ...
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions: New file.
+
+2002-09-04  Ulrich Drepper  <drepper@redhat.com>
+
+       * libio/tst-atime.c: Include <errno.h>.
+       (do_test): Only perform fstatvfs check if ST_NOATIME is defined.
+
+2002-09-03  Isamu Hasegawa  <isamu@yamato.ibm.com>
+
+       * posix/regcomp.c (regcomp): Append "__restrict" modifier to avoid
+       warnings of some compilers.
+       (build_collating_symbol): Change the type of characters from
+       "unsigned char" to "char", and append a cast to "char*" pointer in
+       array subscript.
+       (build_collating_symbol): Likewise.
+       (build_equiv_class): Likewise.
+       (build_charclass): Likewise.
+       (re_compile_pattern): Remove incorrect cast.
+       (re_compile_fastmap_iter): Change the type of characters from
+       "unsigned char" to "char", and append a cast to "char*" pointer
+       in array subscript.
+       (parse_bracket_exp): Likewise.
+       * posix/regex_internal.c (re_string_construct_common): Likewise.
+       (re_string_allocate): Likewise.
+       (re_string_construct): Likewise.
+       (re_string_realloc_buffers): Likewise.
+       (build_wcs_buffer): Likewise.
+       (re_string_reconstruct): Likewise.
+       * posix/regex_internal.h: Change the type of characters in
+       re_string_t and bracket_elem_t from "unsigned char" to "char".
+       * posix/regexec.c (regexec): Append "__restrict" modifier to avoid
+       warnings of some compilers.
+       (transit_state_bkref_loop): Change the type of characters from
+       "unsigned char" to "char", and append a cast to "char*" pointer in
+       array subscript.
+       (check_node_accept_bytes): Likewise.
+       (find_collation_sequence_value): Likewise.
+
 2002-09-04  Roland McGrath  <roland@redhat.com>
 
        * resolv/nss_dns/dns-network.c (MAXPACKET): Increase minimum value
diff --git a/FAQ.in b/FAQ.in
index b6d4ac00c5bf45f3e9d524e814f515211e1b5eb7..c5d96c9b6a91482e9016eecc81d890e4327986fc 100644 (file)
--- a/FAQ.in
+++ b/FAQ.in
@@ -30,6 +30,7 @@ in the future, are:
        m68k-*-linux-gnu        Linux-2.x on Motorola 680x0
        alpha*-*-linux-gnu      Linux-2.x on DEC Alpha
        powerpc-*-linux-gnu     Linux and MkLinux on PowerPC systems
+       powerpc64-*-linux-gnu   Linux-2.4+ on 64-bit PowerPC systems
        sparc-*-linux-gnu       Linux-2.x on SPARC
        sparc64-*-linux-gnu     Linux-2.x on UltraSPARC
        arm-*-none              ARM standalone systems
@@ -379,6 +380,11 @@ doesn't handle all cases and needs help from the kernel).
 
 For details check also my page <http://www.suse.de/~aj/glibc-mips.html>.
 
+??powerpc64    Which compiler should I use for powerpc64?
+
+{SM} You want to use at least gcc 3.2 (together with the right versions
+of all the other tools, of course).
+
 ? Installation and configuration issues
 
 ??     Can I replace the libc on my Linux system with GNU libc?
@@ -1668,6 +1674,7 @@ Answers were given by:
 {CG} Cristian Gafton, <gafton@redhat.com>
 {AO} Alexandre Oliva, <aoliva@redhat.com>
 {BH} Bruno Haible, <haible@clisp.cons.org>
+{SM} Steven Munroe, <sjmunroe@us.ibm.com>
 \f
 Local Variables:
  mode:outline
index 68d8054cf48b531a575c0dfec6841c45589e1ae1..0cfca036275ddfa137e4ce698cc6c69662cc80b3 100644 (file)
@@ -10,6 +10,7 @@ configurations:
                m68k-*-linux-gnu        Linux-2.x on Motorola 680x0
                alpha*-*-linux-gnu      Linux-2.x on DEC Alpha
                powerpc-*-linux-gnu     Linux and MkLinux on PowerPC systems
+               powerpc64-*-linux-gnu   Linux-2.4+ on 64-bit PowerPC systems
                sparc-*-linux-gnu       Linux-2.x on SPARC
                sparc64-*-linux-gnu     Linux-2.x on UltraSPARC 64-bit
                arm-*-none              ARM standalone systems
index 025586fa3dfef59d5e6013290dfc7b7e2732e35d..776e26ff528b07fe6a1d8a1bb07a4cefdfb85971 100644 (file)
@@ -313,6 +313,8 @@ m88???)             base_machine=m88k machine=m88k/$machine ;;
 m88k)          base_machine=m88k machine=m88k/m88100 ;;
 mips64*)       base_machine=mips64 machine=mips/mips64/$machine ;;
 mips*)         base_machine=mips machine=mips/$machine ;;
+powerpc)       base_machine=powerpc machine=powerpc/powerpc32 ;;
+powerpc64)     base_machine=powerpc machine=powerpc/powerpc64 ;;
 s390)           base_machine=s390 machine=s390/s390-32 ;;
 s390x)          base_machine=s390 machine=s390/s390-64 ;;
 sh3*)          base_machine=sh machine=sh/sh3 ;;
@@ -895,8 +897,9 @@ if test "x$libc_cv_asm_type_prefix" != xno; then
 fi
 
 # The Aix ld uses global .symbol_names instead of symbol_names.
-case "$os" in
-aix4.3*)
+# Unfortunately also used in the PPC64 ELF ABI.
+case "${os}${machine}" in
+aix4.3* | linux*powerpc/powerpc64*)
   AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
 esac
 
index 488963210e995b06c516b1bab817f14f527dc0d0..0b0b4f04c4716b38c66c413165b82501eec09c99 100644 (file)
@@ -1,3 +1,4 @@
+#include <errno.h>
 #include <fcntl.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -40,6 +41,7 @@ do_test (void)
       return 1;
     }
 
+#ifdef ST_NOATIME
   /* Make sure the filesystem doesn't have the noatime option set.  If
      statvfs is not available just continue.  */
   e = fstatvfs (fd, &sv);
@@ -57,6 +59,7 @@ do_test (void)
          return 0;
        }
     }
+#endif
 
   /* Make sure it gets removed.  */
   add_temp_file (buf);
index 0281b2a46bcf04243277f4fdf5e92d54741d8e8f..08084a46392092e8794bedd576d31146c35315d9 100644 (file)
@@ -1,3 +1,10 @@
+2002-07-29  Steven Munroe  <sjmunroe@us.ibm.com>
+
+       * shlib-versions: Set libpthread version to 2.3 for powerpc64.
+       * sysdeps/powerpc/pt-machine.h: moved to...
+       * sysdeps/powerpc/powerpc32/pt-machine.h: ...here
+       * sysdeps/powerpc/powerpc64/pt-machine.h: New file. 
+
 2002-09-02  Roland McGrath  <roland@redhat.com>
 
        * sysdeps/powerpc/Makefile (CFLAGS-pt-initfini.s): New variable.
index 8046856da65d4afaa82649776ba458553af0a751..58488ce65c6b7317485e6d8e9cd7b1dab1120dd5 100644 (file)
@@ -7,4 +7,5 @@ hppa.*-.*-linux.*       libpthread=0            GLIBC_2.2
 s390x-.*-linux.*       libpthread=0            GLIBC_2.2
 cris-.*-linux.*                libpthread=0            GLIBC_2.2
 x86_64-.*-linux.*      libpthread=0            GLIBC_2.2.5
+powerpc64-.*-linux.*   libpthread=0            GLIBC_2.3
 .*-.*-linux.*          libpthread=0
index 25e7b7e0790f3d24271fda8d333259a89913ed51..c4400a8c23c26f3468f4113bebed77e3cbe181c4 100644 (file)
@@ -57,8 +57,8 @@
 #include "regex.h"
 #include "regex_internal.h"
 
-static void re_string_construct_common (const unsigned char *str,
-                                        int len, re_string_t *pstr,
+static void re_string_construct_common (const char *str, int len,
+                                        re_string_t *pstr,
                                         RE_TRANSLATE_TYPE trans, int icase);
 #ifdef RE_ENABLE_I18N
 static int re_string_skip_chars (re_string_t *pstr, int new_raw_idx);
@@ -86,7 +86,7 @@ static unsigned int inline calc_state_hash (const re_node_set *nodes,
 static reg_errcode_t
 re_string_allocate (pstr, str, len, init_len, trans, icase)
      re_string_t *pstr;
-     const unsigned char *str;
+     const char *str;
      int len, init_len, icase;
      RE_TRANSLATE_TYPE trans;
 {
@@ -99,8 +99,7 @@ re_string_allocate (pstr, str, len, init_len, trans, icase)
   if (BE (ret != REG_NOERROR, 0))
     return ret;
 
-  pstr->mbs_case = (MBS_CASE_ALLOCATED (pstr) ? pstr->mbs_case
-                    : (unsigned char *)str);
+  pstr->mbs_case = (MBS_CASE_ALLOCATED (pstr) ? pstr->mbs_case : (char *) str);
   pstr->mbs = MBS_ALLOCATED (pstr) ? pstr->mbs : pstr->mbs_case;
   pstr->valid_len = (MBS_CASE_ALLOCATED (pstr) || MBS_ALLOCATED (pstr)
                      || MB_CUR_MAX > 1) ? pstr->valid_len : len;
@@ -112,7 +111,7 @@ re_string_allocate (pstr, str, len, init_len, trans, icase)
 static reg_errcode_t
 re_string_construct (pstr, str, len, trans, icase)
      re_string_t *pstr;
-     const unsigned char *str;
+     const char *str;
      int len, icase;
      RE_TRANSLATE_TYPE trans;
 {
@@ -128,8 +127,7 @@ re_string_construct (pstr, str, len, trans, icase)
       if (BE (ret != REG_NOERROR, 0))
         return ret;
     }
-  pstr->mbs_case = (MBS_CASE_ALLOCATED (pstr) ? pstr->mbs_case
-                    : (unsigned char *)str);
+  pstr->mbs_case = (MBS_CASE_ALLOCATED (pstr) ? pstr->mbs_case : (char *) str);
   pstr->mbs = MBS_ALLOCATED (pstr) ? pstr->mbs : pstr->mbs_case;
 
   if (icase)
@@ -178,13 +176,13 @@ re_string_realloc_buffers (pstr, new_buf_len)
 #endif /* RE_ENABLE_I18N  */
   if (MBS_ALLOCATED (pstr))
     {
-      pstr->mbs = re_realloc (pstr->mbs, unsigned char, new_buf_len);
+      pstr->mbs = re_realloc (pstr->mbs, char, new_buf_len);
       if (BE (pstr->mbs == NULL, 0))
         return REG_ESPACE;
     }
   if (MBS_CASE_ALLOCATED (pstr))
     {
-      pstr->mbs_case = re_realloc (pstr->mbs_case, unsigned char, new_buf_len);
+      pstr->mbs_case = re_realloc (pstr->mbs_case, char, new_buf_len);
       if (BE (pstr->mbs_case == NULL, 0))
         return REG_ESPACE;
       if (!MBS_ALLOCATED (pstr))
@@ -197,7 +195,7 @@ re_string_realloc_buffers (pstr, new_buf_len)
 
 static void
 re_string_construct_common (str, len, pstr, trans, icase)
-     const unsigned char *str;
+     const char *str;
      int len;
      re_string_t *pstr;
      RE_TRANSLATE_TYPE trans;
@@ -256,8 +254,9 @@ build_wcs_buffer (pstr)
       /* Apply the translateion if we need.  */
       if (pstr->trans != NULL && mbclen == 1)
         {
-          int ch =  pstr->trans[pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]];
-          pstr->mbs_case[byte_idx] = ch;
+          int ch = *((unsigned char *) pstr->raw_mbs + pstr->raw_mbs_idx
+                     + byte_idx);
+          pstr->mbs_case[byte_idx] = pstr->trans[ch];
         }
       /* Write wide character and padding.  */
       pstr->wcs[byte_idx++] = wc;
@@ -421,9 +420,9 @@ re_string_reconstruct (pstr, idx, eflags, newline)
       pstr->tip_context = ((eflags & REG_NOTBOL) ? CONTEXT_BEGBUF
                            : CONTEXT_NEWLINE | CONTEXT_BEGBUF);
       if (!MBS_CASE_ALLOCATED (pstr))
-        pstr->mbs_case = (unsigned char *)pstr->raw_mbs;
+        pstr->mbs_case = (char *) pstr->raw_mbs;
       if (!MBS_ALLOCATED (pstr) && !MBS_CASE_ALLOCATED (pstr))
-        pstr->mbs = (unsigned char *)pstr->raw_mbs;
+        pstr->mbs = (char *) pstr->raw_mbs;
       offset = idx;
     }
 
index a7f6042935143b7b6c228f71f90f7468b177b806..574bf652b802bdf811399924e51ae0f34dd9fb27 100644 (file)
@@ -228,15 +228,15 @@ struct re_string_t
 {
   /* Indicate the raw buffer which is the original string passed as an
      argument of regexec(), re_search(), etc..  */
-  const unsigned char *raw_mbs;
+  const char *raw_mbs;
   /* Store the multibyte string.  In case of "case insensitive mode" like
      REG_ICASE, upper cases of the string are stored, otherwise MBS points
      the same address that RAW_MBS points.  */
-  unsigned char *mbs;
+  char *mbs;
   /* Store the case sensitive multibyte string.  In case of
      "case insensitive mode", the original string are stored,
      otherwise MBS_CASE points the same address that MBS points.  */
-  unsigned char *mbs_case;
+  char *mbs_case;
 #ifdef RE_ENABLE_I18N
   /* Store the wide character string which is corresponding to MBS.  */
   wint_t *wcs;
@@ -275,13 +275,12 @@ typedef struct re_string_t re_string_t;
 #define MBS_CASE_ALLOCATED(pstr) (pstr->trans != NULL)
 
 
-static reg_errcode_t re_string_allocate (re_string_t *pstr,
-                                         const unsigned char *str, int len,
-                                         int init_len,
+static reg_errcode_t re_string_allocate (re_string_t *pstr, const char *str,
+                                         int len, int init_len,
                                          RE_TRANSLATE_TYPE trans, int icase);
-static reg_errcode_t re_string_construct (re_string_t *pstr,
-                                         const unsigned char *str, int len,
-                                          RE_TRANSLATE_TYPE trans, int icase);
+static reg_errcode_t re_string_construct (re_string_t *pstr, const char *str,
+                                          int len, RE_TRANSLATE_TYPE trans,
+                                          int icase);
 static reg_errcode_t re_string_reconstruct (re_string_t *pstr, int idx,
                                             int eflags, int newline);
 static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr,
@@ -513,7 +512,7 @@ typedef struct
   union
   {
     unsigned char ch;
-    unsigned char *name;
+    char *name;
     wchar_t wch;
   } opr;
 } bracket_elem_t;
@@ -581,8 +580,7 @@ re_string_elem_size_at (pstr, idx)
      int idx;
 {
 #ifdef _LIBC
-  const unsigned char *p;
-  const char *extra;
+  const char *extra, *p;
   const int32_t *table, *indirect;
   int32_t tmp;
 # include <locale/weight.h>
@@ -595,8 +593,8 @@ re_string_elem_size_at (pstr, idx)
       indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE,
                                                _NL_COLLATE_INDIRECTMB);
       p = pstr->mbs + idx;
-      tmp = findidx (&p);
-      return p - (const unsigned char *) pstr->mbs - idx;
+      tmp = findidx ((const unsigned char **) &p);
+      return p - pstr->mbs - idx;
     }
   else
 #endif /* _LIBC */
index f9b162b13c73ee2b9616abbe5819849fc8ec9c15..4a9c64a1918706abe907bc89a1f2d20f79216673 100644 (file)
@@ -123,7 +123,7 @@ static re_dfastate_t **build_trtable (const regex_t *dfa,
 static int check_node_accept_bytes (const regex_t *preg, int node_idx,
                                     const re_string_t *input, int idx);
 # ifdef _LIBC
-static unsigned int find_collation_sequence_value (const unsigned char *mbs,
+static unsigned int find_collation_sequence_value (const char *mbs,
                                                    size_t name_len);
 # endif /* _LIBC */
 #endif /* RE_ENABLE_I18N */
@@ -153,8 +153,8 @@ static reg_errcode_t extend_buffers (re_match_context_t *mctx);
 
 int
 regexec (preg, string, nmatch, pmatch, eflags)
-    const regex_t *preg;
-    const char *string;
+    const regex_t *__restrict preg;
+    const char *__restrict string;
     size_t nmatch;
     regmatch_t pmatch[];
     int eflags;
@@ -1621,7 +1621,7 @@ transit_state_bkref_loop (preg, nodes, work_state_log, mctx)
 
   for (i = 0; i < nodes->nelem; ++i)
     {
-      unsigned char *buf;
+      char *buf;
       int dest_str_idx, subexp_idx, prev_nelem, subexp_len;
       int node_idx = nodes->elems[i];
       unsigned int context;
@@ -2069,7 +2069,7 @@ check_node_accept_bytes (preg, node_idx, input, str_idx)
     {
       const re_charset_t *cset = node->opr.mbcset;
 # ifdef _LIBC
-      const unsigned char *pin = re_string_get_buffer (input) + str_idx;
+      const char *pin = re_string_get_buffer (input) + str_idx;
 # endif /* _LIBC */
       int match_len = 0;
       wchar_t wc = ((cset->nranges || cset->nchar_classes || cset->nmbchars)
@@ -2098,18 +2098,17 @@ check_node_accept_bytes (preg, node_idx, input, str_idx)
         {
           unsigned int in_collseq = 0;
           const int32_t *table, *indirect;
-          const unsigned char *weights, *extra, *collseqwc;
+          const char *weights, *extra, *collseqwc;
           int32_t idx;
           /* This #include defines a local function!  */
 #  include <locale/weight.h>
 
           /* match with collating_symbol?  */
           if (cset->ncoll_syms)
-            extra = (const unsigned char *)
-              _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB);
+            extra = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB);
           for (i = 0; i < cset->ncoll_syms; ++i)
             {
-              const unsigned char *coll_sym = extra + cset->coll_syms[i];
+              const char *coll_sym = extra + cset->coll_syms[i];
               /* Compare the length of input collating element and
                  the length of current collating element.  */
               if (*coll_sym != elem_len)
@@ -2148,13 +2147,11 @@ check_node_accept_bytes (preg, node_idx, input, str_idx)
           /* match with equivalence_class?  */
           if (cset->nequiv_classes)
             {
-              const unsigned char *cp = pin;
+              const unsigned char *cp = (const unsigned char *) pin;
               table = (const int32_t *)
                 _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB);
-              weights = (const unsigned char *)
-                _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTMB);
-              extra = (const unsigned char *)
-                _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB);
+              weights = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTMB);
+              extra = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB);
               indirect = (const int32_t *)
                 _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB);
               idx = findidx (&cp);
@@ -2183,7 +2180,12 @@ check_node_accept_bytes (preg, node_idx, input, str_idx)
 # endif /* _LIBC */
         {
           /* match with range expression?  */
-          wchar_t cmp_buf[6] = {L'\0', L'\0', wc, L'\0', L'\0', L'\0'};
+#if __GNUC__ >= 2
+          wchar_t cmp_buf[] = {L'\0', L'\0', wc, L'\0', L'\0', L'\0'};
+#else
+          wchar_t cmp_buf[] = {L'\0', L'\0', L'\0', L'\0', L'\0', L'\0'};
+          cmp_buf[2] = wc;
+#endif
           for (i = 0; i < cset->nranges; ++i)
             {
               cmp_buf[0] = cset->range_starts[i];
@@ -2213,7 +2215,7 @@ check_node_accept_bytes (preg, node_idx, input, str_idx)
 # ifdef _LIBC
 static unsigned int
 find_collation_sequence_value (mbs, mbs_len)
-    const unsigned char *mbs;
+    const char *mbs;
     size_t mbs_len;
 {
   uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
@@ -2224,7 +2226,7 @@ find_collation_sequence_value (mbs, mbs_len)
           /* No valid character.  Match it as a single byte character.  */
           const unsigned char *collseq = (const unsigned char *)
             _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQMB);
-          return collseq[mbs[0]];
+          return collseq[*(unsigned char *) mbs];
         }
       return UINT_MAX;
     }
index c9cb01c21563af49a49e2e9508937be9f96bcc80..72cbb4af0edc367076923f81b92126e1de70bb5b 100644 (file)
@@ -24,6 +24,7 @@
 s390x-.*-linux.*        DEFAULT                        GLIBC_2.2
 cris-.*-linux.*                DEFAULT                 GLIBC_2.2
 x86_64-.*-linux.*       DEFAULT                        GLIBC_2.2.5
+powerpc64-.*-linux.*   DEFAULT                 GLIBC_2.3
 .*-.*-gnu-gnu.*                DEFAULT                 GLIBC_2.2.6
 
 # Configuration                Library=version         Earliest symbol set (optional)
@@ -69,6 +70,7 @@ ia64-.*-linux.*               ld=ld-linux-ia64.so.2   GLIBC_2.2
 mips.*-.*-linux.*      ld=ld.so.1              GLIBC_2.0 GLIBC_2.2
 hppa.*-.*-.*           ld=ld.so.1              GLIBC_2.2
 s390x-.*-linux.*       ld=ld64.so.1            GLIBC_2.2
+powerpc64.*-.*-linux.* ld=ld64.so.1            GLIBC_2.3
 cris-.*-linux.*                ld=ld.so.1              GLIBC_2.2
 x86_64-.*-linux.*      ld=ld-linux-x86-64.so.2 GLIBC_2.2.5
 # We use the ELF ABI standard name for the default.
index 7009ffeadab65b468f95c81486473a5f071c2285..12ca48b4c9ab96a0ffd9eb3764a7073a443cac09 100644 (file)
@@ -1,4 +1,2 @@
-wordsize-32
 ieee754/flt-32
 ieee754/dbl-64
-powerpc/soft-fp
index 0737f6f2d33ddf2feae6854469ed610f5c14d705..befa9c3bb755f044d66051dfeddf9156b3ce9e9a 100644 (file)
@@ -1,51 +1,11 @@
 # We always want to use the new mnemonic syntax even if we are on a RS6000
 # machine.
-+cflags += -mnew-mnemonics -Wa,-mppc -mpowerpc
-asm-CPPFLAGS += -Wa,-mppc
-
-ifeq ($(with-fp),no)
-+cflags += -msoft-float
-sysdep-LDFLAGS += -msoft-float
-endif
++cflags += -mnew-mnemonics
 
 ifeq ($(subdir),gmon)
 sysdep_routines += ppc-mcount
 endif
 
-ifeq ($(subdir),misc)
-sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1
-endif
-
-# On PPC, -fpic works until the GOT contains 2^15 bytes, and possibly
-# more depending on how clever the linker is.  Each GOT entry takes 4 bytes,
-# so that's at least 8192 entries.  Since libc only uses about 2000 entries,
-# we want to use -fpic, because this generates fewer relocs.
-ifeq (yes,$(build-shared))
-pic-ccflag = -fpic
-endif
-
-ifeq ($(subdir),csu)
-ifneq ($(elf),no)
-# The initfini generation code doesn't work in the presence of -fPIC, so
-# we use -fpic instead which is much better.
-CFLAGS-initfini.s = -g0 -fpic -O1
-
-# There is no benefit to using sdata for these objects, and the user
-# of the library should be able to control what goes into sdata.
-CFLAGS-init.o = -G0
-CFLAGS-gmon-start.o = -G0
-endif
-ifeq (yes,$(build-shared))
-# Compatibility
-ifeq (yes,$(have-protected))
-CPPFLAGS-divdi3.c = -DHAVE_DOT_HIDDEN
-CPPFLAGS-libgcc-compat.S = -DHAVE_DOT_HIDDEN
-endif
-sysdep_routines += divdi3 libgcc-compat
-shared-only-routines += divdi3 libgcc-compat
-endif
-endif
-
 ifeq ($(subdir),string)
 CFLAGS-memcmp.c += -Wno-uninitialized
 endif
@@ -55,5 +15,5 @@ ifeq ($(subdir),elf)
 sysdep-dl-routines += dl-machine
 sysdep_routines += dl-machine
 # extra shared linker files to link only into dl-allobjs.so
-sysdep-rtld-routines += dl-machine dl-start
+sysdep-rtld-routines += dl-machine
 endif
index e26809a3c7a7c14023e1c2565af207bbbf20569d..b7d5bf904b30f53db3dd2ab5f6bcda8f91fe5757 100644 (file)
@@ -1,38 +1,6 @@
-libc {
-  GLIBC_2.0 {
-    # Functions from libgcc.
-    __divdi3; __moddi3; __udivdi3; __umoddi3;
-    __cmpdi2; __ucmpdi2;
-    __ashldi3; __ashrdi3; __lshrdi3;
-    __fixdfdi; __fixunsdfdi;
-    __fixsfdi; __fixunssfdi;
-    __floatdidf; __floatdisf;
-  }
-}
-
 libm {
   GLIBC_2.1 {
     # symbols used in macros from sysdeps/powerpc/bits/fenv.h
     __fe_dfl_env; __fe_enabled_env; __fe_nonieee_env; __fe_nomask_env;
   }
-  GLIBC_2.2 {
-    # Special functions to save and restore registers used by the
-    # runtime libraries.
-    _restgpr0_13; _restgpr0_14; _restgpr0_15; _restgpr0_16; _restgpr0_17;
-    _restgpr0_18; _restgpr0_19; _restgpr0_20; _restgpr0_21; _restgpr0_22;
-    _restgpr0_22; _restgpr0_23; _restgpr0_24; _restgpr0_25; _restgpr0_26;
-    _restgpr0_27; _restgpr0_28; _restgpr0_29; _restgpr0_30; _restgpr0_31;
-    _savegpr0_13; _savegpr0_14; _savegpr0_15; _savegpr0_16; _savegpr0_17;
-    _savegpr0_18; _savegpr0_19; _savegpr0_20; _savegpr0_21; _savegpr0_22;
-    _savegpr0_22; _savegpr0_23; _savegpr0_24; _savegpr0_25; _savegpr0_26;
-    _savegpr0_27; _savegpr0_28; _savegpr0_29; _savegpr0_30; _savegpr0_31;
-    _restgpr1_13; _restgpr1_14; _restgpr1_15; _restgpr1_16; _restgpr1_17;
-    _restgpr1_18; _restgpr1_19; _restgpr1_20; _restgpr1_21; _restgpr1_22;
-    _restgpr1_22; _restgpr1_23; _restgpr1_24; _restgpr1_25; _restgpr1_26;
-    _restgpr1_27; _restgpr1_28; _restgpr1_29; _restgpr1_30; _restgpr1_31;
-    _savegpr1_13; _savegpr1_14; _savegpr1_15; _savegpr1_16; _savegpr1_17;
-    _savegpr1_18; _savegpr1_19; _savegpr1_20; _savegpr1_21; _savegpr1_22;
-    _savegpr1_22; _savegpr1_23; _savegpr1_24; _savegpr1_25; _savegpr1_26;
-    _savegpr1_27; _savegpr1_28; _savegpr1_29; _savegpr1_30; _savegpr1_31;
-  }
 }
index 391cf3caf95cb3022f4c01e749eb7a2a9e618c2c..bf2ed92e7b05a36f5f5ff23b1de88deb32b06454 100644 (file)
@@ -1,6 +1,3 @@
 ifeq ($(subdir),math)
 libm-support += fenv_const fe_nomask t_sqrt
 endif
-ifeq ($(subdir),misc)
-sysdep_routines += fprsave fprrest
-endif
diff --git a/sysdeps/powerpc/powerpc32/Implies b/sysdeps/powerpc/powerpc32/Implies
new file mode 100644 (file)
index 0000000..9ef3ac1
--- /dev/null
@@ -0,0 +1,2 @@
+wordsize-32
+powerpc/soft-fp
diff --git a/sysdeps/powerpc/powerpc32/Makefile b/sysdeps/powerpc/powerpc32/Makefile
new file mode 100644 (file)
index 0000000..d687ab4
--- /dev/null
@@ -0,0 +1,48 @@
+# Powerpc32 specific build options.
+
++cflags += -Wa,-mppc -mpowerpc
+asm-CPPFLAGS += -Wa,-mppc
+
+ifeq ($(with-fp),no)
++cflags += -msoft-float
+sysdep-LDFLAGS += -msoft-float
+endif
+
+ifeq ($(subdir),misc)
+sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1
+endif
+
+# On PPC, -fpic works until the GOT contains 215 bytes, and possibly
+# more depending on how clever the linker is.  Each GOT entry takes 4 bytes,
+# so that's at least 8192 entries.  Since libc only uses about 2000 entries,
+# we want to use -fpic, because this generates fewer relocs.
+ifeq (yes,$(build-shared))
+pic-ccflag = -fpic
+endif
+
+ifeq ($(subdir),csu)
+ifneq ($(elf),no)
+# The initfini generation code doesn't work in the presence of -fPIC, so
+# we use -fpic instead which is much better.
+CFLAGS-initfini.s = -g0 -fpic -O1
+
+# There is no benefit to using sdata for these objects, and the user
+# of the library should be able to control what goes into sdata.
+CFLAGS-init.o = -G0
+CFLAGS-gmon-start.o = -G0
+endif
+ifeq (yes,$(build-shared))
+# Compatibility
+ifeq (yes,$(have-protected))
+CPPFLAGS-divdi3.c = -DHAVE_DOT_HIDDEN
+CPPFLAGS-libgcc-compat.S = -DHAVE_DOT_HIDDEN
+endif
+sysdep_routines += divdi3 libgcc-compat
+shared-only-routines += divdi3 libgcc-compat
+endif
+endif
+
+ifeq ($(subdir),elf)
+# extra shared linker files to link only into dl-allobjs.so
+sysdep-rtld-routines += dl-start
+endif
diff --git a/sysdeps/powerpc/powerpc32/Versions b/sysdeps/powerpc/powerpc32/Versions
new file mode 100644 (file)
index 0000000..3635c4a
--- /dev/null
@@ -0,0 +1,34 @@
+libc {
+  GLIBC_2.0 {
+    # Functions from libgcc.
+    __divdi3; __moddi3; __udivdi3; __umoddi3;
+    __cmpdi2; __ucmpdi2;
+    __ashldi3; __ashrdi3; __lshrdi3;
+    __fixdfdi; __fixunsdfdi;
+    __fixsfdi; __fixunssfdi;
+    __floatdidf; __floatdisf;
+  }
+}
+
+libm {
+  GLIBC_2.2 {
+    # Special functions to save and restore registers used by the
+    # runtime libraries.
+    _restgpr0_13; _restgpr0_14; _restgpr0_15; _restgpr0_16; _restgpr0_17;
+    _restgpr0_18; _restgpr0_19; _restgpr0_20; _restgpr0_21; _restgpr0_22;
+    _restgpr0_22; _restgpr0_23; _restgpr0_24; _restgpr0_25; _restgpr0_26;
+    _restgpr0_27; _restgpr0_28; _restgpr0_29; _restgpr0_30; _restgpr0_31;
+    _savegpr0_13; _savegpr0_14; _savegpr0_15; _savegpr0_16; _savegpr0_17;
+    _savegpr0_18; _savegpr0_19; _savegpr0_20; _savegpr0_21; _savegpr0_22;
+    _savegpr0_22; _savegpr0_23; _savegpr0_24; _savegpr0_25; _savegpr0_26;
+    _savegpr0_27; _savegpr0_28; _savegpr0_29; _savegpr0_30; _savegpr0_31;
+    _restgpr1_13; _restgpr1_14; _restgpr1_15; _restgpr1_16; _restgpr1_17;
+    _restgpr1_18; _restgpr1_19; _restgpr1_20; _restgpr1_21; _restgpr1_22;
+    _restgpr1_22; _restgpr1_23; _restgpr1_24; _restgpr1_25; _restgpr1_26;
+    _restgpr1_27; _restgpr1_28; _restgpr1_29; _restgpr1_30; _restgpr1_31;
+    _savegpr1_13; _savegpr1_14; _savegpr1_15; _savegpr1_16; _savegpr1_17;
+    _savegpr1_18; _savegpr1_19; _savegpr1_20; _savegpr1_21; _savegpr1_22;
+    _savegpr1_22; _savegpr1_23; _savegpr1_24; _savegpr1_25; _savegpr1_26;
+    _savegpr1_27; _savegpr1_28; _savegpr1_29; _savegpr1_30; _savegpr1_31;
+  }
+}
diff --git a/sysdeps/powerpc/powerpc32/fpu/Makefile b/sysdeps/powerpc/powerpc32/fpu/Makefile
new file mode 100644 (file)
index 0000000..e050739
--- /dev/null
@@ -0,0 +1,3 @@
+ifeq ($(subdir),misc)
+sysdep_routines += fprsave fprrest
+endif
index 1873e4ecf67bf85ba995df46e73b0814d384dc7b..4d52ee539ca3cfdf03c07dc39ba46061d0d7422f 100644 (file)
@@ -74,10 +74,13 @@ case "$machine" in
     arch_minimum_kernel=2.4.0
     libc_cv_gcc_unwind_find_fde=yes
     ;;
-  powerpc*)
+  powerpc/powerpc32)
     libc_cv_gcc_unwind_find_fde=yes
     arch_minimum_kernel=2.0.10
     ;;
+  powerpc/powerpc64)
+    arch_minimum_kernel=2.4.19
+    ;;
   s390/s390-32)
     libc_cv_gcc_unwind_find_fde=yes
     arch_minimum_kernel=2.2.10
@@ -151,7 +154,8 @@ fi
 # in /lib and /etc.
 if test "$prefix" = "/usr" -o "$prefix" = "/usr/"; then
   # 64bit libraries on sparc go to /lib64 and not /lib
-  if test "$machine" = "sparc/sparc64" -o "$machine" = "x86_64"; then
+  if test "$machine" = "sparc/sparc64" -o "$machine" = "x86_64" \
+         -o "$machine" = "powerpc/powerpc64"; then
     libc_cv_slibdir="/lib64"
     if test "$libdir" = '${exec_prefix}/lib'; then
       libdir='${exec_prefix}/lib64';
@@ -235,6 +239,9 @@ case "$machine" in
   x86_64*)
     ldd_rewrite_script=../sysdeps/unix/sysv/linux/x86_64/ldd-rewrite.sed
     ;;
+  powerpc*)
+    ldd_rewrite_script=../sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed
+    ;;
   *)
     ;;
 esac
index 2cd4c796ea563cc5b065a4961142d2a21ebf45b5..4f09f64323c4043fad6dbb9a6e428f1cf6e998b5 100644 (file)
@@ -1,4 +1,3 @@
-clone.S
 dl-brk.S
 fe_nomask.c
 ipc_priv.h
index 931611f4db2f2feb021c0e0fb274b7b95320515b..9d02acecc4b12152e4f7519b880757a38fe1560c 100644 (file)
@@ -2,7 +2,3 @@ ifeq ($(subdir),signal)
 sysdep_routines += rt_sigsuspend rt_sigprocmask rt_sigtimedwait        \
                   rt_sigqueueinfo rt_sigaction rt_sigpending
 endif
-
-ifeq ($(subdir),resource)
-sysdep_routines += oldgetrlimit64
-endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed
new file mode 100644 (file)
index 0000000..9039b69
--- /dev/null
@@ -0,0 +1,15 @@
+/LD_TRACE_LOADED_OBJECTS=1/a\
+add_env="$add_env LD_LIBRARY_VERSION=\\$verify_out"
+
+# ldd is generated from elf/ldd.bash.in with the name
+# of ld.so as generated in Makeconfig
+
+# that name is replaced by a pair referring to both
+# the 32bit and 64bit dynamic linker.
+
+# /lib(64|)/*(64|).so* is replaced with /lib/*.so* and /lib64/*64.so*
+# this works for /lib64/ld64.so.x and /lib/ld.so.x as input
+s_lib64_lib_
+s_64\.so_\.so_
+s_^RTLDLIST=\(.*lib\)\(/[^/]*\)\(\.so\.[0-9.]*\)[[:blank:]]*$_RTLDLIST="\1\2\3 \164\264\3"_
+
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/Dist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/Dist
new file mode 100644 (file)
index 0000000..738b9cc
--- /dev/null
@@ -0,0 +1 @@
+clone.S
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile b/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile
new file mode 100644 (file)
index 0000000..966a768
--- /dev/null
@@ -0,0 +1,3 @@
+ifeq ($(subdir),resource)
+sysdep_routines += oldgetrlimit64
+endif