summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog35
-rw-r--r--Makeconfig2
-rw-r--r--elf/dl-open.c2
-rw-r--r--iconvdata/johab.c6
-rw-r--r--iconvdata/uhc.c2
-rw-r--r--include/alloca.h4
-rw-r--r--include/db.h4
-rw-r--r--include/db_185.h2
-rw-r--r--include/dlfcn.h2
-rw-r--r--include/fcntl.h2
-rw-r--r--include/grp.h2
-rw-r--r--include/libintl.h2
-rw-r--r--include/mntent.h2
-rw-r--r--include/pwd.h2
-rw-r--r--include/sched.h4
-rw-r--r--include/search.h2
-rw-r--r--include/setjmp.h2
-rw-r--r--include/shadow.h2
-rw-r--r--include/signal.h2
-rw-r--r--include/stdio.h2
-rw-r--r--include/stdlib.h2
-rw-r--r--include/string.h2
-rw-r--r--include/sys/file.h2
-rw-r--r--include/sys/gmon.h2
-rw-r--r--include/sys/ioctl.h2
-rw-r--r--include/sys/mman.h2
-rw-r--r--include/sys/resource.h2
-rw-r--r--include/sys/select.h2
-rw-r--r--include/sys/socket.h2
-rw-r--r--include/sys/statfs.h2
-rw-r--r--include/sys/time.h2
-rw-r--r--include/sys/times.h2
-rw-r--r--include/sys/wait.h2
-rw-r--r--include/termios.h2
-rw-r--r--include/tgmath.h1
-rw-r--r--include/time.h2
-rw-r--r--include/ulimit.h2
-rw-r--r--include/utmp.h2
-rw-r--r--include/wchar.h2
-rw-r--r--inet/inet_net.c2
-rw-r--r--io/fts.c16
-rw-r--r--libio/stdio.h10
-rw-r--r--linuxthreads/ChangeLog4
-rw-r--r--linuxthreads/sysdeps/pthread/semaphore.h1
-rw-r--r--locale/newlocale.c2
-rw-r--r--manual/creature.texi14
-rw-r--r--misc/getttyent.c6
-rw-r--r--misc/mntent_r.c9
-rw-r--r--misc/ttyslot.c4
-rw-r--r--nscd/nscd_conf.c2
-rw-r--r--nss/nsswitch.c3
-rw-r--r--posix/wordexp-test.c7
-rw-r--r--posix/wordexp.c30
-rw-r--r--resolv/gethnamaddr.c8
-rw-r--r--resolv/nsap_addr.c2
-rw-r--r--resolv/res_debug.c6
-rw-r--r--stdio-common/_itoa.c2
-rw-r--r--stdlib/strtod.c2
-rw-r--r--string/strverscmp.c4
-rw-r--r--sunrpc/svc.c2
-rw-r--r--sysdeps/libm-ieee754/e_cosh.c5
-rw-r--r--sysdeps/libm-ieee754/e_gamma_r.c2
-rw-r--r--sysdeps/libm-ieee754/e_sinh.c4
-rw-r--r--sysdeps/posix/getaddrinfo.c6
-rw-r--r--time/strftime.c9
65 files changed, 204 insertions, 78 deletions
diff --git a/ChangeLog b/ChangeLog
index 94bd4551eb..06569df02b 100644
--- a/ChangeLog
+++ b/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
diff --git a/Makeconfig b/Makeconfig
index b0141d4cb6..1858dd54a9 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -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.
diff --git a/elf/dl-open.c b/elf/dl-open.c
index 6765b6ce08..694b0ebfaa 100644
--- a/elf/dl-open.c
+++ b/elf/dl-open.c
@@ -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);
 
diff --git a/iconvdata/johab.c b/iconvdata/johab.c
index 6da169438c..6a5d8be68f 100644
--- a/iconvdata/johab.c
+++ b/iconvdata/johab.c
@@ -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							      \
 		  {							      \
diff --git a/iconvdata/uhc.c b/iconvdata/uhc.c
index 0fa6d40f74..5aef36cdd0 100644
--- a/iconvdata/uhc.c
+++ b/iconvdata/uhc.c
@@ -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	      \
diff --git a/include/alloca.h b/include/alloca.h
index ae41090bd1..4dcddb6ae1 100644
--- a/include/alloca.h
+++ b/include/alloca.h
@@ -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
diff --git a/include/db.h b/include/db.h
index 13e9c307eb..64c7348ea6 100644
--- a/include/db.h
+++ b/include/db.h
@@ -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
diff --git a/include/db_185.h b/include/db_185.h
index db78199865..37bb16e99b 100644
--- a/include/db_185.h
+++ b/include/db_185.h
@@ -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
diff --git a/include/dlfcn.h b/include/dlfcn.h
index 766c80a11a..955819739a 100644
--- a/include/dlfcn.h
+++ b/include/dlfcn.h
@@ -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
diff --git a/include/fcntl.h b/include/fcntl.h
index cce3d5ee10..949c6621fd 100644
--- a/include/fcntl.h
+++ b/include/fcntl.h
@@ -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
diff --git a/include/grp.h b/include/grp.h
index ddde842fe6..14be78cf00 100644
--- a/include/grp.h
+++ b/include/grp.h
@@ -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
diff --git a/include/libintl.h b/include/libintl.h
index 582cb05d74..3763b04c5f 100644
--- a/include/libintl.h
+++ b/include/libintl.h
@@ -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
diff --git a/include/mntent.h b/include/mntent.h
index d869625607..ca8dfc5069 100644
--- a/include/mntent.h
+++ b/include/mntent.h
@@ -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
diff --git a/include/pwd.h b/include/pwd.h
index 2c57df938f..18e8ac7e94 100644
--- a/include/pwd.h
+++ b/include/pwd.h
@@ -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
diff --git a/include/sched.h b/include/sched.h
index 02dc60a872..d28a0123f9 100644
--- a/include/sched.h
+++ b/include/sched.h
@@ -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
diff --git a/include/search.h b/include/search.h
index 05dc75aee9..2b4c63ba53 100644
--- a/include/search.h
+++ b/include/search.h
@@ -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
diff --git a/include/setjmp.h b/include/setjmp.h
index 34fc9e5f69..97b1c3a46f 100644
--- a/include/setjmp.h
+++ b/include/setjmp.h
@@ -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
diff --git a/include/shadow.h b/include/shadow.h
index 5e7f943bc0..be40eb42fa 100644
--- a/include/shadow.h
+++ b/include/shadow.h
@@ -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
diff --git a/include/signal.h b/include/signal.h
index 693aeb807a..1a14ff3dc7 100644
--- a/include/signal.h
+++ b/include/signal.h
@@ -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
diff --git a/include/stdio.h b/include/stdio.h
index d09e29d1c1..a3272fc8e9 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -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
diff --git a/include/stdlib.h b/include/stdlib.h
index c45730428b..7424243e99 100644
--- a/include/stdlib.h
+++ b/include/stdlib.h
@@ -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
diff --git a/include/string.h b/include/string.h
index 1ee7ced249..d83a56e053 100644
--- a/include/string.h
+++ b/include/string.h
@@ -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
diff --git a/include/sys/file.h b/include/sys/file.h
index ec7f3de73d..c3f0af3710 100644
--- a/include/sys/file.h
+++ b/include/sys/file.h
@@ -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
diff --git a/include/sys/gmon.h b/include/sys/gmon.h
index 2e56188027..492d853f8e 100644
--- a/include/sys/gmon.h
+++ b/include/sys/gmon.h
@@ -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
diff --git a/include/sys/ioctl.h b/include/sys/ioctl.h
index e07b08a64f..4d21030ed9 100644
--- a/include/sys/ioctl.h
+++ b/include/sys/ioctl.h
@@ -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
diff --git a/include/sys/mman.h b/include/sys/mman.h
index 3a6c33a354..32c2084bdd 100644
--- a/include/sys/mman.h
+++ b/include/sys/mman.h
@@ -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
diff --git a/include/sys/resource.h b/include/sys/resource.h
index 36950e2f10..ec53c188f9 100644
--- a/include/sys/resource.h
+++ b/include/sys/resource.h
@@ -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
diff --git a/include/sys/select.h b/include/sys/select.h
index 860b01347d..be98aa2eb4 100644
--- a/include/sys/select.h
+++ b/include/sys/select.h
@@ -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
diff --git a/include/sys/socket.h b/include/sys/socket.h
index a319272b55..4766c206d8 100644
--- a/include/sys/socket.h
+++ b/include/sys/socket.h
@@ -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
diff --git a/include/sys/statfs.h b/include/sys/statfs.h
index bb4999e2a3..80c8834be4 100644
--- a/include/sys/statfs.h
+++ b/include/sys/statfs.h
@@ -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
diff --git a/include/sys/time.h b/include/sys/time.h
index fd9f46778d..5f53e967f6 100644
--- a/include/sys/time.h
+++ b/include/sys/time.h
@@ -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
diff --git a/include/sys/times.h b/include/sys/times.h
index 95162b8931..611bb2fdc9 100644
--- a/include/sys/times.h
+++ b/include/sys/times.h
@@ -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
diff --git a/include/sys/wait.h b/include/sys/wait.h
index eefc14d705..5ecce413ef 100644
--- a/include/sys/wait.h
+++ b/include/sys/wait.h
@@ -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
diff --git a/include/termios.h b/include/termios.h
index 90237a8101..ed3b36525f 100644
--- a/include/termios.h
+++ b/include/termios.h
@@ -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
diff --git a/include/tgmath.h b/include/tgmath.h
new file mode 100644
index 0000000000..3a2c4a2b2d
--- /dev/null
+++ b/include/tgmath.h
@@ -0,0 +1 @@
+#include <math/tgmath.h>
diff --git a/include/time.h b/include/time.h
index bc8ce0662a..2659e62717 100644
--- a/include/time.h
+++ b/include/time.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
diff --git a/include/ulimit.h b/include/ulimit.h
index c1523a1864..8dc51d5fb7 100644
--- a/include/ulimit.h
+++ b/include/ulimit.h
@@ -1,4 +1,6 @@
+#ifndef _ULIMIT_H
 #include <resource/ulimit.h>
 
 /* Now define the internal interfaces.  */
 extern long int __ulimit __P ((int __cmd, ...));
+#endif
diff --git a/include/utmp.h b/include/utmp.h
index 4535acb6a0..b7f7d5fe2c 100644
--- a/include/utmp.h
+++ b/include/utmp.h
@@ -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
diff --git a/include/wchar.h b/include/wchar.h
index 95a8c431ab..33166edfdd 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -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
diff --git a/inet/inet_net.c b/inet/inet_net.c
index 1def607278..54120cb279 100644
--- a/inet/inet_net.c
+++ b/inet/inet_net.c
@@ -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++;
diff --git a/io/fts.c b/io/fts.c
index 75bba1f4d5..4c570846fa 100644
--- a/io/fts.c
+++ b/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);
 	}
diff --git a/libio/stdio.h b/libio/stdio.h
index 774003b490..87709976be 100644
--- a/libio/stdio.h
+++ b/libio/stdio.h
@@ -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
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog
index d358962f71..39ffba76d2 100644
--- a/linuxthreads/ChangeLog
+++ b/linuxthreads/ChangeLog
@@ -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
diff --git a/linuxthreads/sysdeps/pthread/semaphore.h b/linuxthreads/sysdeps/pthread/semaphore.h
new file mode 100644
index 0000000000..8793768a8e
--- /dev/null
+++ b/linuxthreads/sysdeps/pthread/semaphore.h
@@ -0,0 +1 @@
+#include <linuxthreads/semaphore.h>
diff --git a/locale/newlocale.c b/locale/newlocale.c
index 33cc7fa09a..c54d1c82c6 100644
--- a/locale/newlocale.c
+++ b/locale/newlocale.c
@@ -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. */
diff --git a/manual/creature.texi b/manual/creature.texi
index 00e3aada90..f88a6d9615 100644
--- a/manual/creature.texi
+++ b/manual/creature.texi
@@ -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
diff --git a/misc/getttyent.c b/misc/getttyent.c
index dc4b9fadcb..f73cb79cda 100644
--- a/misc/getttyent.c
+++ b/misc/getttyent.c
@@ -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);
 }
diff --git a/misc/mntent_r.c b/misc/mntent_r.c
index 0ee74e5d9b..f6ee1ca64e 100644
--- a/misc/mntent_r.c
+++ b/misc/mntent_r.c
@@ -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, ',');
diff --git a/misc/ttyslot.c b/misc/ttyslot.c
index 430f9c02d0..7dc9b27c0c 100644
--- a/misc/ttyslot.c
+++ b/misc/ttyslot.c
@@ -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);
diff --git a/nscd/nscd_conf.c b/nscd/nscd_conf.c
index 62a1e6cbd1..917fe022ff 100644
--- a/nscd/nscd_conf.c
+++ b/nscd/nscd_conf.c
@@ -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;
diff --git a/nss/nsswitch.c b/nss/nsswitch.c
index e4f475868e..b3b540917e 100644
--- a/nss/nsswitch.c
+++ b/nss/nsswitch.c
@@ -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.  */
diff --git a/posix/wordexp-test.c b/posix/wordexp-test.c
index 82af1666a2..d73021cc2e 100644
--- a/posix/wordexp-test.c
+++ b/posix/wordexp-test.c
@@ -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, "&ampersand", 0, 0, { NULL, }, IFS },
     { WRDE_BADCHAR, NULL, "semi;colon", 0, 0, { NULL, }, IFS },
diff --git a/posix/wordexp.c b/posix/wordexp.c
index fe3e2b2cea..dff5d30dad 100644
--- a/posix/wordexp.c
+++ b/posix/wordexp.c
@@ -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,
diff --git a/resolv/gethnamaddr.c b/resolv/gethnamaddr.c
index 16d7509f23..9a8efd66d3 100644
--- a/resolv/gethnamaddr.c
+++ b/resolv/gethnamaddr.c
@@ -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();
diff --git a/resolv/nsap_addr.c b/resolv/nsap_addr.c
index 5f41a736d6..5157c37c14 100644
--- a/resolv/nsap_addr.c
+++ b/resolv/nsap_addr.c
@@ -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);
diff --git a/resolv/res_debug.c b/resolv/res_debug.c
index 3afe8c23a8..92b8fa1d1a 100644
--- a/resolv/res_debug.c
+++ b/resolv/res_debug.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);
diff --git a/stdio-common/_itoa.c b/stdio-common/_itoa.c
index e5705d54b2..845928903c 100644
--- a/stdio-common/_itoa.c
+++ b/stdio-common/_itoa.c
@@ -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];				  \
diff --git a/stdlib/strtod.c b/stdlib/strtod.c
index 154e2049d9..5b15859066 100644
--- a/stdlib/strtod.c
+++ b/stdlib/strtod.c
@@ -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)
diff --git a/string/strverscmp.c b/string/strverscmp.c
index 39dfc61a9b..07095566a4 100644
--- a/string/strverscmp.c
+++ b/string/strverscmp.c
@@ -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)
   {
diff --git a/sunrpc/svc.c b/sunrpc/svc.c
index c4b91aa074..da97098add 100644
--- a/sunrpc/svc.c
+++ b/sunrpc/svc.c
@@ -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];
diff --git a/sysdeps/libm-ieee754/e_cosh.c b/sysdeps/libm-ieee754/e_cosh.c
index 4f6b52435b..65106b9989 100644
--- a/sysdeps/libm-ieee754/e_cosh.c
+++ b/sysdeps/libm-ieee754/e_cosh.c
@@ -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;
diff --git a/sysdeps/libm-ieee754/e_gamma_r.c b/sysdeps/libm-ieee754/e_gamma_r.c
index eb80809843..901f1451d2 100644
--- a/sysdeps/libm-ieee754/e_gamma_r.c
+++ b/sysdeps/libm-ieee754/e_gamma_r.c
@@ -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)
diff --git a/sysdeps/libm-ieee754/e_sinh.c b/sysdeps/libm-ieee754/e_sinh.c
index 1b37256687..1701b9bb67 100644
--- a/sysdeps/libm-ieee754/e_sinh.c
+++ b/sysdeps/libm-ieee754/e_sinh.c
@@ -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;
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
index fec30f97d7..30cc6364e7 100644
--- a/sysdeps/posix/getaddrinfo.c
+++ b/sysdeps/posix/getaddrinfo.c
@@ -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;
diff --git a/time/strftime.c b/time/strftime.c
index f0be6b646d..ed029605d9 100644
--- a/time/strftime.c
+++ b/time/strftime.c
@@ -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;
 	  }
 	}