aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/powerpc/Implies2
-rw-r--r--sysdeps/powerpc/Makefile44
-rw-r--r--sysdeps/powerpc/Versions32
-rw-r--r--sysdeps/powerpc/fpu/Makefile3
-rw-r--r--sysdeps/powerpc/powerpc32/Dist (renamed from sysdeps/powerpc/Dist)0
-rw-r--r--sysdeps/powerpc/powerpc32/Implies2
-rw-r--r--sysdeps/powerpc/powerpc32/Makefile48
-rw-r--r--sysdeps/powerpc/powerpc32/Versions34
-rw-r--r--sysdeps/powerpc/powerpc32/__longjmp.S (renamed from sysdeps/powerpc/__longjmp.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/add_n.S (renamed from sysdeps/powerpc/add_n.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/addmul_1.S (renamed from sysdeps/powerpc/addmul_1.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/atomicity.h (renamed from sysdeps/powerpc/atomicity.h)0
-rw-r--r--sysdeps/powerpc/powerpc32/backtrace.c (renamed from sysdeps/powerpc/backtrace.c)0
-rw-r--r--sysdeps/powerpc/powerpc32/bp-asm.h (renamed from sysdeps/powerpc/bp-asm.h)0
-rw-r--r--sysdeps/powerpc/powerpc32/bsd-_setjmp.S (renamed from sysdeps/powerpc/bsd-_setjmp.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/bsd-setjmp.S (renamed from sysdeps/powerpc/bsd-setjmp.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/divdi3.c (renamed from sysdeps/powerpc/divdi3.c)0
-rw-r--r--sysdeps/powerpc/powerpc32/dl-machine.c (renamed from sysdeps/powerpc/dl-machine.c)0
-rw-r--r--sysdeps/powerpc/powerpc32/dl-machine.h (renamed from sysdeps/powerpc/dl-machine.h)0
-rw-r--r--sysdeps/powerpc/powerpc32/dl-start.S (renamed from sysdeps/powerpc/dl-start.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/elf/bzero.S (renamed from sysdeps/powerpc/elf/bzero.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/elf/start.S (renamed from sysdeps/powerpc/elf/start.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/Makefile3
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/__longjmp.S (renamed from sysdeps/powerpc/fpu/__longjmp.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/fprrest.S (renamed from sysdeps/powerpc/fpu/fprrest.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/fprsave.S (renamed from sysdeps/powerpc/fpu/fprsave.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_copysign.S (renamed from sysdeps/powerpc/fpu/s_copysign.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/s_copysignf.S (renamed from sysdeps/powerpc/fpu/s_copysignf.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/fpu/setjmp.S (renamed from sysdeps/powerpc/fpu/setjmp.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/gprrest0.S (renamed from sysdeps/powerpc/gprrest0.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/gprrest1.S (renamed from sysdeps/powerpc/gprrest1.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/gprsave0.S (renamed from sysdeps/powerpc/gprsave0.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/gprsave1.S (renamed from sysdeps/powerpc/gprsave1.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/libgcc-compat.S (renamed from sysdeps/powerpc/libgcc-compat.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/lshift.S (renamed from sysdeps/powerpc/lshift.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/memset.S (renamed from sysdeps/powerpc/memset.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/mul_1.S (renamed from sysdeps/powerpc/mul_1.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/ppc-mcount.S (renamed from sysdeps/powerpc/ppc-mcount.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/register-dump.h (renamed from sysdeps/powerpc/register-dump.h)0
-rw-r--r--sysdeps/powerpc/powerpc32/rshift.S (renamed from sysdeps/powerpc/rshift.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/setjmp.S (renamed from sysdeps/powerpc/setjmp.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/stpcpy.S (renamed from sysdeps/powerpc/stpcpy.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/strchr.S (renamed from sysdeps/powerpc/strchr.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/strcmp.S (renamed from sysdeps/powerpc/strcmp.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/strcpy.S (renamed from sysdeps/powerpc/strcpy.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/strlen.S (renamed from sysdeps/powerpc/strlen.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/sub_n.S (renamed from sysdeps/powerpc/sub_n.S)0
-rw-r--r--sysdeps/powerpc/powerpc32/submul_1.S (renamed from sysdeps/powerpc/submul_1.S)0
-rw-r--r--sysdeps/unix/sysv/linux/configure.in11
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/Dist1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/Makefile4
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed15
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/Dist1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile3
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions (renamed from sysdeps/unix/sysv/linux/powerpc/Versions)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S (renamed from sysdeps/unix/sysv/linux/powerpc/brk.S)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S (renamed from sysdeps/unix/sysv/linux/powerpc/clone.S)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h (renamed from sysdeps/unix/sysv/linux/powerpc/kernel_stat.h)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S (renamed from sysdeps/unix/sysv/linux/powerpc/socket.S)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list (renamed from sysdeps/unix/sysv/linux/powerpc/syscalls.list)0
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h (renamed from sysdeps/unix/sysv/linux/powerpc/sysdep.h)0
61 files changed, 117 insertions, 86 deletions
diff --git a/sysdeps/powerpc/Implies b/sysdeps/powerpc/Implies
index 7009ffe..12ca48b 100644
--- a/sysdeps/powerpc/Implies
+++ b/sysdeps/powerpc/Implies
@@ -1,4 +1,2 @@
-wordsize-32
ieee754/flt-32
ieee754/dbl-64
-powerpc/soft-fp
diff --git a/sysdeps/powerpc/Makefile b/sysdeps/powerpc/Makefile
index 0737f6f..befa9c3 100644
--- a/sysdeps/powerpc/Makefile
+++ b/sysdeps/powerpc/Makefile
@@ -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
diff --git a/sysdeps/powerpc/Versions b/sysdeps/powerpc/Versions
index e26809a..b7d5bf9 100644
--- a/sysdeps/powerpc/Versions
+++ b/sysdeps/powerpc/Versions
@@ -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;
- }
}
diff --git a/sysdeps/powerpc/fpu/Makefile b/sysdeps/powerpc/fpu/Makefile
index 391cf3c..bf2ed92 100644
--- a/sysdeps/powerpc/fpu/Makefile
+++ b/sysdeps/powerpc/fpu/Makefile
@@ -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/Dist b/sysdeps/powerpc/powerpc32/Dist
index ef13736..ef13736 100644
--- a/sysdeps/powerpc/Dist
+++ b/sysdeps/powerpc/powerpc32/Dist
diff --git a/sysdeps/powerpc/powerpc32/Implies b/sysdeps/powerpc/powerpc32/Implies
new file mode 100644
index 0000000..9ef3ac1
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/Implies
@@ -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
index 0000000..d687ab4
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/Makefile
@@ -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
index 0000000..3635c4a
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/Versions
@@ -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/__longjmp.S b/sysdeps/powerpc/powerpc32/__longjmp.S
index c9d2a2d..c9d2a2d 100644
--- a/sysdeps/powerpc/__longjmp.S
+++ b/sysdeps/powerpc/powerpc32/__longjmp.S
diff --git a/sysdeps/powerpc/add_n.S b/sysdeps/powerpc/powerpc32/add_n.S
index 89e1a30..89e1a30 100644
--- a/sysdeps/powerpc/add_n.S
+++ b/sysdeps/powerpc/powerpc32/add_n.S
diff --git a/sysdeps/powerpc/addmul_1.S b/sysdeps/powerpc/powerpc32/addmul_1.S
index 98fad2b..98fad2b 100644
--- a/sysdeps/powerpc/addmul_1.S
+++ b/sysdeps/powerpc/powerpc32/addmul_1.S
diff --git a/sysdeps/powerpc/atomicity.h b/sysdeps/powerpc/powerpc32/atomicity.h
index a3f672e..a3f672e 100644
--- a/sysdeps/powerpc/atomicity.h
+++ b/sysdeps/powerpc/powerpc32/atomicity.h
diff --git a/sysdeps/powerpc/backtrace.c b/sysdeps/powerpc/powerpc32/backtrace.c
index 118f0d6..118f0d6 100644
--- a/sysdeps/powerpc/backtrace.c
+++ b/sysdeps/powerpc/powerpc32/backtrace.c
diff --git a/sysdeps/powerpc/bp-asm.h b/sysdeps/powerpc/powerpc32/bp-asm.h
index b3bbba7..b3bbba7 100644
--- a/sysdeps/powerpc/bp-asm.h
+++ b/sysdeps/powerpc/powerpc32/bp-asm.h
diff --git a/sysdeps/powerpc/bsd-_setjmp.S b/sysdeps/powerpc/powerpc32/bsd-_setjmp.S
index ddd78d3..ddd78d3 100644
--- a/sysdeps/powerpc/bsd-_setjmp.S
+++ b/sysdeps/powerpc/powerpc32/bsd-_setjmp.S
diff --git a/sysdeps/powerpc/bsd-setjmp.S b/sysdeps/powerpc/powerpc32/bsd-setjmp.S
index 3dba8ba..3dba8ba 100644
--- a/sysdeps/powerpc/bsd-setjmp.S
+++ b/sysdeps/powerpc/powerpc32/bsd-setjmp.S
diff --git a/sysdeps/powerpc/divdi3.c b/sysdeps/powerpc/powerpc32/divdi3.c
index 647d1ad..647d1ad 100644
--- a/sysdeps/powerpc/divdi3.c
+++ b/sysdeps/powerpc/powerpc32/divdi3.c
diff --git a/sysdeps/powerpc/dl-machine.c b/sysdeps/powerpc/powerpc32/dl-machine.c
index 28a31f6..28a31f6 100644
--- a/sysdeps/powerpc/dl-machine.c
+++ b/sysdeps/powerpc/powerpc32/dl-machine.c
diff --git a/sysdeps/powerpc/dl-machine.h b/sysdeps/powerpc/powerpc32/dl-machine.h
index 34858e5..34858e5 100644
--- a/sysdeps/powerpc/dl-machine.h
+++ b/sysdeps/powerpc/powerpc32/dl-machine.h
diff --git a/sysdeps/powerpc/dl-start.S b/sysdeps/powerpc/powerpc32/dl-start.S
index 527982b..527982b 100644
--- a/sysdeps/powerpc/dl-start.S
+++ b/sysdeps/powerpc/powerpc32/dl-start.S
diff --git a/sysdeps/powerpc/elf/bzero.S b/sysdeps/powerpc/powerpc32/elf/bzero.S
index 17c6f56..17c6f56 100644
--- a/sysdeps/powerpc/elf/bzero.S
+++ b/sysdeps/powerpc/powerpc32/elf/bzero.S
diff --git a/sysdeps/powerpc/elf/start.S b/sysdeps/powerpc/powerpc32/elf/start.S
index 063df75..063df75 100644
--- a/sysdeps/powerpc/elf/start.S
+++ b/sysdeps/powerpc/powerpc32/elf/start.S
diff --git a/sysdeps/powerpc/powerpc32/fpu/Makefile b/sysdeps/powerpc/powerpc32/fpu/Makefile
new file mode 100644
index 0000000..e050739
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/fpu/Makefile
@@ -0,0 +1,3 @@
+ifeq ($(subdir),misc)
+sysdep_routines += fprsave fprrest
+endif
diff --git a/sysdeps/powerpc/fpu/__longjmp.S b/sysdeps/powerpc/powerpc32/fpu/__longjmp.S
index 7b2dc26..7b2dc26 100644
--- a/sysdeps/powerpc/fpu/__longjmp.S
+++ b/sysdeps/powerpc/powerpc32/fpu/__longjmp.S
diff --git a/sysdeps/powerpc/fpu/fprrest.S b/sysdeps/powerpc/powerpc32/fpu/fprrest.S
index 4231780..4231780 100644
--- a/sysdeps/powerpc/fpu/fprrest.S
+++ b/sysdeps/powerpc/powerpc32/fpu/fprrest.S
diff --git a/sysdeps/powerpc/fpu/fprsave.S b/sysdeps/powerpc/powerpc32/fpu/fprsave.S
index d7bc1ab..d7bc1ab 100644
--- a/sysdeps/powerpc/fpu/fprsave.S
+++ b/sysdeps/powerpc/powerpc32/fpu/fprsave.S
diff --git a/sysdeps/powerpc/fpu/s_copysign.S b/sysdeps/powerpc/powerpc32/fpu/s_copysign.S
index 933435d..933435d 100644
--- a/sysdeps/powerpc/fpu/s_copysign.S
+++ b/sysdeps/powerpc/powerpc32/fpu/s_copysign.S
diff --git a/sysdeps/powerpc/fpu/s_copysignf.S b/sysdeps/powerpc/powerpc32/fpu/s_copysignf.S
index e05438a..e05438a 100644
--- a/sysdeps/powerpc/fpu/s_copysignf.S
+++ b/sysdeps/powerpc/powerpc32/fpu/s_copysignf.S
diff --git a/sysdeps/powerpc/fpu/setjmp.S b/sysdeps/powerpc/powerpc32/fpu/setjmp.S
index b6c6366..b6c6366 100644
--- a/sysdeps/powerpc/fpu/setjmp.S
+++ b/sysdeps/powerpc/powerpc32/fpu/setjmp.S
diff --git a/sysdeps/powerpc/gprrest0.S b/sysdeps/powerpc/powerpc32/gprrest0.S
index cf493f0..cf493f0 100644
--- a/sysdeps/powerpc/gprrest0.S
+++ b/sysdeps/powerpc/powerpc32/gprrest0.S
diff --git a/sysdeps/powerpc/gprrest1.S b/sysdeps/powerpc/powerpc32/gprrest1.S
index 5ac1860..5ac1860 100644
--- a/sysdeps/powerpc/gprrest1.S
+++ b/sysdeps/powerpc/powerpc32/gprrest1.S
diff --git a/sysdeps/powerpc/gprsave0.S b/sysdeps/powerpc/powerpc32/gprsave0.S
index a09f1e5..a09f1e5 100644
--- a/sysdeps/powerpc/gprsave0.S
+++ b/sysdeps/powerpc/powerpc32/gprsave0.S
diff --git a/sysdeps/powerpc/gprsave1.S b/sysdeps/powerpc/powerpc32/gprsave1.S
index 06ee4a6..06ee4a6 100644
--- a/sysdeps/powerpc/gprsave1.S
+++ b/sysdeps/powerpc/powerpc32/gprsave1.S
diff --git a/sysdeps/powerpc/libgcc-compat.S b/sysdeps/powerpc/powerpc32/libgcc-compat.S
index 196293f..196293f 100644
--- a/sysdeps/powerpc/libgcc-compat.S
+++ b/sysdeps/powerpc/powerpc32/libgcc-compat.S
diff --git a/sysdeps/powerpc/lshift.S b/sysdeps/powerpc/powerpc32/lshift.S
index 9f5870d..9f5870d 100644
--- a/sysdeps/powerpc/lshift.S
+++ b/sysdeps/powerpc/powerpc32/lshift.S
diff --git a/sysdeps/powerpc/memset.S b/sysdeps/powerpc/powerpc32/memset.S
index bee87af..bee87af 100644
--- a/sysdeps/powerpc/memset.S
+++ b/sysdeps/powerpc/powerpc32/memset.S
diff --git a/sysdeps/powerpc/mul_1.S b/sysdeps/powerpc/powerpc32/mul_1.S
index f0e0086..f0e0086 100644
--- a/sysdeps/powerpc/mul_1.S
+++ b/sysdeps/powerpc/powerpc32/mul_1.S
diff --git a/sysdeps/powerpc/ppc-mcount.S b/sysdeps/powerpc/powerpc32/ppc-mcount.S
index a72d676..a72d676 100644
--- a/sysdeps/powerpc/ppc-mcount.S
+++ b/sysdeps/powerpc/powerpc32/ppc-mcount.S
diff --git a/sysdeps/powerpc/register-dump.h b/sysdeps/powerpc/powerpc32/register-dump.h
index d341eea..d341eea 100644
--- a/sysdeps/powerpc/register-dump.h
+++ b/sysdeps/powerpc/powerpc32/register-dump.h
diff --git a/sysdeps/powerpc/rshift.S b/sysdeps/powerpc/powerpc32/rshift.S
index 498b6c4..498b6c4 100644
--- a/sysdeps/powerpc/rshift.S
+++ b/sysdeps/powerpc/powerpc32/rshift.S
diff --git a/sysdeps/powerpc/setjmp.S b/sysdeps/powerpc/powerpc32/setjmp.S
index 47dc693..47dc693 100644
--- a/sysdeps/powerpc/setjmp.S
+++ b/sysdeps/powerpc/powerpc32/setjmp.S
diff --git a/sysdeps/powerpc/stpcpy.S b/sysdeps/powerpc/powerpc32/stpcpy.S
index 9640a5d..9640a5d 100644
--- a/sysdeps/powerpc/stpcpy.S
+++ b/sysdeps/powerpc/powerpc32/stpcpy.S
diff --git a/sysdeps/powerpc/strchr.S b/sysdeps/powerpc/powerpc32/strchr.S
index 1adee41..1adee41 100644
--- a/sysdeps/powerpc/strchr.S
+++ b/sysdeps/powerpc/powerpc32/strchr.S
diff --git a/sysdeps/powerpc/strcmp.S b/sysdeps/powerpc/powerpc32/strcmp.S
index 2c96b57..2c96b57 100644
--- a/sysdeps/powerpc/strcmp.S
+++ b/sysdeps/powerpc/powerpc32/strcmp.S
diff --git a/sysdeps/powerpc/strcpy.S b/sysdeps/powerpc/powerpc32/strcpy.S
index ed8eb72..ed8eb72 100644
--- a/sysdeps/powerpc/strcpy.S
+++ b/sysdeps/powerpc/powerpc32/strcpy.S
diff --git a/sysdeps/powerpc/strlen.S b/sysdeps/powerpc/powerpc32/strlen.S
index 5ff3150..5ff3150 100644
--- a/sysdeps/powerpc/strlen.S
+++ b/sysdeps/powerpc/powerpc32/strlen.S
diff --git a/sysdeps/powerpc/sub_n.S b/sysdeps/powerpc/powerpc32/sub_n.S
index 3ebd22e..3ebd22e 100644
--- a/sysdeps/powerpc/sub_n.S
+++ b/sysdeps/powerpc/powerpc32/sub_n.S
diff --git a/sysdeps/powerpc/submul_1.S b/sysdeps/powerpc/powerpc32/submul_1.S
index 6e45d19..6e45d19 100644
--- a/sysdeps/powerpc/submul_1.S
+++ b/sysdeps/powerpc/powerpc32/submul_1.S
diff --git a/sysdeps/unix/sysv/linux/configure.in b/sysdeps/unix/sysv/linux/configure.in
index 1873e4e..4d52ee5 100644
--- a/sysdeps/unix/sysv/linux/configure.in
+++ b/sysdeps/unix/sysv/linux/configure.in
@@ -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
diff --git a/sysdeps/unix/sysv/linux/powerpc/Dist b/sysdeps/unix/sysv/linux/powerpc/Dist
index 2cd4c79..4f09f64 100644
--- a/sysdeps/unix/sysv/linux/powerpc/Dist
+++ b/sysdeps/unix/sysv/linux/powerpc/Dist
@@ -1,4 +1,3 @@
-clone.S
dl-brk.S
fe_nomask.c
ipc_priv.h
diff --git a/sysdeps/unix/sysv/linux/powerpc/Makefile b/sysdeps/unix/sysv/linux/powerpc/Makefile
index 931611f..9d02ace 100644
--- a/sysdeps/unix/sysv/linux/powerpc/Makefile
+++ b/sysdeps/unix/sysv/linux/powerpc/Makefile
@@ -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
index 0000000..9039b69
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed
@@ -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
index 0000000..738b9cc
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/Dist
@@ -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
index 0000000..966a768
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile
@@ -0,0 +1,3 @@
+ifeq ($(subdir),resource)
+sysdep_routines += oldgetrlimit64
+endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/Versions b/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions
index d0bf4a8..d0bf4a8 100644
--- a/sysdeps/unix/sysv/linux/powerpc/Versions
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/Versions
diff --git a/sysdeps/unix/sysv/linux/powerpc/brk.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S
index 8ecbb54..8ecbb54 100644
--- a/sysdeps/unix/sysv/linux/powerpc/brk.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/brk.S
diff --git a/sysdeps/unix/sysv/linux/powerpc/clone.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
index 97849a5..97849a5 100644
--- a/sysdeps/unix/sysv/linux/powerpc/clone.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S
diff --git a/sysdeps/unix/sysv/linux/powerpc/kernel_stat.h b/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h
index a2db586..a2db586 100644
--- a/sysdeps/unix/sysv/linux/powerpc/kernel_stat.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h
diff --git a/sysdeps/unix/sysv/linux/powerpc/socket.S b/sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S
index dbdccef..dbdccef 100644
--- a/sysdeps/unix/sysv/linux/powerpc/socket.S
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S
diff --git a/sysdeps/unix/sysv/linux/powerpc/syscalls.list b/sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list
index 434a9a1..434a9a1 100644
--- a/sysdeps/unix/sysv/linux/powerpc/syscalls.list
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list
diff --git a/sysdeps/unix/sysv/linux/powerpc/sysdep.h b/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h
index 78ff4ed..78ff4ed 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sysdep.h
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h