* A stack-based buffer overflow was found in libresolv when invoked from
libnss_dns, allowing specially crafted DNS responses to seize control
of execution flow in the DNS client. The buffer overflow occurs in
the functions send_dg (send datagram) and send_vc (send TCP) for the
NSS module libnss_dns.so.2 when calling getaddrinfo with AF_UNSPEC
family. The use of AF_UNSPEC triggers the low-level resolver code to
send out two parallel queries for A and AAAA. A mismanagement of the
buffers used for those queries could result in the response of a query
writing beyond the alloca allocated buffer created by
_nss_dns_gethostbyname4_r. Buffer management is simplified to remove
the overflow. Thanks to the Google Security Team and Red Hat for
reporting the security impact of this issue, and Robert Holiday of
Ciena for reporting the related bug 18665. (CVE-2015-7547)
See also:
https://sourceware.org/ml/libc-alpha/2016-02/msg00416.htmlhttps://sourceware.org/ml/libc-alpha/2016-02/msg00418.html
One common case of __GNUC_PREREQ (4, 7) conditionals is use of
diagnostic control pragmas for -Wmaybe-uninitialized, an option
introduced in GCC 4.7 where older GCC needed -Wuninitialized to be
controlled instead if the warning appeared with older GCC. This patch
removes such conditionals.
(There remain several older uses of -Wno-uninitialized in makefiles
that still need to be converted to diagnostic control pragmas if the
issue is still present with current sources and supported GCC
versions, and it's likely that in most cases those pragmas also will
end up controlling -Wmaybe-uninitialized.)
Tested for x86_64 and x86 (testsuite, and that installed stripped
shared libraries are unchanged by the patch, except for libresolv
since res_send.c contains assertions whose line numbers are changed by
the patch).
* resolv/res_send.c (send_vc) [__GNUC_PREREQ (4, 7)]: Make code
unconditional.
* soft-fp/fmadf4.c [__GNUC_PREREQ (4, 7)]: Likewise.
[!__GNUC_PREREQ (4, 7)]: Remove conditional code.
* soft-fp/fmasf4.c [__GNUC_PREREQ (4, 7)]: Make code
unconditional.
[!__GNUC_PREREQ (4, 7)]: Remove conditional code.
* soft-fp/fmatf4.c [__GNUC_PREREQ (4, 7)]: Make code
unconditional.
[!__GNUC_PREREQ (4, 7)]: Remove conditional code.
* stdlib/setenv.c
[((__GNUC__ << 16) + __GNUC_MINOR__) >= ((4 << 16) + 7)]: Make
code unconditional.
[!(((__GNUC__ << 16) + __GNUC_MINOR__) >= ((4 << 16) + 7))]:
Remove conditional code.
* sysdeps/ieee754/dbl-64/e_lgamma_r.c
(__ieee754_lgamma_r) [__GNUC_PREREQ (4, 7)]: Make code
unconditional.
(__ieee754_lgamma_r) [!__GNUC_PREREQ (4, 7)]: Remove conditional
code.
* sysdeps/ieee754/flt-32/e_lgammaf_r.c
(__ieee754_lgammaf_r) [__GNUC_PREREQ (4, 7)]: Make code
unconditional.
(__ieee754_lgammaf_r) [!__GNUC_PREREQ (4, 7)]: Remove conditional
code.
* sysdeps/ieee754/ldbl-128/k_tanl.c
(__kernel_tanl) [__GNUC_PREREQ (4, 7)]: Make code unconditional.
(__kernel_tanl) [!__GNUC_PREREQ (4, 7)]: Remove conditional code.
* sysdeps/ieee754/ldbl-128ibm/k_tanl.c
(__kernel_tanl) [__GNUC_PREREQ (4, 7)]: Make code unconditional.
(__kernel_tanl) [!__GNUC_PREREQ (4, 7)]: Remove conditional code.
* sysdeps/ieee754/ldbl-96/e_lgammal_r.c
(__ieee754_lgammal_r) [__GNUC_PREREQ (4, 7)]: Make code
unconditional.
(__ieee754_lgammal_r) [!__GNUC_PREREQ (4, 7)]: Remove conditional
code.
* sysdeps/ieee754/ldbl-96/k_tanl.c
(__kernel_tanl) [__GNUC_PREREQ (4, 7)]: Make code unconditional.
(__kernel_tanl) [!__GNUC_PREREQ (4, 7)]: Remove conditional code.
Remove use of ext.nsmap member of struct __res_state and always use
an identity mapping betwen the nsaddr_list array and the ext.nsaddrs
array. The fact that a nameserver has an IPv6 address is signalled by
setting nsaddr_list[].sin_family to zero.
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.
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.
[Fixes BZ #14308, #12994, #13651]
AF_UNSPEC results in sending two queries in parallel, one for the A
record and the other for the AAAA record. If one of these is a
referral, then the query fails, which is wrong. It should return at
least the one successful response.
The fix has two parts. The first part makes the referral fall back to
the SERVFAIL path, which results in using the successful response.
There is a bug in that path however, due to which the second part is
necessary. The bug here is that if the first response is a failure
and the second succeeds, __libc_res_nsearch does not detect that and
assumes a failure. The case where the first response is a success and
the second fails, works correctly.
This condition is produced by buggy routers, so here's a crude
interposable library that can simulate such a condition. The library
overrides the recvfrom syscall and modifies the header of the packet
received to reproduce this scenario. It has two key variables:
mod_packet and first_error.
The mod_packet variable when set to 0, results in odd packets being
modified to be a referral. When set to 1, even packets are modified
to be a referral.
The first_error causes the first response to be a failure so that a
domain-appended search is performed to test the second part of the
__libc_nsearch fix.
The driver for this fix is a simple getaddrinfo program that does an
AF_UNSPEC query. I have omitted this since it should be easy to
implement.
I have tested this on x86_64.
The interceptor library source:
/* Override recvfrom and modify the header of the first DNS response to make it
a referral and reproduce bz #845218. We have to resort to this ugly hack
because we cannot make bind return the buggy response of a referral for the
AAAA record and an authoritative response for the A record. */
#define _GNU_SOURCE
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdbool.h>
#include <endian.h>
#include <dlfcn.h>
#include <stdlib.h>
/* Lifted from resolv/arpa/nameser_compat.h. */
typedef struct {
unsigned id :16; /*%< query identification number */
#if BYTE_ORDER == BIG_ENDIAN
/* fields in third byte */
unsigned qr: 1; /*%< response flag */
unsigned opcode: 4; /*%< purpose of message */
unsigned aa: 1; /*%< authoritive answer */
unsigned tc: 1; /*%< truncated message */
unsigned rd: 1; /*%< recursion desired */
/* fields
* in
* fourth
* byte
* */
unsigned ra: 1; /*%< recursion available */
unsigned unused :1; /*%< unused bits (MBZ as of 4.9.3a3) */
unsigned ad: 1; /*%< authentic data from named */
unsigned cd: 1; /*%< checking disabled by resolver */
unsigned rcode :4; /*%< response code */
#endif
#if BYTE_ORDER == LITTLE_ENDIAN || BYTE_ORDER == PDP_ENDIAN
/* fields
* in
* third
* byte
* */
unsigned rd :1; /*%< recursion desired */
unsigned tc :1; /*%< truncated message */
unsigned aa :1; /*%< authoritive answer */
unsigned opcode :4; /*%< purpose of message */
unsigned qr :1; /*%< response flag */
/* fields
* in
* fourth
* byte
* */
unsigned rcode :4; /*%< response code */
unsigned cd: 1; /*%< checking disabled by resolver */
unsigned ad: 1; /*%< authentic data from named */
unsigned unused :1; /*%< unused bits (MBZ as of 4.9.3a3) */
unsigned ra :1; /*%< recursion available */
#endif
/* remaining
* bytes
* */
unsigned qdcount :16; /*%< number of question entries */
unsigned ancount :16; /*%< number of answer entries */
unsigned nscount :16; /*%< number of authority entries */
unsigned arcount :16; /*%< number of resource entries */
} HEADER;
static int done = 0;
/* Packets to modify. 0 for the odd packets and 1 for even packets. */
static const int mod_packet = 0;
/* Set to true if the first request should result in an error, resulting in a
search query. */
static bool first_error = true;
static ssize_t (*real_recvfrom) (int sockfd, void *buf, size_t len, int flags,
struct sockaddr *src_addr, socklen_t *addrlen);
void
__attribute__ ((constructor))
init (void)
{
real_recvfrom = dlsym (RTLD_NEXT, "recvfrom");
if (real_recvfrom == NULL)
{
printf ("Failed to get reference to recvfrom: %s\n", dlerror ());
printf ("Cannot simulate test\n");
abort ();
}
}
/* Modify the second packet that we receive to set the header in a manner as to
reproduce BZ #845218. */
static void
mod_buf (HEADER *h, int port)
{
if (done % 2 == mod_packet || (first_error && done == 1))
{
printf ("(Modifying header)");
if (first_error && done == 1)
h->rcode = 3;
else
h->rcode = 0; /* NOERROR == 0. */
h->ancount = 0;
h->aa = 0;
h->ra = 0;
h->arcount = 0;
}
done++;
}
ssize_t
recvfrom (int sockfd, void *buf, size_t len, int flags,
struct sockaddr *src_addr, socklen_t *addrlen)
{
ssize_t ret = real_recvfrom (sockfd, buf, len, flags, src_addr, addrlen);
int port = htons (((struct sockaddr_in *) src_addr)->sin_port);
struct in_addr addr = ((struct sockaddr_in *) src_addr)->sin_addr;
const char *host = inet_ntoa (addr);
printf ("\n*** From %s:%d: ", host, port);
mod_buf (buf, port);
printf ("returned %zd\n", ret);
return ret;
}
This patch defines _STRING_ARCH_unaligned to 0 on default bits/string.h
header to avoid undefined compiler warnings on platforms that do not
define it. It also make adjustments in code where tests checked if macro
existed or not.
There is some more shardware/software out there which has problems
if two DNS requests are sent using the same tuple
(source addr, source port, dest addr, dest port)
This can range from firewalls to load balancers. Some of the vendors
already fixed it in response to this problem. Still, we need a way
to make glibc work with broken environments. The single-request-reopen
flag can be used or we fall back automatically to this mode.
* resolv/res_init.c (res_setoptions): Recognize single-request option.
* resolv/res_send.c (send_dg): If we sent two requests at once and
only get one reply before timeout switch to mode where we send the
second request only after the first answer has been received.
Use it instead of locally defined resplen2 variable.
(res_nsend): Adjust for __libc_res_nsend interface change.
(send_vc): Initialize *resplen2 if necessary. Read length of
package into an appropriately aligned variable. Store converted length
in new variable and use it appropriately.
Add branch prediction help.
* resolv/res_query.c (__libc_res_nquery): Take additional parameter
and pass it on to __libc_res_nsend. Adjust all callers.
(__libc_res_nsearch): Likewise.
(__libc_res_nqeurydomain): Likewise.
* resolv/nss_dns/dns-host.c: Adjust for __libc_res_nsearch interface
change.
(_nss_dns_gethostbyname4): Don't unconditionally allocate tmp array.
Define resplen2 variable and pass it to __libc_res_nsearch and then
to gaih_getanswer.
(getanswer_r): In case of incorrect DNS data don't overread buffer.
Add branch prediction.
(gaih_getanswer_slice): Likewise. Check for invalid data types.
(gaih_getanswer): Don't decode second slice if first one failed due
to a too small buffer. Don't let not found status of second
decoder shadow results of the first.
* resolv/gethnamaddr.c (gethostbyname2): Adjust for __libc_res_nsearch
and __libc_res_nquery interface changes
(gethostbyaddr): Adjust for __libc_res_nquery interface change.
* include/resolv.h: Adjust prototypes for __libc_res_nquery,
__libc_res_nsearch, and __libc_res_nsend.
* resolv/nss_dns/dns-canon.c: Adjust for __libc_res_nquery interface
change.
* resolv/nss_dns/dns-network.c: Adjust for __libc_res_nquery and
__libc_res_nsearch interface changes.
answer was too short don't try to read that answer's header.
* resolv/res_send.c (send_dg): In case of timeout and there are
two queries and one has been answered, return value indicating
success.
prototypes.
* include/arpa/nameser_compat.h: Define T_UNSPEC.
* nis/Versions (libnss_nis): Export _nss_nis_gethostbyname4_r.
(libnss_nisplus): Export _nss_nisplus_gethostbyname4_r.
* nis/nss_nis/nis-hosts.c (LINE_PARSER): Change to also handle
af==AF_UNSPEC.
(_nss_nis_gethostbyname4_r): New function.
* nis/nss_nisplus/nisplus-hosts.c (_nss_nisplus_parse_hostent):
Change to also handle af==AF_UNSPEC.
(get_tablename): New function. Use it to avoid duplication.
(_nss_nisplus_gethostbyname4_r): New function.
* nscd/aicache.c (addhstaiX): Use gethostbyname4_r function is
available.
* nss/Versions (libnss_files): Export _nss_files_gethostbyname4_r.
* nss/nss.h: Define struct gaih_addrtuple.
* nss/nss_files/files-hosts.c (LINE_PARSER): Change to also handle
af==AF_UNSPEC.
(_nss_files_gethostbyname4_r): New function.
* resolv/Versions (libnss_dns): Export _nss_dns_gethostbyname4_r.
* resolv/gethnmaddr.c: Adjust __libc_res_nsearch and __libc_res_nquery
calls.
* resolv/res_query.c (__libc_res_nquery): Take two additional
parameters for second answer buffer. Handle type=T_UNSPEC to mean
look up IPv4 and IPv6.
Change all callers.
* resolv/res_send.c (__libc_res_nsend): Take five aditional parameters
for an additional query and answer buffer. Pass to send_vc and
send_dg.
(send_vc): Send possibly two requests and receive two answers.
(send_dg): Likewise.
* resolv/nss_dns/dns-host.c: Adjust calls to __libc_res_nsearch and
__libc_res_nquery.
(_nss_dns_gethostbyname4_r): New function.
(gaih_getanswer_slice): Likewise.
(gaih_getanswer): Likewise.
* resolv/nss_dns/dns-canon.c (_nss_dns_getcanonname_r): Adjust
__libc_res_nquery call.
* resolv/nss_dns/dns-network.c (_nss_dns_getnetbyaddr_r): Likewise.
(_nss_dns_getnetbyname_r): Adjust __libc_res_nsearch call.
* sysdeps/posix/getaddrinfo.c: Use gethostbyname4_r function is
available.
Tomas Janousek <tjanouse@redhat.com>
Ulrich Drepper <drepper@redhat.com>
[BZ #4647]
* resolv/res_send.c (send_dg): Remove socket_pf. Use ipv6_unavail
member in __res_state, only convaddr4to6 if nssocks[ns] is a PF_INET6
socket.
* resolv/resolv.h (__res_state): Add ipv6_unavail member. Make
unused member a bitmap.
* resolv/res_init.c (__res_vinit): Reset ipv6_unavail if IPv6
servers are configured.
2007-06-18 Jakub Jelinek <jakub@redhat.com>
* resolv/res_mkquery.c: Define __res_nopt.
* resolv/res_query.c (__libc_res_nquery): If RES_USE_EDNS0 is set
try adding EDNS0 record.
* resolv/res_send.c (send_dg): If request failed with FORMERR and
EDNS0 record was send make sure we don't try it again.
* resolv/resolv.h: Define RES_F_EDNS0ERR and RES_USE_EDNS0.
* include/resolv.h: Declare __res_nopt.
* resolv/res_mkquery.c: Use NS_PUT16 and NS_PUT32 instead of __putshort
and __putlong respectively. Correct buffer overflow check for
NS_NOTIFY_OP.
* resolv/res_send.c (send_vc): Use ns_put16 instead of putshort.
res_nclose. Take addition parameter which determines whether
addresses should be freed.
(res_nclose): Call __res_iclose.
(res_thread_freeres): Likewise.
* resolv/res_data.c (res_close): Call __res_iclose.
* resolv/res_libc.c (res_init): No need to separately free the
addresses.
(__res_maybe_init): Likewise.
* resolv/res_send.c: Use __res_iclose instead of res_nclose.
* resolv/Versions [GLIBC_PRIVATE]: Add __res_iclose.
* include/resolv.h: Declare __res_iclose.
Add libc_hidden_proto for __res_iclose.
* hesiod/hesiod.c (__hesiod_res_set): No need to free name server
addresses here again.
* intl/dcigettext.c (_nl_find_msg): Add a cast.
* nis/nis_clone_dir.c (nis_clone_directory): Use char * for ADDR.
* nis/nis_clone_obj.c (nis_clone_object): Likewise.
* nis/nis_clone_res.c (nis_clone_result): Likewise.
* resolv/nss_dns/dns-network.c (getanswer_r): Use const unsigned char *
for END_OF_MESSAGE and CP.
* resolv/res_send.c (send_dg): Add else branch for case impossible
unless `poll' is buggy.
* crypt/crypt_util.c (__setkey_r): Add a cast.
* locale/programs/linereader.c (get_toplvl_escape): Use size_t for
NBYTES, and unsigned char * for BYTES.
* locale/programs/charmap.c (charmap_new_char): Use size_t and
unsighed char * for NBYTES, BYTES parameters.
* sysdeps/generic/dl-hash.h (_dl_elf_hash): Take const char * argument
and cast it.
* sysdeps/i386/i686/dl-hash.h (_dl_elf_hash): Likewise.
* sunrpc/create_xid.c (_create_xid): Don't use unsigned long for RES.
* sunrpc/svcauth_des.c (_svcauth_des): Fix cast type.
* sunrpc/auth_des.c (authdes_create): Don't use u_char for PKEY_DATA.
(authdes_marshal): Don't use unsigned int for LEN.
* sunrpc/xdr.c (xdr_hyper): Don't use unsigned long for T2.
(xdr_u_hyper): Likewise.
(xdr_u_short): Don't use u_long for L.
* sunrpc/xdr_intXX_t.c (xdr_int64_t): Don't use uint32_t for T2.
* inet/rexec.c (rexec_af): Use socklen_t.
* sunrpc/key_call.c (getkeyserv_handle): Likewise.
* sunrpc/rtime.c (rtime): Likewise.
* resolv/res_send.c (send_vc, send_dg): Likewise.
* nis/nis_callback.c (__nis_create_callback): Likewise.
* sysdeps/generic/libc-start.c: Use unsigned int for nthreads ptr.
* sysdeps/posix/getaddrinfo.c (gaih_inet): Fix type of ADDR local.
* libio/libio.h (_IO_BE): Add parenthesis around EXPR.
* intl/dcigettext.c (INTVARDEF, INTUSE): Macros removed.
(_nl_default_dirname): Use libc_hidden_data_def instead of INTVARDEF.
(libc_freeres_fn, DCIGETTEXT): Don't use INTUSE.
* intl/bindtextdom.c (INTUSE): Macro removed.
(_nl_default_dirname): Use libc_hidden_proto.
(set_binding_values): Don't use INTUSE.
* include/libintl.h (_libc_intl_domainname_internal): Decl removed.
(_libc_intl_domainname): Use libc_hidden_proto.
* posix/regex_internal.h (gettext): Remove INTUSE on it.
* locale/SYS_libc.c (_libc_intl_domainname): Use libc_hidden_data_def
rather than INTDEF.
* include/libintl.h (_): Don't use *_internal name.
* ctype/ctype-extn.c (__ctype_tolower, __ctype_toupper): Use int32_t,
not uint32_t.
* locale/lc-ctype.c (_nl_postload_ctype): Likewise for assignments.
* iconv/gconv_open.c (__gconv_open): Remove useless cast.
[BZ #721]
* sysdeps/i386/dl-machine.h (ELF_MACHINE_NO_RELA): Define this outside
of [RESOLVE_MAP].
* sysdeps/sh/dl-machine.h (ELF_MACHINE_NO_REL): Likewise.
* sysdeps/powerpc/powerpc32/dl-machine.h
(elf_machine_rel, elf_machine_rel_relative): Removed.
* sysdeps/powerpc/powerpc64/dl-machine.h
(elf_machine_rel, elf_machine_rel_relative): Removed.
2005-02-03 Alexandre Oliva <aoliva@redhat.com>
[BZ #721]
* elf/dynamic-link.h: Don't declare nested auto functions that are
not going to be defined.
2004-07-23 Jakub Jelinek <jakub@redhat.com>
[BZ #284]
* include/features.h (_POSIX_SOURCE, _POSIX_C_SOURCE): Define
if _XOPEN_SOURCE >= 500 even if __STRICT_ANSI__ is defined.
2005-02-16 Roland McGrath <roland@redhat.com>
2002-10-15 Jakub Jelinek <jakub@redhat.com>
* include/resolv.h (__libc_res_nquery, __libc_res_nsearch,
__libc_res_nsend): New prototypes.
* resolv/res_query.c (QUERYSIZE): Define.
(__libc_res_nquery): Renamed from res_nquery. Added answerp
argument. Allocate only QUERYSIZE bytes first, if res_nmkquery
fails use MAXPACKET buffer. Call __libc_res_nsend instead of
res_nsend, pass answerp.
(res_nquery): Changed into wrapper around __libc_res_nquery.
(__libc_res_nsearch): Renamed from res_nsearch. Added answerp
argument. Call __libc_res_nquerydomain and __libc_res_nquery
instead of the non-__libc_ variants, pass them answerp.
(res_nsearch): Changed into wrapper around __libc_res_nsearch.
(__libc_res_nquerydomain): Renamed from res_nquerydomain.
Added answerp argument. Call __libc_res_nquery instead of
res_nquery, pass answerp.
(res_nquerydomain): Changed into wrapper around
__libc_res_nquerydomain.
* resolv/res_send.c: Include sys/ioctl.h.
(MAXPACKET): Define.
(send_vc): Change arguments. Reallocate answer buffer if it is
too small.
(send_dg): Likewise.
(__libc_res_nsend): Renamed from res_nsend. Added ansp argument.
Reallocate answer buffer if it is too small and hooks are in use.
Adjust calls to send_vc and send_dg.
(res_nsend): Changed into wrapper around __libc_res_nsend.
* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname2_r): Allocate
just 1K answer buffer on the stack, use __libc_res_nsearch instead
of res_nsearch.
(_nss_dns_gethostbyaddr_r): Similarly with __libc_res_nquery.
* resolv/nss_dns/dns-network.c (_nss_dns_getnetbyaddr_r): Likewise.
(_nss_dns_getnetbyname_r): Similarly with __libc_res_nsearch.
* resolv/gethnamaddr.c (gethostbyname2): Likewise.
(gethostbyaddr): Similarly with __libc_res_nquery.
* resolv/Versions (libresolv): Export __libc_res_nquery and
__libc_res_nsearch at GLIBC_PRIVATE.
2002-05-21 Jakub Jelinek <jakub@redhat.com>
* resolv/resolv.h (struct __res_state): Remove unused nstimes.
Add nsmap.
* resolv/res_init.c (__res_vinit): Initialize nsmap array.
Remove nstimes setting.
(res_nclose): Check all MAXNS nameservers with non-NULL nsaddrs.
* resolv/res_send.c (res_nsend): Don't close unconditionally if
there is mix of IPv6 and IPv4 nameservers.
Use nsmap array to find free slots and preserve nameserver ordering.
Fix RES_ROTATE.
2001-01-03 Jakub Jelinek <jakub@redhat.com>
* resolv/resolv.h (struct __res_state): Add nsinit field.
* resolv/res_send.c (res_nsend): Use it instead of nscount.
* resolv/res_init.c (__res_vinit): Initialize it.
(res_nclose): Clear it instead of nscount.
* malloc/mtrace.pl: Fix matching of addresses.
Patch by Aharon Robbins <arnold@skeeve.com>.
2000-07-26 Ulrich Drepper <drepper@redhat.com>
* resolv/res_init.c: Add support for nameserver communication with
IPv6.
* resolv/res_send.c: Likewise.
* resolv/resolv.h (struct __res_state): Store IPv6 address, not IPv4
in nsaddrs field.
Patch by <venaas@nvg.ntnu.no>.
* elf/Makefile (tests): Add nodlopen. Add rules to generate nodlopen.
* include/dlfcn.h: Define __RTLD_DLOPEN.
* elf/dl-load.c (_dl_map_object_from_fd): If DF_1_NOOPEN is set
and this is a dlopen() call, do not load the binary.
* dlfcn/dlopen.c: Add __RTLD_DLOPEN to mode passed down to _dl_open.
* dlfcn/dlopenold.c: Likewise.
* configure.in: Add test for -z nodelete option.
* config.make.in: Define have-z-nodelete with libc_cv_z_nodelete.
2000-07-20 Mark Kettenis <kettenis@gnu.org>
Make Hesiod NSS module thread-safe.
* hesiod/README.hesiod: Update.
* hesiod/Versions [GLIBC_2.2]: Add _nss_hesiod_getservbyport_r,
_nss_hesiod_setprotoent, _nss_hesiod_endprotoent,
_nss_hesiod_getprotobyname_r, and _nss_hesiod_getprotobynumber_r.
* hesiod/Makefile (libnss_hesiod-routines): Add hesiod-init and
hesiod-proto.
* hesiod/nss_hesiod/hesiod-init.c: New file.
* hesiod/nss_hesiod/hesiod-pwd.c: Rewritten for thread-safeness.
* hesiod/nss_hesiod/hesiod-grp.c: Likewise.
* hesiod/nss_hesiod/nss_hesiod.h: New file.
* hesiod/nss_hesiod/hesiod-service.c
(_nss_hesiod_getservbyport_r): New function. Provide support for
looking up services by port number.
* hesiod/nss_hesiod/hesiod-proto.c: New file.
* hesiod/hesiod.c: Update from BIND 8.2.3-T5B.
* hesiod/hesiod.h: Likewise.
* hesiod/hesiod_p.h: Likewise.
2000-07-20 Mark Kettenis <kettenis@gnu.org>
Fix problems with `struct __res_state' getting too big.
* resolv/resolv.h (struct __sockaddr_in): New definition.
(struct __res_state): Use __sockaddr_in instead of sockaddr_in in
the private parts of the structure to save some space.
* resolv/res_send.c (res_nsend): Cast &EXT(statp).nsaddrs[ns] to
(struct sockaddr_in *) in call to sock_eq.
Use memcpy to copy statp->nsaddr_list[ns] to &EXT(statp).nsaddrs[ns].
2000-07-20 Ulrich Drepper <drepper@redhat.com>
* sysdeps/mach/hurd/dl-sysdep.c: Likewise.
1999-12-03 Andreas Jaeger <aj@suse.de>
* nss/getXXbyYY.c: Include <resolv.h>
(FUNCTION_NAME): Use res_ninit instead of res_init.
* nss/getXXbyYY_r.c [NEED__RES]: Include <resolv.h> for _res
declaration and prototypes.
Remove extra _res declaration.
(INTERNAL): Use thread aware res_ninit function.
* inet/gethstbyad_r.c: Include <resolv.h>.
* resolv/res_data.c: Update from Bind 8.2.2-P5. Moved res_init to
res_libc.c. Disabled unneeded functions.
* resolv/res_libc.c: New file.
* Versions.def: Add version GLIBC_2.2 for libpthread.
Add versions GLIBC_2.1 and GLIBC_2.2 for libresolv.
* include/resolv.h: Add internal interfaces.
* resolv/Makefile (routines): Add new files.
(libresolv-routines): Likewise.
(distribute): Likewise.
* resolv/gethnamaddr.c: Use thread safe resolver functions.
* resolv/nss_dns/dns-host.c: Likewise.
* resolv/nss_dns/dns-network.c: Likewise.
* resolv/arpa/nameser.h: Update from Bind 8.2.2-P5.
* resolv/nsap_addr.c: Likewise.
* resolv/res_comp.c: Likewise.
* resolv/res_debug.c: Likewise.
* resolv/res_init.c: Likewise.
* resolv/res_mkquery.c: Likewise.
* resolv/res_query.c: Likewise.
* resolv/res_send.c: Likewise.
* resolv/resolv.h: Likewise.
* resolv/Versions: Add __res_state and __res_ninit with version
GLIBC_2.2 to libc.
Add new interfaces with version GLIBC_2.2 to libresolv.
* resolv/Banner: Update.
* include/arpa/nameser_compat.h: New file.
* resolv/ns_name.c: New file from Bind 8.2.2-P5.
* resolv/ns_netint.c: Likewise.
* resolv/ns_parse.c: Likewise.
* resolv/ns_print.c: Likewise.
* resolv/ns_samedomain.c: Likewise.
* resolv/ns_ttl.c: Likewise.
* resolv/arpa/nameser_compat.h: Likewise.
* resolv/res_debug.h: Likewise.
Some patches are based on work done by Adam D. Bradley
<artdodge@cs.bu.edu>.
* sysdeps/unix/sysv/linux/configure.in: Remove check for ldconfig,
set always use_ldconfig instead.
1998-09-14 11:26 Ulrich Drepper <drepper@cygnus.com>
* wcsmbs/wcsmbs-tst1.c: Include stdlib.h.
1998-09-14 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* libc-work/nis/nss_nisplus/nisplus-service.c
(_nss_nisplus_parse_servent): Convert port in network byte order.
1998-09-14 07:53 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
* stdlib/stdlib.h: Add a switch, __need_malloc_and_calloc,
to provide only malloc and calloc.
* include/stdlib.h: Support the above.
* string/bits/string2.h: Use __need_malloc_and_calloc when
including stdlib.h.
(__string2_1bptr_p): Avoid -Wbad-function-cast warnings.
* iconvdata/iso-2022-jp.c: Include <stdlib.h>.
* iconvdata/iso646.c: Include <stdlib.h>.
1998-09-14 07:51 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sunrpc/rpc_cout.c: Add braces around ambiguous else.
* sysdeps/libm-ieee754/w_pow.c: Likewise.
* sysdeps/libm-ieee754/w_powf.c: Likewise.
* sysdeps/libm-ieee754/w_powl.c: Likewise.
1998-09-14 07:57 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
* stdio-common/stdio_lim.h.in: New file. All parameters
are adjustable at build time.
* Rules: Add a rule to build bits/stdio_lim.h from
stdio-common/stdio_lim.h.in. (It has to be in Rules so that
all subdirectories know how to make the file. It can't be
in Makerules because then it gets built at top level and the
dependencies are wrong.)
* stdio-common/Makefile (distribute): Add stdio_lim.h.in.
* sysdeps/unix/sysv/linux/Makefile: Delete rules to make
stdio_lim.h.
* sysdeps/unix/sysv/linux/stdio_lim.h.in: Removed.
* sysdeps/unix/sysv/linux/Dist: Take out stdio_lim.h.in.
* sysdeps/posix/Makefile: Removed.
* sysdeps/posix/mk-stdiolim.c: Removed.
* sysdeps/generic/bits/stdio_lim.h: Removed.
1998-09-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* argp/argp-help.c: Fixup indentation.
* nss/nss_files/files-alias.c: Quiet -Wparentheses warning.
* resolv/nss_dns/dns-network.c: Likewise.
* resolv/res_send.c: Likewise.
* rt/aio_cancel.c: Likewise.
* rt/aio_misc.c: Likewise.
1998-09-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (install-symbolic-link): Remove the link list file at last.
* Makerules (install-clean-symbolic-link-list): Removed.
1998-09-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* timezone/tst-timezone.c: Print time in UTC to get consistent
output.
1998-09-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/rtld.c (_dl_rpath): Removed.
* elf/dl-support.c (_dl_path): Removed.
* elf/Makefile ($(objpfx)ld.so): Don't pass -rpath.
(CFLAGS-dl-support.c): Removed.
* elf/dl-load.c (env_path_list): Renamed from fake_path_list. All
uses changed.
(_dl_init_paths): Always set env_path_list from LD_LIBRARY_PATH,
instead of appending it to the main map's rpath info.
(_dl_map_object): Consistently use LD_LIBRARY_PATH after all
DT_RPATHs. This makes it effective again.
(decompose_rpath): Remove second parameter, callers changed.
(fillin_rpath): Allocate enough space in curwd.
(expand_dynamic_string_token): Cope with get_origin returning -1.
1998-09-14 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* libc-work/nis/nss_compat/compat-pwd.c: Add support for
passwd.adjunct.
* nis/nss_nis/nis-pwd.c (_nss_nis_getpwent_r): Correct test for
invalid password.
1998-09-13 18:06 Ulrich Drepper <drepper@cygnus.com>
* locale/programs/locale.c: Update dates.
1997-09-16 02:14 Ulrich Drepper <drepper@cygnus.com>
Implementation of Hesiod NSS module by Mark Kettenis.
* hesiod/Makefile: New file.
* hesiod/hesiod.c: New file.
* hesiod/hesiod.h: New file.
* hesiod/hesiod_p.h: New file.
* hesiod/libnss_hesiod.map: New file.
* hesiod/nss_hesiod/hesiod-grp.c: New file.
* hesiod/nss_hesiod/hesiod-pwd.c: New file.
* hesiod/nss_hesiod/hesiod-service.c: New file.
* sysdeps/unix/inet/Subdirs: Add hesiod.
* shlib-versions: Add version number for libnss_hesiod.
* libio/iolibio.h: Remove definition of _IO_* macros.
* libio/fileops.c: Define close, fstat, lseek, read, and write as
macros to use __ protected versions. Use those functions instead
of _IO_* functions.
* libio/iopopen.c: Define _IO_close to close.
* manual/math.texi: Explain the use of the optimizing inline
functions.
Describe rand_r function and tell about SysV RNGs in introduction.
* resolv/res_send.c (res_send): Use socklen_t type for `fromlen'
variable.
* string/Makefile (tests): Add noinl-tester.
* string/noinl-tester.c: New file.
* string/tester.c: Add more stpcpy tests for constant arguments for
all short lengths.
* string/string.h: Always declare __bzero.
Describe __NO_STRING_INLINES.
Always include <bits/string.h>.
* string/bits/string2.h: Add warning about direct use.
Change __strcpy_small and __stpcpy_small implementation to use
macros and provide alternative for platforms which cannot do
unaligned stores.
* sysdeps/i386/bits/string.h: Don't define anything is
__NO_STRING_INLINES is defined.
* sysdeps/i386/i486/bits/string.h: Change __strcpy_small and
__stpcpy_small implementation to use macros and provide
alternative for platforms which cannot do unaligned stores.
* sysdeps/alpha/bzero.S: Define bzero as weak alias of __bzero.
* sysdeps/generic/bzero.c: Likewise.
* sysdeps/i386/bzero.c: Likewise.
* sysdeps/i386/i586/bzero.S: Likewise.
* sysdeps/vax/bzero.s: Likewise.
* sysdeps/generic/bits/select.h: Don't use ugly casts to access array.
* sysdeps/i386/bits/select.h: Likewise.
* sysdeps/i386/fpu/bits/mathinline.c (__finite): Relax register
constraints a bit.
Don't define and test for _BITS_MATHINLINE_H. Emit warning if used
directly and not through math.h.
* sysdeps/i386/i486/atomicity.h: Change return type of compare_and_swap
to char to get better code. Fix typo.
* sysdeps/stub/atomicity.h: Fix typo.
1997-09-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/generic/stpcpy.c: #undef stpcpy and __stpcpy.
1997-09-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/bits/string2.h: Add prototypes to avoid warning.
1997-09-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/bits/string2.h (strsep): Fix handling of empty REJECT.
(__strsep_1c): Handle NULL and empty string.
(__strsep_g): Likewise.
1997-09-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* catgets/Makefile (extra-objs): Set this instead of generated.
* md5-crypt/Makefile (extra-objs): Add all object file variants of
onlymd5-entry.
1997-09-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/generic/sysd-stdio.c (__stdio_read): Fix typo in last
change.
1997-09-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/m68020/atomicity.h: New file.
1997-09-15 05:11 Ulrich Drepper <drepper@cygnus.com>
* posix/Makefile (distribute): Add globtest.c and globtest.sh.
Compile and run globtest if not cross-compiling.
* posix/globtest.c: New file.
* posix/globtest.sh: New file.
* posix/glob.c: Pretty print preprocessor stuff.
(glob_in_dir): If PATTERN is not really a pattern still check
whether it is a real file in the current directory and return
error if not.
Reported by Eugene Mamchits <eugin@ips.ras.ru>.
* libio/fileops.c (_IO_file_sync): Acquire lock before doing the work.
* libio/ioseekoff.c (_IO_seekoff): Likewise.
* libio/ioseekpos.c (_IO_seekpos): Likewise.
1997-09-13 18:06 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Prevent configuration for unsupported platforms.
1997-09-13 04:07 Ulrich Drepper <drepper@cygnus.com>
* elf/rtld.c (dl_main): Make sure we always have a file argument by
testing for < 2 arguments after recognizing the options.
1997-09-12 11:47 Fila Kolodny <fila@ibi.com>
* string/bits/string2.h (__strsep_1c): Cast out const from __retval.
(__strsep_g): Likewise.
1997-09-11 04:36 Ulrich Drepper <drepper@cygnus.com>
* db2/db_int.h: Define __set_errno if not yet available.
* db2/btree/bt_rec.c: Use __set_errno to set errno value.
* db2/clib/getlong.c: Likewise.
* db2/db185/db185.c: Likewise.
* db2/db185/db185_int.h: Likewise.
* db2/dbm/dbm.c: Likewise.
* db2/lock/lock_deadlock.c: Likewise.
* db2/log/log_archive.c: Likewise.
* elf/dl-profile.c: Implement mcount function.
* gmon/gmon.c: Use __profil not profil because of namespace pollution.
* gmon/mcount.c: Remove BSD kernel code.
Use compare&swap instruction if possible to change state variable.
Optimize frompc folding.
* gmon/sys/gmon.h (struct gmonparam): Change state field to long int.
* sysdeps/i386/i486/atomicity.h: New file.
* sysdeps/stub/atomicity.h: New file.
* sysdeps/mach/hurd/profil.c: Define function as __profil and make
profil weak alias.
* sysdeps/posix/profil.c: Likewise.
* string/bits/string2.h: New file.
* include/bits/string2.h: New file.
* string/Makefile (routines): Add mempcpy.
(tests): Add inl-tester.
Remove _D__NO_STRING_INLINES from CFLAGS-* variables.
* sysdeps/generic/mempcpy.c: New file.
* sysdeps/generic/memccpy.c: Undef function name to enable definition
as macro.
* sysdeps/generic/memchr.c: Likewise.
* sysdeps/generic/memcmp.c: Likewise.
* sysdeps/generic/memmem.c: Likewise.
* sysdeps/generic/memmove.c: Likewise.
* sysdeps/generic/strcat.c: Likewise.
* sysdeps/generic/strchr.c: Likewise.
* sysdeps/generic/strcmp.c: Likewise.
* sysdeps/generic/strcpy.c: Likewise.
* sysdeps/generic/strcspn.c: Likewise.
* sysdeps/generic/strlen.c: Likewise.
* sysdeps/generic/strncat.c: Likewise.
* sysdeps/generic/strncmp.c: Likewise.
* sysdeps/generic/strncpy.c: Likewise.
* sysdeps/generic/strpbrk.c: Likewise.
* sysdeps/generic/strrchr.c: Likewise.
* sysdeps/generic/strsep.c: Likewise.
* sysdeps/generic/strspn.c: Likewise.
* sysdeps/generic/strstr.c: Likewise.
* sysdeps/generic/strtok.c: Likewise.
* sysdeps/generic/strtok_r.c: Likewise.
* sysdeps/i386/memset.c: Likewise.
* sysdeps/i386/bits/string.h: Correct a few types and constraints.
* sysdeps/i386/i486/bits/string.h: Heavy rewrites and optimizations.
* string/stratcliff.c: Undefine __USE_STRING_INLINES.
* string/tst-strlen.c: Likewise.
* string/string.h: Add prototype for mempcpy. Include bits/string2.h
header always if optimizing.
* intl/dcgettext.c: Don't unconditionally define stpcpy, only if not
yet defined.
* intl/l10nflist.c: Likewise.
* string/tester.c: Add copyright and make little cleanups.
* inet/test_ifindex.c: Change type of ni variable to unsigned int.
* locale/programs/ld-ctype.c (struct locale_ctype_t): Change type
of fields map_collection_max and map_collection_act to size_t.
* nss/libnss_files.map: Group entries.
* posix/unistd.h: Add prototype for __setpgid and __profil.
* sysdeps/generic/crypt.h: Declare __crypt_r.
* sysdeps/i386/bits/select.h: Fix fatal bugs, use correct casts now.
* sysdeps/i386/fpu/bits/mathinline.h (isgreater, isgreaterequal,
isless, islessequal, islessgreater, isunordered): Optimize a bit.
* sysdeps/stub/ftruncate.c: Include missing header for prototype.
* sysdeps/stub/getdents.c: Likewise.
* sysdeps/stub/reboot.c: Likewise.
* sysdeps/stub/swapon.c: Likewise.
* sysdeps/stub/syscall.c: Likewise.
* sysdeps/stub/ualarm.c: Likewise.
* sysdeps/stub/usleep.c: Likewise.
* sysdeps/unix/sysv/linux/if_index.c: Don't compile or use opensock
if SIOGIFINDEX and SIOGIFNAME are not defined.
* sysdeps/unix/sysv/linux/net/if.h: Add IFF_PORTSEL and IFF_AUTOMEDIA
according to recent kernel changes.
1997-09-10 21:32 Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de>
* Makeconfig: Use $(have-initfini) instead of $(elf) to figure out
the installed name of the startup code.
(common-generated): Add version.mk.
* Makefile (distclean-1): Add glibcbug.
* Makerules: Replace -lgcc by $(gnulib).
* catgets/Makefile (generated): Add xmalloc.o.
* csu/Makefile (generated): Replace align.h and end.h by defs.h to
match the generated file.
* manual/Makefile (mostlyclean): Add stub-manual and stamp.o.
(realclean): Changed to remove chapters-incl[12].
* po/Makefile (realclean): New rule to remove the generated .mo files.
* time/Makefile: Only include zonefile dependencies if $(no_deps) is
not true to avoid make clean failure when directory time doesn't exist
yet.
(generated): Add tzselect.
* stdio/fgets.c (fgets): Add casts to reduce gcc warning noise.
* stdio/internals.c (flushbuf): Likewise.
* stdio/linewrap.c (lwupdate): Likewise.
* stdio/memstream.c (enlarge_buffer): Likewise.
* stdio-common/vfscanf.c (_IO_vfscanf): Likewise.
* time/tzset.c (compute_change): Likewise.
* misc/init-misc.c (__init_misc): Only declare static if HAVE_GNU_LD
is defined.
* sysdeps/posix/pipestream.c (FUNC): Change to generate ANSI C style
functions.
* sysdeps/stub/init-posix.c: Likewise.
* sysdeps/stub/profil.c: Likewise.
* munch-tmpl.c (__libc_init): Convert to ANSI C style declaration to
reduce gcc warning noise.
* stdio/glue.c (_filbuf, _flsbuf): Likewise.
* stdio/obstream.c (grow, seek, input, init_obstream): Likewise.
* stdio/vasprintf.c (enlarge_buffer): Likewise.
* sysdeps/generic/sysd-stdio.c (__stdio_read, __stdio_write,
__stdio_seek, __stdio_close, __stdio_fileno, __stdio_open,
__stdio_reopen): Likewise.
* sysdeps/posix/defs.c (_cleanup): Likewise.
* time/offtime.c (__offtime): Add cast.
* posix/getopt.c: Don't use text_set_element if not defined.
* configure.in: Provide a check for underscores before user labels
that works even when the compiler used for building doesn't work
(like when there is no C library). Use the old way if the compiler
works.
1997-09-10 05:08 David S. Miller <davem@caip.rutgers.edu>
* sysdeps/unix/sysv/linux/sparc/bits/ioctls.h: The TC* ioctls use
'T' not 't' on SparcLinux.
* sysdeps/unix/sysv/linux/sparc/bits/termios.h: tcflag_t is 32 bits.
* sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S: Add aliases for
_longjmp and siglongjmp.
1997-09-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* libio/stdio.h: Add format attributes to the extra printf and
scanf like functions.
* stdio/stdio.h: Likewise.
1997-09-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* nis/nss_nisplus/nisplus-network.c (_nss_nisplus_getnetbyaddr_r):
Print tablename_val, not tablename_len.
* nis/nss_nisplus/nisplus-ethers.c (_nss_nisplus_getntohost_r):
Use sprintf instead of sprintf, the string always fits.
* nis/nss_nisplus/nisplus-hosts.c (_nss_nisplus_gethostbyaddr_r):
Likewise.
* nis/nss_nisplus/nisplus-network.c (_nss_nisplus_getnetbyaddr_r):
Likewise.
* nis/nss_nisplus/nisplus-proto.c
(_nss_nisplus_getprotobynumber_r): Likewise.
* nis/nss_nisplus/nisplus-rpc.c (_nss_nisplus_getrpcbynumber_r):
Likewise.
* nis/nss_nisplus/nisplus-service.c
(_nss_nisplus_getservbynumber_r): Likewise.
* nis/nss_nisplus/nisplus-alias.c (_nss_create_tablename): Use
__stpcpy, __stpncpy and __strdup instead of public names.
* nis/nss_nisplus/nisplus-ethers.c (_nss_create_tablename):
Likewise.
* nis/nss_nisplus/nisplus-grp.c (_nss_create_tablename): Likewise.
* nis/nss_nisplus/nisplus-hosts.c (_nss_create_tablename):
Likewise.
* nis/nss_nisplus/nisplus-netgrp.c (_nss_nisplus_parse_netgroup):
Likewise.
* nis/nss_nisplus/nisplus-network.c (_nss_nisplus_parse_netent):
Likewise.
(_nss_create_tablename): Likewise.
* nis/nss_nisplus/nisplus-proto.c (_nss_nisplus_parse_protoent):
Likewise.
(_nss_create_tablename): Likewise.
* nis/nss_nisplus/nisplus-pwd.c (_nss_create_tablename):
Likewise.
* nis/nss_nisplus/nisplus-rpc.c (_nss_nisplus_parse_rpcent):
Likewise.
(_nss_create_tablename): Likewise.
* nis/nss_nisplus/nisplus-service.c (_nss_nisplus_parse_servent):
Likewise.
(_nss_create_tablename): Likewise.
* nis/nss_nisplus/nisplus-spwd.c (_nss_create_tablename):
Likewise.
* libc.map: Export __stpcpy and __strdup.
1997-09-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* math/Makefile (CFLAGS-test-float.c, CFLAGS-test-double.c,
CFLAGS-test-ldouble.c): Pass -ffloat-store to avoid excessive
precision.
1997-09-09 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* include/rpc/auth_des.h: New file.
1997-09-09 Paul Eggert <eggert@twinsun.com>
* time/mktime.c (__mktime_internal): Declare sec_requested even if
!LEAP_SECONDS_POSSIBLE, since it's needed at the end when checking
for time_t overflow.
1997-09-09 22:11 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/posix/getcwd.c: Correct test for too small buffer.
Reported by Erik Troan <ewt@redhat.com>.
* elf/dl-close.c: Include <bits/libc-lock.h>, not <libc-lock.h>.
* elf/dl-open.c: Likewise.
1997-09-07 17:09 Richard Henderson <rth@cygnus.com>
* sysdeps/alpha/Makefile: Kill setjmp_aux.
* sysdeps/alpha/bits/setjmp.h: Rewrite in terms of an array.
* sysdeps/alpha/__longjmp.c: Remove.
* sysdeps/alpha/setjmp_aux.c: Remove.
* sysdeps/alpha/__longjmp.S: New file.
* sysdeps/alpha/bsd-_setjmp.S: Stub out.
* sysdeps/alpha/bsd-setjmp.S: Likewise.
* sysdeps/alpha/setjmp.S: Do the work; don't call __setjmp_aux.
Move _setjmp and setjmp from bsd-*.S.
1997-09-06 20:20 Ulrich Drepper <drepper@cygnus.com>
* include/rpc/auth.h: New file.
* include/rpc/auth_unix.h: New file.
1997-09-06 Paul Eggert <eggert@twinsun.com>
Fix gmtime so that it reports leap seconds when TZ
indicates that leap seconds are desired.
* time/gmtime.c (<stddef.h>): Remove unnecessary include.
(gmtime): Put after gmtime_r, to help the compiler inline.
(__tz_convert): New decl.
(gmtime_r): Use __tz_convert instead of __offtime,
so that leap seconds are handled correctly.
* time/localtime.c (<errno.h>, <libc-lock.h>): Remove includes that
are now unnecessary.
(__tzset_internal, __tz_compute, __tzfile_compute, __use_tzfile,
__tzset_lock): Remove extern decls that are now unnecessary.
(localtime_internal): Moved to __tz_convert in tzset.c.
so that localtime and gmtime can both use it easily.
(localtime): Put after localtime_r, to help the compiler inline.
(localtime_r): Use __tz_convert instead of localtime_internal.
* time/strftime.c (__tz_compute): Remove unused (and now incorrect)
decl.
* time/tzfile.c (__tzfile_compute): New arg USE_LOCALTIME.
* time/tzset.c (<errno.h>): Include.
(_tmbuf): New decl.
(__tzfile_compute): New function.
(tz_compute): Renamed from __tz_compute. No longer extern.
Remove redundant call to tzset_internal.
(tzset_internal): Renamed from __tzset_internal. No longer extern.
(tzset_lock): Renamed from __tzset_lock. No longer extern.
(__tz_convert): New function, containing functionality of old
localtime_internal function, plus locking and optional UTC.
1997-09-06 Paul Eggert <eggert@twinsun.com>
* time/tzfile.c (__tzfile_read): Don't read a file if TZ is the empty
string, just use UTC without leap seconds. This is for compatibility
with the Olson code.
1997-09-06 Paul Eggert <eggert@twinsun.com>
* time/tzset.c (__tzname_max): Lock tz data structures before
invoking tzset_internal.
* time/tzfile.c: Define compute_tzname_max statically.
1997-09-07 10:57 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/nis_call.c: Remove not longer necessary HAVE_SECURE_RPC ifdefs.
* nis/nis_intern.h: Likewise.
* nis/nss_nis/nis-publickey.c: Likewise.
* nis/nss_nisplus/nisplus-publickey.c: Likewise.
* nis/ypclnt.c: Likewise.
* sunrpc/auth_des.c: Don't dereference NULL pointer,
initialize ad->ad_timediff.
* sunrpc/auth_none.c: Don't define our own prototypes, use the one
from the header files.
* sunrpc/auth_unix.c: Likewise.
* sunrpc/clnt_raw.c: Likewise.
* sunrpc/clnt_tcp.c: Likewise.
* sunrpc/rpc_cmsg.c: Likewise.
* sunrpc/key_call.c: Fix signal handling.
* sunrpc/openchild.c: Don't use /bin/sh to start /usr/etc/keyenvoy,
or we will get a deadlock with NIS+.
* sunrpc/rpc/auth.h: Add prototype for xdr_opaque_auth, don't define
HAVE_SECURE_RPC.
1997-09-07 15:51 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/bits/select.h [__GNUC__] (__FD_ZERO, __FD_SET, __FD_CLR,
__FD_ISSET): Use correct casts to address array correctly.
Reported by urbanw@cs.umu.se.
1997-09-07 05:07 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-close.c: Include <bits/libc-lock.h>, not <libc-lock.h>.
* elf/dl-open.c: Likewise.
* sysdeps/i386/memset.c: Undefine memset in case the header with the
optimized functions is included.
Patches by NIIBE Yutaka <gniibe@mri.co.jp>.
* sysdeps/i386/bits/string.h [__PIC__] (strcspn, strspn, strpbrk,
strsep): Use register for second parameter.
* sysdeps/i386/i486/bits/string.h: Likewise.
Reported by NIIBE Yutaka <gniibe@mri.co.jp>.
1997-09-03 09:48 Geoff Keating <geoffk@ozemail.com.au>
* math/libm-test.c: Change various tolerances to match what the
tested routines can actually provide.
* math/Makefile: Add new tests.
* math/atest-sincos.c: New file.
* math/atest-exp.c: New file.
* csu/Makefile: Give initfini.s and initfiniS.s their own
CFLAGS-* macros so they can be overridden.
* sysdeps/powerpc/Makefile [subdir=csu]: Override flags for
initfiniS.s to use -fpic instead of -fPIC, because the sed script
breaks otherwise.
* sysdeps/powerpc/Makefile [build-shared]: Use -fpic not -fPIC for
efficiency.
* sysdeps/powerpc/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE):
Don't use register 0, to let _mcount be in a shared object.
* sysdeps/powerpc/dl-machine.h: Use full sentences in comments.
Generally clean up. Suppress some code we don't need when relocating
ld.so.
* sysdeps/powerpc/test-arith.c: Change loop indices to size_t when
appropriate to suppress gcc warning.
* resolv/res_send.c: Suppress warning.
* sunrpc/xdr_sizeof.c: Suppress warning.
* FAQ: Add ppc-linux.
* manual/maint.texi: Add ppc-linux. Explain that gcc can't build it
yet.
* sysdeps/unix/sysv/linux/powerpc/profil-counter.h: Correct for
current kernels.
1997-08-15 07:45 Geoff Keating <geoffk@ozemail.com.au>
* stdlib/fmtmsg.c: Use two parameters for __libc_once_define.
* sysdeps/i386/machine-gmon.h: Correct typo.
* sysdeps/unix/sysv/linux/powerpc/bits/mman.h: Change to match
kernel.
* sysdeps/generic/dl-sysdep.c: Add hook for bizzare PPC argument hack.
* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Rewrite to use
sysdeps/linux/dl-sysdep.c.
* sysdeps/powerpc/Makefile [subdir=gmon]: Compile ppc-mcount.
* sysdeps/powerpc/machine-gmon.h: Use ppc-mcount.
* sysdeps/powerpc/ppc-mcount: New file.
The following are mostly changes to allow profiling:
* sysdeps/powerpc/add_n.S: Added.
* sysdeps/powerpc/add_n.s: Removed.
* sysdeps/powerpc/addmul_1.S: Added.
* sysdeps/powerpc/addmul_1.s: Removed.
* sysdeps/powerpc/bsd-_setjmp.S: Use JUMPTARGET macro.
* sysdeps/powerpc/bsd-setjmp.S: Use JUMPTARGET macro.
* sysdeps/powerpc/lshift.S: Added.
* sysdeps/powerpc/lshift.s: Removed.
* sysdeps/powerpc/memset.S: Added.
* sysdeps/powerpc/memset.s: Removed.
* sysdeps/powerpc/mul_1.S: Added.
* sysdeps/powerpc/mul_1.s: Removed.
* sysdeps/powerpc/rshift.S: Added.
* sysdeps/powerpc/rshift.s: Removed.
* sysdeps/powerpc/s_copysign.S: Use ENTRY, END, weak_alias macros.
* sysdeps/powerpc/s_fabs.S: Use ENTRY, END, weak_alias macros.
* sysdeps/powerpc/setjmp.S: Use JUMPTARGET macro.
* sysdeps/powerpc/strchr.S: Added.
* sysdeps/powerpc/strchr.s: Removed.
* sysdeps/powerpc/strcmp.S: Added.
* sysdeps/powerpc/strcmp.s: Removed.
* sysdeps/powerpc/strlen.S: Added.
* sysdeps/powerpc/strlen.s: Removed.
* sysdeps/powerpc/sub_n.S: Added.
* sysdeps/powerpc/sub_n.s: Removed.
* sysdeps/powerpc/submul_1.S: Added.
* sysdeps/powerpc/submul_1.s: Removed.
* sysdeps/unix/sysv/linux/powerpc/_exit.S: Removed.
* sysdeps/unix/sysv/linux/powerpc/brk.S: Added.
* sysdeps/unix/sysv/linux/powerpc/brk.c: Removed.
* sysdeps/unix/sysv/linux/powerpc/clone.S: Use new macros. Fix
various bugs. Document that it isn't tested.
* sysdeps/unix/sysv/linux/powerpc/sigreturn.S: Make look like
sysdeps/unix/_exit.S.
* sysdeps/unix/sysv/linux/powerpc/socket.S: Use new macros.
* sysdeps/unix/sysv/linux/powerpc/syscall.S: Use new macros.
* sysdeps/unix/sysv/linux/powerpc/sysdep.h: Define some new macros
to make assembler (possibly) more portable, allow profiling, etc.
1997-05-29 12:48 Ulrich Drepper <drepper@cygnus.com>
* io/ftw.c: Complete rewrite. Add implementation of `nftw'.
* io/ftw.h: Update for new implementation and XPG4.2.
* login/Makefile: Update for UTMP daemon implementation.
Update resolver code to bind-4.9.6-T1A.
* resolv/Banner: Update.
* nss/digits_dots.c: Adapt text address matching to T1A.
* nss/nss_files/files-hosts.c: Always use inet_pton.
* resolv/base64.c (b64_pton): Follow T1A but don't use this code since
it would lead to warnings.
* resolv/gethnamaddr.c (getanswer): Test host name for maximal length
at several places.
* resolv/inet_net_pton.c (inet_net_pton_ipv4): Correct typo in comment.
* resolv/res_comp.c (dn_expand): Check for overflow.
(dn_comp): Likewise.
* resolv/res_debug.c (precsize_aton): Better implementation.
* resolv/res_init.c (res_init): Make `buf' of size MAXDNAME.
* resolv/res_send.c (res_send): Check for overflow in descriptor set.
* resolv/nss_dns/dns-host.c (getanswer_r): Test host name for maximal
length at several places.
1997-05-29 12:51 Mark Kettenis <kettenis@phys.uva.nl>
* login/utmp-private.h (struct utfuncs): Add one more parameter
to updwtmp function.
Declare all three function jump tables.
* login/utmp.h: Declare __utmpname.
* login/getutent_r.c: Remove db backend and provide support for
utmpd backend.
* login/login.c: Use `updwtmp' function insteead of writing the
record ourself.
* login/logwtmp.c: Move `updwtmp' function to...
* login/updwtmp.c: ...here. New file.
* login/utmp_db.h: Removed.
* login/utmp_file.c: Add updwtmp function to write to file.
* login/utmp_daemon.c: New file. Daemon backend.
* login/utmpname.c: New file. Implementation of utmpname function.
* login/utmpdump.c: New file. Tool to dump utmp-like files.
* login/utmpd/connection.c: New file.
* login/utmpd/database.c: New file.
* login/utmpd/error.c: New file.
* login/utmpd/request.c: New file.
* login/utmpd/utmpd-private.h: New file.
* login/utmpd/utmpd.c: New file.
* login/utmpd/utmpd.h: New file.
* login/utmpd/xtmp.c: New file.
* login/utmpd/xtmp.h: New file.
1997-05-29 12:28 Jim Meyering <meyering@eng.ascend.com>
* time/strftime.c: Correct/normalize indentation in cpp directives.
1997-05-28 20:43 Philip Blundell <pjb27@cam.ac.uk>
* nis/nis_error.c: Include <string.h> to fix warning.
* nis/nis_print.c: Likewise.
* nis/nss_nisplus/nisplus-hosts.c: Arg 3 of map_v4v6_hostent
is int* not size_t*.
1997-05-28 21:56 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* math/cmathcalls.h: Correct typo in comment.
* inet/netinet/icmp6.h: Include <netinet/in.h> for in6_addr.
* sysdeps/unix/sysv/linux/netinet/ip_fw.h: Include <net/if.h> for
IFNAMSIZ.
* sysdeps/unix/sysv/linux/net/ppp_defs.h: Include <time.h> for
time_t.
* login/pty.h: Include <ioctl-types.h> for definition of struct
winsize.
* misc/regexp.h (compile): Correct typo.
* argp/argp.h: Put extern before __const in defintion of
argp_program_bug_address.
1997-05-29 00:20 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/wordsize-32/inttypes.h: Correct names of unsigned fast
and least types. Correct names of ?INT_FAST*_{MIN,MAX} macros.
* sysdeps/wordsize-64/inttypes.h: Likewise.
Reported by Andreas Jaeger <aj@arthur.rhein-neckar.de>.
1997-05-28 22:51 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/Makefile (make-ioctls-CFLAGS): Use generic
ttydefaults.h file instead of non-existing version in termios/sys.
Reported by Zack Weinberg <zack@rabi.phys.columbia.edu>.
* time/strptime.c (strptime_internal, case 'Y'): Restrict year
number to four digits and to representable range for 4 byte time_t
values.
Patch by H.J. Lu <hjl@lucon.org>.
1997-05-28 18:19 Philip Blundell <pjb27@cam.ac.uk>
* posix/execl.c: Include <alloca.h> to avoid warning.
1997-05-27 18:19 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* math/libm-test.c: Implement testing of inlined functions, make
output nicer, update comments.
* math/test-idouble.c: New file. Frontend for double tests of
inlined functions.
* math/test-ildoubl.c: New file. Frontend for long double tests of
inlined functions.
* math/test-ifloat.c: New file. Frontend for float tests of
inlined functions.
* math/test-longdouble.c: Rename to...
* math/test-ldouble.c: ...this.
* math/Makefile: Add rules for new test programs, change rules for
renaming of longdouble test.
1997-05-20 15:50 H.J. Lu <hjl@gnu.ai.mit.edu>
* sunrpc/rpc/svc.h (__dispatch_fn_t): New.
(svc_register): Use __dispatch_fn_t in prototype.
1997-05-28 17:02 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/bzero.c (bzero): Fix typo.
Patch by Witek Wnuk <spider@pest.waw.ids.edu.pl>.
1997-05-27 12:00 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/generic/vtimes.c: Use ISO C declaration style.
* sysdeps/unix/bsd/ualarm.c: Include <unistd.h> for prototype.
* sysdeps/generic/memccpy.c: Include <string.h> for prototype.
* signal/tst-signal.c (handler): Correct function declaration to
avoid warning.
* stdlib/testsort.c (compare): Likewise.
* string/tester.c: Likewise.
1997-05-27 14:16 Miles Bader <miles@gnu.ai.mit.edu>
* argp-help.c (argp_args_usage): Supply correct argp to filter_doc.
1997-05-27 17:51 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* db/hash/extern.h, db/hash/hash.c, db/hash/hash.h,
db/hash/hash_log2.c: Rename __log2 to __hash_log2 to avoid clash
with libm.
1997-05-27 14:47 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/e_atan2.c: Fix missing negate. Use __m81_test
instead of explicit comparisons.
1997-05-26 18:36 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* inet/netinet/icmp6.h: Remove use of <asm/bitops.h> which has no
place in a generic header and is no user include file.
Thu Dec 19 23:28:33 1996 Ulrich Drepper <drepper@cygnus.com>
* resolv/resolv.h: Update from BIND 4.9.5-P1.
* resolv/res_comp.c: Likewise.
* resolv/res_debug.c: Likewise.
* resolv/Banner: Update version number.
Thu Dec 19 20:58:53 1996 Ulrich Drepper <drepper@cygnus.com>
* elf/dlfcn.h: Add extern "C" wrapper.
* io/utime.h: Don't define NULL since this isn't allowed in POSIX.
* io/sys/stat.h: Declare `lstat' only if __USE_BSD ||
__USE_XOPEN_EXTENDED.
* locale/locale.h: Define NULL.
* math/math.c: Don't include <errno.h> to define math errors.
* stdlib/stdlib.h: Likewise.
* posix/unistd.h: Don't declare environ.
* posix/sys/utsname.h (struct utsname): Declare member domainname
as __domainname is !__USE_GNU.
* signal/signal.h: Declare size_t only if __USE_BSD ||
__USE_XOPEN_EXTENDED.
* stdio/stdio.h: Don't declare cuserid when __USE_POSIX, but
instead when __USE_XOPEN.
* string/string.h: Define strndup only if __USE_GNU.
* sysdeps/unix/sysv/linux/clock.c: New file.
* sysdeps/unix/sysv/linux/timebits.h: Define CLOCKS_PER_SEC as
1000000 per X/Open standard.
* features.h: Add code to recognize _POSIX_C_SOURCE value 199309.
Define __USE_POSIX199309.
* posix/unistd.h: Declare fdatasync only if __USE_POSIX199309.
* time/time.c: Declare nanosleep only if __USE_POSIX199309.
Patches by Rdiger Helsch <rh@unifix.de>.
* locale/locale.h: Add declaration of newlocale and freelocale.
* new-malloc/Makefile (distibute): Add mtrace.awk.
(dist-routines): Add mcheck and mtrace.
(install-lib, non-lib.a): Define as libmcheck.a.
* new-malloc/malloc.h: Add declaration of __malloc_initialized.
* new-malloc/mcheck.c: New file.
* new-malloc/mcheck.h: New file.
* new-malloc/mtrace.c: New file.
* new-malloc/mtrace.awk: New file.
* posix/unistd.h: Correct prototype for usleep.
* sysdeps/unix/bsd/usleep.c: De-ANSI-declfy. Correct return type.
* sysdeps/unix/sysv/linux/usleep.c: Real implementation based on
nanosleep.
* signal/signal.h: Change protoype of __sigpause to take two
arguments. Remove prototype for sigpause. Add two different
macros named sigpause selected when __USE_BSD or __USE_XOPEN
are defined. This is necessary since the old BSD definition
of theis function collides with the X/Open definition.
* sysdeps/posix/sigpause.c: Change function definition to also
fit X/Open definition.
* sysdeps/libm-i387/e_exp.S: Make sure stack is empty when the
function is left.
* sysdeps/libm-i387/e_expl.S: Likewise.
Patch by HJ Lu.
1996-12-17 Paul Eggert <eggert@twinsun.com>
* many, many files: Spelling corrections.
* catgets/catgetsinfo.h (mmapped):
Renamed from mmaped (in struct catalog_info.status).
* mach/err_kern.sub (err_codes_unix), string/stratcliff.c (main):
Fix spelling in message.
* po/libc.pot: Fix spelling in message for `zic'; this anticipates
a fix in the tzcode distribution.
Wed Dec 18 15:48:02 1996 Ulrich Drepper <drepper@cygnus.com>
* time/strftime.c: Implement ^ flag to cause output be converted
to use upper case characters.
* time/zic.c: Update from ADO tzcode1996n.
Wed Dec 18 14:29:24 1996 Erik Naggum <erik@naggum.no>
* time/strftime.c (add): Don't change global `i' until all is over.
Define NULL is not already defined.
Tue Dec 17 09:49:03 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* libio/iovsprintf.c (_IO_vsprintf): Change `&sf' to `&sf._sbf._f'
to avoid the need for a cast.
* libio/iovsscanf.c (_IO_vsscanf): Likewise.
* sunrpc/rpc/xdr.h: Add prototype for xdr_free.
Fri Oct 11 19:13:34 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/Makefile (CPPFLAGS): Set CHARMAP_PATH to
"$(i18ndir)/charmaps".
Fri Oct 11 22:12:41 1996 NIIBE Yutaka <gniibe@mri.co.jp>
* sysdeps/unix/sysv/linux/sys/procfs.h: Include <asm/user.h>
to get definition of FPU description struct.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=socket] (subdir_headers):
Add net/if.h, net/if_ppp.h, net/ppp-comp.h, net/ppp_defs.h,
net/if_arp.h, and net/route.h.
* sysdeps/unix/sysv/linux/net/if_arp.h: New file.
* sysdeps/unix/sysv/linux/net/route.h: New file.
Fri Oct 11 14:49:13 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/stub/readdir_r.c: New file. We need a stub version.
* sysdeps/stub/e_acosl.c: Likewise.
* sysdeps/stub/e_asinl.c: Likewise.
* sysdeps/stub/e_atan2l.c: Likewise.
* sysdeps/stub/e_expl.c: Likewise.
* sysdeps/stub/e_fmodl.c: Likewise.
* sysdeps/stub/e_log10l.c: Likewise.
* sysdeps/stub/e_logl.c: Likewise.
* sysdeps/stub/e_sqrtl.c: Likewise.
* sysdeps/stub/s_atanl.c: Likewise.
* sysdeps/stub/s_log1pl.c: Likewise.
* Makefile (distribute): Add nsswitch.h and netgroup.h.
* nss/Makefile (generated): db-netgrp.c is not generated.
* sysdeps/alpha/Dist: Add stxcpy.S and stxncpy.S.
* Make-dist (+out): Add $(dont_distribute).
Fri Oct 11 00:27:18 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* stdio-common/Makefile (routines): Add tmpnam_r.
Fri Oct 11 05:32:51 1996 Ulrich Drepper <drepper@cygnus.com>
* version.h: Bump version to 1.96.
Fri Oct 11 18:13:47 1996 Andreas Jaeger <aj@arthur.pfalz.de>
* stdio-common/tst-printf.c: Some more cleanups.
Fri Oct 11 02:48:02 1996 Ulrich Drepper <drepper@cygnus.com>
* resolv/arpa/nameser.h: Update from bind-4.9.5-T6B.
* resolv/resolv.h: Likewise.
* resolv/gethnamaddr.c: Likewise.
* resolv/res_comp.c: Likewise.
* resolv/res_debug.c: Likewise.
* resolv/res_init.c: Likewise.
* resolv/res_send.c: Likewise.
* resolv/Banner: Update version number.
* nss/nss_dns/dns-host.c: Update according to change in
resolv/gethnamaddr.c.
Fri Oct 10 20:52:28 1996 Ralph Loader <loader@maths.ox.ac.uk>
* crypt/md5.c (md5_stream): When reading the block in several
pieces append to instead of replace previously read data.
Thu Oct 10 15:53:17 1996 Richard Henderson <rth@tamu.edu>
* sysdeps/alpha/stxcpy.S ($unaligned): In single word copy, correct
last-byte-written bit for source word misalignment.
* sysdeps/alpha/strchr.c: Removed. There is now an assembler
version.
Thu Oct 10 17:17:23 1996 Ulrich Drepper <drepper@cygnus.com>
* sunrpc/Makefile (rpcsvc): Remove yp.x. The corrected version
comes with glibc-nis.
* sunrpc/rpcsvc/yp.x: Removed.
* nss/nss_files/files-netgr.c (_nss_netgroup_parseline): Test
for *CURSOR to be NULL and dump a core if yes.
Thu Oct 9 20:09:53 1996 Matthew Jacob <mjacob@feral.com>
* sysdeps/unix/sysv/linux/alpha/brk.S: Define _ERRNO_H before
including <errnos.h> to get error numbers.
Thu Oct 10 14:00:01 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/i386/sigcontext.h: Moved file...
* sysdeps/unix/sysv/linux/sigcontext.h: ...to here. So the
Alpha people find a correct file.
* sysdeps/libm-ieee754/w_cabs.c: We cannot make __cabsl simply
an alias of __cabs since the structures have different names.
* sysdeps/libm-ieee754/w_log10.c: Fix typo in weak_alias.
Reported by Matthew Jacob <mjacob@feral.com>.
simply a wrapper around the <linux/elfcore.h> file since the
Wed Aug 14 21:36:16 1996 Ulrich Drepper <drepper@cygnus.com>
* stdlib/strtod.c (STRTOD): Correct assertion about size of
wint_t and wchar_t. Reported by David Mosberger-Tang.
Mon Aug 12 22:40:16 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/dl-lookup.c (_dl_lookup_symbol): Remove fifth parameter
RELOC_ADDR and make NOPLT a set of flags. All callers
changed. Delete condition that checks for resolving to the
location being filled in. Add condition to skip the
executable's symbols if requested.
* elf/link.h: Change declaration of _dl_lookup_symbol
accordingly.
(DL_LOOKUP_NOEXEC, DL_LOOKUP_NOPLT): New definitions.
* elf/dl-reloc.c (RESOLVE): Remove second parameter and rename
NOPLT to FLAGS.
* elf/dl-runtime.c (RESOLVE): Likewise.
* elf/rtld.c (RESOLVE): Likewise.
* sysdeps/m68k/dl-machine.h (elf_machine_rela): Pass
DL_LOOKUP_NOEXEC as second argument to the RESOLVE macro if
processing a copy reloc, DL_LOOKUP_NOPLT for a jump slot
reloc, zero otherwise.
* sysdeps/alpha/dl-machine.h (elf_machine_rela): Likewise.
* sysdeps/i386/dl-machine.h (elf_machine_rel): Likewise.
* sysdeps/mips/dl-machine.h (elf_machine_rel): Likewise.
Wed Aug 14 17:57:08 1996 Ulrich Drepper <drepper@cygnus.com>
* MakeTAGS: Clean up use of --omit-header and -n for xgettext.
* po/header.pot: Add empty line at end.
Sun Aug 11 13:45:33 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* MakeTAGS (all-pot): Remove $P/errlist.pot, all error messages
are now in $P/stdio-common.pot.
(XGETTEXTFLAGS-errlist.pot): Variable removed.
Mon Aug 12 19:25:03 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makerules (do-ar, o-iterator-doit): Compute path to autolock
script at run time, not configure time.
* config.make.in, configure.in: Undo previous change.
Wed Aug 14 13:20:02 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/i386/close.S: Push return value of thread
on stack as argument for `_exit'. Reported by Andreas Schwab.
Mon Aug 12 19:36:25 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/m68k/clone.S: New file.
Wed Aug 14 04:22:35 1996 Richard Henderson <rth@tamu.edu>
* elf/dl-load.c (_dl_map_object): Save name in malloced memory.
(_dl_map_object_from_fd): Free name on error.
Wed Aug 14 13:00:09 1996 Ulrich Drepper <drepper@cygnus.com>
* string/strdup.c: Use result of memcpy to avoid reloading.
Tue Aug 13 00:55:03 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* shadow/sgetspent_r.c (__sgetspent_r): Copy string to buffer, not
the other way round.
* resolv/Makefile (libresolv-routines): Add base64, inet_net_ntop,
inet_net_pton, inet_net.
* resolv/arpa/nameser.h (__BIND): Update version number.
Mon Aug 12 19:03:22 1996 Thomas Bushnell n/BSG <thomas@psilocin.gnu.ai.mit.edu>
* sysdeps/generic/gnu/types.h: Declare __fd_mask as `unsigned long'.
* mach/Makefile (mach/mach_host.uh): Depend on
$(objpfx)/mach-syscalls.mk.
($(objpfx)mach-shortcuts.h): Depend on $(objpfx)mach/mach_host.h.
(This fixes a make loop; thanks to Marcus Daniels
<marcus@sysc.pdx.edu> for the patch.)
* sysdeps/mach/hurd/errnos.awk: Move EWOULDBLOCK check before errno==0
check. mib's clueless hacking broke it.
Thu Jul 18 04:27:21 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules ($(libdir)/libc.so): Add missing / after $(cryptobjdir).
Wed Jul 17 10:54:20 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/sysv/linux/alpha/start.S: Move to ...
* sysdeps/alpha/elf/start.S: here.
* misc/sys/ustat.h: New file.
* misc/ustat.h: Ditto.
* sysdeps/generic/ustatbits.h: Ditto.
* libc-orig/sysdeps/stub/ustat.c: Ditto.
* sysdeps/unix/sysv/linux/ustatbits.h: Ditto.
* misc/Makefile (headers): Mention ustat.h, sys/ustat.h, and
ustatbits.h.
(routines): Mention ustat.
* sysdeps/unix/sysv/linux/syscalls.list: Mention klogctl in
alphabetically correct place. Mention ustat.
* sysdeps/unix/alpha/sysdep.S: Make errno a bss symbol, not a
common symbol (makes errno accessible from gdb).
* login/pututline_r.c (pututline_r): Test ut_id in repositioning
test, not ut_type.
* login/logwtmp.c (logwtmp): Reimplemented. Must ensure that a
record always gets appended at end of file (wtmp is a log file,
after all). Set ut_type to DEAD_PROCESS if name is empty.
* login/getutid_r.c (getutid_r): Handle search for UT_TYPE in
separate loop from search for UT_ID. Fix code so it is in
sync with Unix man page.
* login/getutline_r.c (getutline_r): Stop searching only if
ut_line matches and type is either USER_PROCESS or LOGIN_PROCESS.
Tue Jul 16 15:06:18 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/sysv/linux/netinet/in.h: Base on <linux/in.h> to
avoid duplicate declarations.
Sun Jul 14 19:08:55 1996 David Mosberger-Tang <davidm@azstarnet.com>
* manual/maint.texi (Supported Configurations): Add alpha-gnu-linux
and alpha-gnu-linuxecoff targets.
Fri Jul 12 16:58:44 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/sysv/linux/netinet/in.h: Declare bindresvport().
Sat Jun 22 23:30:07 1996 David Mosberger-Tang <davidm@azstarnet.com>
* resolv/res_send.c (res_send): Declare FROMLEN as size_t instead
of int.
* resolv/res_comp.c (res_hnok): Use empty statement in place
of NULL (which generates a "useless expression" warning in
gcc).
* inet/netdb.h: Moved to resolv.
* inet/Makefile (headers): Remove netdb.h.
* resolv/Makefile (headers): Add netdb.h.
* resolv/gethnamaddr.c, resolv/inet_addr.c, resolv/netdb.h,
resolv/res_send.c: Updated from BIND-4.9.3-BETA26.
* hurd/thread-cancel.c: If SS->cancel_hook is not null, call it before
resuming the thread.
* hurd/hurd/signal.h (struct hurd_sigstate): New member `cancel_hook'.
* hurd/Makefile: Removed dep on hurd/signal.h for RPC stub objects.
Mon Aug 21 16:37:09 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* sysdeps/i386/dl-machine.h (elf_machine_rel): Grok R_386_NONE
relocs, and do nothing. Why the linker generates them we may
never know.
* sysdeps/mach/hurd/i386/intr-msg.h: New file.