+#if SUPPORTED_PERSONALITIES > 1
+ union {
+ struct { u_int32_t base; u_int32_t len; } iov32;
+ struct { u_int64_t base; u_int64_t len; } iov64;
+ } iov;
+#define sizeof_iov \
+ (current_wordsize == 4 ? sizeof(iov.iov32) : sizeof(iov.iov64))
+#define iov_iov_base \
+ (current_wordsize == 4 ? (uint64_t) iov.iov32.base : iov.iov64.base)
+#define iov_iov_len \
+ (current_wordsize == 4 ? (uint64_t) iov.iov32.len : iov.iov64.len)
+#else
+ struct iovec iov;
+#define sizeof_iov sizeof(iov)
+#define iov_iov_base iov.iov_base
+#define iov_iov_len iov.iov_len
+#endif
+ unsigned long size, cur, end, abbrev_end;
+ int failed = 0;