(setup): Remove FUNC_NAME and ALL arguments, assume they are always
"setnetgrent" and 1.
(endnetgrent_hook): New function.
(internal_endnetgrent): Use it.
(__internal_setnetgrent_reuse): Use it. Adjust setup caller.
If status is NSS_STATUS_SUCCESS, yet action is continue, call
endnetgrent hook.
(internal_getnetgrent_r): Use __nss_lookup_function rather than
setup. Recompute getfct pointer after successful
__internal_setnetgrent_reuse. Don't use __nss_next.
(innetgr): Use __nss_lookup_function instead of __nss_lookup.
Adjust setup caller.
* nss/nss_files/files-netgrp.c (_nss_files_endnetgrent): Always clear
data_size and cursor. Add libnss_files_hidden_proto and
libnss_files_hidden_def.
(_nss_files_setnetgrent): Call _nss_files_endnetgrent on failure.
* nis/nss_nis/nis-netgrp.c (internal_endnetgrent): Always clear
data_size and cursor.
(_nss_nis_setnetgrent): Don't call internal_endnetgrent.
(_nss_nis_getnetgrent_r): Remove result->cursor == NULL handling.
* nis/nss_nisplus/nisplus-netgrp.c (internal_endnetgrent): Always clear
data_size and position.
(_nss_nisplus_setnetgrent): Don't call internal_endnetgrent.
2005-09-09 Ulrich Drepper <drepper@redhat.com>
* nss/getent.c (netgroup_keys): Call endnetgrent.
(main): Call mtrace.
* nss/nss_files/files-netgrp.c (_nss_files_setnetgrent): We don't
need locking for the stream. Use feof_unlocked.
2005-09-09 Jakub Jelinek <jakub@redhat.com>
2004-11-23 Jakub Jelinek <jakub@redhat.com>
* nss/nss_files/files-XXX.c (internal_getent): If parse_line returned
-1, also do H_ERRNO_SET (NETDB_INTERNAL).
2004-10-24 Ulrich Drepper <drepper@redhat.com>
* include/libc-symbols.h: Define hidden attribute macros for
libnss_files.
* include/netdb.h: Use libnss_files_hidden_proto for the parsers
defined in libnss_files, not libc_hidden_proto.
* include/netinet/ether.h: Likewise.
* include/rpc/netdb.h: Likewise.
* nss/nss_files/files-parse.c: Use hidden_def in parser definitions
instead of libc_hidden_def.
* nss/nss_files/files-netgrp.c: Add libnss_files_hidden_def to
_nss_netgroup_parseline definition.
2004-05-26 Jakub Jelinek <jakub@redhat.com>
* include/string.h (mempcpy, stpcpy): Add libc_hidden_builtin_proto.
* string/bits/string2.h (memset): Disable macro for GCC 3.0+.
(__mempcpy): Use __builtin_mempcpy for GCC 3.4+.
(strchr): For GCC 3.2+, only use __rawmemchr if second argument is
constant '\0' and first argument is not constant.
(__stpcpy): Use __builtin_stpcpy for GCC 3.4+.
(strncpy): Remove #ifdef _USE_STRING_ARCH_mempcpy variant.
For GCC 3.2+ use __builtin_strncpy.
(strncat): For GCC 3.2+ use __builtin_strncat.
(strcmp): For GCC 3.2+ use __builtin_strcmp if both arguments are
constant.
(strcspn, strspn, strpbrk): For GCC 3.2+, use builtin function
if both arguments are constant.
2004-05-26 Ulrich Drepper <drepper@redhat.com>
* nss/nss_files/files-hosts.c: Fix condition for looking up IPv4
mapped addresses in gethostbyaddr.
* sysdeps/unix/sysv/linux/ifreq.c (__ifreq): Fix memory handling.
* sysdeps/generic/ifreq.c (__ifreq): Fix memory handling.
* resolv/res_hconf.c (_res_hconf_reorder_addrs): Make clear that
realloc cannot fail.
* nss/nss_files/files-netgrp.c (EXPAND): Free buffer which cannot
be expanded.
* nis/nis_table.c: Clean up memory handling.
* nis/nis_subr.c (nis_getnames): Clean up memory handling.
* nis/nis_removemember.c (nis_removemember): Add comment
explaining use of realloc.
2001-11-22 Thorsten Kukuk <kukuk@suse.de>
* nss/nss_files/files-hosts.c (_nss_files_get##name##_r): Set
herrnop to NETDB_INTERNAL if we run out of buffer space.
2001-11-28 Ulrich Drepper <drepper@redhat.com>
* nss/nss_files/files-XXX.c (internal_getent): Correct input
overflow test for platforms with signed char.
Reported by Andrew Haley <aph@cambridge.redhat.com>.
2001-09-20 H.J. Lu <hjl@gnu.org>
* include/dlfcn.h (__RTLD_SPROF): New definiton.
* elf/dl-open.c (dl_open_worker): Return immediately after loading
for __RTLD_SPROF.
* elf/sprof.c (main): Default to the filename if soname doesn't exist.
(load_shobj): Call dlopen with `RTLD_LAZY | __RTLD_SPROF.
2001-09-20 H.J. Lu <hjl@gnu.org>
* elf/dl-profile.c (_dl_mcount): Use old *narcsp value for newarc,
don't add 1.
2001-09-22 Ulrich Drepper <drepper@redhat.com>
* nss/getent.c: Accept -s parameter to overwrite rules in
nsswitch.conf. Patch by Nalin Dahyabhai <nalin@redhat.com>.
* nss/nss_files/files-network.c (LINE_PARSER): Pad addr string
with as many ".0" as necessary to form a complete address
inet_network understands.
* nss/getent.c: Various cleanups. Use simpler and fewer function
calls.
2001-09-20 Martin Schwidefsky <schwidefsky@de.ibm.com>
* sysdeps/s390/s390-32/bits/setjmp.h: Correct pointer comparison in
_JMPBUF_UNWINDS.
* sysdeps/s390/s390-64/bits/setjmp.h: Likewise.
2001-09-22 Ulrich Drepper <drepper@redhat.com>
* iconvdata/Makefile: Add rules to build and distribute IBM1160 and
IBM1161.
* iconvdata/gconv-modules: Add entries for IBM1160 and IBM1161.
* iconvdata/ibm1160.c: New file.
* iconvdata/ibm1160.h: New file.
* iconvdata/ibm1161.c: New file.
* iconvdata/ibm1161.h: New file.
2001-09-19 Jakub Jelinek <jakub@redhat.com>
* sysdeps/alpha/dl-machine.h (elf_machine_load_address): Compute the
difference between base address and first PT_LOAD's virtual address,
not the base address.
2001-09-11 Tom Rix <trix@redhat.com>
* sysdeps/unix/sysv/aix/init-first.c (init): Use USE_NONONPTION_FLAG
ifdef for __getopt_clean_environment.
* sysdeps/unix/sysv/aix/libc-start.c: Add real implementation.
* sysdeps/unix/sysv/linux/x86_64/Dist: New file.
* sysdeps/x86_64/Dist: New file.
* sysdeps/x86_64/soft-fp/Dist: New file.
2001-07-06 Paul Eggert <eggert@twinsun.com>
* manual/argp.texi: Remove ignored LGPL copyright notice; it's
not appropriate for documentation anyway.
* manual/libc-texinfo.sh: "Library General Public License" ->
"Lesser General Public License".
2001-07-06 Andreas Jaeger <aj@suse.de>
* All files under GPL/LGPL version 2: Place under LGPL version
2.1.
2000-09-03 Ulrich Drepper <drepper@redhat.com>
* time/sys/time.h (gettimeofday): Move restrict for tz parameter
to the typedefs of __timezone_ptr_t.
Reported by MATSUMURA Hiromitsu <coji2@mb.infoweb.ne.jp>.
2000-09-02 Jakub Jelinek <jakub@redhat.com>
* nss/nss_files/files-hosts.c (HOST_DB_LOOKUP): Increment counter in
the loop.
2000-09-01 H.J. Lu <hjl@gnu.org>
* Makeconfig (built-program-cmd): Don't use the dynamic linker
to run a binary if it is in $(tests-static).
* Rules (binaries-static): Add $(tests-static).
* nss/nss_files/files-ethers.c: Use case-insensitive lookup.
(LINE_PARSER): Allow any number of spaces between ip address and number.
Fixes PR libc/1833, reported by rp010gf@voruta.vu.lt.
2000-07-25 Mark Kettenis <kettenis@gnu.org>
* nss/nss_files/files-netgrp.c (strip_whitespace): New function.
(_nss_netgroup_parseline): Use strip_whitespace to strip off any
leading and trailing spaces from host, user and domain name.
2000-07-25 Jes Sorensen <jes@linuxcare.com>
* csu/defs.awk: Add support for need_endp.
2000-07-25 Mark Kettenis <kettenis@gnu.org>
* resolv/resolv.h: Remove __P from res_send_qhook and
res_send_rhook typedefs.
2000-07-25 Bruno Haible <haible@clisp.cons.org>
* intl/tst-translit.c (main): Unset OUTPUT_CHARSET.
2000-07-23 Ulrich Drepper <drepper@redhat.com>
* nss/nss_files/files-hosts.c: Implement multi handling.
* resolv/Versions: Export _res_hconf for GLIBC_2.2 from libc.
2000-05-27 Ulrich Drepper <drepper@redhat.com>
* sysdeps/posix/getaddrinfo.c (gaih_inet): If req->ai_family ==
AF_UNSPEC don't allow the IPv6 lookup to return mapped IPv4 addresses.
* nss/nss_files/files-hosts.c (LINE_PARSER): Simplify. Correct
handling of AI_V4MAPPED flag.
* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname2_r): If lookup
of IPv6 address failed and RES_USE_INET6 bit in _res.options is set,
perform lookup for T_A type and tell getanswer_r to convert the
result with new argument.
(_nss_dns_gethostbyaddr_r): Pass zero as new argument to getanswer_r.
Don't convert addresses from IPv4 to IPv6 here.
(getanswer_r): Take new parameter indicating if mapping from IPv4 to
IPv6 is wanted. Allow qtype and type from reply to disagree if
IPv4 mapping has to be done. Perform mappings if required by the
caller and not if RES_USE_INET6 bit in _res.options is set.
Add several __builtin_expect.
* include/netdb.h: Change type of first parameter of __getnetbyaddr_r.
* inet/getnetbyad.c: Likewise.
* inet/getnetbyad_r.c: Likewise.
* nis/nss_nis/nis-network.c: Likewise.
* nis/nssplus_nis/nisplus-network.c: Likewise.
* nss/nss_files/files-network.c: Likewise.
* resolv/netdb.h: Define uint32_t if not already happened.
Include bits/netdb.h. Remove definition of struct netent.
Change type of first parameter of getnetbyaddr_r and getnetbyaddr.
* sysdeps/generic/stdint.h: Allow definition of uint32_t elsewhere.
* sysdeps/generic/bits/netdb.h: New file.
* sysdeps/unix/sysv/linux/alpha/bits/netdb.h: New file.
1999-08-25 Ulrich Drepper <drepper@cygnus.com>
* inet/Makefile (routines): Add getipnodebynm.
* inet/getipnodebynm.c: New file.
* nss/digits_dots.c: If HAVE_TYPE is define type contains the
interface type.
* nss/nss_files/files-XXX.c: Define EXTRA_ARGS, EXTRA_ARGS_DECL, and
EXTRA_ARGS_VALUE is not already done.
(internal_getent): Allow extra parameters and pass them to parse_line.
(_nss_files_get,ENTNAME_r): Pass extra parameters to internal_getent.
(_nss_files_get##name##_r): Likewise.
* nss/nss_files/files-hosts.c: Define EXTRA_ARGS, EXTRA_ARGS_DECL,
and EXTRA_ARGS_VALUE to pass flags and type to parser.
Add getipnodebyname function.
* nss/nss_files/files-parse.c: Define EXTRA_ARGS, EXTRA_ARGS_DECL, and
EXTRA_ARGS_VALUE is not already done.
(parse_line): Add EXTRA_ARGS_DECL to parameter list.
* nss/nss_db/db-XXX.c (lookup): Allow extra parameters and pass them
to parse_line.
(_nss_db_get##name##_r): Pass extra parameters to lookup.
(_nss_db_get,ENTNAME_r): Likewise.
* sysdeps/generic/if_index.c (__protocol_available): New function.
* sysdeps/unix/sysv/linux/if_index.c: Likewise.
1999-01-23 Ulrich Drepper <drepper@cygnus.com>
* nss/nss_files/files-XXX.c (internal_getent): Make sure the buffer has
at least two bytes (not one). Correct buflen parameter type.
* nss/nss_files/files-alias.c (get_next_alias): Make sure buffer
has at least two bytes. Use fgets_unlocked instead of fgets.
* ctype/ctype.h: Don't user __tolower directly for tolower
implementation. Use inline function which tests for the range
first. Make _tolower equivalent to old tolower macros.
Likewise for toupper.
* ctype/ctype.c: Change tolower/toupper definition accordingly.
* argp/argp-help.c: Use _tolower instead of tolower if possible.
* inet/ether_aton_r.c: Likewise.
* inet/ether_line.c: Likewise.
* inet/rcmd.c: Likewise.
* intl/l10nflist.c: Likewise.
* locale/programs/ld-collate.c: Likewise.
* locale/programs/linereader.c: Likewise.
* locale/programs/localedef.c: Likewise.
* nis/nss_nis/nis-alias.c: Likewise.
* nis/nss_nis/nis-network.c: Likewise.
* posix/regex.c: Likewise.
* resolv/inet_net_pton.c: Likewise.
* stdio-common/printf_fp.c: Likewise.
* stdio-common/vfscanf.c: Likewise.
* sysdeps/generic/strcasestr.c: Likewise.
* math/bits/mathcalls.h: Fix typo.
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.
1998-07-27 17:42 Ulrich Drepper <drepper@cygnus.com>
* nss/nss_files/files-parse.c (INT_FIELD): Use strtoul instead of
strtol.
(INT_FIELD_MAYBE_NULL): Likewise.
* posix/globtest.c: Rewrite for extended test suite.
* posix/globtest.sh: More tests.
Patch by Brian Wellington <bwelling@anomaly.munge.com>.
* stdlib/strtol.c: Don't redefine LONG_MAX, LONG_MIN, and ULONG_MAX.
Use new macro.
* sysdeps/generic/readv.c: Correct return type.
* sysdeps/generic/writev.c: Likewise.
1998-07-24 Gordon Matzigkeit <gord@fig.org>
* argp/argp-help.c (_GNU_SOURCE): Define, to suck in
program_invocation_name when compiling outside of glibc.
1998-07-26 Philip Blundell <philb@gnu.org>
* sysdeps/unix/sysv/linux/arm/siglist.c: New file; ARM tools don't
like `@' in .type directives.
* sysdeps/libm-ieee754/e_expf.c (__ieee754_expf): Check whether
FE_TONEAREST exists for this platform before using it.
* sysdeps/libm-ieee754/e_exp.c (__ieee754_exp): Likewise.
* sysdeps/arm/dl-machine.h (elf_machine_rel): Delete redundant
debugging code. Correct handling of PC24 relocs.
* elf/Makefile (ld-map): Only define if versioning is in use.
* sysdeps/arm/fpu_control.h: Move to ...
* sysdeps/arm/fpu/fpu_control.h: ... here.
* sysdeps/generic/fpu_control.h: Made usable as a dummy
implementation.
* sysdeps/unix/sysv/linux/arm/brk.c: New file.
* sysdeps/arm/machine-gmon.h: Improved profiling for ARM.
* sysdeps/arm/sysdep.h (CALL_MCOUNT): Replace stub with real
implementation.
* sysdeps/unix/sysv/linux/arm/clone.S: Likewise.
Based on patch from Scott Bambrough and Pat Beirne.
* shlib-versions: Add appropriate definitions for ARM machines.
* README.template: Mention that Linux/ARM with ELF works now.
1998-07-18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makerules: Generate compilation rules for all object suffixes,
not only those currently selected, for sources in the current or
object directory.
1998-07-24 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* posix/fnmatch.c (fnmatch): Allow `/' in character class. Don't
match `/' in filename by a character class if requested.
* posix/testfnm.c: Rewritten.
* posix/testfnm.args: Removed.
1998-07-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* posix/annexc.c (limits_syms): Add missing symbols.
(stdarg_syms): Move va_list to `maybe' list.
(stdio_syms): Add FOPEN_MAX.
1998-06-03 03:09 Geoff Keating <geoffk@ozemail.com.au>
* sysdeps/unix/sysv/linux/pread.c: Detect missing syscall, like poll().
* sysdeps/unix/sysv/linux/pread64.c: Likewise.
* sysdeps/unix/sysv/linux/pwrite.c: Likewise.
* sysdeps/unix/sysv/linux/pwrite64.c: Likewise.
1998-06-03 03:09 Geoff Keating <geoffk@ozemail.com.au>
* sysdeps/powerpc/Makefile: Use -G0 on the startup file; this
makes it easier to undump emacs.
* sysdeps/powerpc/bits/endian.h: Use more informative error message
for when the endianness can't be determined.
1998-06-04 13:19 Geoff Keating <geoffk@ozemail.com.au>
* nss/Makefile: Add files publickey database support.
* nss/libnss_files.map: Export the required functions.
* nss/nss_files/files-key.c: Implement it.
* sunrpc/rpc/auth_des.h: Correct typos in comments.
1998-02-15 Ulrich Drepper <drepper@cygnus.com>
* nss/nsswitch.c (__nss_lookup): Return 1 if this was the last
module.
* nss/getXXent_r.c: If no more module is found don't try to call
setXXent functions but leave unsuccessfully.
* malloc/obstack.h: Cleanups.
* sysdeps/wordsize-32/stdint.h: New file.
* sysdeps/wordsize-64/stdint.h: New file.
* sysdeps/generic/stdint.h: New file.
* sysdeps/wordsize-32/inttypes.h: Adopt to use stdint.h.
* sysdeps/wordsize-64/inttypes.h: Likewise.
* stdlib/Makefile (headers): Add stdint.h.
1998-02-03 Paul Eggert <eggert@twinsun.com>
* malloc/obstack.h (PTR_INT_TYPE): Use __PTRDIFF_TYPE__ if available.
1998-02-13 17:59 Zack Weinberg <zack@rabi.phys.columbia.edu>
* timezone: New directory.
* time/README, time/africa, time/antarctica, time/asia,
time/australasia, time/backward, time/checktab.awk,
time/etcetera, time/europe, time/factory, time/ialloc.c,
time/iso3166.tab, time/leapseconds, time/northamerica,
time/pacificnew, time/private.h, time/scheck.c,
time/solar87, time/solar88, time/solar89, time/southamerica,
time/systemv, time/test-tz.c, time/tzfile.h,
time/tzselect.ksh, time/yearistype, time/zdump.c,
time/zic.c, time/zone.tab: Moved to timezone.
* time/tzfile.c: Include tzfile.h from timezone subdir.
* time/tzset.c: Likewise.
* time/Makefile: Cut out all code relating to timezones...
* timezone/Makefile: ...and paste it in here.
* Makefile (subdirs): Add timezone.
1998-02-13 18:45 H.J. Lu <hjl@gnu.org>
* libc.map (_sys_nerr): Added.
* sysdeps/unix/sysv/linux/errlist.c (_sys_nerr): Make it
versioned symbol.
1998-02-15 17:16 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Define PF_KEY and
pseudo_AF_KEY instead of pseudo_PF_KEY and AF_KEY.
Reported by Craig Metz <cmetz@inner.net>.
1998-01-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* nss/nss_files/files-parse.c (LOOKUP_NAME_CASE): Use __strcasecmp
instead of strcasecmp.
* nss/nss_files/files-alias.c (get_next_alias): Likewise.
* wctype/wctype.h (_ISwbit): Avoid warning with gcc before 2.8.
1998-02-15 16:55 Ulrich Drepper <drepper@cygnus.com>
* socket/sys/socket.h (setsockopt): Make OPTVAL parameter const.
Patch by Dean Gaudet <dgaudet@arctic.org>.
1998-02-15 16:53 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/Dist: Add getresgid.c and getresuid.c.
1998-02-15 10:49 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sysdeps/unix/sysv/linux/poll.c: If compiled against a kernel
with no poll syscall, just include the BSD version.
* sysdeps/unix/sysv/linux/getresuid.c: If compiled against a
kernel without the syscall, include the stub version.
* sysdeps/unix/sysv/linux/getresgid.c: Likewise.
* sysdeps/generic/getresuid.c: New file.
* sysdeps/generic/getresgid.c: New file.
1998-02-15 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfscanf.c: Correct last change a bit.
1998-01-28 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/memory.texi (Heap Consistency Checking): mcheck is
declared in <mcheck.h>.
Suggested by Jochen Voss <voss@mathematik.uni-kl.de> [PR libc/438]
1998-01-28 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/generic/memmem.c (memmem): An empty needle is at the
beginning of haystack.
1998-01-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* nss/nss_files/files-service.c: Correct last patch.
1998-01-30 21:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c: Define
__libc_have_rt_sigs.
* sysdeps/sparc/sparc32/__longjmp.S: Define _SETJMP_H before
including <bits/setjmp.h>.
* sysdeps/sparc/sparc32/setjmp.S: Likewise.
Patch from the Debian glibc/SPARC package.
1997-12-12 07:57 H.J. Lu <hjl@gnu.org>
* sysdeps/alpha/bzero.S: Fix a typo.
* sysdeps/alpha/htonl.S: Ditto.
* sysdeps/alpha/htons.S: Ditto.
1998-01-22 00:55 Ulrich Drepper <drepper@happy.cygnus.com>
* libc.map: Add __libc_uid, __libc_pid, __syscall_rt_sigqueueinfo,
__pread64, __pwrite64, and __getpid.
* libc/rt/aio_misc.c: Use pread and pwrite instead of __ protected
versions.
1998-01-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Define the
cancelable socket functions as __libc_xxx with __xxx as weak
alias.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/m68k/socket.S: Allow __socket to be
redefined.
* sysdeps/unix/sysv/linux/i386/socket.S: Likewise.
* sysdeps/unix/sysv/linux/arm/socket.S: Likewise.
* sysdeps/unix/sysv/linux/powerpc/socket.S: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Likewise.
* sysdeps/unix/sysv/linux/accept.S: Make __libc_xxx the main name
and __xxx a weak alias.
* sysdeps/unix/sysv/linux/connect.S: Likewise.
* sysdeps/unix/sysv/linux/recv.S: Likewise.
* sysdeps/unix/sysv/linux/recvfrom.S: Likewise.
* sysdeps/unix/sysv/linux/recvmsg.S: Likewise.
* sysdeps/unix/sysv/linux/send.S: Likewise.
* sysdeps/unix/sysv/linux/sendmsg.S: Likewise.
* sysdeps/unix/sysv/linux/sendto.S: Likewise.
1998-01-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* locale/langinfo.h: Add defines.
* dirent/dirent.h: Add defines for DT_*, check also for
_DIRENT_HAVE_D_TYPE.
Suggested by Roland McGrath.
1998-01-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/netinet/ip_fw.h:
Update from Linux 2.1.73+79.
* README.template: Update information about possible
configurations.
* manual/mbyte.texi (Wide String Conversion): Fix declaration of
wcstombs. Pointed out by Jochen Voss <voss@mathematik.uni-kl.de>.
[PR libc/417].
* manual/time.texi (Priority): Correct description of
PRIO_MAX. Pointed out by Jochen Voss <voss@mathematik.uni-kl.de>.
[PR libc/416].
11998-01-21 21:34 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/alpha/fpu/bits/mathdef.h: Add definition of FP_ILOGB0 and
FP_ILOGNAN. Patch by a sun <asun@zoology.washington.edu>.
1998-01-21 17:53 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/_strerror.c: Handle BUFLEN == 0. Reported by
Andreas Jaeger.
1998-01-20 18:13 Ulrich Drepper <drepper@cygnus.com>
* locale/programs/ld-collate.c: Little optimizations.
* stdio-common/xbug.c: Unset LD_LIBRRARY_PATH variable.
* string/Makefile (tests): Add tst-inlcall.
* string/tst-inlcall.c: New file.
* string/strsignal.c: Add support for real-time signals.
* sysdeps/generic/_strerror.c: Fix Handling of unknown error in
presense of small buffer.
* sysdeps/i386/bits/string.h: Define _HAVE_STRING_ARCH_* macros.
* sysdeps/i386/i486/bits/string.h: Correct strrchr implementation
for i686.
* sysdeps/unix/sysv/linux/siglist.c: Change length of arrays to
_NSIG + 1.
1998-01-02 15:10 Matthias Urlichs <urlichs@noris.de>
* Rules: Add explicit rule for dummy.o; at least one library needs
it and it isn't autogenerated by the default rules.
1997-12-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* math/libm-test.c: Tweak epsilons.
1997-12-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* math/test-fenv.c (feenv_nomask_test): Avoid dumping core in the
child.
(feenv_mask_test): Likewise.
1998-01-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makeconfig: Don't export CPPFLAGS.
1998-01-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sunrpc/rpc_main.c (parseargs): Use perror to print error
message.
1998-01-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* nss/nss_db/db-alias.c (_nss_db_getaliasent_r): Don't include
terminating null in key size.
1998-01-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* nss/nss_files/files-service.c: Fix allocation size to include
length of PROTO.
* nss/nss_db/db-XXX.c (lookup): Always set errno and h_errno if
applicable. Fix return value and error checking.
(CONCAT(_nss_db_get,ENTNAME_r)): Loop around to skip over
unparsable lines.
(DB_LOOKUP): Allocate space for terminating null byte.
* nss/db-Makefile ($(VAR_DB)/passwd.db): Don't handle duplicate
uids specially.
* db2/makedb.c (process_input): Continue processing if a duplicate
key is encountered.
1998-01-19 15:20 Ulrich Drepper <drepper@cygnus.com>
* time/tzfile.h: Updated from tzcode1998b.
* time/zdump.c: Likewise.
* time/zic.c: Likewise.
* time/africa: Update from tzdata1998b.
* time/antarctica: Likewise.
* time/asia: Likewise.
* time/australasia: Likewise.
* time/etcetera: Likewise.
* time/europe: Likewise.
* time/leapseconds: Likewise.
* time/northamerica: Likewise.
* time/southamerica: Likewise.
1998-01-12 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* nss/nss_files/files-alias.c (get_next_alias): Do mail alias
lookups ignoring case.
* nss/nss_files/files-network.c: Do network lookups ignoring
case.
* nss/nss_files/files-hosts.c: Do hostname lookups ignoring
case.
* nss/nss_files/files-parse.c (LOOKUP_NAME_CASE): New macro for
case insensitive comparing.
Patches by Cristian Gafton <gafton@redhat.com>.
1998-01-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/net/if.h: Add IFF_*defines. Suggested
by Roland McGrath. [PR libc/395]
1998-01-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/arith.texi (Parsing of Integers): Correct description of
strtoul. Pointed out by Scott Snyder <snyder@fnald0.fnal.gov>.
[PR libc/396]
1997-12-30 14:14 Matthias Urlichs <urlichs@noris.de>
* misc/lsearch.c (lsearch): Return a pointer to the new element
if one was "allocated".
1997-12-26 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/strsignal.c: NSIG is not a valid index into
_sys_siglist. Don't zap the last character of the "Unknown
signal" message.
1998-01-19 15:08 Ulrich Drepper <drepper@cygnus.com>
* locale/programs/charmap.c (parse_charmap): Correct parsing of
ellipsis expressions.
* locale/programs/charset.c (insert_char): Correctly insert value
of eliipsis expression.
1997-12-22 18:10 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Stop with error if --disable-static is used when
the shared lib uses this library.
* gen-FAQ.pl: I've perl installed in /usr/bin.
* include/bits/xopen_lim.h (STREAM_MAX): Define using FOPEN_MAX.
Fix Unix98 conformance problems in the headers.
* catgets/nl_types.h: Define nl_item.
* grp/grp.h: Define gid_t.
* include/features.h [_POSIX_C_SOURCE]: Don't define _XOPEN_SOURCE.
* include/nl_types.h: New file.
* include/ulimit.h: New file.
* io/fcntl.h: Include sys/stat.h for Unix98. Don't define locking
constants in POSIX mode.
* io/utime.h: Get definition for time_t.
* io/sys/stat.h: Define dev_t, gid_t, ino_t, mode_t, nlink_t, off_t,
uid_t, pid_t. Define D_IFLNK and S_IFSOCK only if !__USE_UNIX98.
* libio/stdio.h: Define va_list. Make snprintf also available is
__USE_UNIX98. Declare getopt function and variables.
* locale/langinfo.h: Include nl_types.h. Don't define nl_item.
Define CODESET, CRNCYSTR, RADIXCHAR and THOUSEP as aliases.
* math/math.h: Defined M_* constants as double for Unix98 mode.
* posix/fnmatch.h: Pretty print. Define FNM_NOSYS.
* posix/glob.h: Pretty print. Define GLOB_NOSYS.
* posix/regex.h: Define REG_NOSYS.
* posix/wordexp.h: Define WRDE_NOSYS.
* posix/unistd.h: Define _POSIX2_VERSION. Define _XOPEN_VERSION to
500 for Unix98.
* posix/sys/types.h: Alloc dev_t, mode_t, nlink_t to be defined
somewhere else as well. Define clock_t for Unix98.
* posix/sys/wait.h: Define pid_t.
* pwd/pwd.h: Define gid_t, uid_t.
* resource/Makefile (headers): Add ulimit.h.
* resource/ulimit.h: New file.
* sysdeps/generic/ulimit.c: Define according to X/Open using varargs
instead of second argument.
* sysdeps/unix/bsd/ulimit.c: Likewise. Use UL_* constants.
* sysdeps/unix/sysv/linux/ulimit.c: Likewise.
* resource/sys/resource.h: Don't declare ulimit here, include ulimit.h.
* signal/signal.h: Define pid_t.
* string/string.h: Don't declare BSD string functions in POSIX mode.
* sysdeps/generic/bits/confname.h: Define _PC_VDISABLE. Add
_SC_XOPEN_LEGACY, _SC_XOPEN_REALTIME and _SC_XOPEN_REALTIME_THREADS.
* sysdeps/unix/sysv/linux/bits/termios.h: Clean namespace for Unix98
and POSIX.
* inet/test_ifindex.c: Change test so that it does not fail for
interface aliases.
* locale/programs/locale.c (show_info): Use correct cast sequence
for 64bit machines.
* malloc/malloc.c: __malloc_initialized now signals three states:
uninitialized, initializing, initialized. Used in mcheck.
* malloc/mcheck.c (mabort): Add '\n' to messages.
(mcheck): Allow installation when malloc is uninitialized or is
just initializing.
* manual/memory.texi: Explain mtrace output a bit more.
* math/libm-test.c: Add more epsilons.
* misc/regexp.h (compile): Remove __ prefix from parameter names.
* nis/nss_nis/nis-ethers.c (internal_nis_getetherent_r): Use strncpy
instead of strcpy for security.
* nis/nss_nis/nis-proto.c (internal_nis_getprotoent_r): Likewise.
* nis/nss_nis/nis-rpc.c (internal_nis_getrpcent_r): Likewise.
* nis/nss_nis/nis-service.c (internal_nis_getservent_r): Likewise.
* nss/digits_dots.c: Pretty print.
* posix/getconf.c (vars): Add symbols for programming environment
recognition. Recognize --version.
* sysdeps/generic/sysconf.c: Handle _SC_XBS5_*, _SC_XOPEN_LEGACY,
_SC_XOPEN_REALTIME, and _SC_XOPEN_REALTIME_THREADS.
* sysdeps/posix/sysconf.c: Handle _SC_XBS5_* and new _XOPEN_* symbols.
* sysdeps/generic/bits/stdio_lim.h: Implement handling of
__need_FOPEN_MAX.
* sysdeps/unix/sysv/linux/stdio_lim.h.in: Likewise.
* sysdeps/posix/mk-stdiolim.c: Change to generate file handling
__need_FOPEN_MAX.
* sysdeps/unix/sysv/linux/Dist: Add rt_sigpending.c.
* sysdeps/unix/sysv/linux/rt_sigpending.c: New file.
* sysdeps/unix/sysv/linux/alpha/bits/types.h: Define __ipc_pid_t.
* sysdeps/unix/sysv/linux/bits/types.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Likewise.
* sysdeps/unix/sysv/linux/bits/msq.h: Use __ipc_pid_t.
* sysdeps/unix/sysv/linux/bits/shm.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/types.h: New file.
* sysdeps/wordsize-32/inttypes.h: Add SCNd8, SCNi8, SCNo8, SCNx8,
SCNu*.
* sysdeps/wordsize-64/inttypes.h: Likewise.
* time/africa: Update from tzdata1997j.
* time/antarctica: Likewise.
* time/asia: Likewise.
* time/australasia: Likewise.
* time/backward: Likewise.
* time/etcetera: Likewise.
* time/europe: Likewise.
* time/factory: Likewise.
* time/northamerica: Likewise.
* time/pacificnew: Likewise.
* time/southamerica: Likewise.
* time/tzfile.h: Update from tzcode1997h.
* time/zic.c: Likewise.
* wcsmbs/wchar.h: Get definition of FILE. Define `struct tm' tag.
Declare wcwidth and wcswidth for __USE_XOPEN. Declare the
isw*() functions for Unix98.
* wctype/towctrans.c: Define as __towctrans, make towctrans weak alias.
* wctype/wctype.h: Declare isw*() functions also if __need_iswxxx
is defined.
1997-12-21 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* locale/duplocale.c: Increase usage_count only if less than
MAX_USAGE_COUNT.
* locale/freelocale.c: Test usage_count against UNDELETABLE, not
MAX_USAGE_COUNT.
* locale/setlocale.c: Likewise.
1997-12-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile ($(inst_includedir)/gnu/stubs.h): Use a more direct
dependency to make it easier to install it selectively.
* Makerules (.SUFFIXES): Don't define any suffixes.
1997-12-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/generic/fstatfs64.c: Emulate using fstatfs.
* sysdeps/generic/statfs64.c: Emulate using statfs.
* sysdeps/generic/getrlimit64.c: Emulate using getrlimit.
* sysdeps/generic/setrlimit64.c: Emulate using setrlimit.
* sysdpes/generic/ftruncate64.c: New file.
* sysdpes/generic/truncate64.c: New file.
* sysdeps/generic/bits/stat.h: Add LFS support.
* sysdeps/generic/bits/statfs.h: Likewise.
* sysdeps/unix/bsd/sun/sunos4/bits/resource.h (RLIM_INFINITY)
[__USE_FILE_OFFSET64]: Make long long constant.
(RLIM64_INFINITY): Likewise.
* sysdeps/unix/sysv/linux/bits/resource.h (RLIM_INFINITY): Correct
for LFS support.
(RLIM64_INFINITY) [__USE_LARGEFILE64]: Define.
* sysdeps/generic/bits/resource.h: Likewise.
* misc/Makefile (routines): Add truncate64 and ftruncate64.
* include/features.h: Don't prevent LFS support from defining BSD
and SYSV things.
* dirent/dirent.h [__USE_FILE_OFFSET64]: Don't use xxx64 names.
* io/ftw.h [__USE_FILE_OFFSET64]: Likewise.
* io/sys/stat.h [__USE_FILE_OFFSET64]: Likewise.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add xxx64 alias for
fstatfs, statfs, getrlimit, setrlimit, ftruncate and truncate.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/alpha/fstatfs64.c: New file.
* sysdeps/unix/sysv/linux/alpha/statfs64.c: New file.
* sysdeps/unix/sysv/linux/alpha/getrlimit64.c: New file.
* sysdeps/unix/sysv/linux/alpha/setrlimit64.c: New file.
* sysdeps/unix/sysv/linux/alpha/ftruncate64.c: New file.
* sysdeps/unix/sysv/linux/alpha/truncate64.c: New file.
* sysdeps/unix/sysv/linux/alpha/readdir.c: New file.
* sysdeps/unix/sysv/linux/alpha/readdir64.c: New file.
* sysdeps/unix/sysv/linux/alpha/readdir64_r.c: New file.
* sysdeps/unix/sysv/linux/alpha/readdir_r.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/fstatfs64.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/statfs64.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/getrlimit64.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/setrlimit64.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/ftruncate64.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/truncate64.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/readdir64.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/readdir64_r.c: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/readdir_r.c: New file.
* sysdeps/unix/sysv/linux/fxstat64.c: New file.
* sysdeps/unix/sysv/linux/lxstat64.c: New file.
* sysdeps/unix/sysv/linux/xstat64.c: New file.
* sysdeps/unix/sysv/linux/readdir64.c: New file.
* sysdeps/unix/sysv/linux/readdir64_r.c: New file.
* sysdeps/unix/sysv/linux/getdents64.c: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines)
[$(subdir)=dirent]: Add getdents64.
* sysdeps/unix/sysv/linux/Dist: Add getdents64.c.
* sysdeps/unix/sysv/linux/xstatconv.c: LFS support.
1997-12-18 12:07 Philip Blundell <pb@nexus.co.uk>
* sysdeps/generic/bits/statfs.h (struct statfs64): Added.
* sysdeps/generic/getrlimit.c: Include <sys/types.h>.
* sysdeps/generic/getrlimit64.c: Likewise.
* sysdeps/generic/setrlimit.c: Likewise.
* sysdeps/generic/setrlimit64.c: Likewise.
1997-12-17 13:57 Philip Blundell <pb@nexus.co.uk>
* sysdeps/unix/sysv/linux/siglist.c: Fix compile problem if not
using versioning.
* sysdeps/generic/waitid.c: Include <sys/types.h> for id_t.
* sysdeps/standalone/arm/bits/errno.h (EBUSY): Added.
1997-12-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* locale/programs/ld-ctype.c (ctype_output): Clear out the padding
after the codeset name.
1997-12-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* libc.map: Add get_kernel_syms.
1997-12-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/generic/testrtsig.h (kernel_has_rtsig): Make
static.
* sysdeps/unix/sysv/linux/testrtsig.h (kernel_has_rtsig):
Likewise. Fix condition.
1997-12-16 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* libio/Makefile (routines) [$(versioning)=yes]: Add oldiofdopen.
1997-12-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/bits/mathinline.h: Don't define exp2 inline.
Define scalbln{,f,l} under __USE_ISOC9X, not __USE_MISC.
1997-12-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/powerpc/syscall.S: Put back.
* sysdeps/unix/sysv/linux/powerpc/sigreturn.S: Delete this
instead. Oops.
1997-12-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* configure.in (libc_cv_gcc_alpha_ng_prefix): Correct quoting.
1997-12-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* math/libm-test.c (catanh_test): Change epsilon.
Reported by H.J. Lu.
1997-12-14 19:39 H.J. Lu <hjl@gnu.org>
* libc.map (__getpid): Added for linuxthreads.
1997-12-13 21:09 H.J. Lu <hjl@gnu.org>
* configure.in (HAVE_DWARF2_UNWIND_INFO_STATIC): Define
it if gcc uses static variable in DWARF2 unwind information
for exception support.
* config.h.in (HAVE_DWARF2_UNWIND_INFO_STATIC): New.
* elf/soinit.c (__libc_global_ctors, _fini): Handle
HAVE_DWARF2_UNWIND_INFO_STATIC.
* libc.map (__register_frame*, __deregister_frame*): Make them
global.
1997-12-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* math/libm-test.c: Add more tests for "normal" values.
1997-12-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* stdio-common/printf_fphex.c: Fix printing of long double number
with a biased exponent of zero. Fix rounding.
1997-12-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sunrpc/rpc_main.c: Accept new flag -$.
* sunrpc/Makefile (rpcgen-cmd): Pass it here.
1997-12-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile ($(inst_slibdir)/libc-$(version).so): Install the
dynamic linker first, in case the interface has changed.
1997-12-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* nss/nss_files/files-alias.c (get_next_alias): Fix parameter
order.
1997-12-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* math/tgmath.h: Check for double first, for architectures where
sizeof (long double) == sizeof (double).
1997-12-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* math/libm-test.c: New tests for "normal" values added for most
functions.