Commit Graph

824 Commits

Author SHA1 Message Date
Mike Frysinger 493387d21f add attribute_hidden to __have_{sock_cloexec,pipe2,dup3
These internal knobs are not exposed as part of the public ABI, so mark
them hidden to avoid generating relocations against them.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-08-18 01:54:12 -04:00
Mike Frysinger a277af22ea split assume pipe2/dup3/sock_cloexec knobs
We can't assume sock_cloexec and pipe2 are bound together as the former
defines are found in glibc only while the latter are a combo of kernel
headers and glibc.  So if we do a runtime detection of SOCK_CLOEXEC, but
pipe2() is a stub inside of glibc, we hit a problem.  For example:

main()
{
	getgrnam("portage");
	if (!popen("ls", "r"))
		perror("popen()");
}

getgrnam() will detect that the kernel supports SOCK_CLOEXEC and then set
both __have_sock_cloexec and __have_pipe2 to true.  But if glibc was built
against older kernel headers where __NR_pipe2 does not exist, glibc will
have a ENOSYS stub for it.  So popen() will always fail as glibc assumes
pipe2() works.

While this isn't too much of an issue for some arches as they added the
functionality to the kernel at the same time, not all arches are that
lucky.

Since the code already has dedicated names for each feature, delete the
defines wiring these three features together and make each one a proper
dedicated knob.

We've been carrying this in Gentoo since glibc-2.9.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-08-18 00:35:47 -04:00
Roland McGrath e66a42f57f Split sys/param.h out into common file and sysdeps bits/param.h file. 2012-08-17 09:55:17 -07:00
Roland McGrath 67cc348d55 Declare __getdirentries in internal dirent.h. 2012-08-15 10:09:18 -07:00
Maxim Kuvyrkov 51a9ba860a Add explicit acquire/release semantics to atomic_exchange_and_add. 2012-08-13 19:31:00 -07:00
Marek Polacek b67e9372b2 Get rid of ASM_TYPE_DIRECTIVE{,_PREFIX}. 2012-08-02 21:04:29 +02:00
Roland McGrath 789bd351b4 Clean up stub accept4 definition. 2012-07-31 09:43:14 -07:00
Roland McGrath bea9b19322 Fix lots of bitrot for stub configurations. 2012-07-30 16:34:33 -07:00
Florian Weimer 84b3fd8407 Rename __secure_getenv to secure_getenv 2012-07-25 19:46:22 +02:00
Marek Polacek 7b8e0d49cb Get rid of ASM_GLOBAL_DIRECTIVE. 2012-07-10 14:30:24 +02:00
Carlos O'Donell 75f0d3040a Release 2.16
Update version.h and include/features.h for 2.16 release.
2012-06-30 12:12:34 -07:00
Andreas Schwab 0479b305c5 Fix invalid memory access in do_lookup_x.
[BZ #13579] Do not free l_initfini and allow it to be reused
on subsequent dl_open calls for the same library. This fixes
the invalid memory access in do_lookup_x when the previously
free'd l_initfini was accessed through l_searchlist when a
library had been opened for the second time.
2012-06-22 11:10:31 -07:00
Andreas Schwab 5be8418cb0 Remove use of INTDEF/INTUSE in stdio-common 2012-06-01 01:25:41 +02:00
Marek Polacek 3091725976 Remove use of INTUSE/INTDEF in misc. 2012-05-31 13:10:02 +02:00
Andreas Schwab 03277f8fe1 Remove use of INTDEF/INTUSE in socket 2012-05-31 00:34:41 +02:00
H.J. Lu 0ab0291b84 Convert WORDSIZE[32|64]/ld entries to abi-variants 2012-05-30 08:33:26 -07:00
Roland McGrath 3a097cc7a1 Add --enable-systemtap configuration to define static probe points. 2012-05-25 13:40:20 -07:00
Andreas Schwab 56d25bb888 Remove use of INTDEF/INTUSE in intl 2012-05-24 23:08:18 +02:00
Andreas Schwab d18ea0c5e6 Remove use of INTDEF/INTUSE in libio 2012-05-24 23:06:20 +02:00
Roland McGrath d6c33fda03 Switch gettimeofday from INTUSE to libc_hidden_proto. 2012-05-24 13:12:34 -07:00
Andreas Jaeger 07c58f8f35 Fix sunrpc static library
* include/shlib-compat.h (libc_sunrpc_symbol): New macro.
	* sunrpc/svc_simple.c: Use it for registerrpc.
	* sunrpc/xcrypt.c: Use it for passwd2des.
2012-05-21 21:34:54 +02:00
Joseph Myers 4e124cedfb Update __STDC_ISO_10646__. 2012-05-16 18:49:30 +00:00
Thomas Schwinge 1792c087e5 Hurd: hidden_nolink macro for NO_HIDDEN case. 2012-05-10 15:57:26 -07:00
Thomas Schwinge 5aa3a74a59 Hurd: dup3 2012-05-10 15:57:23 -07:00
Thomas Schwinge eb43375f0f Hurd: accept4 2012-05-10 15:57:22 -07:00
Andreas Jaeger 021db4be6f Make sunrpc code usable again
New configure option --enable-obsolete-rpc makes the deprecated RPC
  headers and functions available at compile time as they were before
  version 2.14.  This option will be removed at some time in the future
  after the TI-RPC library becomes fully sufficient for the needs of
  existing applications.
2012-05-10 20:19:53 +02:00
Joseph Myers 6d74dd09d2 Define __STDC_NO_THREADS__. 2012-05-10 17:11:08 +00:00
Roland Mc Grath 05c2c9618f Warn if user requests __FORTIFY_SOURCE but it is disabled
[BZ #13979]
        * include/features.h: Warn if user requests __FORTIFY_SOURCE
        checking but the checks are disabled for any reason.
2012-05-08 19:44:57 +02:00
Marek Polacek 5ac3ea17df Fix attributes for fortify functions. 2012-04-29 15:34:20 +02:00
Petr Baudis 0396e69dbe Resolve __vector namespace conflict with Altivec. 2012-04-17 08:39:57 -05:00
H.J. Lu 81b035fe63 Replace Elf64_XXX with ElfW(XXX) in dl-irel.h 2012-03-22 10:17:05 -07:00
Richard Henderson 5f0a5daeee Move math/math_private.h to sysdeps/generic/math_private.h.
This reverts commit 60d6f5a6f5.
2012-03-09 16:12:17 -08:00
David S. Miller 60d6f5a6f5 Fix sparc build after recent math changes.
* include/math_private.h: New file.
2012-03-09 14:37:57 -08:00
Marek Polacek bc957d531c Remove oldish __GNUC_PREREQ. 2012-03-03 22:57:00 +01:00
Andreas Schwab 450bf206b4 Include <dirstream.h> before <dirent/dirent.h> 2012-02-28 15:02:02 +01:00
Ulrich Drepper d94a467080 Add first fixes for conformtest for POSIX2008 2012-02-26 21:32:56 -05:00
Ulrich Drepper 3134156779 First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
Joseph Myers ff3b3d8278 Move __STDC_* predefined macros from features.h to stdc-predef.h. 2012-02-22 12:53:04 +00:00
Paul Eggert 59ba27a63a Replace FSF snail mail address with URLs. 2012-02-09 23:18:22 +00:00
Chris Metcalf 463de86252 Use include/sys/epoll.h to provide libc_hidden_proto for epoll_pwait(). 2012-01-28 12:00:12 -05:00
Ulrich Drepper b15549e6f8 Fix gets problems 2012-01-24 17:40:44 -05:00
Ulrich Drepper ec09c1c410 Optimize xmalloc, xcalloc, xrealloc, and xstrdup
Add alloc_size attribute and apply consistently the malloc attribute
to xmalloc, xcalloc, xrealloc, and xstrdup.
2012-01-08 21:19:43 -05:00
Ulrich Drepper d9a216c037 Add checking versions of poll and ppoll 2012-01-08 11:55:32 -05:00
Ulrich Drepper a0da5fe1e4 More fallout from supporting only ELF 2012-01-08 00:45:01 -05:00
Ulrich Drepper a784e50247 Remove pre-ISO C support
No more __const.
2012-01-07 23:57:22 -05:00
Ulrich Drepper 0269750ca6 Remove non-ELF support 2012-01-07 20:30:26 -05:00
Ulrich Drepper c0e87cc018 Missed half the support for __USE_ISOC11 2012-01-01 07:17:21 -05:00
Ulrich Drepper 8fd8ff3bd8 Add __USE_ISOCXX11 2012-01-01 07:17:20 -05:00
Ulrich Drepper d78099052b Support C11 __STDC_SOURCE__ and _ISOC11_SOURCE 2012-01-01 07:17:19 -05:00
Ulrich Drepper c0da14cdda Preliminaries for 2.15 release 2011-12-23 14:03:55 -05:00
Roland McGrath 95b7042bac Fix __readlink declaration. 2011-11-11 10:04:54 -08:00
Andreas Schwab 647776f663 Account for alloca size rounding in extend_alloca 2011-11-01 18:29:34 +01:00
Ulrich Drepper 3a2c02424d Cache network interface information
Whenever getaddrinfo needed network interface information it used the
netlink interface to read the information every single time.  The
problem is that this information can change at any time.

The patch implements monitoring of the network interfaces through
nscd.  If no change is detected the previously read information can
be reused (which is the norm).  This timestamp information is also
made available to other processes using the shared memory segment
between nscd and those processes.
2011-10-31 01:51:16 -04:00
Ulrich Drepper fd5bdc0924 Optimize access to isXYZ and toXYZ tables
The functions to get the pointers can now depend on the TLS variable
be initialized.
2011-10-15 16:27:08 -04:00
Ulrich Drepper 7edb55ce06 Optimize use of isnan, isinf, finite 2011-10-08 10:18:26 -04:00
Andreas Schwab 3a62d00d40 Don't call ifunc functions in trace mode 2011-10-05 14:35:40 +02:00
Ulrich Drepper d063d16433 Remove support for !USE___THREAD 2011-09-10 16:50:28 -04:00
Ulrich Drepper 3ce1f29594 Cleanup of configuration options
Make several tool features mandatory and simplify the code.
2011-09-10 14:34:15 -04:00
Ulrich Drepper a0f33f996f Add range checking for FD_SET, FD_CLR, and FD_ISSET 2011-09-08 19:48:47 -04:00
Andreas Schwab 14d9678512 Clean up PLT use for scandirat 2011-08-11 11:41:09 -04:00
Ulrich Drepper c55fbd1ea7 Implement scandirat function 2011-08-09 09:57:55 -04:00
Ulrich Drepper 356f8bc660 2.14 release 2011-05-31 00:12:33 -04:00
Ulrich Drepper 34a9094f49 Don't unconditionally use alloca in gaih_inet 2011-05-20 23:46:03 -04:00
Ulrich Drepper 94b7cc3711 Fix a few problems in fopen and freopen
fopen should set the FD_CLOEXEC flag if requested evenif the kernel does
not support an aotmic operation.

freopen should reuse the file descriptor for the stream.  This is
especially important for calls to change the standard streams (stin,
stdout, stderr).
2011-05-15 15:28:46 -04:00
Ulrich Drepper f8a3b5bf8f Use mmap for allocation of buffers used for __abort_msg 2011-05-15 00:34:48 -04:00
Ulrich Drepper 6fb2dde3f1 Make complete getcwd work in rtld 2011-05-08 14:53:20 -04:00
Ulrich Drepper 7fb90fb89b Fix Linux getcwd for long paths
The getcwd syscall (so far?) can only handle path up to one page
in size.  There is no limit about directory hierarchy depth, though,
and the POSIX getcwd is supposed to handle this.  In that case fall
back to the generic getcwd.

Additionally, optimize the generic getcwd to use openat when possible
to change the asymptotic performance from O(N^2) to O(n).
2011-05-08 08:37:19 -04:00
Ulrich Drepper 28377d1bf5 Optimize fdopendir a bit.
Don't call fcntl(F_SETFD) unnecessarily.
2011-05-08 00:48:30 -04:00
Ulrich Drepper 7b57bfe598 Obsolete RPC implementation in libc. 2011-04-16 21:59:36 -04:00
Ulrich Drepper 81489b2ec3 Update comment about feature macros. 2011-04-02 08:25:30 -04:00
Ulrich Drepper 028478fa40 Fix copy relocations handling of unique objects. 2011-03-10 12:51:33 -05:00
Andreas Schwab 4bff6e0175 Fix memory leak in dlopen with RTLD_NOLOAD. 2011-02-25 20:49:48 -05:00
Ulrich Drepper 6392473fe9 2.13 release 2011-01-17 23:34:07 -05:00
Ulrich Drepper 8cf8ce1702 Clean up PLT use for getrlimit64. 2011-01-13 16:21:04 -05:00
Ulrich Drepper a85b5cb4d4 Fix PLT use due to __libc_alloca_cutoff. 2011-01-13 14:01:56 -05:00
Ulrich Drepper eaea92f137 Fix typo in comment. 2010-12-09 19:22:52 -05:00
Andreas Schwab 8e9f92e9d5 Require suid bit on audit objects in privileged programs 2010-10-24 21:43:15 -04:00
Jakub Jelinek 9ff8d36f27 Correct implementation of fmaf. 2010-10-11 09:27:05 -04:00
Ulrich Drepper 2f3e3dc75f Remove duplicate version of pmap_getport from NIS code. 2010-09-01 04:12:55 -07:00
Ulrich Drepper e28c88707e Prepare for release. 2010-05-03 14:11:14 -07:00
Ulrich Drepper b9ea2dd05e Fix handling of __need_mbstate_t and __need_wint_t.
Like the real header, the libc-internal wrapper for wchar.h needs to
undefine the macros so that if the header was already included before
the macros don't stay defined and cause problems later.
2010-03-27 06:06:35 -07:00
Ulrich Drepper c8727fa6e5 Fix Linux getlogin{_r,} implementation
The old implementation uses fd 0 to determine the login TTY.  This
was needed because using /dev/tty it is not possible to deduce the
login TTY.  For some time now there is the pseudo-file
/proc/self/loginuid which directly helps us to find the user.  Prefer
using this file.  It also works if stdin is closed, redirected, or
re-opened.
2010-03-24 17:02:57 -07:00
Ulrich Drepper 4ad43b62d6 Fix handling of STB_GNU_UNIQUE in LD_TRACE_PRELINKING 2010-03-24 10:14:22 -07:00
Andreas Schwab 7eb22e757e Avoid PLT call to fegetenv on s390 2010-02-09 22:34:17 -08:00
Ulrich Drepper 635bc2a20f Fix _XOPEN_SOURCE_EXTENDED handling. 2010-01-15 11:03:44 -08:00
Ulrich Drepper e531ede5af Fix up wchar.h for XPG7. 2010-01-11 20:07:47 -08:00
Ulrich Drepper f095bb7204 Add support for XPG7 testing.
The header conformance testing code needed extending for XPG7.  This
exposed a few bugs in the headers.  There are more changes to come.
2010-01-09 10:56:41 -08:00
Ulrich Drepper 63de5ef70a Fix isomac test after recent header change. 2009-12-23 19:31:50 -08:00
Ulrich Drepper 2af6396817 Avoid ELF lookup race.
On some architectures the update of the l_used field in the lookup
functions races with setting the other bits in the bitfield.  Simply
avoid this and optimize use of l_used in general.
2009-12-15 12:32:27 -08:00
Ulrich Drepper aa9890239a Optimize grantpt.
grantpt was performing two consecutive calls to stat with the same
file name.  Avoid this by creating a special version of the ptsname
function which allows to pass the stat result back to the caller.
2009-11-24 18:50:32 -08:00
Ulrich Drepper 7f9cd6ed20 2.11 release. 2009-10-30 10:17:08 -07:00
Ulrich Drepper 7f3146e789 Implement mkstemps and mkstemps64. 2009-10-30 00:11:07 -07:00
Andreas Schwab b7805d0ba8 Correct errno handling in expm1. 2009-10-19 21:23:15 -07:00
Andreas Schwab 5182cbc5ab Add hidden alias for fflush. 2009-09-01 15:31:09 -07:00
Ulrich Drepper 9a1d2d4555 Prepare use if IFUNC functions outside libc.so.
We use a callback function into libc.so to get access to the data
structure with the information and have special versions of the test
macros which automatically use this function.
2009-07-29 15:22:28 -07:00
Duncan Simpson 30a2dfd518 Make include/unistd.h suitable for C++ test cases. 2009-07-23 12:39:17 -07:00
Jakub Jelinek bea0ac1d87 Use rel semantics of cas instead of acq semantics with full barrier before it in _int_free
The following patch fixes catomic_compare_and_exchange_*_rel definitions
(which were never used and weren't correct) and uses
catomic_compare_and_exchange_val_rel in _int_free.  Comparing to the
pre-2009-07-02 --enable-experimental-malloc state the generated code should
be identical on all arches other than ppc/ppc64 and on ppc/ppc64 should use
lwsync instead of isync barrier.
2009-07-16 07:24:50 -07:00
Ulrich Drepper eba0994e75 Clean up code for hash table handling in ld.so. 2009-07-07 09:49:55 -07:00
Ulrich Drepper 48dcd0ba84 Preserve message printed before abort.
The terminal output etc is not visible in a core file.  The new
libc-internal variable __abort_msg will point to a string with the
message which has been printed before the abort in case abort is
called from inside libc.  BZ #10217
2009-06-15 16:17:09 -07:00
Ulrich Drepper 8275067de1 Add missing __execvpe prototype.
Avoids warnings.
2009-06-02 07:11:51 -07:00