Hi Linus,
The following patch fixes a regression that I caused in 2.6.32 when
cleaning up the um architecture's linker scripts.
I've not heard anything from the um maintainers (they have had since
Richard Weinberger reported that this patch fixed the problem on December
22), so I'm sending this to you now (and CCing stable@ since it affects
2.6.32).
-Tim Abbott
--
um: remove PAGE_SIZE alignment in linker script causing kernel segfault.
The linker script cleanup that I did in commit
5d150a97f9391f5bcd7ba0d59d7a11c3de3cea80 accidentally introduced an
ALIGN(PAGE_SIZE) when converting to use INIT_TEXT_SECTION; Richard
Weinberger reported that this causes the kernel to segfault with
CONFIG_STATIC_LINK=y.
I'm not certain why this extra alignment is a problem, but it seems likely
it is because previously
__init_begin = _stext = _text = _sinittext
and with the extra ALIGN(PAGE_SIZE), _sinittext becomes different from the
rest. So there is likely a bug here where something is assuming that
_sinittext is the same as one of those other symbols. But reverting the
accidental change fixes the regression, so it seems worth committing that
now.
Signed-off-by: Tim Abbott <[email protected]>
Reported-by: richard -rw- weinberger <[email protected]>
Cc: Jeff Dike <[email protected]>
Cc: [email protected]
---
arch/um/kernel/uml.lds.S | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/um/kernel/uml.lds.S b/arch/um/kernel/uml.lds.S
index e7a6cca..664f942 100644
--- a/arch/um/kernel/uml.lds.S
+++ b/arch/um/kernel/uml.lds.S
@@ -22,7 +22,7 @@ SECTIONS
_text = .;
_stext = .;
__init_begin = .;
- INIT_TEXT_SECTION(PAGE_SIZE)
+ INIT_TEXT_SECTION(0)
. = ALIGN(PAGE_SIZE);
.text :
--
1.6.5.7
Andrew, Linus, Jeff, ... anyone?
Please apply this patch.
CONFIG_STATIC_LINK is still broken. :(
//richard
---------- Forwarded message ----------
From: Tim Abbott <[email protected]>
Date: Mon, Jan 4, 2010 at 10:08 PM
Subject: [REGRESSION] um: CONFIG_STATIC_LINK=y broken
To: Linus Torvalds <[email protected]>
Cc: [email protected], Jeff Dike <[email protected]>,
[email protected], [email protected],
richard -rw- weinberger <[email protected]>, Sam Ravnborg
<[email protected]>
Hi Linus,
The following patch fixes a regression that I caused in 2.6.32 when
cleaning up the um architecture's linker scripts.
I've not heard anything from the um maintainers (they have had since
Richard Weinberger reported that this patch fixed the problem on December
22), so I'm sending this to you now (and CCing stable@ since it affects
2.6.32).
? ? ? ?-Tim Abbott
--
um: remove PAGE_SIZE alignment in linker script causing kernel segfault.
The linker script cleanup that I did in commit
5d150a97f9391f5bcd7ba0d59d7a11c3de3cea80 accidentally introduced an
ALIGN(PAGE_SIZE) when converting to use INIT_TEXT_SECTION; Richard
Weinberger reported that this causes the kernel to segfault with
CONFIG_STATIC_LINK=y.
I'm not certain why this extra alignment is a problem, but it seems likely
it is because previously
__init_begin = _stext = _text = _sinittext
and with the extra ALIGN(PAGE_SIZE), _sinittext becomes different from the
rest. ?So there is likely a bug here where something is assuming that
_sinittext is the same as one of those other symbols. ?But reverting the
accidental change fixes the regression, so it seems worth committing that
now.
Signed-off-by: Tim Abbott <[email protected]>
Reported-by: richard -rw- weinberger <[email protected]>
Cc: Jeff Dike <[email protected]>
Cc: [email protected]
---
?arch/um/kernel/uml.lds.S | ? ?2 +-
?1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/um/kernel/uml.lds.S b/arch/um/kernel/uml.lds.S
index e7a6cca..664f942 100644
--- a/arch/um/kernel/uml.lds.S
+++ b/arch/um/kernel/uml.lds.S
@@ -22,7 +22,7 @@ SECTIONS
? _text = .;
? _stext = .;
? __init_begin = .;
- ?INIT_TEXT_SECTION(PAGE_SIZE)
+ ?INIT_TEXT_SECTION(0)
? . = ALIGN(PAGE_SIZE);
? .text ? ? ?:
--
1.6.5.7
On Fri, Jun 18, 2010 at 15:49, richard -rw- weinberger
<[email protected]> wrote:
> Andrew, Linus, Jeff, ... anyone?
> Please apply this patch.
>
> CONFIG_STATIC_LINK is still broken. :(
I wanted to verify Tim's patch, but after enabling CONFIG_STATIC_LINK,
it fails to link
(with or without your patch):
LD .tmp_vmlinux1
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libc.a(elf-init.o):
In function `__libc_csu_irel':(.text+0xd4): undefined reference to
`__rela_iplt_end'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libc.a(elf-init.o):
In function `__libc_csu_irel':
(.text+0xe5): undefined reference to `__rela_iplt_start'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libc.a(elf-init.o):
In function `__libc_csu_irel':
(.text+0x100): undefined reference to `__rela_iplt_start'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libc.a(elf-init.o):
In function `__libc_csu_irel':
(.text+0x10a): undefined reference to `__rela_iplt_start'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libc.a(elf-init.o):
In function `__libc_csu_irel':
(.text+0x10f): undefined reference to `__rela_iplt_start'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libc.a(elf-init.o):
In function `__libc_csu_irel':
(.text+0x114): undefined reference to `__rela_iplt_start'
collect2: ld returned 1 exit status
KSYM .tmp_kallsyms1.S
nm: '.tmp_vmlinux1': No such file
No valid symbol.
make[3]: *** [.tmp_kallsyms1.S] Error 1
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make: *** [all] Error 2
This is 2.6.35-rc3 with the hweight fix.
With CONFIG_STATIC_LINK=n, it works fine.
>
> //richard
> ---------- Forwarded message ----------
> From: Tim Abbott <[email protected]>
> Date: Mon, Jan 4, 2010 at 10:08 PM
> Subject: [REGRESSION] um: CONFIG_STATIC_LINK=y broken
> To: Linus Torvalds <[email protected]>
> Cc: [email protected], Jeff Dike <[email protected]>,
> [email protected], [email protected],
> richard -rw- weinberger <[email protected]>, Sam Ravnborg
> <[email protected]>
>
>
> Hi Linus,
>
> The following patch fixes a regression that I caused in 2.6.32 when
> cleaning up the um architecture's linker scripts.
>
> I've not heard anything from the um maintainers (they have had since
> Richard Weinberger reported that this patch fixed the problem on December
> 22), so I'm sending this to you now (and CCing stable@ since it affects
> 2.6.32).
>
> -Tim Abbott
>
> --
>
> um: remove PAGE_SIZE alignment in linker script causing kernel segfault.
>
> The linker script cleanup that I did in commit
> 5d150a97f9391f5bcd7ba0d59d7a11c3de3cea80 accidentally introduced an
> ALIGN(PAGE_SIZE) when converting to use INIT_TEXT_SECTION; Richard
> Weinberger reported that this causes the kernel to segfault with
> CONFIG_STATIC_LINK=y.
>
> I'm not certain why this extra alignment is a problem, but it seems likely
> it is because previously
>
> __init_begin = _stext = _text = _sinittext
>
> and with the extra ALIGN(PAGE_SIZE), _sinittext becomes different from the
> rest. So there is likely a bug here where something is assuming that
> _sinittext is the same as one of those other symbols. But reverting the
> accidental change fixes the regression, so it seems worth committing that
> now.
>
> Signed-off-by: Tim Abbott <[email protected]>
> Reported-by: richard -rw- weinberger <[email protected]>
> Cc: Jeff Dike <[email protected]>
> Cc: [email protected]
> ---
> arch/um/kernel/uml.lds.S | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/arch/um/kernel/uml.lds.S b/arch/um/kernel/uml.lds.S
> index e7a6cca..664f942 100644
> --- a/arch/um/kernel/uml.lds.S
> +++ b/arch/um/kernel/uml.lds.S
> @@ -22,7 +22,7 @@ SECTIONS
> _text = .;
> _stext = .;
> __init_begin = .;
> - INIT_TEXT_SECTION(PAGE_SIZE)
> + INIT_TEXT_SECTION(0)
> . = ALIGN(PAGE_SIZE);
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
On Fri, Jun 18, 2010 at 4:27 PM, Geert Uytterhoeven
<[email protected]> wrote:
> On Fri, Jun 18, 2010 at 15:49, richard -rw- weinberger
> <[email protected]> wrote:
>> Andrew, Linus, Jeff, ... anyone?
>> Please apply this patch.
>>
>> CONFIG_STATIC_LINK is still broken. :(
>
> I wanted to verify Tim's patch, but after enabling CONFIG_STATIC_LINK,
> it fails to link
> (with or without your patch):
>
Hmm, strange. On my machine it links fine with 2.6.35-rc3 + hweight.
I'm using OpenSUSE 11.0 x86 (gcc 4.3.1, binutils 2.18.50).
My config is attached.
cheers,
//richard
On Fri, Jun 18, 2010 at 4:27 PM, Geert Uytterhoeven
<[email protected]> wrote:
> On Fri, Jun 18, 2010 at 15:49, richard -rw- weinberger
> <[email protected]> wrote:
>> Andrew, Linus, Jeff, ... anyone?
>> Please apply this patch.
>>
>> CONFIG_STATIC_LINK is still broken. :(
>
> I wanted to verify Tim's patch, but after enabling CONFIG_STATIC_LINK,
> it fails to link
> (with or without your patch):
>
BTW: Does CONFIG_STATIC_LINK work for you when you revert commit
5d150a97f9391f5bcd7ba0d59d7a11c3de3cea80 (um: Clean up linker script
using standard macros)?
Cheers,
//richard
On Fri, Jun 18, 2010 at 04:27:31PM +0200, Geert Uytterhoeven wrote:
> On Fri, Jun 18, 2010 at 15:49, richard -rw- weinberger
> <[email protected]> wrote:
> > Andrew, Linus, Jeff, ... anyone?
> > Please apply this patch.
> >
> > CONFIG_STATIC_LINK is still broken. :(
>
> I wanted to verify Tim's patch, but after enabling CONFIG_STATIC_LINK,
> it fails to link
> (with or without your patch):
I had this patch applied to the debian package for quite some time:
it came from Jeff initially, but it's definitely unrelated....
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=494995
Fix symbol clash between libc and the kernel.
Index: linux-source-2.6.30/arch/um/Makefile
===================================================================
--- linux-source-2.6.30.orig/arch/um/Makefile 2009-07-07 21:18:57.964418085 +0900
+++ linux-source-2.6.30/arch/um/Makefile 2009-07-07 21:19:34.828766443 +0900
@@ -66,7 +66,8 @@
# defines more robust
KERNEL_DEFINES = $(strip -Derrno=kernel_errno -Dsigprocmask=kernel_sigprocmask \
- -Dmktime=kernel_mktime $(ARCH_KERNEL_DEFINES))
+ -Dmktime=kernel_mktime -Dstrrchr=kernel_strrchr \
+ $(ARCH_KERNEL_DEFINES))
KBUILD_CFLAGS += $(KERNEL_DEFINES)
PHONY += linux
--
mattia
:wq!
On Fri, Jun 18, 2010 at 17:22, richard -rw- weinberger
<[email protected]> wrote:
> On Fri, Jun 18, 2010 at 4:27 PM, Geert Uytterhoeven
> <[email protected]> wrote:
>> On Fri, Jun 18, 2010 at 15:49, richard -rw- weinberger
>> <[email protected]> wrote:
>>> Andrew, Linus, Jeff, ... anyone?
>>> Please apply this patch.
>>>
>>> CONFIG_STATIC_LINK is still broken. :(
>>
>> I wanted to verify Tim's patch, but after enabling CONFIG_STATIC_LINK,
>> it fails to link
>> (with or without your patch):
>>
>
> BTW: Does CONFIG_STATIC_LINK work for you when you revert commit
> 5d150a97f9391f5bcd7ba0d59d7a11c3de3cea80 (um: Clean up linker script
> using standard macros)?
Still the same linking errors ;-(
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
On Fri, Jun 18, 2010 at 7:17 PM, Geert Uytterhoeven
<[email protected]> wrote:
> On Fri, Jun 18, 2010 at 17:22, richard -rw- weinberger
> <[email protected]> wrote:
>> On Fri, Jun 18, 2010 at 4:27 PM, Geert Uytterhoeven
>> <[email protected]> wrote:
>>> On Fri, Jun 18, 2010 at 15:49, richard -rw- weinberger
>>> <[email protected]> wrote:
>>>> Andrew, Linus, Jeff, ... anyone?
>>>> Please apply this patch.
>>>>
>>>> CONFIG_STATIC_LINK is still broken. :(
>>>
>>> I wanted to verify Tim's patch, but after enabling CONFIG_STATIC_LINK,
>>> it fails to link
>>> (with or without your patch):
>>>
>>
>> BTW: Does CONFIG_STATIC_LINK work for you when you revert commit
>> 5d150a97f9391f5bcd7ba0d59d7a11c3de3cea80 (um: Clean up linker script
>> using standard macros)?
>
> Still the same linking errors ;-(
>
Are you using a non-x86 environment?
Maybe CONFIG_STATIC_LINK is more broken than i thought.
Cheers,
//richard
On Fri, Jun 18, 2010 at 19:50, richard -rw- weinberger
<[email protected]> wrote:
> On Fri, Jun 18, 2010 at 7:17 PM, Geert Uytterhoeven
> <[email protected]> wrote:
>> On Fri, Jun 18, 2010 at 17:22, richard -rw- weinberger
>> <[email protected]> wrote:
>>> On Fri, Jun 18, 2010 at 4:27 PM, Geert Uytterhoeven
>>> <[email protected]> wrote:
>>>> On Fri, Jun 18, 2010 at 15:49, richard -rw- weinberger
>>>> <[email protected]> wrote:
>>>>> Andrew, Linus, Jeff, ... anyone?
>>>>> Please apply this patch.
>>>>>
>>>>> CONFIG_STATIC_LINK is still broken. :(
>>>>
>>>> I wanted to verify Tim's patch, but after enabling CONFIG_STATIC_LINK,
>>>> it fails to link
>>>> (with or without your patch):
>>>>
>>>
>>> BTW: Does CONFIG_STATIC_LINK work for you when you revert commit
>>> 5d150a97f9391f5bcd7ba0d59d7a11c3de3cea80 (um: Clean up linker script
>>> using standard macros)?
>>
>> Still the same linking errors ;-(
>>
>
> Are you using a non-x86 environment?
> Maybe CONFIG_STATIC_LINK is more broken than i thought.
I'm using amd64 on Ubuntu 10.04.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
On Fri, Jun 18, 2010 at 10:01 PM, Geert Uytterhoeven
<[email protected]> wrote:
> On Fri, Jun 18, 2010 at 19:50, richard -rw- weinberger
> <[email protected]> wrote:
>> On Fri, Jun 18, 2010 at 7:17 PM, Geert Uytterhoeven
>> <[email protected]> wrote:
>>> On Fri, Jun 18, 2010 at 17:22, richard -rw- weinberger
>>> <[email protected]> wrote:
>>>> On Fri, Jun 18, 2010 at 4:27 PM, Geert Uytterhoeven
>>>> <[email protected]> wrote:
>>>>> On Fri, Jun 18, 2010 at 15:49, richard -rw- weinberger
>>>>> <[email protected]> wrote:
>>>>>> Andrew, Linus, Jeff, ... anyone?
>>>>>> Please apply this patch.
>>>>>>
>>>>>> CONFIG_STATIC_LINK is still broken. :(
>>>>>
>>>>> I wanted to verify Tim's patch, but after enabling CONFIG_STATIC_LINK,
>>>>> it fails to link
>>>>> (with or without your patch):
>>>>>
>>>>
>>>> BTW: Does CONFIG_STATIC_LINK work for you when you revert commit
>>>> 5d150a97f9391f5bcd7ba0d59d7a11c3de3cea80 (um: Clean up linker script
>>>> using standard macros)?
>>>
>>> Still the same linking errors ;-(
>>>
>>
>> Are you using a non-x86 environment?
>> Maybe CONFIG_STATIC_LINK is more broken than i thought.
>
> I'm using amd64 on Ubuntu 10.04.
>
On my CentOS 5 x86_64 i get no linking error.
Sadly I don't have a 64bits Ubuntu machine.
--
Cheers,
//richard
On Fri, Jun 18, 2010 at 10:01 PM, Geert Uytterhoeven
<[email protected]> wrote:
> On Fri, Jun 18, 2010 at 19:50, richard -rw- weinberger
> <[email protected]> wrote:
>> On Fri, Jun 18, 2010 at 7:17 PM, Geert Uytterhoeven
>> <[email protected]> wrote:
>>> On Fri, Jun 18, 2010 at 17:22, richard -rw- weinberger
>>> <[email protected]> wrote:
>>>> On Fri, Jun 18, 2010 at 4:27 PM, Geert Uytterhoeven
>>>> <[email protected]> wrote:
>>>>> On Fri, Jun 18, 2010 at 15:49, richard -rw- weinberger
>>>>> <[email protected]> wrote:
>>>>>> Andrew, Linus, Jeff, ... anyone?
>>>>>> Please apply this patch.
>>>>>>
>>>>>> CONFIG_STATIC_LINK is still broken. :(
>>>>>
>>>>> I wanted to verify Tim's patch, but after enabling CONFIG_STATIC_LINK,
>>>>> it fails to link
>>>>> (with or without your patch):
>>>>>
>>>>
>>>> BTW: Does CONFIG_STATIC_LINK work for you when you revert commit
>>>> 5d150a97f9391f5bcd7ba0d59d7a11c3de3cea80 (um: Clean up linker script
>>>> using standard macros)?
>>>
>>> Still the same linking errors ;-(
>>>
>>
>> Are you using a non-x86 environment?
>> Maybe CONFIG_STATIC_LINK is more broken than i thought.
>
> I'm using amd64 on Ubuntu 10.04.
>
Can please you test this patch?
http://groups.google.com/group/fa.linux.kernel/browse_thread/thread/03cd264b00551949?pli=1
--
Cheers,
//richard
On Sat, Jun 19, 2010 at 00:23, richard -rw- weinberger
<[email protected]> wrote:
> On Fri, Jun 18, 2010 at 10:01 PM, Geert Uytterhoeven
> <[email protected]> wrote:
>> On Fri, Jun 18, 2010 at 19:50, richard -rw- weinberger
>> <[email protected]> wrote:
>>> On Fri, Jun 18, 2010 at 7:17 PM, Geert Uytterhoeven
>>> <[email protected]> wrote:
>>>> On Fri, Jun 18, 2010 at 17:22, richard -rw- weinberger
>>>> <[email protected]> wrote:
>>>>> On Fri, Jun 18, 2010 at 4:27 PM, Geert Uytterhoeven
>>>>> <[email protected]> wrote:
>>>>>> On Fri, Jun 18, 2010 at 15:49, richard -rw- weinberger
>>>>>> <[email protected]> wrote:
>>>>>>> Andrew, Linus, Jeff, ... anyone?
>>>>>>> Please apply this patch.
>>>>>>>
>>>>>>> CONFIG_STATIC_LINK is still broken. :(
>>>>>>
>>>>>> I wanted to verify Tim's patch, but after enabling CONFIG_STATIC_LINK,
>>>>>> it fails to link
>>>>>> (with or without your patch):
>>>>>>
>>>>>
>>>>> BTW: Does CONFIG_STATIC_LINK work for you when you revert commit
>>>>> 5d150a97f9391f5bcd7ba0d59d7a11c3de3cea80 (um: Clean up linker script
>>>>> using standard macros)?
>>>>
>>>> Still the same linking errors ;-(
>>>>
>>>
>>> Are you using a non-x86 environment?
>>> Maybe CONFIG_STATIC_LINK is more broken than i thought.
>>
>> I'm using amd64 on Ubuntu 10.04.
>>
>
> Can please you test this patch?
> http://groups.google.com/group/fa.linux.kernel/browse_thread/thread/03cd264b00551949?pli=1
Matthew's patch fixes the linking problem for me.
Interestingly, CONFIG_STATIC_LINK=y now boots fine for me, with and
without Tim's patch?
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
On Sat, Jun 19, 2010 at 10:59 AM, Geert Uytterhoeven
<[email protected]> wrote:
> On Sat, Jun 19, 2010 at 00:23, richard -rw- weinberger
> <[email protected]> wrote:
>> On Fri, Jun 18, 2010 at 10:01 PM, Geert Uytterhoeven
>> <[email protected]> wrote:
>>> On Fri, Jun 18, 2010 at 19:50, richard -rw- weinberger
>>> <[email protected]> wrote:
>>>> On Fri, Jun 18, 2010 at 7:17 PM, Geert Uytterhoeven
>>>> <[email protected]> wrote:
>>>>> On Fri, Jun 18, 2010 at 17:22, richard -rw- weinberger
>>>>> <[email protected]> wrote:
>>>>>> On Fri, Jun 18, 2010 at 4:27 PM, Geert Uytterhoeven
>>>>>> <[email protected]> wrote:
>>>>>>> On Fri, Jun 18, 2010 at 15:49, richard -rw- weinberger
>>>>>>> <[email protected]> wrote:
>>>>>>>> Andrew, Linus, Jeff, ... anyone?
>>>>>>>> Please apply this patch.
>>>>>>>>
>>>>>>>> CONFIG_STATIC_LINK is still broken. :(
>>>>>>>
>>>>>>> I wanted to verify Tim's patch, but after enabling CONFIG_STATIC_LINK,
>>>>>>> it fails to link
>>>>>>> (with or without your patch):
>>>>>>>
>>>>>>
>>>>>> BTW: Does CONFIG_STATIC_LINK work for you when you revert commit
>>>>>> 5d150a97f9391f5bcd7ba0d59d7a11c3de3cea80 (um: Clean up linker script
>>>>>> using standard macros)?
>>>>>
>>>>> Still the same linking errors ;-(
>>>>>
>>>>
>>>> Are you using a non-x86 environment?
>>>> Maybe CONFIG_STATIC_LINK is more broken than i thought.
>>>
>>> I'm using amd64 on Ubuntu 10.04.
>>>
>>
>> Can please you test this patch?
>> http://groups.google.com/group/fa.linux.kernel/browse_thread/thread/03cd264b00551949?pli=1
>
> Matthew's patch fixes the linking problem for me.
>
> Interestingly, CONFIG_STATIC_LINK=y now boots fine for me, with and
> without Tim's patch?
Tim's patch fixes the issue on x86 and Matthew's patch fixes it on amd64.
I'll combine both patches and test them also on some other archs.
--
Cheers,
//richard