* Makefile.am (MATHOBJS_IN_LIBC): Add s_isinfd, sf_isinff,
s_isnand, and sf_isnanf object files.
* Makefile.in: Regenerated.
* libc/include/ieeefp.h: Undef isnan and isinf to avoid
conflict if <math.h> has previously been included.
* libc/include/math.h
* libm/common/Makefile.am: Add new s_isinfd, s_isnand, sf_isinff,
and sf_isnanf files. Also support s_isnan, sf_isnan, s_isinf, and
sf_isinf files which have been moved from math/mathfp directories.
* libm/common/Makefile.in: Regenerated.
* libm/common/s_isinfd.c: New file.
* libm/common/s_isnand.c: Ditto.
* libm/common/sf_isinff.c: Ditto.
* libm/common/sf_isnanf.c: Ditto.
* libm/common/s_isinf.c: Moved from libm/math directory.
* libm/common/s_isnan.c: Ditto.
* libm/common/sf_isinf.c: Ditto.
* libm/common/sf_isnan.c: Ditto.
* libm/math/Makefile.am: Remove isinf and isnan family functions
which have been moved into common directory.
* libm/mathfp/Makefile.am: Ditto.
* libm/math/Makefile.in: Regenerated.
* libm/mathfp/Makefile.in: Ditto.
* libm/math/s_isinf.c: Removed.
* libm/math/s_isnan.c: Ditto.
* libm/math/sf_isinf.c: Ditto.
* libm/math/sf_isnan.c: Ditto.
* libm/mathfp/s_isinf.c: Ditto.
* libm/mathfp/s_isnan.c: Ditto.
* libm/mathfp/sf_isinf.c: Ditto.
* libm/mathfp/sf_isnan.c: Ditto.
* libc/stdio/fflush.c (fflush): For an fflush on a read-only
stream, turn off fseek/rewind optimization as per POSIX/SUSv3.
* libc/stdio/fseek.c (_fseek_r): After a successful unoptimized
seek, turn off the __SNPT no-optimization flag.
* libc/sys/linux/aio.c: Define _GNU_SOURCE so struct aioinit
will be defined.
* libc/sys/linux/sys/types.h: Move <sys/config.h> ahead of
<features.h> to preset special flags.
David Carne <davidcarne@gmail.com>
* libc/string/strndup_r.c (_strndup_r): Use strnlen logic
instead of strlen to determine number of bytes to copy.
* libc/string/strnlen.c (strnlen): Fix so check for max limit occurs
before looking at storage location.
* libc/include/stdint.h: Prefer long over int for int32_t.
Use __have_long32 to set up int32_t.
* libc/include/inttypes.h: Use "#if xxx" instead of "#ifdef xxx"
(Sync with stdint.h).
* libc/sys/linux/dl/dl-local.h: New file based on old dlfcn.h
in libc/sys/linux/include.
* libc/sys/linux/dl/dlfcn.h: Moved to libc/sys/linux/include.
* libc/sys/linux/dl/ldsodefs.h: Include dl-local.h instead of dlfcn.h.
* libc/sys/linux/include/dlfcn.h: Replaced with dlfcn.h formerly
in libc/sys/linux/dl.
* libc/time/tzvars.c: New file.
* libc/time/tzset_r.c: Moved globals into tzvars.c
so other time functions needn't link in __tzset_r and its
dependencies.
* libc/time/Makefile.am: Add the new file.
* libc/time/Makefile.in: Regenerated.
* libc/include/sys/unistd.h (readlink, symlink): Provide these
prototypes by default.
* libc/sys/linux/include/unistd.h (readlink): Remove this
prototype.
* libc/sys/linux/sys/unistd.h (readlink, symlink): New
prototypes.
* libc/sys.tex (Stubs): Format examples consistently. Change sbrk
example to use "_end" symbol instead of "end". Change write example
to use "outbyte" instead of "writechar".
* libc/posix/scandir.c (scandir): Update the function
prototype to match the header.
* libc/sys/linux/linuxthreads/bits/libc-lock.h: Remove an
extraneous #endif.
* libc/sys/linux/sys/lock.h: Do not include
machine/weakalias.h, since it's not used by this file.
* libc/include/math.h (HUGE_VALF, HUGE_VALL): New.
* libm/common/Makefile.am: Add s_infconst.c support.
* libm/common/Makefile.in: Regenerated.
* libm/common/s_infconst.c: New file with float and
long double infinity support added.
* libm/math/Makefile.am: Remove s_infconst.c support.
* libm/math/Makefile.in: Regenerated.
* libm/math/s_infconst.c: Moved to common directory.
* libm/mathfp/Makefile.am: Remove s_infconst.c support.
* libm/mathfp/Makefile.in: Regenerated.
* libm/mathfp/s_infconst.c: Moved to common directory.
* libc/libc.texinfo (Top): Surround this node with @ifnottex
instead of @ifinfo. Update menu to add Introduction and match
SUBDIRS order.
(Introduction): New section.
* libc/include/stdint.h (__EXP): Rename to __STDINT_EXP
and do not #undef the macro after it is used. Fix typos.
Also change 64-bit constants to use the __have_long64 and
__have_longlong64 flags to determine if long or long long
constants should be used.
* libc/include/inttypes.h: Include stddef.h to get wchar_t
type defined.
* Makefile.am: Add include files under bits sub-directory.
* Makefile.in: Regenerated.
* libc/sys/linux/argp/argp-fs-xinl.c: Set __OPTIMIZE__ to
actual value of 1 to be compatible with newer glibc headers.
* libc/sys/linux/sys/cdefs.h: Fix to be compatible with newer
glibc headers.
* libc/sys/linux/sys/dirent.h: Ditto.
* libc/sys/linux/argp/argp-xinl.c: Ditto.
* libc/sys/linux/dl/dl-runtime.c: Make sure fixup and
profile_fixup routines are marked used so they won't be
optimized away.
* libc/sys/linux/dl/dl-cache.c: Don't use weak_extern macro
to mark functions as weak.
* libc/sys/linux/dl/dl-open.c: Ditto.
* libc/sys/linux/iconv/gconv_open.c: Fix to obey new gcc4
rules about lvalues.
* libc/sys/linux/iconv/gconv_simple.c: Ditto.
* libc/sys/linux/linuxthreads/bits/libc-lock.h: Don't use
weak_extern macro to mark functions as weak. Instead always
use #pragma weak.
* iconvdata/jis0208.h: Fix to work with gcc4.
* libc/sys/linux/dl/dl-load.c: Ditto.
* libc/sys/linux/dl/dl-reloc.c: Ditto.
* libc/sys/linux/dl/do-rel.h: Ditto.
* libc/sys/linux/dl/dynamic-link.h: Ditto.
* libc/sys/linux/include/ltdl.h: Ditto.
* libc/sys/linux/machine/i386/dl-machine.h: Ditto.
* libc/sys/linux/machine/i386/weakalias.h: Ditto.
* libc/sys/linux/net/ns_ntoa.c: Ditto.
* libc/sys/linux/bits/initspin.h: New file.
* libc/sys/linux/bits/libc-lock.h: Ditto.
* libc/sys/linux/bits/pthreadtypes.h: Ditto.
* libc/sys/linux/bits/typesizes.h: Ditto.
* configure.host: Set have_crt0 to no for Arm targts when not
providing syscalls. Set sys_dir=arm unconditionally.
Default have_crt0 based on sys_dir.
* configure.in: Use have_crt0.
* libc/configure.in: Ditto.
* libc/sys/configure.in: Ditto.
* configure: Regenerate.
* libc/configure: Regenerate.
* libc/sys/configure: Regenerate.
* libc/sys/arm/Makefile.am (lib_a_SOURCES): Add aeabi_atexit.c.
Only build other files when providing syscalls.
* libc/sys/arm/Makefile.in: Regenerate.
* libc/sys/arm/aeabi_atexit.c: New file.
* libc/include/_syslist.h: If HAVE_OPENDIR is not defined,
define _opendir as opendir, _readdir as readdir, and
_closedir as closedir so that the implementations in
libc/posix will be used.
* libc/stdio/vfprintf.c (cvt): Don't rely on pointer aliasing to
determine characteristics of long double. Use a union instead.
* ldtoa.c (_ldtoa_r): Ditto.
(_ldcheck): Ditto.
(_strtold): Ditto.
(union uconv): New union.
* libc/include/libgen.h: New file.
2005-04-08 Shaun Jackman <sjackman@gmail.com>
* libc/unix/Makefile.am: Add support for basename and dirname.
* libc/unix/Makefile.in: Regenerated.
* libc/unix/basename.c: New file.
* libc/unix/dirname.c: New file.
* libc/stdio/vfprintf.c: Move newlib.h before _WANT_IO_POS_ARGS test,
since _WANT_IO_POS_ARGS is now defined in there. Remove duplicate
reent.h include.
* configure.in: Add new check to see if compiler supports
aliasing of arrays and define _HAVE_ARRAY_ALIASING if true.
* configure: Regenerated.
* Makefile.in: Ditto.
* newlib.hin: Add _HAVE_ARRAY_ALIASING.
* libc/ctype/ctype_.c: Check for _HAVE_ARRAY_ALIASING before
aliasing the _ctype_ array to _ctype_b.
* libc/include/ctype.h: Change macros to use __ctype_ptr. Mark
_ctype_ as deprecated.
* libc/include/machine/_types.h: New file.
* libc/include/sys/types.h: Do not check for __rtems__
when including <machine/_types.h>. Remove some redundant
declarations now that <machine/_types.h> is included.
* libc/sys/rtems/machine/_types.h: Removed. Replaced with
shared header file.
* libc/include/time.h (__tzrule_struct): Make offset long, since
a 16-bit int overflows on a 12-hour offset.
* libc/sys/linux/include/time.h: Ditto.
* libc/time/mktime.c (mktime): Use new type of __tzrule.offset.
* libc/time/mktm_r.c: Ditto.
* libc/time/gettzinfo.c: Ditto.
* libc/time/strftime.c (strftime): Fix '%x' to deal with negative
years. Fix '%z' to use long, not int.
* libc/include/sys/types.h [__rtems__]: Include new
header file machine/_types.h.
* libc/include/machine/types.h: Ditto.
* libc/sys/rtems/machine/_types.h: New file.
* libc/include/time.h [!CYGWIN](_timezone): Change to long.
(__tzrule_type, __tzinfo_type): New types.
(__gettzinfo): New function.
* libc/sys/linux/include/time.h: Ditto.
* libc/time/Makefile.am: Add gettzinfo.c.
* libc/time/Makefile.in: Regenerated.
* libc/time/local.h: Moved __tzrule_type to time.h.
* libc/time/mktime.c: Call __gettzinfo to reference
__tznorth, __tzyear, and __tzrule array.
* libc/time/mktm_r.c: Ditto.
* libc/time/strftime.c: Ditto.
* libc/time/tzset_r.c: Ditto. Also remove definition
of __tzrule which is now in gettzinfo.c. Change _timezone
references to not cast to time_t.
* libc/time/gettzinfo.c: New file.
* libc/time/time.tex: Improve the documentation.
* libc/time/strftime.c: Improve the documentation.
(iso_year_adjust): New helper function.
(strftime): Simplify '%E' and '%O'. Change '%c' to use
recursion. Fix '%C', '%y', and '%Y' to deal with years with more
than 4 characters. Combine '%d' and '%e'. Implement '%D', '%F',
'%g', '%G', '%n', '%R', '%t', '%T', '%u', '%V', '%X', and '%z'.
Avoid core dumps on valid inputs (maxsize == 0, or
tim_p->tm_isdst > 1).
* libc/stdio/findfp.c (__sinit): Protect with new lock.
(__sinit_lock): New lock.
(__sinit_lock_acquire, __sinit_lock_release): New functions.
* libc/stdio/local.h: Add reference to new __sinit locking
functions.
* libc/include/string.h: Remove Linux-specific declaration of
strsignal and add #include <sys/string.h>.
* libc/include/sys/string.h: New file.
* libc/include/sys/linux/sys/string.h: New file with strsignal
declaration deleted above.
* libc/time/strftime.c (strftime): Change %r and %x to be compliant
to POSIX standard for "C" locale. Allow %E and %O modifiers
to be ignored as long as they precede valid specifiers according
to POSIX.
* libc/stdlib/strtod.c (_strtod_r): Add NaN support.
* (strtof): Ditto.
* libc/stdio/vfscanf.c (__svfscanf_r): Ditto.
* Makefile.am (MATHOBJS_IN_LIBC): Add s_nan and sf_nan
functions for use by strtod and strtof.
* Makefile.in: Regenerated.
* libc/sys/linux/linuxthreads/Makefile.am (install-data-local): Fix
our link to use readlink so as to preserve any relative link created
by install-toollibLIBRARIES.
* libc/sys/linux/linuxthreads/Makefile.in: Regenerated.
* libc/sys/linux/stdlib/glob.c: Include <sys/types.h> which defines
time_t before including sys/stat.h, which uses it.
* libc/sys/linux/sys/stat.h: Include <sys/types.h> and
<linux/time.h> just prior to definition of __KERNEL__ so as to
allow building on Debian Linux where otherwise, mktime would
be redefined.
* libc/include/stdio.h: Add new iprintf and iscanf variants. Also
do some reordering.
* libc/machine/powerpc/vfscanf.c: Remove __sccl function.
* libc/stdio/Makefile.am: Add support for new iprintf and iscanf
family functions.
* libc/stdio/Makefile.in: Regenerated.
* libc/stdio/fiprintf.c: Remove doc to siprintf.c.
* libc/stdio/iprintf.c: Ditto.
* libc/stdio/local.h (__svfiscanf_r): New prototype.
* libc/stdio/siprintf.c: Add docs for various iprintf family functions.
* libc/stdio/sniprintf.c: Move docs to siprintf.c.
* libc/stdio/stdio.tex: Add new functions.
* libc/stdio/vfscanf.c: Split out __sccl function to separate
file and add special name defines so this file can be used
to build vfiscanf.o.
* libc/stdio/asiprintf.c: New file.
* libc/stdio/fiscanf.c: Ditto.
* libc/stdio/iscanf.c: Ditto.
* libc/stdio/sccl.c: Ditto.
* libc/stdio/siscanf.c: Ditto.
* libc/stdio/vasiprintf.c: Ditto.
* libc/stdio/viprintf.c: Ditto.
* libc/stdio/viscanf.c: Ditto.
* libc/stdio/vsiprintf.c: Ditto.
* libc/stdio/vsiscanf.c: Ditto.
* libc/stdio/vsniprintf.c: Ditto.
* libc/include/sys/signal.h: If <signal.h> didn't include
this header file, include <signal.h> to account for
applications that take advantage that the two header
files are the same in glibc.
* libc/stdio/vfscanf.c (__svfscanf_r): For int conversions,
count skipped zero characters as part of the nread count for %n.
* libc/machine/powerpc/vfscanf.c: Ditto.
* libc/stdio/fread.c (fread): For non-space-optimized case,
add special code for unbuffered files to use user buffer and
only require one low-level system read.
* libc/include/sys/lock.h: Replaced empty {} with (0) to conform
with locking API.
* libc/include/sys/stdio.h: (_flockfile)[!_SINGLE_THREAD]: Add
check for__SSTR in _flags and if set, skip lock request.
(_funlockfile)[!SINGLE_THREAD]: Ditto.
* libc/stdio/local.h (CHECK_INIT): Added check that _REENT is
not NULL.
* libc/stdio/siprintf.c (siprintf, _siprintf_r): Added missing
initialisation of _file to -1 in local FILE.
* libc/stdio/snprintf.c (snprintf, _snprintf_r): Ditto.
* libc/stdio/sscanf.c (sscanf, _sscanf_r): Ditto.
* libc/stdio/vsnprintf.c (vsnprintf, _vsnprintf_r): Ditto.
* libc/stdio/vsscanf.c (_vsscanf_r): Ditto.
* libc/stdio/sscanf.c (sscanf, _sscanf_r): Added __SSTR flag to
_flags in local FILE to prevent locking.
* libc/stdio/vsscanf.c (_vsscanf_r): Ditto.
* libc/stdio/fwalk.c (_fwalk): Remove check for _GLOBAL_REENT
and only walk the reentrancy parameter.
(_fwalk_reent): Ditto.
* libc/stdlib/exit.c: Remove out of date _REENT_ONLY check.
* libc/reent/impure.c (reent_data): Define as alias to impure_data
when building for Cygwin.
* libc/include/sys/reent.h (_GLOBAL_REENT): Revert definition to
_global_impure_ptr.