Messages in this thread Patch in this message |  | | From | behanw@converse ... | Subject | [PATCH] module: LLVMLinux: Fix section mismatch issues on alias usage | Date | Thu, 20 Feb 2014 20:28:29 -0800 |
| |
From: Jan-Simon Möller <dl9pf@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 <pageexec@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 <dl9pf@gmx.de> Signed-off-by: Jan-Simon Möller <dl9pf@gmx.de> Signed-off-by: Behan Webster <behanw@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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |