mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-22 06:32:08 +00:00
LLVMLinux: Add support for clang to compiler.h and new compiler-clang.h
Add a compiler-clang.h file to add specific macros needed for compiling the kernel with clang. Initially the only override required is the macro for silencing the compiler for a purposefully uninintialized variable. Author: Mark Charlebois <charlebm@gmail.com> Signed-off-by: Mark Charlebois <charlebm@gmail.com> Signed-off-by: Behan Webster <behanw@converseincode.com>
This commit is contained in:
parent
aa93685afb
commit
565cbdc2fe
2 changed files with 19 additions and 0 deletions
12
include/linux/compiler-clang.h
Normal file
12
include/linux/compiler-clang.h
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
#ifndef __LINUX_COMPILER_H
|
||||||
|
#error "Please don't include <linux/compiler-clang.h> directly, include <linux/compiler.h> instead."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Some compiler specific definitions are overwritten here
|
||||||
|
* for Clang compiler
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef uninitialized_var
|
||||||
|
#undef uninitialized_var
|
||||||
|
#define uninitialized_var(x) x = *(&(x))
|
||||||
|
#endif
|
|
@ -63,6 +63,13 @@ extern void __chk_io_ptr(const volatile void __iomem *);
|
||||||
# include <linux/compiler-intel.h>
|
# include <linux/compiler-intel.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Clang compiler defines __GNUC__. So we will overwrite implementations
|
||||||
|
* coming from above header files here
|
||||||
|
*/
|
||||||
|
#ifdef __clang__
|
||||||
|
#include <linux/compiler-clang.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Generic compiler-dependent macros required for kernel
|
* Generic compiler-dependent macros required for kernel
|
||||||
* build go below this comment. Actual compiler/compiler version
|
* build go below this comment. Actual compiler/compiler version
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue