浏览代码

[PATCH] x86_64: x86_64-enable-large-bzImage.patch

enable large bzImages on x86_64. (fix is from x86's build.c) Using this
patch i have successfully built and booted an allyesconfig 13MB+ bzImage
on x86_64 too:

 $ size64 vmlinux
    text    data     bss     dec     hex filename
 23444831        8202642 3439360 35086833        21761f1 vmlinux

 -rw-rw-r--  1 mingo mingo 13121740 Apr 19 09:32 arch/x86_64/boot/bzImage

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Ingo Molnar 19 年之前
父节点
当前提交
3c5846470c
共有 1 个文件被更改,包括 2 次插入4 次删除
  1. 2 4
      arch/x86_64/boot/tools/build.c

+ 2 - 4
arch/x86_64/boot/tools/build.c

@@ -149,10 +149,8 @@ int main(int argc, char ** argv)
 	sz = sb.st_size;
 	sz = sb.st_size;
 	fprintf (stderr, "System is %d kB\n", sz/1024);
 	fprintf (stderr, "System is %d kB\n", sz/1024);
 	sys_size = (sz + 15) / 16;
 	sys_size = (sz + 15) / 16;
-	/* 0x40000*16 = 4.0 MB, reasonable estimate for the current maximum */
-	if (sys_size > (is_big_kernel ? 0x40000 : DEF_SYSSIZE))
-		die("System is too big. Try using %smodules.",
-			is_big_kernel ? "" : "bzImage or ");
+	if (!is_big_kernel && sys_size > DEF_SYSSIZE)
+		die("System is too big. Try using bzImage or modules.");
 	while (sz > 0) {
 	while (sz > 0) {
 		int l, n;
 		int l, n;