about summary refs log tree commit diff
path: root/sysdeps
Commit message (Collapse)AuthorAgeFilesLines
* Move get*id and getgroups definitions to syscalls.list (bug 14138).Joseph Myers2014-10-2446-278/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Continuing the move of syscall definitions to syscalls.list, where the removal of support for old kernel versions has made this possible, this patch moves various definitions of get*id functions and getgroups. The previous C definitions were because of the transition to 32-bit uids and gids. Tested for x86. [BZ #14138] * sysdeps/unix/sysv/linux/arm/getegid.c: Remove file. * sysdeps/unix/sysv/linux/arm/geteuid.c: Likewise. * sysdeps/unix/sysv/linux/arm/getgid.c: Likewise. * sysdeps/unix/sysv/linux/arm/getgroups.c: Likewise. * sysdeps/unix/sysv/linux/arm/getresgid.c: Likewise. * sysdeps/unix/sysv/linux/arm/getresuid.c: Likewise. * sysdeps/unix/sysv/linux/arm/getuid.c: Likewise. * sysdeps/unix/sysv/linux/i386/getegid.c: Likewise. * sysdeps/unix/sysv/linux/i386/geteuid.c: Likewise. * sysdeps/unix/sysv/linux/i386/getgid.c: Likewise. * sysdeps/unix/sysv/linux/i386/getgroups.c: Likewise. * sysdeps/unix/sysv/linux/i386/getresgid.c: Likewise. * sysdeps/unix/sysv/linux/i386/getresuid.c: Likewise. * sysdeps/unix/sysv/linux/i386/getuid.c: Likewise. * sysdeps/unix/sysv/linux/m68k/getegid.c: Likewise. * sysdeps/unix/sysv/linux/m68k/geteuid.c: Likewise. * sysdeps/unix/sysv/linux/m68k/getgid.c: Likewise. * sysdeps/unix/sysv/linux/m68k/getgroups.c: Likewise. * sysdeps/unix/sysv/linux/m68k/getresgid.c: Likewise. * sysdeps/unix/sysv/linux/m68k/getresuid.c: Likewise. * sysdeps/unix/sysv/linux/m68k/getuid.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/getegid.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/geteuid.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/getgid.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/getgroups.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/getresgid.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/getresuid.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/getuid.c: Likewise. * sysdeps/unix/sysv/linux/sh/getegid.c: Likewise. * sysdeps/unix/sysv/linux/sh/geteuid.c: Likewise. * sysdeps/unix/sysv/linux/sh/getgid.c: Likewise. * sysdeps/unix/sysv/linux/sh/getgroups.c: Likewise. * sysdeps/unix/sysv/linux/sh/getresgid.c: Likewise. * sysdeps/unix/sysv/linux/sh/getresuid.c: Likewise. * sysdeps/unix/sysv/linux/sh/getuid.c: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/getegid.c: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/geteuid.c: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/getgid.c: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/getgroups.c: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/getuid.c: Likewise. * sysdeps/unix/sysv/linux/arm/syscalls.list (getegid): Add syscall. (geteuid): Likewise. (getgid): Likewise. (getuid): Likewise. (getresgid): Likewise. (getresuid): Likewise. (getgroups): Likewise. * sysdeps/unix/sysv/linux/i386/syscalls.list (getegid): Likewise. (geteuid): Likewise. (getgid): Likewise. (getuid): Likewise. (getresgid): Likewise. (getresuid): Likewise. (getgroups): Likewise. * sysdeps/unix/sysv/linux/m68k/syscalls.list (getegid): Likewise. (geteuid): Likewise. (getgid): Likewise. (getuid): Likewise. (getresgid): Likewise. (getresuid): Likewise. (getgroups): Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list (getegid): Likewise. (geteuid): Likewise. (getgid): Likewise. (getuid): Likewise. (getresgid): Likewise. (getresuid): Likewise. (getgroups): Likewise. * sysdeps/unix/sysv/linux/sh/syscalls.list (getegid): Likewise. (geteuid): Likewise. (getgid): Likewise. (getuid): Likewise. (getresgid): Likewise. (getresuid): Likewise. (getgroups): Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list (getegid): Likewise. (geteuid): Likewise. (getgid): Likewise. (getuid): Likewise. (getgroups): Likewise.
* Move some chown / lchown / fchown definitions to syscalls.list (bug 14138).Joseph Myers2014-10-2417-280/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Continuing the move of syscall definitions to syscalls.list, where the removal of support for old kernel versions has made this possible, this patch moves various definitions of chown, lchown and fchown. In most cases the need for special syscalls.list entries (rather than existing generic ones) is because these architectures use chown32, lchown32 and fchown32 as syscall names. Some architectures also have symbol versioning compatibility for older versions of chown having been equivalent to lchown. The aliases specified for s390-32 had the effect of exporting __chown@@GLIBC_2.1 (but not __chown@GLIBC_2.0) despite it not being listed in Versions files. (I'm not sure why versioned_symbol but not compat_symbol were effective like that to create such __chown exports in the absence of Versions entries.) The natural way to preserve that versioned export of __chown seems to be to add it in a Versions file, so I did so. (Maybe actually it should be a compat symbol, __chown@GLIBC_2.1, unless there's a good reason for that export, but this patch doesn't change anything there.) Tested for x86. [BZ #14138] * sysdeps/unix/sysv/linux/i386/chown.c: Remove file. * sysdeps/unix/sysv/linux/i386/fchown.c: Likewise. * sysdeps/unix/sysv/linux/i386/lchown.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/chown.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/fchown.c: Remove file. * sysdeps/unix/sysv/linux/s390/s390-32/lchown.c: Likewise. * sysdeps/unix/sysv/linux/sh/chown.c: Likewise. * sysdeps/unix/sysv/linux/sh/fchown.c: Likewise. * sysdeps/unix/sysv/linux/sh/lchown.c: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/chown.c: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/fchown.c: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/lchown.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/Versions (GLIBC_2.1): Add __chown. * sysdeps/unix/sysv/linux/i386/syscalls.list (chown): Add syscall. (lchown): Likewise. (fchown): Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list (chown): Likewise. (lchown): Likewise. (fchown): Likewise. * sysdeps/unix/sysv/linux/sh/syscalls.list (chown): Likewise. (lchown): Likewise. (fchown): Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list (chown): Likewise. (lchown): Likewise. (fchown): Likewise.
* Remove spaces.Wilco Dijkstra2014-10-244-4/+0
|
* hppa: Make __SIGRTMIN 32 (ABI break).Carlos O'Donell2014-10-231-7/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | In the Linux kernel version 3.17 the signal numbers were rearranged in order to make hppa like every other arch. Previously we started __SIGRTMIN at 37, and that meant several pieces of important software, including systemd, would fail to build. To support systemd we removed SIGEMT and SIGLOST, and rearranged the others according to expected values. This is technically an ABI incompatible change, but because zero applications use SIGSTKFLT, SIGXCPU, SIGXFSZ and SIGSYS nothing broke. Nothing uses SIGEMT and SIGLOST, and they were present for HPUX compatibility which is no longer supported. Thus because nothing breaks we don't do any compatibility work here. Upstream kernel commit is 1f25df2eff5b25f52c139d3ff31bc883eee9a0ab. Signed-off-by: Carlos O'Donell <carlos@systemhalted.org> Signed-off-by: Helge Deller <deller@gmx.de> 2014-10-23 Carlos O'Donell <carlos@systemhalted.org> Helge Deller <deller@gmx.de> [BZ #17508] * sysdeps/unix/sysv/linux/hppa/bits/signum.h: Remove SIGEMT. Define SIGSTKFLT as 7. Define SIGSYS as 31. Define SIGXCPU as 12. Remove SIGLOST. Define SIGXFSZ as 30. Define __SIGRTMIN as 32.
* Don't use INTDEF for powerpc32 compat symbols (bug 14132).Joseph Myers2014-10-231-14/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | Continuing the removal of the obsolete INTDEF / INTUSE mechanism, this patch removes the use of INTUSE to rename symbols in sysdeps/powerpc/powerpc32/libgcc-compat.S. As the names in question are purely internal to this particular object and not used anywhere else, it doesn't matter at all whether __*_v_glibc20 or __*_internal is used, so this patch just removes the macros in question. Tested for powerpc32 that stripped installed shared libraries are unchanged by this patch. [BZ #14132] * sysdeps/powerpc/powerpc32/libgcc-compat.S (__ashldi3_v_glibc20): Remove macro definition. (__ashrdi3_v_glibc20): Likewise. (__lshrdi3_v_glibc20): Likewise. (__cmpdi2_v_glibc20): Likewise. (__ucmpdi2_v_glibc20): Likewise. [!_SOFT_FLOAT && !__NO_FPRS__] (__fixdfdi_v_glibc20): Likewise. [!_SOFT_FLOAT && !__NO_FPRS__] (__fixsfdi_v_glibc20): Likewise. [!_SOFT_FLOAT && !__NO_FPRS__] (__fixunsdfdi_v_glibc20): Likewise. [!_SOFT_FLOAT && !__NO_FPRS__] (__fixunssfdi_v_glibc20): Likewise. [!_SOFT_FLOAT && !__NO_FPRS__] (__floatdidf_v_glibc20): Likewise. [!_SOFT_FLOAT && !__NO_FPRS__] (__floatdisf_v_glibc20): Likewise.
* ARM: Use movw/movt more when availableRoland McGrath2014-10-225-68/+176
|
* 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.
* Make internal lock-init macros return void.Roland McGrath2014-10-203-6/+6
|
* pthread_once: Add fast path and remove x86 variants.Torvald Riegel2014-10-202-371/+0
|
* pthread_once: Clean up constants.Torvald Riegel2014-10-201-1/+2
| | | | [BZ #15215] This just gives a name to the integer constants being used.
* Move readv and writev definitions to syscalls.list (bug 14138).Joseph Myers2014-10-203-105/+2
| | | | | | | | | | | | | | | | | | | | | | | | Continuing the move of syscall definitions to syscalls.list, where the removal of support for old kernel versions has made this possible, this patch moves definitions of readv and writev. The relevant syscalls.list entries were already in sysdeps/unix/syscalls.list, but to match the C files they needed to have the names __libc_readv and __libc_writev added. In fact, I don't see anything making use of those names - as far as I can tell, these functions could just be defined as __readv and __writev with aliases readv and writev. But cleaning up unnecessary aliases for functions should be a separate matter from cleaning up unnecessary C syscall wrappers. Tested for x86_64. [BZ #14138] * sysdeps/unix/syscalls.list (readv): Use __libc_readv as strong name. (writev): Use __libc_writev as strong name. * sysdeps/unix/sysv/linux/readv.c: Remove file. * sysdeps/unix/sysv/linux/writev.c: Likewise.
* NPTL: Clean up THREAD_SYSINFO macros.Roland McGrath2014-10-172-5/+10
|
* Remove sysdeps/arm/soft-fp directory.Roland McGrath2014-10-162-1/+0
|
* Fix infinite loop in check_pf (BZ #12926)Siddhesh Poyarekar2014-10-141-1/+1
| | | | | | | | The recvmsg could return 0 under some conditions and cause the make_request function to be stuck in an infinite loop. Thank you Jim King <jim.king@simplivity.com> for posting Paul's patch on the list.
* Don't use INTVARDEF/INTUSE with __libc_enable_secure (bug 14132).Joseph Myers2014-10-101-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Continuing the removal of the obsolete INTDEF / INTVARDEF / INTUSE mechanism, this patch replaces its use for __libc_enable_secure with the use of rtld_hidden_data_def and rtld_hidden_proto. Tested for x86_64 that installed stripped shared libraries are unchanged by the patch. [BZ #14132] * elf/dl-sysdep.c (__libc_enable_secure): Use rtld_hidden_data_def instead of INTVARDEF. (_dl_sysdep_start): Do not use INTUSE with __libc_enable_secure. * sysdeps/mach/hurd/dl-sysdep.c (__libc_enable_secure): Use rtld_hidden_data_def instead of INTVARDEF. (_dl_sysdep_start): Do not use INTUSE with __libc_enable_secure. * elf/dl-deps.c (expand_dst): Likewise. * elf/dl-load.c (_dl_dst_count): Likewise. (_dl_dst_substitute): Likewise. (decompose_rpath): Likewise. (_dl_init_paths): Likewise. (open_path): Likewise. (_dl_map_object): Likewise. * elf/rtld.c (dl_main): Likewise. (process_dl_audit): Likewise. (process_envvars): Likewise. * include/unistd.h [IS_IN_rtld] (__libc_enable_secure_internal): Remove declaration. (__libc_enable_secure): Use rtld_hidden_proto.
* Remove stray *_internal aliases (bug 14132).Joseph Myers2014-10-093-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes some stray (unused) *_internal aliases, and function prototypes with no corresponding definitions at all, at least some of which were missed in previous INTDEF / INTUSE removal. Not removed in this patch: __canonicalize_directory_name_internal, noticed in the course of preparing this patch, isn't an alias, but an actual function in sysdeps/mach/hurd/getcwd.c - apparently unused, however. Tested for x86_64 that installed stripped shared libraries are unchanged by this patch. [BZ #14132] * include/wctype.h [!_ISOMAC] (__iswalpha_l_internal): Remove declaration. [!_ISOMAC] (__iswdigit_l_internal): Likewise. [!_ISOMAC] (__iswspace_l_internal): Likewise. [!_ISOMAC] (__iswxdigit_l_internal): Likewise. [!_ISOMAC] (__iswctype_internal): Likewise. * stdio-common/siglist.c (_sys_siglist_internal): Remove alias. * sysdeps/unix/syscalls.list (chown): Remove __chown_internal alias. (fcntl): Remove __fcntl_internal alias. * sysdeps/unix/sysv/linux/hppa/syscalls.list (connect): Remove __connect_internal alias. * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (connect): Likewise.
* soft-fp: Refactor exception handling for comparisons.Joseph Myers2014-10-0917-55/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch refactors how soft-fp comparisons handle setting exceptions for NaN operands, so that exceptions are set through the FP_CMP macros rather than directly in the C files calling them. The _FP_CMP* and FP_CMP* macros gain an extra argument to specify when exceptions should be set, 0 for no exception setting (I'm not sure this is actually needed - at least it's not needed for IEEE operations in glibc / libgcc, but might be relevant in some cases for kernel use), 1 for exceptions only for signaling NaNs and 2 for exceptions for all NaNs. This argument is handled through _FP_CMP_CHECK_NAN, newly called by the _FP_CMP* macros when a NaN is encountered. Calls to these macros are updated, which eliminates all the existing checking and exception setting in soft-fp *.c files in glibc. Tested for powerpc-nofpu. (The __unord* functions have no code changes; the __eq* / __ge* / __le* functions get slightly larger, but I don't think that's significant.) * soft-fp/op-common.h (_FP_CMP_CHECK_NAN): New macro. (_FP_CMP): Add extra argument EX. Call _FP_CMP_CHECK_NAN. (_FP_CMP_EQ): Likewise. (_FP_CMP_UNORD): Likewise. * soft-fp/double.h (FP_CMP_D): Add extra argument EX. (FP_CMP_EQ_D): Likewise. (FP_CMP_UNORD_D): Likewise. * soft-fp/extended.h (FP_CMP_E): Likewise. (FP_CMP_EQ_E): Likewise. (FP_CMP_UNORD_E): Likewise. * soft-fp/quad.h (FP_CMP_Q): Likewise. (FP_CMP_EQ_Q): Likewise. (FP_CMP_UNORD_Q): Likewise. * soft-fp/single.h (FP_CMP_S): Likewise. (FP_CMP_EQ_S): Likewise. (FP_CMP_UNORD_S): Likewise. * soft-fp/eqdf2.c (__eqdf2): Update call to FP_CMP_EQ_D. * soft-fp/eqsf2.c (__eqsf2): Update call to FP_CMP_EQ_S. * soft-fp/eqtf2.c (__eqtf2): Update call to FP_CMP_EQ_Q. * soft-fp/gedf2.c (__gedf2): Update call to FP_CMP_D. * soft-fp/gesf2.c (__gesf2): Update call to FP_CMP_S. * soft-fp/getf2.c (__getf2): Update call to FP_CMP_Q. * soft-fp/ledf2.c (__ledf2): Update call to FP_CMP_D. * soft-fp/lesf2.c (__lesf2): Update call to FP_CMP_S. * soft-fp/letf2.c (__letf2): Update call to FP_CMP_Q. * soft-fp/unorddf2.c (__unorddf2): Update call to FP_CMP_UNORD_D. * soft-fp/unordsf2.c (__unordsf2): Update call to FP_CMP_UNORD_S. * soft-fp/unordtf2.c (__unordtf2): Update call to FP_CMP_UNORD_Q. * sysdeps/alpha/soft-fp/ots_cmpe.c (internal_compare): Update call to FP_CMP_Q. * sysdeps/sparc/sparc32/soft-fp/q_cmp.c (_Q_cmp): Update call to FP_CMP_Q. * sysdeps/sparc/sparc32/soft-fp/q_cmpe.c (_Q_cmpe): Likewise. * sysdeps/sparc/sparc32/soft-fp/q_feq.c (_Q_feq): Update call to FP_CMP_EQ_Q. * sysdeps/sparc/sparc32/soft-fp/q_fge.c (_Q_fge): Update call to FP_CMP_Q. * sysdeps/sparc/sparc32/soft-fp/q_fgt.c (_Q_fgt): Likewise. * sysdeps/sparc/sparc32/soft-fp/q_fle.c (_Q_fle): Likewise. * sysdeps/sparc/sparc32/soft-fp/q_flt.c (_Q_flt): Likewise. * sysdeps/sparc/sparc32/soft-fp/q_fne.c (_Q_fne): Update call to FP_CMP_EQ_Q. * sysdeps/sparc/sparc64/soft-fp/qp_cmp.c (_Qp_cmp): Update call to FP_CMP_Q. * sysdeps/sparc/sparc64/soft-fp/qp_cmpe.c (_Qp_cmpe): Likewise. * sysdeps/sparc/sparc64/soft-fp/qp_feq.c (_Qp_feq): Update call to FP_CMP_EQ_Q. * sysdeps/sparc/sparc64/soft-fp/qp_fge.c (_Qp_fge): Update call to FP_CMP_Q. * sysdeps/sparc/sparc64/soft-fp/qp_fgt.c (_Qp_fgt): Likewise. * sysdeps/sparc/sparc64/soft-fp/qp_fle.c (_Qp_fle): Likewise. * sysdeps/sparc/sparc64/soft-fp/qp_flt.c (_Qp_flt): Likewise. * sysdeps/sparc/sparc64/soft-fp/qp_fne.c (_Qp_fne): Update call to FP_CMP_EQ_Q.
* soft-fp: Remove FP_CLEAR_EXCEPTIONS.Joseph Myers2014-10-094-12/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As noted in <https://sourceware.org/ml/libc-alpha/2013-10/msg00516.html>, the soft-fp macro FP_CLEAR_EXCEPTIONS should not be necessary, as soft-fp code should never set an exception and later clear it. In fact, all four uses in glibc (for SPARC) are indeed unnecessary: they appear in files that convert 32-bit or 64-bit integers to IEEE binary128, an operation that can never raise any exceptions. If this was intended to enable the compiler to optimize away any FP_FROM_INT code testing for exceptional cases, we now have a better way of doing this: defining FP_NO_EXCEPTIONS before including soft-fp.h causes all code handling exceptions to be stubbed out, and the rounding mode to be hardwired for round-to-zero, to allow such optimizations for source files where (a) the operation in question, for the particular types in question, can never raise exceptions, but (b) some instances of the operation for other types can, so the macros used in the file do contain references to rounding or exceptions, albeit dead in that particular file. The uses in the Linux kernel are also unnecessary (clearing exceptions at a point where they are already cleared). This patch duly removes FP_CLEAR_EXCEPTIONS, making the SPARC code in question use FP_NO_EXCEPTIONS and stop using exception-related macros. * soft-fp/soft-fp.h (FP_CLEAR_EXCEPTIONS): Remove macro. * sysdeps/sparc/sparc32/soft-fp/q_itoq.c: Define FP_NO_EXCEPTIONS. (_Q_itoq): Do not use FP_DECL_EX, FP_CLEAR_EXCEPTIONS or FP_HANDLE_EXCEPTIONS. * sysdeps/sparc/sparc32/soft-fp/q_lltoq.c: Define FP_NO_EXCEPTIONS. (_Q_lltoq): Do not use FP_DECL_EX, FP_CLEAR_EXCEPTIONS or FP_HANDLE_EXCEPTIONS. * sysdeps/sparc/sparc32/soft-fp/q_ulltoq.c: Define FP_NO_EXCEPTIONS. (_Q_ulltoq): Do not use FP_DECL_EX, FP_CLEAR_EXCEPTIONS or FP_HANDLE_EXCEPTIONS. * sysdeps/sparc/sparc32/soft-fp/q_utoq.c: Define FP_NO_EXCEPTIONS. (_Q_utoq): Do not use FP_DECL_EX, FP_CLEAR_EXCEPTIONS or FP_HANDLE_EXCEPTIONS.
* Don't use INTUSE with __adjtimex (bug 14132).Joseph Myers2014-10-086-12/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | Bug 14132 is removal of the old INTDEF/INTUSE system of *_internal aliases as obsoleted by the hidden_proto / hidden_def system. Various cases were cleaned up in 2012, but some remain. This patch removes the use of this mechanism for __adjtimex. Tested for x86_64 that stripped installed shared libraries are unchanged by the patch. [BZ #14132] * sysdeps/unix/sysv/linux/include/sys/timex.h: New file. * sysdeps/unix/sysv/linux/adjtime.c [!ADJTIMEX] (ADJTIMEX): Do not use INTUSE. [!ADJTIMEX] (INTUSE(__adjtimex)): Remove declaration. * sysdeps/unix/sysv/linux/alpha/adjtime.c (__adjtimex_internal): Remove alias. (__adjtimex): Define using libc_hidden_ver. * sysdeps/unix/sysv/linux/ntp_gettime.c (INTUSE(__adjtimex)): Remove declaration. (ntp_gettime): Call __adjtimex directly. * sysdeps/unix/sysv/linux/ntp_gettimex.c (INTUSE(__adjtimex)): Remove declaration. (ntp_gettimex): Call __adjtimex directly. * sysdeps/unix/sysv/linux/syscalls.list (adjtimex): Remove __adjtimex_internal alias.
* Support and use mixed compat/non-compat aliases in syscalls.list.Joseph Myers2014-10-066-47/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch enables syscalls.list entries to specify both compat and non-compat symbol versions for the same syscall definition, making use of this for setrlimit / chown / lchown where the inability to specify such aliases showed up in the course of work on bug 14138. The change to make-syscalls.sh is minimal: adding a SHARED conditional on the compat_symbol calls. It remains the case that if a compat symbol version is specified, the syscall is only built for the shared library at all if an explicit symbol version is given for a non-compat symbol (so it's necessary to specify "lchown@@GLIBC_2.0 chown@GLIBC_2.0" rather than just "lchown chown@GLIBC_2.0"). It also remains the case, as already commented in make-syscalls.sh, that no SHLIB_COMPAT conditionals are generated, so there would be problems if the same syscalls.list file, with compat symbols, were used for both configurations that should have those symbols and configurations for which they should be conditioned out with SHLIB_COMPAT. Tested for x86. * sysdeps/unix/make-syscalls.sh (emit_weak_aliases): Condition compat_symbol calls on [SHARED]. * sysdeps/unix/sysv/linux/powerpc/lchown.S: Remove file. * sysdeps/unix/sysv/linux/i386/syscalls.list (oldsetrlimit): Remove. (setrlimit): Add setrlimit@GLIBC_2.0 alias. * sysdeps/unix/sysv/linux/m68k/m680x0/syscalls.list (oldsetrlimit): Remove. (setrlimit): Add setrlimit@GLIBC_2.0 alias. * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list (lchown): New syscall entry. (oldsetrlimit): Remove. (setrlimit): Add setrlimit@GLIBC_2.0 alias. * sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list (oldsetrlimit): Remove. (setrlimit): Add setrlimit@GLIBC_2.0 alias.
* Move some chown / lchown / fchown definitions to syscalls.list (bug 14138).Joseph Myers2014-10-068-47/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Continuing the move of syscall definitions to syscalls.list, where the removal of support for old kernel versions has made this possible, this patch moves various definitions of chown, lchown and fchown. In most cases the need for special syscalls.list entries (rather than existing generic ones) is because these architectures use chown32, lchown32 and fchown32 as syscall names. Some architectures also have symbol versioning compatibility for older versions of chown having been equivalent to lchown. In the case of powerpc, chown.c (providing the chown@@GLIBC_2.1 default version) is replaced by a syscalls.list entry (for powerpc32; powerpc64 has no need for this because of its more recent minimum symbol version, so can just use the entry in sysdeps/unix/syscalls.list), but lchown.S is left as-is because it provides the compat version of chown as an actual alias for __lchown, which is not yet supported by syscalls.list. This file can be removed once such aliases are supported in syscalls.list. [BZ #14138] * sysdeps/unix/sysv/linux/arm/fchown.c: Remove file. * sysdeps/unix/sysv/linux/arm/lchown.c: Likewise. * sysdeps/unix/sysv/linux/m68k/fchown.c: Likewise. * sysdeps/unix/sysv/linux/m68k/lchown.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/chown.c: Likewise. * sysdeps/unix/sysv/linux/arm/syscalls.list (lchown): Add syscall. (fchown): Likewise. * sysdeps/unix/sysv/linux/m68k/syscalls.list (lchown): Likewise. (fchown): Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list (chown): Likewise.
* powerpc: remove linux lowlevellock.hAdhemerval Zanella2014-10-063-346/+4
| | | | | This patch remove the powerpc specific lowlevellock.h and adjust some implementation that rely on __lll_[rel/acq]_instr defines.
* tile: fix copyright header blocks in just-committed filesChris Metcalf2014-10-064-13/+6
| | | | I accidentally committed versions not following the conventions.
* tile: add clock_gettime support via vDSOChris Metcalf2014-10-065-6/+69
|
* tile: make the prolog of clone() more conformantChris Metcalf2014-10-061-5/+6
| | | | | With this change we properly set up the frame first, and tear it down last, doing argument checking only when the frame is set up.
* tile: optimize memcmpChris Metcalf2014-10-061-0/+367
| | | | | | | | | | | | | | Customize memcmp.c for tile, using similar tricks from memcpy: - replace MERGE macro with dblalign. - replace memcmp_bytes function with revbytes. - use __glibc_likely. - use post-increment addressing. The schedule is still not perfect: the compiler is not hoisting code above the comparison branch, which could save a bundle or two. memcmp speeds up by 30-40% on shorter aligned tests in benchtest, with some tests with unaligned lengths taking a small performance hit.
* tile: add support for _SC_LEVEL*CACHE* sysconf() queriesChris Metcalf2014-10-061-0/+75
|
* tilegx: provide optimized strnlen, strstr, and strcasestrChris Metcalf2014-10-064-5/+401
| | | | | | | | | | | | | | | | | | | | | | strnlen() is based on the existing tile strlen() with length checking added. It speeds up by up to 5x, but on average across the benchtest corpus by around 35%. No regressions are seen. strstr() does 8-byte aligned loads and compares using a 2-byte filter on the first two bytes of the needle and then testing the remaining bytes in needle using memcmp(). It speeds up about 5x in the best case (for "found" needles), about 2x looking at benchtest as a whole, with some slowdowns as much as 45%. on a few cases (including the "fail" case for 128KB search). strcasestr() is based on strstr() but uses a SIMD tolower routine to convert 8-bytes to lower case in 5 instructions. It also uses a 2-byte filter and then strncasecmp() for the remaining bytes. strncasecmp() is not optimized for SIMD, so there is futher room for improvement. However, it is still up to 16x faster for "found" needles, averaging 2x faster on the whole corpus of benchtests. It does slow down by up to 35% on a few cases, similarly to strstr().
* tilegx: optimize string copy_byte() internal functionChris Metcalf2014-10-061-6/+5
| | | | | We can use one "shufflebytes" instruction instead of 3 "bfins" instructions to optimize the string functions.
* Move execve to syscalls.list (bug 14138).Joseph Myers2014-10-012-35/+1
| | | | | | | | | | | | | | Continuing the move of syscall definitions to syscalls.list, where previous cleanups have made this possible, this patch moves the definition of execve. (In this case, it was the removal of bounded pointers support, rather than old kernel support, which made the move possible.) Tested for x86_64. [BZ #14138] * sysdeps/unix/sysv/linux/execve.c: Remove file. * sysdeps/unix/sysv/linux/syscalls.list (execve): Add syscall.
* Remove extra whitespace from end of line.Steve Ellcey2014-10-011-1/+1
|
* * sysdeps/mips/strcmp.S: New.Steve Ellcey2014-10-011-0/+249
|
* Move some *at definitions to syscalls.list (bug 14138).Joseph Myers2014-09-308-272/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Continuing the move of syscall definitions to syscalls.list, where the removal of support for old kernel versions has made this possible, this patch moves definitions of various *at functions in sysdeps/unix/sysv/linux/. These particular moves are straightforward: there are no #includes of these source files, no special architecture-specific versions, no special symbol version handling and no aliases. Each source file can be replaced by a single line in sysdeps/unix/sysv/linux/syscalls.list. Tested for x86_64. [BZ #14138] * sysdeps/unix/sysv/linux/syscalls.list (fchownat): New syscall. (linkat): Likewise. (mkdirat): Likewise. (readlinkat): Likewise. (renameat): Likewise. (symlinkat): Likewise. (unlinkat): Likewise. * sysdeps/unix/sysv/linux/fchownat.c: Remove file. * sysdeps/unix/sysv/linux/linkat.c: Likewise. * sysdeps/unix/sysv/linux/mkdirat.c: Likewise. * sysdeps/unix/sysv/linux/readlinkat.c: Likewise. * sysdeps/unix/sysv/linux/renameat.c: Likewise. * sysdeps/unix/sysv/linux/symlinkat.c: Likewise. * sysdeps/unix/sysv/linux/unlinkat.c: Likewise.
* Run tst-ld-sse-use.sh with bash.Joseph Myers2014-09-291-1/+1
| | | | | | | | | | | | | | tst-ld-sse-use.sh is a bash script, not a POSIX shell script, and so needs to be run with $(BASH) not $(SHELL) to avoid errors of the form: ../sysdeps/x86/tst-ld-sse-use.sh: 41: ../sysdeps/x86/tst-ld-sse-use.sh: declare: not found (when /bin/sh is dash). This patch makes that change. Tested for x86_64. * sysdeps/x86/Makefile ($(objpfx)tst-ld-sse-use.out): Run script with $(BASH) not $(SHELL).
* Require autoconf 2.69H.J. Lu2014-09-2912-17/+23
| | | | | | | | | | | | | | | | | | | * aclocal.m4: Require autoconf 2.69. * configure: Regenerated. * sysdeps/aarch64/configure: Likewise. * sysdeps/alpha/configure: Likewise. * sysdeps/arm/armv7/configure: Likewise. * sysdeps/arm/configure: Likewise. * sysdeps/ia64/configure: Likewise. * sysdeps/mach/configure: Likewise. * sysdeps/mips/configure: Likewise. * sysdeps/s390/configure: Likewise. * sysdeps/unix/sysv/linux/mips/configure: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/configure: Likewise. * sysdeps/alpha/configure.ac: Avoid empty lines at the end of file. * sysdeps/ia64/configure.ac: Likewise.
* Remove shlib-versions entries redundant with DEFAULT entries.Joseph Myers2014-09-264-10/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a shlib-versions file has a DEFAULT line, it's not necessary to specify the same default minimum symbol version on the lines for individual libraries. If those lines otherwise duplicate the default SONAME for the library in question, they can be removed completely. This patch makes such cleanups: version entries for ld.so are removed (leaving just the definition of the architecture-specific dynamic linker name) and entries for libpthread are removed completely (since the default is libpthread.so.0). Tested for x86_64 that the installed shared libraries are unchanged by this patch. There are various architectures (hppa, ia64, mips, sh, sparc64) that define minimum symbol versions (or in the case of mips, omission of symbol versions) only for particular libraries without a DEFAULT line. None of these are equivalent to something simpler with a DEFAULT line because all have some other libraries, not explicitly mentioned, with symbol versions that would be omitted were such a line used. In the mips case I'm pretty sure it was a mistake not to omit the 2.1 symbols for libthread_db; for the others I don't know if it was a mistake or deliberate that some symbols in various libraries have 2.0 or 2.1 versions despite other libraries having a 2.2 minimum. This concludes the shlib-versions cleanups I'm aware of. * sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions: Do not specify symbol version for ld.so. Do not include entry for libpthread. * sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions: Likewise.
* Clean up gnu/lib-names.h generation (bug 14171).Joseph Myers2014-09-2611-22/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch eliminates the mixture of SONAME information in shlib-versions files and SONAME information used to generate gnu/lib-names.h in makefiles, with the information in the makefiles being removed so all this information comes from the shlib-versions files. So that gnu/lib-names.h supports multiple ABIs, it is changed to be generated on the same basis as gnu/stubs.h: when there are multiple ABIs, gnu/lib-names.h is a wrapper header (the same header installed whatever ABI is being built) and separate headers such as gnu/lib-names-64.h contain the substantive contents (only one such header being installed by any glibc build). The rules for building gnu/lib-names.h were moved from Makeconfig to Makerules because they need to come after sysdeps makefiles are included (now that "ifndef abi-variants" is a toplevel conditional on the rules rather than $(abi-variants) being evaluated later inside the commands for a rule). Tested for x86_64 and x86 that the installed shared libraries are unchanged by this patch, and examined the installed gnu/lib-names*.h headers by hand. Also tested the case of a single ABI (where there is just a single header installed, again like stubs.h) by hacking abi-variants to empty for x86_64. [BZ #14171] * Makeconfig [$(build-shared) = yes] ($(common-objpfx)soversions.mk): Don't handle SONAMEs specified in makefiles. [$(build-shared) = yes && $(soversions.mk-done) = t] ($(common-objpfx)gnu/lib-names.h): Remove rule. [$(build-shared) = yes && $(soversions.mk-done) = t] ($(common-objpfx)gnu/lib-names.stmp): Likewise. Split and moved to Makerules. [$(build-shared) = yes && $(soversions.mk-done) = t] (before-compile): Don't append $(common-objpfx)gnu/lib-names.h here. [$(build-shared) = yes && $(soversions.mk-done) = t] (common-generated): Don't append gnu/lib-names.h and gnu/lib-names.stmp here. * Makerules [$(build-shared) = yes && $(soversions.mk-done) = t] (lib-names-h-abi): New variable. [$(build-shared) = yes && $(soversions.mk-done) = t] (lib-names-stmp-abi): Likewise. [$(build-shared) = yes && $(soversions.mk-done) = t && abi-variants] (before-compile): Append $(common-objpfx)$(lib-names-h-abi). [$(build-shared) = yes && $(soversions.mk-done) = t && abi-variants] (common-generated): Append gnu/lib-names.h. [$(build-shared) = yes && $(soversions.mk-done) = t && abi-variants] (install-others-nosubdir): Depend on $(inst_includedir)/$(lib-names-h-abi). [$(build-shared) = yes && $(soversions.mk-done) = t && abi-variants] ($(common-objpfx)gnu/lib-names.h): New rule. [$(build-shared) = yes && $(soversions.mk-done) = t] ($(common-objpfx)$(lib-names-h-abi)): New rule. [$(build-shared) = yes && $(soversions.mk-done) = t] ($(common-objpfx)$(lib-names-stmp-abi)): Likewise. [$(build-shared) = yes && $(soversions.mk-done) = t] (common-generated): Append $(lib-names-h-abi) and $(lib-names-stmp-abi). * scripts/lib-names.awk: Do not handle multi being set. * sysdeps/unix/sysv/linux/aarch64/Makefile (abi-lp64-ld-soname): Remove variable. (abi-lp64_be-ld-soname): Likewise. * sysdeps/unix/sysv/linux/arm/Makefile (abi-soft-ld-soname): Likewise. (abi-hard-ld-soname): Likewise. * sysdeps/unix/sysv/linux/i386/shlib-versions: New file. * sysdeps/unix/sysv/linux/mips/Makefile (abi-o32_soft-ld-soname): Remove variable. (abi-o32_hard-ld-soname): Likewise. (abi-o32_soft_2008-ld-soname): Likewise. (abi-o32_hard_2008-ld-soname): Likewise. (abi-n32_soft-ld-soname): Likewise. (abi-n32_hard-ld-soname): Likewise. (abi-n32_soft_2008-ld-soname): Likewise. (abi-n32_hard_2008-ld-soname): Likewise. (abi-n64_soft-ld-soname): Likewise. (abi-n64_hard-ld-soname): Likewise. (abi-n64_soft_2008-ld-soname): Likewise. (abi-n64_hard_2008-ld-soname): Likewise. * sysdeps/unix/sysv/linux/powerpc/Makefile (abi-64-v1-ld-soname): Likewise. (abi-64-v2-ld-soname): Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions: Add ld.so entries. * sysdeps/unix/sysv/linux/s390/Makefile (abi-64-ld-soname): Remove variable. * sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions: Add ld.so entry. * sysdeps/unix/sysv/linux/x86/Makefile (abi-32-ld-soname): Remove variable. (abi-64-ld-soname): Likewise. (abi-x32-ld-soname): Likewise. * sysdeps/unix/sysv/linux/x86_64/64/shlib-versions: Add ld.so entry. * sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions: Likewise.
* Move some setrlimit definitions to syscalls.list (bug 14138).Joseph Myers2014-09-2310-43/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug 14138 is followup cleanup after removal of support for old Linux kernel versions: moving syscalls to syscalls.list where the only reason for using C definitions was kernel version conditionals that are no longer present. This patch deals with the case of setrlimit (sysdeps/unix/sysv/linux/i386/setrlimit.c, included by various other architectures). Where needed (where there is also a compat symbol for setrlimit@GLIBC_2.0), new syscalls.list entries are added. Where not needed (where there is no such compat symbol and the minimum symbol version for libc is 2.2 or later), no such entries are added as that in sysdeps/unix/syscalls.list will suffice. Thus arm and sh need no such entries, while m68k and powerpc need entries only in a subdirectory syscalls.list file rather than for all configurations that previously used setrlimit.c. (setrlimit@@GLIBC_2.2 and setrlimit@GLIBC_2.0 are now semantically identical - the new symbol version was about a change of types from signed to unsigned and the former compatibility code for dealing with large unsigned arguments on old kernels is no longer needed or present, having been removed with support for pre-2.4 kernels. However, making the two versions into aliases doesn't work at present: the case of having both default and non-default symbol versions on the same syscalls.list line results in a compat_symbol call in code built for static libc, which doesn't compile. I don't suppose it would be hard to generate SHARED conditionals from make-syscalls.sh to fix this, but in any case this patch doesn't make things any worse, as the functions weren't aliases before the patch either.) Tested for x86, and ran ABI tests for ARM as an example of an architecture where the setrlimit.c file was just removed without adding syscalls.list entries. [BZ #14138] * sysdeps/unix/sysv/linux/arm/setrlimit.c: Remove file. * sysdeps/unix/sysv/linux/i386/setrlimit.c: Likewise. * sysdeps/unix/sysv/linux/m68k/setrlimit.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/setrlimit.c: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/setrlimit.c: Likewise. * sysdeps/unix/sysv/linux/sh/setrlimit.c: Likewise. * sysdeps/unix/sysv/linux/i386/syscalls.list (setrlimit): Add syscall entry for GLIBC_2.2 symbol version. * sysdeps/unix/sysv/linux/m68k/m680x0/syscalls.list (setrlimit): Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list (setrlimit): Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list (setrlimit): Likewise.
* ARM: Don't define _SYS_AUXV_H in sysdep.hWill Newton2014-09-232-2/+1
| | | | | | | | | | | | | | | | sysdep.h was defining _SYS_AUXV_H in order to avoid an include guard check in hwcap.h. Unfortunately it didn't undefine it so it could leak out into code and caused a build failure with -Wimplicit-function-declaration building tst-auxv on ARM. ChangeLog: 2014-09-23 Will Newton <will.newton@linaro.org> * sysdeps/unix/sysv/linux/arm/bits/hwcap.h: Check for _LINUX_ARM_SYSDEP_H include guard too. * sysdeps/unix/sysv/linux/arm/sysdep.h (_SYS_AUXV_H): Remove define.
* Fix prototype of eventfd.Rasmus Villemoes2014-09-203-3/+3
|
* Sync recvmmsg prototype with kernel usage.Ondřej Bílka2014-09-201-3/+3
|
* Remove bitrotten --enable-oldest-abi (bug 6652).Joseph Myers2014-09-164-32/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes the --enable-oldest-abi configure option, which has long been bitrotten (as reported in bug 6652). The principle of removing this option was agreed in the thread starting at <https://sourceware.org/ml/libc-alpha/2013-07/msg00174.html>. Tested for x86_64 and x86 that the installed shared libraries other than libc.so are unchanged by this patch and that libc.so disassembly and symbol versions are unchanged (debug info changes because of changed line numbers in csu/version.c). [BZ #6652] * Makeconfig (soversions-default-setname): Remove variable. ($(common-objpfx)soversions.i): Don't pass default_setname to soversions.awk. * Makerules ($(common-objpfx)abi-versions.h): Don't pass oldest_abi to abi-versions.awk. * config.h.in (GLIBC_OLDEST_ABI): Remove macro undefine. * config.make.in (oldest-abi): Remove variable. * configure.ac (--enable-oldest-abi): Remove configure option. * configure: Regenerated. * csu/version.c (banner) [GLIBC_OLDEST_ABI]: Remove conditional text. * scripts/abi-versions.awk: Do not handle oldest_abi variable. * scripts/soversions.awk: Do not handle default_setname variable. * sysdeps/mach/hurd/configure.ac: Do not handle oldest_abi variable. * sysdeps/mach/hurd/configure: Regenerated. * sysdeps/unix/sysv/linux/configure.ac: Do not handle oldest_abi variable. * sysdeps/unix/sysv/linux/configure: Regenerated.
* Handle zero prefix length in getifaddrs (BZ #17371)Andreas Schwab2014-09-151-7/+4
|
* Remove _POSIX_REGEX_VERSIONSiddhesh Poyarekar2014-09-151-4/+2
| | | | | | | | | | | | There is no _POSIX_REGEX_VERSION, so don't check for it. _REGEX_VERSION has been removed as well[1], so only keep the -1 return for backward compatibility. I found this when trying to make the getconf environment variables typo-proof. * sysdeps/posix/sysconf.c (__sysconf): Return -1 for _SC_REGEX_VERSION. [1] http://pubs.opengroup.org/onlinepubs/009695399/functions/sysconf.html
* Remove configuration name patterns from shlib-versions.Joseph Myers2014-09-1220-78/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes the first column (patterns matching configuration names) from shlib-versions, leaving shlib-versions entry selection based purely on sysdeps directories. An implication of this removal is that the default for any non-Linux ports using NPTL will be the same SONAMEs for NPTL libraries as for Linux (as those defaults, previously limited to .*-.*-linux.*, are left in nptl/shlib-versions and nptl_db/shlib-versions). Special host_os handling in configure.ac that was purely for shlib-versions is removed. (The host_os setting is still used for libc-abis - see <https://sourceware.org/ml/libc-alpha/2014-01/msg00375.html> regarding that - but no entries there are affected by this change.) Tested on x86_64 and x86 that the installed shared libraries are unchanged by this patch. * scripts/soversions.awk: Do not handle configuration names. * Makeconfig ($(common-objpfx)soversions.i): Do not pass cpu, vendor and os variables to soversions.awk. * configure.ac: Do not modify gnu-* host_os. * configure: Regenerated * shlib-versions: Remove first column with configuration names. * nptl/shlib-versions: Likewise. * nptl_db/shlib-versions: Likewise. * sysdeps/hppa/shlib-versions: Likewise. * sysdeps/m68k/shlib-versions: Likewise. * sysdeps/mach/hurd/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/aarch64/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/alpha/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/arm/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/hppa/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/ia64/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/microblaze/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/mips/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/sh/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/tile/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/shlib-versions: Likewise. libidn/ChangeLog: * shlib-versions: Remove first column with configuration names.
* Use %ifdef in sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions.Joseph Myers2014-09-123-2/+10
| | | | | | | | | | | | | | | | | | | | | | | This patch makes sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions use %ifdef conditionals around the different symbol version definitions for big and little endian. (It doesn't actually change the host patterns used for those definitions; the point is to make it possible to remove the first column from shlib-versions by eliminating the last case where it would be harmful for it to be treated as .*-.*-.*.) The conditional is based on the ELFv1/ELFv2 distinction rather than BE/LE, since that's what's already tested in configure and used for the ld.so soname in the Makefiles. (Of course if BE ELFv2 were supported in future, it would get new symbol versions and so need new conditionals.) * sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac (HAVE_ELFV2_ABI): AC_DEFINE in ELFv2 case. * sysdeps/unix/sysv/linux/powerpc/powerpc64/configure: Regenerated. * config.h.in (HAVE_ELFV2_ABI): New macro undefine. * sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions: Condition symbol version definitions on [HAVE_ELFV2_ABI].
* Move OS-specific shlib-versions entries to sysdeps files.Joseph Myers2014-09-122-0/+14
| | | | | | | | | | | | | | | | | | | | | | | This patch moves OS-specific entries in the top-level shlib-versions file to appropriate sysdeps directories. I left the entries in nptl/shlib-versions and nptl_db/shlib-versions unchanged; I think it can be for those doing non-Linux NPTL-using ports to figure out whether those entries should actually be OS-independent or should move to sysdeps. Given these two patches, I think the only further change needed before the first column of shlib-versions can be eliminated will be changing sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions to use %ifdef to distinguish BE and LE configurations, instead of relying on the powerpc64-.*-linux.* and powerpc.*le-.*-linux.* patterns. Tested on x86_64 that the installed shared libraries are unchanged by this patch. * shlib-versions: Remove OS-specific entries. Moved to files in sysdeps. * sysdeps/mach/hurd/shlib-versions: New file. * sysdeps/unix/sysv/linux/shlib-versions: Likewise.
* Move architecture-specific shlib-versions entries to sysdeps files.Joseph Myers2014-09-125-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch eliminates another way in which ex-ports and non-ex-ports architectures differ, by moving architecture-specific entries from the top-level shlib-versions file and that in nptl/ to appropriate sysdeps directories. As with my previous patch <https://sourceware.org/ml/libc-alpha/2014-06/msg00949.html>, I do not change the regular expressions used; even where the present expressions seem more general, I believe they are in fact specific to the chosen sysdeps directory, because any port that matches the expression but not the sysdeps directory does not currently exist, and so would use different symbol versions if added in future (and an intended goal of these changes is to eliminate the first column in shlib-versions completely rather than having two different mechanisms in use for system-specific configuration). Tested on x86_64 that this does not change the installed shared libraries. (x86_64 of course does not provide much test coverage for this patch - what should be architecture-specific contents in shlib-versions for x86_64 is currently abi-*-ld-soname Makefile settings, until gnu/lib-names.h is generated more like gnu/stubs.h so those can move back to shlib-versions.) * nptl/shlib-versions: Remove architecture-specific entries. Moved to files in sysdeps. * shlib-versions: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions: New file. * sysdeps/unix/sysv/linux/s390/s390-64/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/sh/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/shlib-versions: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/shlib-versions: Likewise.
* Add new Linux 3.16 constants to netinet/udp.h.Joseph Myers2014-09-121-0/+4
| | | | | | | | | | | | | This patch adds the new constants UDP_NO_CHECK6_TX and UDP_NO_CHECK6_RX from Linux 3.16 to sysdeps/gnu/netinet/udp.h. (I believe the existing constants there are already Linux-specific, possibly with the intention that other OSes should adopt the same values if possible if adopting the features in question.) Tested on x86_64. * sysdeps/gnu/netinet/udp.h (UDP_NO_CHECK6_TX): New macro. (UDP_NO_CHECK6_RX): Likewise.
* Fix typo in macro names in sysconf.cSiddhesh Poyarekar2014-09-121-2/+2
| | | | | | | | | Spell _POSIX_DEVICE_SPECIFIC and _POSIX_DEVICE_SPECIFIC_R correctly. Found when trying to make the getconf environment variables typo-proof. * sysdeps/posix/sysconf.c (__sysconf): Spell _POSIX_DEVICE_SPECIFIC and _POSIX_DEVICE_SPECIFIC_R correctly.