> Do we never need data from a .h file?
> If we do name it wakeup.lds.S and kbuild
> will fix it (assuming we have wakeup.lds
> as a prerequisite where it is needed.

Ok, I got it to work... but notice the ugly #undef :-(.

                                                        Pavel

diff --git a/arch/x86/kernel/acpi/realmode/Makefile 
b/arch/x86/kernel/acpi/realmode/Makefile
index b239f0f..0e4742b 100644
--- a/arch/x86/kernel/acpi/realmode/Makefile
+++ b/arch/x86/kernel/acpi/realmode/Makefile
@@ -46,7 +46,10 @@ KBUILD_AFLAGS        := $(KBUILD_CFLAGS) -D__AS
 WAKEUP_OBJS = $(addprefix $(obj)/,$(wakeup-y))
 
 LDFLAGS_wakeup.elf     := -T
-$(obj)/wakeup.elf: $(src)/wakeup.ld $(WAKEUP_OBJS) FORCE
+
+CPPFLAGS_wakeup.lds += -P -C
+
+$(obj)/wakeup.elf: $(src)/wakeup.lds $(WAKEUP_OBJS) FORCE
        $(call if_changed,ld)
 
 OBJCOPYFLAGS_wakeup.bin        := -O binary
diff --git a/arch/x86/kernel/acpi/realmode/wakeup.ld 
b/arch/x86/kernel/acpi/realmode/wakeup.ld
deleted file mode 100644
--- /dev/null
+++ b/arch/x86/kernel/acpi/realmode/wakeup.lds.S
@@ -0,0 +1,62 @@
+/*
+ * wakeup.ld
+ *
+ * Linker script for the real-mode wakeup code
+ */
+#undef i386
+
+OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
+OUTPUT_ARCH(i386)
+ENTRY(_start)
+
+SECTIONS
+{
+       . = 0x3f00;
+       .header : {
+                *(.header)
+       }
+
+       . = 0;
+       .text : {
+                *(.text*)
+       }
+
+       . = ALIGN(16);
+       .rodata : {
+               *(.rodata*)
+       }
+
+       .videocards : {
+               video_cards = .;
+               *(.videocards)
+               video_cards_end = .;
+       }
+
+       . = ALIGN(16);
+       .data : {
+                *(.data*)
+       }
+
+       .signature : {
+               end_signature = .;
+               LONG(0x65a22c82)
+       }
+
+       . = ALIGN(16);
+       .bss :  {
+               __bss_start = .;
+               *(.bss)
+               __bss_end = .;
+       }
+
+       . = ALIGN(16);
+       _end = .;
+
+       /DISCARD/ : {
+               *(.note*)
+       }
+
+       /* Adjust this as appropriate */
+       /* This allows 4 pages (16K) */
+       . = ASSERT(_end <= 0x4000, "Wakeup too big!");
+}


> > +
> > +   . = 0;
> > +   .text           : { *(.text*) }
> > +
> > +   . = ALIGN(16);
> Why?
> > +   .rodata         : { *(.rodata*) }
> > +
> > +   .videocards     : {
> > +           video_cards = .;
> > +           *(.videocards)
> > +           video_cards_end = .;
> > +   }
> > +
> > +   . = ALIGN(16);
> Why?
> > +   .data           : { *(.data*) }
> > +
> > +   .signature      : {
> > +           end_signature = .;
> > +           LONG(0x65a22c82)
> > +   }
> > +
> > +   . = ALIGN(16);
> Why?
> > +   .bss            :
> > +   {
> > +           __bss_start = .;
> > +           *(.bss)
> > +           __bss_end = .;
> > +   }
> > +
> > +   . = ALIGN(16);
> Why?
> > +   _end = .;
> > +
> > +   /DISCARD/ : { *(.note*) }
> > +
> > +   /* Adjust this as appropriate */
> > +   /* This allows 4 pages (16K) */
> > +   . = ASSERT(_end <= 0x4000, "Wakeup too big!");
> PAGE_SIZE * 4?
> 
> 
>       Sam

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to