diff options
| author | Kumar Gala <galak@kernel.crashing.org> | 2008-08-07 09:28:20 -0500 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2008-08-10 22:41:12 +0200 | 
| commit | c11528083ef6e55e76df742228c26e39d151813d (patch) | |
| tree | 0ba54455a5ef75491129ac3eb09a70ec4a2d30ea | |
| parent | 0bf202ec586d4466c900e987720fa635c594d689 (diff) | |
| download | olio-uboot-2014.01-c11528083ef6e55e76df742228c26e39d151813d.tar.xz olio-uboot-2014.01-c11528083ef6e55e76df742228c26e39d151813d.zip | |
mpc85xx: workaround old binutils bug
The recent change to move the .bss outside of the image gives older
binutils (ld from eldk4.1/binutils-2.16) some headache:
ppc_85xx-ld: u-boot: Not enough room for program headers (allocated 3, need 4)
ppc_85xx-ld: final link failed: Bad value
We workaround it by being explicit about the program headers and not
assigning the .bss to a program header.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| -rw-r--r-- | board/freescale/mpc8540ads/u-boot.lds | 16 | ||||
| -rw-r--r-- | board/freescale/mpc8541cds/u-boot.lds | 16 | ||||
| -rw-r--r-- | board/freescale/mpc8544ds/u-boot.lds | 16 | ||||
| -rw-r--r-- | board/freescale/mpc8548cds/u-boot.lds | 16 | ||||
| -rw-r--r-- | board/freescale/mpc8555cds/u-boot.lds | 16 | ||||
| -rw-r--r-- | board/freescale/mpc8560ads/u-boot.lds | 16 | ||||
| -rw-r--r-- | board/freescale/mpc8568mds/u-boot.lds | 16 | 
7 files changed, 77 insertions, 35 deletions
| diff --git a/board/freescale/mpc8540ads/u-boot.lds b/board/freescale/mpc8540ads/u-boot.lds index 0e4f5a245..515d32085 100644 --- a/board/freescale/mpc8540ads/u-boot.lds +++ b/board/freescale/mpc8540ads/u-boot.lds @@ -26,6 +26,12 @@  OUTPUT_ARCH(powerpc)  /* Do we need any of these for elf?     __DYNAMIC = 0;    */ +PHDRS +{ +  text PT_LOAD; +  bss PT_LOAD; +} +  SECTIONS  {    /* Read-only sections, merged into text segment: */ @@ -57,7 +63,7 @@ SECTIONS      *(.text)      *(.fixup)      *(.got1) -   } +   } :text      _etext = .;      PROVIDE (etext = .);      .rodata    : @@ -66,7 +72,7 @@ SECTIONS      *(.rodata1)      *(.rodata.str1.4)      *(.eh_frame) -  } +  } :text    .fini      : { *(.fini)    } =0    .ctors     : { *(.ctors)   }    .dtors     : { *(.dtors)   } @@ -118,12 +124,12 @@ SECTIONS    .bootpg ADDR(.text) + 0x7f000 :    {      cpu/mpc85xx/start.o	(.bootpg) -  } = 0xffff +  } :text = 0xffff    .resetvec ADDR(.text) + 0x7fffc :    {      *(.resetvec) -  } = 0xffff +  } :text = 0xffff    . = ADDR(.text) + 0x80000; @@ -134,7 +140,7 @@ SECTIONS     *(.dynbss)     *(.bss)     *(COMMON) -  } +  } :bss    . = ALIGN(4);    _end = . ; diff --git a/board/freescale/mpc8541cds/u-boot.lds b/board/freescale/mpc8541cds/u-boot.lds index 1c583de83..d728d8b73 100644 --- a/board/freescale/mpc8541cds/u-boot.lds +++ b/board/freescale/mpc8541cds/u-boot.lds @@ -23,6 +23,12 @@  OUTPUT_ARCH(powerpc)  /* Do we need any of these for elf?     __DYNAMIC = 0;    */ +PHDRS +{ +  text PT_LOAD; +  bss PT_LOAD; +} +  SECTIONS  {    /* Read-only sections, merged into text segment: */ @@ -54,7 +60,7 @@ SECTIONS      *(.text)      *(.fixup)      *(.got1) -   } +   } :text      _etext = .;      PROVIDE (etext = .);      .rodata    : @@ -63,7 +69,7 @@ SECTIONS      *(.rodata1)      *(.rodata.str1.4)      *(.eh_frame) -  } +  } :text    .fini      : { *(.fini)    } =0    .ctors     : { *(.ctors)   }    .dtors     : { *(.dtors)   } @@ -115,12 +121,12 @@ SECTIONS    .bootpg ADDR(.text) + 0x7f000 :    {      cpu/mpc85xx/start.o	(.bootpg) -  } = 0xffff +  } :text = 0xffff    .resetvec ADDR(.text) + 0x7fffc :    {      *(.resetvec) -  } = 0xffff +  } :text = 0xffff    . = ADDR(.text) + 0x80000; @@ -131,7 +137,7 @@ SECTIONS     *(.dynbss)     *(.bss)     *(COMMON) -  } +  } :bss    . = ALIGN(4);    _end = . ; diff --git a/board/freescale/mpc8544ds/u-boot.lds b/board/freescale/mpc8544ds/u-boot.lds index 500e6475a..a05ece5cf 100644 --- a/board/freescale/mpc8544ds/u-boot.lds +++ b/board/freescale/mpc8544ds/u-boot.lds @@ -23,6 +23,12 @@  OUTPUT_ARCH(powerpc)  /* Do we need any of these for elf?     __DYNAMIC = 0;    */ +PHDRS +{ +  text PT_LOAD; +  bss PT_LOAD; +} +  SECTIONS  {    /* Read-only sections, merged into text segment: */ @@ -54,7 +60,7 @@ SECTIONS      *(.text)      *(.fixup)      *(.got1) -   } +   } :text      _etext = .;      PROVIDE (etext = .);      .rodata    : @@ -63,7 +69,7 @@ SECTIONS      *(.rodata1)      *(.rodata.str1.4)      *(.eh_frame) -  } +  } :text    .fini      : { *(.fini)    } =0    .ctors     : { *(.ctors)   }    .dtors     : { *(.dtors)   } @@ -115,12 +121,12 @@ SECTIONS    .bootpg ADDR(.text) + 0x7f000 :    {      cpu/mpc85xx/start.o	(.bootpg) -  } = 0xffff +  } :text = 0xffff    .resetvec ADDR(.text) + 0x7fffc :    {      *(.resetvec) -  } = 0xffff +  } :text = 0xffff    . = ADDR(.text) + 0x80000; @@ -131,7 +137,7 @@ SECTIONS     *(.dynbss)     *(.bss)     *(COMMON) -  } +  } :bss    . = ALIGN(4);    _end = . ; diff --git a/board/freescale/mpc8548cds/u-boot.lds b/board/freescale/mpc8548cds/u-boot.lds index 6b9339511..d4a2f72a5 100644 --- a/board/freescale/mpc8548cds/u-boot.lds +++ b/board/freescale/mpc8548cds/u-boot.lds @@ -23,6 +23,12 @@  OUTPUT_ARCH(powerpc)  /* Do we need any of these for elf?     __DYNAMIC = 0;    */ +PHDRS +{ +  text PT_LOAD; +  bss PT_LOAD; +} +  SECTIONS  {    /* Read-only sections, merged into text segment: */ @@ -54,7 +60,7 @@ SECTIONS      *(.text)      *(.fixup)      *(.got1) -   } +   } :text      _etext = .;      PROVIDE (etext = .);      .rodata    : @@ -63,7 +69,7 @@ SECTIONS      *(.rodata1)      *(.rodata.str1.4)      *(.eh_frame) -  } +  } :text    .fini      : { *(.fini)    } =0    .ctors     : { *(.ctors)   }    .dtors     : { *(.dtors)   } @@ -115,12 +121,12 @@ SECTIONS    .bootpg ADDR(.text) + 0x7f000 :    {      cpu/mpc85xx/start.o	(.bootpg) -  } = 0xffff +  } :text = 0xffff    .resetvec ADDR(.text) + 0x7fffc :    {      *(.resetvec) -  } = 0xffff +  } :text = 0xffff    . = ADDR(.text) + 0x80000; @@ -131,7 +137,7 @@ SECTIONS     *(.dynbss)     *(.bss)     *(COMMON) -  } +  } :bss    . = ALIGN(4);    _end = . ; diff --git a/board/freescale/mpc8555cds/u-boot.lds b/board/freescale/mpc8555cds/u-boot.lds index a18b3a7b5..11885e820 100644 --- a/board/freescale/mpc8555cds/u-boot.lds +++ b/board/freescale/mpc8555cds/u-boot.lds @@ -23,6 +23,12 @@  OUTPUT_ARCH(powerpc)  /* Do we need any of these for elf?     __DYNAMIC = 0;    */ +PHDRS +{ +  text PT_LOAD; +  bss PT_LOAD; +} +  SECTIONS  {    /* Read-only sections, merged into text segment: */ @@ -54,7 +60,7 @@ SECTIONS      *(.text)      *(.fixup)      *(.got1) -   } +   } :text      _etext = .;      PROVIDE (etext = .);      .rodata    : @@ -63,7 +69,7 @@ SECTIONS      *(.rodata1)      *(.rodata.str1.4)      *(.eh_frame) -  } +  } :text    .fini      : { *(.fini)    } =0    .ctors     : { *(.ctors)   }    .dtors     : { *(.dtors)   } @@ -115,12 +121,12 @@ SECTIONS    .bootpg ADDR(.text) + 0x7f000 :    {      cpu/mpc85xx/start.o	(.bootpg) -  } = 0xffff +  } :text = 0xffff    .resetvec ADDR(.text) + 0x7fffc :    {      *(.resetvec) -  } = 0xffff +  } :text = 0xffff    . = ADDR(.text) + 0x80000; @@ -131,7 +137,7 @@ SECTIONS     *(.dynbss)     *(.bss)     *(COMMON) -  } +  } :bss    . = ALIGN(4);    _end = . ; diff --git a/board/freescale/mpc8560ads/u-boot.lds b/board/freescale/mpc8560ads/u-boot.lds index 0e4f5a245..515d32085 100644 --- a/board/freescale/mpc8560ads/u-boot.lds +++ b/board/freescale/mpc8560ads/u-boot.lds @@ -26,6 +26,12 @@  OUTPUT_ARCH(powerpc)  /* Do we need any of these for elf?     __DYNAMIC = 0;    */ +PHDRS +{ +  text PT_LOAD; +  bss PT_LOAD; +} +  SECTIONS  {    /* Read-only sections, merged into text segment: */ @@ -57,7 +63,7 @@ SECTIONS      *(.text)      *(.fixup)      *(.got1) -   } +   } :text      _etext = .;      PROVIDE (etext = .);      .rodata    : @@ -66,7 +72,7 @@ SECTIONS      *(.rodata1)      *(.rodata.str1.4)      *(.eh_frame) -  } +  } :text    .fini      : { *(.fini)    } =0    .ctors     : { *(.ctors)   }    .dtors     : { *(.dtors)   } @@ -118,12 +124,12 @@ SECTIONS    .bootpg ADDR(.text) + 0x7f000 :    {      cpu/mpc85xx/start.o	(.bootpg) -  } = 0xffff +  } :text = 0xffff    .resetvec ADDR(.text) + 0x7fffc :    {      *(.resetvec) -  } = 0xffff +  } :text = 0xffff    . = ADDR(.text) + 0x80000; @@ -134,7 +140,7 @@ SECTIONS     *(.dynbss)     *(.bss)     *(COMMON) -  } +  } :bss    . = ALIGN(4);    _end = . ; diff --git a/board/freescale/mpc8568mds/u-boot.lds b/board/freescale/mpc8568mds/u-boot.lds index 9d245e4ec..ad96410b2 100644 --- a/board/freescale/mpc8568mds/u-boot.lds +++ b/board/freescale/mpc8568mds/u-boot.lds @@ -23,6 +23,12 @@  OUTPUT_ARCH(powerpc)  /* Do we need any of these for elf?     __DYNAMIC = 0;    */ +PHDRS +{ +  text PT_LOAD; +  bss PT_LOAD; +} +  SECTIONS  {    /* Read-only sections, merged into text segment: */ @@ -54,7 +60,7 @@ SECTIONS      *(.text)      *(.fixup)      *(.got1) -   } +   } :text      _etext = .;      PROVIDE (etext = .);      .rodata    : @@ -63,7 +69,7 @@ SECTIONS      *(.rodata1)      *(.rodata.str1.4)      *(.eh_frame) -  } +  } :text    .fini      : { *(.fini)    } =0    .ctors     : { *(.ctors)   }    .dtors     : { *(.dtors)   } @@ -115,12 +121,12 @@ SECTIONS    .bootpg ADDR(.text) + 0x7f000 :    {      cpu/mpc85xx/start.o	(.bootpg) -  } = 0xffff +  } :text = 0xffff    .resetvec ADDR(.text) + 0x7fffc :    {      *(.resetvec) -  } = 0xffff +  } :text = 0xffff    . = ADDR(.text) + 0x80000; @@ -131,7 +137,7 @@ SECTIONS     *(.dynbss)     *(.bss)     *(COMMON) -  } +  } :bss    . = ALIGN(4);    _end = . ; |