diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/powerpc/Implies | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/Makefile | 44 | ||||
-rw-r--r-- | sysdeps/powerpc/Versions | 32 | ||||
-rw-r--r-- | sysdeps/powerpc/fpu/Makefile | 3 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/Dist (renamed from sysdeps/powerpc/Dist) | 0 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/Implies | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/Makefile | 48 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc32/Versions | 34 | ||||
-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/Makefile | 3 | ||||
-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.in | 11 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/Dist | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/Makefile | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed | 15 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/powerpc32/Dist | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/powerpc32/Makefile | 3 | ||||
-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 7009ffeada..12ca48b4c9 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 0737f6f2d3..befa9c3bb7 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 e26809a3c7..b7d5bf904b 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 391cf3caf9..bf2ed92e7b 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 ef137361a4..ef137361a4 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 0000000000..9ef3ac175b --- /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 0000000000..d687ab4c85 --- /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 0000000000..3635c4a4a1 --- /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 c9d2a2d02d..c9d2a2d02d 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 89e1a30c14..89e1a30c14 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 98fad2b8e2..98fad2b8e2 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 a3f672e5ec..a3f672e5ec 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 118f0d6175..118f0d6175 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 b3bbba7574..b3bbba7574 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 ddd78d3628..ddd78d3628 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 3dba8babb0..3dba8babb0 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 647d1ad179..647d1ad179 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 28a31f6d91..28a31f6d91 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 34858e5a4b..34858e5a4b 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 527982bfdf..527982bfdf 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 17c6f56119..17c6f56119 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 063df75328..063df75328 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 0000000000..e05073970d --- /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 7b2dc26cb8..7b2dc26cb8 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 42317809eb..42317809eb 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 d7bc1ab7dc..d7bc1ab7dc 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 933435da3d..933435da3d 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 e05438ae7d..e05438ae7d 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 b6c63663f4..b6c63663f4 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 cf493f0c47..cf493f0c47 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 5ac18606f8..5ac18606f8 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 a09f1e569a..a09f1e569a 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 06ee4a69d3..06ee4a69d3 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 196293fd97..196293fd97 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 9f5870d828..9f5870d828 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 bee87af0ce..bee87af0ce 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 f0e0086333..f0e0086333 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 a72d676bbe..a72d676bbe 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 d341eea8ff..d341eea8ff 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 498b6c4a88..498b6c4a88 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 47dc693e49..47dc693e49 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 9640a5d831..9640a5d831 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 1adee411b6..1adee411b6 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 2c96b57016..2c96b57016 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 ed8eb7298e..ed8eb7298e 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 5ff31506e2..5ff31506e2 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 3ebd22e30e..3ebd22e30e 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 6e45d19832..6e45d19832 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 1873e4ecf6..4d52ee539c 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 2cd4c796ea..4f09f64323 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 931611f4db..9d02acecc4 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 0000000000..9039b69548 --- /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 0000000000..738b9cc542 --- /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 0000000000..966a7689e2 --- /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 d0bf4a89c0..d0bf4a89c0 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 8ecbb548a2..8ecbb548a2 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 97849a5b26..97849a5b26 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 a2db586165..a2db586165 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 dbdccefe4c..dbdccefe4c 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 434a9a1f7a..434a9a1f7a 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 78ff4edcc6..78ff4edcc6 100644 --- a/sysdeps/unix/sysv/linux/powerpc/sysdep.h +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h |