about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/powerpc/bits
Commit message (Collapse)AuthorAgeFilesLines
* Update copyright notices with scripts/update-copyrightsAllan McRae2014-01-0112-12/+12
|
* PowerPC64 ELFv2 ABI 2/6: Remove function descriptorsUlrich Weigand2013-12-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for the ELFv2 ABI feature to remove function descriptors. See this GCC patch for in-depth discussion: http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01141.html This mostly involves two types of changes: updating assembler source files to the new logic, and updating the dynamic loader. After the refactoring in the previous patch, most of the assembler source changes can be handled simply by providing ELFv2 versions of the macros in sysdep.h. One somewhat non-obvious change is in __GI__setjmp: this used to "fall through" to the immediately following __setjmp ENTRY point. This is no longer safe in the ELFv2 since ENTRY defines both a global and a local entry point, and you cannot simply fall through to a global entry point as it requires r12 to be set up. Also, makecontext needs to be updated to set up registers according to the new ABI for calling into the context's start routine. The dynamic linker changes mostly consist of removing special code to handle function descriptors. We also need to support the new PLT and glink format used by the the ELFv2 linker, see: https://sourceware.org/ml/binutils/2013-10/msg00376.html In addition, the dynamic linker now verifies that the dynamic libraries it loads match its own ABI. The hack in VDSO_IFUNC_RET to "synthesize" a function descriptor for vDSO routines is also no longer necessary for ELFv2.
* Use __glibc_reserved instead __unused.Ondřej Bílka2013-11-265-31/+31
|
* PowerPC: Fix vDSO missing ODP entriesAdhemerval Zanella2013-11-081-5/+25
| | | | | | | This patch fixes the vDSO symbol used directed in IFUNC resolver where they do not have an associated ODP entry leading to undefined behavior in some cases. It adds an artificial OPD static entry to such cases and set its TOC to non 0 to avoid triggering lazy resolutions.
* PowerPC SIGSTKSZAlan Modra2013-10-041-0/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | http://sourceware.org/ml/libc-alpha/2013-08/msg00093.html This copies the sparc version of sigstack.h, which gives powerpc #define MINSIGSTKSZ 4096 #define SIGSTKSZ 16384 Before the VSX changes, struct rt_sigframe size was 1920 plus 128 for __SIGNAL_FRAMESIZE giving ppc64 exactly the default MINSIGSTKSZ of 2048. After VSX, ucontext increased by 256 bytes. Oops, we're over MINSIGSTKSZ, so powerpc has been using the wrong value for quite a while. Add another ucontext for TM and rt_sigframe is now at 3872, giving actual MINSIGSTKSZ of 4000. The glibc testcase that I was looking at was tst-cancel21, which allocates 2*SIGSTKSZ (not because the test is trying to be conservative, but because the test actually has nested signal stack frames). We blew the allocation by 48 bytes when using current mainline gcc to compile glibc (le ppc64). The required stack depth in _dl_lookup_symbol_x from the top of the next signal frame was 10944 bytes. I guess you'd want to add 288 to that, implying an actual SIGSTKSZ of 11232. * sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h: New file.
* PowerPC: fix backtrace to handle signal trampolinesAdhemerval Zanella2013-08-201-0/+7
| | | | | | This patch fixes backtrace for PPC32 and PPC64 to correctly handle signal trampolines. The 'debug/tst-backtrace6.c' also check for SA_SIGINFO handling, where is triggers another vDSO symbols for PPC32.
* PowerPC: Add time vDSO supportAdhemerval Zanella2013-05-031-2/+4
| | | | | | | | PowerPC kernel now provides a vDSO implementation for time syscall (commit fcb41a2030abe0eb716ef0798035ef9562097f42). This patch changes time syscall wrapper to use the vDSO when available. It also changes the default non vDSO time on PowerPC to use sysdeps/posix/time.c (since gettimeofday is a vDSO call).
* PowerPC: gettimeofday optimization by using IFUNCAdhemerval Zanella2013-03-151-0/+10
|
* Sync with Linux 3.8Andreas Jaeger2013-03-061-0/+1
|
* Define MCL_CURRENT, MCL_FUTURE in bits/mman-linux.hAndreas Jaeger2013-03-051-4/+3
| | | | | | | | | | | | | | | | | | | | * sysdeps/unix/sysv/linux/s390/bits/mman.h: Include <bits/mman-linux.h>. (MCL_CURRENT, MCL_FUTURE): Do not define here, the generic value is fine. * sysdeps/unix/sysv/linux/sh/bits/mman.h: Move include of <bits/mman-linux.h> to end of file. (MCL_CURRENT, MCL_FUTURE): Do not define here, the generic value is fine. * sysdeps/unix/sysv/linux/x86/bits/mman.h: Move include of <bits/mman-linux.h> to end of file. (MCL_CURRENT, MCL_FUTURE): Do not define here, the generic value is fine. * sysdeps/unix/sysv/linux/sparc/bits/mman.h: Move include of <bits/mman-linux.h> to end of file. * sysdeps/unix/sysv/linux/bits/mman-linux.h [!MCL_CURRENT] (MCL_CURRENT, MCL_FUTURE): Define here.
* Create <bits/mman-linux.h>Andreas Jaeger2013-03-041-69/+3
| | | | | | | | | | | | | * sysdeps/unix/sysv/linux/bits/mman-linux.h: New file, with Linux common definitions. * sysdeps/unix/sysv/linux/sh/bits/mman.h: Remove all defines provided by bits/mman-linux.h and include <bits/mman-linux.h>. * sysdeps/unix/sysv/linux/x86/bits/mman.h: Likewise. * sysdeps/unix/sysv/linux/s390/bits/mman.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/mman.h: Likewise. * sysdeps/unix/sysv/linux/sh/bits/mman.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/mman.h: Likewise.
* PowerPC: Change sched_getcpu to use vDSO getcpu instead of syscall.Anton Blanchard2013-01-091-0/+2
|
* Update copyright notices with scripts/update-copyrights.Joseph Myers2013-01-0211-14/+11
|
* PowerPC: Use <bits/fcntl-linux.h>Andreas Jaeger2012-11-091-258/+11
| | | | | | * sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: Remove all definitions and declarations that are provided by <bits/fcntl-linux.h> and include <bits/fcntl-linux.h>.
* powerpc: add name_to_handle_at, open_by_handle etc. to bits/fcntl.hKhem Raj2012-10-041-1/+27
| | | | Fixes BZ #14251.
* Add __ppc_get_timebase_freq to ppc.h.Tulio Magno Quites Machado Filho2012-09-251-0/+33
|
* Update from Linux 3.4Andreas Jaeger2012-05-231-0/+3
|
* Rename __WORDSIZE_COMPAT32 to __WORDSIZE_TIME64_COMPAT32H.J. Lu2012-05-211-1/+1
|
* Define MAP_STACK and MAP_HUGETLB on powerpc, s390, sh and sparc.Anton Blanchard2012-03-271-2/+3
| | | | | | | | * sysdeps/unix/sysv/linux/powerpc/bits/mman.h: Define MAP_STACK and MAP_HUGETLB. * sysdeps/unix/sysv/linux/s390/bits/mman.h: Likewise. * sysdeps/unix/sysv/linux/sh/bits/mman.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/mman.h: Likewise.
* Replace FSF snail mail address with URLs.Paul Eggert2012-02-0910-30/+20
|
* Define O_PATH.Ulrich Drepper2011-04-011-1/+2
|
* Define MADV_NOHUGEPAGE.Ulrich Drepper2011-01-171-0/+1
|
* Define MADV_HUGEPAGE.Ulrich Drepper2011-01-171-1/+2
|
* Define EXTPROC for Linux.Ulrich Drepper2010-08-121-1/+4
|
* Define F_SETPIPE_SZ and F_GETPIPE_SZ.Ulrich Drepper2010-06-141-0/+2
|
* Fix double-inclusion problem of bits/stat.h.Ulrich Drepper2010-01-111-0/+5
|
* Add support for XPG7 testing.Ulrich Drepper2010-01-092-7/+11
| | | | | The header conformance testing code needed extending for XPG7. This exposed a few bugs in the headers. There are more changes to come.
* Redefine O_SYNC and O_DSYNC to match 2.6.33+ kernels.Ulrich Drepper2009-12-111-3/+3
|
* Use struct timespec for timestamps in struct stat also if __USE_XOPEN2K8.Andreas Schwab2009-11-231-24/+24
| | | | POSIX.1-2008 made stat.st_[acm]tim mandatory.
* Follow kernel F_OWNER_{GID -> PGRP} change.Ulrich Drepper2009-11-191-3/+4
| | | | But maintain compatiblity for 2.11.
* Change misleading names of parameters of sync_file_range.Ulrich Drepper2009-11-171-1/+1
|
* Add missing Linux MADV_* definitions.Ulrich Drepper2009-11-171-9/+13
|
* Fix F_SETOWN_EX and F_GETOWN_EX definitions.Ulrich Drepper2009-11-141-4/+4
|
* Fix preadv, pwritev and fallocate for -D_FILE_OFFSET_BITS=64.Jakub Jelinek2009-11-061-2/+2
| | | | | | | | As reported in http://bugzilla.redhat.com/533063 , preadv/pwritev prototypes are wrong on 32-bit arches with -D_FILE_OFFSET_BITS=64 and as I've just found, fallocate is wrong too. The problem is that only off_t is remapped to the 64-bit type transparently, __off_t is not.
* Define F_OWNER_* and f_owner_ex for Linux targets.Ulrich Drepper2009-10-291-1/+18
|
* Define F_SETOWN_EX and F_GETOWN_EX in Linux headers.Ulrich Drepper2009-10-011-2/+4
|
* * sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h: Declare fallocate{,64}.Ulrich Drepper2009-03-031-0/+17
| | | | | | | | | * sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/ia64/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/i386/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/sh/bits/fcntl.h: Likewise.
* * include/features.h: Define macros for XPG7/POSIX 2008.Ulrich Drepper2009-02-261-3/+2
| | | | | | | | | | | | | | * sysdeps/unix/sysv/linux/bits/stat.h: Protect UTIME_NOW and UTIME_OMIT only with __USE_ATFILE. * sysdeps/unix/sysv/linux/ia64/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/s390/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/bits/stat.h: Likewise. * io/sys/stat.h: Move mknodat definition into same conditional as mknod. * time/sys/time.h: futimesat is not among the functions accepted into the POSIX standard.
* [BZ #7095]Ulrich Drepper2009-02-071-9/+19
| | | | | | | | | | | | | | | | | | 2009-02-06 Ulrich Drepper <drepper@redhat.com> [BZ #7095] * bits/confname.h: Add SUSv7 macros for getconf environments. * bits/environments.h: Likewise. * sysdeps/unix/sysv/linux/i386/bits/environments.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/environments.h: Likewise. * sysdeps/unix/sysv/linux/s390/bits/environments.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/environments.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/bits/environments.h: Likewise. * posix/confstr.c: Handle SUSv5 and SUSv7 environments. * posix/getconf.c: Likewise. * posix/sysconf.c: Likewise. * sysdeps/posix/sysconf.c: Likewise. * posix/Makefile (getconf.speclist): Also collect SUSv5 and SUSv7 environments.
* (SHM_EXEC): Define.Andreas Jaeger2009-01-301-4/+5
|
* [BZ #6845]Ulrich Drepper2008-08-171-132/+0
| | | | | | | | | | 2008-08-14 Ryan S. Arnold <rsa@us.ibm.com> [BZ #6845] * sysdeps/powerpc/fpu/bits/mathinline.h (__signbitl): Copy new __signbitl definition and __LONG_DOUBLE_128__ guard from: * sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h: Remove as redundant. Functions which call floating point assembler operations should go into a sysdeps powerpc/fpu directory.
* [BZ #6791]Ulrich Drepper2008-08-081-1/+2
| | | | | | | | | 2008-08-07 Pete Eberlein <eberlein@us.ibm.com> [BZ #6791] * sysdeps/unix/sysv/linux/powerpc/bits/mman.h (PROT_SAO): Define. Carlos Eduardo Seo <cseo@linux.vnet.ibm.com>
* [BZ #6824]Ulrich Drepper2008-08-071-1/+1
| | | | | | | | 2008-08-07 Ulrich Drepper <drepper@redhat.com> [BZ #6824] * sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h: Use correct macro to detect use of 128 bit long double. Patch by Ryan S. Arnold <rsa@us.ibm.com>.
* * sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h (__signbitl): glibc-2.8 cvs/glibc-2_8 cvs/fedora-glibc-20080412T0741Ulrich Drepper2008-04-121-2/+2
| | | | Also use for 32-bit.
* * sysdeps/powerpc/fpu/fenv_libc.h: Add libm_hidden_proto forUlrich Drepper2008-04-121-0/+132
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | __fe_nomask_env. * sysdeps/powerpc/fpu/fe_nomask.c: Add libm_hidden_def. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c: Likewise. * sysdeps/powerpc/bits/fenv.h: Make safe for C++. * sysdeps/unix/sysv/linux/powerpc/bits/mathinline.h: New file. * sysdeps/powerpc/fpu/fegetexcept.c (__fegetexcept): Rename function from fegetexcept and make old name weak alias. * include/fenv.h: Declare __fegetexcept. * sysdeps/powerpc/fpu/fedisblxcpt.c: Use __fegetexcept instead of fegetexcept. * sysdeps/powerpc/fpu/feenablxcpt.c: Likewise. * sysdeps/powerpc/fpu/fraiseexcpt.c (__feraiseexcept): Avoid call to fetestexcept. * sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Use __frexpl instead of frexpl to avoid local PLT. * math/s_significandl.c (__significandl): Use __ilogbl instead of ilogbl to avoid local PLT. * sysdeps/ieee754/ldbl-128ibm/s_expm1l.c (__expm1l): Use __ldexpl instead of ldexpl to avoid local PLT. * sysdeps/ieee754/ldbl-128ibm/e_expl.c (__ieee754_expl): Use __roundl not roundl to avoid local PLT. * sysdeps/ieee754/ldbl-128/e_j0l.c: Use function names which avoid local PLTs. Use __sincosl instead of separate sinl and cosl calls. * sysdeps/ieee754/ldbl-128/e_j1l.c: Likewise.
* [BZ #5628]Ulrich Drepper2008-01-161-1/+1
| | | | | | | | | | | | | | * bits/shm.h: Fix comment describing shmid_ds. * sysdeps/gnu/bits/shm.h: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/shm.h: Likewise. * sysdeps/unix/sysv/linux/bits/shm.h: Likewise. * sysdeps/unix/sysv/linux/ia64/bits/shm.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/shm.h: Likewise. * sysdeps/unix/sysv/linux/s390/bits/shm.h: Likewise. * sysdeps/unix/sysv/linux/sh/bits/shm.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/shm.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/bits/shm.h: Likewise. Patch by Hareesh Nagarajan <hareesh.nagarajan@gmail.com>.
* * sysdeps/unix/sysv/linux/i386/bits/fcntl.h: Define F_DUPFD_CLOEXEC. cvs/fedora-glibc-20071017T2007Ulrich Drepper2007-10-171-0/+2
| | | | | | | | | | * sysdeps/unix/sysv/linux/ia64/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/sh/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Likewise.
* Correct return value type __THROW marker of splice, vmsplice, and tee.Ulrich Drepper2007-09-181-7/+7
|
* * sysdeps/unix/sysv/linux/powerpc/dl-vdso.c: Move to...Ulrich Drepper2007-08-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | * sysdeps/unix/sysv/linux/dl-vdso.c: ...here. * sysdeps/unix/sysv/linux/powerpc/dl-vdso.h: Move to... * sysdeps/unix/sysv/linux/dl-vdso.h: ...here. * csu/libc-start.c: Pretty printing. Use VDSO_SETUP if defined. * sysdeps/unix/sysv/linux/powerpc/libc-start.c: Define VDSO_SETUP and let generic code call into _libc_vdso_platform_setup. * sysdeps/unix/sysv/linux/x86_64/libc-start.c: New file. * sysdeps/unix/sysv/linux/x86_64/bits/libc-vdso.h: New file. * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Pretty printing. Define INLINE_VSYSCALL and INTERNAL_VSYSCALL. * sysdeps/unix/sysv/linux/x86_64/Versions: Export __vdso_clock_gettime for GLIBC_PRIVATE. * sysdeps/unix/sysv/linux/x86_64/Makefile [subdir=elf] (sysdep_rountines): Add dl-vdso. * sysdeps/unix/sysv/linux/powerpc/Makefile: Use sysdep_routines instead of routines. * sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h: Add attribute_hidden to __vdso_gettimeofday prototype.
* * sysdeps/unix/sysv/linux/bits/socket.h: Define MSG_CMSG_CLOEXEC.Ulrich Drepper2007-07-211-1/+2
| | | | | | | | | * sysdeps/unix/sysv/linux/i386/bits/fcntl.h: Define O_CLOEXEC. * sysdeps/unix/sysv/linux/ia64/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/sh/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h: Likewise.