1998-12-10 Ulrich Drepper <drepper@cygnus.com>
* inet/getnetgrent_r.c (innetgr): Check host and domain name with
strcasecmp, not strcmp. [PR libc/894].
1998-12-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* posix/regex.h: Declare re_comp, re_exec if compiling for libc to
get prototypes.
* wctype/wctype.h: Add prototypes for __iswblank_l and iswblank.
1998-12-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/gethostid.c: Include <netdb.h> to get
prototype for __gethostbyname_r.
* include/time.h: Add declarations of internal interfaces.
* time/tzset.c: Remove declarations of internal interfaces.
* time/gmtime.c: Likewise.
* time/localtime.c: Likewise.
* time/offtime.c: Likewise.
* time/tzfile.c: Likewise.
1998-11-29 1998 H.J. Lu <hjl@gnu.org>
* libio/genops.c (_IO_unbuffer_write): Renamed from
_IO_unbuffer_all.
(_IO_cleanup): Call _IO_unbuffer_write instead of
_IO_unbuffer_all.
1998-12-01 Ulrich Drepper <drepper@cygnus.com>
* intl/localealias.c: Use *_unlocked version of stdio function if
_LIBC_REENTRANT is defined, not _LIBC.
1998-12-01 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* include/grp.h: Add prototypes for internal functions
__getgrgid_r and __getgrnam_r.
* inet/herrno.c: Include <netdb.h> for prototype, undef h_errno.
* resolv/nsap_addr.c: Include <arpa/inet.h> for inet_nsap_addr and
inet_nsap_ntoa prototypes.
* sysdeps/unix/sysv/linux/Makefile (syscall-%.h): Pass -I option
to gcc to have it find the correct system header.
Patch by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
Reported by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
1998-11-30 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* nscd/nscd_getpw_r.c: Include nscd_proto.h for prototypes.
* sysdeps/generic/errno-loc.c: Include <errno.h> for prototype,
undefine errno to get variable.
* sysdeps/unix/sysv/linux/i386/setfsuid.c: Include <sys/fsuid.h>
instead of <unistd.h> for prototype.
* sysdeps/unix/sysv/linux/i386/setfsgid.c: Likewise.
1998-11-30 Ulrich Drepper <drepper@cygnus.com>
* misc/err.h: Correct comments and use protected attribute keywords.
Reported by Joseph Myers <jsm28@cam.ac.uk>.
1998-11-29 Roland McGrath <roland@baalperazim.frob.com>
* malloc/thread-m.h [_LIBC]: Include <bits/libc-tsd.h>, and
remove tsd stuff from pthreads/cthreads libc sections.
Use __libc_tsd_define for MALLOC key.
[_LIBC] (tsd_key_t, tsd_key_create): Define to a zero-size type and a
no-op, respectively.
[_LIBC] (tsd_setspecific, tsd_getspecific): Use __libc_tsd_get/set.
* elf/dl-error.c: Include <bits/libc-tsd.h>.
Use __libc_tsd_define for DL_ERROR key.
(tsd_setspecific, tsd_getspecific): Rewritten using __libc_tsd_get/set.
* sysdeps/mach/hurd/bits/libc-tsd.h: New file.
* sysdeps/generic/bits/libc-tsd.h: New file.
* Makefile (distribute): Add bits/libc-tsd.h.
1998-10-12 Roland McGrath <roland@baalperazim.frob.com>
* elf/dl-error.c: Remove kludge to check for ld.so load address.
There is no need if weak undefined symbols are not used in ld.so;
see linuxthreads/ChangeLog for changes to files
linuxthreads/sysdeps/pthread/bits/libc-lock.h and
linuxthreads/sysdeps/pthread/bits/libc-tsd.h.
1998-11-30 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/i386/bits/string.h (__memset_cc): Fix typo (s->__s).
* sysdeps/i386/i486/bits/string.h: Add prototypes for all new
inline functions.
* sysdeps/i386/bits/string.h: Likewise.
1998-11-30 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/alpha/bits/ipc.h: Remove ipc_kludge.
1998-11-30 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* db2/progs/db_load/db_load.c (main): Avoid -Wparentheses warning.
1998-11-16 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/opendir.c: Use o_directory_works differently. Treat
zero value as uninitialized so that variable can go into .bss.
* dirent/opendir-tst1.c: Print error strings to stdout.
* sysdeps/unix/sysv/linux/mmap64.c: New file. Empty.
* sysdeps/unix/sysv/linux/syscalls.list: Add mmap with mmap64 alias.
* sysdeps/unix/sysv/linux/arm/mmap.S: Add mmap64 alias.
* sysdeps/unix/sysv/linux/i386/mmap.S: Likewise.
* sysdeps/unix/sysv/linux/m68k/mmap.S: Likewise.
1998-11-16 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* time/tzfile.c (__tzfile_read): Check that types[i].isdst is in
range.
1998-11-16 Ulrich Drepper <drepper@cygnus.com>
* libio/bits/stdio.h (fread_unlocked): Do handle zero size and number.
(fwrite_unlocked): Likewise.
1998-11-16 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* libio/bits/stdio.h (fread_unlocked): Don't evaluate non-constant
twice. Don't bother handling zero size.
(frwite_unlocked): Likewise.
1998-11-15 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* configure.in: Fix regex for makeinfo version string.
1998-11-15 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* sunrpc/rpc_sample.c (write_sample_server): Avoid -Wparentheses
warning.
* sunrpc/rpc_svcout.c (write_program): Likewise.
1998-11-15 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* time/Makefile (CFLAGS-test_time.c): Add -Wno-format.
1998-11-16 Ulrich Drepper <drepper@cygnus.com
* misc/sys/mman.h: Pretty print prototypes.
1998-11-15 Ulrich Drepper <drepper@cygnus.com
* misc/error.c (error): Don't use result of strerror_r call directly
since at least DEC Unix has a wrong return type.
Patch by Johan Danielsson <joda@pdc.kth.se>.
1998-11-16 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
1998-11-12 Ulrich Drepper <drepper@cygnus.com>
* inet/netinet/in.h: Add a few more IPPROTO_* macros.
* libio/Makefile (headers): Add bits/stdio.h.
* libio/iofread_u.c: Undefine fread_unlocked before definition.
* libio/iofwrite_u.c: Undefine fwrite_unlocked before definition.
* libio/stdio.h: Move optimizations into ...
* libio/bits/stdio.h: ...here. New file.
* libio/iofread.c: Pretty print.
1998-11-12 Mark Kettenis <kettenis@phys.uva.nl>
* sysdeps/gnu/bits/utmpx.h: Protect members of struct
__exit_status with `__'. Rename pad member of struct utmpx to
__unused.
(RUN_LVL): Define unconditionally.
* sysdeps/gnu/bits/utmp.h: Rename pad member of struct utmpx to
__unused.
1998-11-12 Philip Blundell <philb@gnu.org>
* sysdeps/unix/sysv/linux/netlink/netlink.h: New file, support for
Linux AF_NETLINK sockets (needed since the kernel version is
unusable).
* sysdeps/unix/sysv/linux/Makefile: Install it.
* sysdeps/unix/sysv/linux/Dist: Distribute it.
1998-11-12 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* timezone/tst-timezone.c (tests): Add entry for America/Chicago
to test for bug in PR libc/863.
1998-11-12 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Cleanup comment.
* elf/dynamic-link.h (_ELF_DYNAMIC_DO_RELOC): Rename macro
parameter lazy to do_lazy to avoid clashing with struct member name.
Reported by Ralf Baechle <ralf@uni-koblenz.de>.
1998-11-10 H.J. Lu <hjl@gnu.org>
* sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine NR_OPEN
if it is defined in <linux/limits.h>.
1998-11-09 13:07 -0500 Zack Weinberg <zack@rabi.phys.columbia.edu>
* include/protocols/routed.h: Include the real header with
a full path from the top of the source tree.
* include/protocols/rwhod.h: Likewise.
* include/protocols/talkd.h: Likewise.
* include/protocols/timed.h: Likewise.
* timezone/Makefile: Don't include z.ZONE files if no_deps
is set, not if avoid-generated is set.
1998-11-12 Ulrich Drepper <drepper@cygnus.com>
* signal/signal.h: Undo last change. Get definition of timespec
if __USE_POSIX199309.
* string/bits/string2.h (__strpbrk_c2): Add intermediate cast to
size_t to prevent gcc warning when using -Wqual-cast.
(__strpbrk_c3): Likewise.
Suggested by Alan Curry <pacman@cqc.com>.
1998-10-29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/ttyname_r.c (ttyname_r): Try reading
/prof/self/fd/FD first.
* sysdeps/unix/sysv/linux/ttyname.c (ttyname): Likewise.
* stdio-common/_itoa.h (_fitoa_word): New inline function. Write
formatted number starting at given position and return pointer to
following byte.
(_fitoa): Likewise, for long long.
* sysdeps/unix/sysv/linux/powerpc/pread.c: Do not use the i386 version.
Instead call the system call wrapper function using an 64bit argument.
* sysdeps/unix/sysv/linux/powerpc/pread64.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/pwrite.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/pwrite64.c: Likewise.
1998-10-09 Ulrich Drepper <drepper@cygnus.com>
* posix/ptestcases.h: Fix typo.
1998-10-08 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* posix/regex.c (regcomp): Allocate and prepare a fastmap.
(regexec): Allocate regs.start and regs.end as one block.
1998-10-08 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* sysdeps/unix/sysv/linux/bits/socket.h: Remove comma at end of
enum decl.
1998-10-08 Philip Blundell <pb@nexus.co.uk>
* sysdeps/unix/sysv/linux/arm/profil-counter.h: Move definition of
sigcontext union to ...
* sysdeps/unix/sysv/linux/arm/bits/armsigctx.h: ... here. New
file.
* sysdeps/unix/sysv/linux/arm/register-dump.h: Add support for
version 2.0 kernels.
1998-10-05 Philip Blundell <philb@gnu.org>
* sysdeps/unix/sysv/linux/bits/in.h: Add various new structures
and constants. Tidy up formatting a little.
* sysdeps/unix/sysv/linux/bits/socket.h (SOL_IPV6, SOL_ICMPV6):
Move definitions to in.h.
1998-10-02 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/sys/swap.h (SWAP_FLAG_PREFER,
SWAP_FLAG_PRIO_MASK,SWAP_FLAG_PRIO_SHIFT): Added.
Remove inclusion of <linux/swap.h>.
1998-10-05 Ulrich Drepper <drepper@cygnus.com>
* io/sys/stat.h: Use __P in definitions of inline stat functions
so that they match the declaration.
1998-10-02 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/sys/quota.h (Q_RSQUASH): Added.
1998-10-02 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/sys/acct.h: Bring in sync with current
linux 2.1 version.
1998-10-02 Philip Blundell <pb@nexus.co.uk>
* sysdeps/arm/dl-machine.h: Fix typo in last change.
* sysdeps/arm/bits/huge_val.h: New file.
1998-10-02 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/sys/reboot.h (RB_POWER_OFF): Added.
* sysdeps/unix/sysv/linux/sys/ptrace.h (PTRACE_SYSCALL): Add
define.
1998-10-05 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/posix/getcwd.c (__getcwd): Use temporary variable to
store result of realloc instead of using BUF.
1998-10-04 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* misc/sgtty.h (_SGTTY_H): Correct spelling.
Reported by Rouben Rostamian <rostamian@umbc.edu> [PR libc/817].
1998-10-04 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/memory.texi (Obstacks): Document
obstack_alloc_failed_handler usage.
* malloc/obstack.h: Enhance comment about
obstack_alloc_failed_handler usage.
* malloc/obstack.c: Likewise.
1998-10-05 Ulrich Drepper <drepper@cygnus.com>
* misc/sys/cdefs.h (__extension__): Define as empty if no gcc or
gcc before 2.8 is used.
1998-10-01 Philip Blundell <pb@nexus.co.uk>
* sysdeps/arm/machine-gmon.h: Correct args to mcount(). Patch
from Scott Bambrough.
* sysdeps/unix/sysv/linux/arm/register-dump.h: New file.
* libio/libioP.h (FILEBUF_LITERAL) [! _IO_MTSAFE_IO]: Don't
include the lock member.
1998-09-03 Philip Blundell <pb@nexus.co.uk>
* sysdeps/arm/fpu/__longjmp.S: Cope with fussy assembler.
1998-09-29 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/bits/string2.h (__string2_1bptr_p): Don't use a statement
expression.
(__mempcpy, strcpy, __stpcpy, strcmp, strcspn, strspn, strpbrk,
__strsep): Greatly reduce size of expansion by combining common
expressions.
(__mempcpy_small, __strcpy_small, __stpcpy_small): Convert to
inline function.
(__mempcpy_args, __strcpy_args, __stpcpy_args): New macros, used
by the above definitions.
1998-09-27 Geoff Keating <geoffk@ozemail.com.au>
* sysdeps/unix/sysv/linux/powerpc/bits/ipc.h: New file, use
correct struct ipc_perm definition.
1998-09-29 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/ypclnt.c (yp_all): Close UDP socket und give CLIENT handle free.
* sysdeps/unix/sysv/linux/alpha/ioperm.c: List Ruffian in platforms[].
* sysdeps/unix/sysv/linux/net/if_shaper.h: New file.
1998-09-14 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/mach/hurd/dl-cache.c (_dl_unload_cache): New dummy
function. Reported by okuji@kuicr.kyoto-u.ac.jp [PR libc/789].
1998-09-15 David S. Miller <davem@pierdol.cobaltmicro.com>
* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_runtime_setup):
Add profiling support.
(TRAMPOLINE_TEMPLATE): New macro.
(ELF_MACHINE_RUNTIME_TRAMPOLINE): Define in terms of that.
(RTLD_START): Prettify, and set __libc_stack_end properly.
(elf_machine_rela) [R_SPARC_COPY]: Remove RTLD_BOOTSTRAP ifndef
and check for sym being NULL instead.
* sysdeps/sparc/sparc64/addmul_1.S: Adjust to allocate 192 bytes
of stack space.
* sysdeps/sparc/sparc64/lshift.S: Likewise.
* sysdeps/sparc/sparc64/mul_1.S: Likewise.
* sysdeps/sparc/sparc64/rshift.S: Likewise.
* sysdeps/sparc/sparc64/submul_1.S: Likewise.
* sysdeps/sparc/sparc64/elf/crtbegin.S: Likewise and remove old
MEDANY code model %g4 usage.
* sysdeps/sparc/sparc64/elf/crtend.S: Likewise and remove old
MEDANY code model %g4 usage.
* sysdeps/sparc/sparc64/elf/start.S: Rework to not use old FULLANY
code model address formation.
* sysdeps/sparc/sparc64/dl-machine.h: Don't include link.h, do
include elf/ldsodefs.h
(DT_SPARC): Remove.
(elf_machine_matches_host): It is now EM_SPARCV9.
(elf_machine_dynamic): Clean up to remove ugly cast.
(elf_machine_fixup_plt): Rework for new V9 ABI, add support for
new PLT formats.
(elf_machine_rela): Don't do anything at all for R_SPARC_NONE.
Prettify rest of function.
[R_SPARC_COPY]: Check for sym being NULL.
[R_SPARC_32]: Handle it.
[R_SPARC_H44, R_SPARC_M44, R_SPARC_L44]: Handle them for the
MEDMID code model.
[R_SPARC_HH22, R_SPARC_HM10, R_SPARC_LM22]: Handle them for the
MEDANY code model.
[R_SPARC_NONE]: Remove this case, as it is now checked earlier.
(elf_machine_runtime_setup): Rewrite for new V9 ABI plt formats.
Add profiling support.
(TRAMPOLINE_TEMPLATE): New macro.
(ELF_MACHINE_RUNTIME_TRAMPOLINE): Define in terms of that.
(RTLD_START): Prettify and set __libc_stack_end.
* sysdeps/unix/sysv/linux/sparc/bits/sigaction.h (SA_SIGINFO):
Define.
* sysdeps/unix/sysv/linux/sparc/bits/signum.h (_NSIG): Set to 64.
(SIGRTMIN, SIGRTMAX, __SIGRTMIN, __SIGRTMAX): Define.
* sysdeps/unix/sysv/linux/sparc/sparc32/brk.c (__brk): Remove
unused variable scratch.
* sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c
(__syscall_rt_sigaction, __rt_sigreturn_stub, __sigreturn_stub):
Declare.
(__sigaction): Rewrite rt_sigaction case to pass correct sigreturn
stub to rt_sigaction syscalls. Rewrite non-rt case to use correct
old format kernel sigaction structures.
* sysdeps/unix/sysv/linux/sparc/sparc64/ucontext.h: Move...
* sysdeps/unix/sysv/linux/sparc/sparc64/sys/ucontext.h: to here.
* sysdeps/unix/sysv/linux/sparc/sparc64/Dist: Remove ucontext.h
* sysdeps/unix/sysv/linux/sparc/sparc64/bits/setjmp.h: Fix
ucontext include.
(_JMPBUF_UNWINDS): Define.
* sysdeps/unix/sysv/linux/sparc/sparc64/bits/statfs.h: Declare
statfs64 structure, which is exactly the same as the normal one.
* sysdeps/unix/sysv/linux/sparc/sparc64/brk.S: Allocate 192 bytes
of stack. Use correct syscall trap number. Add branch prediction
settings to branch instructions. Remove old MEDANY code model %g4
referneces for non-PIC.
* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/init-first.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S: Add
__libc_longjmp and __libc_siglongjmp strong aliases.
* sysdeps/unix/sysv/linux/sparc/sparc64/readdir.c (__readdir64):
Also define to __no__readdir64_decl around readdir.c inclusion.
(__readdir64): Add strong alias.
* sysdeps/unix/sysv/linux/sparc/sparc64/socket.S: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (getrlimit):
Set strong and weak names properly.
1998-09-16 11:25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/Makefile (AWK): Default to gawk if standalone.
1998-09-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (distribute): Undo last change.
* Make-dist (+tsrc) [not subdir]: Also include indirection headers
for sysdep headers.
(+subdir-headers): Removed, unused.
1998-09-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* stdio-common/Makefile ($(inst_includedir)/bits/stdio_lim.h): Use
$(do-install).
1998-09-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makerules ($(+sysdir_pfx)sysd-Makefile): Don't check for
absolute name in $(config-sysdirs), can never happen.
($(+sysdir_pfx)sysd-rules): Likewise.
* Makeconfig (full-config-sysdirs): Likewise.
(all-Subdirs-files): Prepend $(..).
* configure.in: Don't check for absolute name in $add_ons_pfx, can
not happen. Let --enable-add-ons=yes work if no add-ons actually
exist.
1998-09-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules ($(common-objpfx)bits/stdio_%.h): Remove extra
continuations in command.
1998-09-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* libio/oldstdfiles.c (_IO_stdin_used): Update declaration.
1998-09-12 Mark Kettenis <kettenis@phys.uva.nl>
* sysdeps/generic/segfault.c (install_handler): Install signal
handler with SA_ONSTACK instead of setting the stack flags to
SS_ONSTACK. Do not install handler for SIGSTKFLT if it is not
defined.
1998-09-12 14:24 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
* signal/signal.h: Fix multiple inclusion guard to cover the
entire file.
* wcsmbs/wchar.h: Remove prototype of internal function
__mbsrtowcs.
* sysdeps/i386/i486/bits/string.h (memchr): Don't do
arithmetic on `void *'.
1998-08-31 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-close.c (_dl_close): Update _dl_loaded if the first
object on the list is removed. Don't use this code for PIC.
Reported by HJ Lu [PR libc/770].
1998-08-31 15:56 Ulrich Drepper <drepper@cygnus.com>
* db2/db_int.h: Use <db.h> instead of "db.h" to find header in include.
* include/stdio.h: Add __vsscanf.
* libio/stdio.h: Make vfscanf, scanf, and vsscanf available if
__USE_ISOC9X.
Remove __vsscanf declaration.
Always declare fgetpos and fsetpos.
* math/math.h: Define isinf as macro.
* math/bits/mathcalls.h: Change to declare __isinf all the time.
Don't declare scalb for ISO C 9x.
* math/tgmath.h: Define fma. Rewrite the underlying macros.
* stdlib/stdlib.h: Declare strtof and strtold is __USE_ISOC9X.
* sysdeps/unix/sysv/linux/bits/sigcontext.h: Allow inclusion from
sys/ucontext.h.
* sysdeps/wordsize-32/inttypes.h: Define missing PRI* and SCN*
macros.
1998-08-31 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/standalone/bits/errno.h (ENOMSG): Remove duplicate.
Reported by jreising@frequentis.com [PR libc/767].
1998-08-31 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* io/lockf.c (lockf): Move initilisation of fl.l_whence and
fl.l_start at beginning of function.
Patch by Geoff. Dash <geoffd@zeta.org.au> [PR libc/769].
1998-08-28 13:58 Ulrich Drepper <drepper@cygnus.com>
* internals.h: Also define THREAD_GETMEM_NC and THREAD_SETMEM_NC to
access thread data with non-constant offsets.
* specific.c: Use THREAD_GETMEM_NC and THREAD_SETMEM_NC where
necessary.
* sysdeps/i386/useldt.h: Fix typo. Add THREAD_GETMEM_NC and
THREAD_SETMEM_NC definitions.
* sysdeps/sparc/sparc32/pt-machine.h: Define THREAD_GETMEM_NC and
THREAD_SETMEM_NC.
* sysdeps/sparc/sparc64/pt-machine.h: Likewise.
1998-08-27 19:42 Ulrich Drepper <drepper@cygnus.com>
* elf/Makefile (distribute): Add dl-origin.h.
* sysdeps/generic/dl-origin.h: New file.
* sysdeps/unix/sysv/linux/dl-origin.h: New file.
* elf/link.h (struct link_map): Add l_origin field.
* elf/dl-load.c (expand_dynamic_string_token): New function.
(decompose_path): Remove WHERE argument, take link map pointer instead.
Call expand_dynamic_string_token instead of local_strdup to make copy
of rpath.
(_dl_init_paths): Call decompose_path with correct argument.
(_dl_map_object_from_fd): Define static is EXTERNAL_MAP_FROM_FD is
not defined.
Check EI_OSABI and EI_ABIVERSION fields in header.
(_dl_map_object): Call decompose_path with correct argument.
Call expand_dynamic_string_token instead of local_strdup to also
expand DST.
* elf/dl-object.c (_dl_new_object): Determine l_origin for all maps
but the main one.
* elf/dl-support.c: Define _dl_origin_path.
* elf/rtld.c: Likewise. Set _dl_origin_path based on LD_ORIGIN_PATH.
* elf/dl-close (_dl_close): Free l_name and l_origin.
* sysdeps/i386/useldt.h (THREAD_GETMEM, THREAD_SETMEM): Use P
modifier in asm, not c.
* sysdeps/mach/hurd/Makefile [subdirs==elf]: Define CFLAGS-dl-load.c
to -DEXTERNAL_MAP_FROM_FD to make _dl_map_object_from_fd extern.
1998-08-26 15:46 Ulrich Drepper <drepper@cygnus.com>
* internals.h: Define THREAD_GETMEM and THREAD_SETMEM to default if
not already defined.
(struct _pthread_descr_struct): Add p_self and p_nr field.
* manager.c (__pthread_handles): Define second element to point
to manager thread.
(__pthread_handles_num): Initialize to 2.
(__pthread_manager): Use INIT_THREAD_SELF with two arguments.
(pthread_start_thread): Likewise.
(pthread_handle_create): Start search for free slot at entry 2.
Initialize new fields p_self and p_nr.
Call __clone with CLONE_PTRACE if available.
(pthread_free): Call FREE_THREAD_SELF if available.
* pthread.c (__pthread_initial_thread): Initialize new fields.
(__pthread_manager_thread): Likewise.
(__pthread_initialize_manager): Call __clone with CLONE_PTRACE.
* cancel.c: Use THREAD_GETMEM and THREAD_SETMEM to access the
elements of the thread descriptor.
* condvar.c: Likewise.
* errno.c: Likewise.
* join.c: Likewise.
* manager.c: Likewise.
* pthread.c: Likewise.
* ptlongjmp.c: Likewise.
* semaphore.c: Likewise.
* signals.c: Likewise.
* specific.c: Likewise.
* spinlock.c: Likewise.
* sysdeps/alpha/pt-machine.h (INIT_THREAD_SELF): Add extra parameter.
* sysdeps/i386/useldt.h: New file.
* sysdeps/i386/i686/pt-machine.h: Show how to use this file.
* sysdeps/sparc/sparc32/pt-machine.h: Define THREAD_GETMEM and
THREAD_SETMEM using __thread_self.
* sysdeps/sparc/sparc64/pt-machine.h: Likewise.
1998-08-03 16:36 Ulrich Drepper <drepper@cygnus.com>
* catgets/catgets.c: Use mmap/munmap only is _POSIX_MAPPED_FILES
is defined.
* catgets/open_catalog.c: Likewise.
* iconv/iconv_prog.c: Likewise.
* intl/loadmsgcat.c: Likewise.
* locale/findlocale.c: Likewise.
* locale/loadlocale.c: Likewise.
* locale/programs/localedef.c: Likewise.
* malloc/malloc.c: Likewise.
* elf/elf.h: Fix typo.
* math/Makefile: Use $(LN_S) instead of ln.
* sysdeps/generic/getpgid.c: Fix return type.
1998-08-01 02:49 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sysdeps/posix/tempname.c (__stdio_gen_tempname): Rename to
__gen_tempname and simplify the interface. Strip out the
code to do path search and create FILE objects. This function
now takes a mktemp() style template and returns either a name
or a file descriptor.
(__path_search): New function; searches for directories for
temp files.
* sysdeps/generic/tempname.c: Stub out __gen_tempname and
__path_search, not __stdio_gen_tempname.
* libio/stdio.h: Prototype __gen_tempname and __path_search,
not __stdio_gen_tempname.
* stdio/stdio.h: Likewise.
* stdio-common/tempnam.c: Use __path_search and __gen_tempname.
* stdio-common/tmpfile.c: Likewise.
* stdio-common/tmpfile64.c: Likewise.
* stdio-common/tmpnam.c: Likewise.
* stdio-common/tmpnam_r.c: Likewise.
* misc/mkstemp.c: New file. Use __gen_tempname.
* misc/mktemp.c: Likewise.
* sysdeps/posix/mkstemp.c: Removed.
* sysdeps/posix/mktemp.c: Removed.
* sysdeps/generic/mkstemp.c: Removed.
* sysdeps/generic/mktemp.c: Removed.
1998-08-02 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* configure.in: Check, if door add-on is installed.
* config.make.in: Add have_doors.
* sunrpc/Makefile: Add HAVE_DOOR define.
* sunrpc/key_call.c: Add keyserv/door interface.
* sunrpc/svc_unix.c: Call setsockopt only if SO_PASSCRED is defined.
* sunrpc/clnt_unix.c: Likewise.
1998-08-02 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* inet/netinet/in.h (IN_CLASSC): Correct mask.
Reported by Ian Staniforth <I.Staniforth@sheffield.ac.uk> [fixes
PR libc/727].
1998-08-03 10:23 Ulrich Drepper <drepper@cygnus.com>
* misc/Makefile: Fix installation problem with --disable-shared.
* posix/Makefile: Likewise.
1998-08-02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* posix/regex.c (re_search_2): Optimize searching for anchored
pattern if '^' cannot match at embedded newlines.
(regerror): Renamed from __regerror, which it should only be
called if _LIBC.
1998-07-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sunrpc/svc_unix.c (__msgread): Check setsockopt return value.
1998-07-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/generic/glob.c: Remove obsolete cast.
1998-07-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules (tests): Fix last change.
1998-07-29 Mark Kettenis <kettenis@phys.uva.nl>
* sysdeps/mach/hurd/dl-sysdep.c (__lseek): New function.
(__getpid): New function.
(abort): New function.
* nis/nis_cache2_xdr.c: Removed.
1998-07-24 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/glob.c (glob): Fix problems with handle tilde.
Reported by Brian Wellington <bwelling@anomaly.munge.com>.
* elf/elf.h: Really define Elf64_Verdef, Elf64_Verdaux, Elf64_Verneed,
and Elf64_Vernaux.
1998-07-24 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* configure.in: Recognize pgcc as compiler.
Reported by sauron@angband.ee.ualberta.ca.
1998-07-02 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nscd/dbg_log.c: Make sure, that debug message is really written.
* nscd/nscd.c: Don't use daemon(), set signal handler after fork.
SVID more for gamma(x) with x integer <= 0.
1998-07-14 19:39 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfscanf.c (ungetc): Use _IO_sputbackc, not _IO_ungetc.
[_USE_IN_LIBIO] (encode_error): Free cancelation handler.
(conv_error): Likewise.
(input_error): Likewise.
(memory_error): Likewise.
1998-07-12 Mark Kettenis <kettenis@phys.uva.nl>
* sysdeps/mach/hurd/dl-sysdep.c: Bring in sync with generic
implementation. Include <entry.h>. Replace references to symbol
_start with macro ENTRY_POINT.
(__libc_uid): Remove.
(__libc_multiple_libcs): New variable.
(__libc_stack_end): New variable.
(_dl_hwcap_mask): New variable.
(_dl_important_hwcaps): New function.
(_dl_show_auxv): Mark internal.
1998-07-09 13:34 Ulrich Drepper <drepper@cygnus.com>
* grp/grp.h: Define gid_t also for __USE_XOPEN.
* io/fcntl.h: Include <sys/stat.h> also for __USE_XOPEN.
* io/utime.h: Define time_t also for __USE_XOPEN.
* io/sys/stat.h: Define time_t also for __USE_XOPEN.
Define *_t types except for pid_t also for __USE_XOPEN.
Define S_* macros also for __USE_XOPEN.
* locale/langinfo.h: Define CODESET, CRNCYSTR, RADIXCHAR, and
THOUSEP also for __USE_XOPEN.
* math/math.c: Define M_* macros also for __USE_XOPEN.
* math/bits/mathcalls.h: Declare hypot also for __USE_XOPEN.
* posix/fnmatch.h: Define FNM_NOSYS and for if _XOPEN_SOURCE is
defined.
* posix/glob.h: Likewise for GLOB_NOSYS.
* posix/regex.h: Likewise for REG_NOSYS.
* posix/wordexp.h: Likewise for WRDE_NOSYS.
* posix/unistd.h: Define *_t types also for __USE_XOPEN.
* posix/sys/wait.h: Define pid_t for __USE_XOPEN.
* pwd/pwd.h: Define gid_t and pid_t also for __USE_XOPEN.
* signal/signal.h: Define pid_t also fir __USE_XOPEN.
* sysdeps/unix/sysv/linux/bits/fcntl.h: Define _RSYNC and O_DSYNC also
for __USE_POSIX199309.
* sysdeps/unix/sysv/linux/bits/termios.h: Define the various B*
constants also for __USE_XOPEN.
* wcsmbs/wchar.h: For XPG4 include wctype.h.
* intl/dcgettext.c (find_msg): Initialize act to prevent warning.
* locale/setlocale.c (new_composite_name): Likewise for last_len.
* libio/stdio.h: Don't declare fclose_unlocked.
* sysdeps/posix/fpathconf.c: Handle _PC_FILESIZEBITS.
1998-07-08 Mark Kettenis <kettenis@phys.uva.nl>
* stdio/stdio.h: Add prototypes for fflush_unlocked,
getc_unlocked, getchar_unlocked, putc_unlocked, putchar_unlocked,
fgets_unlocked, fread_unlocked, fwrite_unlocked,
clearerr_unlocked, feof_unlocked, ferror_unlocked,
fileno_unlocked, flockfile, ftrylockfile, funlockfile.
[__USE_XOPEN && !__USE_GNU] Declare optarg, optind, opterr. Add
prototype for getopt.
* stdio/clearerr.c (clearerr_unlocked): Weak alias for clearerr.
* stdio/feof.c (feof_unlocked): Weak alias for feof.
* stdio/ferror.c (ferror_unlocked): Weak alias for ferror.
* stdio/fflush.c (fflush_unlocked): Weak alias for fflush.
* stdio/fgets.c (fgets_unlocked): Weak alias for fgets.
* stdio/fileno.c (fileno_unlocked): Weak alias for fileno.
* stdio/fputc.c (fputc_unlocked): Weak alias for fputc.
* stdio/fread.c (fread_unlocked): Weak alias for fread.
* stdio/fwrite.c (fwrite_unlocked): Weak alias for fwrite.
* stdio/getc.c (getchar_unlocked): Weak alias for getc.
* stdio/getchar.c (getchar_unlocked): Weak alias for getchar.
* stdio/putc.c (putc_unlocked): Weak alias for putc.
* stdio/putchar.c (putchar_unlocked): Weak alias for putchar.
* stdio/Versions [GLIBC_2.1]: Add clearerr_unlocked,
feof_unlocked, ferror_unlocked, fflush_unlocked, fgets_unlocked,
fileno_unlocked, fputc_unlocked, fread_unlocked, fwrite_unlocked,
getc_unlocked, getchar_unlocked, putc_unlocked and
putchar_unlocked.
* libio/Versions: Move flockfile, ftrylockfile and funlockfile
from here ...
* stdio-common/Versions: ... to here.
1998-07-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (versioning): Correct typo.
1998-07-04 10:14 Ulrich Drepper <drepper@cygnus.com>
* libio/Makefile (routines): Add iofread_u and iofwrite_u.
* libio/Versions: Add fread_unlocked and fwrite_unlocked.
* Makerules (lib%.so): Adjust ignore pattern for last makefile change.
* time/tzfile.c (decode): Optimize by using bswap_32.
(__tzfile_read): Use _unlocked stream functions. Correct setting of
__tzname array values.
(__tzfile_compute): Correct setting of __tzname array values.
* time/tzset.c (__tzstring): Clean up a bit.
1998-06-29 19:01 Jim Wilson <wilson@cygnus.com>
* posix/regex.c (re_comp): Add cast to char * before gettext calls.
1998-06-30 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/bsd/poll.c (__poll): Allocate fd_set dynamically so
that fd can be bigger than FD_SETSIZE.
1998-07-01 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* nscd/grpcache.c: Include <unistd.h>.
* nscd/pwdcache.c: Likewise.
* nis/nis_modify.c: Include <string.h>.
* nis/nis_add.c: Likewise.
* nis/nis_checkpoint.c: Likewise.
* posix/runptests.c: Likewise.
* sysdeps/generic/statvfs64.c: Likewise.
* sysdeps/generic/fstatvfs64.c: Likewise.
1998-07-03 13:16 Ulrich Drepper <drepper@cygnus.com>
* localedata/charmaps/ISO-8859-9: Change mapping for 0xea, 0xec, 0xef
to match data from Unicode.
Reported by Michael Deutschmann <michael@talamasca.wkpowerlink.com>.
1998-07-03 11:45 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/printf.h: Define printf_function and
printf_arginfo_function types using __PMT not __P.
Reported by Marc Lehmann.
1998-07-02 14:07 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
* assert/test-assert.c: New test.
* assert/test-assert-perr.c: New test.
* assert/Makefile (tests): Add test-assert and test-assert-perr.
1998-07-02 13:45 Zack Weinberg <zack@rabi.phys.columbia.edu>
BSD-style SCM_CREDS support.
* sysdeps/unix/sysv/linux/socket.h: Define struct cmsgcred and
SCM_CREDS.
* sysdeps/unix/sysv/linux/sendmsg.c: New file. Convert user
visible SCM_CREDS packet to what the kernel wants.
* sysdeps/unix/sysv/linux/recvmsg.c: New file. Convert
SCM_CREDS packet output by kernel to what users want.
* sysdeps/unix/sysv/linux/sendmsg.S: Moved to...
* sysdeps/unix/sysv/linux/__sendmsg.S: here.
* sysdeps/unix/sysv/linux/recvmsg.S: Moved to...
* sysdeps/unix/sysv/linux/__recvmsg.S: here.
* sysdeps/unix/sysv/linux/Makefile [subdir=socket]: Add
__sendmsg and __recvmsg to sysdep_routines.
* sysdeps/unix/sysv/linux/Dist: Add __sendmsg.S and __recvmsg.S.
1998-07-02 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nscd/grpcache.c: Fix gid pointer handling and debug messages.
* nscd/pwdcache.c: Fix uid pointer handling and debug messages.
* nscd/nscd.c: Check, if pthread_create fails.
1998-07-02 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* stdio-common/test_rdwr.c (main): Use %Zu for size_t in printf
format strings.
* stdio-common/bug1.c (main): Likewise.
* stdio-common/bug5.c (main): Likewise.
* stdio-common/tstgetln.c (main): Likewise.
* elf/sprof.c (generate_call_graph): Likewise.
(load_shobj): Likewise.
* posix/runptests.c (main): Likewise.
* string/tst-strlen.c (main): Likewise.
* sysdeps/libm-ieee754/e_acos.c (__ieee754_acos): Remove unused
variable q3.
* sysdeps/libm-ieee754/e_asin.c (__ieee754_asin): Likewise
1998-07-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* wctype/Versions: Add __towctrans.
Noticed by Alex Buell <alex.buell@tahallah.demon.co.uk>.
1998-07-02 Mark Kettenis <kettenis@phys.uva.nl>
* grp/initgroups.c (compat_call): Only call dynamically loaded
functions if they are really present.
1998-07-02 Mark Kettenis <kettenis@phys.uva.nl>
* sysdeps/unix/sysv/linux/bits/sched.h: Move __END_DECLS within
#ifdef that contains __BEGIN_DECLS.
1998-07-02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* libio/iofwrite.c: Fix return value when size == 0.
1998-07-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* posix/Makefile (distribute): Add annexc.c.
(generated): Add $(objpfx)annexc and $(objpfx)annexc.out.
1998-07-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
bits/pthreadtypes.h here, and do not clobber headers.
* sysdeps/unix/sysv/linux/Dist: Add bits/pthreadtypes.h.
1998-07-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* timezone/tst-timezone.c: Add tests for tzname variable.
1998-07-03 12:17 Zack Weinberg <zack@rabi.phys.columbia.edu>
* Makefile [versioning=yes]: Build the mapfiles with a pattern
rule that lists all of them as targets.
(sysd-versions): Depend only on Versions.def. Write a Makefile
fragment that defines $(vers-libs) based on contents of that file;
then include it.
(lib-noranlib): Depend on lib-mapfiles not sysd-versions.
(lib-mapfiles): New target, depends on sysd-versions and $(vers-libs).
Predicate all this on avoid-generated unset as well as versioning.
1998-07-03 14:35 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
1998-07-02 21:51 Ulrich Drepper <drepper@cygnus.com>
* Makeconfig: Define list of subdirs as all-subdirs and make subdirs
a copy.
* Makefile: Add rules to generate map files.
(distribute): Remove libc.map, add Versions.def and versions.awk.
* Makerules: Change rules to find map files on common-objpfx.
* elf/Makefile: Likewise.
* md5-crypt/Makefile: Likewise.
* nis/Makefile (libnsl-map): Remove.
* Versions.def: New file.
* versions.awk: New file.
* argp/Versions: New file.
* assert/Versions: New file.
* catgets/Versions: New file.
* csu/Versions: New file.
* ctype/Versions: New file.
* db/Versions: New file.
* debug/Versions: New file.
* dirent/Versions: New file.
* elf/Versions: New file.
* gmon/Versions: New file.
* grp/Versions: New file.
* hesiod/Versions: New file.
* hurd/Versions: New file.
* iconv/Versions: New file.
* inet/Versions: New file.
* intl/Versions: New file.
* io/Versions: New file.
* libio/Versions: New file.
* linuxthreads/Versions: New file.
* locale/Versions: New file.
* login/Versions: New file.
* malloc/Versions: New file.
* math/Versions: New file.
* md5-crypt/Versions: New file.
* misc/Versions: New file.
* nis/Versions: New file.
* nss/Versions: New file.
* posix/Versions: New file.
* pwd/Versions: New file.
* resolv/Versions: New file.
* resource/Versions: New file.
* rt/Versions: New file.
* setjmp/Versions: New file.
* shadow/Versions: New file.
* signal/Versions: New file.
* socket/Versions: New file.
* stdio/Versions: New file.
* stdio-common/Versions: New file.
* stdlib/Versions: New file.
* streams/Versions: New file.
* string/Versions: New file.
* sunrpc/Versions: New file.
* sysdeps/alpha/Versions: New file.
* sysdeps/alpha/fpu/Versions: New file.
* sysdeps/i386/Versions: New file.
* sysdeps/sparc/Versions: New file.
* sysdeps/unix/sysv/Versions: New file.
* sysdeps/unix/sysv/linux/Versions: New file.
* sysdeps/unix/sysv/linux/alpha/Versions: New file.
* sysdeps/unix/sysv/linux/i386/Versions: New file.
* sysdeps/unix/sysv/linux/mips/Versions: New file.
* sysvipc/Versions: New file.
* termios/Versions: New file.
* time/Versions: New file.
* wcsmbs/Versions: New file.
* wctype/Versions: New file.
* libc.map: Removed.
* db/libdb.map: Removed.
* elf/libdl.map: Removed.
* hesiod/libnss_hesiod.map: Removed.
* hurd/libhurduser.map: Removed.
* hurd/libmachuser.map: Removed.
* linuxthreads/libpthread.map: Removed.
* locale/libBrokenLocale.map: Removed.
* login/libutil.map: Removed.
* math/libm.map: Removed.
* md5-crypt/libcrypt.map: Removed.
* nis/libnsl.map: Removed.
* nis/libnsl_compat.map: Removed.
* nis/libnss_nis.map: Removed.
* nis/libnss_nisplus.map: Removed.
* nss/libnss_db.map: Removed.
* nss/libnss_files.map: Removed.
* resolv/libnss_dns.map: Removed.
* resolv/libresolv.map: Removed.
* rt/librt.map: Removed.
* elf/dl-load.c (fillin_rpath): Fix test for trusted directory.
Fix typos.
* elf/rtld.c (process_dl_debug): Recognize 'all'.
(process_envvars): LD_BIND_NOW must be followed by y, Y, or 1.
* sysdeps/generic/elf/backtracesyms.c: Allocate string memory of
correct size.
* sysdeps/unix/sysv/linux/getsysstats.c (get_proc_path): Fix typo
in comment.
1998-06-30 11:47 Ulrich Drepper <drepper@cygnus.com>
* include/aio.h: New file.
* posix/Makefile (distribute): Add bits/pthreadtypes.h.
(tests): Build and run annexc program.
* posix/annexc.c: New file.
* posix/bits/posix1_lim.h: Add several more _POSIX_* limits.
* rt/aio.h: Remove __need_timespec_t. We can include the whole time.h.
* rt/aio_misc.c: Include limits.h.
* rt/aio_notify.c: Include errno.h.
* sysdeps/unix/sysv/linux/alpha/bits/types.h: Include pthreadtypes.h.
Define size_t.
* sysdeps/unix/sysv/linux/bits/types.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/types.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Likewise.
* sysdeps/unix/sysv/linux/bits/errno.h: Define ENOTSUP though the
kernel doesn't do this.
* sysdeps/unix/sysv/linux/bits/fcntl.h: Define O_LARGEFILE only if
__USE_LARGEFILE64 is defined.
* sysdeps/unix/sysv/linux/bits/pthreadtypes.h: New file. Empty.
* sysdeps/unix/sysv/linux/bits/sched.h: Define __sched_param struct
if requested.
* sysdeps/unix/sysv/linux/bits/siginifo.h: Protect non-standard names.
* stdlib/isomac.c: Avoid include_next warning.