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.
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.
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.
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.
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.
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.
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.
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].
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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>
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>
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.