Re: 2.6.26-rc1 on x86: ld: warning: dot moved backwards before `.text'

Cyrill Gorcunov
2008-05-11T15:57:34Z

[Sam Ravnborg - Sat, May 10, 2008 at 11:16:02PM +0200]
| On Sat, May 10, 2008 at 01:25:53PM -0700, H. Peter Anvin wrote:
| > Mikael Pettersson wrote:
| > >
| > >The resulting kernel hasn't broken on me yet, however.
| > >
| > >A search through the LKML archives showed that this was reported
| > >for 2.6.25-rc3-mm1, but I couldn't find any discussion about it
| > >after that:
| > >
| > ><http://marc.info/?l=linux-kernel&m=120470303728010&w=2>
| > >
| > >The .config causing this warning is available in
| > ><http://user.it.uu.se/~mikpe/linux/ale/config-2.6.26-rc1>
| > >
| >
| > This is because the organization of the file was changed, and the linker
| > script wasn't changed to match:
| >
| > SECTIONS
| > {
| > . = HEADER_OFFSET;
| > .header : {
| > *(.header)
| > }
| >
| > . = 0;
| > .text : {
| > *(.text*)
| > }
| >
| > This is crap; the sections should be listed *in order* so the linker can
| > warn properly when something bad happens.
| >
| > The code should be correct; reorganizing the linker script correctly
| > should fix the problem.
|
| I need Pavel to comment on this.
| Why we start with . equal 0x3f00 and then later as . equals 0x0000
| I dunno.
| I did not look into this part of the code back then - but I should anyway
| have seen this flaw in the linker script :-(
|
| Sam

Should not it be something like
---

diff --git a/arch/x86/kernel/acpi/realmode/wakeup.lds.S b/arch/x86/kernel/acpi/realmode/wakeup.lds.S
index 22fab6c..cccf62d 100644
--- a/arch/x86/kernel/acpi/realmode/wakeup.lds.S
+++ b/arch/x86/kernel/acpi/realmode/wakeup.lds.S
@@ -12,11 +12,6 @@ ENTRY(_start)

SECTIONS
{
- . = HEADER_OFFSET;
- .header : {
- *(.header)
- }
-
. = 0;
.text : {
*(.text*)
@@ -53,6 +48,11 @@ SECTIONS
. = ALIGN(16);
_end = .;

+ . = HEADER_OFFSET;
+ .header : {
+ *(.header)
+ }
+
/DISCARD/ : {
*(.note*)
}
---
- Cyrill -