about summary refs log tree commit diff
path: root/sysdeps/unix
Commit message (Collapse)AuthorAgeFilesLines
* PowerPC: Consolidate NPTL/non versions of vforkAdhemerval Zanella2014-05-262-0/+59
|
* arm,aarch64: Remove SINGLE_THREAD_P_PICRichard Henderson2014-05-252-2/+0
| | | | | | | | | | This macro was removed by 2005-11-16 Daniel Jacobowitz <dan@codesourcery.com> but not applied to the (still separate) eabi port so necro'd when the eabi port superceded the old abi. It was thence copied into the new AArch64 port.
* aarch64: Tidy syscall error checkRichard Henderson2014-05-252-10/+13
| | | | | Move the error branch from the PSEUDO_RET macro to the PSEUDO macro. This is in line with other architectures, and will enable further improvments.
* aarch64: Remove DOARGS/UNDOARGS macrosRichard Henderson2014-05-252-24/+1
| | | | While they do something for AArch32, they're useless for AArch64.
* aarch64: Fix DO_CALL block commentRichard Henderson2014-05-251-1/+1
|
* alpha: Do non-default symbols in pt-vfork.SRichard Henderson2014-05-252-6/+14
|
* alpha: Move remaining files out of sysdeps/unix/sysv/linux/alpha/nptl/Richard Henderson2014-05-2332-15/+16
|
* alpha: Consolidate NPTL/non versions of vforkRichard Henderson2014-05-234-59/+62
|
* alpha: Merge standard and nptl clone.SRichard Henderson2014-05-232-15/+3
|
* alpha: Remove nptl/fork.cRichard Henderson2014-05-231-29/+0
| | | | | The merge at ab21431318d99c94e644606dee1e6a4545d98007 failed to properly remove the file.
* AArch64: Convert fork.c to arch-fork.hRoland McGrath2014-05-211-4/+2
|
* aarch64: Merge __local_multiple_threads offset with memory referenceRichard Henderson2014-05-211-5/+4
| | | | | | This also highlights that we'd been loading 64-bits instead of the proper 32-bits. Caught by the linker as a relocation error, since the variable happened to be unaligned for 64-bits.
* aarch64: Merge rtld_errno offset with memory referenceRichard Henderson2014-05-211-2/+1
|
* Fix ARM build with GCC trunk.Joseph Myers2014-05-202-2/+4
| | | | | | | | | | | | | | | | sysdeps/unix/sysv/linux/arm/unwind-resume.c and sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c have static variables that are written in C code but only read from toplevel asms. Current GCC trunk now optimizes away such apparently write-only static variables, so causing a build failure. This patch marks those variables with __attribute_used__ to avoid that optimization. Tested that this fixes the build for ARM. * sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c (libgcc_s_resume): Use __attribute_used__. * sysdeps/unix/sysv/linux/arm/unwind-resume.c (libgcc_s_resume): Likewise.
* alpha: fix sa_flags type (BZ 16967)Richard Henderson2014-05-201-1/+1
|
* alpha: Remove bits/siginfo.h (BZ 16966)Richard Henderson2014-05-201-333/+0
| | | | | | Using the default header instead. This matches the kernel, which also uses the generic header. Fixes the sys/wait.h conform issue, where si_band had the wrong type.
* AArch64: Fix handling of nocancel syscall failuresWill Newton2014-05-201-0/+1
| | | | | | | | | | | | | | The current code for nocancel syscalls does not do a comparison of the system call return value. This leads to code being generated where the b.cs follows the svc instruction directly without setting the flags on which the branch depends. ChangeLog: 2014-05-20 Will Newton <will.newton@linaro.org> * sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h (PSEUDO): Test the return value of the system call in the nocancel case.
* AArch64: Remove asm/ptrace.h inclusion in sys/user.h and sys/procfs.hYvan Roux2014-05-202-21/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes an issue observed by the Xen project, where including signal.h exposes various PSR_MODE #defines. This is due to the usage in sys/user.h and sys/procfs.h of the struct user_pt_regs and user_fpsimd_state included via asm/ptrace.h. The namespace pollution this inclusion introduce is already partially fixed with some #undef of the PTRACE_* symbols, but other symbols like the PSR_MODE ones are still present, and undefining them is not safe since a user can include ptrace.h before user.h. My proposition is to define the 2 structures we need in user.h and get rid of the asm/ptrace.h inclusion. Build and make check are clean on AArch64. 2014-05-20 Will Newton <will.newton@linaro.org> Yvan Roux <yvan.roux@linaro.org> * sysdeps/unix/sysv/linux/aarch64/sys/user.h: Remove unused #include of asm/ptrace.h. (PTRACE_GET_THREAD_AREA): Remove #undef. (PTRACE_GETHBPREGS): Likewise. (PTRACE_SETHBPREGS): Likewise. (struct user_regs_struct): New structure. (struct user_fpsimd_struct): New structure. * sysdeps/unix/sysv/linux/aarch64/sys/procfs.h: Remove unused #include of asm/ptrace.h and second #include of sys/user.h. (PTRACE_GET_THREAD_AREA): Remove #undef. (PTRACE_GETHBPREGS): Likewise. (PTRACE_SETHBPREGS): Likewise. (ELF_NGREG): Use new struct user_regs_struct. (elf_fpregset_t): Use new struct user_fpsimd_struct.
* alpha: Create __syscall_nocancel entry pointsRichard Henderson2014-05-172-21/+16
|
* Merge remote-tracking branch 'origin/roland/nptl-alpha'Richard Henderson2014-05-171-10/+8
|\
| * Alpha: Convert fork.c to arch-fork.hRoland McGrath2014-05-161-10/+8
| |
* | Fix some termios.h conformtest failures on sparc.David S. Miller2014-05-171-14/+5
| | | | | | | | | | | | | | | | | | * sysdeps/unix/sysv/linux/sparc/bits/termios.h (PAGEOUT, WRAP): Protect with __USE_GNU. (TIOCSET_TEMPT): Likewise. (TIOCM_LE, TIOCM_DTR, TIOCM_RTS, TIOCM_ST, TIOCM_SR, TIOCM_CTS, TIOCM_CAR, TIOCM_RNG, TIOCM_DSR, TIOCM_CD, TIOCM_RI): Remove as these are already provided in bits/ioctl-types.h
* | Fix __waitpid_nocancel link error. linaro/masterRoland McGrath2014-05-161-6/+1
| |
* | PowerPC: clean BSD Terminal Modes expectation in termios.hAdhemerval Zanella2014-05-161-2/+9
| | | | | | | | | | | | | | | | | | This patch guard the BSD definition for terminal modes in PowerPC specific header fixing the following conformance failures: FAIL: conform/POSIX/termios.h/conform FAIL: conform/POSIX2008/termios.h/conform FAIL: conform/UNIX98/termios.h/conform
* | ARM: Convert fork.c to arch-fork.hRoland McGrath2014-05-161-10/+7
|/
* Add stub arch-fork.h header.Roland McGrath2014-05-161-0/+27
|
* Split arch-fork.h from fork.hRoland McGrath2014-05-166-6/+6
|
* SPARC: add prlimit and prlimit64 in <bits/resource.h> (BZ #16943)Aurelien Jarno2014-05-161-0/+27
| | | | | | | | prlimit and prlimit64 have been added in the main <bits/resource.h>, but not in the SPARC specific version. Fix that. Note: this is Debian bug#703559, reported by Emilio Pozuelo Monfort <pochu@debian.org>
* ptsname_r: don't leak uninitialized memory (BZ #16917)Aurelien Jarno2014-05-161-1/+3
| | | | | | | | | | | | | | | If the fd refers to a terminal device, but not a pty master, the TIOCGPTN ioctl returns with ENOTTY. This error is not caught, and the possibly undefined buffer passed to ptsname_r is sent directly to the stat64 syscall. Fix this by using a fallback to the old method only if the TIOCGPTN ioctl fails with EINVAL. This also fix the return value in that specific case (it return ENOENT without this patch). Also add tests to the ptsname_r function (and ptsname at the same time). Note: this is Debian bug#741482, reported by Jakub Wilk <jwilk@debian.org>
* x86: Move abilist files out of nptl/ subdirectories.Roland McGrath2014-05-1443-0/+0
|
* Move remaining files out of nptl/sysdeps/unix/sysv/linux/x86/.Roland McGrath2014-05-1415-0/+551
|
* Fix mips fork after i386 reorganization.Roland McGrath2014-05-142-1/+1
|
* Move remaining nptl/sysdeps/unix/sysv/linux/i386/ files.Roland McGrath2014-05-1459-0/+6452
|
* Fix powerpc fork after i386 reorganization.Roland McGrath2014-05-141-0/+1
|
* Update alpha and ia64 timer_*.c files for x86_64 file moves.Roland McGrath2014-05-1410-10/+10
|
* Move remaining nptl/sysdeps/unix/sysv/linux/x86_64/ files.Roland McGrath2014-05-1424-0/+5322
|
* x86: Consolidate NPTL fork.Roland McGrath2014-05-142-0/+54
|
* Consolidate not-cancel.h files.Roland McGrath2014-05-144-63/+27
|
* Move x86_64 compat-timer.h out of nptl/Roland McGrath2014-05-141-0/+45
|
* Move x86_64 timer_*.c out of nptl/Roland McGrath2014-05-146-0/+231
|
* x86: Consolidate NPTL/non versions of cloneRoland McGrath2014-05-142-11/+0
|
* x86: Consolidate NPTL/non versions of vforkRoland McGrath2014-05-142-12/+39
|
* ARM: Consolidate NPTL/non versions of vforkRoland McGrath2014-05-143-77/+20
|
* Fix macro warning on HAVE_PT_CHOWNAndreas Schwab2014-05-141-1/+1
|
* Reduce kernel-features.h duplication.Joseph Myers2014-05-1410-129/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch reduces duplication between different architectures' kernel-features.h files by making the architecture-independent file define various macros unconditionally (instead of only for a particular list of architectures), with the architecture-specific files then undefining the macros if necessary. Specifically, __ASSUME_O_CLOEXEC (O_CLOEXEC flag to open) and __ASSUME_SOCK_CLOEXEC (SOCK_NONBLOCK and SOCK_CLOEXEC flags to socket) are supported on all architectures as of 2.6.32 or the minimum kernel version for the architecture if later. For __ASSUME_IN_NONBLOCK, __ASSUME_PIPE2, __ASSUME_EVENTFD2, __ASSUME_SIGNALFD4 and __ASSUME_DUP3, the relevant syscalls were added for alpha in 2.6.33 but otherwise the features are available as of 2.6.32. For __ASSUME_UTIMES, support is everywhere in 2.6.32 except for asm-generic architectures and hppa. Although those were the main cases of duplication among kernel-features.h files, some other cases of unnecessary definitions were also cleaned up: the hppa file defined various macros that were either no longer used at all, or defined by the main file by default anyway, the ia64 file had duplicative definitions of __ASSUME_PSELECT and __ASSUME_PPOLL, while mips had such a definition of __ASSUME_IPC64. Really, rather than being defined in the main file then undefined for asm-generic architectures, __ASSUME_UTIMES should become an hppa-specific macro. Given that __ASSUME_ATFCTS and __ASSUME_UTIMENSAT are now always true, the only live __ASSUME_UTIMES conditional is in sysdeps/unix/sysv/linux/utimes.c, which is not used for asm-generic architectures. I think the desired state would be an hppa-specific file (that includes sysdeps/unix/sysv/linux/utimes.c if __ASSUME_UTIMES, and otherwise has fallback code), with the fallback code being removed from the main utimes.c. But I think that's most reasonably a separate cleanup once __ASSUME_ATFCTS and __ASSUME_UTIMESAT have both had conditional code cleaned up. Given this patch, I think it's straightforward to move non-ex-ports architectures to having their own kernel-features.h files, like ex-ports architectures, rather than conditionals in the main file (i.e., such a move won't require the architecture-specific file to contain anything that isn't genuinely architecture-specific), and would encourage architecture maintainers to do so. Tested x86_64 that the installed shared libraries are unchanged by this patch. Note that on some architectures this *will* cause __ASSUME_* macros to be defined in cases where they weren't previously but should have been (but this is just optimization, not a fix to a user-visible bug, so doesn't need a bug report in Bugzilla). * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_UTIMES): Define unconditionally. (__ASSUME_O_CLOEXEC): Likewise. (__ASSUME_SOCK_CLOEXEC): Likewise. (__ASSUME_IN_NONBLOCK): Likewise. (__ASSUME_PIPE2): Likewise. (__ASSUME_EVENTFD2): Likewise. (__ASSUME_SIGNALFD4): Likewise. (__ASSUME_DUP3): Likewise. * sysdeps/unix/sysv/linux/aarch64/kernel-features.h (__ASSUME_DUP3): Do not define. (__ASSUME_EVENTFD2): Likewise. (__ASSUME_IN_NONBLOCK): Likewise. (__ASSUME_O_CLOEXEC): Likewise. (__ASSUME_PIPE2): Likewise. (__ASSUME_SIGNALFD4): Likewise. (__ASSUME_SOCK_CLOEXEC): Likewise. (__ASSUME_UTIMES): Undefine. * sysdeps/unix/sysv/linux/alpha/kernel-features.h (__ASSUME_UTIMES): Do not define. (__ASSUME_O_CLOEXEC): Likewise. (__ASSUME_SOCK_CLOEXEC): Likewise. (__ASSUME_IN_NONBLOCK): Undefine if [__LINUX_KERNEL_VERSION < 0x020621] instead of defining if [__LINUX_KERNEL_VERSION >= 0x020621]. (__ASSUME_PIPE2): Likewise. (__ASSUME_EVENTFD2): Likewise. (__ASSUME_SIGNALFD4): Likewise. [__LINUX_KERNEL_VERSION < 0x020621] (__ASSUME_DUP3): Undefine. * sysdeps/unix/sysv/linux/arm/kernel-features.h (__ASSUME_UTIMES): Do not define. (__ASSUME_EVENTFD2): Likewise. (__ASSUME_SIGNALFD4): Likewise. * sysdeps/unix/sysv/linux/hppa/kernel-features.h (__ASSUME_32BITUIDS): Likewise. (__ASSUME_TRUNCATE64_SYSCALL): Likewise. (__ASSUME_IPC64): Likewise. (__ASSUME_ST_INO_64_BIT): Likewise. (__ASSUME_GETDENTS64_SYSCALL): Likewise. [__LINUX_KERNEL_VERSION < 0x030e00] (__ASSUME_UTIMES): Undefine. * sysdeps/unix/sysv/linux/ia64/kernel-features.h (__ASSUME_UTIMES): Do not define. (__ASSUME_PSELECT): Likewise. (__ASSUME_PPOLL): Likewise. (__ASSUME_O_CLOEXEC): Likewise. (__ASSUME_SOCK_CLOEXEC): Likewise. (__ASSUME_IN_NONBLOCK): Likewise. (__ASSUME_PIPE2): Likewise. (__ASSUME_EVENTFD2): Likewise. (__ASSUME_SIGNALFD4): Likewise. (__ASSUME_DUP3): Likewise. * sysdeps/unix/sysv/linux/m68k/kernel-features.h (__ASSUME_UTIMES): Likewise. (__ASSUME_O_CLOEXEC): Likewise. (__ASSUME_SOCK_CLOEXEC): Likewise. (__ASSUME_IN_NONBLOCK): Likewise. (__ASSUME_PIPE2): Likewise. (__ASSUME_EVENTFD2): Likewise. (__ASSUME_SIGNALFD4): Likewise. (__ASSUME_DUP3): Likewise. * sysdeps/unix/sysv/linux/microblaze/kernel-features.h (__ASSUME_UTIMES): Likewise. (__ASSUME_O_CLOEXEC): Likewise. (__ASSUME_SOCK_CLOEXEC): Likewise. (__ASSUME_IN_NONBLOCK): Likewise. (__ASSUME_PIPE2): Likewise. (__ASSUME_EVENTFD2): Likewise. (__ASSUME_SIGNALFD4): Likewise. (__ASSUME_DUP3): Likewise. * sysdeps/unix/sysv/linux/mips/kernel-features.h (__ASSUME_IPC64): Likewise. (__ASSUME_UTIMES): Likewise. (__ASSUME_EVENTFD2): Likewise. (__ASSUME_SIGNALFD4): Likewise. * sysdeps/unix/sysv/linux/tile/kernel-features.h (__ASSUME_O_CLOEXEC): Likewise. (__ASSUME_SOCK_CLOEXEC): Likewise. (__ASSUME_IN_NONBLOCK): Likewise. (__ASSUME_PIPE2): Likewise. (__ASSUME_EVENTFD2): Likewise. (__ASSUME_SIGNALFD4): Likewise. (__ASSUME_DUP3): Likewise. (__ASSUME_UTIMES): Undefine.
* Clean up ARM old-ABI symbol versioning relics.Joseph Myers2014-05-142-48/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch cleans up some symbol versioning code in the ARM port that exists only as relics of the old-ABI port, which was removed some time ago. The minimum symbol version in the ARM port is GLIBC_2.4 (the version where the EABI port was introduced). Thus, any SHLIB_COMPAT conditionals where the later version is 2.4 or later are obsolete and can be removed. In addition, there is no need to set symbol versions before 2.4 explicitly if the symbols would have a version of 2.4 by default anyway. This includes most of the entries in sysdeps/unix/sysv/linux/arm/Versions: those for GLIBC_2.0 are for libgcc unwind functions that aren't actually in ARM EABI glibc at all, while those for GLIBC_2.2 and GLIBC_2.3.3 are for functions which for the old-ABI port may have had versions different from the architecture-independent default, but where for EABI the default suffices (both the default and the version in that file map to 2.4, so the entries in that file do nothing). The GLIBC_2.1 entries are needed (architecture-specific functions), but it seems less confusing for those to say GLIBC_2.4, as the actual version those symbols in fact have. Various cases in the <fenv.h> functions where a function is defined as __fe* with an fe* versioned alias are cleaned up just to define fe* directly, as done e.g. on AArch64. If in future we actually need an __fe* name for use from C90 functions in libm as discussed recently, of course we can add one on all architectures and make the fe* name into a weak alias for that particular function, but for now the __fe* names aren't needed. In the case of posix_fadvise64, the __posix_fadvise64_l64 name and posix_fadvise64 alias are kept as __posix_fadvise64_l64 is used in posix_fadvise. (For that to be a namespace-clean use, posix_fadvise64 needs to be a *weak* alias not a strong one as at present, but that's an independent preexisting bug.) (There remain references to GLIBC_2_2 in sysdeps/unix/sysv/linux/arm/{msgctl.c,semctl.c,shmctl.c}. As those files are used by alpha which has a genuine 2.2 version for those functions, I think those references need to stay as-is.) Tested that the disassembly of installed shared libraries is unchanged by this patch (though function names shown in disassembly change to no longer have @@GLIBC_2.4, now those functions get versioned only by the version map and not redundantly at assembler time) and that the ABI tests pass. * sysdeps/arm/fclrexcpt.c (__feclearexcept): Rename to feclearexcept. Remove symbol versioning code. * sysdeps/arm/fegetenv.c (__fegetenv): Rename to fegetenv. Remove symbol versioning code. * sysdeps/arm/fesetenv.c (__fesetenv): Rename to fesetenv. Remove symbol versioning code. * sysdeps/arm/feupdateenv.c (__feupdateenv): Rename to feupdateenv. Remove symbol versioning code. * sysdeps/arm/fgetexcptflg.c (__fegetexceptflag): Rename to fegetexceptflag. Remove symbol versioning code. * sysdeps/arm/fsetexcptflg.c (__fesetexceptflag): Rename to fesetexceptflag. Remove symbol versioning code. * sysdeps/unix/sysv/linux/arm/Versions (libc): Remove GLIBC_2.0, GLIBC_2.2 and GLIBC_2.3.3 entries. Change GLIBC_2.1 to GLIBC_2.4. * sysdeps/unix/sysv/linux/arm/posix_fadvise64.c (__posix_fadvise64_l32): Remove prototype. [SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3)]: Remove conditional code.
* Move NPTL public ABI headers for ARM to sysdeps/arm/nptl/.Roland McGrath2014-05-132-221/+0
|
* Verbatim NPTL file moves for ARM/Linux.Roland McGrath2014-05-1321-0/+0
|
* Consolidate NPTL configury for ARM/Linux.Roland McGrath2014-05-1310-41/+27
|
* Consolidate NPTL vs non clone.S for ARM.Roland McGrath2014-05-132-7/+1
|