Commit Graph

4283 Commits

Author SHA1 Message Date
Andreas Schwab
b0a3c1640a Properly handle forced elision in pthread_mutex_trylock (bug 16657) 2014-12-11 12:44:27 +01:00
Joseph Myers
c153ac9f1b Fix MIPS waitid build.
As previously discussed in
<https://sourceware.org/ml/libc-alpha/2012-11/msg00798.html>, MIPS (o32)
waitid has build warnings (now errors) because a function is declared
inline but functions with five-argument syscalls cannot be inlined for
MIPS o32.

This patch disables the -Winline warnings for waitid.c using a
MIPS-specific wrapper file.  As it's whole-file disabling, there's no
point in using push and pop, so just DIAG_IGNORE_NEEDS_COMMENT is
used.

	* sysdeps/unix/sysv/linux/mips/mips32/waitid.c: New file.
2014-12-10 18:50:07 +00:00
Joseph Myers
2b89bce91e Fix MIPS sigaction build.
Building MIPS sigaction (for ABIs other than o32) fails because of
"'restore_rt' used but never defined", arising from static functions
being defined in asms and referred to from C code.  There is no
corresponding -W option for that warning, so this patch uses
-Wno-error for building sigaction.c.

	* sysdeps/unix/sysv/linux/mips/mips64/Makefile
	[$(subdir) == signal] (CFLAGS-sigaction.c): New variable.
	[$(subdir) == nptl] (CFLAGS-sigaction.c): Likewise.
2014-12-10 18:45:03 +00:00
Torvald Riegel
df7ecc6bd2 Remove custom pthread_once implementation on sh. 2014-12-09 14:32:29 +01:00
Joseph Myers
7f994279e9 Fix getifaddrs, freeifaddrs namespace (bug 17668).
Various objects in glibc bring in ifaddrs.o (via references to
__netlink_*) and thereby getifaddrs and freeifaddrs, which are not
part of any standard supported by glibc.  These should be weak aliases
of __getifaddrs and __freeifaddrs; this patch makes them so.

(The path by which these functions are brought in is Linux-specific,
but it seems less confusing to make all versions of these functions
weak aliases rather than only the Linux-specific versions that
definitely need it.)

Tested for x86_64 (testsuite, and that disassembly of installed shared
libraries is unchanged by this patch).

	[BZ #17668]
	* inet/ifaddrs.c (getifaddrs): Rename to __getifaddrs and define
	as weak alias of __getifaddrs.  Use libc_hidden_weak.
	(freeifaddrs): Rename to __freeifaddrs and define as weak alias of
	__freeifaddrs.  Use libc_hidden_weak.
	* sysdeps/gnu/ifaddrs.c (getifaddrs): Rename to __getifaddrs and
	define as weak alias of __getifaddrs.  Use libc_hidden_weak.
	(freeifaddrs): Rename to __freeifaddrs and define as weak alias of
	__freeifaddrs.  Use libc_hidden_weak.
	* sysdeps/unix/sysv/linux/ifaddrs.c (getifaddrs): Rename to
	__getifaddrs and define as weak alias of __getifaddrs.  Use
	libc_hidden_weak.
	(freeifaddrs): Rename to __freeifaddrs and define as weak alias of
	__freeifaddrs.  Use libc_hidden_weak.
	* conform/Makefile (test-xfail-XOPEN2K/net/if.h/linknamespace):
	Remove variable.
	(test-xfail-POSIX2008/net/if.h/linknamespace): Likewise.
	(test-xfail-XOPEN2K8/net/if.h/linknamespace): Likewise.
2014-12-02 23:11:09 +00:00
Joseph Myers
a6f3079bfb Fix sysdeps/unix/sysv/linux/arm/libc-do-syscall.S warning.
This patch fixes a warning

../include/features.h:328:4: warning: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Wcpp]

seen when building for ARM.  This warning comes from libc-do-syscall.S
being built for nscd: the nscd build uses _FORTIFY_SOURCE, while .S
files aren't built with -O, and the combination produces a warning.
As _FORTIFY_SOURCE doesn't do anything for .S files, undefining it in
libc-do-syscall.S seems the simplest solution.

Tested for ARM.

	* sysdeps/unix/sysv/linux/arm/libc-do-syscall.S (_FORTIFY_SOURCE):
	Undefine.
2014-11-26 15:13:27 +00:00
Ryan Cumming
e9ff8efb5c Define CLOCK_TAI on Linux (bug 17608) 2014-11-24 17:28:41 +01:00
Siddhesh Poyarekar
4f41c682f3 Remove NOT_IN_libc
Replace with !IS_IN (libc).  This completes the transition from
the IS_IN/NOT_IN macros to the IN_MODULE macro set.

The generated code is unchanged on x86_64.

	* stdlib/isomac.c (fmt): Replace NOT_IN_libc with IN_MODULE.
	(get_null_defines): Adjust.
	* sunrpc/Makefile: Adjust comment.
	* Makerules (CPPFLAGS-nonlib): Remove NOT_IN_libc.
	* elf/Makefile (CPPFLAGS-sotruss-lib): Likewise.
	(CFLAGS-interp.c): Likewise.
	(CFLAGS-ldconfig.c): Likewise.
	(CPPFLAGS-.os): Likewise.
	* elf/rtld-Rules (rtld-CPPFLAGS): Likewise.
	* extra-lib.mk (CPPFLAGS-$(lib)): Likewise.
	* extra-modules.mk (extra-modules.mk): Likewise.
	* iconv/Makefile (CPPFLAGS-iconvprogs): Likewise.
	* locale/Makefile (CPPFLAGS-locale_programs): Likewise.
	* malloc/Makefile (CPPFLAGS-memusagestat): Likewise.
	* nscd/Makefile (CPPFLAGS-nscd): Likewise.
	* nss/Makefile (CPPFLAGS-nss_test1): Likewise.
	* stdlib/Makefile (CFLAGS-tst-putenvmod.c): Likewise.
	* sysdeps/gnu/Makefile ($(objpfx)errlist-compat.c): Likewise.
	* sysdeps/unix/sysv/linux/Makefile (CPPFLAGS-lddlibc4): Likewise.
	* iconvdata/Makefile (CPPFLAGS): Likewise.
	(cpp-srcs-left): Add libof for all iconvdata routines.
	* bits/stdio-lock.h: Replace NOT_IN_libc with IS_IN.
	* include/assert.h: Likewise.
	* include/ctype.h: Likewise.
	* include/errno.h: Likewise.
	* include/libc-symbols.h: Likewise.
	* include/math.h: Likewise.
	* include/netdb.h: Likewise.
	* include/resolv.h: Likewise.
	* include/stdio.h: Likewise.
	* include/stdlib.h: Likewise.
	* include/string.h: Likewise.
	* include/sys/stat.h: Likewise.
	* include/wctype.h: Likewise.
	* intl/l10nflist.c: Likewise.
	* libidn/idn-stub.c: Likewise.
	* libio/libioP.h: Likewise.
	* nptl/libc_multiple_threads.c: Likewise.
	* nptl/pthreadP.h: Likewise.
	* posix/regex_internal.h: Likewise.
	* resolv/res_hconf.c: Likewise.
	* sysdeps/arm/armv7/multiarch/memcpy.S: Likewise.
	* sysdeps/arm/memmove.S: Likewise.
	* sysdeps/arm/sysdep.h: Likewise.
	* sysdeps/generic/_itoa.h: Likewise.
	* sysdeps/generic/symbol-hacks.h: Likewise.
	* sysdeps/gnu/errlist.awk: Likewise.
	* sysdeps/gnu/errlist.c: Likewise.
	* sysdeps/i386/i586/memcpy.S: Likewise.
	* sysdeps/i386/i586/memset.S: Likewise.
	* sysdeps/i386/i686/memcpy.S: Likewise.
	* sysdeps/i386/i686/memmove.S: Likewise.
	* sysdeps/i386/i686/mempcpy.S: Likewise.
	* sysdeps/i386/i686/memset.S: Likewise.
	* sysdeps/i386/i686/multiarch/bcopy.S: Likewise.
	* sysdeps/i386/i686/multiarch/bzero.S: Likewise.
	* sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S: Likewise.
	* sysdeps/i386/i686/multiarch/memchr-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/memchr.S: Likewise.
	* sysdeps/i386/i686/multiarch/memcmp-sse4.S: Likewise.
	* sysdeps/i386/i686/multiarch/memcmp-ssse3.S: Likewise.
	* sysdeps/i386/i686/multiarch/memcmp.S: Likewise.
	* sysdeps/i386/i686/multiarch/memcpy-ssse3-rep.S: Likewise.
	* sysdeps/i386/i686/multiarch/memcpy-ssse3.S: Likewise.
	* sysdeps/i386/i686/multiarch/memcpy.S: Likewise.
	* sysdeps/i386/i686/multiarch/memcpy_chk.S: Likewise.
	* sysdeps/i386/i686/multiarch/memmove.S: Likewise.
	* sysdeps/i386/i686/multiarch/memmove_chk.S: Likewise.
	* sysdeps/i386/i686/multiarch/mempcpy.S: Likewise.
	* sysdeps/i386/i686/multiarch/mempcpy_chk.S: Likewise.
	* sysdeps/i386/i686/multiarch/memrchr-c.c: Likewise.
	* sysdeps/i386/i686/multiarch/memrchr-sse2-bsf.S: Likewise.
	* sysdeps/i386/i686/multiarch/memrchr-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/memrchr.S: Likewise.
	* sysdeps/i386/i686/multiarch/memset-sse2-rep.S: Likewise.
	* sysdeps/i386/i686/multiarch/memset-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/memset.S: Likewise.
	* sysdeps/i386/i686/multiarch/memset_chk.S: Likewise.
	* sysdeps/i386/i686/multiarch/rawmemchr.S: Likewise.
	* sysdeps/i386/i686/multiarch/strcat-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/strcat-ssse3.S: Likewise.
	* sysdeps/i386/i686/multiarch/strcat.S: Likewise.
	* sysdeps/i386/i686/multiarch/strchr-sse2-bsf.S: Likewise.
	* sysdeps/i386/i686/multiarch/strchr-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/strchr.S: Likewise.
	* sysdeps/i386/i686/multiarch/strcmp-sse4.S: Likewise.
	* sysdeps/i386/i686/multiarch/strcmp-ssse3.S: Likewise.
	* sysdeps/i386/i686/multiarch/strcmp.S: Likewise.
	* sysdeps/i386/i686/multiarch/strcpy-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/strcpy-ssse3.S: Likewise.
	* sysdeps/i386/i686/multiarch/strcpy.S: Likewise.
	* sysdeps/i386/i686/multiarch/strcspn.S: Likewise.
	* sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S: Likewise.
	* sysdeps/i386/i686/multiarch/strlen-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/strlen.S: Likewise.
	* sysdeps/i386/i686/multiarch/strnlen.S: Likewise.
	* sysdeps/i386/i686/multiarch/strrchr-sse2-bsf.S: Likewise.
	* sysdeps/i386/i686/multiarch/strrchr-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/strrchr.S: Likewise.
	* sysdeps/i386/i686/multiarch/strspn.S: Likewise.
	* sysdeps/i386/i686/multiarch/wcschr-c.c: Likewise.
	* sysdeps/i386/i686/multiarch/wcschr-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/wcschr.S: Likewise.
	* sysdeps/i386/i686/multiarch/wcscmp-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/wcscmp.S: Likewise.
	* sysdeps/i386/i686/multiarch/wcscpy-c.c: Likewise.
	* sysdeps/i386/i686/multiarch/wcscpy-ssse3.S: Likewise.
	* sysdeps/i386/i686/multiarch/wcscpy.S: Likewise.
	* sysdeps/i386/i686/multiarch/wcslen-c.c: Likewise.
	* sysdeps/i386/i686/multiarch/wcslen-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/wcslen.S: Likewise.
	* sysdeps/i386/i686/multiarch/wcsrchr-c.c: Likewise.
	* sysdeps/i386/i686/multiarch/wcsrchr-sse2.S: Likewise.
	* sysdeps/i386/i686/multiarch/wcsrchr.S: Likewise.
	* sysdeps/i386/i686/multiarch/wmemcmp-c.c: Likewise.
	* sysdeps/i386/i686/multiarch/wmemcmp.S: Likewise.
	* sysdeps/ia64/fpu/libm-symbols.h: Likewise.
	* sysdeps/nptl/bits/libc-lock.h: Likewise.
	* sysdeps/nptl/bits/libc-lockP.h: Likewise.
	* sysdeps/nptl/bits/stdio-lock.h: Likewise.
	* sysdeps/posix/closedir.c: Likewise.
	* sysdeps/posix/opendir.c: Likewise.
	* sysdeps/posix/readdir.c: Likewise.
	* sysdeps/posix/rewinddir.c: Likewise.
	* sysdeps/powerpc/novmx-sigjmp.c: Likewise.
	* sysdeps/powerpc/powerpc32/__longjmp.S: Likewise.
	* sysdeps/powerpc/powerpc32/bsd-_setjmp.S: Likewise.
	* sysdeps/powerpc/powerpc32/fpu/__longjmp.S: Likewise.
	* sysdeps/powerpc/powerpc32/fpu/setjmp.S: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/memchr.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-ppc32.S: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/memcmp.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-ppc32.S: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/memcpy.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/memmove.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-ppc32.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/memrchr.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/memset-ppc32.S: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/memset.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strchr.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strlen-ppc32.S: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strlen.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strncase.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strncmp-ppc32.S: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strncmp.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strnlen.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-ppc32.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/wcschr.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-ppc32.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-ppc32.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr.c: Likewise.
	* sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy.c: Likewise.
	* sysdeps/powerpc/powerpc32/power6/memset.S: Likewise.
	* sysdeps/powerpc/powerpc32/setjmp.S: Likewise.
	* sysdeps/powerpc/powerpc64/__longjmp.S: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/bzero.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/memchr.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/memcmp-ppc64.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/memcmp.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/memcpy-ppc64.S: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/memcpy.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/memmove-ppc64.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/memmove.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/mempcpy.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/memrchr.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/memset.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/rawmemchr.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/stpcpy-ppc64.S: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/stpcpy.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/stpncpy.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strcasecmp.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strcasecmp_l.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strcat.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strchr.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strchrnul.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strcmp.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strcpy-ppc64.S: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strcpy.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strcspn.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strlen-ppc64.S: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strlen.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strncase.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strncase_l.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strncat.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strncmp-ppc64.S: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strncmp.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strncpy-ppc64.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strncpy.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strnlen.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strpbrk.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strrchr-ppc64.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strrchr.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strspn-ppc64.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/strspn.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/wcschr.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/wcscpy.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c: Likewise.
	* sysdeps/powerpc/powerpc64/multiarch/wordcopy.c: Likewise.
	* sysdeps/powerpc/powerpc64/setjmp.S: Likewise.
	* sysdeps/s390/s390-32/multiarch/ifunc-resolve.c: Likewise.
	* sysdeps/s390/s390-32/multiarch/memcmp.S: Likewise.
	* sysdeps/s390/s390-32/multiarch/memcpy.S: Likewise.
	* sysdeps/s390/s390-32/multiarch/memset.S: Likewise.
	* sysdeps/s390/s390-64/multiarch/ifunc-resolve.c: Likewise.
	* sysdeps/s390/s390-64/multiarch/memcmp.S: Likewise.
	* sysdeps/s390/s390-64/multiarch/memcpy.S: Likewise.
	* sysdeps/s390/s390-64/multiarch/memset.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memcpy-niagara1.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memcpy-niagara4.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memcpy.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memset-niagara1.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memset-niagara4.S: Likewise.
	* sysdeps/sparc/sparc64/multiarch/memset.S: Likewise.
	* sysdeps/unix/alpha/sysdep.S: Likewise.
	* sysdeps/unix/alpha/sysdep.h: Likewise.
	* sysdeps/unix/make-syscalls.sh: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/arm/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/arm/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/getpid.c: Likewise.
	* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/lowlevellock-futex.h: Likewise.
	* sysdeps/unix/sysv/linux/m68k/bits/m68k-vdso.h: Likewise.
	* sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/m68k/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/not-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/longjmp_chk.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/brk.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/tile/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/tile/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/tile/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/tile/waitpid.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
	* sysdeps/wordsize-32/symbol-hacks.h: Likewise.
	* sysdeps/x86_64/memcpy.S: Likewise.
	* sysdeps/x86_64/memmove.c: Likewise.
	* sysdeps/x86_64/memset.S: Likewise.
	* sysdeps/x86_64/multiarch/init-arch.h: Likewise.
	* sysdeps/x86_64/multiarch/memcmp-sse4.S: Likewise.
	* sysdeps/x86_64/multiarch/memcmp-ssse3.S: Likewise.
	* sysdeps/x86_64/multiarch/memcmp.S: Likewise.
	* sysdeps/x86_64/multiarch/memcpy-avx-unaligned.S: Likewise.
	* sysdeps/x86_64/multiarch/memcpy-ssse3-back.S: Likewise.
	* sysdeps/x86_64/multiarch/memcpy-ssse3.S: Likewise.
	* sysdeps/x86_64/multiarch/memcpy.S: Likewise.
	* sysdeps/x86_64/multiarch/memcpy_chk.S: Likewise.
	* sysdeps/x86_64/multiarch/memmove.c: Likewise.
	* sysdeps/x86_64/multiarch/mempcpy.S: Likewise.
	* sysdeps/x86_64/multiarch/mempcpy_chk.S: Likewise.
	* sysdeps/x86_64/multiarch/memset-avx2.S: Likewise.
	* sysdeps/x86_64/multiarch/memset.S: Likewise.
	* sysdeps/x86_64/multiarch/memset_chk.S: Likewise.
	* sysdeps/x86_64/multiarch/strcat-sse2-unaligned.S: Likewise.
	* sysdeps/x86_64/multiarch/strcat-ssse3.S: Likewise.
	* sysdeps/x86_64/multiarch/strcat.S: Likewise.
	* sysdeps/x86_64/multiarch/strchr-sse2-no-bsf.S: Likewise.
	* sysdeps/x86_64/multiarch/strchr.S: Likewise.
	* sysdeps/x86_64/multiarch/strcmp-ssse3.S: Likewise.
	* sysdeps/x86_64/multiarch/strcmp.S: Likewise.
	* sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S: Likewise.
	* sysdeps/x86_64/multiarch/strcpy-ssse3.S: Likewise.
	* sysdeps/x86_64/multiarch/strcpy.S: Likewise.
	* sysdeps/x86_64/multiarch/strcspn.S: Likewise.
	* sysdeps/x86_64/multiarch/strspn.S: Likewise.
	* sysdeps/x86_64/multiarch/wcscpy-c.c: Likewise.
	* sysdeps/x86_64/multiarch/wcscpy-ssse3.S: Likewise.
	* sysdeps/x86_64/multiarch/wcscpy.S: Likewise.
	* sysdeps/x86_64/multiarch/wmemcmp-c.c: Likewise.
	* sysdeps/x86_64/multiarch/wmemcmp.S: Likewise.
	* sysdeps/x86_64/strcmp.S: Likewise.
2014-11-24 15:03:45 +05:30
Siddhesh Poyarekar
a38484851a Remove IS_IN_rtld
Replace with IS_IN (rtld).  Generated code is unchanged on
x86_64.

        * elf/Makefile (CPPFLAGS-.os): Remove IS_IN_rtld.
        * elf/dl-open.c: Use IS_IN (rtld) instead if IS_IN_rtld.
        * elf/rtld-Rules: Likewise.
        * elf/setup-vdso.h: Likewise.
        * include/assert.h: Likewise.
        * include/bits/stdlib-float.h: Likewise.
        * include/errno.h: Likewise.
        * include/sys/stat.h: Likewise.
        * include/unistd.h: Likewise.
        * sysdeps/aarch64/setjmp.S: Likewise.
        * sysdeps/alpha/setjmp.S: Likewise.
        * sysdeps/arm/__longjmp.S: Likewise.
        * sysdeps/arm/aeabi_unwind_cpp_pr1.c: Likewise.
        * sysdeps/arm/setjmp.S: Likewise.
        * sysdeps/arm/sysdep.h: Likewise.
        * sysdeps/generic/_itoa.h: Likewise.
        * sysdeps/generic/dl-sysdep.h: Likewise.
        * sysdeps/generic/ldsodefs.h: Likewise.
        * sysdeps/i386/dl-tls.h: Likewise.
        * sysdeps/i386/setjmp.S: Likewise.
        * sysdeps/m68k/setjmp.c: Likewise.
        * sysdeps/mach/hurd/dl-execstack.c: Likewise.
        * sysdeps/mach/hurd/opendir.c: Likewise.
        * sysdeps/posix/getcwd.c: Likewise.
        * sysdeps/posix/opendir.c: Likewise.
        * sysdeps/posix/profil.c: Likewise.
        * sysdeps/powerpc/dl-procinfo.h: Likewise.
        * sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S: Likewise.
        * sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: Likewise.
        * sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h: Likewise.
        * sysdeps/powerpc/powerpc32/setjmp-common.S: Likewise.
        * sysdeps/powerpc/powerpc64/__longjmp-common.S: Likewise.
        * sysdeps/powerpc/powerpc64/setjmp-common.S: Likewise.
        * sysdeps/s390/dl-tls.h: 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/arm/sysdep.S: Likewise.
        * sysdeps/unix/i386/sysdep.S: Likewise.
        * sysdeps/unix/sysv/linux/aarch64/sysdep.h: Likewise.
        * sysdeps/unix/sysv/linux/getcwd.c: Likewise.
        * sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h: Likewise.
        * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
        * sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
        * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
        * sysdeps/unix/sysv/linux/ia64/setjmp.S: Likewise.
        * sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise.
        * sysdeps/unix/sysv/linux/lowlevellock-futex.h: Likewise.
        * sysdeps/unix/sysv/linux/m68k/bits/m68k-vdso.h: Likewise.
        * sysdeps/unix/sysv/linux/m68k/m68k-helpers.S: Likewise.
        * sysdeps/unix/sysv/linux/microblaze/lowlevellock.h: Likewise.
        * sysdeps/unix/sysv/linux/powerpc/lowlevellock.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/lowlevellock.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/lowlevellock.h: Likewise.
        * sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise.
        * sysdeps/unix/sysv/linux/sparc/lowlevellock.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/lowlevellock.h: Likewise.
        * sysdeps/unix/sysv/linux/tile/sysdep.h: Likewise.
        * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
        * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise.
        * sysdeps/unix/x86_64/sysdep.S: Likewise.
        * sysdeps/x86_64/setjmp.S: Likewise.
2014-11-24 11:41:48 +05:30
Siddhesh Poyarekar
a109996ef9 Remove IS_IN_libm
Replace with IS_IN (libm). Generated code unchanged on x86_64.

        * include/math.h: Use IS_IN instead of IS_IN_libm.
        * sysdeps/alpha/fpu/s_copysign.c: Likewise.
        * sysdeps/ieee754/ldbl-128ibm/s_copysignl.c: Likewise.
        * sysdeps/ieee754/ldbl-128ibm/s_finitel.c: Likewise.
        * sysdeps/ieee754/ldbl-128ibm/s_fmal.c: Likewise.
        * sysdeps/ieee754/ldbl-128ibm/s_frexpl.c: Likewise.
        * sysdeps/ieee754/ldbl-128ibm/s_isinfl.c: Likewise.
        * sysdeps/ieee754/ldbl-128ibm/s_isnanl.c: Likewise.
        * sysdeps/ieee754/ldbl-128ibm/s_modfl.c: Likewise.
        * sysdeps/ieee754/ldbl-128ibm/s_scalbnl.c: Likewise.
        * sysdeps/ieee754/ldbl-128ibm/s_signbitl.c: Likewise.
        * sysdeps/ieee754/ldbl-64-128/s_copysignl.c: Likewise.
        * sysdeps/ieee754/ldbl-64-128/s_finitel.c: Likewise.
        * sysdeps/ieee754/ldbl-64-128/s_frexpl.c: Likewise.
        * sysdeps/ieee754/ldbl-64-128/s_isinfl.c: Likewise.
        * sysdeps/ieee754/ldbl-64-128/s_isnanl.c: Likewise.
        * sysdeps/ieee754/ldbl-64-128/s_modfl.c: Likewise.
        * sysdeps/ieee754/ldbl-64-128/s_scalbnl.c: Likewise.
        * sysdeps/ieee754/ldbl-64-128/s_signbitl.c: Likewise.
        * sysdeps/ieee754/ldbl-64-128/w_scalblnl.c: Likewise.
        * sysdeps/ieee754/ldbl-opt/s_copysign.c: Likewise.
        * sysdeps/ieee754/ldbl-opt/s_finite.c: Likewise.
        * sysdeps/ieee754/ldbl-opt/s_frexp.c: Likewise.
        * sysdeps/ieee754/ldbl-opt/s_isinf.c: Likewise.
        * sysdeps/ieee754/ldbl-opt/s_isnan.c: Likewise.
        * sysdeps/ieee754/ldbl-opt/s_ldexp.c: Likewise.
        * sysdeps/ieee754/ldbl-opt/s_ldexpl.c: Likewise.
        * sysdeps/ieee754/ldbl-opt/s_modf.c: Likewise.
        * sysdeps/ieee754/ldbl-opt/s_scalbln.c: Likewise.
        * sysdeps/ieee754/ldbl-opt/s_scalbn.c: Likewise.
        * sysdeps/powerpc/power5+/fpu/s_modf.c: Likewise.
        * sysdeps/powerpc/powerpc32/fpu/s_copysign.S: Likewise.
        * sysdeps/powerpc/powerpc32/fpu/s_copysignl.S: Likewise.
        * sysdeps/powerpc/powerpc32/fpu/s_isnan.S: Likewise.
        * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign.c: Likewise.
        * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite.c: Likewise.
        * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf.c: Likewise.
        * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan.c: Likewise.
        * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf.c: Likewise.
        * sysdeps/powerpc/powerpc32/power5/fpu/s_isnan.S: Likewise.
        * sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S: Likewise.
        * sysdeps/powerpc/powerpc32/power6/fpu/s_isnan.S: Likewise.
        * sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S: Likewise.
        * sysdeps/powerpc/powerpc32/power7/fpu/s_isinf.S: Likewise.
        * sysdeps/powerpc/powerpc32/power7/fpu/s_isnan.S: Likewise.
        * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign.c: Likewise.
        * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c: Likewise.
        * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c: Likewise.
        * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c: Likewise.
        * sysdeps/powerpc/powerpc64/fpu/multiarch/s_modf.c: Likewise.
        * sysdeps/powerpc/powerpc64/fpu/s_copysign.S: Likewise.
        * sysdeps/powerpc/powerpc64/fpu/s_copysignl.S: Likewise.
        * sysdeps/powerpc/powerpc64/fpu/s_isnan.S: Likewise.
        * sysdeps/powerpc/powerpc64/power5/fpu/s_isnan.S: Likewise.
        * sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S: Likewise.
        * sysdeps/powerpc/powerpc64/power6/fpu/s_isnan.S: Likewise.
        * sysdeps/powerpc/powerpc64/power6x/fpu/s_isnan.S: Likewise.
        * sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S: Likewise.
        * sysdeps/powerpc/powerpc64/power7/fpu/s_isinf.S: Likewise.
        * sysdeps/powerpc/powerpc64/power7/fpu/s_isnan.S: Likewise.
        * sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S: Likewise.
        * sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S: Likewise.
        * sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S: Likewise.
        * sysdeps/sparc/sparc32/fpu/s_signbitl.S: Likewise.
        * sysdeps/sparc/sparc32/sparcv9/fpu/s_isnan.S: Likewise.
        * sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S: Likewise.
2014-11-24 11:41:47 +05:30
Siddhesh Poyarekar
ce9f10f7f0 Remove IS_IN_libpthread
Replace with IS_IN (libpthread).  Generated code unchanged on
x86_64.

	* nptl/lowlevellock.c: Use IS_IN instead of IS_IN_libpthread.
	* nptl/pthreadP.h: Likewise.
	* nptl_db/structs.def: Likewise.
	* sysdeps/arm/sysdep.h: Likewise.
	* sysdeps/nptl/bits/libc-lock.h: Likewise.
	* sysdeps/nptl/bits/libc-lockP.h: Likewise.
	* sysdeps/sparc/sparc32/lowlevellock.c: Likewise.
	* sysdeps/unix/alpha/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/arm/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/not-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/tile/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/tile/sysdep.h: Likewise.
	* sysdeps/unix/sysv/linux/tile/waitpid.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/cancellation.S: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
2014-11-24 11:41:46 +05:30
Siddhesh Poyarekar
016afc75cd Remove IS_IN_librt
Replace with IS_IN (librt).  Generated code unchanged on x86_64

        * include/mqueue.h: Use IS_IN instead of IS_IN_librt.
        * nptl/pthreadP.h: Likewise.
        * sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/arm/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/ia64/sysdep.h: Likewise.
        * sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/not-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/tile/sysdep-cancel.h: Likewise.
        * sysdeps/unix/sysv/linux/tile/waitpid.S: Likewise.
        * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
2014-11-24 11:41:45 +05:30
Siddhesh Poyarekar
85f36372aa Remove IS_IN_nscd
Replace with IS_IN (nscd).  Generated code unchanged on x86_64.

	* include/ifaddrs.h: Use IS_IN.
	* inet/check_pf.c: Likewise.
	* sysdeps/unix/sysv/linux/check_pf.c: Likewise.
	* nscd/Makefile (CPPFLAGS-nscd): Remove IS_IN_nscd.
2014-11-24 11:41:44 +05:30
Siddhesh Poyarekar
fb6784e306 Remove IS_IN_ldconfig
Replace with IS_IN (ldconfig).  No change in generated code.

	* elf/Makefile (CFLAGS-ldconfig.c): Remove definition of
	IS_IN_ldconfig.
	* sysdeps/unix/sysv/linux/x86_64/dl-procinfo.c: Use IS_IN.
	* sysdeps/unix/sysv/linux/x86_64/dl-procinfo.h: Likewise.
2014-11-24 11:41:43 +05:30
Roland McGrath
f214ff74f4 NPTL: Refactor scheduler setup in pthread_create. 2014-11-20 10:56:20 -08:00
Torvald Riegel
1ea339b697 Add arch-specific configuration for C11 atomics support.
This sets __HAVE_64B_ATOMICS if provided.  It also sets
USE_ATOMIC_COMPILER_BUILTINS to true if the existing atomic ops use the
__atomic* builtins (aarch64, mips partially) or if this has been
tested (x86_64); otherwise, this is set to false so that C11 atomics will
be based on the existing atomic operations.
2014-11-20 11:57:38 +01:00
Siddhesh Poyarekar
9cd4747089 Add new macro IN_MODULE to identify module in which source is built
The current scheme to identify which module a translation unit is
built in depends on defining multiple macros IS_IN_* and also defining
NOT_IN_libc if we're building a non-libc module.  In addition, there
is an IN_LIB macro that does effectively the same thing, but for
different modules (notably the systemtap probes).  This macro scheme
unifies both ideas to use just one macro IN_MODULE and assign it a
value depending on the module it is being built into.  If the module
is not defined, it defaults to MODULE_libc.

Patches that follow will replace uses of IS_IN_* variables with the
IS_IN() macro.  libc-symbols.h has been converted already to give an
example of how such a transition will look.

Verified that there are no relevant binary changes.  One source change
that will crop up repeatedly is that of nscd_stat, since it uses the
build timestamp as a constant in its logic.

	* Makeconfig (in-module): Get value of libof set for the
	translation unit.
	(CPPFLAGS): Use $(in-module).
	* Makerules: Don't suffix routine names for nonlib.
	* include/libc-modules.h: New file.
	* include/libc-symbols.h: Include libc-modules.h
	(IS_IN): New macro to replace IS_IN_* macros.
	* elf/Makefile: Set libof-* for each routine.
	* elf/rtld-Rules: Likewise.
	* extra-modules.mk: Likewise.
	* iconv/Makefile: Likewise.
	* iconvdata/Makefile: Likewise.
	* locale/Makefile: Likewise.
	* malloc/Makefile: Likewise.
	* nss/Makefile: Likewise.
	* sysdeps/gnu/Makefile: Likewise.
	* sysdeps/ieee754/ldbl-opt/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/Makefile: Likewise.
	* sysdeps/s390/s390-64/Makefile: Likewise.
	* nscd/Makefile: Set libof-* for each routine.  Set CFLAGS and
	CPPFLAGS for nscd instead of nonlib.
2014-11-19 12:13:54 +05:30
Roland McGrath
6540b9916b NPTL: Move Linux-specific createthread.c to sysdeps. 2014-11-18 11:03:20 -08:00
Joseph Myers
c4eae75271 Fix __get_nprocs fgets_unlocked namespace (bug 17582).
__get_nprocs is called from malloc code, but calls fgets_unlocked,
which is not an ISO C or POSIX function.  This patch fixes it to call
a new __fgets_unlocked name instead.

Note: there are various other uses of fgets_unlocked in glibc's
libraries, and I haven't yet investigated which others might also be
problematic (called directly or indirectly from standard functions)
and so need to change to use __fgets_unlocked.

Tested for x86_64 (testsuite, and that disassembly of installed shared
libraries is unchanged by the patch).

	[BZ #17582]
	* libio/iofgets.c [weak_alias && !_IO_MTSAFE_IO]
	(__fgets_unlocked): Add alias of _IO_fgets.  Use libc_hidden_def.
	* libio/iofgets_u.c (fgets_unlocked): Rename to __fgets_unlocked
	and define as weak alias of __fgets_unlocked.  Use
	libc_hidden_weak.
	(__fgets_unlocked): Use libc_hidden_def.
	* include/stdio.h (__fgets_unlocked): Declare.  Use
	libc_hidden_proto.
	* sysdeps/unix/sysv/linux/getsysstats.c (phys_pages_info): Use
	__fgets_unlocked instead of fgets_unlocked.
	* sysdeps/unix/sysv/linux/alpha/getsysstats.c
	(GET_NPROCS_CONF_PARSER): Likewise.
	* sysdeps/unix/sysv/linux/sparc/getsysstats.c
	(GET_NPROCS_CONF_PARSER): Likewise.
2014-11-12 22:39:36 +00:00
Alan Hayward
5c40c3bab2 [AArch64] Add ipc.h.
Adding ipc.h for AArch64 adjusted to behave correctly on big endian
targets.
2014-11-11 16:32:34 +00:00
Andreas Schwab
1400983e04 m68k: don't expect PLT reference to __tls_get_addr 2014-11-07 17:39:55 +01:00
Joseph Myers
2c46a66a3a Remove __libc_waitpid function name.
Continuing the removal of unused __libc_* function names, this patch
removes the __libc_waitpid name.

Tested for x86_64 (testsuite, and that disassembly of installed shared
libraries is unchanged by the patch; __waitpid, which is exported from
shared libc, changes from weak to strong on some configurations, which
is of no significance).

	* include/sys/wait.h (__libc_waitpid): Remove declaration.
	* posix/waitpid.c (__libc_waitpid): Rename to __waitpid.
	(__waitpid): Don't define as alias.  Use libc_hidden_def not
	libc_hidden_weak.
	(waitpid): Define as alias of __waitpid.
	* sysdeps/unix/bsd/waitpid.c (__libc_waitpid): Rename to
	__waitpid.
	(__waitpid): Don't define as alias.  Use libc_hidden_def not
	libc_hidden_weak.
	(waitpid): Define as alias of __waitpid.
	* sysdeps/unix/sysv/linux/i386/syscalls.list (waitpid): Remove
	__libc_waitpid alias.
	* sysdeps/unix/sysv/linux/m68k/syscalls.list (waitpid): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/syscalls.list (waitpid):
	Likewise.
	* sysdeps/unix/sysv/linux/sh/syscalls.list (waitpid): Likewise.
	* sysdeps/unix/sysv/linux/sparc/syscalls.list (waitpid): Likewise.
	* sysdeps/unix/sysv/linux/tile/waitpid.S (__libc_waitpid): Remove
	alias.
	* sysdeps/unix/sysv/linux/waitpid.c (__libc_waitpid): Rename to
	__waitpid.
	(__waitpid): Don't define as alias.  Use libc_hidden_def not
	libc_hidden_weak.
	(waitpid): Define as alias of __waitpid.
2014-11-07 01:27:16 +00:00
Carlos O'Donell
da53d6dbc2 Run check-localpltk/textrel/execstack over ld.so.
For maximum paranoia we run ld.so through the normal set
of tests for all of the shared libraries. This includes
running ld.so through check-localplt, check-textrel, and
check-execstack. While none of these should trigger any
failures given the way ld.so is built, it might possibly
fail if a developer does something wrong. This paranoia
was triggered by a discussion over the use of __strcpy
vs. strcpy [1] and if the symbol could leak and use the
libc.so version.

The check-localplt test fails right away because localplt.data
needs updating for all arches. By default we add 6 new symbols:
__tls_get_addr, __libc_memalign, malloc, calloc, realloc and
free. Other machines like i386, power, and s390 require some
different symbol sets e.g. ___tls_get_addr vs. __tls_get_addr
for i386.

Verified for i386
Verified for x86_64
Verified for ppc32
Verified for ppc64
Verified for ppc64le
Verified for arm
Verified for aarch64
Verified for s390
Verified for s390x
Guessed for alpha
Guessed for ia64
Guessed for m68k
Guessed for microblaze
Guessed for sparc32
Guessed for sparc64
Defaults for sh
Defaults for mips
Defaults for hppa
Defaults for tile

Machine manintainers notified to double check the data
used in localplt.data.

[1] https://sourceware.org/ml/libc-alpha/2014-10/msg00548.html
2014-11-06 15:48:44 -05:00
Jose E. Marchesi
4c6da7da9f Fix sparc struct fpu definition.
* sysdeps/unix/sysv/linux/sparc/sys/ucontext.h (struct fpu): fix
	the size of the fpu_fr.fpu_dregs[] array.
2014-11-01 13:45:02 -07:00
Joseph Myers
1679ba8eb6 Remove __libc_nanosleep function name.
Continuing the removal of unused __libc_* function names, this patch
removes the __libc_nanosleep name.

Tested for x86_64 (testsuite, and that the disassembly of installed
shared libraries is unchanged by the patch; __nanosleep changes from
weak to strong, which is of no significance).

	* posix/nanosleep.c (__libc_nanosleep): Rename to __nanosleep.
	(__nanosleep): Do not define as alias.
	(nanosleep): Define as alias of __nanosleep.
	* sysdeps/unix/sysv/linux/syscalls.list (nanosleep): Remove
	__libc_nanosleep name.
2014-11-01 12:26:09 +00:00
Joseph Myers
f62ff28683 Remove __libc_pselect alias.
Continuing the removal of unused __libc_* function names, this patch
removes the __libc_pselect alias.

Tested for x86_64 that installed stripped shared libraries are
unchanged by this patch.

	* misc/pselect.c [!__pselect] (__libc_pselect): Remove alias.
	* sysdeps/unix/sysv/linux/pselect.c [__NR_pselect6]
	(__libc_pselect): Likewise.
2014-10-31 21:22:35 +00:00
Joseph Myers
94a4245525 Move powerpc64 pread/pwrite definitions to syscalls.list (bug 14138).
Concluding the move of syscall definitions to syscalls.list, where the
removal of support for old kernel versions has made this possible,
this patch removes C definitions of pread, pread64, pwrite and
pwrite64 for powerpc64.  As far as I can tell, the existing
syscalls.list definitions in
sysdeps/unix/sysv/linux/wordsize-64/syscalls.list should suffice to
produce results equivalent to what these C files do.

	[BZ #14138]
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c: Remove file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c: Likewise.
2014-10-31 21:13:32 +00:00
Joseph Myers
d4e157aaae Remove __libc_creat function name.
glibc has lots of __libc_* function names that no longer serve any
purpose (are not used for any calls or exported at a public symbol
version).  This patch removes __libc_creat.  It has the effect of
creat becoming a strong symbol instead of a weak symbol in various
cases, but that's fine; in shared libraries it doesn't matter at all,
while for static linking the only other symbol sometimes defined in
the same object is creat64, and whenever creat64 is a reserved name so
is creat.

Other such cases of unnecessary __libc_* symbols are expected to be
dealt with in separate patches over time.

Tested for x86_64 (testsuite, and that the disassembly of installed
shared libraries is unchanged by the patch).

	* include/fcntl.h (__libc_creat): Remove declaration.
	* io/creat.c (__libc_creat): Rename to creat.
	(creat): Do not define as alias.
	* sysdeps/unix/sysv/linux/alpha/creat.c (creat64): Define as alias
	of creat instead of __libc_creat.
	* sysdeps/unix/sysv/linux/generic/creat.c (__libc_creat): Rename
	to creat.
	(creat): Do not define as alias.
	[__WORDSIZE == 64] (creat64): Define as alias of creat instead of
	__libc_creat.
	* sysdeps/unix/sysv/linux/syscalls.list (creat): Do not define
	__libc_creat name.
	* sysdeps/unix/sysv/linux/wordsize-64/syscalls.list (creat):
	Likewise.
2014-10-30 19:44:31 +00:00
Gratian Crisan
03d41216fe arm: Re-enable PI futex support for ARM kernels >= 3.14.3
ARM linux kernels before 3.14.3 may or may not support
futex_atomic_cmpxchg_inatomic depending on the kernel configuration (e.g.
CONFIG_CPU_USE_DOMAINS && CONFIG_SMP configuration was not supported)

Starting with 3.14.3 the linux kernel unconditionally enables support for
ARM, and this re-enables the relevant __ASSUME_* macros.

Tested on ARM both with kernels >= 3.14.3 and older kernels.

	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030E03] (__ASSUME_FUTEX_LOCK_PI): Do
	not undefine.
	[__LINUX_KERNEL_VERSION >= 0x030E03] (__ASSUME_REQUEUE_PI):
	Likewise.
	[__LINUX_KERNEL_VERSION >= 0x030E03] (__ASSUME_SET_ROBUST_LIST):
	Likewise.
2014-10-27 22:45:43 +00:00
Joseph Myers
a4b3624d20 Move setfsgid/setfsuid definitions to syscalls.list (bug 14138).
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 setfsgid and setfsuid.

Tested for x86.

	[BZ #14138]
	* sysdeps/unix/sysv/linux/arm/setfsgid.c: Remove file.
	* sysdeps/unix/sysv/linux/arm/setfsuid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setfsgid.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/setfsuid.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/setfsgid.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/setfsuid.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/setfsgid.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/setfsuid.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/setfsgid.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/setfsuid.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setfsgid.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/setfsuid.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/syscalls.list (setfsgid): Add
	syscall.
	(setfsuid): Likewise.
	* sysdeps/unix/sysv/linux/i386/syscalls.list (setfsgid): Likewise.
	(setfsuid): Likewise.
	* sysdeps/unix/sysv/linux/m68k/syscalls.list (setfsgid): Likewise.
	(setfsuid): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list (setfsgid):
	Likewise.
	(setfsuid): Likewise.
	* sysdeps/unix/sysv/linux/sh/syscalls.list (setfsgid): Likewise.
	(setfsuid): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list (setfsgid):
	Likewise.
	(setfsuid): Likewise.
2014-10-27 12:24:42 +00:00
Joseph Myers
c8bc40386a Move get*id and getgroups definitions to syscalls.list (bug 14138).
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.
2014-10-24 13:01:17 +00:00
Joseph Myers
48eb7a94e2 Move some chown / lchown / fchown definitions to syscalls.list (bug 14138).
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.
2014-10-24 12:59:23 +00:00
Carlos O'Donell
13d845549e hppa: Make __SIGRTMIN 32 (ABI break).
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.
2014-10-23 23:18:19 -04:00
Maciej W. Rozycki
b5af9297d5 MIPS: Avoid a dangling `vfork@GLIBC_2.0' reference
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.
2014-10-22 15:20:37 +01:00
Torvald Riegel
f50277c19d pthread_once: Add fast path and remove x86 variants. 2014-10-20 20:28:08 +02:00
Joseph Myers
42b7f5d485 Move readv and writev definitions to syscalls.list (bug 14138).
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.
2014-10-20 15:49:08 +00:00
Siddhesh Poyarekar
fda389c8f0 Fix infinite loop in check_pf (BZ #12926)
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.
2014-10-14 21:05:33 +05:30
Joseph Myers
5deeb19014 Remove stray *_internal aliases (bug 14132).
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.
2014-10-09 01:11:14 +00:00
Joseph Myers
620f462e88 Don't use INTUSE with __adjtimex (bug 14132).
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.
2014-10-08 23:19:32 +00:00
Joseph Myers
f7b425175c Support and use mixed compat/non-compat aliases in syscalls.list.
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.
2014-10-06 22:58:59 +00:00
Joseph Myers
abb280f799 Move some chown / lchown / fchown definitions to syscalls.list (bug 14138).
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.
2014-10-06 22:30:54 +00:00
Adhemerval Zanella
47d4623785 powerpc: remove linux lowlevellock.h
This patch remove the powerpc specific lowlevellock.h and adjust some
implementation that rely on __lll_[rel/acq]_instr defines.
2014-10-06 16:08:32 -05:00
Chris Metcalf
845a73434c tile: add clock_gettime support via vDSO 2014-10-06 11:22:14 -04:00
Chris Metcalf
83d641efd1 tile: make the prolog of clone() more conformant
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.
2014-10-06 11:21:29 -04:00
Chris Metcalf
4b68ea1162 tile: add support for _SC_LEVEL*CACHE* sysconf() queries 2014-10-06 11:20:30 -04:00
Joseph Myers
6268f532b6 Move execve to syscalls.list (bug 14138).
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.
2014-10-01 20:58:20 +00:00
Joseph Myers
754a15c61c Move some *at definitions to syscalls.list (bug 14138).
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.
2014-09-30 14:32:08 +00:00
H.J. Lu
f4a58f0d35 Require autoconf 2.69
* 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.
2014-09-29 07:53:36 -07:00
Joseph Myers
1810d3ab71 Remove shlib-versions entries redundant with DEFAULT entries.
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.
2014-09-26 17:34:22 +00:00
Joseph Myers
93ae1ebaa6 Clean up gnu/lib-names.h generation (bug 14171).
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.
2014-09-26 17:33:04 +00:00
Joseph Myers
68870f1253 Move some setrlimit definitions to syscalls.list (bug 14138).
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.
2014-09-23 14:12:50 +00:00
Will Newton
ea58f20293 ARM: Don't define _SYS_AUXV_H in sysdep.h
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.
2014-09-23 14:58:49 +01:00
Rasmus Villemoes
69eb9a183c Fix prototype of eventfd. 2014-09-20 14:05:49 +02:00
Ondřej Bílka
20e5a5f773 Sync recvmmsg prototype with kernel usage. 2014-09-20 13:53:44 +02:00
Joseph Myers
af296fcdab Remove bitrotten --enable-oldest-abi (bug 6652).
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.
2014-09-16 17:45:03 +00:00
Andreas Schwab
a7b8726870 Handle zero prefix length in getifaddrs (BZ #17371) 2014-09-15 18:59:37 +02:00
Joseph Myers
ba90e05052 Remove configuration name patterns from shlib-versions.
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.
2014-09-12 12:28:47 +00:00
Joseph Myers
73a391126d Use %ifdef in sysdeps/unix/sysv/linux/powerpc/powerpc64/shlib-versions.
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].
2014-09-12 12:25:36 +00:00
Joseph Myers
c729e7c13a Move OS-specific shlib-versions entries to sysdeps files.
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.
2014-09-12 12:24:00 +00:00
Joseph Myers
dc932a24d9 Move architecture-specific shlib-versions entries to sysdeps files.
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.
2014-09-12 12:22:27 +00:00
Chris Metcalf
3daee1076b tile: remove linux lowlevellock.h 2014-09-10 16:57:29 -04:00
Carlos O'Donell
645a0e9c17 HPPA: Add c++-types.data.
Added c++-types.data to baseline for HPPA. At this point `make check`
completes without error, and the full testing results are summarized.
2014-09-07 22:09:49 -04:00
Carlos O'Donell
d83f0734e1 HPPA: Transition to new non-addon NPTL.
Merge roland/nptl-hppa to master, update and test for hppa-linux-gnu.

This commit squashes and commits the work done by Roland McGrath on
roland/nptl-hppa to migrate hppa to the new non-addon NPTL. Some
additional tweaks were required for tcb-offsets.sym to work correctly
along with clone.S (unique to hppa).
2014-09-07 22:08:36 -04:00
Siddhesh Poyarekar
eb72478a28 Remove unnecessary uses of NOT_IN_libc
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.
2014-08-21 10:26:46 +05:30
Joseph Myers
d44a052c49 Fix powerpc32 __get_clockfreq for non-power4 (bug 17263).
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.
2014-08-13 16:06:18 +00:00
Adhemerval Zanella
d4795e4a43 PowerPC: Fix termios definitions
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.
2014-08-06 14:31:54 -04:00
Richard Henderson
27bb6dc0db alpha: Fix exception raising from soft-fp
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.
2014-08-05 13:36:36 -07:00
Richard Henderson
d3f364d3c7 alpha: Remove linux lowlevellock.h
For real this time.
2014-08-05 09:06:36 -07:00
Bernard Ogden
e5292691ea MIPS - Remove mips lowlevellock.h.
* sysdeps/unix/sysv/linux/mips/lowlevellock.h: Remove file.
2014-08-04 22:12:03 +00:00
Will Newton
5b4bd2d4f0 AArch64: Remove lowlevellock.h
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.
2014-08-04 16:11:51 +01:00
Mike Frysinger
b76ae12144 ia64: define nocancel entry points in PSEUDO
The previous set of not-cancel.h headers (prior to the commit
2fbdf5339a) 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.
2014-08-04 10:05:51 -04:00
Roland McGrath
43a94c647d IA64: Consolidate nptl/ subdirectories under linux/... 2014-08-04 10:00:52 -04:00
Roland McGrath
8f3c1fa42d IA64: Move NPTL public headers to sysdeps/ia64/nptl/. 2014-08-04 09:58:14 -04:00
Roland McGrath
ca08746f9f IA64: Define TLS_DEFINE_INIT_TP 2014-08-04 09:53:49 -04:00
Roland McGrath
9c925ff964 IA64: Consolidate NPTL/non versions of vfork 2014-08-04 09:50:41 -04:00
Roland McGrath
e641054cd8 IA64: Consolidate NPTL/non versions of clone 2014-08-04 09:06:51 -04:00
Roland McGrath
277cfb315b Remove sysdeps/unix/sysv/linux/arm/lowlevellock.h 2014-08-01 18:59:48 -07:00
Roland McGrath
6f64e7d75f ARM: Move PTR_MANGLE et al out of Linux-specific file. 2014-08-01 11:28:49 -07:00
Roland McGrath
f61a113fe0 Add __safe_fatal and use it in __pthread_unwind forwarder fallback. 2014-07-31 14:00:33 -07:00
Roland McGrath
23fe486beb Split nptl-signals.h out from pthreadP.h 2014-07-31 11:37:48 -07:00
Stefan Liebler
2f438e20ab S/390: Revert the jmp_buf/ucontext_t ABI change. 2014-07-31 20:04:54 +02:00
Jeff Layton
0961f7e1e3 fcntl-linux.h: add new definitions and manual updates for open file 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.
2014-07-29 23:27:21 -04:00
Andreas Schwab
23329dcaf9 m68k: use generic lowlevellock.h 2014-07-18 23:35:11 +02:00
Joseph Myers
b21c2d5020 [PATCH 6/6] Split s390 out of main Linux kernel-features.h.
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.
2014-07-17 17:55:44 +00:00
Joseph Myers
067764ef47 [PATCH 5/6] Split sh out of main Linux kernel-features.h.
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.
2014-07-17 17:54:43 +00:00
Joseph Myers
642530c1b4 [PATCH 4/6] Split powerpc out of main Linux kernel-features.h.
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.
2014-07-17 17:53:52 +00:00
Joseph Myers
03f7731518 [PATCH 3/6] Split sparc out of main Linux kernel-features.h.
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.
2014-07-17 17:52:58 +00:00
Joseph Myers
083b1f7c12 [PATCH 2/6] Split i386 out of main Linux kernel-features.h.
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.
2014-07-17 17:51:52 +00:00
Joseph Myers
5be44ea623 [PATCH 1/6] Split x86_64 out of main Linux kernel-features.h.
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.
2014-07-17 17:49:45 +00:00
Joseph Myers
d95ffd4cfd Refactor handling of /lib64 etc. cases, move out of sysdeps/gnu/configure.ac.
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.
2014-07-17 14:35:48 +00:00
Joseph Myers
29c4f53e2a Move architecture shlib-versions files to Linux-specific directories.
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.
2014-07-17 14:31:12 +00:00
Roland McGrath
37fccd4192 ARM: Clean up EABI-related configury 2014-07-16 15:18:36 -07:00
Roland McGrath
3df6f22e5f Separate Linuxisms from lowlevellock.h, make a generic one 2014-07-15 15:23:06 -07:00
Adhemerval Zanella
bc1da1765e PowerPC: Fix build due missing lll_robust_trylock
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.
2014-07-10 16:46:33 -05:00
Roland McGrath
c0c6bac945 Get rid of lll_robust_dead. 2014-07-10 11:21:54 -07:00
Roland McGrath
887865fcfa Get rid of lll_robust_trylock. 2014-07-10 10:57:57 -07:00
Siddhesh Poyarekar
d62aa75af1 Fix crash when system has no ipv6 address [BZ #17125]
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.
2014-07-10 14:15:16 +05:30
Andreas Schwab
4a2552c3eb Fix missing newline in test output 2014-07-09 11:07:24 +02:00
Roland McGrath
f083450f45 NPTL is no longer an add-on! 2014-07-07 09:29:06 -07:00
Roland McGrath
08192659bb Get rid of nptl/sysdeps/ entirely! 2014-07-07 09:28:38 -07:00
Roland McGrath
3d9eb57c55 Fix ia64 build error in lll_futex_timed_wait_bitset 2014-07-03 22:03:14 -07:00
Roland McGrath
c1f5acd4f4 Robustify Linux kernel headers configure checks 2014-07-03 20:35:42 -07:00
Roland McGrath
fe5f34e470 Add missing #include for MIN use in dl-sysdep.c. 2014-07-02 11:10:08 -07:00
Carlos O'Donell
d34570a6b8 hppa: Remove GLIBC_2.3 from librt.abilist.
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.
2014-07-02 03:18:26 -04:00
Carlos O'Donell
ccf431ffe1 hppa: Add ABI baselines.
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).
2014-07-01 23:59:47 -04:00
Roland McGrath
ca06321df0 Add missing #include for MIN/MAX users. 2014-07-01 15:01:24 -07:00
Joseph Myers
b0cb309635 MicroBlaze: Update kernel-features.h for syscalls added in 3.15
Now that the MicroBlaze 3.15 kernel has the pselect6, preadv and
pwritev syscalls, this patch updates kernel-features.h so they are
assumed to be present for 3.15 and later kernels.

2014-06-17  Joseph Myers  <joseph@codesourcery.com>

	* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030f00] (__ASSUME_PSELECT): Do not
	undefine.
	[__LINUX_KERNEL_VERSION >= 0x030f00] (__ASSUME_PREADV): Likewise.
	[__LINUX_KERNEL_VERSION >= 0x030f00] (__ASSUME_PWRITEV): Likewise.

Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2014-07-01 14:57:59 +10:00
Roland McGrath
4d76cb3935 MicroBlaze: Consolidate nptl/ subdirectories under linux/...
Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2014-07-01 14:57:58 +10:00
Roland McGrath
83d7d24b96 MicroBlaze: Consolidate NPTL/non versions of vfork 2014-07-01 14:57:57 +10:00
Roland McGrath
862e0f2721 MicroBlaze: Move NPTL public headers to sysdeps/microblaze/nptl/. 2014-07-01 14:57:56 +10:00
Roland McGrath
9bca952acb MicroBlaze: Define TLS_DEFINE_INIT_TP 2014-07-01 14:57:56 +10:00
Roland McGrath
8b4b5da7b6 MicroBlaze: Convert fork.c to arch-fork.h 2014-07-01 14:57:50 +10:00
David Holsgrove
0cdcad1769 MicroBlaze: Add missing sysdep-cancel.h implementation
And update socket.S, Makefile to use *_nocancel definitions.

Absence of sysdep-cancel.h was not apparent until Roland's
not-cancel.h unification.

2014-06-30  David Holsgrove  <david.holsgrove@xilinx.com>

  * sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h: New file
  * sysdeps/unix/sysv/linux/microblaze/socket.S: Update SINGLE_THREAD_P
  * sysdeps/unix/sysv/linux/microblaze/Makefile: Add to libpthread-routines

Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2014-07-01 09:58:03 +10:00
Roland McGrath
46f1d8a6b5 ARM: Split Linuxism out of sysdeps/arm/nptl/tls.h 2014-06-30 11:19:22 -07:00
Maciej W. Rozycki
2125f67454 sysdeps/unix/sysv/linux/bits/socket.h: Correct formatting
* sysdeps/unix/sysv/linux/bits/socket.h: Adjust macro formatting
	throughout.
2014-06-30 10:38:49 +01:00
Roland McGrath
37caf178e2 MIPS: Consolidate nptl/ subdirectories under linux/... 2014-06-27 11:41:04 -07:00
Roland McGrath
58eb0862c3 MIPS: Consolidate NPTL/non versions of vfork 2014-06-27 11:18:10 -07:00
Joseph Myers
b351d85aa2 Fix MIPS64 *_nocancel gp setup.
The 64-bit MIPS ABIs involve the caller setting up t9 ($25) to the
address of the called function, and the called function then using
this in a .cpsetup directive to compute gp.  The .cpsetup directive
needs to name the function to which t9 points for this purpose.  In
the definition of *_nocancel functions, the directive pointed to the
normal entry point rather than the _nocancel one, resulting in
segfaults when the _nocancel functions were used.  This patch corrects
the function name used in the directive.  (It seems the bug was latent
until Roland's not-cancel.h unification, with the _nocancel entry
points not previously being used - so not user-visible in a release,
so no Bugzilla entry required.)

Tested mips64 sufficiently to confirm the previously seen segfaults
are fixed.

	* sysdeps/unix/sysv/linux/mips/mips64/nptl/sysdep-cancel.h
	[__PIC__] (PSEUDO): Use name of _nocancel entry point in
	corresponding .cpsetup call.
2014-06-26 23:55:46 +00:00
Roland McGrath
3cb4de4741 ARM: Move more aeabi routine magic out of Linux-specific directories 2014-06-26 15:08:29 -07:00
Roland McGrath
d8a483f3ef S390: Consolidate nptl/ subdirectories under linux/... 2014-06-26 09:34:34 -07:00
Roland McGrath
52ae23b4bf Move remaining S390 code out of nptl/. 2014-06-26 09:31:11 -07:00
Roland McGrath
39507e4a6c S390: Consolidate NPTL/non versions of vfork 2014-06-26 09:30:52 -07:00
Roland McGrath
e549ee5658 S390: Consolidate NPTL/non versions of clone 2014-06-26 09:30:33 -07:00
Roland McGrath
6ad2df0bda AArch64: Consolidate nptl/ subdirectories under linux/... 2014-06-26 09:29:24 -07:00
Roland McGrath
7c1c1d8ec3 MIPS: Consolidate NPTL/non versions of clone 2014-06-25 14:50:58 -07:00
Joseph Myers
74385da564 Remove __ASSUME_O_CLOEXEC / O_CLOEXEC conditionals in sysdeps/unix/sysv/linux/.
This patch removes conditionals on __ASSUME_O_CLOEXEC, and on
O_CLOEXEC being defined, in sysdeps/unix/sysv/linux/, now that
O_CLOEXEC support can be unconditionally assumed.

The patch is conservative in what it changes and further followup
cleanups may be possible.  It may be possible to remove dl-opendir.c,
but the patch does not do so, just removing a redundant undefine and
redefine of __ASSUME_O_CLOEXEC.  Also, __ASSUME_O_CLOEXEC is defined
unconditionally for Hurd as well as Linux.  Thus, if we decide that
O_CLOEXEC support is a required feature of any glibc port, we could
remove __ASSUME_O_CLOEXEC and all conditionals on it throughout glibc,
rather than just cleaning up sysdeps/unix/sysv/linux/.

Tested x86_64 that the disassembly of installed shared libraries is
unchanged by this patch.

	* sysdeps/unix/sysv/linux/dl-opendir.c (__ASSUME_O_CLOEXEC): Do
	not undefine and redefine.
	* sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs)
	[O_CLOEXEC]: Make code unconditional.
	(__get_nprocs) [!O_CLOEXEC]: Remove conditional code.
	* sysdeps/unix/sysv/linux/shm_open.c: Do not include
	<kernel-features.h>.
	[O_CLOEXEC && !__ASSUME_O_CLOEXEC] (have_o_cloexec): Remove
	conditional variable definition.
	(shm_open) [O_CLOEXEC]: Make code unconditional.
	(shm_open) [!O_CLOEXEC || !__ASSUME_O_CLOEXEC]: Remove conditional
	code.
2014-06-25 20:29:45 +00:00
Joseph Myers
11b076bbae Remove stray includes of kernel-features.h.
Now that files using __ASSUME_* macros have been made by
<https://sourceware.org/ml/libc-alpha/2014-06/msg00543.html> to
include <kernel-features.h> directly, any include from a file not
using __ASSUME_* macros can safely be removed (as there will no longer
be some other file relying on indirect inclusion via a header from
which the include is being removed).

This patch removes such unnecessary kernel-features.h includes.

Tested x86_64 that disassembly of installed shared libraries is
unchanged by this patch, except for line numbers in calls to
__assert_fail from libc.so and ld.so.

2014-06-23  Joseph Myers  <joseph@codesourcery.com>

	* nptl/createthread.c: Don't include kernel-features.h.
	* nptl/pthread_cancel.c: Likewise.
	* nptl/pthread_condattr_setclock.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/pt-raise.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/raise.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Likewise.
	* nptl/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: Likewise.
	* nptl/sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Likewise.
	* nptl/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: Likewise.
	* nptl/sysdeps/unix/sysv/linux/timer_create.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/timer_delete.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/timer_getoverr.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/timer_gettime.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/timer_routines.c: Likewise.
	* nptl/sysdeps/unix/sysv/linux/timer_settime.c: Likewise.
	* nscd/gai.c: Likewise.
	* nss/nss_db/db-open.c: Likewise.
	* sysdeps/generic/ldsodefs.h: Likewise.
	* sysdeps/sh/nptl/tls.h: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/adjtime.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/xstatconv.h: Likewise.
	* sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/check_pf.c: Likewise.
	* sysdeps/unix/sysv/linux/clock_getcpuclockid.c: Likewise.
	* sysdeps/unix/sysv/linux/clock_getres.c: Likewise.
	* sysdeps/unix/sysv/linux/clock_gettime.c: Likewise.
	* sysdeps/unix/sysv/linux/clock_nanosleep.c: Likewise.
	* sysdeps/unix/sysv/linux/clock_settime.c: Likewise.
	* sysdeps/unix/sysv/linux/dl-execstack.c: Likewise.
	* sysdeps/unix/sysv/linux/dl-osinfo.h: Likewise.
	* sysdeps/unix/sysv/linux/dl-sysdep.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/futimesat.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/poll.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/fcntl.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/preadv.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/preadv64.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pwritev.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pwritev64.c: Likewise.
	* sysdeps/unix/sysv/linux/getcwd.c: Likewise.
	* sysdeps/unix/sysv/linux/getpagesize.c: Likewise.
	* sysdeps/unix/sysv/linux/getsysstats.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/fxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/lxstat.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/mmap.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/mmap64.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/i386/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/i386/xstat.c: Likewise.
	* sysdeps/unix/sysv/linux/ia64/system.c: Likewise.
	* sysdeps/unix/sysv/linux/if_index.c: Likewise.
	* sysdeps/unix/sysv/linux/ifaddrs.c: Likewise.
	* sysdeps/unix/sysv/linux/ifreq.c: Likewise.
	* sysdeps/unix/sysv/linux/ldsodefs.h: Likewise.
	* sysdeps/unix/sysv/linux/lutimes.c: Likewise.
	* sysdeps/unix/sysv/linux/m68k/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/nptl/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/accept4.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/recvmmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/sendmmsg.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/mmap64.c: Likewise.
	* sysdeps/unix/sysv/linux/netlinkaccess.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/chown.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: Likewise.
	* sysdeps/unix/sysv/linux/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/prof-freq.c: Likewise.
	* sysdeps/unix/sysv/linux/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/mmap.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/mmap64.S: Likewise.
	* sysdeps/unix/sysv/linux/s390/system.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/pread.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/pread64.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/pwrite.c: Likewise.
	* sysdeps/unix/sysv/linux/sh/pwrite64.c: Likewise.
	* sysdeps/unix/sysv/linux/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/sigpending.c: Likewise.
	* sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.
	* sysdeps/unix/sysv/linux/sigsuspend.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/system.c: Likewise.
	* sysdeps/unix/sysv/linux/syslog.c: Likewise.
	* sysdeps/unix/sysv/linux/system.c: Likewise.
	* sysdeps/unix/sysv/linux/testrtsig.h: Likewise.
	* sysdeps/unix/sysv/linux/timespec_get.c: Likewise.
	* sysdeps/unix/sysv/linux/ttyname.c: Likewise.
	* sysdeps/unix/sysv/linux/ttyname_r.c: Likewise.
	* sysdeps/unix/sysv/linux/utimensat.c: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sigaction.c: Likewise.
	* sysdeps/unix/sysv/linux/xstatconv.h: Likewise.
2014-06-25 18:09:01 +00:00
Roland McGrath
06d50baa34 SPARC: Consolidate nptl/ subdirectories under linux/... 2014-06-25 10:03:52 -07:00
Joseph Myers
a4ccbc9b24 Remove __ASSUME_XFS_RESTRICTED_CHOWN.
This patch removes the __ASSUME_XFS_RESTRICTED_CHOWN macro, now it can
be presumed to be defined unconditionally.  I'm not sure if what's
left of __statfs_chown_restricted is actually useful (if not, a
followup could remove it), but I left it there to keep the patch
conservative and avoid changing the code generated for glibc.

Tested x86_64 that the disassembly of installed shared libraries is
unchanged by the patch.

	* sysdeps/unix/sysv/linux/kernel-features.h
	(__ASSUME_XFS_RESTRICTED_CHOWN): Remove macro.
	* sysdeps/unix/sysv/linux/pathconf.c (__statfs_chown_restricted)
	[__ASSUME_XFS_RESTRICTED_CHOWN]: Make code unconditional.
	(__statfs_chown_restricted) [!__ASSUME_XFS_RESTRICTED_CHOWN]:
	Remove conditional code.
2014-06-25 16:39:33 +00:00
Will Newton
9aea0cb842 ARM: Add support for AT_HWCAP2 in _dl_procinfo
Add support for the new HWCAP2 values for ARMv8 added in the
3.15 kernel. Tested using QEMU which supports these extensions.

ChangeLog:

2014-06-25  Will Newton  <will.newton@linaro.org>

	* sysdeps/unix/sysv/linux/arm/dl-procinfo.c
	(_dl_arm_cap_flags): Add HWCAP2 values.
	* sysdeps/unix/sysv/linux/arm/dl-procinfo.h
	(_DL_HWCAP_COUNT): Increase to 37.
	(_DL_HWCAP_LAST): New define.
	(_DL_HWCAP2_LAST): New define.
	(_dl_procinfo): Add support for printing
	AT_HWCAP2 entries.
	(_dl_string_hwcap): Use _dl_hwcap_string.
2014-06-25 16:02:04 +01:00
Joseph Myers
cecf2ed43a Remove __ASSUME_UTIMENSAT.
This patch removes the __ASSUME_UTIMENSAT macro, now it can be
unconditionally assumed to be true.

This shows that the only live uses of __ASSUME_UTIMES are in utimes.c
and they are only live for hppa.  I intend a followup patch to make
__ASSUME_UTIMES into an hppa-specific macro (not used or defined
outside sysdeps/unix/sysv/linux/hppa/).

Tested x86_64 that the disassembly of installed shared libraries is
unchanged by this patch.

	* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_UTIMENSAT):
	Remove macro.
	* sysdeps/unix/sysv/linux/futimes.c: Do not include
	<kernel-features.h>.
	[__NR_utimensat && !__ASSUME_UTIMENSAT] (miss_utimensat): Remove
	conditional variable definition.
	(__futimes): Update comment.
	(__futimes) [__ASSUME_UTIMENSAT]: Make code unconditional.
	(__futimes) [!__ASSUME_UTIMENSAT]: Remove conditional code.
2014-06-25 11:36:10 +00:00
Joseph Myers
0f5b71850e Remove __ASSUME_COMPLETE_READV_WRITEV.
This patch removes the __ASSUME_COMPLETE_READV_WRITEV
kernel-features.h macro, now that it can be unconditionally assumed to
be true.  (The relevant kernel feature was added some time between 2.0
and 2.2, and this macro is only used in sysdeps/unix/sysv/linux/.)

Tested x86_64 that the disassembly of installed shared libraries is
unchanged by this patch.

	* sysdeps/unix/sysv/linux/kernel-features.h
	(__ASSUME_COMPLETE_READV_WRITEV): Remove macro.
	* sysdeps/unix/sysv/linux/readv.c: Do not include
	<kernel-features.h>.
	[!__ASSUME_COMPLETE_READV_WRITEV]: Remove conditional code.
	[!UIO_FASTIOV] (UIO_FASTIOV): Remove macro.
	(__libc_readv) [__ASSUME_COMPLETE_READV_WRITEV]: Make code
	unconditional.
	(__libc_readv) [!__ASSUME_COMPLETE_READV_WRITEV]: Remove
	conditional code.
	* sysdeps/unix/sysv/linux/writev.c: Do not include
	<kernel-features.h>.
	[!__ASSUME_COMPLETE_READV_WRITEV]: Remove conditional code.
	[!UIO_FASTIOV] (UIO_FASTIOV): Remove macro.
	(__libc_writev) [__ASSUME_COMPLETE_READV_WRITEV]: Make code
	unconditional.
	(__libc_writev) [!__ASSUME_COMPLETE_READV_WRITEV]: Remove
	conditional code.
2014-06-25 11:31:51 +00:00
Roland McGrath
0d749bbeba x86: Consolidate unnecessary nptl/ subdirectories. 2014-06-24 19:17:43 -07:00
Joseph Myers
0ea5d373c7 Move architecture cases out of sysdeps/unix/sysv/linux/configure.ac.
Continuing the process of making non-ex-ports architectures follow the
preferred sysdeps practices followed by ex-ports architectures - that
is, putting things in architecture-specific sysdeps files rather than
having architecture-specific cases in architecture-independent files -
this patch moves architecture cases out of
sysdeps/unix/sysv/linux/configure.ac into (new or existing) configure
fragments for each architecture.  (In the case of the
arch_minimum_kernel setting for x32,
sysdeps/unix/sysv/linux/x86_64/x32/configure already has such a
setting so the setting in sysdeps/unix/sysv/linux/configure.ac was a
duplicate that could just be removed - though I haven't tested for
x32.)

Tested for x86_64 and x86 that the patch causes no changes to the
installed shared libraries or ldd (or any part of the installation
except for the parts that always change because the files contain
timestamps - nscd and static libraries).

	* sysdeps/unix/sysv/linux/configure.ac: Remove cases for
	individual architectures.
	* sysdeps/unix/sysv/linux/configure: Regenerated.
	* sysdeps/unix/sysv/linux/i386/configure.ac: New file.
	* sysdeps/unix/sysv/linux/i386/configure: New generated file.
	* sysdeps/unix/sysv/linux/powerpc/configure.ac
	(ldd_rewrite_script): Define variable.
	* sysdeps/unix/sysv/linux/powerpc/configure: Regenerated.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/configure.ac: New
	file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/configure: New
	generated file.
	* sysdeps/unix/sysv/linux/s390/configure.ac: New file.
	* sysdeps/unix/sysv/linux/s390/configure: New generated file.
	* sysdeps/unix/sysv/linux/sh/configure.ac: New file.
	* sysdeps/unix/sysv/linux/sh/configure: New generated file.
	* sysdeps/unix/sysv/linux/sparc/configure.ac: New file.
	* sysdeps/unix/sysv/linux/sparc/configure: New generated file.
	* sysdeps/unix/sysv/linux/x86_64/configure.ac: New file.
	* sysdeps/unix/sysv/linux/x86_64/configure: New generated file.
2014-06-24 20:53:03 +00:00
Roland McGrath
3fc7236a28 Remove an unused variable in fstatvfs. 2014-06-23 14:05:14 -07:00
Roland McGrath
5686b236cc powerpc: Consolidate nptl/ subdirectories under linux/.... 2014-06-23 09:40:01 -07:00
Roland McGrath
88a4647493 MIPS: Move NPTL public headers to sysdeps/mips/nptl/. 2014-06-23 09:25:41 -07:00
Roland McGrath
15bed4728f m68k: Consolidate nptl/ subdirectories under linux/... 2014-06-23 09:24:18 -07:00
Roland McGrath
d42df55520 SH: Consolidate nptl/ subdirectories under linux/..... 2014-06-23 09:23:12 -07:00
Joseph Myers
76e5216e31 Update headers for Linux 3.15.
This patch updates glibc headers for changes / new definitions in
Linux 3.15.  In the course of my review I noticed that
IPV6_PMTUDISC_INTERFACE was absent from glibc despite the inclusion of
IP_PMTUDISC_INTERFACE; I added it along with IP_PMTUDISC_OMIT and
IPV6_PMTUDISC_OMIT.  I did not add FALLOC_FL_NO_HIDE_STALE given the
kernel header comment that it is reserved.

Tested x86_64.

	* sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU]
	(FALLOC_FL_COLLAPSE_RANGE): New macro.
	[__USE_GNU] (FALLOC_FL_ZERO_RANGE): Likewise.
	* sysdeps/unix/sysv/linux/bits/in.h (IP_PMTUDISC_OMIT): Likewise.
	(IPV6_PMTUDISC_INTERFACE): Likewise.
	(IPV6_PMTUDISC_OMIT): Likewise.
2014-06-23 15:48:42 +00:00
Roland McGrath
bc4a86fa21 Move linux bits/ files out of nptl/. 2014-06-20 18:36:49 -07:00
Joseph Myers
2272ffc116 Remove ARM __ASSUME_SIGFRAME_V2.
This patch removes ARM __ASSUME_SIGFRAME_V2 now that the
2.6.18-and-later signal frame layout can be assumed, renaming the
affected functions accordingly now only one version of them is needed
in glibc.  (sigrestorer.S did not in fact include <kernel-features.h>
and it appears that, unlike other such cases, it didn't get the header
indirectly, so the v1 functions would have been compiled in even when
sigaction.c didn't reference them.)

(alpha and hppa also have architecture-specific __ASSUME_* macros that
should now be removed: __ASSUME_FDATASYNC and __ASSUME_LWS_CAS
respectively.  I don't have any plans to do anything on that myself.)

Tested on ARM.

	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	(__ASSUME_SIGFRAME_V2): Remove macro.
	* sysdeps/unix/sysv/linux/arm/sigrestorer.S: Update comment.
	[!__ASSUME_SIGFRAME_V2]: Remove conditional code.
	(__default_sa_restorer_v2): Rename to __default_sa_restorer.
	(__default_rt_sa_restorer_v2): Rename to __default_rt_sa_restorer.
	* sysdeps/unix/sysv/linux/arm/sigaction.c (__default_sa_restorer):
	Declare as function.  Remove conditional macro definitions.
	(__default_rt_sa_restorer): Likewise.
	(__default_sa_restorer_v1): Remove declaration.
	(__default_sa_restorer_v2): Likewise.
	(__default_rt_sa_restorer_v1): Likewise.
	(__default_rt_sa_restorer_v2): Likewise.
	* sysdeps/unix/sysv/linux/arm/Versions (GLIBC_PRIVATE): Remove
	__default_sa_restorer_v1, __default_rt_sa_restorer_v1,
	__default_sa_restorer_v2 and __default_rt_sa_restorer_v2.
2014-06-21 00:58:56 +00:00
Roland McGrath
4b88139b6f Move remaining SPARC code out of nptl/. 2014-06-20 17:13:47 -07:00
Joseph Myers
d710902750 Remove __ASSUME_SOCK_CLOEXEC / SOCK_CLOEXEC conditionals in Linux-specific code.
This patch removes conditionals on __ASSUME_SOCK_CLOEXEC, and on
SOCK_CLOEXEC being defined, in Linux-specific code, now that all
supported Linux kernel versions can be assumed to have this
functionality.  (The macro is also used in OS-independent code and is
not defined for Hurd.)

Tested x86_64 that the disassembly of installed shared libraries is
unchanged by this patch.

	* nptl/sysdeps/unix/sysv/linux/mq_notify.c: Do not include
	<kernel-features.h>.
	(init_mq_netlink): Remove conditional have_sock_cloexec
	definitions.  Remove code conditional on have_sock_cloexec < 0.
	(init_mq_netlink) [!SOCK_CLOEXEC]: Remove conditional code.
	(init_mq_netlink) [!__ASSUME_SOCK_CLOEXEC]: Likewise.
	* sysdeps/unix/sysv/linux/opensock.c: Do not include
	<kernel-features.h>.
	(__opensock) [SOCK_CLOEXEC]: Make code unconditional.
	(__opensock) [!__ASSUME_SOCK_CLOEXEC]: Remove conditional code.
2014-06-20 23:22:08 +00:00
Joseph Myers
7fd00f9980 Remove __ASSUME_F_GETOWN_EX.
This patch removes __ASSUME_F_GETOWN_EX now it can be assumed to be
true unconditionally.

Tested x86_64 that disassembly of installed shared libraries is
unchanged by this patch.

	* sysdeps/unix/sysv/linux/kernel-features.h
	(__ASSUME_F_GETOWN_EX): Remove macro.
	* sysdeps/unix/sysv/linux/fcntl.c: Do not include
	<kernel-features.h>.
	(miss_F_GETOWN_EX): Remove variable or macro.
	(do_fcntl): Do not check miss_F_GETOWN_EX.
	(do_fcntl) [!__ASSUME_F_GETOWN_EX]: Remove conditional code.
2014-06-20 20:04:33 +00:00
Joseph Myers
4a103975c4 Remove __ASSUME_AT_RANDOM.
This patch removes __ASSUME_AT_RANDOM now it can be assumed to be true
unconditionally.

Tested x86_64 that the disassembly of installed shared libraries is
unchanged by this patch.

	* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_AT_RANDOM):
	Remove macro.
	* sysdeps/unix/sysv/linux/dl-osinfo.h (_dl_setup_stack_chk_guard)
	[!__ASSUME_AT_RANDOM]: Remove conditional code.
	(_dl_setup_pointer_guard) [!__ASSUME_AT_RANDOM]: Likewise.
2014-06-20 20:02:34 +00:00
Joseph Myers
a2a76afe91 Remove __ASSUME_ADJ_OFFSET_SS_READ.
This patch removes the __ASSUME_ADJ_OFFSET_SS_READ macro (and
conditionals on whether ADJ_OFFSET_SS_READ is defined), now it can be
unconditionally assumed to be true and ADJ_OFFSET_SS_READ can be
assumed to be defined.

Tested x86_64 that the disassembly of installed shared libraries is
unchanged by this patch.

	* sysdeps/unix/sysv/linux/kernel-features.h
	(__ASSUME_ADJ_OFFSET_SS_READ): Remove macro.
	* sysdeps/unix/sysv/linux/adjtime.c (ADJTIME)
	[ADJ_OFFSET_SS_READ]: Make code unconditional.
	(ADJTIME) [!ADJ_OFFSET_SS_READ]: Remove conditional code.
2014-06-20 20:00:51 +00:00
Joseph Myers
809fdf0d23 Remove __ASSUME_ATFCTS conditionals in sysdeps/unix/sysv/linux/.
This patch cleans up for __ASSUME_ATFCTS now always being true for the
supported Linux kernel versions by removing conditional code in
sysdeps/unix/sysv/linux.  Several fchownat.c files that were only
present because of differences in the fallback syscalls used
(depending on the architecture-specific names of chown-related
syscalls for 32-bit uids) are removed.  Files that looks like they
could be replaced by syscalls.list entries have the standard "Consider
moving to syscalls.list." comment (see bug 14138) added.  Conditionals
on the relevant __NR_* syscall numbers being defined are also removed,
since my analysis indicated that the relevant syscalls are always
defined for all relevant kernel versions using any affected file.
Much of the removed fallback code had unbounded stack allocations, so
this reduces the number of cases to consider for anyone reviewing uses
of alloca and VLAs in glibc.

There remain tests of __ASSUME_ATFCTS in io/openat.c (to determine
whether to define __have_atfcts) and sysdeps/posix/getcwd.c (which
also uses __have_atfcts); thus, the definition of __ASSUME_ATFCTS
remains in kernel-features.h.  The logical condition relevant there is
whether openat64_not_cancel_3 is known to work.  Hurd doesn't use this
version of getcwd at all, so the conditionals in getcwd.c are always
true in glibc.  However, this code is also used in gnulib.  So the
best way to deal with the conditionals there may be for gnulib people
to deal with merging all relevant changes in both directions between
the glibc and gnulib versions of this file, at the end of which the
openat conditionals should be in whatever form is best for gnulib, and
hardcoded in the _LIBC case to having openat supported.

Tested by comparing before-and-after disassembly of installed
(stripped) shared libraries, on x86_64 and x86.  On x86 the patch made
no change to the disassembly; on x86_64, the only changes were in
readlinkat, where formerly the return value from the readlinkat
syscall was stored in an int variable before being converted to
ssize_t for the return, and now the return value is returned directly
without truncation to int.  I think it's clearly correct not to
truncate the return value (although I also think the truncation would
not have been a user-visible bug because the kernel would never have
returned a value it could have affected).

	* include/fcntl.h (__atfct_seterrno): Remove prototype.
	(__atfct_seterrno_2): Likewise.
	* sysdeps/unix/sysv/linux/alpha/dl-fxstatat64.c: Do not include
	<kernel-features.h>.
	(__ASSUME_ATFCTS): Do not undefine and redefine.
	* sysdeps/unix/sysv/linux/alpha/fxstatat.c [__ASSUME_ATFCTS]
	(__have_atfcts): Remove conditional definition.
	(__fxstatat([__NR_fstatat64]: Make code unconditional.
	(__fxstatat) [!__ASSUME_ATFCTS]: Remove conditional code and code
	unreachable if [__ASSUME_ATFCTS].
	* sysdeps/unix/sysv/linux/dl-fxstatat64.c (__ASSUME_ATFCTS): Do
	not undefine and redefine.
	* sysdeps/unix/sysv/linux/faccessat.c: Do not include
	<kernel-features.h>.
	(faccessat) [__NR_faccessat]: Make code unconditional.
	(faccessat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/fchmodat.c: Do not include
	<kernel-features.h>.
	(fchmodat) [__NR_fchmodat]: Make code unconditional.
	(fchmodat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/fchownat.c: Do not include
	<kernel-features.h>.
	(fchownat) [__NR_fchownat]: Make code unconditional.
	(fchownat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/futimesat.c: Do not include
	<kernel-features.h>.
	(futimesat) [__NR_futimesat]: Make code unconditional.
	(futimesat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/fxstatat.c: Do not include
	<kernel-features.h>.
	(__fxstatat) [__NR_newfstatat]: Make code unconditional.
	(__fxstatat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/fxstatat64.c: Do not include
	<kernel-features.h>.
	(__fxstatat64) [__NR_fstatat64]: Make code unconditional.
	(__fxstatat64) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/i386/fchownat.c: Remove file.
	* sysdeps/unix/sysv/linux/i386/fxstatat.c: Do not include
	<kernel-features.h>.
	(__fxstatat) [__NR_fstatat64]: Make code unconditional.
	(__fxstatat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/linkat.c: Do not include
	<kernel-features.h>.
	(linkat) [__NR_linkat]: Make code unconditional.
	(linkat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/m68k/fchownat.c: Remove file.
	* sysdeps/unix/sysv/linux/mips/mips64/fxstatat64.c: Do not include
	<kernel-features.h>.
	(__fxstatat64) [__NR_newfstatat]: Make code unconditional.
	(__fxstatat64) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/mkdirat.c: Do not include
	<kernel-features.h>.
	(mkdirat) [__NR_mkdirat]: Make code unconditional.
	(mkdirat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/openat.c: Do not include
	<kernel-features.h>.
	[!__ASSUME_ATFCTS] (__atfct_seterrno): Remove function.
	[!__ASSUME_ATFCTS] (__have_atfcts): Remove variable.
	(OPENAT_NOT_CANCEL) [__NR_openat]: Make code unconditional.
	(OPENAT_NOT_CANCEL) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/powerpc/fchownat.c: Remove file.
	* sysdeps/unix/sysv/linux/readlinkat.c: Do not include
	<kernel-features.h>.
	(readlinkat) [__NR_readlinkat]: Make code unconditional.
	(readlinkat) [!__ASSUME_ATFCTS]: Remove conditional code.  Return
	result of INLINE_SYSCALL directly, not via int variable.
	* sysdeps/unix/sysv/linux/renameat.c: Do not include
	<kernel-features.h>.
	[!__ASSUME_ATFCTS] (__atfct_seterrno_2): Remove function.
	(renameat) [__NR_renameat]: Make code unconditional.
	(renameat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/s390/s390-32/fchownat.c: Remove file.
	* sysdeps/unix/sysv/linux/sh/fchownat.c: Remove file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/fchownat.c: Remove file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/dl-fxstatat64.c
	(__ASSUME_ATFCTS): Do not undefine and redefine.
	* sysdeps/unix/sysv/linux/symlinkat.c: Do not include
	<kernel-features.h>.
	(symlinkat) [__NR_symlinkat]: Make code unconditional.
	(symlinkat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/unlinkat.c: Do not include
	<kernel-features.h>.
	(unlinkat) [__NR_unlinkat]: Make code unconditional.
	(unlinkat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/wordsize-64/dl-fxstatat64.c
	(__ASSUME_ATFCTS): Do not undefine and redefine.
	* sysdeps/unix/sysv/linux/wordsize-64/fxstatat.c: Do not include
	<kernel-features.h>.
	(__fxstatat) [__NR_newfstatat]: Make code unconditional.
	(__fxstatat) [!__ASSUME_ATFCTS]: Remove conditional code.
	* sysdeps/unix/sysv/linux/xmknodat.c: Do not include
	<kernel-features.h>.
	(__xmknodat) [__NR_mknodat]: Make code unconditional.
	(__xmknodat) [!__ASSUME_ATFCTS]: Remove conditional code.
2014-06-20 15:41:35 +00:00
Andreas Schwab
1d2a049204 m68k: Consolidate NPTL/non versions of clone 2014-06-14 21:37:49 +02:00
Andreas Schwab
11b9e55b67 m68k: Consolidate NPTL/non versions of vfork 2014-06-14 21:37:34 +02:00
Roland McGrath
45193bb814 S390: Convert fork.c to arch-fork.h 2014-06-13 16:26:38 -07:00
David S. Miller
f6fdf53382 Consolidate sparc clone, fork, and vfork implementations.
* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Delete.
	* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S: Delete.
	* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Moved ...
	* sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: ... here.
	* nptl/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Delete.
	* nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: Delete.
	* nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Moved ...
	* sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: ... here.
	* sysdeps/unix/sysv/linux/sparc/fork.S: Delete.
	* sysdeps/unix/sysv/linux/sparc/pt-vfork.S: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__thread_start):
	Remove RESET_PID cpp guards.
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__thread_start):
	Remove RESET_PID cpp guards.
	* sysdeps/unix/sysv/linux/sparc/vfork.S: Delete.
2014-06-13 14:47:53 -07:00
Andi Kleen
b7aa8caace Remove x86 assembler rwlock code
With the recent tuning the C version of rwlocks is basically the same
performance as the x86 assembler version for uncontended locks (with a
a few cycles near the run-to-run variability). For others it should not
matter anyways.

So remove the assembler code and use the C version like other
architectures.
2014-06-13 13:16:06 -07:00
Andi Kleen
8491ed6d70 Add adaptive elision to rwlocks
This patch relies on the C version of the rwlocks posted earlier.
With C rwlocks it is very straight forward to do adaptive elision
using TSX. It is based on the infrastructure added earlier
for mutexes, but uses its own elision macros. The macros
are fairly general purpose and could be used for other
elision purposes too.

This version is much cleaner than the earlier assembler based
version, and in particular implements adaptation which makes
it safer.

I changed the behavior slightly to not require any changes
in the test suite and fully conform to all expected
behaviors (generally at the cost of not eliding in
various situations). In particular this means the timedlock
variants are not elided.  Nested trylock aborts.
2014-06-13 13:15:28 -07:00
Meador Inge
995a46bbfb get_nprocs: Only return explictly set cache values (BZ #16996)
The implementation of __get_nprocs uses a stactic variable to cache
the value of the current number of processors.  The caching breaks when
'time (NULL) == 0':

  $ cat nproc.c
  #include <stdio.h>
  #include <time.h>
  #include <sys/time.h>

  int main(int argc, char *argv[])
  {
    time_t t;
    struct timeval tv = {0, 0};
    printf("settimeofday({0, 0}, NULL) = %d\n", settimeofday(&tv, NULL));
    t = time(NULL);
    printf("Time: %d, CPUs: %d\n", (unsigned int)t, get_nprocs());
    return 0;
  }
  $ gcc -O3 nproc.c
  $ ./a.out
  settimeofday({0, 0}, NULL) = -1
  Time: 1401311578, CPUs: 4
  $ sudo ./a.out
  settimeofday({0, 0}, NULL) = 0
  Time: 0, CPUs: 0

The problem is with the condition used to check whether a cached
value should be returned or not:

  static int cached_result;
  static time_t timestamp;

  time_t now = time (NULL);
  time_t prev = timestamp;
  atomic_read_barrier ();
  if (now == prev)
    return cached_result;

This patch fixes the problem by ensuring that 'cached_result' has
been set at least once before returning it.
2014-06-13 14:02:04 +05:30
Roland McGrath
febf6cc58c Move SPARC public headers out of nptl/ 2014-06-12 15:04:34 -07:00
Roland McGrath
b14368b895 SPARC: Convert fork.c to arch-fork.h 2014-06-12 14:19:50 -07:00
Roland McGrath
463dc947b4 Get rid of nptl/sysdeps/pthread/ subdirectory 2014-06-12 13:48:47 -07:00
Roland McGrath
e876b09076 Consolidate NPTL sigprocmask. 2014-06-12 10:32:18 -07:00
Roland McGrath
45262aeedf Move SH code out of nptl/ subdirectory. 2014-06-12 09:05:54 -07:00
Chris Metcalf
c3a2ebe1f7 tile: Consolidate NPTL/non versions of vfork 2014-06-11 15:52:53 -04:00
Roland McGrath
c9cab3d2f9 Tile: Define TLS_DEFINE_INIT_TP 2014-06-11 12:25:27 -07:00
Roland McGrath
ba5ec6116c Alpha: Define TLS_DEFINE_INIT_TP 2014-06-11 12:23:35 -07:00
Roland McGrath
f12b481486 PowerPC: Define TLS_DEFINE_INIT_TP 2014-06-11 12:23:17 -07:00
Roland McGrath
9503784a07 AArch64: Define TLS_DEFINE_INIT_TP 2014-06-11 12:23:01 -07:00
Chris Metcalf
2d0fc4dcfc tile: move sysdeps/unix/sysv/linux/tile nptl files. 2014-06-10 14:10:17 -04:00
Bernard Ogden
2c3520d98d hppa: Remove lowlevellock.c.
The hppa port has no need of a custom lowlevellock.c, it should
use the generic version which is updated and correct. This
similarly fixes bug 15119 for hppa.
2014-06-09 23:22:20 -04:00
Roland McGrath
d752f0ccd7 m68k: Define TLS_DEFINE_INIT_TP 2014-06-09 15:54:19 -07:00
Roland McGrath
34eda6d1ba HPPA: Define TLS_DEFINE_INIT_TP 2014-06-09 14:04:45 -07:00
Roland McGrath
50f0a637b7 MIPS: Define TLS_DEFINE_INIT_TP 2014-06-09 13:47:38 -07:00
Roland McGrath
08f41f047c ARM: Define TLS_DEFINE_INIT_TP 2014-06-09 12:53:16 -07:00
Roland McGrath
962b744d06 Start cleaning up TLS initial value for pthread_create. 2014-06-09 12:52:55 -07:00
Ondřej Bílka
d89b3d80f9 Fix memory overrun in getifaddrs_internal. Fixes bug 15698. 2014-06-05 19:25:23 +02:00
Richard Henderson
71840409ea aarch64: Remove nptl/vfork.S 2014-06-03 11:28:11 -04:00
Richard Henderson
89b4bd6b60 aarch64: Consolidate NPTL/non versions of vfork
At the same time, incorporate the 0 -> 0x80000000 mapping
of the pid expected by raise.c.
2014-06-03 11:09:20 -04:00
Richard Henderson
111cc71489 aarch64: Consolidate NPTL/non versions of clone
At the same time, rely on non-clobbered registers across syscall
so that we eliminate the stack frame that we previously ignored
in the unwind info.
2014-06-03 11:04:04 -04:00
Roland McGrath
d936d379eb SH: Consolidate NPTL/non versions of vfork 2014-06-02 14:29:19 -07:00
Richard Henderson
f0712b543e aarch64: Remove PSEUDO_RET 2014-05-30 14:11:51 -04:00
Richard Henderson
74f31c1859 aarch64: Fix error return from __ioctl
Forgotten in ca3cfa40c1
where the error branch was moved from PSEUDO_RET.
2014-05-30 14:09:34 -04:00
Roland McGrath
5190c17f22 m68k: Convert fork.c to arch-fork.h 2014-05-30 18:44:55 +02:00
Richard Henderson
1670e207c5 aarch64: Rely on syscalls preserving registers
In several cases we've had asm routines rely on syscalls not clobbering
call-clobbered registers, and that's now deemed ABI.  So take advantage
of this in the INLINE_SYSCALL path as well.

Shrinks libc.so by about 1k.
2014-05-29 12:53:27 -04:00
Richard Henderson
11a28aee60 aarch64: Use tpidr_el0 rather than __errno_location in librt 2014-05-29 12:41:08 -04:00
Richard Henderson
a17e5ffb80 aarch64: Use tpidr_el0 rather than __read_tp in librt 2014-05-29 12:39:03 -04:00
Richard Henderson
b5be459771 aarch64: Improve syscall-cancel stack frame
One push instead of N; use stp/ldp to halve the insns.
2014-05-29 12:37:24 -04:00
Richard Henderson
645d44abe3 aarch64: Pass regno parameter to SINGLE_THREAD_P
Use cbz instead of cmp+b.eq.
2014-05-29 12:33:06 -04:00
Richard Henderson
a8b4f04ad7 aarch64: Share code in syscall-cancel.h
Fold nocancel and error handling paths.
2014-05-29 12:31:07 -04:00
Richard Henderson
af4e8ef944 aarch64: Tabify sysdep-cancel.h 2014-05-29 12:28:59 -04:00
Eric Wong
26b0d2e1a1 Avoid stat/fstat in statvfs/fstatvfs (BZ #15132)
Delay the use of stat/fstat until stat data is required.  When the
kernel returns ST_VALID, stat data is not used by __internal_statvfs.
2014-05-29 09:41:29 +05:30
Roland McGrath
0d3b7a190c SH: Consolidate NPTL/non versions of clone 2014-05-28 17:23:19 -07:00
Roland McGrath
1efe2bd9dc tile: Convert fork.c to arch-fork.h 2014-05-28 14:23:16 -04:00
Roland McGrath
30b6629ede IA64: Convert fork.c to arch-fork.h 2014-05-27 15:43:45 -07:00
Roland McGrath
a6bea3ca7b SH: Convert fork.c to arch-fork.h 2014-05-27 12:58:01 -07:00
Adhemerval Zanella
c7a8d66787 PowerPC: Move remaining nptl/sysdeps/unix/sysv/linux/powerpc/ files. 2014-05-26 11:45:14 -05:00
Adhemerval Zanella
daee7851e2 PowerPC: Move NPTL ABI headers to sysdeps. 2014-05-26 11:41:47 -05:00
Adhemerval Zanella
50a4081954 PowerPC: Move powerpc64 timer_*.c out of nptl/ 2014-05-26 11:41:46 -05:00
Adhemerval Zanella
8464c2a110 PowerPC: Consolidate NPTL/non versions of clone 2014-05-26 11:41:46 -05:00
Adhemerval Zanella
3d1024e8d1 PowerPC: Consolidate NPTL/non versions of vfork 2014-05-26 11:41:28 -05:00
Richard Henderson
aa2f176d6f arm,aarch64: Remove SINGLE_THREAD_P_PIC
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.
2014-05-25 12:50:41 -04:00
Richard Henderson
ca3cfa40c1 aarch64: Tidy syscall error check
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.
2014-05-25 12:46:50 -04:00
Richard Henderson
6e6c2d01eb aarch64: Remove DOARGS/UNDOARGS macros
While they do something for AArch32, they're useless for AArch64.
2014-05-25 12:37:29 -04:00
Richard Henderson
c69abcee72 aarch64: Fix DO_CALL block comment 2014-05-25 12:33:00 -04:00
Richard Henderson
82aab97cbf alpha: Do non-default symbols in pt-vfork.S 2014-05-25 09:04:54 -07:00
Richard Henderson
bc89e9625f alpha: Move remaining files out of sysdeps/unix/sysv/linux/alpha/nptl/ 2014-05-23 11:20:48 -07:00
Richard Henderson
e2fa4bc2bb alpha: Consolidate NPTL/non versions of vfork 2014-05-23 11:20:44 -07:00
Richard Henderson
279b24e2e5 alpha: Merge standard and nptl clone.S 2014-05-23 11:20:41 -07:00
Richard Henderson
132c7f5f01 alpha: Remove nptl/fork.c
The merge at ab21431318 failed
to properly remove the file.
2014-05-23 11:20:37 -07:00
Roland McGrath
df54acbb7b AArch64: Convert fork.c to arch-fork.h 2014-05-21 18:45:00 +01:00
Richard Henderson
a6b3657be6 aarch64: Merge __local_multiple_threads offset with memory reference
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.
2014-05-21 11:36:51 -04:00
Richard Henderson
3612eb8f25 aarch64: Merge rtld_errno offset with memory reference 2014-05-21 11:36:03 -04:00
Joseph Myers
175cef4163 Fix ARM build with GCC trunk.
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.
2014-05-20 21:27:13 +00:00
Richard Henderson
de9d8f2098 alpha: fix sa_flags type (BZ 16967) 2014-05-20 07:17:27 -07:00
Richard Henderson
4c0a1e6392 alpha: Remove bits/siginfo.h (BZ 16966)
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.
2014-05-20 07:17:24 -07:00
Will Newton
a60339aaff AArch64: Fix handling of nocancel syscall failures
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.
2014-05-20 13:48:23 +01:00
Yvan Roux
7d05a8168b AArch64: Remove asm/ptrace.h inclusion in sys/user.h and sys/procfs.h
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.
2014-05-20 13:45:22 +01:00
Richard Henderson
e184a918bb alpha: Create __syscall_nocancel entry points 2014-05-17 11:25:19 -07:00
Richard Henderson
ab21431318 Merge remote-tracking branch 'origin/roland/nptl-alpha' 2014-05-17 11:20:44 -07:00
David S. Miller
f56c7a6ac4 Fix some termios.h conformtest failures on sparc.
* 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
2014-05-17 11:11:53 -07:00
Roland McGrath
f75616b2b1 Fix __waitpid_nocancel link error. 2014-05-16 15:45:58 -07:00
Adhemerval Zanella
026b0fe4e7 PowerPC: clean BSD Terminal Modes expectation in termios.h
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
2014-05-16 15:54:30 -05:00
Roland McGrath
3edeca8684 Alpha: Convert fork.c to arch-fork.h 2014-05-16 13:03:08 -07:00
Roland McGrath
fe39b021f4 ARM: Convert fork.c to arch-fork.h 2014-05-16 12:51:39 -07:00
Roland McGrath
1d1fc46ed1 Add stub arch-fork.h header. 2014-05-16 11:47:13 -07:00
Roland McGrath
def4bcb29d Split arch-fork.h from fork.h 2014-05-16 11:17:41 -07:00
Aurelien Jarno
d16e6ec7ca SPARC: add prlimit and prlimit64 in <bits/resource.h> (BZ #16943)
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>
2014-05-16 00:07:32 +02:00
Aurelien Jarno
d0583c4039 ptsname_r: don't leak uninitialized memory (BZ #16917)
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>
2014-05-16 00:07:29 +02:00
Roland McGrath
a5d87b3db4 x86: Move abilist files out of nptl/ subdirectories. 2014-05-14 15:45:23 -07:00
Roland McGrath
039890a678 Move remaining files out of nptl/sysdeps/unix/sysv/linux/x86/. 2014-05-14 15:32:18 -07:00
Roland McGrath
65c89320e2 Fix mips fork after i386 reorganization. 2014-05-14 14:00:23 -07:00
Roland McGrath
348f8e8c26 Move remaining nptl/sysdeps/unix/sysv/linux/i386/ files. 2014-05-14 13:37:40 -07:00
Roland McGrath
5085af05bd Fix powerpc fork after i386 reorganization. 2014-05-14 13:28:40 -07:00
Roland McGrath
5aa618fb5b Update alpha and ia64 timer_*.c files for x86_64 file moves. 2014-05-14 13:26:25 -07:00
Roland McGrath
c96067bce5 Move remaining nptl/sysdeps/unix/sysv/linux/x86_64/ files. 2014-05-14 12:33:43 -07:00
Roland McGrath
ec136444ca x86: Consolidate NPTL fork. 2014-05-14 11:31:37 -07:00
Roland McGrath
2fbdf5339a Consolidate not-cancel.h files. 2014-05-14 11:06:36 -07:00
Roland McGrath
4eaae76517 Move x86_64 compat-timer.h out of nptl/ 2014-05-14 10:43:54 -07:00
Roland McGrath
3a51fb6047 Move x86_64 timer_*.c out of nptl/ 2014-05-14 10:35:39 -07:00
Roland McGrath
941d7dfd24 x86: Consolidate NPTL/non versions of clone 2014-05-14 10:16:27 -07:00
Roland McGrath
e27871374e x86: Consolidate NPTL/non versions of vfork 2014-05-14 09:44:39 -07:00
Roland McGrath
5675da1e84 ARM: Consolidate NPTL/non versions of vfork 2014-05-14 09:44:24 -07:00
Joseph Myers
5e7698c6f1 Reduce kernel-features.h duplication.
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.
2014-05-14 00:45:19 +00:00
Joseph Myers
5c521ecdda Clean up ARM old-ABI symbol versioning relics.
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.
2014-05-14 00:41:20 +00:00
Roland McGrath
5da9dfad43 Move NPTL public ABI headers for ARM to sysdeps/arm/nptl/. 2014-05-13 11:33:49 -07:00
Roland McGrath
58aa195d32 Verbatim NPTL file moves for ARM/Linux. 2014-05-13 10:04:20 -07:00
Roland McGrath
8c6d01f0b1 Consolidate NPTL configury for ARM/Linux. 2014-05-13 10:04:05 -07:00
Roland McGrath
bba6da4e1b Consolidate NPTL vs non clone.S for ARM. 2014-05-13 10:03:45 -07:00
Roland McGrath
e0db65176f Clean up __exit_thread. 2014-05-13 09:49:20 -07:00
Joseph Myers
637461d965 Clean up kernel version conditionals for pre-2.6.32 kernels.
This patch does some initial cleanup, following the move to 2.6.32
minimum kernel version, by removing __LINUX_KERNEL_VERSION
conditionals that are now always-true or always-false.  In the case of
__ASSUME_ARG_MAX_STACK_BASED, where the conditional used a kernel
version that was itself in a macro, the associated sysconf.c code is
also cleaned up and __ASSUME_ARG_MAX_STACK_BASED removed completely.

Tested x86_64 that disassembly of installed shared libraries is
unchanged by the patch.

	* sysdeps/unix/sysv/linux/kernel-features.h [__s390__]
	(__ASSUME_UTIMES): Do not condition on kernel version.
	(__ASSUME_PSELECT): Define unconditionally.
	(__ASSUME_PPOLL): Likewise.
	(__ASSUME_ATFCTS): Likewise.
	(__ASSUME_SET_ROBUST_LIST): Do not condition on kernel version.
	(__ASSUME_COMPLETE_READV_WRITEV): Define unconditionally.
	(__ASSUME_FUTEX_LOCK_PI): Do not condition on kernel version.
	(__ASSUME_UTIMENSAT): Define unconditionally.
	(__ASSUME_PRIVATE_FUTEX): Likewise.
	(__ASSUME_FALLOCATE): Likewise.
	(__ASSUME_O_CLOEXEC): Likewise.
	(__LINUX_ARG_MAX_STACK_BASED_MIN_KERNEL): Remove.
	(__ASSUME_ARG_MAX_STACK_BASED): Likewise.
	(__ASSUME_ADJ_OFFSET_SS_READ): Define unconditionally.
	(__ASSUME_SOCK_CLOEXEC): Do not condition on kernel version.
	(__ASSUME_IN_NONBLOCK): Likewise.
	(__ASSUME_PIPE2): Likewise.
	(__ASSUME_EVENTFD2): Likewise.
	(__ASSUME_SIGNALFD4): Likewise.
	(__ASSUME_DUP3): Likewise.
	[__x86_64__ || __sparc__] (__ASSUME_ACCEPT4_SYSCALL): Likewise.
	(__ASSUME_FUTEX_CLOCK_REALTIME): Define unconditionally.
	(__ASSUME_AT_RANDOM): Likewise.
	(__ASSUME_PREADV): Likewise.
	(__ASSUME_PWRITEV): Likewise.
	(__ASSUME_REQUEUE_PI): Do not condition on kernel version.
	(__ASSUME_F_GETOWN_EX): Define unconditionally.
	(__ASSUME_XFS_RESTRICTED_CHOWN): Likewise.
	* sysdeps/unix/sysv/linux/sysconf.c (__sysconf)
	[!__ASSUME_ARG_MAX_STACK_BASED]: Remove conditional code.
	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
	(__ASSUME_O_CLOEXEC): Define unconditionally.
	(__ASSUME_PSELECT): Do not undefine conditionally.
	(__ASSUME_PPOLL): Likewise.
	(__ASSUME_ATFCTS): Likewise.
	(__ASSUME_SET_ROBUST_LIST): Likewise.
	(__ASSUME_UTIMENSAT): Likewise.
	(__ASSUME_FDATASYNC): Define unconditionally.
	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	(__ASSUME_SIGFRAME_V2): Likewise.
	)__ASSUME_EVENTFD2): Likewise.
	(__ASSUME_SIGNALFD4): Likewise.
	(__ASSUME_PSELECT): Do not undefine conditionally.
	(__ASSUME_PPOLL): Likewise.
	* sysdeps/unix/sysv/linux/ia64/kernel-features.h
	(__ASSUME_PSELECT): Define unconditionally.
	(__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_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_EVENTFD2): Likewise.
	(__ASSUME_SIGNALFD4): Likewise.
	(__ASSUME_ACCEPT4_SYSCALL): Likewise.
2014-05-12 22:48:25 +00:00
Roland McGrath
95afbbe5fc Some configure-related decrufting. 2014-05-08 11:27:14 -07:00
Roland McGrath
0f58d25277 Move ARM internal unwind.h header to the right sysdeps directory. 2014-05-06 15:55:20 -07:00
Aurelien Jarno
83df9ad0cc SPARC: add EFD_SEMAPHORE in <bits/eventfd.h> (BZ #16916)
EFD_SEMAPHORE has been added in the main <bits/eventfd.h>, but not in
the SPARC specific version. Fix that.
2014-05-07 00:00:56 +02:00
Roland McGrath
fe6588457a Move rules for Linux-specific pldd program to Linux-specific Makefile. 2014-05-05 13:16:08 -07:00
Will Newton
6d96f5e4c0 ARM: Remove lowlevellock.c
lowlevellock.c for arm differs from the generic lowlevellock.c only in
insignificant ways, so can be removed. Happily, this fixes BZ 15119
(unnecessary busy loop in __lll_timedlock_wait on arm).

The notable differences between the arm and generic implementations are:

1) arm __lll_timedlock_wait has a fast path out if futex has been set
to 0 between since the function was called. This seems unlikely to
happen very often, so it seems at worst harmless to lose this fast
path.

2) Some function in arm's lowlevellock.c set futex to 2 if it was 1.
The generic version always sets the futex to 2. As futex can only be
0, 1 or 2 on entry into these functions, the behaviour is equivalent.
(If the futex manages to be 0 on entry then we've just lost another
unlikely fast path out.)

There are no test suite regressions.

Note that hppa and sparc also have their own lowlevellock.c. I believe
hppa can also be removed, so I'll send a separate patch for that
shortly. sparc's seems to be genuinely needed as it uses a different
locking structure.

Also note that the analysis at
https://sourceware.org/ml/libc-ports/2013-02/msg00021.html indicates a
further locking performance bug to fix - I've got a partial patch for
that which I can submit once I've finished testing.

2014-05-01  Bernard Ogden <bernie.ogden@linaro.org>

	[BZ #15119]
	* sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.c: Remove file.
2014-05-01 14:25:44 +01:00
David S. Miller
1d3d93ef73 Correct sparc CPP guards for EMT_TAGOVF.
* sysdeps/unix/sysv/linux/sparc/bits/siginfo.h (EMT_TAGOVF): Protect
	with __USE_GNU instead of XOPEN cpp guards.
2014-04-30 13:37:04 -07:00
David S. Miller
211d653cb6 Fix some sparc conform test failures in siginfo.h
* sysdeps/unix/sysv/linux/sparc/bits/siginfo.h (EMT_TAGOVF): Protect
	with XOPEN cpp guards.
2014-04-30 11:37:41 -07:00
Joseph Myers
d0f5b3f851 Increase minimum Linux kernel version to 2.6.32.
This patch increases the minimum Linux kernel version for glibc to
2.6.32, as discussed in the thread starting at
<https://sourceware.org/ml/libc-alpha/2014-01/msg00511.html>.

This patch just does the minimal change to arch_minimum_kernel
settings (and LIBC_LINUX_VERSION, which determines the minimum kernel
headers version, as it doesn't make sense for that to be older than
the minimum kernel that can be used at runtime).  Followups would be
expected to do, roughly and not necessarily precisely in this order:

* Remove __LINUX_KERNEL_VERSION checks in kernel-features.h files
  where those checks are always true / always false for kernels 2.6.32
  and above.

* Otherwise simplify/improve conditionals in those files (for example,
  where defining once in the main file then undefining in
  architecture-specific files makes things clearer than having lots of
  separate definitions of the same macro), possibly fixing in the
  process cases where a macro should optimally have been defined for a
  given architecture but wasn't.  (In the review in preparation for
  this version increase I checked what the right conditions should be
  for all macros in the main kernel-features.h whose definitions there
  would have been affected by the increase - but I only fixed that
  subset of the issues found where --enable-kernel=2.6.32 would have
  caused a kernel feature to be wrongly assumed to be present, not any
  cases where a feature is not assumed but could be assumed.)

* Remove conditionals on __ASSUME_* where they can now be taken to be
  always-true, and the definitions when the macros are only used in
  Linux-specific files.

* Split more architectures out of the main kernel-features.h (like
  ex-ports architectures), once various of the architecture
  conditionals there have been eliminated so the new
  architecture-specific files are no larger than actually necessary.

Tested x86_64.

2014-03-27  Joseph Myers  <joseph@codesourcery.com>

	[BZ #9894]
	* sysdeps/unix/sysv/linux/configure.ac (LIBC_LINUX_VERSION):
	Change to 2.6.32.
	(arch_minimum_kernel): Change all 2.6.16 settings to 2.6.32.
	* sysdeps/unix/sysv/linux/configure: Regenerated.
	* sysdeps/unix/sysv/linux/microblaze/configure.ac: Remove file.
	* sysdeps/unix/sysv/linux/microblaze/configure: Likewise.
	* sysdeps/unix/sysv/linux/tile/configure.ac: Likewise.
	* sysdeps/unix/sysv/linux/tile/configure: Likewise.
	* README: Update reference to required Linux kernel version.
	* manual/install.texi (Linux): Update reference to required Linux
	kernel headers version.
	* INSTALL: Regenerated.
2014-04-30 15:41:03 +00:00
Carlos O'Donell
5abebba403 Relocate hppa from ports to libc. 2014-04-29 04:20:39 -04:00
David S. Miller
a059d359d8 Fix sigaction conform test failures on sparc.
* sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
	(struct sigaction): New struct member __glibc_reserved0, change
	type of sa_flags to int.
2014-04-22 17:47:12 -07:00
Will Newton
37d3500738 aarch64: Re-implement setcontext without rt_sigreturn syscall
The current implementation of setcontext uses rt_sigreturn to restore
the contents of registers. This contrasts with the way most other
architectures implement setcontext:

  powerpc64, mips, tile:

  Call rt_sigreturn if context was created by a call to a signal handler,
  otherwise restore in user code.

  powerpc32:

  Call swapcontext system call and don't call sigreturn or rt_sigreturn.

  x86_64, sparc, hppa, sh, ia64, m68k, s390, arm:

  Only support restoring "synchronous" contexts, that is contexts
  created by getcontext, and restoring in user code and don't call
  sigreturn or rt_sigreturn.

  alpha:

  Call sigreturn (but not rt_sigreturn) in all cases to do the restore.

The text of the setcontext manpage suggests that the requirement to be
able to restore a signal handler created context has been dropped from
SUSv2:

  If  the context was obtained by a call to a signal handler, then old
  standard text says that "program execution continues with the program
  instruction following the instruction interrupted by the signal".
  However, this sentence was removed in SUSv2, and the present verdict
  is "the result is unspecified".

Implementing setcontext by calling rt_sigreturn unconditionally causes
problems when used with sigaltstack as in BZ #16629. On this basis it
seems that aarch64 is broken and that new ports should only support
restoring contexts created with getcontext and do not need to call
rt_sigreturn at all.

This patch re-implements the aarch64 setcontext function to restore
the context in user code in a similar manner to x86_64 and other ports.

ChangeLog:

2014-04-17  Will Newton  <will.newton@linaro.org>

	[BZ #16629]
	* sysdeps/unix/sysv/linux/aarch64/setcontext.S (__setcontext):
	Re-implement to restore registers in user code and avoid
	rt_sigreturn system call.
2014-04-17 11:38:50 +01:00
Richard Henderson
ddb04724ed alpha: Remove alpha-linux pthread_once.c 2014-04-16 21:36:33 -07:00
Torvald Riegel
36875b06e0 Fixed and unified pthread_once.
[BZ #15215] This unifies various pthread_once architecture-specific
implementations which were using the same algorithm with slightly different
implementations.  It also adds missing memory barriers that are required for
correctness.
2014-04-11 15:54:19 +02:00
Adhemerval Zanella
01f8eac224 Move __PTHREAD_SPINS definition to architecture specific header
This patch moves the __PTHREAD_SPINS definition to arch specific header
since pthread_mutex_t layout is also arch specific.  This leads to no
need to defining __PTHREAD_MUTEX_HAVE_ELISION and thus removing of the
undefined compiler warning.
2014-04-09 06:41:44 -05:00
Adhemerval Zanella
7ffa942302 PowerPC: define _CALL_ELF if compiler does not
This patch makes the configure adds -D_CALL_ELF=1 when compiler does
not define _CALL_ELF (versions before powerpc64le support).  It cleans
up compiler warnings on old compiler where _CALL_ELF is not defined
on powerpc64(be) builds.

It does by add a new config.make variable for configure-deduced
CPPFLAGS and accumulate into that (confix-extra-cppflags).  It also
generalizes libc_extra_cflags so it accumulates in sysdeps configure
fragmenets.
2014-04-06 16:48:08 -05:00
Joseph Myers
47c5adebd2 Correct robust mutex / PI futex kernel assumptions (bug 9894).
This patch continues fixing __ASSUME_* issues in preparation for
moving to a 2.6.32 minimum kernel version by addressing assumptions on
robust mutex and PI futex support availability.  Those assumptions are
bug 9894, but to be clear this patch does not address all the issues
from that bug about wrong version assumptions, only those still
applicable for --enable-kernel=2.6.32 or later (with the expectation
that the move to that minimum kernel will obsolete the other parts of
the bug).  The patch is independent of
<https://sourceware.org/ml/libc-alpha/2014-03/msg00585.html>, my other
pending-review patch preparing for the kernel version change; the two
together complete all the changes I believe are needed in preparation
regarding any macro in sysdeps/unix/sysv/linux/kernel-features.h that
would be affected by such a change.  (I have not checked the
correctness of macros whose conditions are unaffected by such a
change, or macros only defined in other kernel-features.h files.)

As discussed in that bug, robust mutexes and PI futexes need
futex_atomic_cmpxchg_inatomic to be implemented, in addition to
certain syscalls needed for robust mutexes (and
architecture-independent kernel pieces for all the features in
question).  That is, as I understand it, they need
futex_atomic_cmpxchg_inatomic to *work* (not return an ENOSYS error).

The issues identified in my analysis relate to ARM, M68K, MicroBlaze,
MIPS and SPARC.

On ARM, whether futex_atomic_cmpxchg_inatomic works depends on the
kernel configuration.  As of 3.13, the condition for *not* working is
CONFIG_CPU_USE_DOMAINS && CONFIG_SMP.  As of 2.6.32 it was simply
CONFIG_SMP that meant the feature was not implemented.  I don't know
if there are any circumstances in which we can say "we can assume a
userspace glibc binary built with these options will never run on a
kernel with the problematic configuration", but at least for now I'm
just undefining the relevant __ASSUME_* macros for ARM.

On M68K, two of the three macros are undefined for kernels before
3.10, but as far as I can see __ASSUME_FUTEX_LOCK_PI is in the same
group needing futex_atomic_cmpxchg_inatomic support and so should be
undefined as well.

On MicroBlaze the required support was added in 2.6.33.

On MIPS, the support depends on cpu_has_llsc in the kernel - that is,
actual hardware LL/SC support (GCC and glibc for MIPS GNU/Linux rely
on the instructions being supported in some way, but it may be kernel
emulation; futex_atomic_cmpxchg_inatomic doesn't work with that
emulation).  The same condition as in GCC for indicating LL/SC support
may not be available is used for undefining the macros in glibc,
__mips == 1 || defined _MIPS_ARCH_R5900.  (Maybe we could in fact
desupport MIPS processors without the hardware support in glibc.)

On SPARC, 32-bit kernels don't support futex_atomic_cmpxchg_inatomic;
__arch64__ || __sparc_v9__ is used as the condition for binaries that
won't run on 32-bit kernels.

This patch is not tested beyond the sanity check of an x86_64 build.

	[BZ #9894]
	* sysdeps/unix/sysv/linux/kernel-features.h
	[__sparc__ && !__arch64__ && !__sparc_v9__]
	(__ASSUME_SET_ROBUST_LIST): Do not define.
	[__sparc__ && !__arch64__ && !__sparc_v9__]
	(__ASSUME_FUTEX_LOCK_PI): Likewise.
	[__sparc__ && !__arch64__ && !__sparc_v9__] (__ASSUME_REQUEUE_PI):
	Likewise.
	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	(__ASSUME_FUTEX_LOCK_PI): Undefine.
	(__ASSUME_REQUEUE_PI): Likewise.
	(__ASSUME_SET_ROBUST_LIST): Likewise.
	* sysdeps/unix/sysv/linux/m68k/kernel-features.h
	[__LINUX_KERNEL_VERSION < 0x030a00] (__ASSUME_FUTEX_LOCK_PI):
	Undefine.
	* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
	[__LINUX_KERNEL_VERSION < 0x020621] (__ASSUME_FUTEX_LOCK_PI):
	Likewise.
	[__LINUX_KERNEL_VERSION < 0x020621] (__ASSUME_REQUEUE_PI):
	Likewise.
	[__LINUX_KERNEL_VERSION < 0x020621] (__ASSUME_SET_ROBUST_LIST):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/kernel-features.h
	[__mips == 1 || _MIPS_ARCH_R5900] (__ASSUME_FUTEX_LOCK_PI):
	Undefine.
	[__mips == 1 || _MIPS_ARCH_R5900] (__ASSUME_REQUEUE_PI): Likewise.
	[__mips == 1 || _MIPS_ARCH_R5900] (__ASSUME_SET_ROBUST_LIST):
	Likewise.
2014-03-31 12:55:18 +00:00
Joseph Myers
d7a68734f7 Fix futimesat for older MicroBlaze kernels (bug 16648).
Continuing the fixes for __ASSUME_* issues in preparation for moving
to a 2.6.32 minimum kernel version, this *untested* patch fixes bug
16648, the definition of __ASSUME_ATFCTS meaning that the futimesat
syscall is assumed for all MicroBlaze kernels despite not being
present until 2.6.33.

__ASSUME_ATFCTS controls conditionals relating to a lot of different
syscalls in Linux-specific code (fstatat64 faccessat fchmodat fchownat
futimesat newfstatat linkat mkdirat openat readlinkat renameat
symlinkat unlinkat mknodat), where whether newfstatat fstatat64
futimesat are used depends on the architecture, as well as controlling
whether openat64_not_cancel_3 is expected to work in
sysdeps/posix/getcwd.c.  The assumptions are all OK as of 2.6.32
except for this MicroBlaze case, and it's generally desirable to get
rid of as many of the __ASSUME_ATFCTS conditionals as possible, to
simplify the code (the fallbacks include potential unbounded dynamic
stack allocations).  Thus, rather than the simplest approach of
undefining __ASSUME_ATFCTS for older kernels on MicroBlaze, this patch
takes the approach of using the linux-generic implementation of
futimesat for MicroBlaze kernels before 2.6.33 (all such kernels have
the utimensat syscall).

	[BZ #16648]
	* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020621] (__ASSUME_FUTIMESAT): Define.
	* sysdeps/unix/sysv/linux/microblaze/futimesat.c: New file.
2014-03-31 12:51:45 +00:00
Andreas Schwab
6da36183ee Fix use of uninitialized variable 2014-03-25 15:17:08 +01:00
Stefan Liebler
509361270b S390: Fix namespace violation in struct stat (BZ #16714). 2014-03-24 16:59:01 +01:00
Stefan Liebler
a2d86bf1ec S390: Correct type of sa_flags in struct sigaction for POSIX conformance
(BZ #16713).
2014-03-24 16:59:01 +01:00
Andreas Schwab
44152e4b05 Account for alloca use when collecting interface addresses (bug 16002)
To reproduce:

	# ip li add name dummy0 type dummy
	# site_id=$(head -c6 /dev/urandom | od -tx2 -An | tr ' ' ':')
	# for ((i = 0; i < 65536; i++)) do
	> ip ad ad $(printf fd80$site_id::%04x $i)/128 dev dummy0
	> done
	# (ulimit -s 900; getent ahosts localhost)
	# ip li de dummy0
2014-03-24 16:05:13 +01:00
Joseph Myers
1ca2d03e3e Fix -Wundef warnings for _ABI* on MIPS.
This patch fixes -Wundef warnings related to the _ABI* macros on MIPS.
GCC predefines only the _ABI* macro related to the ABI actually in
use, meaning that a conditional such as "#if _MIPS_SIM == _ABI64" is
true only for the ABI in question (all the macros are nonzero), but
produces a -Wundef warning for the other ABIs.  The normal approach to
using these macros is to include <sgidefs.h>, which ensures that all
three _ABI* macros are defined rather than just one; this patch does
so in the places that caused warnings (the bulk of the warnings
arising from <bits/wordsize.h>).  Tested that the warnings are fixed.

	* sysdeps/mips/bits/wordsize.h: Include <sgidefs.h>.
	* sysdeps/unix/sysv/linux/mips/getrlimit64.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/setrlimit64.c: Likewise.
2014-03-21 18:21:13 +00:00
Joseph Myers
b1115e916a Fix __ASSUME_PREADV and __ASSUME_PWRITEV for Alpha and MicroBlaze (bug 16649).
Reviewing (for all architectures, with a baseline kernel version of
2.6.32) the kernel support for features for which __ASSUME_* macros
would be affected by a move to 2.6.32 as minimum kernel version showed
up that __ASSUME_PREADV and __ASSUME_PWRITEV were wrongly defined for
MicroBlaze (despite the corresponding syscall table entries not being
wired up in the kernel) and Alpha for 2.6.30 and above (although the
support on Alpha was added in 2.6.33).  This patch makes the
kernel-features.h files undefine those macros for appropriate
versions.

	[BZ #16649]
	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
	[__LINUX_KERNEL_VERSION < 0x020621] (__ASSUME_PREADV): Undefine.
	[__LINUX_KERNEL_VERSION < 0x020621] (__ASSUME_PWRITEV): Likewise.
	* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
	(__ASSUME_PREADV): Undefine.
	(__ASSUME_PWRITEV): Likewise.
2014-03-19 13:10:52 +00:00
Roland McGrath
7d375303f2 Add comments about non-Linux use of bits/mman-linux.h. 2014-03-18 14:58:15 -07:00
Roland McGrath
0283ecca51 Move bits/mman-linux.h out of sysdeps/unix/sysv/linux/.
This way, non-Linux ports using the Linux values for bits/mman.h
constants need not duplicate the header.
2014-03-18 14:48:09 -07:00
Will Newton
fede7a5ffa aarch64: Remove inaccurate comment from sysdep.h
This comment appears to have been copied from the ARM port where it
makes more sense.

2014-03-18  Will Newton  <will.newton@linaro.org>

	* sysdeps/unix/sysv/linux/aarch64/sysdep.h: Remove
	inaccurate comment.
2014-03-18 11:50:39 +00:00
Joseph Myers
abe6d90cc8 Fix __ASSUME_PSELECT for MicroBlaze (bug 16642).
Reviewing (for all architectures, with a baseline kernel version of
2.6.32) the kernel support for features for which __ASSUME_* macros
would be affected by a move to 2.6.32 as minimum kernel version showed
up that __ASSUME_PSELECT was wrongly defined for MicroBlaze, despite
the corresponding syscall table entry not being wired up in the
MicroBlaze kernel.

This patch makes the MicroBlaze kernel-features.h undefine
__ASSUME_PSELECT.  I'd also encourage wiring it up in the kernel (so
you can then make this #undef conditional, and eventually obsolete
once a recent-enough kernel is required).  I suspect it wasn't wired
up because of the mistaken comment in asm/unistd.h "obsolete ->
sys_pselect7" (there is no such syscall as pselect7).

	[BZ #16642]
	* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
	(__ASSUME_PSELECT): Undefine.
2014-03-12 17:29:24 +00:00
Joseph Myers
5c7808498e Fix POSIX namespace for <bits/siginfo.h> (bug 16674).
<bits/siginfo.h> causes symbols ILL_*, FPE_*, SEGV_* BUS_*, CLD_*,
POLL_* and TRAP_* to be exposed in <signal.h> (and <sys/wait.h>), even
though those symbols are not in non-XSI POSIX before POSIX.1-2008 and
even in POSIX.1-2008 the TRAP_* symbols are XSI-only.  This patch
conditions the symbols appropriately in the various <bits/siginfo.h>
implementations (various <signal.h> and <sys/wait.h> conformtest
issues remain for standards other than POSIX (1995/6)).  Tested
x86_64.

	[BZ #16674]
	* bits/siginfo.h (ILL_ILLOPC): Condition on [__USE_XOPEN_EXTENDED
	|| __USE_XOPEN2K8].
	(ILL_ILLOPN): Likewise.
	(ILL_ILLADR): Likewise.
	(ILL_ILLTRP): Likewise.
	(ILL_PRVOPC): Likewise.
	(ILL_PRVREG): Likewise.
	(ILL_COPROC): Likewise.
	(ILL_BADSTK): Likewise.
	(FPE_INTDIV): Likewise.
	(FPE_INTOVF): Likewise.
	(FPE_FLTDIV): Likewise.
	(FPE_FLTOVF): Likewise.
	(FPE_FLTUND): Likewise.
	(FPE_FLTRES): Likewise.
	(FPE_FLTINV): Likewise.
	(FPE_FLTSUB): Likewise.
	(SEGV_MAPERR): Likewise.
	(SEGV_ACCERR): Likewise.
	(BUS_ADRALN): Likewise.
	(BUS_ADRERR): Likewise.
	(BUS_OBJERR): Likewise.
	(TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED].
	(TRAP_TRACE): Likewise.
	(CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED ||
	__USE_XOPEN2K8].
	(CLD_KILLED): Likewise.
	(CLD_DUMPED): Likewise.
	(CLD_TRAPPED): Likewise.
	(CLD_STOPPED): Likewise.
	(CLD_CONTINUED): Likewise.
	(POLL_IN): Likewise.
	(POLL_OUT): Likewise.
	(POLL_MSG): Likewise.
	(POLL_ERR): Likewise.
	(POLL_PRI): Likewise.
	(POLL_HUP): Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/siginfo.h (ILL_ILLOPC):
	Likewise.
	(ILL_ILLOPN): Likewise.
	(ILL_ILLADR): Likewise.
	(ILL_ILLTRP): Likewise.
	(ILL_PRVOPC): Likewise.
	(ILL_PRVREG): Likewise.
	(ILL_COPROC): Likewise.
	(ILL_BADSTK): Likewise.
	(FPE_INTDIV): Likewise.
	(FPE_INTOVF): Likewise.
	(FPE_FLTDIV): Likewise.
	(FPE_FLTOVF): Likewise.
	(FPE_FLTUND): Likewise.
	(FPE_FLTRES): Likewise.
	(FPE_FLTINV): Likewise.
	(FPE_FLTSUB): Likewise.
	(SEGV_MAPERR): Likewise.
	(SEGV_ACCERR): Likewise.
	(BUS_ADRALN): Likewise.
	(BUS_ADRERR): Likewise.
	(BUS_OBJERR): Likewise.
	(BUS_MCEERR_AR): Likewise.
	(BUS_MCEERR_AO): Likewise.
	(TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED].
	(TRAP_TRACE): Likewise.
	(CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED ||
	__USE_XOPEN2K8].
	(CLD_KILLED): Likewise.
	(CLD_DUMPED): Likewise.
	(CLD_TRAPPED): Likewise.
	(CLD_STOPPED): Likewise.
	(CLD_CONTINUED): Likewise.
	(POLL_IN): Likewise.
	(POLL_OUT): Likewise.
	(POLL_MSG): Likewise.
	(POLL_ERR): Likewise.
	(POLL_PRI): Likewise.
	(POLL_HUP): Likewise.
	* sysdeps/unix/sysv/linux/bits/siginfo.h (ILL_ILLOPC): Likewise.
	(ILL_ILLOPN): Likewise.
	(ILL_ILLADR): Likewise.
	(ILL_ILLTRP): Likewise.
	(ILL_PRVOPC): Likewise.
	(ILL_PRVREG): Likewise.
	(ILL_COPROC): Likewise.
	(ILL_BADSTK): Likewise.
	(FPE_INTDIV): Likewise.
	(FPE_INTOVF): Likewise.
	(FPE_FLTDIV): Likewise.
	(FPE_FLTOVF): Likewise.
	(FPE_FLTUND): Likewise.
	(FPE_FLTRES): Likewise.
	(FPE_FLTINV): Likewise.
	(FPE_FLTSUB): Likewise.
	(SEGV_MAPERR): Likewise.
	(SEGV_ACCERR): Likewise.
	(BUS_ADRALN): Likewise.
	(BUS_ADRERR): Likewise.
	(BUS_OBJERR): Likewise.
	(BUS_MCEERR_AR): Likewise.
	(BUS_MCEERR_AO): Likewise.
	(TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED].
	(TRAP_TRACE): Likewise.
	(CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED ||
	__USE_XOPEN2K8].
	(CLD_KILLED): Likewise.
	(CLD_DUMPED): Likewise.
	(CLD_TRAPPED): Likewise.
	(CLD_STOPPED): Likewise.
	(CLD_CONTINUED): Likewise.
	(POLL_IN): Likewise.
	(POLL_OUT): Likewise.
	(POLL_MSG): Likewise.
	(POLL_ERR): Likewise.
	(POLL_PRI): Likewise.
	(POLL_HUP): Likewise.
	* sysdeps/unix/sysv/linux/ia64/bits/siginfo.h (ILL_ILLOPC):
	Likewise.
	(ILL_ILLOPN): Likewise.
	(ILL_ILLADR): Likewise.
	(ILL_ILLTRP): Likewise.
	(ILL_PRVOPC): Likewise.
	(ILL_PRVREG): Likewise.
	(ILL_COPROC): Likewise.
	(ILL_BADSTK): Likewise.
	(ILL_BADIADDR): Likewise.
	(ILL_BREAK): Likewise.
	(FPE_INTDIV): Likewise.
	(FPE_INTOVF): Likewise.
	(FPE_FLTDIV): Likewise.
	(FPE_FLTOVF): Likewise.
	(FPE_FLTUND): Likewise.
	(FPE_FLTRES): Likewise.
	(FPE_FLTINV): Likewise.
	(FPE_FLTSUB): Likewise.
	(FPE_DECOVF): Likewise.
	(FPE_DECDIV): Likewise.
	(FPE_DECERR): Likewise.
	(FPE_INVASC): Likewise.
	(FPE_INVDEC): Likewise.
	(SEGV_MAPERR): Likewise.
	(SEGV_ACCERR): Likewise.
	(SEGV_PSTKOVF): Likewise.
	(BUS_ADRALN): Likewise.
	(BUS_ADRERR): Likewise.
	(BUS_OBJERR): Likewise.
	(BUS_MCEERR_AR): Likewise.
	(BUS_MCEERR_AO): Likewise.
	(TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED].
	(TRAP_TRACE): Likewise.
	(TRAP_BRANCH): Likewise.
	(TRAP_HWBKPT): Likewise.
	(CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED ||
	__USE_XOPEN2K8].
	(CLD_KILLED): Likewise.
	(CLD_DUMPED): Likewise.
	(CLD_TRAPPED): Likewise.
	(CLD_STOPPED): Likewise.
	(CLD_CONTINUED): Likewise.
	(POLL_IN): Likewise.
	(POLL_OUT): Likewise.
	(POLL_MSG): Likewise.
	(POLL_ERR): Likewise.
	(POLL_PRI): Likewise.
	(POLL_HUP): Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/siginfo.h (ILL_ILLOPC): Likewise.
	(ILL_ILLOPN): Likewise.
	(ILL_ILLADR): Likewise.
	(ILL_ILLTRP): Likewise.
	(ILL_PRVOPC): Likewise.
	(ILL_PRVREG): Likewise.
	(ILL_COPROC): Likewise.
	(ILL_BADSTK): Likewise.
	(FPE_INTDIV): Likewise.
	(FPE_INTOVF): Likewise.
	(FPE_FLTDIV): Likewise.
	(FPE_FLTOVF): Likewise.
	(FPE_FLTUND): Likewise.
	(FPE_FLTRES): Likewise.
	(FPE_FLTINV): Likewise.
	(FPE_FLTSUB): Likewise.
	(SEGV_MAPERR): Likewise.
	(SEGV_ACCERR): Likewise.
	(BUS_ADRALN): Likewise.
	(BUS_ADRERR): Likewise.
	(BUS_OBJERR): Likewise.
	(BUS_MCEERR_AR): Likewise.
	(BUS_MCEERR_AO): Likewise.
	(TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED].
	(TRAP_TRACE): Likewise.
	(CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED ||
	__USE_XOPEN2K8].
	(CLD_KILLED): Likewise.
	(CLD_DUMPED): Likewise.
	(CLD_TRAPPED): Likewise.
	(CLD_STOPPED): Likewise.
	(CLD_CONTINUED): Likewise.
	(POLL_IN): Likewise.
	(POLL_OUT): Likewise.
	(POLL_MSG): Likewise.
	(POLL_ERR): Likewise.
	(POLL_PRI): Likewise.
	(POLL_HUP): Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/siginfo.h (ILL_ILLOPC): Likewise.
	(ILL_ILLOPN): Likewise.
	(ILL_ILLADR): Likewise.
	(ILL_ILLTRP): Likewise.
	(ILL_PRVOPC): Likewise.
	(ILL_PRVREG): Likewise.
	(ILL_COPROC): Likewise.
	(ILL_BADSTK): Likewise.
	(FPE_INTDIV): Likewise.
	(FPE_INTOVF): Likewise.
	(FPE_FLTDIV): Likewise.
	(FPE_FLTOVF): Likewise.
	(FPE_FLTUND): Likewise.
	(FPE_FLTRES): Likewise.
	(FPE_FLTINV): Likewise.
	(FPE_FLTSUB): Likewise.
	(SEGV_MAPERR): Likewise.
	(SEGV_ACCERR): Likewise.
	(BUS_ADRALN): Likewise.
	(BUS_ADRERR): Likewise.
	(BUS_OBJERR): Likewise.
	(BUS_MCEERR_AR): Likewise.
	(BUS_MCEERR_AO): Likewise.
	(TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED].
	(TRAP_TRACE): Likewise.
	(CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED ||
	__USE_XOPEN2K8].
	(CLD_KILLED): Likewise.
	(CLD_DUMPED): Likewise.
	(CLD_TRAPPED): Likewise.
	(CLD_STOPPED): Likewise.
	(CLD_CONTINUED): Likewise.
	(POLL_IN): Likewise.
	(POLL_OUT): Likewise.
	(POLL_MSG): Likewise.
	(POLL_ERR): Likewise.
	(POLL_PRI): Likewise.
	(POLL_HUP): Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/siginfo.h (ILL_ILLOPC): Likewise.
	(ILL_ILLOPN): Likewise.
	(ILL_ILLADR): Likewise.
	(ILL_ILLTRP): Likewise.
	(ILL_PRVOPC): Likewise.
	(ILL_PRVREG): Likewise.
	(ILL_COPROC): Likewise.
	(ILL_BADSTK): Likewise.
	(FPE_INTDIV): Likewise.
	(FPE_INTOVF): Likewise.
	(FPE_FLTDIV): Likewise.
	(FPE_FLTOVF): Likewise.
	(FPE_FLTUND): Likewise.
	(FPE_FLTRES): Likewise.
	(FPE_FLTINV): Likewise.
	(FPE_FLTSUB): Likewise.
	(SEGV_MAPERR): Likewise.
	(SEGV_ACCERR): Likewise.
	(BUS_ADRALN): Likewise.
	(BUS_ADRERR): Likewise.
	(BUS_OBJERR): Likewise.
	(BUS_MCEERR_AR): Likewise.
	(BUS_MCEERR_AO): Likewise.
	(TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED].
	(TRAP_TRACE): Likewise.
	(CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED ||
	__USE_XOPEN2K8].
	(CLD_KILLED): Likewise.
	(CLD_DUMPED): Likewise.
	(CLD_TRAPPED): Likewise.
	(CLD_STOPPED): Likewise.
	(CLD_CONTINUED): Likewise.
	(POLL_IN): Likewise.
	(POLL_OUT): Likewise.
	(POLL_MSG): Likewise.
	(POLL_ERR): Likewise.
	(POLL_PRI): Likewise.
	(POLL_HUP): Likewise.
	* sysdeps/unix/sysv/linux/tile/bits/siginfo.h (ILL_ILLOPC): Likewise.
	(ILL_ILLOPN): Likewise.
	(ILL_ILLADR): Likewise.
	(ILL_ILLTRP): Likewise.
	(ILL_PRVOPC): Likewise.
	(ILL_PRVREG): Likewise.
	(ILL_COPROC): Likewise.
	(ILL_BADSTK): Likewise.
	(ILL_DBLFLT): Likewise.
	(ILL_HARDWALL): Likewise.
	(FPE_INTDIV): Likewise.
	(FPE_INTOVF): Likewise.
	(FPE_FLTDIV): Likewise.
	(FPE_FLTOVF): Likewise.
	(FPE_FLTUND): Likewise.
	(FPE_FLTRES): Likewise.
	(FPE_FLTINV): Likewise.
	(FPE_FLTSUB): Likewise.
	(SEGV_MAPERR): Likewise.
	(SEGV_ACCERR): Likewise.
	(BUS_ADRALN): Likewise.
	(BUS_ADRERR): Likewise.
	(BUS_OBJERR): Likewise.
	(BUS_MCEERR_AR): Likewise.
	(BUS_MCEERR_AO): Likewise.
	(TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED].
	(TRAP_TRACE): Likewise.
	(CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED ||
	__USE_XOPEN2K8].
	(CLD_KILLED): Likewise.
	(CLD_DUMPED): Likewise.
	(CLD_TRAPPED): Likewise.
	(CLD_STOPPED): Likewise.
	(CLD_CONTINUED): Likewise.
	(POLL_IN): Likewise.
	(POLL_OUT): Likewise.
	(POLL_MSG): Likewise.
	(POLL_ERR): Likewise.
	(POLL_PRI): Likewise.
	(POLL_HUP): Likewise.
	* sysdeps/unix/sysv/linux/x86/bits/siginfo.h (ILL_ILLOPC): Likewise.
	(ILL_ILLOPN): Likewise.
	(ILL_ILLADR): Likewise.
	(ILL_ILLTRP): Likewise.
	(ILL_PRVOPC): Likewise.
	(ILL_PRVREG): Likewise.
	(ILL_COPROC): Likewise.
	(ILL_BADSTK): Likewise.
	(FPE_INTDIV): Likewise.
	(FPE_INTOVF): Likewise.
	(FPE_FLTDIV): Likewise.
	(FPE_FLTOVF): Likewise.
	(FPE_FLTUND): Likewise.
	(FPE_FLTRES): Likewise.
	(FPE_FLTINV): Likewise.
	(FPE_FLTSUB): Likewise.
	(SEGV_MAPERR): Likewise.
	(SEGV_ACCERR): Likewise.
	(BUS_ADRALN): Likewise.
	(BUS_ADRERR): Likewise.
	(BUS_OBJERR): Likewise.
	(BUS_MCEERR_AR): Likewise.
	(BUS_MCEERR_AO): Likewise.
	(TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED].
	(TRAP_TRACE): Likewise.
	(CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED ||
	__USE_XOPEN2K8].
	(CLD_KILLED): Likewise.
	(CLD_DUMPED): Likewise.
	(CLD_TRAPPED): Likewise.
	(CLD_STOPPED): Likewise.
	(CLD_CONTINUED): Likewise.
	(POLL_IN): Likewise.
	(POLL_OUT): Likewise.
	(POLL_MSG): Likewise.
	(POLL_ERR): Likewise.
	(POLL_PRI): Likewise.
	(POLL_HUP): Likewise.
	* conform/Makefile (test-xfail-POSIX/signal.h/conform): Remove.
	(test-xfail-POSIX/sys/wait.h/conform): Likewise.
2014-03-07 23:57:56 +00:00
Joseph Myers
67737b8f07 Don't define __ASSUME_UTIMES for linux-generic architectures.
The __ASSUME_UTIMES macro describes whether the utimes syscall is
present.  For linux-generic architectures, it isn't (utimensat is
instead), so the macro should not be defined for them; this patch
removes the spurious definitions for such architectures.  (Those
definitions don't actually cause any user-visible bug, because
futimes.c doesn't use __ASSUME_UTIMES if __ASSUME_UTIMENSAT is
defined, and futimesat.c and utimes.c are overridden for
linux-generic, but the definitions are still logically incorrect.)

	* sysdeps/unix/sysv/linux/aarch64/kernel-features.h
	(__ASSUME_UTIMES): Remove.
	* sysdeps/unix/sysv/linux/tile/kernel-features.h
	(__ASSUME_UTIMES): Likewise.
2014-03-06 14:13:18 +00:00
Joseph Myers
acd7f096d7 Complete _BSD_SOURCE / _SVID_source followup cleanup.
This patch completes the headers cleanup consequent on removal of
_BSD_SOURCE and _SVID_SOURCE (apart from any subsequent deprecations):

* #endif conditionals that referred to BSD or SVID are updated.

* Redundant __USE_* tests in cases involving __USE_MISC are removed.
  This includes cases such as __USE_MISC || __USE_ISOC99, where
  __USE_MISC is redundant (because __USE_MISC is only ever defined in
  the default / _DEFAULT_SOURCE / _GNU_SOURCE case, when __USE_ISOC99
  is also defined; the same applies to the non-XSI-extended POSIX
  versions), and cases involving __USE_GNU, where __USE_GNU is
  redundant (because if __USE_GNU is defined, so are the other __USE_*
  macros).  There may well be other cases of __USE_FOO || __USE_BAR
  tests that could be simplified because one macro implies the other;
  this patch only addresses cases involving __USE_MISC.

Tested x86_64.

	* bits/fcntl.h [__USE_MISC]: Remove redundant conditionals.
	* bits/sigaction.h [__USE_MISC]: Likewise.
	* bits/waitstatus.h: Update #endif comments.
	* ctype/ctype.h: Likewise.
	* dirent/dirent.h: Likewise.
	[__USE_MISC]: Remove redundant conditionals.
	* grp/grp.h: Update #endif comments.
	[__USE_GNU]: Remove redundant conditionals.
	[__USE_MISC]: Likewise.
	* inet/netinet/in.h [__USE_GNU]: Likewise.
	* io/sys/stat.h [__USE_MISC]: Likewise.
	* libio/bits/stdio-ldbl.h [__USE_MISC]: Likewise.
	* libio/bits/stdio.h: Update #endif comments.
	[__USE_MISC]: Remove redundant conditionals.
	* libio/bits/stdio2.h [__USE_MISC]: Likewise.
	* libio/stdio.h: Update #endif comments.
	[__USE_MISC]: Remove redundant conditionals.
	* math/bits/math-finite.h [__USE_MISC]: Likewise.
	* math/bits/mathcalls.h [__USE_MISC]: Likewise.
	* math/math.h: Update #else and #endif comments.
	[__USE_MISC]: Remove redundant conditionals.
	* misc/sys/uio.h: Update #endif comments.
	* posix/bits/unistd.h [__USE_MISC]: Remove redundant conditionals.
	* posix/glob.h [__USE_MISC]: Likewise.
	* posix/sys/types.h: Update #endif comments.
	[__USE_MISC]: Remove redundant conditionals.
	* posix/sys/wait.h: Update #endif comments.
	[__USE_MISC]: Remove redundant conditionals.
	* posix/unistd.h: Update #endif comments.
	[__USE_MISC]: Remove redundant conditionals.
	* pwd/pwd.h [__USE_GNU]: Likewise.
	[__USE_MISC]: Likewise.
	* resolv/netdb.h [__USE_GNU]: Likewise.
	* signal/signal.h: Update #endif comments.
	[__USE_MISC]: Remove redundant conditionals.
	* stdlib/stdlib.h: Update #else and #endif comments.
	[__USE_MISC]: Remove redundant conditionals.
	[__USE_GNU]: Likewise.
	* string/bits/string2.h [__USE_MISC]: Likewise.
	* string/string.h: Update #endif comments.
	[__USE_MISC]: Remove redundant conditionals.
	* sysdeps/m68k/m680x0/fpu/bits/mathinline.h [__USE_MISC]:
	Likewise.
	* sysdeps/mach/hurd/bits/fcntl.h [__USE_MISC]: Likewise.
	* sysdeps/mach/hurd/bits/stat.h [__USE_MISC]: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/sigaction.h [__USE_MISC]:
	Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/stat.h [__USE_MISC]:
	Likewise.
	* sysdeps/unix/sysv/linux/bits/fcntl-linux.h: Update #endif
	comments.
	[__USE_MISC]: Remove redundant conditionals.
	* sysdeps/unix/sysv/linux/bits/in.h [__USE_GNU]: Likewise.
	* sysdeps/unix/sysv/linux/bits/sigaction.h [__USE_MISC]: Likewise.
	* sysdeps/unix/sysv/linux/bits/socket.h [__USE_GNU]: Likewise.
	* sysdeps/unix/sysv/linux/bits/stat.h [__USE_MISC]: Likewise.
	* sysdeps/unix/sysv/linux/ia64/bits/sigaction.h [__USE_MISC]:
	Likewise.
	* sysdeps/unix/sysv/linux/m68k/bits/stat.h [__USE_MISC]: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/sigaction.h [__USE_MISC]:
	Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/stat.h [__USE_MISC]: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/stat.h [__USE_MISC]:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/sigaction.h [__USE_MISC]:
	Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/stat.h [__USE_MISC]: Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/sigaction.h [__USE_MISC]:
	Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/stat.h [__USE_MISC]:
	Likewise.
	* sysdeps/unix/sysv/linux/x86/bits/stat.h [__USE_MISC]: Likewise.
	* sysdeps/x86/bits/string.h: Update #endif comments.
	* sysdeps/x86/fpu/bits/mathinline.h [__USE_MISC]: Remove redundant
	conditionals.
	* time/sys/time.h: Update #endif comments.
	* time/time.h: Likewise.
	[__USE_MISC]: Remove redundant conditionals.
2014-02-21 21:45:26 +00:00
Joseph Myers
bc688c1029 Fix __ASSUME_SENDMMSG issues (bug 16611).
Similar to the issues for accept4 and recvmmsg, __ASSUME_SENDMMSG is
also confused about whether it relates to function availability or
socketcall operation availability, and the conditions for the
definition are always wrong (sendmmsg appeared in Linux kernel 3.0,
not 2.6.39); this is now bug 16611.

This patch splits the macro into separate macros like those for
accept4 and recvmmsg, defining them for appropriate kernel versions.

Tested x86_64, including that disassembly of the installed shared
libraries is unchanged by this patch.

	[BZ #16611]
	* sysdeps/unix/sysv/linux/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030000 && __ASSUME_SOCKETCALL]
	(__ASSUME_SENDMMSG_SOCKETCALL): Define.
	[__LINUX_KERNEL_VERSION >= 0x030000 && (__i386__ || __x86_64__ ||
	__powerpc__ || __sh__ || __sparc__)] (__ASSUME_SENDMMSG_SYSCALL):
	Likewise.
	[__i386__ || __powerpc__ || __sh__ || __sparc__]
	(__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
	[__ASSUME_SENDMMSG_SOCKETCALL || __ASSUME_SENDMMSG_SYSCALL]
	(__ASSUME_SENDMMSG): Define instead of using previous
	[__LINUX_KERNEL_VERSION >= 0x020627] condition.
	* sysdeps/unix/sysv/linux/aarch64/kernel-features.h
	(__ASSUME_SENDMMSG_SYSCALL): Define.
	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030200] (__ASSUME_SENDMMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030000] (__ASSUME_SENDMMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/ia64/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030000] (__ASSUME_SENDMMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/internal_sendmmsg.S [__ASSUME_SOCKETCALL
	&& !__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL &&
	!__ASSUME_SENDMMSG_SYSCALL] (__NR_sendmmsg): Undefine.
	[__ASSUME_SENDMMSG]: Change conditionals to
	[__ASSUME_SENDMMSG_SOCKETCALL].
	* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030300] (__ASSUME_SENDMMSG_SYSCALL):
	Define.
	* sysdeps/unix/sysv/linux/mips/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030100] (__ASSUME_SENDMMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/sendmmsg.c [__ASSUME_SOCKETCALL &&
	!__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL &&
	!__ASSUME_SENDMMSG_SYSCALL] (__NR_sendmmsg): Undefine.
	[!__ASSUME_SENDMMSG]: Change conditional to
	[!__ASSUME_SENDMMSG_SOCKETCALL].
	* sysdeps/unix/sysv/linux/tile/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030000] (__ASSUME_SENDMMSG_SYSCALL):
	Define.

	* sysdeps/unix/sysv/linux/hppa/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030100] (__ASSUME_SENDMMSG_SYSCALL):
	Define.
2014-02-20 17:55:35 +00:00
Joseph Myers
0e31b18ca2 Fix __ASSUME_RECVMMSG issues (bug 16610).
Similar to the issues for accept4, __ASSUME_RECVMMSG is also confused
about whether it relates to function availability or socketcall
operation availability; this is now bug 16610.

Nothing actually tests __ASSUME_RECVMMSG for function availability,
but implicit in the definition in kernel-features.h is the idea that
it makes sense when the syscall is available and socketcall is not
being used.  As with accept4, there are architectures where the
syscall was added later than the socketcall operation, meaning that
assuming glibc is built with recent enough kernel headers, it does not
attempt to use socketcall for these operations and __ASSUME_RECVMMSG
gets defined for kernels >= 2.6.33 even when the syscall was only
added later.

This patch splits the macro into separate macros like those used for
accept4; having similar macro structure in both cases (and for
sendmmsg once I've dealt with that) seems likely to be less confusing
than having a different structure on the basis of nothing actually
needing to assume the recvmmsg function works.  Appropriate
definitions are added for all architectures.

Architecture-specific note: Tile's kernel-features.h says "TILE glibc
support starts with 2.6.36", which is accurate in that 2.6.36 was the
first kernel version with Tile support, and on that basis I've made
that header define __ASSUME_RECVMMSG_SYSCALL unconditionally.
However, Tile's configure.ac has arch_minimum_kernel=2.6.32.  Since
arch_minimum_kernel is meant to reflect only kernel.org kernel
versions, I think that should change to 2.6.36.  (If using glibc with
kernel versions from before a port went in kernel.org, it's your
responsibility to change arch_minimum_kernel in a local patch, and at
the same time to adjust any __ASSUME_* definitions that may not be
correct for your older kernel; for developing the official glibc it
should only ever be necessary to consider what official kernel.org
releases support.)

Tested x86_64, including that disassembly of the installed shared
libraries is unchanged by this patch.

	[BZ #16610]
	* sysdeps/unix/sysv/linux/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020621 && __ASSUME_SOCKETCALL]
	(__ASSUME_RECVMMSG_SOCKETCALL): Define.
	[(__LINUX_KERNEL_VERSION >= 0x020621 && (__i386__ || __x86_64__ ||
	__sparc__)) || (__LINUX_KERNEL_VERSION >= 0x020625 && (__powerpc__
	|| __sh__))] (__ASSUME_RECVMMSG_SYSCALL): Likewise.
	[__i386__ || __sparc__]
	(__ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
	[__ASSUME_RECVMMSG_SOCKETCALL || __ASSUME_RECVMMSG_SYSCALL]
	(__ASSUME_RECVMMSG): Define instead of using previous
	[__LINUX_KERNEL_VERSION >= 0x020621] condition.
	* sysdeps/unix/sysv/linux/aarch64/kernel-features.h
	(__ASSUME_RECVMMSG_SYSCALL): Define.
	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020621] (__ASSUME_RECVMMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020621] (__ASSUME_RECVMMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/ia64/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020621] (__ASSUME_RECVMMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/internal_recvmmsg.S [__ASSUME_SOCKETCALL
	&& !__ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL &&
	!__ASSUME_RECVMMSG_SYSCALL] (__NR_recvmmsg): Undefine.
	[__ASSUME_RECVMMSG]: Change condition to
	[__ASSUME_RECVMMSG_SOCKETCALL].
	* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020621] (__ASSUME_RECVMMSG_SYSCALL):
	Define.
	(__ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
	* sysdeps/unix/sysv/linux/mips/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020621] (__ASSUME_RECVMMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/recvmmsg.c [__ASSUME_SOCKETCALL &&
	!__ASSUME_RECVMMSG_SYSCALL_WITH_SOCKETCALL &&
	!__ASSUME_RECVMMSG_SYSCALL] (__NR_recvmmsg): Undefine.
	[!__ASSUME_RECVMMSG]: Change condition to
	[!__ASSUME_RECVMMSG_SOCKETCALL].
	* sysdeps/unix/sysv/linux/tile/kernel-features.h
	(__ASSUME_RECVMMSG_SYSCALL): Define.

	* sysdeps/unix/sysv/linux/hppa/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x020622] (__ASSUME_RECVMMSG_SYSCALL):
	Define.
2014-02-20 17:53:08 +00:00
Joseph Myers
dd481ccffd Fix __ASSUME_ACCEPT4 issues (bug 16609).
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-20 17:50:31 +00:00
Joseph Myers
5d7b57cad5 Update ARM HWCAP data.
This patch updates the ARM HWCAP data (both bits/hwcap.h and
dl-procinfo.[ch]) to match Linux 3.13.

	* sysdeps/unix/sysv/linux/arm/bits/hwcap.h (HWCAP_ARM_VFPD32): New
	macro.
	(HWCAP_ARM_LPAE): Likewise.
	(HWCAP_ARM_EVTSTRM): Likewise.
	* sysdeps/unix/sysv/linux/arm/dl-procinfo.c (_dl_arm_cap_flags):
	Add vpfd32, lpae and evtstrm.
	* sysdeps/unix/sysv/linux/arm/dl-procinfo.h (_DL_HWCAP_COUNT):
	Increase to 22.
2014-02-20 03:29:34 +00:00
David Holsgrove
ef114eafbf [MicroBlaze]: Move MicroBlaze from ports to sysdeps.
2014-02-17  David Holsgrove <david.holsgrove@xilinx.com>

        * sysdeps/microblaze: Move directory from ports/sysdeps/microblaze.
        * sysdeps/unix/sysv/linux/microblaze: Move directory from
          ports/sysdeps/unix/sysv/linux/microblaze.
        * README: Add missing listing for microblaze*-*-linux-gnu.

Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
2014-02-17 11:08:21 +10:00
Mike Frysinger
c70a4b1db0 ia64: relocate out of ports/ subdir 2014-02-16 01:12:38 -05:00
Joseph Myers
498afc54df Combine __USE_BSD and __USE_SVID into __USE_MISC.
This patch cleans up following the obsoletion of _BSD_SOURCE and
_SVID_SOURCE by combining __USE_BSD and __USE_SVID into __USE_MISC.

The only non-mechanical part of this patch is the changes to
features.h; everything else is simple substitution of __USE_MISC for
the old macros.  Thus, this patch leaves obviously redundant
conditionals such as "defined __USE_MISC || defined __USE_MISC", and
does not update #endif comments where they referred to BSD or SVID in
words instead of the literal macro name.  This is intended to
facilitate patch review by separating the less mechanical changes from
these purely mechanical changes into a separate patch.  (I do intend
to integrate all the changes from
<https://sourceware.org/ml/libc-alpha/2013-12/msg00226.html>, which I
believe includes all the trailing comment updates, in subsequent
patches.)

Tested x86_64.

	* include/features.h (__USE_BSD): Remove macro definitions.
	(__USE_SVID): Likewise.
	(_BSD_SOURCE): Likewise.
	(_SVID_SOURCE): Likewise.
	[!defined _BSD_SOURCE && !defined _SVID_SOURCE]: Remove condition
	from definition of _DEFAULT_SOURCE.
	[_BSD_SOURCE || _SVID_SOURCE]: Change condition to
	[_DEFAULT_SOURCE].
	* bits/fcntl.h [__USE_BSD]: Change condition to [__USE_MISC].
	* bits/mman.h [__USE_BSD]: Likewise.
	* bits/termios.h [__USE_BSD]: Likewise.
	* bits/waitstatus.h [__USE_BSD]: Likewise.
	* ctype/ctype.h [__USE_SVID]: Likewise.
	* dirent/dirent.h [__USE_BSD]: Likewise.
	* grp/grp.h [__USE_SVID]: Likewise.
	[__USE_BSD]: Likewise.
	* inet/netinet/igmp.h [__USE_BSD]: Likewise.
	* io/fcntl.h [__USE_BSD]: Likewise.
	* io/ftw.h [__USE_BSD]: Likewise.
	* io/sys/stat.h [__USE_BSD]: Likewise.
	* libio/bits/stdio-ldbl.h [__USE_BSD]: Likewise.
	* libio/bits/stdio2.h [__USE_BSD]: Likewise.
	* libio/stdio.h [__USE_SVID]: Likewise.
	[__USE_BSD]: Likewise.
	* math/math.h [__USE_SVID]: Likewise.
	[__USE_BSD]: Likewise.
	* misc/bits/syslog-ldbl.h [__USE_BSD]: Likewise.
	* misc/bits/syslog.h [__USE_BSD]: Likewise.
	* misc/search.h [__USE_SVID]: Likewise.
	* misc/sys/mman.h [__USE_BSD]: Likewise.
	* misc/sys/syslog.h [__USE_BSD]: Likewise.
	* misc/sys/uio.h [__USE_BSD]: Likewise.
	* posix/bits/unistd.h [__USE_BSD]: Likewise.
	* posix/glob.h [__USE_BSD]: Likewise.
	* posix/regex.h [__USE_BSD]: Likewise.
	* posix/sys/types.h [__USE_BSD]: Likewise.
	[__USE_SVID]: Likewise.
	* posix/sys/utsname.h [__USE_SVID]: Likewise.
	* posix/sys/wait.h [__USE_BSD]: Likewise.
	[__USE_SVID]: Likewise.
	* posix/unistd.h [__USE_BSD]: Likewise.
	[__USE_SVID]: Likewise.
	* pwd/pwd.h [__USE_SVID]: Likewise.
	* resolv/netdb.h [__USE_BSD]: Likewise.
	* setjmp/setjmp.h [__USE_BSD]: Likewise.
	* signal/signal.h [__USE_BSD]: Likewise.
	[__USE_SVID]: Likewise.
	* socket/sys/socket.h [__USE_BSD]: Likewise.
	* stdlib/fmtmsg.h [__USE_SVID]: Likewise.
	* stdlib/stdlib.h [__USE_BSD]: Likewise.
	[__USE_SVID]: Likewise.
	* string/bits/string2.h [__USE_BSD]: Likewise.
	[__USE_SVID]: Likewise.
	* string/bits/string3.h [__USE_BSD]: Likewise.
	* string/endian.h [__USE_BSD]: Likewise.
	* string/string.h [__USE_SVID]: Likewise.
	[__USE_BSD]: Likewise.
	* string/strings.h [__USE_BSD]: Likewise.
	* sysdeps/generic/netinet/ip.h [__USE_BSD]: Likewise.
	* sysdeps/gnu/netinet/ip_icmp.h [__USE_BSD]: Likewise.
	* sysdeps/mach/hurd/bits/fcntl.h [__USE_BSD]: Likewise.
	* sysdeps/mach/hurd/bits/stat.h [__USE_BSD]: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/mman.h [__USE_BSD]: Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/termios.h [__USE_BSD]:
	Likewise.
	* sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_BSD]:
	Likewise.
	* sysdeps/unix/sysv/linux/bits/mman-linux.h [__USE_BSD]: Likewise.
	* sysdeps/unix/sysv/linux/bits/sys_errlist.h [__USE_BSD]:
	Likewise.
	* sysdeps/unix/sysv/linux/bits/termios.h [__USE_BSD]: Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/termios.h [__USE_BSD]:
	Likewise.
	* sysdeps/unix/sysv/linux/netinet/if_ether.h [__USE_BSD]:
	Likewise.
	* sysdeps/unix/sysv/linux/netinet/if_fddi.h [__USE_BSD]: Likewise.
	* sysdeps/unix/sysv/linux/netinet/if_tr.h [__USE_BSD]: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/bits/termios.h [__USE_BSD]:
	Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/termios.h [__USE_BSD]:
	Likewise.
	* sysdeps/x86/bits/string.h [__USE_BSD]: Likewise.
	* sysvipc/sys/ipc.h [__USE_SVID]: Likewise.
	* termios/termios.h [__USE_BSD]: Likewise.
	* time/sys/time.h [__USE_BSD]: Likewise.
	* time/time.h [__USE_BSD]: Likewise.
	[__USE_SVID]: Likewise.

	* sysdeps/unix/sysv/linux/hppa/bits/mman.h [__USE_BSD]: Change
	condition to [__USE_MISC].
2014-02-12 23:41:01 +00:00
Richard Henderson
68b7efaadb Relocate alpha from ports to libc
Also fixed the following whitespace nits to satisfy the push:

sysdeps/alpha/alphaev6/memset.S:142: space before tab in indent.
sysdeps/alpha/configure:1: new blank line at EOF.
sysdeps/alpha/fpu/e_sqrt.c:126: space before tab in indent.
sysdeps/alpha/preconfigure:1: new blank line at EOF.
sysdeps/unix/sysv/linux/alpha/syscalls.list:1: new blank line at EOF.
2014-02-12 07:00:06 -08:00
Marcus Shawcroft
75eff3fe90 Relocate AArch64 from ports to libc.
This patch moves the AArch64 port to the main sysdeps hierarchy.  The
move is essentially:

  git mv ports/sysdeps/aarch64 sysdeps/aarch64
  git mv ports/sysdeps/unix/sysv/linux/aarch64 sysdeps/unix/sysv/linux/aarch64

The README is updated and I've updated ChangeLog.aarch64 along the
lines of the ARM move.  The AArch64 build has been tested to confirm
that there were no changes in objdump -dr output or the shared
objects.
2014-02-11 11:36:00 +00:00
Joseph Myers
2ad7600be7 Move mips from ports to libc.
I've moved the MIPS port from ports to the main sysdeps hierarchy.
Beyond the README update, the move of the files was simply

git mv ports/sysdeps/mips sysdeps/mips
git mv ports/sysdeps/unix/mips sysdeps/unix/mips
git mv ports/sysdeps/unix/sysv/linux/mips sysdeps/unix/sysv/linux/mips

and in addition to the ChangeLog entries here, I put a note at the top
of ports/ChangeLog.mips similar to those in other files.

Tested that disassembly of installed shared libraries for mips is the
same before and after this patch (except for ld.so where paths in
assertions are involved, as for arm).

	* sysdeps/mips: Move directory from ports/sysdeps/mips.
	* sysdeps/unix/mips: Move directory from ports/sysdeps/unix/mips.
	* sysdeps/unix/sysv/linux/mips: Move directory from
	ports/sysdeps/unix/sysv/linux/mips.
	* README: Update listing for mips-*-linux-gnu and
	mips64-*-linux-gnu.

	* sysdeps/mips: Move directory to ../sysdeps/mips.
	* sysdeps/unix/mips: Move directory to ../sysdeps/unix/mips.
	* sysdeps/unix/sysv/linux/mips: Move directory to
	../sysdeps/unix/sysv/linux/mips.
2014-02-10 23:30:21 +00:00
Andreas Schwab
3d15ff74fa Whitespace fixes 2014-02-10 20:24:03 +01:00
Andreas Schwab
73588a7223 Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
Chris Metcalf
4372980f58 Move tilegx, tilepro, and linux-generic from ports to libc.
I've moved the TILE-Gx and TILEPro ports to the main sysdeps hierarchy,
along with the linux-generic ports infrastructure.  Beyond the README
update, the move was just

    git mv ports/sysdeps/tile sysdeps/tile
    git mv ports/sysdeps/unix/sysv/linux/tile \
      sysdeps/unix/sysv/linux/tile
    git mv ports/sysdeps/unix/sysv/linux/generic \
      sysdeps/unix/sysv/linux/generic

I updated the relevant ChangeLogs along the lines of the ARM move
in commit c6bfe5c4d7 and tested the 64-bit tilegx build to confirm that
there were no changes in "objdump -dr" output in the shared objects.
2014-02-10 11:04:39 -05:00
Ondřej Bílka
a1ffb40e32 Use glibc_likely instead __builtin_expect. 2014-02-10 15:07:12 +01:00
Mike Frysinger
d674667cba shm_open: sync with logic in sem_open
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2014-02-08 08:17:16 -05:00
Mike Frysinger
7c70f2272e linux: bits/in.h: sync with latest kernel headers
This pulls in the latest defines for {g,s}etsockopt.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2014-02-08 06:49:56 -05:00
Mike Frysinger
8da79b60ae linux_fsinfo.h: sync with current linux/magic.h
Import the current list of defines available in the kernel headers.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2014-02-08 06:39:10 -05:00
Joseph Myers
4ac049e1c9 Fix whitespace in ARM files to allow move. 2014-02-08 01:52:38 +00:00
Joseph Myers
c6bfe5c4d7 Move arm from ports to libc.
I've moved the ARM port from ports to the main sysdeps hierarchy.
Beyond the README update, the move of the files was simply

git mv ports/sysdeps/arm sysdeps/arm
git mv ports/sysdeps/unix/arm sysdeps/unix/arm
git mv ports/sysdeps/unix/sysv/linux/arm sysdeps/unix/sysv/linux/arm

and in addition to the ChangeLog entries here, I put a note at the top
of ports/ChangeLog.arm similar to that at the top of
ChangeLog.powerpc.  There is deliberately no NEWS change, as I think
it makes the most sense to put in a general note above all ports
having moved if we can achieve that for 2.20.

Tested that disassembly of installed shared libraries for arm is the
same before and after this patch, except for data (not instructions)
in ld.so (there are assertions in sysdeps/arm/dl-machine.h, and the
path by which that file is found, and so by which it appears in the
assertion message, changes as a result of the move).

	* sysdeps/arm: Move directory from ports/sysdeps/arm.
	* sysdeps/unix/arm: Move directory from ports/sysdeps/unix/arm.
	* sysdeps/unix/sysv/linux/arm: Move directory from
	ports/sysdeps/unix/sysv/linux/arm.
	* README: Update listing for arm-*-linux-gnueabi.

ports/ChangeLog.arm:
	* sysdeps/arm: Move directory to ../sysdeps/arm.
	* sysdeps/unix/arm: Move directory to ../sysdeps.arm.
	* sysdeps/unix/sysv/linux/arm: Move directory to
	../sysdeps/unix/sysv/linux/arm.
2014-02-08 01:49:39 +00:00
Allan McRae
bf06bcee84 Revert "Patch [1/4] async-signal safe TLS."
This reverts commit 69a17d9d24.
2014-02-06 08:46:20 +10:00
Carlos O'Donell
27e839f6f0 Fix comment in kernel-features.h.
Use "was" not "were."
2014-02-05 10:33:42 -05:00
Carlos O'Donell
f877c4f2bf Fix tst-setgetname for Linux kernels < 2.6.33.
Support for /proc/self/task/$tid/comm as added in Linux 2.6.33,
therefore since the test tst-setgetname relies on this functionality
to operate we must skip the test in kernels < 2.6.33. We wrap the
checks with __ASSUME_PROC_PID_TASK_COMM such that in the future when
we move arch_minimum_kernel to 2.6.33 we can remove this code.
2014-02-05 10:13:11 -05:00
Adhemerval Zanella
c01603f763 PowerPC: powerpc64le abilist for 2.17
This patch is the abifiles for powerpc64le based on GLIBC 2.17.
2014-02-04 09:49:34 -02:00