diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2011-05-08 22:45:06 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2011-05-08 22:45:06 +0200 |
commit | 878c5456c5a2f9bff741a7b7bcdccd5c1694db22 (patch) | |
tree | bcf3d101215fa70b953aa7e9d0de805c5f8865b4 /libdde_linux26/contrib/include/linux/compiler-gcc4.h | |
parent | 9062642230b7bfb48e7b30f98cba8528172b2d36 (diff) | |
parent | c8f311a7a32d4b0cb0c21672f63bca8efdf5d83a (diff) |
Merge branch 'dde' into HEAD
Diffstat (limited to 'libdde_linux26/contrib/include/linux/compiler-gcc4.h')
-rw-r--r-- | libdde_linux26/contrib/include/linux/compiler-gcc4.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/libdde_linux26/contrib/include/linux/compiler-gcc4.h b/libdde_linux26/contrib/include/linux/compiler-gcc4.h new file mode 100644 index 00000000..09992718 --- /dev/null +++ b/libdde_linux26/contrib/include/linux/compiler-gcc4.h @@ -0,0 +1,37 @@ +#ifndef __LINUX_COMPILER_H +#error "Please don't include <linux/compiler-gcc4.h> directly, include <linux/compiler.h> instead." +#endif + +/* GCC 4.1.[01] miscompiles __weak */ +#if __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ <= 1 +# error Your version of gcc miscompiles the __weak directive +#endif + +#define __used __attribute__((__used__)) +#define __must_check __attribute__((warn_unused_result)) +#define __compiler_offsetof(a,b) __builtin_offsetof(a,b) +#define __always_inline inline __attribute__((always_inline)) + +/* + * A trick to suppress uninitialized variable warning without generating any + * code + */ +#define uninitialized_var(x) x = x + +#if __GNUC_MINOR__ >= 3 +/* Mark functions as cold. gcc will assume any path leading to a call + to them will be unlikely. This means a lot of manual unlikely()s + are unnecessary now for any paths leading to the usual suspects + like BUG(), printk(), panic() etc. [but let's keep them for now for + older compilers] + + Early snapshots of gcc 4.3 don't support this and we can't detect this + in the preprocessor, but we can live with this because they're unreleased. + Maketime probing would be overkill here. + + gcc also has a __attribute__((__hot__)) to move hot functions into + a special section, but I don't see any sense in this right now in + the kernel context */ +#define __cold __attribute__((__cold__)) + +#endif |