[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20190812215052.71840-16-ndesaulniers@google.com>
Date: Mon, 12 Aug 2019 14:50:49 -0700
From: Nick Desaulniers <ndesaulniers@...gle.com>
To: akpm@...ux-foundation.org
Cc: sedat.dilek@...il.com, jpoimboe@...hat.com, yhs@...com,
miguel.ojeda.sandonis@...il.com,
clang-built-linux@...glegroups.com,
Nick Desaulniers <ndesaulniers@...gle.com>,
Alexei Starovoitov <ast@...nel.org>,
Daniel Borkmann <daniel@...earbox.net>,
Martin KaFai Lau <kafai@...com>,
Song Liu <songliubraving@...com>, linux-kernel@...r.kernel.org,
netdev@...r.kernel.org, bpf@...r.kernel.org
Subject: [PATCH 16/16] compiler_attributes.h: add note about __section
The antipattern described can be found with:
$ grep -e __section\(\" -r -e __section__\(\"
Link: https://bugs.llvm.org/show_bug.cgi?id=42950
Signed-off-by: Nick Desaulniers <ndesaulniers@...gle.com>
---
include/linux/compiler_attributes.h | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/include/linux/compiler_attributes.h b/include/linux/compiler_attributes.h
index 6b318efd8a74..f8c008d7f616 100644
--- a/include/linux/compiler_attributes.h
+++ b/include/linux/compiler_attributes.h
@@ -225,6 +225,16 @@
#define __pure __attribute__((__pure__))
/*
+ * Note: Since this macro makes use of the "stringification operator" `#`, a
+ * quoted string literal should not be passed to it. eg.
+ * prefer:
+ * __section(.foo)
+ * to:
+ * __section(".foo")
+ * unless the section name is dynamically built up, in which case the
+ * verbose __attribute__((__section__(".foo" x))) should be preferred.
+ * See also: https://bugs.llvm.org/show_bug.cgi?id=42950
+ *
* gcc: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-section-function-attribute
* gcc: https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html#index-section-variable-attribute
* clang: https://clang.llvm.org/docs/AttributeReference.html#section-declspec-allocate
--
2.23.0.rc1.153.gdeed80330f-goog
Powered by blists - more mailing lists