Continuing the removal of the obsolete INTDEF / INTVARDEF / INTUSE
mechanism, this patch replaces its use for __libc_enable_secure with
the use of rtld_hidden_data_def and rtld_hidden_proto.
Tested for x86_64 that installed stripped shared libraries are
unchanged by the patch.
[BZ #14132]
* elf/dl-sysdep.c (__libc_enable_secure): Use rtld_hidden_data_def
instead of INTVARDEF.
(_dl_sysdep_start): Do not use INTUSE with __libc_enable_secure.
* sysdeps/mach/hurd/dl-sysdep.c (__libc_enable_secure): Use
rtld_hidden_data_def instead of INTVARDEF.
(_dl_sysdep_start): Do not use INTUSE with __libc_enable_secure.
* elf/dl-deps.c (expand_dst): Likewise.
* elf/dl-load.c (_dl_dst_count): Likewise.
(_dl_dst_substitute): Likewise.
(decompose_rpath): Likewise.
(_dl_init_paths): Likewise.
(open_path): Likewise.
(_dl_map_object): Likewise.
* elf/rtld.c (dl_main): Likewise.
(process_dl_audit): Likewise.
(process_envvars): Likewise.
* include/unistd.h [IS_IN_rtld] (__libc_enable_secure_internal):
Remove declaration.
(__libc_enable_secure): Use rtld_hidden_proto.
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 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.
If e.g. a signal is being received while we are running fork(), the signal
thread may be having our SS lock when we make the space copy, and thus in the
child we can not take the SS lock any more.
* sysdeps/mach/hurd/fork.c (__fork): Lock SS->lock around __proc_dostop call.
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
The PAGE_COPY_THRESHOLD macro is meant to be overridden by
architecture-specific pagecopy.h, but it is currently done only by
mach; all other architectures use the default. Check to see if the
macro is defined in addition to whether it is set to a non-zero value.
As discussed in
<https://sourceware.org/ml/libc-alpha/2012-04/msg00840.html> and
<https://sourceware.org/ml/libc-alpha/2012-04/msg00989.html>, it seems
appropriate to flatten sysdeps/unix/bsd/bsd4.4 into sysdeps/unix/bsd.
The bulk of the patch is just moving files. The only other changes
are: update paths in sysdeps/mach/hurd/Implies and
sysdeps/unix/sysv/linux/wait3.c; merge the two syscalls.list files,
with the removal of syscalls that were in
sysdeps/unix/bsd/syscalls.list but overridden in the bsd4.4 directory
by .c files there.
Tested x86_64. The installed shared libraries are identical before
and after the patch except for libc.so where the move of wait3.c
(included by sysdeps/unix/sysv/linux/wait3.c) affects debug info, but
the disassembly is unchanged.
* sysdeps/mach/hurd/Implies: Change unix/bsd/bsd4.4 to unix/bsd.
* sysdeps/unix/bsd/syscalls.list (chflags): Add entry from
sysdeps/unix/bsd/bsd4.4/syscalls.list.
(fchflags): Likewise.
(revoke): Likewise.
(setlogin): Likewise.
(sigaltstack): Likewise.
(wait4): Likewise.
(sigblock): Remove.
(sigsetmask): Likewise.
(wait3): Likewise.
(waitpid): Likewise.
* sysdeps/unix/bsd/bsd4.4/syscalls.list: Remove file.
* sysdeps/unix/sysv/linux/wait3.c: Update directory of included
file.
* sysdeps/unix/bsd/bsd4.4/Makefile: Move to ...
* sysdeps/unix/bsd/Makefile: ... here.
* sysdeps/unix/bsd/bsd4.4/Versions: Move to ...
* sysdeps/unix/bsd/Versions: ... here.
* sysdeps/unix/bsd/bsd4.4/bits/sockaddr.h: Move to ...
* sysdeps/unix/bsd/bits/sockaddr.h: ... here.
* sysdeps/unix/bsd/bsd4.4/cmsg_nxthdr.c: Move to ...
* sysdeps/unix/bsd/cmsg_nxthdr.c: ... here.
* sysdeps/unix/bsd/bsd4.4/sigblock.c: Move to ...
* sysdeps/unix/bsd/sigblock.c: ... here.
* sysdeps/unix/bsd/bsd4.4/sigsetmask.c: Move to ...
* sysdeps/unix/bsd/sigsetmask.c: ... here.
* sysdeps/unix/bsd/bsd4.4/sigvec.c: Move to ...
* sysdeps/unix/bsd/sigvec.c: ... here.
* sysdeps/unix/bsd/bsd4.4/tcdrain.c: Move to ...
* sysdeps/unix/bsd/tcdrain.c: ... here.
* sysdeps/unix/bsd/bsd4.4/tcgetattr.c: Move to ...
* sysdeps/unix/bsd/tcgetattr.c: ... here.
* sysdeps/unix/bsd/bsd4.4/tcsetattr.c: Move to ...
* sysdeps/unix/bsd/tcsetattr.c: ... here.
* sysdeps/unix/bsd/bsd4.4/wait.c: Move to ...
* sysdeps/unix/bsd/wait.c: ... here.
* sysdeps/unix/bsd/bsd4.4/wait3.c: Move to ...
* sysdeps/unix/bsd/wait3.c: ... here.
* sysdeps/unix/bsd/bsd4.4/waitpid.c: Move to ...
* sysdeps/unix/bsd/waitpid.c: ... here.
Autoconf has been deprecating configure.in for quite a long time.
Rename all our configure.in and preconfigure.in files to .ac.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This define was removed from the rest of the tree eight years ago.
ChangeLog:
2013-09-24 Will Newton <will.newton@linaro.org>
* sysdeps/mach/hurd/i386/tls.h (TLS_INIT_TP_EXPENSIVE): Remove
macro.
ptsname_r on failure returns the value that is also set as errno; furthermore,
add more checks to it:
- set errno and return it on __term_get_peername failure
- set errno to ERANGE other than returning it
- change the type of PEERNAME to string_t, and check its length with __strnlen
In ptsname:
- change the type of PEERNAME to string_t
- do not set errno manually, since ptsname_r has set it already