210435eb3ea930ebaf56efbbd1274ff05d512766
[openwrt.git] / target / linux / uml / patches-2.6.34 / 003-fix_text_section.patch
1 um: remove PAGE_SIZE alignment in linker script causing kernel segfault.
2
3 The linker script cleanup that I did in commit 
4 5d150a97f9391f5bcd7ba0d59d7a11c3de3cea80 accidentally introduced an 
5 ALIGN(PAGE_SIZE) when converting to use INIT_TEXT_SECTION; Richard 
6 Weinberger reported that this causes the kernel to segfault with 
7 CONFIG_STATIC_LINK=y.
8
9 I'm not certain why this extra alignment is a problem, but it seems likely 
10 it is because previously
11
12 __init_begin = _stext = _text = _sinittext 
13
14 and with the extra ALIGN(PAGE_SIZE), _sinittext becomes different from the 
15 rest.  So there is likely a bug here where something is assuming that 
16 _sinittext is the same as one of those other symbols.  But reverting the 
17 accidental change fixes the regression, so it seems worth committing that 
18 now.
19
20 Signed-off-by: Tim Abbott <tabbott@ksplice.com>
21 Reported-by: richard -rw- weinberger <richard.weinberger@gmail.com>
22 Cc: Jeff Dike <jdike@addtoit.com>
23 Cc: user-mode-linux-devel@lists.sourceforge.net
24 ---
25  arch/um/kernel/uml.lds.S |    2 +-
26  1 files changed, 1 insertions(+), 1 deletions(-)
27
28 --- a/arch/um/kernel/uml.lds.S
29 +++ b/arch/um/kernel/uml.lds.S
30 @@ -22,7 +22,7 @@ SECTIONS
31    _text = .;
32    _stext = .;
33    __init_begin = .;
34 -  INIT_TEXT_SECTION(PAGE_SIZE)
35 +  INIT_TEXT_SECTION(0)
36    . = ALIGN(PAGE_SIZE);
37  
38    .text      :