diff options
| -rw-r--r-- | Documentation/feature-removal-schedule.txt | 9 | ||||
| -rw-r--r-- | include/linux/compiler-gcc4.h | 9 | ||||
| -rw-r--r-- | lib/Kconfig.debug | 14 |
3 files changed, 32 insertions, 0 deletions
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 9474501dd6cc..b4a1ea762698 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
| @@ -123,6 +123,15 @@ Who: Christoph Hellwig <hch@lst.de> | |||
| 123 | 123 | ||
| 124 | --------------------------- | 124 | --------------------------- |
| 125 | 125 | ||
| 126 | What: CONFIG_FORCED_INLINING | ||
| 127 | When: June 2006 | ||
| 128 | Why: Config option is there to see if gcc is good enough. (in january | ||
| 129 | 2006). If it is, the behavior should just be the default. If it's not, | ||
| 130 | the option should just go away entirely. | ||
| 131 | Who: Arjan van de Ven | ||
| 132 | |||
| 133 | --------------------------- | ||
| 134 | |||
| 126 | What: START_ARRAY ioctl for md | 135 | What: START_ARRAY ioctl for md |
| 127 | When: July 2006 | 136 | When: July 2006 |
| 128 | Files: drivers/md/md.c | 137 | Files: drivers/md/md.c |
diff --git a/include/linux/compiler-gcc4.h b/include/linux/compiler-gcc4.h index 8249115a1f73..6f5cc6f0e7a6 100644 --- a/include/linux/compiler-gcc4.h +++ b/include/linux/compiler-gcc4.h | |||
| @@ -3,6 +3,15 @@ | |||
| 3 | /* These definitions are for GCC v4.x. */ | 3 | /* These definitions are for GCC v4.x. */ |
| 4 | #include <linux/compiler-gcc.h> | 4 | #include <linux/compiler-gcc.h> |
| 5 | 5 | ||
| 6 | #ifdef CONFIG_FORCED_INLINING | ||
| 7 | # undef inline | ||
| 8 | # undef __inline__ | ||
| 9 | # undef __inline | ||
| 10 | # define inline inline __attribute__((always_inline)) | ||
| 11 | # define __inline__ __inline__ __attribute__((always_inline)) | ||
| 12 | # define __inline __inline __attribute__((always_inline)) | ||
| 13 | #endif | ||
| 14 | |||
| 6 | #define __attribute_used__ __attribute__((__used__)) | 15 | #define __attribute_used__ __attribute__((__used__)) |
| 7 | #define __must_check __attribute__((warn_unused_result)) | 16 | #define __must_check __attribute__((warn_unused_result)) |
| 8 | #define __compiler_offsetof(a,b) __builtin_offsetof(a,b) | 17 | #define __compiler_offsetof(a,b) __builtin_offsetof(a,b) |
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index a609235a517f..a314e663d517 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug | |||
| @@ -195,6 +195,20 @@ config FRAME_POINTER | |||
| 195 | some architectures or if you use external debuggers. | 195 | some architectures or if you use external debuggers. |
| 196 | If you don't debug the kernel, you can say N. | 196 | If you don't debug the kernel, you can say N. |
| 197 | 197 | ||
| 198 | config FORCED_INLINING | ||
| 199 | bool "Force gcc to inline functions marked 'inline'" | ||
| 200 | depends on DEBUG_KERNEL | ||
| 201 | default y | ||
| 202 | help | ||
| 203 | This option determines if the kernel forces gcc to inline the functions | ||
| 204 | developers have marked 'inline'. Doing so takes away freedom from gcc to | ||
| 205 | do what it thinks is best, which is desirable for the gcc 3.x series of | ||
| 206 | compilers. The gcc 4.x series have a rewritten inlining algorithm and | ||
| 207 | disabling this option will generate a smaller kernel there. Hopefully | ||
| 208 | this algorithm is so good that allowing gcc4 to make the decision can | ||
| 209 | become the default in the future, until then this option is there to | ||
| 210 | test gcc for this. | ||
| 211 | |||
| 198 | config RCU_TORTURE_TEST | 212 | config RCU_TORTURE_TEST |
| 199 | tristate "torture tests for RCU" | 213 | tristate "torture tests for RCU" |
| 200 | depends on DEBUG_KERNEL | 214 | depends on DEBUG_KERNEL |
