summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorValentin Bartenev <vbart@nginx.com>2017-07-18 17:13:40 +0300
committerValentin Bartenev <vbart@nginx.com>2017-07-18 17:13:40 +0300
commit9d707800b0c7090424ae6426423041e8755623ce (patch)
treee5f74ba80479ecd97d937eade77f13026022fd00
parentbeb4de21bb0709154b227821dd090e797d256ce5 (diff)
downloadunit-9d707800b0c7090424ae6426423041e8755623ce.tar.gz
unit-9d707800b0c7090424ae6426423041e8755623ce.tar.bz2
More accurate "packed" attribute declaration.
-rw-r--r--auto/clang15
-rw-r--r--src/nxt_clang.h13
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 <stdlib.h>
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_ */