aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/i386
AgeCommit message (Collapse)Author
2014-06-09Start cleaning up TLS initial value for pthread_create.Roland McGrath
2014-05-16Split arch-fork.h from fork.hRoland McGrath
2014-05-14x86: Move abilist files out of nptl/ subdirectories.Roland McGrath
2014-05-14Move remaining nptl/sysdeps/unix/sysv/linux/i386/ files.Roland McGrath
2014-05-14x86: Consolidate NPTL fork.Roland McGrath
2014-05-14x86: Consolidate NPTL/non versions of cloneRoland McGrath
2014-05-14x86: Consolidate NPTL/non versions of vforkRoland McGrath
2014-02-20Fix __ASSUME_ACCEPT4 issues (bug 16609).Joseph Myers
In <https://sourceware.org/ml/libc-alpha/2013-12/msg00008.html>, Aurelien noted issues with the definition of __ASSUME_ACCEPT4, which I discussed in more detail in <https://sourceware.org/ml/libc-alpha/2013-12/msg00014.html>; these are now bug 16609. As previously noted, __ASSUME_ACCEPT4 is used in two ways: * In OS-independent code, to mean "accept4 can be assumed to work rather than fail with ENOSYS". It doesn't matter whether it's implemented with socketcall or a separate syscall. * In Linux-specific code, to mean "the socketcall multiplex syscall can be assumed to handle the accept4 operation. When used in Linux-specific code, it *never* refers to anything relating to the accept4 syscall, only to the socketcall multiplexer. This patch splits the macro into separate __ASSUME_ACCEPT4_SOCKETCALL, __ASSUME_ACCEPT4_SYSCALL and __ASSUME_ACCEPT4 to clarify the different cases involved. A macro __ASSUME_SOCKETCALL is added for convenience in writing logic relating to all socketcall architectures. In addition, to address the issue of architectures where socketcall support for accept4 was added before a separate syscall was added (and so the separate syscall should not be used unless known to be present or fallback to socketcall is available), a fourth macro __ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL is added to indicate that the syscall became available at the same time as socketcall support. This is then used in the relevant places in a conditional determining whether to undefine __NR_accept4 (the simple approach to avoiding the syscall's presence causing problems; I didn't try to implement runtime fallback from the syscall to socketcall). Architecture-specific note: alpha defined __ASSUME_ACCEPT4 for 2.6.33 and later, but actually the syscall was added for alpha in 3.2, so this patch uses the correct condition for __ASSUME_ACCEPT4_SYSCALL there. Tested x86_64, including that disassembly of the installed shared libraries is unchanged by this patch. [BZ #16609] * sysdeps/unix/sysv/linux/kernel-features.h [__i386__ || __powerpc__ || __s390__ || __sh__ || __sparc__] (__ASSUME_SOCKETCALL): Define. [__LINUX_KERNEL_VERSION && __ASSUME_SOCKETCALL] (__ASSUME_ACCEPT4_SOCKETCALL): Likewise. [(__LINUX_KERNEL_VERSION >= 0x02061c && (__x86_64__ || __sparc__)) || (__LINUX_KERNEL_VERSION >= 0x020625 && (__powerpc__ || __sh__))] (__ASSUME_ACCEPT4_SYSCALL): Likewise. [__sparc__] (__ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL): Likewise. [__ASSUME_ACCEPT4_SOCKETCALL || __ASSUME_ACCEPT4_SYSCALL] (__ASSUME_ACCEPT4): Define instead of using previous [__LINUX_KERNEL_VERSION >= 0x02061c && (__i386__ || __x86_64__ || __powerpc__ || __sparc__ || __s390__)] condition. * sysdeps/unix/sysv/linux/aarch64/kernel-features.h (__ASSUME_ACCEPT4): Change to __ASSUME_ACCEPT4_SYSCALL. * sysdeps/unix/sysv/linux/accept4.c [__ASSUME_SOCKETCALL && !__ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL && !__ASSUME_ACCEPT4_SYSCALL] (__NR_accept4): Undefine. [!__ASSUME_ACCEPT4]: Change condition to [!__ASSUME_ACCEPT4_SOCKETCALL]. * sysdeps/unix/sysv/linux/alpha/kernel-features.h (__ASSUME_ACCEPT4): Change to __ASSUME_ACCEPT4_SYSCALL. Correct condition to [__LINUX_KERNEL_VERSION >= 0x030200]. * sysdeps/unix/sysv/linux/arm/kernel-features.h [__LINUX_KERNEL_VERSION >= 0x020624] (__ASSUME_ACCEPT4): Change to __ASSUME_ACCEPT4_SYSCALL. * sysdeps/unix/sysv/linux/i386/accept4.S [__ASSUME_ACCEPT4]: Change conditions to [__ASSUME_ACCEPT4_SOCKETCALL]. * sysdeps/unix/sysv/linux/ia64/kernel-features.h [__LINUX_KERNEL_VERSION >= 0x030300] (__ASSUME_ACCEPT4): Change to __ASSUME_ACCEPT4_SYSCALL. * sysdeps/unix/sysv/linux/internal_accept4.S [__ASSUME_SOCKETCALL && !__ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL && !__ASSUME_ACCEPT4_SYSCALL] (__NR_accept4): Undefine. [__ASSUME_ACCEPT4]: Change condition to [__ASSUME_ACCEPT4_SOCKETCALL]. * sysdeps/unix/sysv/linux/m68k/kernel-features.h (__ASSUME_SOCKETCALL): Define. [__LINUX_KERNEL_VERSION >= 0x02061c] (__ASSUME_ACCEPT4): Remove. * sysdeps/unix/sysv/linux/microblaze/kernel-features.h (__ASSUME_SOCKETCALL): Define. (__ASSUME_ACCEPT4): Remove. [__LINUX_KERNEL_VERSION >= 0x020621] (__ASSUME_ACCEPT4_SYSCALL): Define. * sysdeps/unix/sysv/linux/mips/kernel-features.h [__LINUX_KERNEL_VERSION >= 0x02061f] (__ASSUME_ACCEPT4_SYSCALL): Likewise. * sysdeps/unix/sysv/linux/tile/kernel-features.h (__ASSUME_ACCEPT4): Change to __ASSUME_ACCEPT4_SYSCALL. * sysdeps/unix/sysv/linux/hppa/kernel-features.h [__LINUX_KERNEL_VERSION >= 0x020622] (__ASSUME_ACCEPT4_SYSCALL): Define.
2014-02-10Use glibc_likely instead __builtin_expect.Ondřej Bílka
2014-01-01Update copyright notices with scripts/update-copyrightsAllan McRae
2013-08-30Fix typos.Ondřej Bílka
2013-08-16CVE-2013-4237, BZ #14699: Buffer overflow in readdir_rFlorian Weimer
* sysdeps/posix/dirstream.h (struct __dirstream): Add errcode member. * sysdeps/posix/opendir.c (__alloc_dir): Initialize errcode member. * sysdeps/posix/rewinddir.c (rewinddir): Reset errcode member. * sysdeps/posix/readdir_r.c (__READDIR_R): Enforce NAME_MAX limit. Return delayed error code. Remove GETDENTS_64BIT_ALIGNED conditional. * sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c: Do not define GETDENTS_64BIT_ALIGNED. * sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise. * manual/filesys.texi (Reading/Closing Directory): Document ENAMETOOLONG return value of readdir_r. Recommend readdir more strongly. * manual/conf.texi (Limits for Files): Add portability note to NAME_MAX, PATH_MAX. (Pathconf): Add portability note for _PC_NAME_MAX, _PC_PATH_MAX.
2013-06-28Add GLRO(dl_hwcap2) for new AT_HWCAP2 auxv_t a_type.Ryan S. Arnold
2013-06-15New API to set default thread attributesSiddhesh Poyarekar
This patch introduces two new convenience functions to set the default thread attributes used for creating threads. This allows a programmer to set the default thread attributes just once in a process and then run pthread_create without additional attributes.
2013-04-02New <math.h> macro named issignaling to check for a signaling NaN (sNaN).Thomas Schwinge
It is based on draft TS 18661 and currently enabled as a GNU extension.
2013-02-21Remove remaining bounded-pointers support from i386 .S files.Joseph Myers
2013-02-18C++11 thread_local destructors supportSiddhesh Poyarekar
This feature is specifically for the C++ compiler to offload calling thread_local object destructors on thread program exit, to glibc. This is to overcome the possible complication of destructors of thread_local objects getting called after the DSO in which they're defined is unloaded by the dynamic linker. The DSO is marked as 'unloadable' if it has a constructed thread_local object and marked as 'unloadable' again when all the constructed thread_local objects defined in it are destroyed.
2013-02-13Remove __ptrvalue, __bounded and __unbounded.Joseph Myers
2013-02-08Remove CHECK_N and bp-checks.h.Joseph Myers
2013-02-08Remove CHECK_1 and CHECK_1_NULL_OK.Joseph Myers
2013-02-04Remove CHECK_STRING, CHECK_STRING_NULL_OK and __ubp_memchr.Joseph Myers
2013-01-31Remove bp-semctl.h and CHECK_SEMCTL.Joseph Myers
2013-01-31Remove bp-thunks code.Joseph Myers
2013-01-02Update copyright notices with scripts/update-copyrights.Joseph Myers
2012-10-24BZ#14743: Move clock_* symbols from librt to libc.Roland McGrath
2012-08-27Remove __ASSUME_STAT64_SYSCALL.Joseph Myers
2012-08-21Remove __ASSUME_FADVISE64_64_SYSCALL.Joseph Myers
2012-08-20Remove __ASSUME_MMAP2_SYSCALL.Joseph Myers
2012-08-08Missing #include updates for dirstream code move from unix to posix.Roland McGrath
2012-08-07Move common dirent implementation from sysdeps/unix to sysdeps/posix.Roland McGrath
2012-08-01Remove __ASSUME_FCNTL64.Joseph Myers
2012-08-01Remove __ASSUME_VFORK_SYSCALL (and some __NR_vfork conditionals).Joseph Myers
2012-08-01BZ#14138: Move getrlimit (ugetrlimit) syscall to syscalls.list.Roland McGrath
2012-07-25Remove unused pseudo_end labelAndreas Schwab
2012-07-25Rename __secure_getenv to secure_getenvFlorian Weimer
2012-07-20Move localplt baselines to sysdeps directories.Joseph Myers
2012-07-17Move c++-types baselines to sysdeps directories.Joseph Myers
2012-06-04Use x86_64 bits/{debugreg,reg}.h for i386 and x86-64H.J. Lu
2012-06-04Use x86_64 bits/{io,perm}.h for i386 and x86_64H.J. Lu
2012-06-01Use i386 sys/elf.h and sys/vm86.h for i386 and x86-64H.J. Lu
2012-06-01Use i386 bits/wchar.h for i386 and x86-64H.J. Lu
2012-05-31Support __WORDSIZE == 64 in i386 bits/wchar.hH.J. Lu
2012-05-31Use x86_64 sys/{ucontext,user}.h for i386 and x86_64H.J. Lu
2012-05-31Use x86_64 sys/procfs.h for both i386 and x86_64H.J. Lu
2012-05-31Use x86_64 bits/mman.h for both i386 and x86_64H.J. Lu
2012-05-31Use x86_64 bits/fcntl.h for both i386 and x86_64H.J. Lu
2012-05-31Use x86_64 bits/environments.h for i386 and x86_64H.J. Lu
2012-05-31Use x86_64 bits/a.out.h for both i386 and x86_64H.J. Lu
2012-05-31Add x86-64 support to i386 sys/elf.h and sys/vm86.hH.J. Lu
2012-05-30Convert WORDSIZE[32|64]/ld entries to abi-variantsH.J. Lu