[PATCH] D21034: [sanitizer] Fix build for new GLIBC msghdr/cmsghdr definition
Adhemerval Zanella via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 6 14:20:16 PDT 2016
zatrazz removed rL LLVM as the repository for this revision.
zatrazz updated this revision to Diff 59785.
zatrazz added a comment.
Update patch based on previous comments.
http://reviews.llvm.org/D21034
Files:
lib/sanitizer_common/sanitizer_platform_limits_posix.h
Index: lib/sanitizer_common/sanitizer_platform_limits_posix.h
===================================================================
--- lib/sanitizer_common/sanitizer_platform_limits_posix.h
+++ lib/sanitizer_common/sanitizer_platform_limits_posix.h
@@ -415,6 +415,49 @@
int cmsg_type;
};
#else
+# ifndef __GLIBC_PREREQ
+# define __GLIBC_PREREQ(x, y) 0
+# endif
+// GLIBC 2.24 follows msghdr and cmsghdr POSIX definition for internal
+// member size and adds padding where required.
+# if __GLIBC_PREREQ(2, 24) && defined(_LP64)
+# if __BYTE_ORDER == __BIG_ENDIAN
+ struct __sanitizer_msghdr {
+ void *msg_name;
+ unsigned msg_namelen;
+ struct __sanitizer_iovec *msg_iov;
+ int __padding1;
+ unsigned msg_iovlen;
+ void *msg_control;
+ int __padding2;
+ unsigned msg_controllen;
+ int msg_flags;
+ };
+ struct __sanitizer_cmsghdr {
+ uptr cmsg_len;
+ int cmsg_level;
+ int cmsg_type;
+ };
+# else
+ struct __sanitizer_msghdr {
+ void *msg_name;
+ unsigned msg_namelen;
+ struct __sanitizer_iovec *msg_iov;
+ int msg_iovlen;
+ int __padding1;
+ void *msg_control;
+ int msg_controllen;
+ int __padding2;
+ int msg_flags;
+ };
+ struct __sanitizer_cmsghdr {
+ unsigned cmsg_len;
+ int __padding1;
+ int cmsg_level;
+ int cmsg_type;
+ };
+# endif // __BYTE_ORDER == __BIG_ENDIAN
+# else
struct __sanitizer_msghdr {
void *msg_name;
unsigned msg_namelen;
@@ -429,6 +472,7 @@
int cmsg_level;
int cmsg_type;
};
+# endif // __GLIBC_PREREQ (2, 24) && __WORDSIZE == 64
#endif
#if SANITIZER_MAC
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D21034.59785.patch
Type: text/x-patch
Size: 1608 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160606/dd395066/attachment.bin>
More information about the llvm-commits
mailing list