From 9d707800b0c7090424ae6426423041e8755623ce Mon Sep 17 00:00:00 2001 From: Valentin Bartenev Date: Tue, 18 Jul 2017 17:13:40 +0300 Subject: [PATCH] More accurate "packed" attribute declaration. --- auto/clang | 15 +++++++++++++++ src/nxt_clang.h | 13 +++++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/auto/clang b/auto/clang index dc434940..f36a31a0 100644 --- a/auto/clang +++ b/auto/clang @@ -146,3 +146,18 @@ nxt_feature_test="#include return 0; }" . auto/feature + + +nxt_feature="GCC __attribute__ packed" +nxt_feature_name=NXT_HAVE_GCC_ATTRIBUTE_PACKED +nxt_feature_run= +nxt_feature_path= +nxt_feature_libs= +nxt_feature_test="struct __attribute__ ((__packed__)) s { + char c; + }; + + int main() { + return 1; + }" +. auto/feature diff --git a/src/nxt_clang.h b/src/nxt_clang.h index 65bd7940..4b02b468 100644 --- a/src/nxt_clang.h +++ b/src/nxt_clang.h @@ -121,6 +121,17 @@ nxt_prefetch(a) #endif +#if (NXT_HAVE_GCC_ATTRIBUTE_PACKED) + +#define nxt_packed __attribute__((__packed__)) + +#else + +#define nxt_packed + +#endif + + #ifndef NXT_ALIGNMENT #if (NXT_SOLARIS) @@ -230,6 +241,4 @@ nxt_trunc_ptr(p, a) \ (u_char *) ((uintptr_t) (p) & ~((uintptr_t) (a) - 1)) -#define NXT_PACKED __attribute__((packed)) - #endif /* _NXT_CLANG_H_INCLUDED_ */