This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
[PATCH] powerpc64 config changes
- From: Steve Munroe <sjmunroe at vnet dot ibm dot com>
- To: libc-alpha at sources dot redhat dot com
- Cc: aj at suse dot de, geoffk at geoffk dot org, roland at frob dot com
- Date: Thu, 29 Aug 2002 12:00:41 -0500
- Subject: [PATCH] powerpc64 config changes
The base directory moves and configuration patches for powerpc64 follow.
First a bash script (ppc64dirclean-23.sh) is provides to create the
powerpc32 and powerpc64 directories and move powerpc 32-bit specific
code in the appropriate ./powerpc32 directory.
Next a patch (ppc64-config-20020829.patch) that applies the required
configuration (Dist, Implies, Makefile, and Versions) changes to enable
powerpc64 and support the exiting powerpc32 code in its new directory
structure.
Finally a patch (ppc64-configpthread-20020829.patch) that applies
similar changes for linuxthreads. The directory creates and powerpc32
specific code moves were done by the previously mentioned script.
I tested these (script and patches) against the cvs tip pulled yesterday.
I was able to configure and build a powerpc32 glibc without error and
run "make check". Make check ran with the same five failures (test-float,
test-double, test-ifloat.out, test-idouble, tfformat) as without this
patch.
Applying this patch will allow incremental submittion of the powerpc64
changles with minimul impact on powerpc32 and other architectures.
Thanks for all your help.
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/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.
>>>>>>> ppc64dirclean-23.sh
#! /bin/bash
# split ./linuxthreads/sysdeps/powerpc into powerpc32 and powerpc64
# directories and move powerpc32 specific source files from ./powerpc/ up
# to ./powerpc/powerpc32.
#
mkdir ./linuxthreads/sysdeps/powerpc/powerpc32
mkdir ./linuxthreads/sysdeps/powerpc/powerpc64
mv ./linuxthreads/sysdeps/powerpc/pt-machine.h \
./linuxthreads/sysdeps/powerpc/powerpc32
# split ./sysdeps/powerpc into powerpc32 and powerpc64 directories and
# move powerpc32 specific specific source files from ./powerpc/ up to
# ./powerpc/powerpc32.
mkdir ./sysdeps/powerpc/powerpc32
mkdir ./sysdeps/powerpc/powerpc64
mv ./sysdeps/powerpc/__longjmp.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/atomicity.h ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/backtrace.c ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/bp-asm.h ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/bsd-_setjmp.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/bsd-setjmp.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/dl-machine.c ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/dl-machine.h ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/memset.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/ppc-mcount.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/register-dump.h ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/setjmp.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/stpcpy.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/strchr.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/strcmp.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/strcpy.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/strlen.S ./sysdeps/powerpc/powerpc32
# some files are not used by powerpc64 and only need to be moved
# up to the powerpc32 directory. For example the assembler multiple
# percision integer code is there to support soft_fp. Since all
# powerpc64 implementations have hardware_fp they are not required for
# powerpc64.
mv ./sysdeps/powerpc/dl-start.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/add_n.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/addmul_1.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/divdi3.c ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/libgcc-compat.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/lshift.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/mul_1.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/rshift.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/sub_n.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/submul_1.S ./sysdeps/powerpc/powerpc32
# Also gcc 3.2 for powerpc64 provides gpr save/restore functions
# required by the ABI. So glibc does not need to supply them for powerpc64.
mv ./sysdeps/powerpc/gprrest0.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/gprrest1.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/gprsave0.S ./sysdeps/powerpc/powerpc32
mv ./sysdeps/powerpc/gprsave1.S ./sysdeps/powerpc/powerpc32
# split ./sysdeps/powerpc/elf into powerpc32/elf and powerpc64/elf
# directories and move powerpc32specific source files from ./powerpc/elf
# up to ./powerpc/powerpc32/elf.
#
mkdir ./sysdeps/powerpc/powerpc32/elf
mkdir ./sysdeps/powerpc/powerpc64/elf
mv ./sysdeps/powerpc/elf/bzero.S ./sysdeps/powerpc/powerpc32/elf
mv ./sysdeps/powerpc/elf/start.S ./sysdeps/powerpc/powerpc32/elf
# split ./sysdeps/powerpc/fpu into powerpc32/fpu and powerpc64/fpu
# directories and move powerpc32 specific source files from ./powerpc/fpu
# up to ./powerpc/powerpc32/fpu. Makefile files
# that contain a mix or powerpc common and powerpc32 specific content
# are copied and will be patched later.
#
mkdir ./sysdeps/powerpc/powerpc32/fpu
mkdir ./sysdeps/powerpc/powerpc64/fpu
# cp ./sysdeps/powerpc/fpu/Makefile ./sysdeps/powerpc/powerpc32/fpu
mv ./sysdeps/powerpc/fpu/fprrest.S ./sysdeps/powerpc/powerpc32/fpu
mv ./sysdeps/powerpc/fpu/fprsave.S ./sysdeps/powerpc/powerpc32/fpu
mv ./sysdeps/powerpc/fpu/s_copysign.S ./sysdeps/powerpc/powerpc32/fpu
mv ./sysdeps/powerpc/fpu/s_copysignf.S ./sysdeps/powerpc/powerpc32/fpu
# split ./sysdeps/unix/sysv/linux/powerpc into powerpc32 and
# powerpc64 subdirectories and move powerpc32 specific source files
# from ./powerpc up to ./powerpc/powerpc32.
mkdir ./sysdeps/unix/sysv/linux/powerpc/powerpc32
mkdir ./sysdeps/unix/sysv/linux/powerpc/powerpc64
mv ./sysdeps/unix/sysv/linux/powerpc/syscalls.list \
./sysdeps/unix/sysv/linux/powerpc/powerpc32/
mv ./sysdeps/unix/sysv/linux/powerpc/brk.S \
./sysdeps/unix/sysv/linux/powerpc/powerpc32/
mv ./sysdeps/unix/sysv/linux/powerpc/clone.S \
./sysdeps/unix/sysv/linux/powerpc/powerpc32/
mv ./sysdeps/unix/sysv/linux/powerpc/kernel_stat.h \
./sysdeps/unix/sysv/linux/powerpc/powerpc32/
mv ./sysdeps/unix/sysv/linux/powerpc/socket.S \
./sysdeps/unix/sysv/linux/powerpc/powerpc32/
mv ./sysdeps/unix/sysv/linux/powerpc/sysdep.h \
./sysdeps/unix/sysv/linux/powerpc/powerpc32/
<<<<<<< ppc64dirclean-23.sh
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/kernel-features.h [!__powerpc64__]
(__ASSUME_TRUNCATE64_SYSCALL, __ASSUME_STAT64_SYSCALL, __ASSUME_IPC64,
__ASSUME_FCNTL64, __ASSUME_MMAP2_SYSCALL): Macros defined.
Deselect features that are redundant on powerpc64.
* 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/powerpc32/Makefile : New file.
* 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.
>>>>>>>> ppc64-config-20020829.patch
diff -rc2PN -x*orig libc23-cvstip-20020828/FAQ.in libc23/FAQ.in
*** libc23-cvstip-20020828/FAQ.in Sun May 19 13:37:21 2002
--- libc23/FAQ.in Wed Aug 28 15:11:20 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.2 (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-20020828/README libc23/README
*** libc23-cvstip-20020828/README Wed Aug 28 06:38:46 2002
--- libc23/README Wed Aug 28 15:11:20 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-20020828/configure.in libc23/configure.in
*** libc23-cvstip-20020828/configure.in Wed Aug 28 06:32:27 2002
--- libc23/configure.in Wed Aug 28 15:11:20 2002
***************
*** 314,317 ****
--- 314,319 ----
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 ;;
***************
*** 896,901 ****
# The Aix ld uses global .symbol_names instead of symbol_names.
! case "$os" in
! aix4.3*)
AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
esac
--- 898,904 ----
# The Aix ld uses global .symbol_names instead of symbol_names.
! # So does powerpc64-linux
! case "${os}${machine}" in
! aix4.3* | linux*powerpc/powerpc64*)
AC_DEFINE(HAVE_ASM_GLOBAL_DOT_NAME)
esac
diff -rc2PN -x*orig libc23-cvstip-20020828/shlib-versions libc23/shlib-versions
*** libc23-cvstip-20020828/shlib-versions Tue Jun 11 18:03:18 2002
--- libc23/shlib-versions Wed Aug 28 15:11:20 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-20020828/sysdeps/powerpc/Dist libc23/sysdeps/powerpc/Dist
*** libc23-cvstip-20020828/sysdeps/powerpc/Dist Wed Aug 28 03:29:48 2002
--- libc23/sysdeps/powerpc/Dist Wed Aug 28 15:12:45 2002
***************
*** 1,10 ****
- divdi3.c
- dl-machine.c
- dl-start.S
- libgcc-compat.S
- ppc-mcount.S
- gprsave1.S
- gprsave0.S
- gprrest1.S
- gprrest0.S
bp-asm.h
--- 1 ----
diff -rc2PN -x*orig libc23-cvstip-20020828/sysdeps/powerpc/powerpc32/Dist libc23/sysdeps/powerpc/powerpc32/Dist
*** libc23-cvstip-20020828/sysdeps/powerpc/powerpc32/Dist Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/powerpc/powerpc32/Dist Wed Aug 28 15:12:36 2002
***************
*** 0 ****
--- 1,9 ----
+ divdi3.c
+ dl-machine.c
+ dl-start.S
+ libgcc-compat.S
+ ppc-mcount.S
+ gprsave1.S
+ gprsave0.S
+ gprrest1.S
+ gprrest0.S
diff -rc2PN -x*orig libc23-cvstip-20020828/sysdeps/powerpc/Implies libc23/sysdeps/powerpc/Implies
*** libc23-cvstip-20020828/sysdeps/powerpc/Implies Tue Sep 5 10:04:33 2000
--- libc23/sysdeps/powerpc/Implies Wed Aug 28 15:11:20 2002
***************
*** 1,4 ****
- wordsize-32
ieee754/flt-32
ieee754/dbl-64
- powerpc/soft-fp
--- 1,2 ----
diff -rc2PN -x*orig libc23-cvstip-20020828/sysdeps/powerpc/powerpc32/Implies libc23/sysdeps/powerpc/powerpc32/Implies
*** libc23-cvstip-20020828/sysdeps/powerpc/powerpc32/Implies Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/powerpc/powerpc32/Implies Wed Aug 28 15:11:20 2002
***************
*** 0 ****
--- 1,2 ----
+ wordsize-32
+ powerpc/soft-fp
diff -rc2PN -x*orig libc23-cvstip-20020828/sysdeps/powerpc/Makefile libc23/sysdeps/powerpc/Makefile
*** libc23-cvstip-20020828/sysdeps/powerpc/Makefile Tue Aug 20 16:26:56 2002
--- libc23/sysdeps/powerpc/Makefile Wed Aug 28 15:11:20 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,7 ----
+ # Build options common to powerpc32 and powerpc64
+ # This is ./sysdeps/powerpc/Makefile
# We always want to use the new mnemonic syntax even if we are on a RS6000
# machine.
! +cflags += -mnew-mnemonics
ifeq ($(subdir),gmon)
***************
*** 13,50 ****
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
--- 9,12 ----
***************
*** 56,59 ****
sysdep_routines += dl-machine
# extra shared linker files to link only into dl-allobjs.so
! sysdep-rtld-routines += dl-machine dl-start
endif
--- 18,21 ----
sysdep_routines += dl-machine
# extra shared linker files to link only into dl-allobjs.so
! sysdep-rtld-routines += dl-machine
endif
diff -rc2PN -x*orig libc23-cvstip-20020828/sysdeps/powerpc/powerpc32/Makefile libc23/sysdeps/powerpc/powerpc32/Makefile
*** libc23-cvstip-20020828/sysdeps/powerpc/powerpc32/Makefile Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/powerpc/powerpc32/Makefile Wed Aug 28 15:11:20 2002
***************
*** 0 ****
--- 1,49 ----
+ # Powerpc32 specific build options.
+ # this is ./sysdeps/powerpc/powerpc32/Makefile
+
+ +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
+ 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 -rc2PN -x*orig libc23-cvstip-20020828/sysdeps/powerpc/Versions libc23/sysdeps/powerpc/Versions
*** libc23-cvstip-20020828/sysdeps/powerpc/Versions Tue Aug 20 16:26:56 2002
--- libc23/sysdeps/powerpc/Versions Wed Aug 28 15:11:20 2002
***************
*** 1,13 ****
- libc {
- GLIBC_2.0 {
- # Functions from libgcc.
- __divdi3; __moddi3; __udivdi3; __umoddi3;
- __cmpdi2; __ucmpdi2;
- __ashldi3; __ashrdi3; __lshrdi3;
- __fixdfdi; __fixunsdfdi;
- __fixsfdi; __fixunssfdi;
- __floatdidf; __floatdisf;
- }
- }
libm {
--- 1,2 ----
***************
*** 15,38 ****
# 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;
}
}
--- 4,7 ----
diff -rc2PN -x*orig libc23-cvstip-20020828/sysdeps/powerpc/powerpc32/Versions libc23/sysdeps/powerpc/powerpc32/Versions
*** libc23-cvstip-20020828/sysdeps/powerpc/powerpc32/Versions Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/powerpc/powerpc32/Versions Wed Aug 28 15:11:20 2002
***************
*** 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 -rc2PN -x*orig libc23-cvstip-20020828/sysdeps/powerpc/fpu/Makefile libc23/sysdeps/powerpc/fpu/Makefile
*** libc23-cvstip-20020828/sysdeps/powerpc/fpu/Makefile Thu Dec 6 17:41:32 2001
--- libc23/sysdeps/powerpc/fpu/Makefile Wed Aug 28 15:11:20 2002
***************
*** 2,6 ****
libm-support += fenv_const fe_nomask t_sqrt
endif
- ifeq ($(subdir),misc)
- sysdep_routines += fprsave fprrest
- endif
--- 2,3 ----
diff -rc2PN -x*orig libc23-cvstip-20020828/sysdeps/powerpc/powerpc32/fpu/Makefile libc23/sysdeps/powerpc/powerpc32/fpu/Makefile
*** libc23-cvstip-20020828/sysdeps/powerpc/powerpc32/fpu/Makefile Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/powerpc/powerpc32/fpu/Makefile Wed Aug 28 15:11:20 2002
***************
*** 0 ****
--- 1,3 ----
+ ifeq ($(subdir),misc)
+ sysdep_routines += fprsave fprrest
+ endif
diff -rc2PN -x*orig libc23-cvstip-20020828/sysdeps/unix/sysv/linux/configure.in libc23/sysdeps/unix/sysv/linux/configure.in
*** libc23-cvstip-20020828/sysdeps/unix/sysv/linux/configure.in Sun Jul 28 17:40:47 2002
--- libc23/sysdeps/unix/sysv/linux/configure.in Wed Aug 28 15:11:20 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/powerpc64"; then
! arch_minimum_kernel=2.4.19
! 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/powerpc64" -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-20020828/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed libc23/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed
*** libc23-cvstip-20020828/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed Wed Aug 28 15:11:20 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-20020828/sysdeps/unix/sysv/linux/kernel-features.h libc23/sysdeps/unix/sysv/linux/kernel-features.h
*** libc23-cvstip-20020828/sysdeps/unix/sysv/linux/kernel-features.h Thu Aug 15 07:58:40 2002
--- libc23/sysdeps/unix/sysv/linux/kernel-features.h Wed Aug 28 15:11:20 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-20020828/sysdeps/unix/sysv/linux/powerpc/Dist libc23/sysdeps/unix/sysv/linux/powerpc/Dist
*** libc23-cvstip-20020828/sysdeps/unix/sysv/linux/powerpc/Dist Wed Aug 28 03:55:26 2002
--- libc23/sysdeps/unix/sysv/linux/powerpc/Dist Wed Aug 28 15:11:20 2002
***************
*** 1,3 ****
- clone.S
dl-brk.S
fe_nomask.c
--- 1,2 ----
diff -rc2PN -x*orig libc23-cvstip-20020828/sysdeps/unix/sysv/linux/powerpc/powerpc32/Dist libc23/sysdeps/unix/sysv/linux/powerpc/powerpc32/Dist
*** libc23-cvstip-20020828/sysdeps/unix/sysv/linux/powerpc/powerpc32/Dist Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/unix/sysv/linux/powerpc/powerpc32/Dist Wed Aug 28 15:11:20 2002
***************
*** 0 ****
--- 1,2 ----
+ clone.S
+
diff -rc2PN -x*orig libc23-cvstip-20020828/sysdeps/unix/sysv/linux/powerpc/Makefile libc23/sysdeps/unix/sysv/linux/powerpc/Makefile
*** libc23-cvstip-20020828/sysdeps/unix/sysv/linux/powerpc/Makefile Sat Mar 23 19:55:18 2002
--- libc23/sysdeps/unix/sysv/linux/powerpc/Makefile Wed Aug 28 15:11:20 2002
***************
*** 3,8 ****
rt_sigqueueinfo rt_sigaction rt_sigpending
endif
-
- ifeq ($(subdir),resource)
- sysdep_routines += oldgetrlimit64
- endif
--- 3,4 ----
diff -rc2PN -x*orig libc23-cvstip-20020828/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile libc23/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile
*** libc23-cvstip-20020828/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile Wed Aug 28 15:11:20 2002
***************
*** 0 ****
--- 1,3 ----
+ ifeq ($(subdir),resource)
+ sysdep_routines += oldgetrlimit64
+ endif
diff -rc2PN -x*orig libc23-cvstip-20020828/sysdeps/unix/sysv/linux/powerpc/Versions libc23/sysdeps/unix/sysv/linux/powerpc/Versions
*** libc23-cvstip-20020828/sysdeps/unix/sysv/linux/powerpc/Versions Fri Aug 23 04:29:01 2002
--- libc23/sysdeps/unix/sysv/linux/powerpc/Versions Wed Dec 31 18:00:00 1969
***************
*** 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;
- }
- }
--- 0 ----
diff -rc2PN -x*orig libc23-cvstip-20020828/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions libc23/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions
*** libc23-cvstip-20020828/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions Wed Dec 31 18:00:00 1969
--- libc23/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions Wed Aug 28 15:11:20 2002
***************
*** 0 ****
--- 1,22 ----
+ 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-20020829.patch
2002-07-29 Steven Munroe <sjmunroe@us.ibm.com>
* shlib-versions: Set libpthread version to 2.2.5 for powerpc64.
* sysdeps/powerpc/pt-machine.h: moved to...
* sysdeps/powerpc/powerpc32/pt-machine.h: ...here
* sysdeps/powerpc/powerpc64/pt-machine.h: New file.
>>>>>>>> ppc64-configpthread-20020829.patch
diff -rc2PN -x*orig libc23-cvstip-20020828/linuxthreads/shlib-versions libc23/linuxthreads/shlib-versions
*** libc23-cvstip-20020828/linuxthreads/shlib-versions Thu Sep 20 01:35:08 2001
--- libc23/linuxthreads/shlib-versions Thu Aug 29 09:53:44 2002
***************
*** 8,10 ****
--- 8,11 ----
cris-.*-linux.* libpthread=0 GLIBC_2.2
x86_64-.*-linux.* libpthread=0 GLIBC_2.2.5
+ powerpc64-.*-linux.* libpthread=0 GLIBC_2.2.5
.*-.*-linux.* libpthread=0
<<<<<<<< ppc64-configpthread-20020829.patch