From: Jan-Simon Möller <dl...@gmx.de>

Attribute aliases don't inherit the link section name when compiled with clang.
As a result, the linking section needs to be explicitly specified when building
a module. This behavior is undefined in the standard which is why it differs 
from
compiler to compiler.

Author:  PaX Team <pagee...@freemail.hu>
ML-Post: 
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120507/142707.html
URL:     http://llvm.linuxfoundation.org
Merge:   Jan-Simon Möller <dl...@gmx.de>
Signed-off-by: Jan-Simon Möller <dl...@gmx.de>
Signed-off-by: Behan Webster <beh...@converseincode.com>
---
 include/linux/init.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/include/linux/init.h b/include/linux/init.h
index e168880..384ec5e 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -297,13 +297,14 @@ void __init parse_early_options(char *cmdline);
 #define module_init(initfn)                                    \
        static inline initcall_t __inittest(void)               \
        { return initfn; }                                      \
-       int init_module(void) __attribute__((alias(#initfn)));
+       int init_module(void) __section(.init) __attribute__((alias(#initfn)));
 
 /* This is only required if you want to be unloadable. */
 #define module_exit(exitfn)                                    \
        static inline exitcall_t __exittest(void)               \
        { return exitfn; }                                      \
-       void cleanup_module(void) __attribute__((alias(#exitfn)));
+       void cleanup_module(void) __section(.exit)              \
+               __attribute__((alias(#exitfn)));
 
 #define __setup_param(str, unique_id, fn)      /* nothing */
 #define __setup(str, func)                     /* nothing */
-- 
1.8.3.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to