浏览代码

UML - Fix boot crash

My copying of linux/init.h didn't go far enough.  The definition of
__used singled out gcc minor version 3, but didn't care what the major
version was.  This broke when unit-at-a-time was added and gcc started
throwing out initcalls.

This results in an early boot crash when ptrace tries to initialize a
process with an empty, uninitialized register set.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Jeff Dike 17 年之前
父节点
当前提交
7c1fed03b9
共有 1 个文件被更改,包括 8 次插入0 次删除
  1. 8 0
      arch/um/include/init.h

+ 8 - 0
arch/um/include/init.h

@@ -45,12 +45,20 @@ typedef void (*exitcall_t)(void);
 # define __section(S) __attribute__ ((__section__(#S)))
 # define __section(S) __attribute__ ((__section__(#S)))
 #endif
 #endif
 
 
+#if __GNUC__ == 3
+
 #if __GNUC_MINOR__ >= 3
 #if __GNUC_MINOR__ >= 3
 # define __used			__attribute__((__used__))
 # define __used			__attribute__((__used__))
 #else
 #else
 # define __used			__attribute__((__unused__))
 # define __used			__attribute__((__unused__))
 #endif
 #endif
 
 
+#else
+#if __GNUC__ == 4
+# define __used			__attribute__((__used__))
+#endif
+#endif
+
 #else
 #else
 #include <linux/compiler.h>
 #include <linux/compiler.h>
 #endif
 #endif