From b62990918e160fba3af6443dfc07f475bf0c3fc0 Mon Sep 17 00:00:00 2001 From: Geoff Keating Date: Mon, 12 Jun 2000 07:13:22 +0000 Subject: * sysdeps/powerpc/dl-machine.c: Include dl-machine.h after the other header files. Mention about 128-byte cache line sizes. (__elf_machine_fixup_plt): Make types match elf_machine_fixup_plt. * sysdeps/powerpc/dl-machine.h (elf_machine_fixup_plt): Update for current calling sequence. * sysdeps/powerpc/dl-start.S (_dl_start_user): Close comment. * sysdeps/powerpc/fpu/s_rint.c: Handle rounding to -0 correctly. * sysdeps/powerpc/fpu/s_rintf.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add getrlimit and setrlimit syscalls for backwards compatibility. 2000-04-11 Geoff Keating * sysdeps/powerpc/dl-machine.c: Include dl-machine.h after the other header files. Mention about 128-byte cache line sizes. (__elf_machine_fixup_plt): Make types match elf_machine_fixup_plt. * sysdeps/powerpc/dl-machine.h (elf_machine_fixup_plt): Update for current calling sequence. * sysdeps/powerpc/dl-start.S (_dl_start_user): Close comment. * sysdeps/powerpc/fpu/s_rint.c: Handle rounding to -0 correctly. * sysdeps/powerpc/fpu/s_rintf.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add getrlimit and setrlimit syscalls for backwards compatibility. --- sysdeps/powerpc/dl-machine.c | 11 ++++++----- sysdeps/powerpc/dl-machine.h | 10 +++++----- sysdeps/powerpc/dl-start.S | 2 +- sysdeps/powerpc/fpu/s_rint.c | 6 +++--- sysdeps/powerpc/fpu/s_rintf.c | 6 +++--- sysdeps/unix/sysv/linux/powerpc/syscalls.list | 2 ++ 6 files changed, 20 insertions(+), 17 deletions(-) (limited to 'sysdeps') diff --git a/sysdeps/powerpc/dl-machine.c b/sysdeps/powerpc/dl-machine.c index 82895d8b68..ac2d94a0b5 100644 --- a/sysdeps/powerpc/dl-machine.c +++ b/sysdeps/powerpc/dl-machine.c @@ -1,5 +1,6 @@ /* Machine-dependent ELF dynamic relocation functions. PowerPC version. - Copyright (C) 1995,96,97,98,99,2000 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 + Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -21,9 +22,9 @@ #include #include #include -#include #include #include +#include /* Because ld.so is now versioned, these functions can be in their own file; no relocations need to be done to call them. @@ -299,8 +300,7 @@ __elf_machine_runtime_setup (struct link_map *map, int lazy, int profile) there may be a little overlap at the start and the end. Assumes that dcbst and icbi apply to lines of 16 bytes or - more. At present, all PowerPC processors have line sizes of - 16 or 32 bytes. */ + more. Current known line sizes are 16, 32, and 128 bytes. */ size_modified = lazy ? rel_offset_words : 6; for (i = 0; i < size_modified; i += 4) @@ -315,7 +315,7 @@ __elf_machine_runtime_setup (struct link_map *map, int lazy, int profile) return lazy; } -void +Elf32_Addr __elf_machine_fixup_plt(struct link_map *map, const Elf32_Rela *reloc, Elf32_Addr *reloc_addr, Elf32_Addr finaladdr) { @@ -361,6 +361,7 @@ __elf_machine_fixup_plt(struct link_map *map, const Elf32_Rela *reloc, } } MODIFIED_CODE (reloc_addr); + return finaladdr; } void diff --git a/sysdeps/powerpc/dl-machine.h b/sysdeps/powerpc/dl-machine.h index f80544fafd..0307a2924a 100644 --- a/sysdeps/powerpc/dl-machine.h +++ b/sysdeps/powerpc/dl-machine.h @@ -1,5 +1,6 @@ /* Machine-dependent ELF dynamic relocation inline functions. PowerPC version. - Copyright (C) 1995, 96, 97, 98, 99, 2000 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000 + Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -252,12 +253,11 @@ extern Elf32_Addr __elf_machine_fixup_plt (struct link_map *map, Elf32_Addr finaladdr); static inline Elf32_Addr -elf_machine_fixup_plt (struct link_map *l, lookup_t t, +elf_machine_fixup_plt (struct link_map *map, lookup_t t, const Elf32_Rela *reloc, - Elf32_Addr *reloc_addr, Elf64_Addr value) + Elf32_Addr *reloc_addr, Elf64_Addr finaladdr) { - __elf_machine_fixup_plt (map, reloc, reloc_addr, finaladdr); - return value; + return __elf_machine_fixup_plt (map, reloc, reloc_addr, finaladdr); } /* Return the final value of a plt relocation. */ diff --git a/sysdeps/powerpc/dl-start.S b/sysdeps/powerpc/dl-start.S index 685c085ac9..1974c44e0d 100644 --- a/sysdeps/powerpc/dl-start.S +++ b/sysdeps/powerpc/dl-start.S @@ -56,7 +56,7 @@ ENTRY(_dl_start_user) lwz r29,_dl_argc@got(r31) lwz r27,_dl_argv@got(r31) -/* Call _dl_init (_dl_loaded, _dl_argc, _dl_argv, _dl_argv+_dl_argc+1) +/* Call _dl_init (_dl_loaded, _dl_argc, _dl_argv, _dl_argv+_dl_argc+1). */ lwz r3,0(r28) lwz r4,0(r29) lwz r5,0(r27) diff --git a/sysdeps/powerpc/fpu/s_rint.c b/sysdeps/powerpc/fpu/s_rint.c index a475875a97..204381e402 100644 --- a/sysdeps/powerpc/fpu/s_rint.c +++ b/sysdeps/powerpc/fpu/s_rint.c @@ -1,5 +1,5 @@ /* Round a 64-bit floating point value to the nearest integer. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2000 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -33,8 +33,8 @@ __rint (double x) } else if (x < 0.0) { - x -= TWO52; - x += TWO52; + x = TWO52 - x; + x = -(x - TWO52); } } diff --git a/sysdeps/powerpc/fpu/s_rintf.c b/sysdeps/powerpc/fpu/s_rintf.c index dde40bb3e5..12c6b55976 100644 --- a/sysdeps/powerpc/fpu/s_rintf.c +++ b/sysdeps/powerpc/fpu/s_rintf.c @@ -1,5 +1,5 @@ /* Round a 32-bit floating point value to the nearest integer. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2000 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -33,8 +33,8 @@ __rintf (float x) } else if (x < 0.0) { - x -= TWO23; - x += TWO23; + x = TWO23 - x; + x = -(x - TWO23); } } diff --git a/sysdeps/unix/sysv/linux/powerpc/syscalls.list b/sysdeps/unix/sysv/linux/powerpc/syscalls.list index c5ba61dd12..c21081a395 100644 --- a/sysdeps/unix/sysv/linux/powerpc/syscalls.list +++ b/sysdeps/unix/sysv/linux/powerpc/syscalls.list @@ -46,3 +46,5 @@ sys_mknod xmknod mknod 3 __syscall_mknod sys_readv readv readv 3 __syscall_readv sys_stat xstat stat 2 __syscall_stat sys_writev writev writev 3 __syscall_writev +oldgetrlimit EXTRA getrlimit 2 __old_getrlimit getrlimit@GLIBC_2.0 +oldsetrlimit EXTRA setrlimit 2 __old_setrlimit setrlimit@GLIBC_2.0 -- cgit v1.2.1