Commit Graph

28236 Commits

Author SHA1 Message Date
H.J. Lu afd176d6cf Replace -Wno-error with -fno-builtin-lround 2014-12-19 08:32:05 -08:00
Torvald Riegel a4a43a907c i386: Move futex functions from lowlevellock.h to lowlevellock-futex.h. 2014-12-19 15:27:35 +01:00
Torvald Riegel 76f71081cd Use generic lowlevellock-futex.h in x86_64 lowlevellock.h. 2014-12-19 15:21:12 +01:00
Torvald Riegel 6b814909b4 sh: Remove custom lowlevellock, barrier, condvar, and rwlock implementations. 2014-12-19 15:20:37 +01:00
H.J. Lu 9cd4d4abdc Compile s_llround.c with -Wno-error for x32 build
Since x32 returns 32-bit long int and 64-bit long long int in the
same 64-bit register, we make the 32b-bit lround an alias of the
64-bit llround.  Add -Wno-error for x32 build to silence the compiler.
2014-12-19 05:39:34 -08:00
H.J. Lu c9c1a2d02c Replace 1L with (mp_limb_t) 1
X86-64 and x32 use sysdeps/i386/ldbl2mpn.c.  res_ptr is a pointer
to mp_limb_t, which is long for i386 and x86-64 and long long for
x32.  On x32, I got

../sysdeps/x86_64/../i386/ldbl2mpn.c: In function ‘__mpn_extract_long_double’:
../sysdeps/x86_64/../i386/ldbl2mpn.c:72:4: error: left shift count >= width of type [-Werror]
    res_ptr[N - 1] &= ~(1L << ((LDBL_MANT_DIG - 1) % BITS_PER_MP_LIMB));
    ^
cc1: all warnings being treated as errors

This patch replaces 1L with (mp_limb_t) 1.  Verified on x32, i686 and
x86-64 with GCC 4.8.3.
2014-12-19 05:32:39 -08:00
Allan McRae e54db0ea6a Label CVE-2014-9402 in NEWS 2014-12-18 11:01:43 +10:00
Roland McGrath dd6904541f NPTL: Move fork state variables to initializer files. 2014-12-17 14:33:28 -08:00
Roland McGrath 74eb826cff NPTL: Remove gratuitous Linuxisms from gai_misc.h. 2014-12-17 14:07:18 -08:00
Roland McGrath c9ce306b9c Fix stub __if_freenameindex build error. 2014-12-17 13:22:41 -08:00
Roland McGrath af102d9529 Remove explicit inline on malloc perturb functions. 2014-12-17 10:41:28 -08:00
Joseph Myers ea41469b7a Fix profil_counter namespace (bug 17725).
On ARM, where profil_counter is not static, it is brought in by
references to various standard functions, as noted in
<https://sourceware.org/ml/libc-alpha/2014-11/msg00890.html>, although
it is not a standard function itself.  I don't know if this also
causes test failures on SPARC, although I see no reason for it not to
do so.

This patch fixes this namespace issue.  profil_counter is renamed to
__profil_counter and made a weak alias on ARM and SPARC.  Because of
the uses in profil.c / sprofil.c it seems simplest to make the rename
globally, including on the other architectures for which
profil_counter was static and so the change is of no substance.  The
variant names profil_counter_* used in sprofil.c are also renamed to
start with __ so that undesired function names do not get exported in
static libc.

As I noted in bug 17726, profil_counter should probably be a compat
symbol on ARM and SPARC, so it wouldn't exist at all in static libc
even as a weak alias.  Since defining a compat symbol still requires
an internal name as a target of an alias, this patch still seems
reasonable as an intermediate step towards that goal: it wouldn't be
possible for the function simply to be static profil_counter on ARM
and SPARC with profil_counter also being the exported compat symbol
name, so profil.c / sprofil.c would still need to be prepared to call
the function under another name (here, __profil_counter).

Tested for x86_64 (testsuite, and that stripped installed shared
libraries are unchanged by the patch) and ARM (ABI and linknamespace
tests - this patch reduces the number of linknamespace failures I see
on ARM from 227 to 5, the residue being math.h failures for fe*
functions and for j0l/j1n/jnl/y0l/y1l/ynl aliases).

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

	[BZ #17725]
	* sysdeps/generic/profil-counter.h (profil_counter): Rename to
	__profil_counter.
	* sysdeps/unix/sysv/linux/hppa/profil-counter.h (profil_counter):
	Likewise.
	* sysdeps/unix/sysv/linux/i386/profil-counter.h (profil_counter):
	Likewise.
	* sysdeps/unix/sysv/linux/ia64/profil-counter.h (profil_counter):
	Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h
	(profil_counter): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/profil-counter.h
	(profil_counter): Likewise.
	* sysdeps/unix/sysv/linux/sh/profil-counter.h (profil_counter):
	Likewise.
	* sysdeps/unix/sysv/linux/tile/profil-counter.h (profil_counter):
	Likewise.
	* sysdeps/unix/sysv/linux/x86_64/profil-counter.h
	(profil_counter): Likewise.
	* sysdeps/unix/sysv/linux/arm/profil-counter.h (profil_counter):
	Likewise.
	[!__profil_counter] (profil_counter): Define as weak alias of
	__profil_counter.
	* sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h
	(profil_counter): Rename to __profil_counter.
	[!__profil_counter] (profil_counter): Define as weak alias of
	__profil_counter.
	* sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h
	(profil_counter): Rename to __profil_counter.
	[!__profil_counter] (profil_counter): Define as weak alias of
	__profil_counter.
	* sysdeps/posix/profil.c: Update comment referring to
	profil_counter.
	(__profil): Use __profil_counter instead of profil_counter.
	* sysdeps/posix/sprofil.c (profil_counter): Rename to
	__profil_counter.  Use __profil_counter_ushort and
	__profil_counter_uint in definitions.
	(__sprofil): Use __profil_counter_uint and __profil_counter_ushort
	instead of profil_counter_uint and profil_counter_ushort.
2014-12-17 18:10:37 +00:00
Joseph Myers 8ac5a76a99 Fix resolver inet_* namespace (bug 17722).
Parts of the resolver brought in by pthreads (at least) use inet_*
functions that aren't in the 1995/6 edition of POSIX that introduced
pthreads (or in one case, use __inet_aton which is then defined in the
same file as non-weak inet_addr).  This patch fixes this by making the
affected functions into weak alias for __inet_* and using those names
in the problematic resolver code.

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

	[BZ #17722]
	* inet/inet_mkadr.c (inet_makeaddr): Rename to __inet_makeaddr and
	define as weak alias of __inet_makeaddr.
	* resolv/inet_addr.c (inet_addr): Rename to __inet_addr and define
	as weak alias of __inet_addr.
	* resolv/inet_pton.c (inet_pton): Rename to __inet_pton and define
	as weak alias of __inet_pton.  Use libc_hidden_weak.
	* include/arpa/inet.h (__inet_pton): Declare.  Use
	libc_hidden_proto.
	(inet_makeaddr): Don't use libc_hidden_proto.
	(__inet_makeaddr): Declare.  Use libc_hidden_proto.
	* resolv/res_init.c (__res_vinit): Use __inet_pton instead of
	inet_pton.  Use __inet_makeaddr instead of inet_makeaddr.
	* conform/Makefile (test-xfail-POSIX/pthread.h/linknamespace):
	Remove variable.
	(test-xfail-POSIX/sched.h/linknamespace): Likewise.
	(test-xfail-POSIX/time.h/linknamespace): Likewise.
2014-12-17 18:09:11 +00:00
Steve Ellcey 66ce3cb12f 2014-12-17 Steve Ellcey <sellcey@imgtec.com>
* inet/getnetgrent_r.c: Move while loop to be inside if statement.
2014-12-17 10:00:37 -08:00
Stefan Liebler d22ce01bec Get rid of format warning in bug-vfprintf-nargs.c. 2014-12-17 16:43:34 +01:00
Stefan Liebler eca2772b9a Get rid of format warning in tst-widetext.c. 2014-12-17 16:42:51 +01:00
Andreas Schwab bdf079da36 Fix printf format error 2014-12-17 15:23:48 +01:00
Roland McGrath 3eb5d2fc71 Use PTR_MANGLE on libgcc unwinder function pointers. 2014-12-16 15:47:53 -08:00
Roland McGrath f0481d971e Revert "Use pragmas rather than makefiles for necessary options for unwind code."
This reverts commit c324fcfe75.
2014-12-16 15:46:00 -08:00
Roland McGrath c324fcfe75 Use pragmas rather than makefiles for necessary options for unwind code. 2014-12-16 14:31:24 -08:00
Joseph Myers 380292ba8b Fix x86_64 memrchr namespace (bug 17719).
On x86_64, memrchr (not a standard function) is defined as a strong
symbol, instead of a weak alias of __memrchr as on other
architectures.  This results in linknamespace test failures from the
use of __memrchr from dirname.  (Not a conformance issue because of
the mem* reservation, but contrary to glibc conventions.)  This patch
makes x86_64 follow other architectures by defining memrchr as a weak
alias.

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

	[BZ #17719]
	* sysdeps/x86_64/memrchr.S (memrchr): Rename to __memrchr and
	define as weak alias of __memrchr.
	(__memrchr): Do not define as strong alias of memrchr.
	* conform/Makefile (test-xfail-XPG4/libgen.h/linknamespace):
	Remove variable.
	(test-xfail-UNIX98/libgen.h/linknamespace): Likewise.
	(test-xfail-XOPEN2K/libgen.h/linknamespace): Likewise.
	(test-xfail-XOPEN2K8/libgen.h/linknamespace): Likewise.
2014-12-16 18:31:31 +00:00
Joseph Myers 9a44d530c4 Fix resolver if_* namespace (bug 17717).
Resolver code, brought in by pthreads (at least), uses if_* interfaces
that weren't in POSIX before 2001, resulting in linknamespace
failures.  This patch changes those interfaces to be weak aliases of
__if_* and makes the resolver use __if_* directly.

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

	[BZ #17717]
	* inet/if_index.c (if_nametoindex): Rename to __if_nametoindex and
	define as weak alias of __if_nametoindex.  Use libc_hidden_weak.
	(if_indextoname): Rename to __if_indextoname and define as weak
	alias of __if_indextoname.  Use libc_hidden_weak.
	(if_freenameindex): Rename to __if_freenameindex and define as
	weak alias of __if_freenameindex.
	(if_nameindex): Rename to __if_nameindex and define as weak alias
	of __if_nameindex.
	* sysdeps/mach/hurd/if_index.c (if_nametoindex): Rename to
	__if_nametoindex and define as weak alias of __if_nametoindex.
	Use libc_hidden_weak.
	(if_freenameindex): Rename to __if_freenameindex and define as
	weak alias of __if_freenameindex.
	(if_nameindex): Rename to __if_nameindex and define as weak alias
	of __if_nameindex.
	(if_indextoname): Rename to __if_indextoname and define as weak
	alias of __if_indextoname.  Use libc_hidden_weak.
	* sysdeps/unix/sysv/linux/if_index.c (if_nametoindex): Rename to
	__if_nametoindex and define as weak alias of __if_nametoindex.
	Use libc_hidden_weak.
	(if_freenameindex): Rename to __if_freenameindex and define as
	weak alias of __if_freenameindex.  Use libc_hidden_weak.
	(if_nameindex_netlink): Use __if_freenameindex instead of
	if_freenameindex.
	(if_nameindex): Rename to __if_nameindex and define as weak alias
	of __if_nameindex.  Use libc_hidden_weak.
	(if_indextoname): Rename to __if_indextoname and define as weak
	alias of __if_indextoname.  Use libc_hidden_weak.
	* include/net/if.h [!_ISOMAC] (__if_nametoindex): Declare and use
	libc_hidden_proto.
	[!_ISOMAC] (__if_freenameindex): Likewise.
	* resolv/res_init.c (__res_vinit): Use __if_nametoindex instead of
	if_nametoindex.
	* conform/Makefile (test-xfail-XPG4/grp.h/linknamespace): Remove
	variable.
	(test-xfail-XPG4/pwd.h/linknamespace): Likewise.
	(test-xfail-UNIX98/aio.h/linknamespace): Likewise.
	(test-xfail-UNIX98/grp.h/linknamespace): Likewise.
	(test-xfail-UNIX98/pthread.h/linknamespace): Likewise.
	(test-xfail-UNIX98/pwd.h/linknamespace): Likewise.
	(test-xfail-UNIX98/sched.h/linknamespace): Likewise.
	(test-xfail-UNIX98/time.h/linknamespace): Likewise.
2014-12-16 18:18:49 +00:00
Joseph Myers d003ada20e Remove some semaphore.h linknamespace XFAILs.
Roland's recent sem_* changes introduced some XPASSes for semaphore.h
linknamespace tests by removing a non-static variable "mountpoint".
This patch removes the XFAILs for the fixed bug.

Tested for x86_64.

	* conform/Makefile (test-xfail-UNIX98/semaphore.h/linknamespace):
	Remove variable.
	(test-xfail-XOPEN2K/semaphore.h/linknamespace): Likewise.
	(test-xfail-XOPEN2K8/semaphore.h/linknamespace): Likewise.
2014-12-16 16:25:08 +00:00
Siddhesh Poyarekar 0cd8552045 Fix the 'array subscript is above array bounds' warning correctly
Use DIAG_IGNORE_NEEDS_COMMENT instead since the compiler should have
seen that NS never goes beyond MAXNS.
2014-12-16 19:40:47 +05:30
Siddhesh Poyarekar a0d424ef9d Fix 'array subscript is above array bounds' warning in res_send.c
I see this warning in my build on F21 x86_64, which seems to be due to
a weak check for array bounds.  Fixed by making the bounds check
stronger.

This is not an actual bug since nscount is never set to anything
greater than MAXNS.  The compiler however does not know this, so we
need the stronger bounds check to quieten the compiler.
2014-12-16 16:55:23 +05:30
Arjun Shankar 8b460906cd Modify libio/tst-fopenloc.c to use test-skeleton.c
This test would earlier fail when run under test-skeleton.c due to
bug #17522 in 'fputws'. That bug is now fixed and so this test may
be modified.
2014-12-16 16:55:23 +05:30
Arjun Shankar fa13e15b9a Modify stdlib/tst-bsearch.c to use test-skeleton.c
This test used to define a 'struct entry' that conflicts with the
definition in search.h included in test-skeleton. The struct is
now renamed 'item'.
2014-12-16 16:55:23 +05:30
Arjun Shankar 0e426475a7 Modify stdio-common/tst-fseek.c to use test-skeleton.c
This test needs a TIMEOUT longer than the default 2 seconds since it
sleeps twice for a second each.
2014-12-16 16:55:22 +05:30
Torvald Riegel 4f646bce1c Ignore warning in string/tester.c. 2014-12-16 10:32:07 +01:00
Torvald Riegel a07c442711 Fix warning in misc/tst-mntent2.c. 2014-12-16 10:27:16 +01:00
Torvald Riegel 1469f46696 Fix warning in elf/tst-unique4lib.cc. 2014-12-16 10:26:48 +01:00
Florian Weimer 11e3417af6 Avoid infinite loop in nss_dns getnetbyname [BZ #17630] 2014-12-16 10:08:29 +01:00
Allan McRae ae61fc7b33 stdio-common/Makefile: readd bug26 testcase
This testcase was accidentally removed in commit a5357b7c.
2014-12-16 13:20:25 +10:00
Ondřej Bílka 363a989918 Return allocated array instead of unallocated.
In locale/programs/ld-ctype.c we returned array that was on stack.
Fixed by returning static array instead.
2014-12-16 00:09:50 +01:00
Torvald Riegel d52c62df3d Add comments for the generic lowlevellock implementation.
Patch by Bernard Ogden <bernie.ogden@linaro.org>.
2014-12-15 22:49:29 +01:00
Torvald Riegel 045a6bcdd2 Fix nptl/tst-sem4: always start with a fresh semaphore. 2014-12-15 22:14:33 +01:00
Torvald Riegel 7f786dc12b Fix nptl/tst-mutex5.c: Do not skip tests if elision is enabled. 2014-12-15 22:14:32 +01:00
Adhemerval Zanella e7e21cba12 stdio-common: Include <libc-internal.h> in some tests
This patch adds the missing libc-internal.h include on test-vprintf.c
tst-sprintf.c.
2014-12-15 11:29:09 -06:00
Torvald Riegel bc89c0fc70 Remove custom pthread_once implementation on s390. 2014-12-15 10:52:12 +01:00
Jeff Law a5357b7ce2 CVE-2012-3406: Stack overflow in vfprintf [BZ #16617]
A larger number of format specifiers coudld cause a stack overflow,
potentially allowing to bypass _FORTIFY_SOURCE format string
protection.
2014-12-15 10:09:33 +01:00
Will Newton 3a12c70f13 Bump required version of texinfo to 4.7
It seems we require texinfo 4.7 for the --plaintext option, so
document that and check for the correct version in configure.

ChangeLog:

2014-12-15  Will Newton  <will.newton@linaro.org>

	* manual/install.texi: Bump required version of texinfo
	to 4.7 from 4.5.
	* INSTALL: Regenerated.
	* configure.ac: Check for makeinfo version 4.7 and above.
	* configure: Regenerated.
2014-12-15 08:59:31 +00:00
Roland McGrath e4f639e4a1 NPTL: Refactor named semaphore code to use shm-directory.h 2014-12-12 15:01:30 -08:00
Roland McGrath c76d1ff514 NPTL: Add stubs for Linux-only extension functions. 2014-12-12 14:52:14 -08:00
Roland McGrath 439c43f6ea Fix NPTL build for !__ASSUME_SET_ROBUST_LIST case. 2014-12-12 14:00:37 -08:00
Stefan Liebler 48e435cd93 resolv: Suppress maybe uninitialized warning
In send_vc function at resolv/res_send.c, There is the
following warning on some architectures:

  'resplen' may be used uninitialized in this function
  [-Wmaybe-uninitialized]

And this is a false positive.  This patch suppress the
compiler warning.
2014-12-12 16:30:12 -05:00
Stefan Liebler 9d9c0019e7 Get rid of warning comparision will always evaluate as true 2014-12-12 11:14:00 +01:00
James Lemke 9173840b4d Fix for test "malloc_usable_size: expected 7 but got 11"
[BZ #17581] Revert this fix while investigating a problem.
2014-12-11 16:48:29 -08:00
Roland McGrath 78e21c5df6 Refactor shm_{open,unlink} code to separate Linux-specific directory choice from POSIX-generic code. 2014-12-11 16:19:11 -08:00
Kaz Kojima f82c43af8a * Fix SH specific compiler warnings which are for integer-pointer
type conversions without cast.
2014-12-12 08:07:35 +09:00
Joseph Myers fc00cf7bcd Move semaphore.h to sysdeps/pthread/.
Carlos reported failures in conform/ tests in environments where the
compiler used could only find headers in glibc's source and build
trees, not any previously installed headers
<https://sourceware.org/ml/libc-alpha/2014-09/msg00040.html>.

This patch moves nptl/semaphore.h to sysdeps/pthread/semaphore.h so
that it can be found by builds from all glibc subdirectories; it's not
in any way NPTL-specific.  (I left the Makefile setting to install
this header in nptl/, but maybe it should move as well - it's just not
clear to me what ifeq ($(subdir),...) conditional should be used to
select the directory to associate the header with for installation
purposes.  The path in the toplevel Makefile used for begin-end-check
also remains hardcoded; it's a known todo issue to rework that test to
run in each subdirectory checking the headers installed from that
subdirectory, rather than a separate hardcoded list.)

Tested for x86_64 (testsuite, and that installed stripped shared
libraries are unchanged by the patch).  I did *not* test a
configuration such as that in which Carlos saw failure.

	* nptl/semaphore.h: Move to ...
	* sysdeps/pthread/semaphore.h: ... here.
	* Makefile (installed-headers): Change nptl/semaphore.h to
	sysdeps/pthread/semaphore.h.
2014-12-11 22:58:48 +00:00