This patch refactors the *cvt functions implementation in a way that
makes it easier to re-use them for implementing the IEEE long double on
powerpc64le. By removing the macros that generate the function names
(APPEND combined with FUNC_PREFIX), the new code makes it easier to
define new function names, such as __qecvtieee128.
Tested that installed stripped binaries for all build-many-glibcs
targets remain identical before and after this patch. Also tested for
powerpc64le and x86_64.
Reviewed-by: Paul E. Murphy <murphyp@linux.ibm.com>
This patch refactors the *cvt functions implementation in a way that
makes it easier to re-use them for implementing the IEEE long double on
powerpc64le. By splitting the implementation per se in one file
(efgcvt-template.c) and the alias definitions in others (e.g. efgcvt.c),
the new code makes it easier to define new function names, such as
__qecvtieee128.
Tested that installed stripped binaries for all build-many-glibcs
targets remain identical before and after this patch. Also tested for
powerpc64le and x86_64.
Reviewed-by: Paul E. Murphy <murphyp@linux.ibm.com>
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-12-13 Jakub Jelinek <jakub@redhat.com>
* misc/efgcvt.c (FCVT_MAXDIG): Define.
(FCVT_BUFPTR): New variable.
(fcvt): If fcvt_r returns -1 on the static short buffer,
try to malloc a sufficiently large one and retry.
(free_mem): New function.
* misc/qefgcvt.c (FCVT_MAXDIG): Define.
* misc/tst-efgcvt.c (fcvt_tests): Add new test.
2000-12-15 Ulrich Drepper <drepper@redhat.com>
* misc/dirname.c (dirname): Fix search for second to last slash.
2000-12-13 Andreas Jaeger <aj@suse.de>
* misc/tst-dirname.c (main): Fix typo in test to really use
the examples from Unix98.
Reported by Michael Kerrisk <mtk16@ext.canterbury.ac.nz>.
1999-07-29 Andreas Schwab <schwab@suse.de>
* misc/efgcvt.c (NDIGIT_MAX): Provide precomputed constants for
all floating point formats supported by gcc. Error out for
unhandled precisions.
* misc/efgcvt_r.c (NDIGIT_MAX): Likewise.
* misc/qefgcvt.c (NDIGIT_MAX): Likewise.
* misc/qefgcvt_r.c (NDIGIT_MAX): Likewise.
1999-07-28 Ulrich Drepper <drepper@cygnus.com>
* misc/efgcvt.c: Use IEEE 854 formula to compute the number of digits
to print.
* misc/efgcvt_r.c: Likewise.
* misc/qefgcvt.c: Likewise.
* misc/qefgcvt_r.c: Likewise.
* misc/tst-efgcvt.c: Remove one test which cannot reliably be run
anymore.
1999-06-23 Ulrich Drepper <drepper@cygnus.com>
* manual/arith.texi: Document restriction of ndigit parameter of
ecvt and friends.
* misc/efgcvt.c: Define NDIGIT_MAX.
(gcvt): Limit precision in sprintf call to NDIGIT_MAX.
Do not dynamically allocate the static buffers. They are small enough.
* misc/efgcvt_r.c: Define NDIGIT_MAX.
(fcvt_r): Limit precision in snprintf call to NDIGIT_MAX.
* misc/qefgcvt.c: Define NDIGIT_MAX.
* misc/qefgcvt_r.c: Likewise.
* misc/tst-efgcvt.c (special): Add test for large ndigit parameter.
1997-10-31 23:16 Ulrich Drepper <drepper@cygnus.com>
* posix/glob.c (glob): If calling glob_in_dir for a list which was
generated by a glob call disable GLOB_ERR since there might be
non-directories in the list (PR203).
* posix/glob.h (GLOB_ONLYDIR): New flag.
(__GLOB_FLAGS): Add GLOB_ONLYDIR.
* posix/glob.c: Define HAVE_D_TYPE if _DIRENT_HAVE_D_TYPE is defined.
(glob): Add GLOB_ONLYDIR to recursive call to match dirname.
(glob_in_dir) [HAVE_D_TYPE]: While reading directory entries test
whether they are directories if GLOB_ONLYDIR flag is given.
* manual/pattern.texi: Document GLOB_ONLYDIR.
* misc/Makefile (tests): Add tst-fdset.
* sysdeps/i386/bits/select.h: Rewrite asm macros to be cleaner.
* sysdeps/unix/sysv/linux/Dist: Add xstatconv.c.
* sysdeps/unix/sysv/linux/alpha/Dist: Likewise.
* time/strptime.c (strptime_internal): In %y format, regard years
>= 69 as of twentieth century, all other as of twenty-first.
* time/tzset.c: Correct typo and little optimization.
1997-10-31 16:01 Ulrich Drepper <drepper@cygnus.com>
* inet/getnetgrent.c: Allocate buffer dynamically if needed.
Suggested by Joe Keane <jgk@jgk.org>.
1997-10-31 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* io/ftw.h: Declare __ftw64_func_t and __nftw64_func_t only when
__USE_FILE_OFFSET64 || __USE_LARGEFILE64 is true.
1997-10-30 05:47 Ulrich Drepper <drepper@cygnus.com>
* misc/mntent.c: Don't use statically allocated buffer. Allocate
it dynamically if necessary.
* misc/efgcvt.c: Likewise.
Patch by Joe Keane <jgk@jgk.org>.
* misc/mntent.c: Allow freeing of allocated buffer in
__libc_subfreeres.
* misc/efgcvt.c: Likewise.
* misc/efgcvt.c: Call correct reentrant functions.
Use better values for MAXDIG.
* misc/qefgcvt.c: Use better values for MAXDIG.
1997-10-29 18:48 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/Makefile [io]: Add xstatconv.
* sysdeps/unix/sysv/linux/alpha/xstatconv.c: New file. Convert
between kernel_stat and the userland version indicated.
* sysdeps/unix/sysv/linux/xstatconv.c: Likewise.
* sysdeps/unix/sysv/linux/bits/stat.h: Define _STAT_VER_KERNEL.
* sysdeps/unix/sysv/linux/fxstat.c: Defer to __xstat_conv. Alias
to __*xstat64 if requested.
* sysdeps/unix/sysv/linux/lxstat.c: Likewise.
* sysdeps/unix/sysv/linux/xstat.c: Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/stat.h: Add struct stat64.
Increment _STAT_VER, and make struct stat the same.
* sysdeps/unix/sysv/linux/alpha/bits/types.h: Add __ino64_t, and
__off64_t. Reorganize.
* sysdeps/unix/sysv/linux/alpha/kernel_stat.h: Add struct glibc2_stat
for backward compatibility. Define XSTAT_IS_XSTAT64.
* sysdeps/unix/sysv/linux/alpha/fxstat64.c: Empty file.
* sysdeps/unix/sysv/linux/alpha/lxstat64.c: Likewise.
* sysdeps/unix/sysv/linux/alpha/xstat64.c: Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/dirent.h (struct dirent): For
consistency, force d_ino to use ino_t and supply padding.
1997-10-29 18:47 Richard Henderson <rth@cygnus.com>
* libio/iofopen.c: Correct weak_alias.
* manual/Makefile (glibc-targets): Variable and targets removed.
Sat Jul 13 23:50:17 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* manual/Makefile (lib): New phony target. Depend on stamp files.
($(objpfx)stamp%-$(subdir)): New rule to create them when necessary.
1996-07-13 Paul Eggert <eggert@twinsun.com>
* time/strftime.c (strftime): Use space padding for %e, %k, %l,
to match Emacs format-time-string specification.
(DO_NUMBER_SPACEPAD): Renamed from DO_NUMBER_NOPAD.
Sat Jul 13 20:17:38 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* elf/dl-deps.c (_dl_map_object_deps): Take new args PRELOADS and
NPRELOADS, vector of `struct link_map *'s; add them to the searchlist
between MAP and its deps.
* elf/link.h: Fix decl.
* elf/rtld.c (dl_main): If not secure, parse LD_PRELOAD for
colon-separated list of names, map those and pass vector of ptrs as
PRELOADS list to _dl_map_object_deps.
* elf/dl-runtime.c (_dl_object_relocation_scope): Pass new args to
_dl_map_object_deps with empty preload list.
* elf/dl-open.c (_dl_open): Likewise.
* sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_open_zero_fill): Function
removed.
(__mmap): Pass MACH_PORT_NULL for memobj port when (flags & MAP_ANON).
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_open_zero_fill):
Conditionalize defn on [! MAP_ANON].
* elf/dl-minimal.c (malloc): Conditionalize use of _dl_zerofd
on [! MAP_ANON].
* elf/rtld.c (dl_main): Likewise.
* elf/dl-load.c (_dl_zerofd): Conditionalize defn on [! MAP_ANON].
(_dl_map_object_from_fd): Conditionalize initialization of _dl_zerofd.
* elf/dl-fini.c (_dl_fini): Skip finalizer for executable itself.
Sat Jul 13 02:47:53 1996 David Mosberger-Tang <davidm@azstarnet.com>
* stdlib/random.c (__random): Declare as int32_t to be in sync
with declaration.
* socket/Makefile (headers): Add socketbits.h.
* misc/mntent.c (endmntent): Allow for NULL stream. SunOS does
it that way.
* grp/initgroups.c (initgroups): Add groups that user is a member
of, not the ones he is _not_ a member of.
* nss/nsswitch.c (known_compare): Make known_compare() a static
instead of a local function. The latter are difficult to debug
and slow to execute on certain platforms.
* sysdeps/posix/ttyname_r.c (ttyname_r): Use sizeof (dev) - 1 in
place of sizeof (dev). The size of a literal string includes the
NUL byte.
* sysdeps/unix/getlogin.c (getlogin): Initialize ut_fd with -1.
Thu Jul 11 16:59:10 1996 David Mosberger-Tang <davidm@azstarnet.com>
* misc/mntent.c (addmntent): Seek to end of file before writing
entry. Return 1 on error, not -1.
Tue Jul 9 19:08:05 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/sysv/linux/syscalls.list: Mark bdflush as EXTRA
syscall.
Fri Jul 5 18:44:55 1996 David Mosberger-Tang <davidm@azstarnet.com>
* sysdeps/unix/sysv/linux/alpha/ioperm.c (port_to_cpu_addr): Size
shift amount for Jensen must be 5 not 4.
Sat Jul 13 20:04:28 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* socket/sys/socket.h (struct osockaddr): New type.
Sat Jul 13 03:50:53 1996 Ulrich Drepper <drepper@cygnus.com>
* misc/Makefile (routines): Add qefgcvt and qefgcvt_r.
* misc/efgcvt.c, misc/efgcvt_r.c: Change code so that the `double'
and `long double' versions can be generated.
* misc/qefgcvt.c, misc/qefgcvt_r.c: New files. Define macros
so that included efgcvt{,_r}.c file generate `long double'
versions.
* stdlib/stdlib.h: Add prototypes for q[efg]cvt() and q[ef]cvt_r()
functions.
* manual/startup.texi: Document new getsubopt function.
* manual/examples/subopt.c: New example program for documenting
getsubopt function.
Fri Jul 12 23:58:37 1996 Ulrich Drepper <drepper@cygnus.com>
* stdlib/Makefile (routines): Add getsubopt.
* stdlib/stdlib.h: Add prototype for getsubopt.
* stdlib/getsubopt.c: New file. Implement getsubopt function
to handle suboption parsing.