This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
[PATCH] PowerPC64 port part 2 of 7
- From: Steven Munroe <sjmunroe at vnet dot ibm dot com>
- To: libc-alpha at sources dot redhat dot com
- Cc: aj at suse dot de
- Date: Mon, 19 Aug 2002 13:53:03 -0500
- Subject: [PATCH] PowerPC64 port part 2 of 7
PowerPC64 part 2 of 7 follows:
2002-07-29 Steven Munroe <sjmunroe@us.ibm.com>
* FAQ.in: Add powerpc64 to supported targets list. Also the minimum gcc
version is 3.1.1.
* Makeconfig: Don't force -fPIC for powerpc64.
* Makerules: Powerpc64 requires dot symbols so pass this info on to
versions.awk.
* README: Add powerpc64 to supported targets list.
* configure, configure.in: Add powerpc64 to supported targets and select
powerpc/ppc32 or powerpc/ppc64 directores as needed.
Also define HAVE_ASM_GLOBAL_DOT_NAME in config.h.
Also set libc_cv_gcc_dwarf2_unwind_info=no as powperpc64's first release
is gcc-3.1.1/glibc-2.2.5 we don't need gcc-2.95 compatibility.
Patch by Alan Modra <amodra@bigpond.net.au>
* scripts/config.guess: Add powerpc64 to supported targets.
Patch by Alan Modra <amodra@bigpond.net.au>
* scripts/config.sub: Add powerpc64 to supported targets.
* scripts/versions.awk: Add support for dot symbols as required by powerpc64.
Patch by Alan Modra <amodra@bigpond.net.au>
* shlib-versions: Set DEFAULT version to 2.2.5 for powerpc64.
* sysdeps/unix/sysv/linux/configure & configure.in:
Set arch_minimum_kernel=2.4.13 for powerpc64. Also move *.so's to /lib64.
Also use ldd-rewrite.sed from sysdeps/unix/sysv/linux/powerpc/.
* sysdeps/unix/sysv/linux/kernel-features.h: Select features for
powerpc64 and 2.4.13 kernel.
* sysdeps/powerpc/Dist: Remove 32-/64-bit dependent enties.
* sysdeps/powerpc/ppc32/Dist: New file. Include 32-bit dependent enties
from sysdeps/powerpc/Dist.
* sysdeps/powerpc/Implies: Remove wordsize-32 and powerpc/soft-fp enties.
* sysdeps/powerpc/ppc32/Implies: New file. Add entries for wordsize-32
and powerpc/soft-fp.
* sysdeps/powerpc/Makefile: Remove powerpc32 specific flags -Wa,-mppc
* sysdeps/powerpc/ppc32/Makefile: New file. Specify powerpc32 flags
-Wa,-mppc.
* sysdeps/powerpc/ppc32/Versions: New file. version fpr and gpr
save/restore symbols.
* sysdeps/unix/sysv/linux/powerpc/Dist: Remove clone.S from list
* sysdeps/unix/sysv/linux/powerpc/ppc32/Dist: New file. Add clone.S to list.
>>>>>>>> ppc64-config-20020815.patch
diff -rc2PN -x *.orig libc23-cvstip-20020815/FAQ.in libc23/FAQ.in
*** libc23-cvstip-20020815/FAQ.in Sun May 19 13:37:21 2002
--- libc23/FAQ.in Thu Aug 15 16:54:50 2002
***************
*** 31,34 ****
--- 31,35 ----
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
***************
*** 101,104 ****
--- 102,110 ----
of all the other tools, of course). See also ?excpt.
+ ??powerpc64 Which compiler should I use for powerpc64?
+
+ {SM} You want to use at least gcc 3.1.1 (together with the right versions
+ of all the other tools, of course).
+
??arm Which tools should I use for ARM?
***************
*** 1669,1672 ****
--- 1675,1679 ----
{AO} Alexandre Oliva, <aoliva@redhat.com>
{BH} Bruno Haible, <haible@clisp.cons.org>
+ {SM} Steven Munroe, <sjmunroe@us.ibm.com>
Local Variables:
diff -rc2PN -x *.orig libc23-cvstip-20020815/Makeconfig libc23/Makeconfig
*** libc23-cvstip-20020815/Makeconfig Tue Apr 30 17:00:46 2002
--- libc23/Makeconfig Thu Aug 15 16:54:50 2002
***************
*** 667,671 ****
--- 667,674 ----
libtype.os := lib%_pic.a
# This can be changed by a sysdep makefile
+ # PPC64 is always so gcc complains if you specify -fpic or -fPIC
+ ifneq (powerpc64,$(config-machine))
pic-ccflag = -fPIC
+ endif
endif
ifeq (yes,$(build-profile))
diff -rc2PN -x *.orig libc23-cvstip-20020815/Makerules libc23/Makerules
*** libc23-cvstip-20020815/Makerules Sun Aug 4 20:21:06 2002
--- libc23/Makerules Thu Aug 15 16:54:50 2002
***************
*** 296,299 ****
--- 296,300 ----
| LC_ALL=C $(AWK) -v buildroot=$(common-objpfx) -v defsfile=$< \
-v move_if_change='$(move-if-change)' \
+ -v dotsyms=$(if $findstring(powerpc64,$(config-machine)),1,0) \
-f $(word 3,$^); \
) > $@T
diff -rc2PN -x *.orig libc23-cvstip-20020815/README libc23/README
*** libc23-cvstip-20020815/README Thu Dec 6 17:48:26 2001
--- libc23/README Thu Aug 15 16:54:50 2002
***************
*** 11,14 ****
--- 11,15 ----
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
diff -rc2PN -x *.orig libc23-cvstip-20020815/configure.in libc23/configure.in
*** libc23-cvstip-20020815/configure.in Thu Aug 15 00:59:53 2002
--- libc23/configure.in Thu Aug 15 16:54:50 2002
***************
*** 313,316 ****
--- 313,318 ----
mips64*) base_machine=mips64 machine=mips/mips64/$machine ;;
mips*) base_machine=mips machine=mips/$machine ;;
+ powerpc) base_machine=powerpc machine=powerpc/ppc32 ;;
+ powerpc64) base_machine=powerpc machine=powerpc/ppc64 ;;
s390) base_machine=s390 machine=s390/s390-32 ;;
s390x) base_machine=s390 machine=s390/s390-64 ;;
***************
*** 874,879 ****
# The Aix ld uses global .symbol_names instead of symbol_names.
! case "$os" in
! aix4.3*)
AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
esac
--- 876,882 ----
# The Aix ld uses global .symbol_names instead of symbol_names.
! # So does powerpc64-linux
! case "${os}${machine}" in
! aix4.3* | linux*powerpc/ppc64*)
AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
esac
***************
*** 1455,1458 ****
--- 1458,1474 ----
-o conftest conftest.c -lgcc >&AC_FD_CC]); then
libc_cv_gcc_dwarf2_unwind_info=static
+ else
+ libc_cv_gcc_dwarf2_unwind_info=no
+ fi
+ if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info
+ -nostdlib -nostartfiles
+ -o conftest conftest.c -lgcc -lgcc_eh >&AC_FD_CC]); then
+ if ${CC-cc} $CFLAGS -DCHECK__register_frame_info -nostdlib -nostartfiles \
+ -o conftest conftest.c -lgcc -lgcc_eh -v 2>&1 >/dev/null \
+ | grep -q -- --eh-frame-hdr; then
+ libc_cv_gcc_dwarf2_unwind_info=no_registry_needed
+ else
+ libc_cv_gcc_dwarf2_unwind_info=static
+ fi
else
libc_cv_gcc_dwarf2_unwind_info=no
diff -rc2PN -x *.orig libc23-cvstip-20020815/scripts/config.guess libc23/scripts/config.guess
*** libc23-cvstip-20020815/scripts/config.guess Thu Jul 4 02:15:21 2002
--- libc23/scripts/config.guess Thu Aug 15 16:54:50 2002
***************
*** 822,825 ****
--- 822,854 ----
echo powerpc64-unknown-linux-gnu
exit 0 ;;
+ ppc64:Linux:*:*)
+ # Determine Lib Version
+ cat >$dummy.c <<EOF
+ #include <features.h>
+ #if defined(__GLIBC__)
+ extern char __libc_version[];
+ extern char __libc_release[];
+ #endif
+ main(argc, argv)
+ int argc;
+ char *argv[];
+ {
+ #if defined(__GLIBC__)
+ printf("%s %s\n", __libc_version, __libc_release);
+ #else
+ printf("unknown\n");
+ #endif
+ return 0;
+ }
+ EOF
+ LIBC=""
+ $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null
+ if test "$?" = 0 ; then
+ ./$dummy | grep 1\.99 > /dev/null
+ if test "$?" = 0 ; then LIBC="libc1" ; fi
+ fi
+ rm -f $dummy.c $dummy
+ echo powerpc64-unknown-linux-gnu${LIBC}
+ exit 0 ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
diff -rc2PN -x *.orig libc23-cvstip-20020815/scripts/versions.awk libc23/scripts/versions.awk
*** libc23-cvstip-20020815/scripts/versions.awk Wed Feb 6 23:24:29 2002
--- libc23/scripts/versions.awk Thu Aug 15 16:54:50 2002
***************
*** 121,124 ****
--- 121,131 ----
}
printf("\n") > outfile;
+ if (dotsyms) {
+ printf(" ") > outfile;
+ for (n = 3; n <= NF; ++n) {
+ printf(" .%s", $n) > outfile;
+ }
+ printf("\n") > outfile;
+ }
}
printf("\n");
diff -rc2PN -x *.orig libc23-cvstip-20020815/shlib-versions libc23/shlib-versions
*** libc23-cvstip-20020815/shlib-versions Tue Jun 11 18:03:18 2002
--- libc23/shlib-versions Thu Aug 15 16:54:50 2002
***************
*** 25,28 ****
--- 25,29 ----
cris-.*-linux.* DEFAULT GLIBC_2.2
x86_64-.*-linux.* DEFAULT GLIBC_2.2.5
+ powerpc64-.*-linux.* DEFAULT GLIBC_2.2.5
.*-.*-gnu-gnu.* DEFAULT GLIBC_2.2.6
***************
*** 70,73 ****
--- 71,75 ----
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.2.5
cris-.*-linux.* ld=ld.so.1 GLIBC_2.2
x86_64-.*-linux.* ld=ld-linux-x86-64.so.2 GLIBC_2.2.5
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/configure.in libc23/sysdeps/unix/sysv/linux/configure.in
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/configure.in Sun Jul 28 17:40:47 2002
--- libc23/sysdeps/unix/sysv/linux/configure.in Thu Aug 15 16:54:50 2002
***************
*** 76,81 ****
;;
powerpc*)
! libc_cv_gcc_unwind_find_fde=yes
! arch_minimum_kernel=2.0.10
;;
s390/s390-32)
--- 76,85 ----
;;
powerpc*)
! if test "$machine" = "powerpc/ppc64"; then
! arch_minimum_kernel=2.4.13
! else
! libc_cv_gcc_unwind_find_fde=yes
! arch_minimum_kernel=2.0.10
! fi
;;
s390/s390-32)
***************
*** 152,156 ****
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
libc_cv_slibdir="/lib64"
if test "$libdir" = '${exec_prefix}/lib'; then
--- 156,160 ----
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" -o "$machine" = "powerpc/ppc64" -o "$machine" = "s390/s390-64"; then
libc_cv_slibdir="/lib64"
if test "$libdir" = '${exec_prefix}/lib'; then
***************
*** 235,238 ****
--- 239,245 ----
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
;;
*)
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/kernel-features.h libc23/sysdeps/unix/sysv/linux/kernel-features.h
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/kernel-features.h Thu Aug 15 07:58:40 2002
--- libc23/sysdeps/unix/sysv/linux/kernel-features.h Thu Aug 15 16:54:50 2002
***************
*** 104,111 ****
#endif
! /* I know for sure that these are in 2.3.35 on powerpc. */
#if __LINUX_KERNEL_VERSION >= 131875 && defined __powerpc__
! # define __ASSUME_TRUNCATE64_SYSCALL 1
! # define __ASSUME_STAT64_SYSCALL 1
# define __ASSUME_NEW_GETRLIMIT_SYSCALL 1
#endif
--- 104,114 ----
#endif
! /* I know for sure that these are in 2.3.35 on powerpc. But PowerPC64 does not
! support a separate 64-bit syscall, already 64-bit */
#if __LINUX_KERNEL_VERSION >= 131875 && defined __powerpc__
! # if !defined __powerpc64__
! # define __ASSUME_TRUNCATE64_SYSCALL 1
! # define __ASSUME_STAT64_SYSCALL 1
! # endif
# define __ASSUME_NEW_GETRLIMIT_SYSCALL 1
#endif
***************
*** 123,129 ****
#endif
! /* Linux 2.4.0 on PPC introduced a correct IPC64. */
#if __LINUX_KERNEL_VERSION >= 132096 && defined __powerpc__
! # define __ASSUME_IPC64 1
#endif
--- 126,135 ----
#endif
! /* Linux 2.4.0 on PPC introduced a correct IPC64. But PowerPC64 does not
! support a separate 64-bit sys call, already 64-bit */
#if __LINUX_KERNEL_VERSION >= 132096 && defined __powerpc__
! # if !defined __powerpc64__
! # define __ASSUME_IPC64 1
! # endif
#endif
***************
*** 148,155 ****
/* Arm got fcntl64 in 2.4.4, PowerPC and SH have it also in 2.4.4 (I
! don't know when it got introduced). */
#if __LINUX_KERNEL_VERSION >= 132100 \
&& (defined __arm__ || defined __powerpc__ || defined __sh__)
! # define __ASSUME_FCNTL64 1
#endif
--- 154,164 ----
/* Arm got fcntl64 in 2.4.4, PowerPC and SH have it also in 2.4.4 (I
! don't know when it got introduced). But PowerPC64 does not support
! separate FCNTL64 call, FCNTL is already 64-bit */
#if __LINUX_KERNEL_VERSION >= 132100 \
&& (defined __arm__ || defined __powerpc__ || defined __sh__)
! # if !defined __powerpc64__
! # define __ASSUME_FCNTL64 1
! # endif
#endif
***************
*** 179,186 ****
/* Starting with 2.4.5 kernels PPC passes the AUXV in the standard way
! and the mmap2 syscall made it into the official kernel. */
#if __LINUX_KERNEL_VERSION >= (132096+5) && defined __powerpc__
# define __ASSUME_STD_AUXV 1
! # define __ASSUME_MMAP2_SYSCALL 1
#endif
--- 188,198 ----
/* Starting with 2.4.5 kernels PPC passes the AUXV in the standard way
! and the mmap2 syscall made it into the official kernel. But
! PowerPC64 does not support a separate MMAP2 call. */
#if __LINUX_KERNEL_VERSION >= (132096+5) && defined __powerpc__
# define __ASSUME_STD_AUXV 1
! # if !defined __powerpc64__
! # define __ASSUME_MMAP2_SYSCALL 1
! # endif
#endif
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/powerpc/Dist libc23/sysdeps/powerpc/Dist
*** libc23-cvstip-20020815/sysdeps/powerpc/Dist Fri Dec 7 17:59:15 2001
--- libc23/sysdeps/powerpc/Dist Thu Aug 15 16:54:50 2002
***************
*** 1,8 ****
- dl-machine.c
- dl-start.S
- ppc-mcount.S
- gprsave1.S
- gprsave0.S
- gprrest1.S
- gprrest0.S
bp-asm.h
--- 1 ----
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/powerpc/Implies libc23/sysdeps/powerpc/Implies
*** libc23-cvstip-20020815/sysdeps/powerpc/Implies Tue Sep 5 10:04:33 2000
--- libc23/sysdeps/powerpc/Implies Thu Aug 15 16:54:50 2002
***************
*** 1,4 ****
- wordsize-32
ieee754/flt-32
ieee754/dbl-64
- powerpc/soft-fp
--- 1,2 ----
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/powerpc/Makefile libc23/sysdeps/powerpc/Makefile
*** libc23-cvstip-20020815/sysdeps/powerpc/Makefile Mon May 20 19:19:59 2002
--- libc23/sysdeps/powerpc/Makefile Fri Aug 16 10:30:00 2002
***************
*** 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
ifeq ($(subdir),gmon)
--- 1,6 ----
# We always want to use the new mnemonic syntax even if we are on a RS6000
# machine.
! # from .sysdeps/powerpc
! +cflags += -mnew-mnemonics
ifeq ($(subdir),gmon)
***************
*** 13,44 ****
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
- sysdep_routines += divdi3 libgcc-compat
- shared-only-routines += divdi3 libgcc-compat
- endif
endif
--- 8,20 ----
endif
! # On PPC32, -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))
+ # PPC64 is always PIC so gcc complains if you specify -fpic
+ ifneq (powerpc64,$(config-machine))
pic-ccflag = -fpic
endif
endif
***************
*** 51,55 ****
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
endif
--- 27,29 ----
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/powerpc/Versions libc23/sysdeps/powerpc/Versions
*** libc23-cvstip-20020815/sysdeps/powerpc/Versions Tue May 14 23:28:00 2002
--- libc23/sysdeps/powerpc/Versions Thu Aug 15 16:54:50 2002
***************
*** 1,12 ****
- libc {
- GLIBC_2.0 {
- # Functions from libgcc.
- __divdi3; __moddi3; __udivdi3; __umoddi3;
- __cmpdi2; __ucmpdi2;
- __ashldi3; __ashrdi3; __lshrdi3;
- __fixdfdi; __fixunsdfdi;
- __fixsfdi; __fixunssfdi;
- }
- }
libm {
--- 1,2 ----
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/powerpc/ppc32/Dist libc23/sysdeps/powerpc/ppc32/Dist
*** libc23-cvstip-20020815/sysdeps/powerpc/ppc32/Dist Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/powerpc/ppc32/Dist Thu Aug 15 16:54:50 2002
***************
*** 0 ****
--- 1,7 ----
+ dl-machine.c
+ dl-start.S
+ ppc-mcount.S
+ gprsave1.S
+ gprsave0.S
+ gprrest1.S
+ gprrest0.S
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/powerpc/ppc32/Implies libc23/sysdeps/powerpc/ppc32/Implies
*** libc23-cvstip-20020815/sysdeps/powerpc/ppc32/Implies Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/powerpc/ppc32/Implies Thu Aug 15 16:54:50 2002
***************
*** 0 ****
--- 1,2 ----
+ wordsize-32
+ powerpc/soft-fp
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/powerpc/ppc32/Makefile libc23/sysdeps/powerpc/ppc32/Makefile
*** libc23-cvstip-20020815/sysdeps/powerpc/ppc32/Makefile Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/powerpc/ppc32/Makefile Fri Aug 16 10:31:28 2002
***************
*** 0 ****
--- 1,45 ----
+ # We always want to use the new mnemonic syntax even if we are on a RS6000
+ # machine.
+ # from .sysdeps/powerpc/ppc32
+ +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 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
+ 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-machine dl-start
+ endif
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/powerpc/ppc32/Versions libc23/sysdeps/powerpc/ppc32/Versions
*** libc23-cvstip-20020815/sysdeps/powerpc/ppc32/Versions Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/powerpc/ppc32/Versions Thu Aug 15 16:54:50 2002
***************
*** 0 ****
--- 1,37 ----
+ libc {
+ GLIBC_2.0 {
+ # Functions from libgcc.
+ __divdi3; __moddi3; __udivdi3; __umoddi3;
+ __cmpdi2; __ucmpdi2;
+ __ashldi3; __ashrdi3; __lshrdi3;
+ __fixdfdi; __fixunsdfdi;
+ __fixsfdi; __fixunssfdi;
+ }
+ }
+
+ 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;
+ }
+ }
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/Dist libc23/sysdeps/unix/sysv/linux/powerpc/Dist
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/Dist Tue Apr 10 19:25:39 2001
--- libc23/sysdeps/unix/sysv/linux/powerpc/Dist Thu Aug 15 16:54:50 2002
***************
*** 1,3 ****
- clone.S
fe_nomask.c
ipc_priv.h
--- 1,2 ----
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/Makefile libc23/sysdeps/unix/sysv/linux/powerpc/Makefile
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/Makefile Sat Mar 23 19:55:18 2002
--- libc23/sysdeps/unix/sysv/linux/powerpc/Makefile Wed Dec 31 18:00:00 1969
***************
*** 1,8 ****
- 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
--- 0 ----
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed libc23/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed Thu Aug 15 16:54:50 2002
***************
*** 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 -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc32/Dist libc23/sysdeps/unix/sysv/linux/powerpc/ppc32/Dist
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc32/Dist Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/unix/sysv/linux/powerpc/ppc32/Dist Thu Aug 15 16:54:50 2002
***************
*** 0 ****
--- 1,2 ----
+ clone.S
+
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc32/Makefile libc23/sysdeps/unix/sysv/linux/powerpc/ppc32/Makefile
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc32/Makefile Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/unix/sysv/linux/powerpc/ppc32/Makefile Thu Aug 15 16:54:50 2002
***************
*** 0 ****
--- 1,12 ----
+ ifeq ($(subdir),signal)
+ sysdep_routines += rt_sigsuspend rt_sigprocmask rt_sigtimedwait \
+ rt_sigqueueinfo rt_sigaction rt_sigpending
+ endif
+
+ ifeq ($(subdir),csu)
+ CFLAGS-initfini.s += -DWEAK_GMON_START
+ endif
+
+ ifeq ($(subdir),resource)
+ sysdep_routines += oldgetrlimit64
+ endif
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc32/Versions libc23/sysdeps/unix/sysv/linux/powerpc/ppc32/Versions
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc32/Versions Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/unix/sysv/linux/powerpc/ppc32/Versions Thu Aug 15 16:54:50 2002
***************
*** 0 ****
--- 1,23 ----
+ libc {
+ GLIBC_2.0 {
+ # Exception handling support functions from libgcc
+ __register_frame; __register_frame_table; __deregister_frame;
+ __frame_state_for; __register_frame_info_table;
+ }
+ GLIBC_2.2 {
+ # functions used in other libraries
+ __xstat64; __fxstat64; __lxstat64;
+
+ # g*
+ glob64;
+
+ # New rlimit interface
+ getrlimit; setrlimit; getrlimit64; setrlimit64;
+
+ # r*
+ readdir64; readdir64_r;
+
+ # s*
+ scandir64;
+ }
+ }
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc64/Dist libc23/sysdeps/unix/sysv/linux/powerpc/ppc64/Dist
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc64/Dist Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/unix/sysv/linux/powerpc/ppc64/Dist Thu Aug 15 16:54:50 2002
***************
*** 0 ****
--- 1,2 ----
+ clone.S
+
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc64/Makefile libc23/sysdeps/unix/sysv/linux/powerpc/ppc64/Makefile
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc64/Makefile Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/unix/sysv/linux/powerpc/ppc64/Makefile Fri Aug 16 09:33:59 2002
***************
*** 0 ****
--- 1,5 ----
+ ifeq ($(subdir),signal)
+ sysdep_routines += rt_sigsuspend rt_sigprocmask rt_sigtimedwait \
+ rt_sigqueueinfo rt_sigaction rt_sigpending
+ endif
+
diff -rc2PN -x *.orig libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc64/Versions libc23/sysdeps/unix/sysv/linux/powerpc/ppc64/Versions
*** libc23-cvstip-20020815/sysdeps/unix/sysv/linux/powerpc/ppc64/Versions Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/unix/sysv/linux/powerpc/ppc64/Versions Thu Aug 15 16:54:50 2002
***************
*** 0 ****
--- 1,23 ----
+ libc {
+ GLIBC_2.0 {
+ # Exception handling support functions from libgcc
+ __register_frame; __register_frame_table; __deregister_frame;
+ __frame_state_for; __register_frame_info_table;
+ }
+ GLIBC_2.2 {
+ # functions used in other libraries
+ __xstat64; __fxstat64; __lxstat64;
+
+ # g*
+ glob64;
+
+ # New rlimit interface
+ getrlimit; setrlimit; getrlimit64; setrlimit64;
+
+ # r*
+ readdir64; readdir64_r;
+
+ # s*
+ scandir64;
+ }
+ }
<<<<<<<< ppc64-config-20020815.patch