forked from Minki/linux
x86: Document linker script ASSERT() quirk
Older binutils breaks if ASSERT() is used without a sink
for the output.
For example 2.14.90.0.6 is known to be broken, the link
fails with:
LD .tmp_vmlinux1
ld:arch/x86/kernel/vmlinux.lds:678: parse error
Document this quirk in all three files that use it.
See: http://marc.info/?l=linux-kbuild&m=124930110427870&w=2
See[2]: d2ba8b2
("x86: Fix assert syntax in vmlinux.lds.S")
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Roland McGrath <roland@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
LKML-Reference: <4AD6523D.5030909@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
012abeea66
commit
a5912f6b3e
@ -53,6 +53,9 @@ SECTIONS
|
|||||||
|
|
||||||
/DISCARD/ : { *(.note*) }
|
/DISCARD/ : { *(.note*) }
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The ASSERT() sink to . is intentional, for binutils 2.14 compatibility:
|
||||||
|
*/
|
||||||
. = ASSERT(_end <= 0x8000, "Setup too big!");
|
. = ASSERT(_end <= 0x8000, "Setup too big!");
|
||||||
. = ASSERT(hdr == 0x1f1, "The setup header has the wrong offset!");
|
. = ASSERT(hdr == 0x1f1, "The setup header has the wrong offset!");
|
||||||
/* Necessary for the very-old-loader check to work... */
|
/* Necessary for the very-old-loader check to work... */
|
||||||
|
@ -57,5 +57,8 @@ SECTIONS
|
|||||||
*(.note*)
|
*(.note*)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The ASSERT() sink to . is intentional, for binutils 2.14 compatibility:
|
||||||
|
*/
|
||||||
. = ASSERT(_end <= WAKEUP_SIZE, "Wakeup too big!");
|
. = ASSERT(_end <= WAKEUP_SIZE, "Wakeup too big!");
|
||||||
}
|
}
|
||||||
|
@ -305,6 +305,9 @@ SECTIONS
|
|||||||
|
|
||||||
|
|
||||||
#ifdef CONFIG_X86_32
|
#ifdef CONFIG_X86_32
|
||||||
|
/*
|
||||||
|
* The ASSERT() sink to . is intentional, for binutils 2.14 compatibility:
|
||||||
|
*/
|
||||||
. = ASSERT((_end - LOAD_OFFSET <= KERNEL_IMAGE_SIZE),
|
. = ASSERT((_end - LOAD_OFFSET <= KERNEL_IMAGE_SIZE),
|
||||||
"kernel image bigger than KERNEL_IMAGE_SIZE");
|
"kernel image bigger than KERNEL_IMAGE_SIZE");
|
||||||
#else
|
#else
|
||||||
|
Loading…
Reference in New Issue
Block a user