summaryrefslogtreecommitdiff
path: root/sysdeps/i386/bits
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/i386/bits')
-rw-r--r--sysdeps/i386/bits/select.h3
-rw-r--r--sysdeps/i386/bits/string.h14
2 files changed, 12 insertions, 5 deletions
diff --git a/sysdeps/i386/bits/select.h b/sysdeps/i386/bits/select.h
index edcb562945..34d2b0b27a 100644
--- a/sysdeps/i386/bits/select.h
+++ b/sysdeps/i386/bits/select.h
@@ -58,8 +58,9 @@
# define __FD_ZERO(set) \
do { \
unsigned int __i; \
+ __fd_mask *__arr = (set); \
for (__i = 0; __i < sizeof (__fd_set) / sizeof (__fd_mask); ++__i) \
- ((__fd_mask *) set)[__i] = 0; \
+ __arr->fds_bits[__i] = 0; \
} while (0)
# define __FD_SET(d, set) ((set)->fds_bits[__FDELT (d)] |= __FDMASK (d))
# define __FD_CLR(d, set) ((set)->fds_bits[__FDELT (d)] &= ~__FDMASK (d))
diff --git a/sysdeps/i386/bits/string.h b/sysdeps/i386/bits/string.h
index 2931684781..c6deb2b6a4 100644
--- a/sysdeps/i386/bits/string.h
+++ b/sysdeps/i386/bits/string.h
@@ -18,11 +18,17 @@
Boston, MA 02111-1307, USA. */
#ifndef _STRING_H
-#error "Never use <bits/string.h> directly; include <string.h> instead."
+# error "Never use <bits/string.h> directly; include <string.h> instead."
#endif
-/* We only provide optimizations for the GNU CC. */
-#if defined __GNUC__ && __GNUC__ >= 2
+/* The ix86 processors can access unaligned multi-byte variables. */
+#define _STRING_ARCH_unaligned 1
+
+
+/* We only provide optimizations if the user selects them and if
+ GNU CC is used. */
+#if !defined __NO_STRING_INLINES && defined __USE_STRING_INLINES \
+ && defined __GNUC__ && __GNUC__ >= 2
#ifdef __cplusplus
# define __STRING_INLINE inline
@@ -741,4 +747,4 @@ strstr (__const char *__haystack, __const char *__needle)
#undef __STRING_INLINE
-#endif /* GNU CC */
+#endif /* use string inlines && GNU CC */