Update.
1998-09-06 09:53 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu> * Makeconfig (+gccwarn): Remove -Wno-parentheses. * elf/dl-open.c: Quiet -Wparentheses warnings. * iconvdata/johab.c: Likewise. * iconvdata/uhc.c: Likewise. * inet/inet_net.c: Likewise. * io/fts.c: Likewise. * locale/newlocale.c: Likewise. * misc/getttyent.c: Likewise. * misc/mntent_r.c: Likewise. * misc/ttyslot.c: Likewise. * nscd/nscd_conf.c: Likewise. * nss/nsswitch.c: Likewise. * resolv/gethnamaddr.c: Likewise. * resolv/nsap_addr.c: Likewise. * resolv/res_debug.c: Likewise. * stdio-common/_itoa.c: Likewise. * stdlib/strtod.c: Likewise. * string/strverscmp.c: Likewise. * sunrpc/svc.c: Likewise. * sysdeps/libm-ieee754/e_cosh.c: Likewise. * sysdeps/libm-ieee754/e_gamma_r.c: Likewise. * sysdeps/libm-ieee754/e_sinh.c: Likewise. * sysdeps/posix/getaddrinfo.c: Likewise. * include/dlfcn.h: Likewise. * elf/dlfcn.h: Declare dladdr only for __USE_GNU. Define RTLD_DEFAULT.
This commit is contained in:
parent
baa3334acc
commit
6796bc807a
35
ChangeLog
35
ChangeLog
@ -1,3 +1,30 @@
|
||||
1998-09-06 09:53 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu>
|
||||
|
||||
* Makeconfig (+gccwarn): Remove -Wno-parentheses.
|
||||
|
||||
* elf/dl-open.c: Quiet -Wparentheses warnings.
|
||||
* iconvdata/johab.c: Likewise.
|
||||
* iconvdata/uhc.c: Likewise.
|
||||
* inet/inet_net.c: Likewise.
|
||||
* io/fts.c: Likewise.
|
||||
* locale/newlocale.c: Likewise.
|
||||
* misc/getttyent.c: Likewise.
|
||||
* misc/mntent_r.c: Likewise.
|
||||
* misc/ttyslot.c: Likewise.
|
||||
* nscd/nscd_conf.c: Likewise.
|
||||
* nss/nsswitch.c: Likewise.
|
||||
* resolv/gethnamaddr.c: Likewise.
|
||||
* resolv/nsap_addr.c: Likewise.
|
||||
* resolv/res_debug.c: Likewise.
|
||||
* stdio-common/_itoa.c: Likewise.
|
||||
* stdlib/strtod.c: Likewise.
|
||||
* string/strverscmp.c: Likewise.
|
||||
* sunrpc/svc.c: Likewise.
|
||||
* sysdeps/libm-ieee754/e_cosh.c: Likewise.
|
||||
* sysdeps/libm-ieee754/e_gamma_r.c: Likewise.
|
||||
* sysdeps/libm-ieee754/e_sinh.c: Likewise.
|
||||
* sysdeps/posix/getaddrinfo.c: Likewise.
|
||||
|
||||
1998-09-06 15:13 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* elf/dlsym.c (dlsym_doit): Use new RTLD_DEFAULT macro to test
|
||||
@ -38,6 +65,7 @@
|
||||
* include/alloca.h: Add multiple-inclusion guard.
|
||||
* include/db.h: Likewise.
|
||||
* include/db_185.h: Likewise.
|
||||
* include/dlfcn.h: Likewise.
|
||||
* include/fcntl.h: Likewise.
|
||||
* include/grp.h: Likewise.
|
||||
* include/libintl.h: Likewise.
|
||||
@ -68,9 +96,6 @@
|
||||
* include/sys/times.h: Likewise.
|
||||
* include/sys/wait.h: Likewise.
|
||||
|
||||
* include/dlfcn.h: Declare dladdr only for __USE_GNU.
|
||||
Define RTLD_DEFAULT.
|
||||
|
||||
1998-09-06 09:00 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* version.h (VERSION): Bump to 2.0.96.
|
||||
@ -95,7 +120,6 @@
|
||||
* elf/dl-support.c: Likewise.
|
||||
* elf/dl-symbol.c: Likewise.
|
||||
* elf/dl-version.c: Likewise.
|
||||
* elf/dlfcn.h: Likewise.
|
||||
* elf/dlsym.c: Likewise.
|
||||
* elf/dlvsym.c: Likewise.
|
||||
* elf/ldsodefs.h: Likewise.
|
||||
@ -105,6 +129,9 @@
|
||||
* sysdeps/i386/dl-machine.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/i386/dl-librecon.h: Likewise.
|
||||
|
||||
* elf/dlfcn.h: Declare dladdr only for __USE_GNU.
|
||||
Define RTLD_DEFAULT.
|
||||
|
||||
1998-09-05 Mark Kettenis <kettenis@phys.uva.nl>
|
||||
|
||||
* sysdeps/mach/hurd/i386/init-first.c (init1): Call
|
||||
|
@ -489,7 +489,7 @@ RANLIB = ranlib
|
||||
endif
|
||||
|
||||
# Extra flags to pass to GCC.
|
||||
+gccwarn := -Wall -Wwrite-strings -Wno-parentheses -Winline -Wstrict-prototypes
|
||||
+gccwarn := -Wall -Wwrite-strings -Winline -Wstrict-prototypes
|
||||
|
||||
# This is the program that generates makefile
|
||||
# dependencies from C source files.
|
||||
|
@ -192,7 +192,7 @@ dl_open_worker (void *a)
|
||||
_dl_debug_state ();
|
||||
|
||||
/* Run the initializer functions of new objects. */
|
||||
while (init = _dl_init_next (&new->l_searchlist))
|
||||
while ((init = _dl_init_next (&new->l_searchlist)))
|
||||
(*(void (*) (int, char **, char **)) init) (__libc_argc, __libc_argv,
|
||||
__environ);
|
||||
|
||||
|
@ -220,11 +220,11 @@ johab_sym_hanja_to_ucs (uint_fast32_t idx, uint_fast32_t c1, uint_fast32_t c2)
|
||||
} \
|
||||
else if (i > 0 && m > 0) \
|
||||
ch = ((i - 1) * 21 + (m - 1)) * 28 + f + 0xac00; \
|
||||
else if (i > 0 && m == 0 & f == 0) \
|
||||
else if (i > 0 && m == 0 && f == 0) \
|
||||
ch = init_to_ucs[i - 1]; \
|
||||
else if (i == 0 && m > 0 & f == 0) \
|
||||
else if (i == 0 && m > 0 && f == 0) \
|
||||
ch = 0x314e + m; /* 0x314f + m - 1 */ \
|
||||
else if (i == 0 && m == 0 & f > 0) \
|
||||
else if (i == 0 && m == 0 && f > 0) \
|
||||
ch = final_to_ucs[f - 1]; /* round trip?? */ \
|
||||
else \
|
||||
{ \
|
||||
|
@ -3170,7 +3170,7 @@ static const char uhc_hangul_from_ucs[11172][2] =
|
||||
*outptr++ = s[0]; \
|
||||
*outptr++ = s[1]; \
|
||||
} \
|
||||
else if (ch >= 0x4e00 && ch <= 0x9fa5 || ch >= 0xf900 && ch <= 0xfa0b) \
|
||||
else if ((ch >= 0x4e00 && ch <= 0x9fa5) || (ch >= 0xf900 && ch <= 0xfa0b))\
|
||||
{ \
|
||||
size_t written = ucs4_to_ksc5601_hanja (ch, outptr, \
|
||||
(NEED_LENGTH_TEST \
|
||||
|
@ -1,3 +1,5 @@
|
||||
#ifndef _ALLOCA_H
|
||||
|
||||
#include <stdlib/alloca.h>
|
||||
|
||||
#undef __alloca
|
||||
@ -8,3 +10,5 @@ extern __ptr_t __alloca __P ((size_t __size));
|
||||
#ifdef __GNUC__
|
||||
# define __alloca(size) __builtin_alloca (size)
|
||||
#endif /* GCC. */
|
||||
|
||||
#endif
|
||||
|
@ -1,5 +1,9 @@
|
||||
#ifndef _DB_H_
|
||||
|
||||
#include <db2/db.h>
|
||||
|
||||
/* Internal interface for NSS. */
|
||||
int __nss_db_open __P((const char *,
|
||||
DBTYPE, u_int32_t, int, DB_ENV *, DB_INFO *, DB **));
|
||||
|
||||
#endif
|
||||
|
@ -1,4 +1,6 @@
|
||||
#ifndef _DB_185_H_
|
||||
#include <db2/db_185.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
DB *__dbopen __P((const char *, int, int, DBTYPE, const void *));
|
||||
#endif
|
||||
|
@ -1,5 +1,7 @@
|
||||
#ifndef _DLFCN_H
|
||||
#include <elf/dlfcn.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
extern void *__dlvsym __P ((void *__handle, __const char *__name,
|
||||
__const char *__version));
|
||||
#endif
|
||||
|
@ -1,4 +1,6 @@
|
||||
#ifndef _FCNTL_H
|
||||
#include <io/fcntl.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
extern int __open64 __P ((__const char *__file, int __oflag, ...));
|
||||
#endif
|
||||
|
@ -1,3 +1,4 @@
|
||||
#ifndef _GRP_H
|
||||
#include <grp/grp.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
@ -6,3 +7,4 @@ extern int __getgrent_r __P ((struct group *__resultbuf, char *buffer,
|
||||
extern int __fgetgrent_r __P ((FILE * __stream, struct group *__resultbuf,
|
||||
char *buffer, size_t __buflen,
|
||||
struct group **__result));
|
||||
#endif
|
||||
|
@ -1,3 +1,4 @@
|
||||
#ifndef _LIBINTL_H
|
||||
#include <intl/libintl.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
@ -5,3 +6,4 @@ extern char *__gettext __P ((__const char *__msgid));
|
||||
extern char *__textdomain __P ((__const char *__domainname));
|
||||
extern char *__bindtextdomain __P ((__const char *__domainname,
|
||||
__const char *__dirname));
|
||||
#endif
|
||||
|
@ -1,3 +1,4 @@
|
||||
#ifndef _MNTENT_H
|
||||
#include <misc/mntent.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
@ -9,3 +10,4 @@ extern int __addmntent __P ((FILE *__stream, __const struct mntent *__mnt));
|
||||
extern int __endmntent __P ((FILE *__stream));
|
||||
extern char *__hasmntopt __P ((__const struct mntent *__mnt,
|
||||
__const char *__opt));
|
||||
#endif
|
||||
|
@ -1,3 +1,4 @@
|
||||
#ifndef _PWD_H
|
||||
#include <pwd/pwd.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
@ -12,3 +13,4 @@ extern int __getpwnam_r __P ((__const char *__name, struct passwd *__resultbuf,
|
||||
extern int __fgetpwent_r __P ((FILE * __stream, struct passwd *__resultbuf,
|
||||
char *__buffer, size_t __buflen,
|
||||
struct passwd **__result));
|
||||
#endif
|
||||
|
@ -1,7 +1,9 @@
|
||||
#include "posix/sched.h"
|
||||
#ifndef _SCHED_H
|
||||
#include <posix/sched.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
|
||||
/* This is Linux specific. */
|
||||
extern int __clone __P ((int (*__fn) (void *__arg), void *__child_stack,
|
||||
int __flags, void *__arg));
|
||||
#endif
|
||||
|
@ -1,3 +1,4 @@
|
||||
#ifndef _SEARCH_H
|
||||
#include <misc/search.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
@ -10,3 +11,4 @@ extern void *__tdelete __PMT ((__const void *__key, void **__rootp,
|
||||
__compar_fn_t compar));
|
||||
extern void __twalk __PMT ((__const void *__root, __action_fn_t action));
|
||||
extern void __tdestroy __PMT ((void *__root, __free_fn_t freefct));
|
||||
#endif
|
||||
|
@ -1,3 +1,4 @@
|
||||
#ifndef _SETJMP_H
|
||||
#include <setjmp/setjmp.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
@ -11,3 +12,4 @@ extern void __longjmp __P ((__jmp_buf __env, int __val))
|
||||
This is used by the machine-dependent definition of `__sigsetjmp'.
|
||||
Always returns zero, for convenience. */
|
||||
extern int __sigjmp_save __P ((jmp_buf __env, int __savemask));
|
||||
#endif
|
||||
|
@ -1,3 +1,4 @@
|
||||
#ifndef _SHADOW_H
|
||||
#include <shadow/shadow.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
@ -14,3 +15,4 @@ extern int __fgetspent_r __P ((FILE *__stream, struct spwd *__result_buf,
|
||||
struct spwd **__result));
|
||||
extern int __lckpwdf __P ((void));
|
||||
extern int __ulckpwdf __P ((void));
|
||||
#endif
|
||||
|
@ -1,3 +1,4 @@
|
||||
#ifndef _SIGNAL_H
|
||||
#if defined __need_sig_atomic_t || defined __need_sigset_t
|
||||
# include <signal/signal.h>
|
||||
#else
|
||||
@ -23,3 +24,4 @@ extern int __sigreturn __P ((struct sigcontext *__scp));
|
||||
extern int __sigaltstack __P ((__const struct sigaltstack *__ss,
|
||||
struct sigaltstack *__oss));
|
||||
#endif
|
||||
#endif
|
||||
|
@ -1,3 +1,4 @@
|
||||
#ifndef _STDIO_H
|
||||
#ifdef USE_IN_LIBIO
|
||||
#ifdef __need_FILE
|
||||
# include <libio/stdio.h>
|
||||
@ -27,3 +28,4 @@ extern int __vsscanf __P ((__const char *__restrict __s,
|
||||
#else
|
||||
#include <stdio/stdio.h>
|
||||
#endif
|
||||
#endif
|
||||
|
@ -1,3 +1,4 @@
|
||||
#ifndef _STDLIB_H
|
||||
#include <stdlib/stdlib.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
@ -39,3 +40,4 @@ extern char *__canonicalize_file_name __P ((__const char *__name));
|
||||
extern char *__realpath __P ((__const char *__name, char *__resolved));
|
||||
extern int __ptsname_r __P ((int __fd, char *__buf, size_t __buflen));
|
||||
extern int __getpt __P ((void));
|
||||
#endif
|
||||
|
@ -1,3 +1,4 @@
|
||||
#ifndef _STRING_H
|
||||
#include <string/string.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
@ -6,3 +7,4 @@ extern __ptr_t __memccpy __P ((__ptr_t __dest, __const __ptr_t __src,
|
||||
extern size_t __strnlen __P ((__const char *__string, size_t __maxlen));
|
||||
extern char *__strsep __P ((char **__stringp, __const char *__delim));
|
||||
extern int __strverscmp __P ((__const char *__s1, __const char *__s2));
|
||||
#endif
|
||||
|
@ -1,4 +1,6 @@
|
||||
#ifndef _SYS_FILE_H
|
||||
#include <misc/sys/file.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
extern int __flock __P ((int __fd, int __operation));
|
||||
#endif
|
||||
|
@ -1,3 +1,4 @@
|
||||
#ifndef _SYS_GMON_H
|
||||
#include <gmon/sys/gmon.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
@ -5,3 +6,4 @@
|
||||
/* Write current profiling data to file. */
|
||||
extern void __write_profiling __P ((void));
|
||||
extern void write_profiling __P ((void));
|
||||
#endif
|
||||
|
@ -1,4 +1,6 @@
|
||||
#ifndef _SYS_IOCTL_H
|
||||
#include <misc/sys/ioctl.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
extern int __ioctl __P ((int __fd, unsigned long int __request, ...));
|
||||
#endif
|
||||
|
@ -1,3 +1,4 @@
|
||||
#ifndef _SYS_MMAN_H
|
||||
#include_next <sys/mman.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
@ -11,3 +12,4 @@ extern int __mprotect __P ((__ptr_t __addr, size_t __len, int __prot));
|
||||
/* This one is Linux specific. */
|
||||
extern __ptr_t __mremap __P ((__ptr_t __addr, size_t __old_len,
|
||||
size_t __new_len, int __may_move));
|
||||
#endif
|
||||
|
@ -1,6 +1,8 @@
|
||||
#ifndef _SYS_RESOURCE_H
|
||||
#include <resource/sys/resource.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
extern int __getrlimit __P ((enum __rlimit_resource __resource,
|
||||
struct rlimit *__rlimits));
|
||||
extern int __getrusage __P ((enum __rusage_who __who, struct rusage *__usage));
|
||||
#endif
|
||||
|
@ -1,6 +1,8 @@
|
||||
#ifndef _SYS_SELECT_H
|
||||
#include <misc/sys/select.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
extern int __pselect __P ((int __nfds, __fd_set *__readfds,
|
||||
__fd_set *__writefds, __fd_set *__exceptfds,
|
||||
struct timespec *__timeout));
|
||||
#endif
|
||||
|
@ -1,4 +1,6 @@
|
||||
#ifndef _SYS_SOCKET_H
|
||||
#include <socket/sys/socket.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
extern int __socket __P ((int __domain, int __type, int __protocol));
|
||||
#endif
|
||||
|
@ -1,5 +1,7 @@
|
||||
#ifndef _SYS_STATFS_H
|
||||
#include <io/sys/statfs.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
extern int __statfs __P ((__const char *__file, struct statfs *__buf));
|
||||
extern int __fstatfs __P ((int __fildes, struct statfs *__buf));
|
||||
#endif
|
||||
|
@ -1,3 +1,4 @@
|
||||
#ifndef _SYS_TIME_H
|
||||
#include <time/sys/time.h>
|
||||
|
||||
/* Now document the internal interfaces. */
|
||||
@ -11,3 +12,4 @@ extern int __setitimer __P ((enum __itimer_which __which,
|
||||
__const struct itimerval *__new,
|
||||
struct itimerval *__old));
|
||||
extern int __utimes __P ((__const char *__file, struct timeval __tvp[2]));
|
||||
#endif
|
||||
|
@ -1,4 +1,6 @@
|
||||
#ifndef _SYS_TIMES_H
|
||||
#include <posix/sys/times.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
extern clock_t __times __P ((struct tms *__buffer));
|
||||
#endif
|
||||
|
@ -1,3 +1,4 @@
|
||||
#ifndef _SYS_WAIT_H
|
||||
#include <posix/sys/wait.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
@ -7,3 +8,4 @@ extern __pid_t __wait3 __P ((__WAIT_STATUS __stat_loc,
|
||||
int __options, struct rusage * __usage));
|
||||
extern __pid_t __wait4 __P ((__pid_t __pid, __WAIT_STATUS __stat_loc,
|
||||
int __options, struct rusage *__usage));
|
||||
#endif
|
||||
|
@ -1,4 +1,6 @@
|
||||
#ifndef _TERMIOS_H
|
||||
#include <termios/termios.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
extern int __tcgetattr __P ((int __fd, struct termios *__termios_p));
|
||||
#endif
|
||||
|
1
include/tgmath.h
Normal file
1
include/tgmath.h
Normal file
@ -0,0 +1 @@
|
||||
#include <math/tgmath.h>
|
@ -1,3 +1,4 @@
|
||||
#ifndef _TIME_H
|
||||
#if defined __need_time_t || defined __need_clock_t || defined __need_timespec
|
||||
# include <time/time.h>
|
||||
#else
|
||||
@ -35,3 +36,4 @@ extern int __nanosleep __P ((__const struct timespec *__requested_time,
|
||||
struct timespec *__remaining));
|
||||
extern int __getdate_r __P ((__const char *__string, struct tm *__resbufp));
|
||||
#endif
|
||||
#endif
|
||||
|
@ -1,4 +1,6 @@
|
||||
#ifndef _ULIMIT_H
|
||||
#include <resource/ulimit.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
extern long int __ulimit __P ((int __cmd, ...));
|
||||
#endif
|
||||
|
@ -1,3 +1,4 @@
|
||||
#ifndef _UTMP_H
|
||||
#include <login/utmp.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
@ -15,3 +16,4 @@ extern int __getutid_r __P ((__const struct utmp *__id, struct utmp *__buffer,
|
||||
struct utmp **__result));
|
||||
extern int __getutline_r __P ((__const struct utmp *__line,
|
||||
struct utmp *__buffer, struct utmp **__result));
|
||||
#endif
|
||||
|
@ -1,3 +1,4 @@
|
||||
#ifndef _WCHAR_H
|
||||
#include <wcsmbs/wchar.h>
|
||||
|
||||
/* Now define the internal interfaces. */
|
||||
@ -28,3 +29,4 @@ extern size_t __wcsnrtombs __P ((char *__restrict __dst,
|
||||
extern wchar_t *__wcpcpy __P ((wchar_t *__dest, __const wchar_t *__src));
|
||||
extern wchar_t *__wcpncpy __P ((wchar_t *__dest, __const wchar_t *__src,
|
||||
size_t __n));
|
||||
#endif
|
||||
|
@ -59,7 +59,7 @@ again:
|
||||
base = 8, cp++;
|
||||
if (*cp == 'x' || *cp == 'X')
|
||||
base = 16, cp++;
|
||||
while (c = *cp) {
|
||||
while ((c = *cp)) {
|
||||
if (isdigit(c)) {
|
||||
val = (val * base) + (c - '0');
|
||||
cp++;
|
||||
|
16
io/fts.c
16
io/fts.c
@ -74,7 +74,7 @@ static u_short fts_stat __P((FTS *, struct dirent *, FTSENT *, int))
|
||||
_a > _b ? _a : _b; })
|
||||
#endif
|
||||
|
||||
#define ISDOT(a) (a[0] == '.' && (!a[1] || a[1] == '.' && !a[2]))
|
||||
#define ISDOT(a) (a[0] == '.' && (!a[1] || (a[1] == '.' && !a[2])))
|
||||
|
||||
#define ISSET(opt) (sp->fts_options & opt)
|
||||
#define SET(opt) (sp->fts_options |= opt)
|
||||
@ -326,7 +326,7 @@ fts_read(sp)
|
||||
if (p->fts_info == FTS_D) {
|
||||
/* If skipped or crossed mount point, do post-order visit. */
|
||||
if (instr == FTS_SKIP ||
|
||||
ISSET(FTS_XDEV) && p->fts_dev != sp->fts_dev) {
|
||||
(ISSET(FTS_XDEV) && p->fts_dev != sp->fts_dev)) {
|
||||
if (p->fts_flags & FTS_SYMFOLLOW)
|
||||
(void)__close(p->fts_symfd);
|
||||
if (sp->fts_child) {
|
||||
@ -376,7 +376,7 @@ fts_read(sp)
|
||||
|
||||
/* Move to the next node on this level. */
|
||||
next: tmp = p;
|
||||
if (p = p->fts_link) {
|
||||
if ((p = p->fts_link)) {
|
||||
free(tmp);
|
||||
|
||||
/*
|
||||
@ -674,7 +674,9 @@ fts_build(sp, type)
|
||||
|
||||
/* Read the directory, attaching each entry to the `link' pointer. */
|
||||
adjaddr = NULL;
|
||||
for (head = tail = NULL, nitems = 0; dp = __readdir(dirp);) {
|
||||
head = tail = NULL;
|
||||
nitems = 0;
|
||||
while((dp = __readdir(dirp))) {
|
||||
int namlen;
|
||||
|
||||
if (!ISSET(FTS_SEEDOT) && ISDOT(dp->d_name))
|
||||
@ -717,8 +719,8 @@ mem1: saved_errno = errno;
|
||||
p->fts_accpath = cur->fts_accpath;
|
||||
} else if (nlinks == 0
|
||||
#if defined DT_DIR && defined _DIRENT_HAVE_D_TYPE
|
||||
|| nlinks > 0 &&
|
||||
dp->d_type != DT_DIR && dp->d_type != DT_UNKNOWN
|
||||
|| (nlinks > 0 &&
|
||||
dp->d_type != DT_DIR && dp->d_type != DT_UNKNOWN)
|
||||
#endif
|
||||
) {
|
||||
p->fts_accpath =
|
||||
@ -964,7 +966,7 @@ fts_lfree(head)
|
||||
register FTSENT *p;
|
||||
|
||||
/* Free a linked list of structures. */
|
||||
while (p = head) {
|
||||
while ((p = head)) {
|
||||
head = head->fts_link;
|
||||
free(p);
|
||||
}
|
||||
|
@ -559,12 +559,12 @@ typedef __off64_t off64_t;
|
||||
|
||||
|
||||
#ifndef __USE_FILE_OFFSET64
|
||||
# ifndef __USE_UNIX98
|
||||
# ifdef __USE_UNIX98
|
||||
/* Seek to a certain position on STREAM. */
|
||||
extern int fseeko __P ((FILE *__stream, __off_t __off, int __whence));
|
||||
/* Return the current position of STREAM. */
|
||||
extern __off_t ftello __P ((FILE *__stream));
|
||||
#endif
|
||||
# endif
|
||||
|
||||
/* Get STREAM's position. */
|
||||
extern int fgetpos __P ((FILE *__restrict __stream,
|
||||
@ -573,7 +573,7 @@ extern int fgetpos __P ((FILE *__restrict __stream,
|
||||
extern int fsetpos __P ((FILE *__stream, __const fpos_t *__pos));
|
||||
#else
|
||||
# ifdef __REDIRECT
|
||||
# ifndef __USE_UNIX98
|
||||
# ifdef __USE_UNIX98
|
||||
extern int __REDIRECT (fseeko,
|
||||
__P ((FILE *__stream, __off64_t __off, int __whence)),
|
||||
fseeko64);
|
||||
@ -584,7 +584,7 @@ extern int __REDIRECT (fgetpos, __P ((FILE *__restrict __stream,
|
||||
extern int __REDIRECT (fsetpos, __P ((FILE *__stream, __const fpos_t *__pos)),
|
||||
fsetpos64);
|
||||
# else
|
||||
# ifndef __USE_UNIX98
|
||||
# ifdef __USE_UNIX98
|
||||
# define fseeko fseeko64
|
||||
# define ftello ftello64
|
||||
# endif
|
||||
@ -594,7 +594,7 @@ extern int __REDIRECT (fsetpos, __P ((FILE *__stream, __const fpos_t *__pos)),
|
||||
#endif
|
||||
|
||||
#ifdef __USE_LARGEFILE64
|
||||
# ifndef __USE_UNIX98
|
||||
# ifdef __USE_UNIX98
|
||||
extern int fseeko64 __P ((FILE *__stream, __off64_t __off, int __whence));
|
||||
extern __off64_t ftello64 __P ((FILE *__stream));
|
||||
# endif
|
||||
|
@ -1,3 +1,7 @@
|
||||
1998-09-06 10:56 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* sysdeps/pthread/semaphore.h: New file.
|
||||
|
||||
1998-09-06 09:08 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* sysdeps/pthread/bits/libc-lock.h (enum __libc_tsd_key_t): Add
|
||||
|
1
linuxthreads/sysdeps/pthread/semaphore.h
Normal file
1
linuxthreads/sysdeps/pthread/semaphore.h
Normal file
@ -0,0 +1 @@
|
||||
#include <linuxthreads/semaphore.h>
|
@ -54,7 +54,7 @@ __newlocale (int category_mask, const char *locale, __locale_t base)
|
||||
category_mask = (1 << LC_ALL) - 1;
|
||||
|
||||
/* Sanity check for CATEGORY argument. */
|
||||
if ((category_mask & ~(1 << LC_ALL) - 1) != 0)
|
||||
if ((category_mask & ~((1 << LC_ALL) - 1)) != 0)
|
||||
ERROR_RETURN;
|
||||
|
||||
/* `newlocale' does not support asking for the locale name. */
|
||||
|
@ -19,6 +19,20 @@ comments. You could also use the @samp{-D} option to GCC, but it's
|
||||
better if you make the source files indicate their own meaning in a
|
||||
self-contained way.
|
||||
|
||||
This system exists to allow the library to conform to multiple standards.
|
||||
Although the different standards are often described as supersets of each
|
||||
other, they are usually incompatible because larger standards require
|
||||
functions with names that smaller ones reserve to the user program. This
|
||||
is not mere pedantry --- it has been a problem in practice. For instance,
|
||||
some non-GNU programs define functions named @code{getline} that have
|
||||
nothing to do with this library's @code{getline}. They would not be
|
||||
compilable if all features were enabled indescriminantly.
|
||||
|
||||
This should not be used to verify that a program conforms to a limited
|
||||
standard. It is insufficent for this purpose, as it will not protect you
|
||||
from including header files outside the standard, or relying on semantics
|
||||
undefined within the standard.
|
||||
|
||||
@comment (none)
|
||||
@comment POSIX.1
|
||||
@defvr Macro _POSIX_SOURCE
|
||||
|
@ -55,7 +55,7 @@ getttynam(tty)
|
||||
register struct ttyent *t;
|
||||
|
||||
setttyent();
|
||||
while (t = getttyent())
|
||||
while ((t = getttyent()))
|
||||
if (!strcmp(tty, t->ty_name))
|
||||
break;
|
||||
endttyent();
|
||||
@ -131,7 +131,7 @@ getttyent()
|
||||
tty.ty_comment = p;
|
||||
if (*p == 0)
|
||||
tty.ty_comment = 0;
|
||||
if (p = index(p, '\n'))
|
||||
if ((p = index(p, '\n')))
|
||||
*p = '\0';
|
||||
return (&tty);
|
||||
}
|
||||
@ -193,7 +193,7 @@ setttyent()
|
||||
if (tf) {
|
||||
(void)rewind(tf);
|
||||
return (1);
|
||||
} else if (tf = fopen(_PATH_TTYS, "r"))
|
||||
} else if ((tf = fopen(_PATH_TTYS, "r")))
|
||||
return (1);
|
||||
return (0);
|
||||
}
|
||||
|
@ -137,10 +137,11 @@ __hasmntopt (const struct mntent *mnt, const char *opt)
|
||||
|
||||
while ((p = strstr (rest, opt)) != NULL)
|
||||
{
|
||||
if (p == rest || p[-1] == ',' &&
|
||||
(p[optlen] == '\0' ||
|
||||
p[optlen] == '=' ||
|
||||
p[optlen] == ','))
|
||||
if (p == rest
|
||||
|| (p[-1] == ','
|
||||
&& (p[optlen] == '\0' ||
|
||||
p[optlen] == '=' ||
|
||||
p[optlen] == ',')))
|
||||
return p;
|
||||
|
||||
rest = strchr (rest, ',');
|
||||
|
@ -60,11 +60,11 @@ ttyslot()
|
||||
setttyent();
|
||||
for (cnt = 0; cnt < 3; ++cnt)
|
||||
if (__ttyname_r (cnt, name, buflen) == 0) {
|
||||
if (p = rindex(name, '/'))
|
||||
if ((p = rindex(name, '/')))
|
||||
++p;
|
||||
else
|
||||
p = name;
|
||||
for (slot = 1; ttyp = getttyent(); ++slot)
|
||||
for (slot = 1; (ttyp = getttyent()); ++slot)
|
||||
if (!strcmp(ttyp->ty_name, p)) {
|
||||
endttyent();
|
||||
return(slot);
|
||||
|
@ -70,7 +70,7 @@ nscd_parse_file (const char *fname)
|
||||
arg1 = cp;
|
||||
++arg1;
|
||||
*cp = '\0';
|
||||
if (*cp = '\0' || strlen (entry) == 0)
|
||||
if (strlen (entry) == 0)
|
||||
dbg_log (_("Parse error: %s"), line);
|
||||
while (isspace (*arg1) && *arg1 != '\0')
|
||||
++arg1;
|
||||
|
@ -618,7 +618,8 @@ nss_parse_service_list (const char *line)
|
||||
lookup_actions action;
|
||||
|
||||
/* Grok ! before name to mean all statii but that one. */
|
||||
if (not = line[0] == '!')
|
||||
not = line[0] == '!';
|
||||
if (not)
|
||||
++line;
|
||||
|
||||
/* Read status name. */
|
||||
|
@ -119,6 +119,11 @@ struct test_case_struct
|
||||
{ 0, "foo", "*$var*", 0, 1, { "*foo*", }, IFS },
|
||||
{ 0, "o thr", "*$var*", 0, 2, { "two", "three" }, IFS },
|
||||
|
||||
/* Different IFS values */
|
||||
{ 0, NULL, "a b\tc\nd ", 0, 4, { "a", "b", "c", "d" }, NULL /* unset */ },
|
||||
{ 0, NULL, "a b\tc d ", 0, 1, { "a b\tc d " }, "" /* `null' */ },
|
||||
{ 0, NULL, "a,b c\n, d", 0, 3, { "a", "b c", " d" }, "\t\n," },
|
||||
|
||||
/* Other things that should succeed */
|
||||
{ 0, NULL, "\\*\"|&;<>\"\\(\\)\\{\\}", 0, 1, { "*|&;<>(){}", }, IFS },
|
||||
{ 0, "???", "$var", 0, 1, { "???", }, IFS },
|
||||
@ -127,7 +132,7 @@ struct test_case_struct
|
||||
{ 0, NULL, "", 0, 0, { NULL, }, IFS },
|
||||
|
||||
/* Things that should fail */
|
||||
{ WRDE_BADCHAR, NULL, "new\nline", 0, 0, { NULL, }, IFS },
|
||||
{ WRDE_BADCHAR, NULL, "new\nline", 0, 0, { NULL, }, "" /* \n not IFS */ },
|
||||
{ WRDE_BADCHAR, NULL, "pipe|symbol", 0, 0, { NULL, }, IFS },
|
||||
{ WRDE_BADCHAR, NULL, "&ersand", 0, 0, { NULL, }, IFS },
|
||||
{ WRDE_BADCHAR, NULL, "semi;colon", 0, 0, { NULL, }, IFS },
|
||||
|
@ -2049,8 +2049,8 @@ wordexp (const char *words, wordexp_t *pwordexp, int flags)
|
||||
ifs = getenv ("IFS");
|
||||
|
||||
if (!ifs)
|
||||
/* NULL IFS means no field-splitting is to be performed */
|
||||
ifs = strcpy (ifs_white, "");
|
||||
/* IFS unset - use <space><tab><newline>. */
|
||||
ifs = strcpy (ifs_white, " \t\n");
|
||||
else
|
||||
{
|
||||
char *ifsch = ifs;
|
||||
@ -2082,22 +2082,6 @@ wordexp (const char *words, wordexp_t *pwordexp, int flags)
|
||||
for (words_offset = 0 ; words[words_offset] ; ++words_offset)
|
||||
switch (words[words_offset])
|
||||
{
|
||||
case '\n':
|
||||
case '|':
|
||||
case '&':
|
||||
case ';':
|
||||
case '<':
|
||||
case '>':
|
||||
case '(':
|
||||
case ')':
|
||||
case '{':
|
||||
case '}':
|
||||
/* Fail */
|
||||
wordfree (pwordexp);
|
||||
pwordexp->we_wordc = 0;
|
||||
pwordexp->we_wordv = old_wordv;
|
||||
return WRDE_BADCHAR;
|
||||
|
||||
case '\\':
|
||||
error = parse_backslash (&word, &word_length, &max_length, words,
|
||||
&words_offset);
|
||||
@ -2175,6 +2159,16 @@ wordexp (const char *words, wordexp_t *pwordexp, int flags)
|
||||
/* Is it a field separator? */
|
||||
if (strchr (ifs, words[words_offset]) == NULL)
|
||||
{
|
||||
/* Not a field separator -- but is it a valid word char? */
|
||||
if (strchr ("\n|&;<>(){}", words[words_offset]))
|
||||
{
|
||||
/* Fail */
|
||||
wordfree (pwordexp);
|
||||
pwordexp->we_wordc = 0;
|
||||
pwordexp->we_wordv = old_wordv;
|
||||
return WRDE_BADCHAR;
|
||||
}
|
||||
|
||||
/* "Ordinary" character -- add it to word */
|
||||
|
||||
word = w_addchar (word, &word_length, &max_length,
|
||||
|
@ -815,7 +815,7 @@ _gethtent()
|
||||
cp++;
|
||||
host.h_name = cp;
|
||||
q = host.h_aliases = host_aliases;
|
||||
if (cp = strpbrk(cp, " \t"))
|
||||
if ((cp = strpbrk(cp, " \t")))
|
||||
*cp++ = '\0';
|
||||
while (cp && *cp) {
|
||||
if (*cp == ' ' || *cp == '\t') {
|
||||
@ -824,7 +824,7 @@ _gethtent()
|
||||
}
|
||||
if (q < &host_aliases[MAXALIASES - 1])
|
||||
*q++ = cp;
|
||||
if (cp = strpbrk(cp, " \t"))
|
||||
if ((cp = strpbrk(cp, " \t")))
|
||||
*cp++ = '\0';
|
||||
}
|
||||
*q = NULL;
|
||||
@ -856,7 +856,7 @@ _gethtbyname2(name, af)
|
||||
register char **cp;
|
||||
|
||||
_sethtent(0);
|
||||
while (p = _gethtent()) {
|
||||
while ((p = _gethtent())) {
|
||||
if (p->h_addrtype != af)
|
||||
continue;
|
||||
if (strcasecmp(p->h_name, name) == 0)
|
||||
@ -878,7 +878,7 @@ _gethtbyaddr(addr, len, af)
|
||||
register struct hostent *p;
|
||||
|
||||
_sethtent(0);
|
||||
while (p = _gethtent())
|
||||
while ((p = _gethtent()))
|
||||
if (p->h_addrtype == af && !bcmp(p->h_addr, addr, len))
|
||||
break;
|
||||
_endhtent();
|
||||
|
@ -63,7 +63,7 @@ inet_nsap_addr(ascii, binary, maxlen)
|
||||
c = toupper(c);
|
||||
if (isxdigit(c)) {
|
||||
nib = xtob(c);
|
||||
if (c = *ascii++) {
|
||||
if ((c = *ascii++)) {
|
||||
c = toupper(c);
|
||||
if (isxdigit(c)) {
|
||||
*binary++ = (nib << 4) | xtob(c);
|
||||
|
@ -203,7 +203,7 @@ do_rrset(msg, len, cp, cnt, pflag, file, hs)
|
||||
* Print answer records.
|
||||
*/
|
||||
sflag = (_res.pfcode & pflag);
|
||||
if (n = ntohs(cnt)) {
|
||||
if ((n = ntohs(cnt))) {
|
||||
if ((!_res.pfcode) ||
|
||||
((sflag) && (_res.pfcode & RES_PRF_HEAD1)))
|
||||
fprintf(file, hs);
|
||||
@ -337,7 +337,7 @@ __fp_nquery(msg, len, file)
|
||||
/*
|
||||
* Print question records.
|
||||
*/
|
||||
if (n = ntohs(hp->qdcount)) {
|
||||
if ((n = ntohs(hp->qdcount))) {
|
||||
if ((!_res.pfcode) || (_res.pfcode & RES_PRF_QUES))
|
||||
fprintf(file, ";; QUESTIONS:\n");
|
||||
while (--n >= 0) {
|
||||
@ -647,7 +647,7 @@ __p_rr(cp, msg, file)
|
||||
cp2 = cp1 + dlen;
|
||||
while (cp < cp2) {
|
||||
putc('"', file);
|
||||
if (n = (unsigned char) *cp++) {
|
||||
if ((n = (unsigned char) *cp++)) {
|
||||
for (c = n; c > 0 && cp < cp2; c--) {
|
||||
if (strchr("\n\"\\", *cp))
|
||||
(void) putc('\\', file);
|
||||
|
@ -196,7 +196,7 @@ _itoa (value, buflim, base, upper_case)
|
||||
if (BITS_PER_MP_LIMB % BITS != 0) \
|
||||
{ \
|
||||
work_lo |= ((work_hi \
|
||||
& ((1 << BITS - BITS_PER_MP_LIMB % BITS) \
|
||||
& ((1 << (BITS - BITS_PER_MP_LIMB%BITS)) \
|
||||
- 1)) \
|
||||
<< BITS_PER_MP_LIMB % BITS); \
|
||||
*--bp = digits[work_lo]; \
|
||||
|
@ -664,7 +664,7 @@ INTERNAL (STRTOF) (nptr, endptr, group LOCALE_PARAM)
|
||||
if ((wchar_t) c == decimal)
|
||||
{
|
||||
c = *++cp;
|
||||
while (c >= L_('0') && c <= L_('9') ||
|
||||
while ((c >= L_('0') && c <= L_('9')) ||
|
||||
(base == 16 && TOLOWER (c) >= L_('a') && TOLOWER (c) <= L_('f')))
|
||||
{
|
||||
if (c != L_('0') && lead_zero == -1)
|
||||
|
@ -81,7 +81,7 @@ __strverscmp (s1, s2)
|
||||
c1 = *p1++;
|
||||
c2 = *p2++;
|
||||
/* Hint: '0' is a digit too. */
|
||||
state = S_N | (c1 == '0') + (isdigit (c1) != 0);
|
||||
state = S_N | ((c1 == '0') + (isdigit (c1) != 0));
|
||||
|
||||
while ((diff = c1 - c2) == 0 && c1 != '\0')
|
||||
{
|
||||
@ -91,7 +91,7 @@ __strverscmp (s1, s2)
|
||||
state |= (c1 == '0') + (isdigit (c1) != 0);
|
||||
}
|
||||
|
||||
state = result_type[state << 2 | ((c2 == '0') + (isdigit (c2) != 0))];
|
||||
state = result_type[state << 2 | (((c2 == '0') + (isdigit (c2) != 0)))];
|
||||
|
||||
switch (state)
|
||||
{
|
||||
|
@ -422,7 +422,7 @@ svc_getreqset (readfds)
|
||||
maskp = (u_int32_t *) readfds->fds_bits;
|
||||
for (sock = 0; sock < setsize; sock += 32)
|
||||
{
|
||||
for (mask = *maskp++; bit = ffs (mask); mask ^= (1 << (bit - 1)))
|
||||
for (mask = *maskp++; (bit = ffs (mask)); mask ^= (1 << (bit - 1)))
|
||||
{
|
||||
/* sock has input waiting */
|
||||
xprt = xports[sock + bit - 1];
|
||||
|
@ -77,12 +77,11 @@ static double one = 1.0, half=0.5, huge = 1.0e300;
|
||||
}
|
||||
|
||||
/* |x| in [22, log(maxdouble)] return half*exp(|x|) */
|
||||
if (ix < 0x40862E42) return half*__ieee754_exp(fabs(x));
|
||||
if (ix < 0x40862e42) return half*__ieee754_exp(fabs(x));
|
||||
|
||||
/* |x| in [log(maxdouble), overflowthresold] */
|
||||
GET_LOW_WORD(lx,x);
|
||||
if (ix<0x408633CE ||
|
||||
(ix==0x408633ce)&&(lx<=(u_int32_t)0x8fb9f87d)) {
|
||||
if (ix<0x408633ce || ((ix==0x408633ce)&&(lx<=(u_int32_t)0x8fb9f87d))) {
|
||||
w = __ieee754_exp(half*fabs(x));
|
||||
t = half*w;
|
||||
return t*w;
|
||||
|
@ -33,7 +33,7 @@ __ieee754_gamma_r (double x, int *signgamp)
|
||||
|
||||
EXTRACT_WORDS (hx, lx, x);
|
||||
|
||||
if ((hx & 0x7fffffff | lx) == 0)
|
||||
if (((hx & 0x7fffffff) | lx) == 0)
|
||||
/* Return value for x == 0 is NaN with invalid exception. */
|
||||
return x / x;
|
||||
if (hx < 0 && (u_int32_t) hx < 0xfff00000 && __rint (x) == x)
|
||||
|
@ -71,11 +71,11 @@ static double one = 1.0, shuge = 1.0e307;
|
||||
}
|
||||
|
||||
/* |x| in [22, log(maxdouble)] return 0.5*exp(|x|) */
|
||||
if (ix < 0x40862E42) return h*__ieee754_exp(fabs(x));
|
||||
if (ix < 0x40862e42) return h*__ieee754_exp(fabs(x));
|
||||
|
||||
/* |x| in [log(maxdouble), overflowthresold] */
|
||||
GET_LOW_WORD(lx,x);
|
||||
if (ix<0x408633CE || (ix==0x408633ce)&&(lx<=(u_int32_t)0x8fb9f87d)) {
|
||||
if (ix<0x408633ce || ((ix==0x408633ce)&&(lx<=(u_int32_t)0x8fb9f87d))) {
|
||||
w = __ieee754_exp(0.5*fabs(x));
|
||||
t = h*w;
|
||||
return t*w;
|
||||
|
@ -295,7 +295,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
|
||||
{
|
||||
if (tp->name != NULL)
|
||||
{
|
||||
if (rc = gaih_inet_serv (service->name, tp, &st))
|
||||
if ((rc = gaih_inet_serv (service->name, tp, &st)))
|
||||
return rc;
|
||||
}
|
||||
else
|
||||
@ -303,7 +303,7 @@ gaih_inet (const char *name, const struct gaih_service *service,
|
||||
struct gaih_servtuple **pst = &st;
|
||||
for (tp++; tp->name; tp++)
|
||||
{
|
||||
if (rc = gaih_inet_serv (service->name, tp, pst))
|
||||
if ((rc = gaih_inet_serv (service->name, tp, pst)))
|
||||
{
|
||||
if (rc & GAIH_OKIFUNSPEC)
|
||||
continue;
|
||||
@ -567,7 +567,7 @@ getaddrinfo (const char *name, const char *service,
|
||||
if ((pg == NULL) || (pg->gaih != g->gaih))
|
||||
{
|
||||
pg = g;
|
||||
if (i = g->gaih (name, pservice, hints, end))
|
||||
if ((i = g->gaih (name, pservice, hints, end)))
|
||||
{
|
||||
if ((hints->ai_family == AF_UNSPEC) && (i & GAIH_OKIFUNSPEC))
|
||||
continue;
|
||||
|
@ -542,7 +542,13 @@ my_strftime (s, maxsize, format, tp)
|
||||
if (bytes == 0)
|
||||
break;
|
||||
|
||||
if (bytes == (size_t) -2 || bytes == (size_t) -1)
|
||||
if (bytes == (size_t) -2)
|
||||
{
|
||||
len += strlen (f + len);
|
||||
break;
|
||||
}
|
||||
|
||||
if (bytes == (size_t) -1)
|
||||
{
|
||||
len++;
|
||||
break;
|
||||
@ -553,6 +559,7 @@ my_strftime (s, maxsize, format, tp)
|
||||
while (! mbsinit (&mbstate));
|
||||
|
||||
cpy (len, f);
|
||||
f += len - 1;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user