On Fri, Dec 07, 2007 at 12:39:36PM -0800, Ed Swierk wrote:
> Here is another attempt that does not rely on the --build-id option,
> incorporating Marc's workaround in src/arch/i386/lib/id.lds for the
> .id allocation issue.

The patch is missing the original Signed-off-by from Marc, and your
Signed-off-by.


> Index: LinuxBIOSv2-2571/src/config/linuxbios_ram.ld
> ===================================================================
> --- LinuxBIOSv2-2571.orig/src/config/linuxbios_ram.ld
> +++ LinuxBIOSv2-2571/src/config/linuxbios_ram.ld
> @@ -62,6 +62,10 @@ SECTIONS
>                . = ALIGN(4);
>  
>               _erodata = .;
> +     }
> +     /* ld segfaults if we give it --build-id and then discard this section 
> */
> +     .note.gnu.build-id : {
> +             *(.note.gnu.build-id)
>       }       
>       /*
>        * After the code we place initialized data (typically initialized
> Index: LinuxBIOSv2-2571/src/arch/i386/lib/id.lds
> ===================================================================
> --- LinuxBIOSv2-2571.orig/src/arch/i386/lib/id.lds
> +++ LinuxBIOSv2-2571/src/arch/i386/lib/id.lds
> @@ -1,5 +1,10 @@
>  SECTIONS {
> -     . = (_ROMBASE + ROM_IMAGE_SIZE - 0x10) - (__id_end - __id_start);
> +     /*
> +      * . = (_ROMBASE + ROM_IMAGE_SIZE - 0x10) - (__id_end - __id_start);
> +      * This is a temporary fix. Under Fedora 8 ld does not like it if the 
> .id section is above address 0xFFFF_EF00
> +      */
> +     _ROMTEMP = 0xffffef00;
> +     . = _ROMTEMP;

This part breaks the majority of all boards in v2 (checked with abuild).

E.g. on asus/p2b:

./buildrom linuxbios.strip linuxbios.rom payload 0x10000 0x20000
linuxbios image is 192277 bytes; only 65536 allowed
Linuxbios input file larger than allowed size!
: Success
make[1]: *** [linuxbios.rom] Error 2
make[1]: Leaving directory `/tmp/v2/targets/asus/p2b/p2b/normal'
make: *** [normal/linuxbios.rom] Error 1


There must be some other way to fix this.


>       .id (.): {
>               *(.id)
>       }
> Index: LinuxBIOSv2-2571/src/arch/i386/init/ldscript.lb
> ===================================================================
> --- LinuxBIOSv2-2571.orig/src/arch/i386/init/ldscript.lb
> +++ LinuxBIOSv2-2571/src/arch/i386/init/ldscript.lb
> @@ -53,6 +53,10 @@ SECTIONS
>               _erom = .;
>       }
>  
> +     .note.gnu.build-id : {
> +             *(.note.gnu.build-id)
> +     }
> +
>       _lrom = LOADADDR(.rom);
>       _elrom = LOADADDR(.rom) + SIZEOF(.rom);
>       _iseg = _RAMBASE;
> @@ -63,5 +67,6 @@ SECTIONS
>       /DISCARD/ : {
>               *(.comment)
>               *(.note)
> +             *(.note.*)
>       }
>  }


Uwe.
-- 
http://www.hermann-uwe.de  | http://www.holsham-traders.de
http://www.crazy-hacks.org | http://www.unmaintained-free-software.org

-- 
linuxbios mailing list
linuxbios@linuxbios.org
http://www.linuxbios.org/mailman/listinfo/linuxbios

Reply via email to