summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-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_ */