about summary refs log tree commit diff
path: root/sysdeps/unix/sysv
Commit message (Collapse)AuthorAgeFilesLines
* CVE-2016-1234: glob: Do not copy d_name field of struct dirent [BZ #19779]Florian Weimer2016-05-241-0/+22
| | | | | | | | Instead, we store the data we need from the return value of readdir in an object of the new type struct readdir_result. This type is independent of the layout of struct dirent. (cherry picked from commit 5171f3079f2cc53e0548fc4967361f4d1ce9d7ea)
* S390: Fix "backtrace() returns infinitely deep stack frames with ↵Stefan Liebler2016-04-282-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | makecontext()" [BZ #18508]. On s390/s390x backtrace(buffer, size) returns the series of called functions until "makecontext_ret" and additional entries (up to "size") with "makecontext_ret". GDB-backtrace is also warning: "Backtrace stopped: previous frame identical to this frame (corrupt stack?)" To reproduce this scenario you have to setup a new context with makecontext() and activate it with setcontext(). See e.g. cf() function in testcase stdlib/tst-makecontext.c. Or see bug in libgo "Bug 66303 - runtime.Caller() returns infinitely deep stack frames on s390x " (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66303). This patch omits the cfi_startproc/cfi_endproc directives in ENTRY/END macro of __makecontext_ret. Thus no frame information is generated in .eh_frame and backtrace stops after __makecontext_ret. There is also no .eh_frame info for _start or thread_start functions. ChangeLog: [BZ #18508] * stdlib/Makefile ($(objpfx)tst-makecontext3): Depend on $(libdl). * stdlib/tst-makecontext.c (cf): Test if _Unwind_Backtrace is not called infinitely times. (backtrace_helper): New function. (trace_arg): New struct. (st1): Enlarge stack size. * sysdeps/unix/sysv/linux/s390/s390-32/__makecontext_ret.S: (__makecontext_ret): Omit cfi_startproc and cfi_endproc. * sysdeps/unix/sysv/linux/s390/s390-64/__makecontext_ret.S: Likewise. (cherry picked from commit 890b7a4b33d482b5c768ab47d70758b80227e9bc)
* S/390: Fix setcontext/swapcontext which are not restoring sigmask.Stefan Liebler2016-04-284-24/+12
| | | | | | | This patch uses sigprocmask(SIG_SETMASK) instead of SIG_BLOCK in setcontext, swapcontext. (cherry picked from commit 2e807f29595eb5b1e5d0decc6e356a3562ecc58e)
* S390: Add hwcaps value for vector facility.Stefan Liebler2016-04-041-0/+1
| | | | | | | | | | | | | | | | | The HWCAP_S390_VX flag in hwcap field of auxiliary vector indicates if the vector facility is available and the kernel is aware of it. This can be tested with LD_SHOW_AUXV=1 <prog>. Currently it does not show te, because it was not incremented by commit "S/390: Add hwcap value for transactional execution.". Thus _DL_HWCAP_COUNT is incremented by two. ChangeLog: * sysdeps/s390/dl-procinfo.c (_dl_s390_platforms): Add vector flag. * sysdeps/s390/dl-procinfo.h: Add vector capability. * sysdeps/unix/sysv/linux/s390/bits/hwcap.h (HWCAP_S390_VX): Define. (cherry picked from commit 4e28fa80886c71e6aaf85016b82ce981c0f12e6d)
* S390: Do not use direct socket syscalls if build on kernels >= 4.3. [BZ #19682]Stefan Liebler2016-03-031-19/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Beginning with Linux 4.3, the kernel headers contain direct system call numbers __NR_socket etc. on s390x. On older kernels, the socket-multiplexer syscall __NR_socketcall was used. To enable these new syscalls, the patch "S390: Call direct system calls for socket operations." (https://sourceware.org/git/?p=glibc.git;a=commit;h=016495b818cb61df7d0d10e6db54074271b3e3a5) was applied upstream. If glibc 2.23 is configured with --enable-kernel=4.3 and newer, the direct socket syscalls are used. For older kernels, the socket-multiplexer syscall is used instead. In glibc 2.22 and earlier, this patch is not applied. If you build glibc on a kernel < 4.3, the socket-multiplexer syscall is used. But if you build glibc on kernel >= 4.3, the direct socket-syscalls are used. If you install this glibc on a kernel < 4.3, all socket operations will fail. See "Bug 19682 - s390x: Incorrect syscall definitions cause breakage with Linux 4.3 headers" (https://sourceware.org/bugzilla/show_bug.cgi?id=19682) The configure switch --enable-kernel does not influence this behaviour on older glibc-releases. The solution is to remove the direct socket-syscalls in sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (this patch) on older glibc-releases as it was done by the upstream patch, too. These entries were never used on s390x, but the c-files in sysdeps/unix/sysv/linux/. After this removal, the behaviour of the socket functions are not changed compared to the original glibc release version and the socket-multiplexer-syscall is always used.
* sparc: fix sigaction for 32bit builds [BZ #18694]Mike Frysinger2015-07-201-0/+4
| | | | | | | | | | | | | Commit a059d359d86130b5fa74e04a978c8523a0293f77 changed the sigaction struct to pass conform tests, but it ended up also changing the ABI for 32 bit builds. For 64 bit builds, changing the long to two ints works, but for 32 bit builds, it inserts 4 extra bytes. This leads to many packages randomly failing like bash that spews things like: configure: line 471: wait_for: No record of process 0 Bracket the new member by a wordsize check to fix the ABI for 32bit. (cherry picked from commit 7fde904c73c57faea48c9679bbdc0932d81b3a2f)
* MIPS: Avoid a dangling `vfork@GLIBC_2.0' referenceMaciej W. Rozycki2014-10-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | This satisfies a symbol reference created with: .symver __libc_vfork, vfork@GLIBC_2.0 where `__libc_vfork' has not been defined or referenced. In this case the `vfork@GLIBC_2.0' reference is supposed to be discarded, however a bug present in GAS since forever causes an undefined symbol table entry to be created. This in turn triggers a problem in the linker that can manifest itself by link errors such as: ld: libpthread.so: invalid string offset 2765592330 >= 5154 for section `.dynstr' The GAS and linker bugs need to be resolved, but we can avoid them too by providing a `__libc_vfork' definition just like our other platforms. [BZ #17485] * sysdeps/unix/sysv/linux/mips/vfork.S (__libc_vfork): Define. (cherry picked from commit b5af9297d51a43f96c5be1bafab032184690dd6f) Conflicts: NEWS
* Handle zero prefix length in getifaddrs (BZ #17371)Andreas Schwab2014-09-161-7/+4
| | | | | | | (cherry picked from commit a7b872687073decdcc7effc2289877d69058aca9) Conflicts: NEWS
* Remove unnecessary uses of NOT_IN_libcSiddhesh Poyarekar2014-08-2113-14/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a IS_IN_* macro is defined, then NOT_IN_libc is always defined, except obviously for IS_IN_libc. There's no need to check for both. Verified on x86_64 and i686 that the source is unchanged. * include/libc-symbols.h: Remove unnecessary check for NOT_IN_libc. * nptl/pthreadP.h: Likewise. * sysdeps/aarch64/setjmp.S: Likewise. * sysdeps/alpha/setjmp.S: Likewise. * sysdeps/arm/sysdep.h: Likewise. * sysdeps/i386/setjmp.S: Likewise. * sysdeps/m68k/setjmp.c: Likewise. * sysdeps/posix/getcwd.c: Likewise. * sysdeps/powerpc/powerpc32/setjmp-common.S: Likewise. * sysdeps/powerpc/powerpc64/setjmp-common.S: Likewise. * sysdeps/s390/s390-32/setjmp.S: Likewise. * sysdeps/s390/s390-64/setjmp.S: Likewise. * sysdeps/sh/sh3/setjmp.S: Likewise. * sysdeps/sh/sh4/setjmp.S: Likewise. * sysdeps/unix/alpha/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/aarch64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/ia64/setjmp.S: Likewise. * sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/tile/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise. * sysdeps/x86_64/setjmp.S: Likewise.
* Fix powerpc32 __get_clockfreq for non-power4 (bug 17263).Joseph Myers2014-08-131-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In my powerpc32 testing I've observed misc/test-gettimebasefreq failing. This is a glibc build (soft-float, though that's not relevant here) without any --with-cpu and without any special configuration of the default CPU for GCC either. In particular, it's one not using sysdeps/powerpc/powerpc32/power4/hp-timing.h (although in fact the processor I'm using for testing is POWER4-based), so hp_timing_t is 32-bit not 64-bit. But the VDSO call being used by INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK is generating a 64-bit result (high part in r3, low part in r4). The code extracting that result, however, expects a result of the type hp_timing_t as passed to INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK, meaning that only r3 (= 0) is used and the value in r4 is ignored. This patch fixes this by always using uint64_t as the type in INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK - reflecting the actual ABI (unconditional in the kernel) of that VDSO call. This is the minimal change for this issue - no check for overflow, no change of the type of the timebase_freq variable or the return type of __get_clockfreq to something other than hp_timing_t (such a change would simply move the implicit conversions to the over callers of that function), no change to hp_timing_t itself. Tested for powerpc32 soft float. [BZ #17263] * sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c: Include <stdint.h>. (__get_clockfreq): Use uint64_t instead of hp_timing_t in INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK call.
* PowerPC: Fix termios definitionsAdhemerval Zanella2014-08-062-50/+73
| | | | | | | | | | | This patch fixes the incorrect guard by __USE_MISC of struct winsize and struct termio in powerpc termios header. Current states leads to build failures if the program defines _XOPEN_SOURCE, but not _DEFAULT_SOURCE or either _BSD_SOURCE or _SVID_SOURCE. Without any definition, __USE_MISC will not be defined and neither the struct definitions. This patch copies the default Linux ioctl-types.h by adjusting only the character control field (c_cc) size in struct termio.
* alpha: Fix exception raising from soft-fpRichard Henderson2014-08-051-4/+5
| | | | | | Use the SSI_IEEE_RAISE_EXCEPTION function as from feraiseexcept, instead of __ieee_get+set_fp_status. Always raise the FP exceptions from float-to-integer conversion.
* alpha: Remove linux lowlevellock.hRichard Henderson2014-08-051-305/+0
| | | | For real this time.
* MIPS - Remove mips lowlevellock.h.Bernard Ogden2014-08-041-354/+0
| | | | * sysdeps/unix/sysv/linux/mips/lowlevellock.h: Remove file.
* AArch64: Remove lowlevellock.hWill Newton2014-08-041-312/+0
| | | | | | | | | | | | | Remove lowlevellock.h in favour of the generic implementation. The generic implementation was tested natively and introduces no regressions. ChangeLog: 2014-08-04 Will Newton <will.newton@linaro.org> * sysdeps/unix/sysv/linux/aarch64/lowlevellock.h: Remove file.
* ia64: define nocancel entry points in PSEUDOMike Frysinger2014-08-041-0/+19
| | | | | | | | | | | | | | The previous set of not-cancel.h headers (prior to the commit 2fbdf5339aaeaa423bd661524f7ec7af41fa2606) did not require the arch to define nocancel entry points, so ia64 never did. However, after the various files were merged, it became a hard requirement for arches which mean ia64 failed to build. Here we add dedicated entry points. It'd be nice to merge with the existing stubs like other arches do, but the ia64 asm does not lend itself to interleaving of functions. If someone has a suggestion on merging these, that'd be great, but at least now we build & pass tests again.
* IA64: Consolidate nptl/ subdirectories under linux/...Roland McGrath2014-08-0431-17/+18
|
* IA64: Move NPTL public headers to sysdeps/ia64/nptl/.Roland McGrath2014-08-043-212/+0
|
* IA64: Define TLS_DEFINE_INIT_TPRoland McGrath2014-08-042-25/+2
|
* IA64: Consolidate NPTL/non versions of vforkRoland McGrath2014-08-044-131/+79
|
* IA64: Consolidate NPTL/non versions of cloneRoland McGrath2014-08-042-11/+0
|
* Remove sysdeps/unix/sysv/linux/arm/lowlevellock.hRoland McGrath2014-08-011-307/+0
|
* ARM: Move PTR_MANGLE et al out of Linux-specific file.Roland McGrath2014-08-011-44/+0
|
* Add __safe_fatal and use it in __pthread_unwind forwarder fallback.Roland McGrath2014-07-311-0/+33
|
* Split nptl-signals.h out from pthreadP.hRoland McGrath2014-07-311-0/+33
|
* S/390: Revert the jmp_buf/ucontext_t ABI change.Stefan Liebler2014-07-3118-321/+87
|
* fcntl-linux.h: add new definitions and manual updates for open file ↵Jeff Layton2014-07-291-0/+17
| | | | | | | | description locks Open file description locks have been merged into the Linux kernel for v3.15. Add the appropriate command-value definitions and an update to the manual that describes their usage.
* m68k: use generic lowlevellock.hAndreas Schwab2014-07-181-308/+0
|
* [PATCH 6/6] Split s390 out of main Linux kernel-features.h.Joseph Myers2014-07-172-3/+23
| | | | | | | | | | This patch splits s390 out of the main Linux kernel-features.h. Not tested. * sysdeps/unix/sysv/linux/s390/kernel-features.h: New file. * sysdeps/unix/sysv/linux/kernel-features.h [__s390__] (__ASSUME_SOCKETCALL): Do not define.
* [PATCH 5/6] Split sh out of main Linux kernel-features.h.Joseph Myers2014-07-172-25/+44
| | | | | | | | | | | | | | | | | | This patch splits sh out of the main Linux kernel-features.h. Not tested. * sysdeps/unix/sysv/linux/sh/kernel-features.h: New file. * sysdeps/unix/sysv/linux/kernel-features.h [__sh__] (__ASSUME_SOCKETCALL): Do not define. (__ASSUME_ST_INO_64_BIT): Define unconditionally. [__LINUX_KERNEL_VERSION >= 0x020625 && __sh__] (__ASSUME_ACCEPT4_SYSCALL): Do not define. [__LINUX_KERNEL_VERSION >= 0x020625 && __sh__] (__ASSUME_RECVMMSG_SYSCALL): Likewise. [__LINUX_KERNEL_VERSION >= 0x030000 && __sh__] (__ASSUME_SENDMMSG_SYSCALL): Likewise. [__sh__] (__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
* [PATCH 4/6] Split powerpc out of main Linux kernel-features.h.Joseph Myers2014-07-172-13/+48
| | | | | | | | | | | | | | | | | | | This patch splits powerpc out of the main Linux kernel-features.h. Not tested. * sysdeps/unix/sysv/linux/powerpc/kernel-features.h: New file. * sysdeps/unix/sysv/linux/kernel-features.h [__powerpc__] (__ASSUME_SOCKETCALL): Do not define. (__ASSUME_IPC64): Define unconditionally. [__LINUX_KERNEL_VERSION >= 0x020625 && __powerpc__] (__ASSUME_ACCEPT4_SYSCALL): Do not define. [__LINUX_KERNEL_VERSION >= 0x020625 && __powerpc__] (__ASSUME_RECVMMSG_SYSCALL): Likewise. [__LINUX_KERNEL_VERSION >= 0x030000 && __powerpc__] (__ASSUME_SENDMMSG_SYSCALL): Likewise. [__powerpc__] (__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
* [PATCH 3/6] Split sparc out of main Linux kernel-features.h.Joseph Myers2014-07-172-27/+57
| | | | | | | | | | | | | | | | | | | | | This patch splits sparc out of the main Linux kernel-features.h. Not tested. * sysdeps/unix/sysv/linux/sparc/kernel-features.h: New file. * sysdeps/unix/sysv/linux/kernel-features.h [__sparc__] (__ASSUME_SOCKETCALL): Do not define. (__ASSUME_SET_ROBUST_LIST): Define unconditionally. (__ASSUME_FUTEX_LOCK_PI): Likewise. [__sparc__] (__ASSUME_ACCEPT4_SYSCALL): Do not define. [__sparc__] (__ASSUME_ACCEPT4_SYSCALL_WITH_SOCKETCALL): Likewise. (__ASSUME_REQUEUE_PI): Define unconditionally. [__LINUX_KERNEL_VERSION >= 0x020621 && __sparc__] (__ASSUME_RECVMMSG_SYSCALL): Do not define. [__sparc__] (__ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL): Likewise. [__LINUX_KERNEL_VERSION >= 0x030000 && __sparc__] (__ASSUME_SENDMMSG_SYSCALL): Likewise. [__sparc__] (__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
* [PATCH 2/6] Split i386 out of main Linux kernel-features.h.Joseph Myers2014-07-172-7/+40
| | | | | | | | | | | | | | | | | This patch splits i386 out of the main Linux kernel-features.h. Tested x86 that there are no changes to disassembly of installed shared libraries. * sysdeps/unix/sysv/linux/i386/kernel-features.h: New file. * sysdeps/unix/sysv/linux/kernel-features.h [__i386__] (__ASSUME_SOCKETCALL): Do not define. [__LINUX_KERNEL_VERSION >= 0x020621 && __i386__] (__ASSUME_RECVMMSG_SYSCALL): Likewise. [__i386__] (__ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL): Likewise. [__LINUX_KERNEL_VERSION >= 0x030000 && __i386__] (__ASSUME_SENDMMSG_SYSCALL): Likewise. [__i386__] (__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
* [PATCH 1/6] Split x86_64 out of main Linux kernel-features.h.Joseph Myers2014-07-172-9/+42
| | | | | | | | | | | | | | | | | This patch splits x86_64 out of the main Linux kernel-features.h. Tested x86_64 that there are no changes to disassembly of installed shared libraries. * sysdeps/unix/sysv/linux/x86_64/kernel-features.h: New file. * sysdeps/unix/sysv/linux/kernel-features.h [__x86_64__] (__ASSUME_ACCEPT4_SYSCALL): Do not define. [__LINUX_KERNEL_VERSION >= 0x020621 && __x86_64__] (__ASSUME_RECVMMSG_SYSCALL): Likewise. [__LINUX_KERNEL_VERSION >= 0x030000 && __x86_64__] (__ASSUME_SENDMMSG_SYSCALL): Likewise. [__x86_64__ && __LINUX_KERNEL_VERSION >= 0x030100] (__ASSUME_GETCPU_SYSCALL): Likewise.
* Refactor handling of /lib64 etc. cases, move out of sysdeps/gnu/configure.ac.Joseph Myers2014-07-1714-88/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch continues removing architecture-specific cases from non-architecture-specific files by moving the logic to use directories such as /lib64 out of sysdeps/gnu/configure.ac. A new macro LIBC_SLIBDIR_RTLDDIR is created that sysdeps configure scripts can use to declare the library directories to be used; the logic was previously duplicated in configure fragments for aarch64, mips and x32 as well as in sysdeps/gnu/configure.ac. This macro is used directly in sysdeps/gnu/configure.ac only to provide the /lib default (the logic saying that with --prefix=/usr shared libraries go in /lib not /usr/lib); the architecture cases formerly there are moved into various new or existing configure.ac files. The new macro is also used in the various architecture fragments that already had such logic. In the x32 there was previously a configure fragment, but it was a directly written one without a .ac file; now a .ac file is used there instead to generate configure. Tested x86_64 that the installed shared libraries, and the directory structure of the installation, are unchanged by this patch. There is an old bug report - bug 6441 - about library directories changing after reconfiguring. If this is still applicable - and I haven't attempted to confirm it or review the old patch pointed to in that bug - then this patch should reduce the number of places needing changing in any fix. * aclocal.m4 (LIBC_SLIBDIR_RTLDDIR): New macro. * sysdeps/gnu/configure.ac: Use LIBC_SLIBDIR_RTLDDIR. Remove cases for individual architectures. * sysdeps/gnu/configure: Regenerated. * sysdeps/unix/sysv/linux/aarch64/configure.ac: Use LIBC_SLIBDIR_RTLDDIR. * sysdeps/unix/sysv/linux/aarch64/configure: Regenerated. * sysdeps/unix/sysv/linux/mips/configure.ac: Use LIBC_SLIBDIR_RTLDDIR. * sysdeps/unix/sysv/linux/mips/configure: Regenerated. * sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac: Use LIBC_SLIBDIR_RTLDDIR. * sysdeps/unix/sysv/linux/powerpc/powerpc64/configure: Regenerated. * sysdeps/unix/sysv/linux/s390/s390-64/configure.ac: New file. * sysdeps/unix/sysv/linux/s390/s390-64/configure: New generated file. * sysdeps/unix/sysv/linux/sparc/sparc64/configure.ac: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/configure: New generated file. * sysdeps/unix/sysv/linux/x86_64/64/configure.ac: New file. * sysdeps/unix/sysv/linux/x86_64/64/configure: New generated file. * sysdeps/unix/sysv/linux/x86_64/x32/configure.ac: New file. * sysdeps/unix/sysv/linux/x86_64/x32/configure: Generate.
* Move architecture shlib-versions files to Linux-specific directories.Joseph Myers2014-07-1711-0/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Various architectures have files such as sysdeps/<arch>/shlib-versions whose contents are in fact entirely Linux-specific, relating only to the symbol / shared library versions for the port to Linux on that architecture, when any future port to a different OS on that architecture would use the symbol version of the glibc release it goes in, as standard for new ports. This patch moves such files under sysdeps/unix/sysv/linux/, merging in the contents of sysdeps/<arch>/nptl/shlib-versions in the process. The only bits not moved are those relating to libgcc_s versions, which don't appear OS-specific in the same way that glibc's symbol versions so. It deliberately does not change the regular expressions given for matching configurations in each file; some match only Linux although not Linux-specific, or match other OSes although Linux-specific. It is with a view to at least the following further cleanups: * Move architecture-specific content from the toplevel shlib-versions and nptl/shlib-versions into sysdeps shlib-versions files, so eliminating another difference between ex-ports and non-ex-ports architectures. * Likewise, for OS-specific content in shlib-versions files. * At that point, the first field in shlib-versions files (the regular expression matching a configuration triplet) should be redundant, so eliminate that field and leave shlib-versions selection working purely on a sysdeps basis (with limited use of %ifdef in shlib-versions files when needed) rather than having its own separate mechanism to select what configuration information is relevant. * Move the build of gnu/lib-names.h to a similar mechanism to that used for gnu/stubs.h (each library build installing a version of the header specifically for that build), so we can eliminate the duplication of soname information in the makefiles and get it purely from shlib-versions files again. There may be other cleanups possible as well (in particular, I'm not sure that all cases where the same "Earliest symbol set" information is repeated for many different libraries actually should need to repeat it rather than specifying it just once for DEFAULT for the given configuration, and separately specifying any non-default choices of soname). Tested x86_64 that the installed shared libraries are unchanged by this patch. * sysdeps/aarch64/shlib-versions: Move to ... * sysdeps/unix/sysv/linux/aarch64/shlib-versions: ... here. * sysdeps/alpha/shlib-versions: Move to ... * sysdeps/unix/sysv/linux/alpha/shlib-versions: ... here. * sysdeps/arm/shlib-versions: Move to ... * sysdeps/unix/sysv/linux/arm/shlib-versions: ... here. * sysdeps/hppa/shlib-versions: Move all contents except for libgcc_s entry to ... * sysdeps/unix/sysv/linux/hppa/shlib-versions: ... here. Merge in entry from ... * sysdeps/hppa/nptl/shlib-versions: ... here. Remove file. * sysdeps/ia64/shlib-versions: Move to ... * sysdeps/unix/sysv/linux/ia64/shlib-versions: ... here. Merge in entry from ... * sysdeps/ia64/nptl/shlib-versions: ... here. Remove file. * sysdeps/m68k/coldfire/shlib-versions: Move to ... * sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions: ... here. * sysdeps/microblaze/shlib-versions: Move to ... * sysdeps/unix/sysv/linux/microblaze/shlib-versions: ... here. * sysdeps/mips/shlib-versions: Move to ... * sysdeps/unix/sysv/linux/mips/shlib-versions: ... here. Merge in entry from ... * sysdeps/mips/nptl/shlib-versions: ... here. Remove file. * sysdeps/tile/shlib-versions: Move to ... * sysdeps/unix/sysv/linux/tile/shlib-versions: ... here. * sysdeps/unix/sysv/linux/x86_64/64/shlib-versions: Merge in entry from ... * sysdeps/x86_64/64/shlib-versions: ... here. Remove file. * sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions: Merge in entry from ... * sysdeps/x86_64/x32/shlib-versions: ... here. Remove file.
* ARM: Clean up EABI-related configuryRoland McGrath2014-07-162-21/+0
|
* Separate Linuxisms from lowlevellock.h, make a generic oneRoland McGrath2014-07-151-0/+137
|
* PowerPC: Fix build due missing lll_robust_trylockAdhemerval Zanella2014-07-101-2/+17
| | | | | | | Commit 887865f remove the lll_robust_trylock definition on all architectures, however for powerpc both __lll_trylock and __lll_cond_trylock were based on lll_robust_trylock definition. This patch restore it with a different name.
* Get rid of lll_robust_dead.Roland McGrath2014-07-1015-157/+0
|
* Get rid of lll_robust_trylock.Roland McGrath2014-07-1015-137/+0
|
* Fix crash when system has no ipv6 address [BZ #17125]Siddhesh Poyarekar2014-07-101-1/+7
| | | | | | | | | | | Here's an updated patch to fix the crash in bug-ga2 when the system has no configured ipv6 address. I have taken a different approach of using libc_freeres_fn instead of the libc_freeres_ptr since the former gives better control over what is freed; we need that since cache may or may not be allocated using malloc. Verified that bug-ga2 works correctly in both cases and does not have memory leaks in either of them.
* Fix missing newline in test outputAndreas Schwab2014-07-091-1/+1
|
* NPTL is no longer an add-on!Roland McGrath2014-07-0719-54/+18
|
* Get rid of nptl/sysdeps/ entirely!Roland McGrath2014-07-0741-121/+1989
|
* Fix ia64 build error in lll_futex_timed_wait_bitsetRoland McGrath2014-07-031-1/+1
|
* Robustify Linux kernel headers configure checksRoland McGrath2014-07-032-153/+32
|
* Add missing #include for MIN use in dl-sysdep.c.Roland McGrath2014-07-021-0/+1
|
* hppa: Remove GLIBC_2.3 from librt.abilist.Carlos O'Donell2014-07-021-4/+0
| | | | | | This commit removes the aio_cancel and aio_cancel64 symbols at GLIBC_2.3 from the ABI baseline. The ABI baseline is now complete for hppa and considered stable.
* hppa: Add ABI baselines.Carlos O'Donell2014-07-0114-6/+3202
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following ABI baselines were tested against several old releases of debian and gentoo. Several problems were discovered and fixed as part of developing the ABI baselines. Firstly, libBrokenLocale on gentoo exports __ctype_get_mb_cur_max as @@GLIBC_2.0, but it should be @@GLIBC_2.2 since that's the minimum version defined in shlib-versions for hppa. I don't know when this broke, but master properly parses hppa's shlib-versions which clearly lists libBrokenLocale as defaulting to GLIBC_2.2. Therefore I'm accepting GLBIC_2.2 as the correct version for this symbol and setting the baseline to that, despite the fact that the present distribution is wrong. I don't expect that any new applications should be using libBrokenLocale, so it should match the oldest behaviour which is to export a GLIBC_2.2 symbol. For example in debian's 2.7 has it at version GLIBC_2.2. Secondly, aio_cancel and aio_cancel64 previously had a compat symbol at version @GLIBC_2.1 with a new symbol at @@GLIBC_2.3[1]. During the Linuxthreads to NPTL transition the file aio_cancel.c was lost for hppa and that resulted in just @@GLIBC_2.1 versions of these symbols being exported. The @@GLIBC_2.1 version works correctly and uses the right value of ECANCELLED. Therefore if I were to fix this today it might break correctly working applications using aio_cancel*@GLIBC_2.1 by causing those to use the old aio_cancel that used the older value of ECANCELLED. Thus the best option is to accept that the ABI changed and ignore older applications in favour of newer applications. The best thing to do is cleanup the version files (included in the patch). The rest of the ABI was as expected (ignoring __p_type_syms size change in 2008).