33270 Commits

Author SHA1 Message Date
Adhemerval Zanella
83d6db8187 i386: Fix i386 sigaction sa_restorer initialization (BZ#21269)
This patch fixes the i386 sa_restorer field initialization for sigaction
syscall for kernel with vDSO.  As described in bug report, i386 Linux
(and compat on x86_64) interprets SA_RESTORER clear with nonzero
sa_restorer as a request for stack switching if the SS segment is 'funny'.
This means that anything that tries to mix glibc's signal handling with
segmentation (for instance through modify_ldt syscall) is randomly broken
depending on what values lands in sa_restorer.

The testcase added  is based on Linux test tools/testing/selftests/x86/ldt_gdt.c,
more specifically in do_multicpu_tests function.  The main changes are:

  - C11 atomics instead of plain access.

  - Remove x86_64 support which simplifies the syscall handling and fallbacks.

  - Replicate only the test required to trigger the issue.

Checked on i686-linux-gnu.

	[BZ #21269]
	* sysdeps/unix/sysv/linux/i386/Makefile (tests): Add tst-bz21269.
	* sysdeps/unix/sysv/linux/i386/sigaction.c (SET_SA_RESTORER): Clear
	sa_restorer for vDSO case.
	* sysdeps/unix/sysv/linux/i386/tst-bz21269.c: New file.

(cherry picked from commit 68448be208ee06e76665918b37b0a57e3e00c8b4)
2017-11-17 16:04:29 -02:00
Andreas Schwab
bc7cdeb7f0 Fix multiple definitions of __nss_*_database (bug 22918)
(cherry picked from commit eaf6753f8aac33a36deb98c1031d1bad7b593d2d)
2018-03-02 23:07:14 +01:00
DJ Delorie
9a21941968 [BZ #22342] Fix netgroup cache keys.
Unlike other nscd caches, the netgroup cache contains two types of
records - those for "iterate through a netgroup" (i.e. setnetgrent())
and those for "is this user in this netgroup" (i.e. innetgr()),
i.e. full and partial records.  The timeout code assumes these records
have the same key for the group name, so that the collection of records
that is "this netgroup" can be expired as a unit.

However, the keys are not the same, as the in-netgroup key is generated
by nscd rather than being passed to it from elsewhere, and is generated
without the trailing NUL.  All other keys have the trailing NUL, and as
noted in the linked BZ, debug statements confirm that two keys for the
same netgroup are added to the cache with two different lengths.

The result of this is that as records in the cache expire, the purge
code only cleans out one of the two types of entries, resulting in
stale, possibly incorrect, and possibly inconsistent cache data.

The patch simply includes the existing NUL in the computation for the
key length ('key' points to the char after the NUL, and 'group' to the
first char of the group, so 'key-group' includes the first char to the
NUL, inclusive).

	[BZ #22342]
	* nscd/netgroupcache.c (addinnetgrX): Include trailing NUL in
	key value.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
(cherry picked from commit 1c81d55fc4b07b51adf68558ba74ce975153e580)
2018-03-01 23:20:45 -05:00
Dmitry V. Levin
fbac9a26b2 linux/powerpc: sync sys/ptrace.h with Linux 4.15 [BZ #22433, #22807]
Tested with strace.

* sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h (__ptrace_request): Add
PTRACE_GETREGS, PTRACE_SETREGS, PTRACE_GETFPREGS, PTRACE_SETFPREGS,
PTRACE_GETVRREGS, PTRACE_SETVRREGS, PTRACE_GETEVRREGS,
PTRACE_SETEVRREGS, PTRACE_GETREGS64, PTRACE_SETREGS64,
PTRACE_GET_DEBUGREG, PTRACE_SET_DEBUGREG, PTRACE_GETVSRREGS,
PTRACE_SETVSRREGS, and PTRACE_SINGLEBLOCK.

(cherry picked from commit f5f473a9d0e8fdbede858fa1ef0d01d12142367b)
2018-02-10 23:19:32 +00:00
Tulio Magno Quites Machado Filho
3d67bc8070 powerpc: Undefine Linux ptrace macros that conflict with __ptrace_request
Linux ptrace headers define macros whose tokens conflict with the
constants of enum __ptrace_request causing build errors when
asm/ptrace.h or linux/ptrace.h are included before sys/ptrace.h.

	* sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h: Undefine Linux
	macros used in __ptrace_request.

Signed-off-by: Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
(cherry picked from commit 398c6fddafcee2dc4c2b2574417a2d0cfccaeec1)
2018-02-26 10:40:17 -03:00
Mike FABIAN
3e6bbf417e Add missing "reorder-end" in LC_COLLATE of et_EE [BZ #22517]
[BZ #22517]
	* localedata/locales/et_EE (LC_COLLATE): add missing "reorder-end"

(cherry picked from commit 7ec5f9465e732e668d0dc94ac078ba68056d6d0a)
2018-02-19 21:59:30 +01:00
Rical Jasan
e157ee6889 Fix a typo in a comment.
* io/fcntl.h: Fix a typo in a comment.

(cherry picked from commit 0d217f4082473e5fdca87831df928dd525a02f72)
2018-02-21 04:00:03 -08:00
Rical Jasan
064c0ff384 manual: Update the _ISOC99_SOURCE description.
The current description refers to ISO C99 not being widely adopted,
which it is believed to be now.

	* manual/creature.texi (_ISOC99_SOURCE): Update the dated
	description.

(cherry picked from commit e8d190b9ed81a1b342f0969bc2b5505403183bce)
2018-02-19 04:32:35 -08:00
Rical Jasan
438b279674 manual: Document missing feature test macros.
Several feature test macros are documented in features.h but absent in
the manual, and some documented macros accept undocumented values.
This commit updates the manual to mention all the accepted macros,
along with any values that hold special meaning.

	* manual/creature.texi (_POSIX_C_SOURCE): Document special
	values of 199606L, 200112L, and 200809L.
	(_XOPEN_SOURCE): Document special values of 600 and 700.
	(_ISOC11_SOURCE): Document macro.
	(_ATFILE_SOURCE): Likewise.
	(_FORTIFY_SOURCE): Likewise.

(cherry picked from commit 6a3962c4a408e8cbc305d2433711196107374e89)
(cherry picked from commit da81ae645d8ee89052f109c814a68a9489f562e6)
2018-02-19 03:30:06 -08:00
Dmitry V. Levin
8044d7c6f7 NEWS: add entries for bugs 22919 and 22926 2018-03-08 23:30:56 +00:00
Aurelien Jarno
4d1ae634e6 sparc32: Add nop before __startcontext to stop unwinding [BZ #22919]
On sparc32 tst-makecontext fails, as backtrace called within a context
created by makecontext to yield infinite backtrace.

Fix that the same way than nios2 by adding a nop just before
__startcontext. This is needed as otherwise FDE lookup just repeatedly
finds __setcontext's FDE in an infinite loop, due to the convention of
using 'address - 1' for FDE lookup.

Changelog:
	[BZ #22919]
	* sysdeps/unix/sysv/linux/sparc/sparc32/setcontext.S (__startcontext):
	Add nop before __startcontext, add explaining comments.

(cherry picked from commit 9aa5c222b9e0409143410a02b6364a3b25dbf028)
2018-03-09 00:14:27 +01:00
Adhemerval Zanella
f109026488 powerpc: Fix TLE build for SPE (BZ #22926)
Some SPE opcodes clashes with some recent PowerISA opcodes and
until recently gas did not complain about it.  However binutils
recently changed it and now VLE configured gas does not support to
assembler some instruction that might class with VLE (HTM for
instance).  It also does not help that glibc build hardware lock
elision support as default (regardless of assembler support).

Although runtime will not actually enables TLE on SPE hardware
(since kernel will not advertise it), I see little advantage on
adding HTM support on SPE built glibc.  SPE uses an incompatible
ABI which does not allow share the same build with default
powerpc and HTM code slows down SPE without any benefict.

This patch fixes it by only building HTM when SPE configuration
is not used.

Checked with a powerpc-linux-gnuspe build. I also did some sniff
tests on a e500 hardware without any issue.

	[BZ #22926]
	* sysdeps/powerpc/powerpc32/sysdep.h (ABORT_TRANSACTION_IMPL): Define
	empty for __SPE__.
	* sysdeps/powerpc/sysdep.h (ABORT_TRANSACTION): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/elision-lock.c (__lll_lock_elision):
	Do not build hardware transactional code for __SPE__.
	* sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
	(__lll_trylock_elision): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
	(__lll_unlock_elision): Likewise.

Cherry-pick from e921c89e01389161c036ec09112da6e18aeaa688.
2018-03-05 14:46:24 -03:00
Rical Jasan
0c5e931cc0 manual: Improve documentation of get_current_dir_name. [BZ #6889]
This is a minor rewording to clarify the behaviour of
get_current_dir_name.  Additionally, the @vindex is moved above the
@deftypefun so that following links give a better result with regard
to context.

	[BZ #6889]
	* manual/filesys.texi (get_current_dir_name): Clarify
	behaviour.

(cherry picked from commit 7d15ef84f50a80cb170f8ce3457010f59e221cb8)
2018-02-16 08:47:20 -08:00
Rical Jasan
eea71a3beb manual: Fix a syntax error.
The opening parenthesis for function arguments in an @deftypefun need
to be separated from the function name.  This isn't just a matter of
the GNU coding style---it causes the "(void" (in this case) to be
rendered as a part of the function name, causing a visual defect, and
also results in a warning to the following effect during `make pdf':

  Warning: unbalanced parentheses in @def...)

	* manual/platform.texi (__riscv_flush_icache): Fix @deftypefun
	syntax.

(cherry picked from commit 16efad5171ac1ac2c8728405f2703045f08c494b)
2018-02-16 08:21:47 -08:00
Rical Jasan
a888c9b8b4 manual: Fix Texinfo warnings about improper node names.
A number of cross-references to the GCC info manual cause Texinfo
warnings; e.g.:

  ./creature.texi:11: warning: @xref node name should not contain `.'

This is due to "gcc.info" being used in the INFO-FILE-NAME (fourth)
argument.  Changing it to "gcc" removes these warnings.  (Manually
confirmed equivalent behaviour for make info, html, and pdf.)

	* manual/creature.texi: Convert references to gcc.info to gcc.
	* manual/stdio.texi: Likewise.
	* manual/string.texi: Likewise.

(cherry picked from commit 1f6676d7da1b7c864e9a5d59fe9162a88bd21952)
2018-01-24 01:03:38 -08:00
Aurelien Jarno
3db5e60013 Fix posix/tst-glob_lstat_compat on alpha [BZ #22818]
The tst-glob_lstat_compat test needs to run tests on the previous
version of glob. On alpha, there are three versions of glob, GLIBC_2.0,
GLIBC_2.1 and GLIBC_2.27, while on other architectures there are only
the GLIBC_2.0 and GLIBC_2.27 version. Therefore on alpha the previous
version is GLIBC_2.1 and not GLIBC_2.0.

Changelog:
	[BZ #22818]
	* posix/tst-glob_lstat_compat.c [__alpha__] (glob): Access
	the GLIBC_2.1 version.

(cherry picked from commit f8d79582896c52cc2b50bdd030a3ec27ef23b587)
2018-02-18 18:23:14 +01:00
Sean McKean
a573a314d4 time: Reference CLOCKS_PER_SEC in clock comment [BZ #22735]
(cherry picked from commit 09e56b9e18f987105e39768f907db800e9330930)
2018-02-02 11:59:31 +01:00
Dmitry V. Levin
2d66557e88 linux/aarch64: sync sys/ptrace.h with Linux 4.15 [BZ #22433]
Remove compat-specific constants that were never exported by kernel
headers under these names.  Before linux commit v3.7-rc1~16^2~1 they
were exported with COMPAT_ prefix, and since that commit they are not
exported at all.

* sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h (__ptrace_request):
Remove arm-specific PTRACE_GET_THREAD_AREA, PTRACE_GETHBPREGS,
and PTRACE_SETHBPREGS.

(cherry picked from commit 2fd4bbaa1446f1be700e10c526cf585a796c4991)
2017-12-29 23:19:32 +00:00
Dmitry V. Levin
28def2cb11 NEWS: add an entry for bug 22827 2018-02-06 09:31:30 +00:00
Adhemerval Zanella
002eeb4cda Update SH libm-tests-ulps
* sysdeps/sh/libm-test-ulps: Update.

Signed-off-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2018-02-14 14:03:13 -02:00
DJ Delorie
6cb1736f3a [RISC-V] Fix parsing flags in ELF64 files.
When ldconfig reads Elf64 files to determine the ABI, it used the
Elf32 type, so read the wrong location, and stored the wrong ABI
type in the cache, making the cache useless.  This patch uses
an Elf64 type for Elf64 objects instead.

Note that pre-patch caches might need to be manually removed and
regenerated to get the correct ABIs stored.

	[BZ #22827]
	* sysdeps/unix/sysv/linux/riscv/readelflib.c (process_elf_file): Use
	64-bit ELF type for 64-bit ELF objects.

(cherry picked from commit 6a1ff640dcec04905d8518983ad6252d38b7a733)
2018-02-09 18:37:15 -05:00
Stan Shebs
2f60855711 Second try at dealing with ancient mktemp 2018-05-11 12:54:53 -07:00
Stan Shebs
58f9551f5b Defeat a malloc optimization by declaring things volatile. 2018-05-09 11:28:09 -07:00
Stan Shebs
40513af8ad Forestall optimization-out of a buffer. 2018-05-09 11:26:35 -07:00
Stan Shebs
903b7aed7c Add a clang/lld workaround for symbol not being overridden 2018-05-09 11:25:42 -07:00
Stan Shebs
090479eb8c Work around clang mishandling of assert functions in resolver buffer allocation, fixes random error returns in resolv/ tests. 2018-04-20 14:44:54 -07:00
Manuel Klimek
8254ee748c Allow suppressing the definition of __USE_FILE_OFFSET64 by defining SUPPRESS_USE_FILE_OFFSET64 in the CROSSTOOL. 2015-10-29 10:29:55 -07:00
Paul Pluzhnikov
8205f0d10e For b/5836136, do dlsym(0, "_Unwind..."), i.e. ignore libgcc_s.so.1 dlopen failure. 2014-03-03 17:03:35 -08:00
Stan Shebs
60548afc9f Define __GOOGLE_GRTE_VERSION__ 2018-03-29 14:05:07 -07:00
Stan Shebs
d57236debc Add basic testsuite for dlopen_with_offset 2018-03-29 11:48:37 -07:00
Stan Shebs
641cae4c36 Add a hunk lost in merge 2018-03-28 20:31:52 -07:00
Stan Shebs
349ff1d0d5 Fix GCC compilation issues in cherrypicks 2018-03-28 19:31:45 -07:00
Paul Pluzhnikov
476f7cf2f2 For b/22641205, #include _itoa.h 2015-10-10 09:26:54 -07:00
Paul Pluzhnikov
85dc56b95f For b/20141439, don't add "foo.so" as alternate name for previously loaded "foo.so/@0x..." 2015-10-02 07:31:16 -07:00
Paul Pluzhnikov
60cdb6bb4e For b/8315591, b/20141439 correct off-by-one error that resulted in last byte of l_name being random garbage. 2015-06-03 08:58:35 -07:00
Paul Pluzhnikov
cf93513721 Fix arm build by only using _itoa when building ld-linux, and not 'sln'. Also disable __google_dlopen_with_offset in fully-static link 2014-11-23 18:12:56 -08:00
Paul Pluzhnikov
6f9557ac2e For b/18243822, fix dlopen_with_offset to not reuse the same link_map entry when called on the same file with different offsets. 2014-11-10 10:56:25 -08:00
Paul Pluzhnikov
9590be9960 For Google b/8315591, experimental implementation of dlopen_with_offset. 2014-03-10 14:02:07 -07:00
Paul Pluzhnikov
8eb1716c91 Disable static linking warning for dlopen and dlmopen, and disable linking warning for sys_errlist and sys_nerr. 2014-02-28 16:51:12 -08:00
Brooks Moses
1a771e688f Backport cl/98967227 to GRTE glibc 2.19 sources. 2015-08-14 22:32:51 -07:00
Stan Shebs
31caad179b Add empty NSS borg and cache abi lists, to make testsuite work 2018-03-19 11:04:23 -07:00
Stan Shebs
d5adfa3af5 Fix out-of-date bits in EXEC_ORIGIN patch 2018-03-19 09:41:11 -07:00
Brooks Moses
496eb9854c For b/12342355, remove inappropriate assert in EXEC_ORIGIN support. 2014-04-11 13:37:15 -07:00
Paul Pluzhnikov
502932b7f5 For b/4074041, add EXEC_ORIGIN support. Forward-ported from cl/56955623 and http://cl/59961863. 2014-03-08 15:12:52 -08:00
Stan Shebs
21c2ca10b1 Handle a not-found case in borg passwd lookup 2016-11-03 16:31:52 -07:00
Michael Rothwell
4e15d3291c Call the correct function. 2016-09-30 09:46:48 -07:00
Michael Rothwell
f098d7ac4c Augment borg-pwd to also search through passwd.borg.base, if it exists. 2016-09-30 06:09:04 -07:00
Stan Shebs
aeca36379f Describe borg-pwd better, remove dead code. 2015-08-21 14:50:53 -07:00
Max Kanat-Alexander
b5861b06a6 Update nss_cache.c and nss_cache.h to current upstream version. This makes getgrgid_r and similar calls over 18x faster on corp machines. 2016-07-06 14:47:51 -07:00
Stan Shebs
b06c649991 Update an include path 2018-03-14 08:17:45 -07:00