Changeset cab410f in rtems


Ignore:
Timestamp:
May 21, 2013, 12:19:24 PM (7 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.11, master
Children:
0d671d70
Parents:
d9bd5cd6
git-author:
Sebastian Huber <sebastian.huber@…> (05/21/13 12:19:24)
git-committer:
Sebastian Huber <sebastian.huber@…> (05/27/13 10:49:13)
Message:

bsps: Update due to linker changes

In case the VMA and LMA regions differ, the LMA start address is now no
longer aligned with the alignment of the input sections:

http://sourceware.org/bugzilla/show_bug.cgi?id=15222

Location:
c/src/lib/libbsp
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/arm/shared/include/linker-symbols.h

    rd9bd5cd6 rcab410f  
    8484LINKER_SYMBOL(bsp_section_rodata_load_end)
    8585
     86LINKER_SYMBOL(bsp_section_armexidx_begin)
     87LINKER_SYMBOL(bsp_section_armexidx_end)
     88LINKER_SYMBOL(bsp_section_armexidx_size)
     89LINKER_SYMBOL(bsp_section_armexidx_load_begin)
     90LINKER_SYMBOL(bsp_section_armexidx_load_end)
     91
    8692LINKER_SYMBOL(bsp_section_data_begin)
    8793LINKER_SYMBOL(bsp_section_data_end)
  • c/src/lib/libbsp/arm/shared/include/start.h

    rd9bd5cd6 rcab410f  
    100100  );
    101101
     102  /* Copy .ARM.exidx section */
     103  bsp_start_memcpy(
     104    (int *) bsp_section_armexidx_begin,
     105    (const int *) bsp_section_armexidx_load_begin,
     106    (size_t) bsp_section_armexidx_size
     107  );
     108
    102109  /* Copy .data section */
    103110  bsp_start_memcpy(
  • c/src/lib/libbsp/arm/shared/startup/linkcmds.base

    rd9bd5cd6 rcab410f  
    8383        bsp_section_fast_text_load_end = bsp_section_fast_text_load_begin + bsp_section_fast_text_size;
    8484
    85         .text : {
     85        .text : ALIGN(32) {
    8686                bsp_section_text_begin = .;
     87
     88                /* .text */
    8789                *(.text.unlikely .text.*_unlikely)
    8890                *(.text .stub .text.* .gnu.linkonce.t.*)
     
    9092                *(.gnu.warning)
    9193                *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)
    92         } > REGION_TEXT AT > REGION_TEXT_LOAD
    93         .init : {
     94
     95                /* .init */
    9496                KEEP (*(.init))
    95         } > REGION_TEXT AT > REGION_TEXT_LOAD
    96         .fini : {
     97
     98                /* .fini */
    9799                KEEP (*(.fini))
     100
    98101                bsp_section_text_end = .;
    99102        } > REGION_TEXT AT > REGION_TEXT_LOAD
     
    106109        } > REGION_RODATA
    107110
    108         .rodata : {
     111        .rodata : ALIGN(32) {
    109112                bsp_section_rodata_begin = .;
     113
     114                /* .rodata */
    110115                *(.rodata .rodata.* .gnu.linkonce.r.*)
    111         } > REGION_RODATA AT > REGION_RODATA_LOAD
    112         .rodata1 : {
     116
     117                /* .rodata1 */
    113118                *(.rodata1)
    114         } > REGION_RODATA AT > REGION_RODATA_LOAD
    115         .ARM.extab : {
     119
     120                /* .ARM.extab */
    116121                *(.ARM.extab* .gnu.linkonce.armextab.*)
    117         } > REGION_RODATA AT > REGION_RODATA_LOAD
    118         .ARM.exidx : {
    119                 __exidx_start = .;
    120                 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
    121                 __exidx_end = .;
    122         } > REGION_RODATA AT > REGION_RODATA_LOAD
    123         .eh_frame : {
     122
     123                /* .eh_frame */
    124124                KEEP (*(.eh_frame))
    125         } > REGION_RODATA AT > REGION_RODATA_LOAD
    126         .gcc_except_table : {
     125
     126                /* .gcc_except_table */
    127127                *(.gcc_except_table .gcc_except_table.*)
    128         } > REGION_RODATA AT > REGION_RODATA_LOAD
    129         .preinit_array : {
     128
     129                /* .tdata */
     130                *(.tdata .tdata.* .gnu.linkonce.td.*)
     131
     132                /* .tbss */
     133                *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
     134
     135                /* .preinit_array */
    130136                PROVIDE_HIDDEN (__preinit_array_start = .);
    131137                KEEP (*(.preinit_array))
    132138                PROVIDE_HIDDEN (__preinit_array_end = .);
    133         } > REGION_RODATA AT > REGION_RODATA_LOAD
    134         .init_array : {
     139
     140                /* .init_array */
    135141                PROVIDE_HIDDEN (__init_array_start = .);
    136142                KEEP (*(SORT(.init_array.*)))
    137143                KEEP (*(.init_array))
    138144                PROVIDE_HIDDEN (__init_array_end = .);
    139         } > REGION_RODATA AT > REGION_RODATA_LOAD
    140         .fini_array : {
     145
     146                /* .fini_array */
    141147                PROVIDE_HIDDEN (__fini_array_start = .);
    142148                KEEP (*(.fini_array))
    143149                KEEP (*(SORT(.fini_array.*)))
    144150                PROVIDE_HIDDEN (__fini_array_end = .);
    145         } > REGION_RODATA AT > REGION_RODATA_LOAD
    146         .ctors : {
     151
     152                /* .ctors */
    147153                /* gcc uses crtbegin.o to find the start of
    148154                   the constructors, so we make sure it is
     
    163169                KEEP (*(SORT(.ctors.*)))
    164170                KEEP (*(.ctors))
    165         } > REGION_RODATA AT > REGION_RODATA_LOAD
    166         .dtors : {
     171
     172                /* .dtors */
    167173                KEEP (*crtbegin.o(.dtors))
    168174                KEEP (*crtbegin?.o(.dtors))
     
    170176                KEEP (*(SORT(.dtors.*)))
    171177                KEEP (*(.dtors))
    172         } > REGION_RODATA AT > REGION_RODATA_LOAD
    173         .data.rel.ro : {
     178
     179                /* .data.rel.ro */
    174180                *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*)
    175181                *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*)
    176         } > REGION_RODATA AT > REGION_RODATA_LOAD
    177         .jcr : {
     182
     183                /* .jcr */
    178184                KEEP (*(.jcr))
    179         } > REGION_RODATA AT > REGION_RODATA_LOAD
    180         .dynamic : {
     185
     186                /* .dynamic */
    181187                *(.dynamic)
    182         } > REGION_RODATA AT > REGION_RODATA_LOAD
    183         .got : {
     188
     189                /* .got */
    184190                *(.got.plt) *(.igot.plt) *(.got) *(.igot)
    185         } > REGION_RODATA AT > REGION_RODATA_LOAD
    186         .interp : {
     191
     192                /* .interp */
    187193                *(.interp)
    188         } > REGION_RODATA AT > REGION_RODATA_LOAD
    189         .note.gnu.build-id : {
     194
     195                /* .note.gnu.build-id */
    190196                *(.note.gnu.build-id)
    191         } > REGION_RODATA AT > REGION_RODATA_LOAD
    192         .hash : {
     197
     198                /* .hash */
    193199                *(.hash)
    194         } > REGION_RODATA AT > REGION_RODATA_LOAD
    195         .gnu.hash : {
     200
     201                /* .gnu.hash */
    196202                *(.gnu.hash)
    197         } > REGION_RODATA AT > REGION_RODATA_LOAD
    198         .dynsym : {
     203
     204                /* .dynsym */
    199205                *(.dynsym)
    200         } > REGION_RODATA AT > REGION_RODATA_LOAD
    201         .dynstr : {
     206
     207                /* .dynstr */
    202208                *(.dynstr)
    203         } > REGION_RODATA AT > REGION_RODATA_LOAD
    204         .gnu.version : {
     209
     210                /* .gnu.version */
    205211                *(.gnu.version)
    206         } > REGION_RODATA AT > REGION_RODATA_LOAD
    207         .gnu.version_d : {
     212
     213                /* .gnu.version_d */
    208214                *(.gnu.version_d)
    209         } > REGION_RODATA AT > REGION_RODATA_LOAD
    210         .gnu.version_r : {
     215
     216                /* .gnu.version_r */
    211217                *(.gnu.version_r)
    212         } > REGION_RODATA AT > REGION_RODATA_LOAD
    213         .rel.dyn : {
     218
     219                /* .rel.dyn */
    214220                *(.rel.init)
    215221                *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
     
    229235                PROVIDE_HIDDEN (__rela_iplt_start = .);
    230236                PROVIDE_HIDDEN (__rela_iplt_end = .);
    231         } > REGION_RODATA AT > REGION_RODATA_LOAD
    232         .rela.dyn : {
     237
     238                /* .rela.dyn */
    233239                *(.rela.init)
    234240                *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
     
    247253                *(.rela.iplt)
    248254                PROVIDE_HIDDEN (__rela_iplt_end = .);
    249         } > REGION_RODATA AT > REGION_RODATA_LOAD
    250         .rel.plt : {
     255
     256                /* .rel.plt */
    251257                *(.rel.plt)
    252         } > REGION_RODATA AT > REGION_RODATA_LOAD
    253         .rela.plt : {
     258
     259                /* .rela.plt */
    254260                *(.rela.plt)
    255         } > REGION_RODATA AT > REGION_RODATA_LOAD
    256         .plt : {
     261
     262                /* .plt */
    257263                *(.plt)
    258         } > REGION_RODATA AT > REGION_RODATA_LOAD
    259         .iplt : {
     264
     265                /* .iplt */
    260266                *(.iplt)
    261         } > REGION_RODATA AT > REGION_RODATA_LOAD
    262         .robsdsets : {
     267
    263268                /* Special FreeBSD linker set sections */
    264269                __start_set_sysctl_set = .;
     
    280285        bsp_section_rodata_load_end = bsp_section_rodata_load_begin + bsp_section_rodata_size;
    281286
     287        .ARM.exidx : ALIGN(32) {
     288                bsp_section_armexidx_begin = .;
     289
     290                /* .ARM.exidx */
     291                __exidx_start = .;
     292                *(.ARM.exidx* .gnu.linkonce.armexidx.*)
     293                __exidx_end = .;
     294
     295                bsp_section_armexidx_end = .;
     296        } > REGION_RODATA AT > REGION_RODATA_LOAD
     297        bsp_section_armexidx_size = bsp_section_armexidx_end - bsp_section_armexidx_begin;
     298        bsp_section_armexidx_load_begin = LOADADDR (.ARM.exidx);
     299        bsp_section_armexidx_load_end = bsp_section_armexidx_load_begin + bsp_section_armexidx_size;
     300
    282301        .rwbarrier : {
    283302                . = ALIGN (bsp_section_rwbarrier_align);
     
    316335
    317336                *(.bsp_vector)
     337
    318338                bsp_section_vector_end = .;
    319339        } > REGION_VECTOR AT > REGION_VECTOR
     
    322342        bsp_vector_table_end = bsp_vector_table_begin + bsp_vector_table_size;
    323343
    324         .fast_data : {
     344        .fast_data : ALIGN(32) {
    325345                bsp_section_fast_data_begin = .;
    326346                *(.bsp_fast_data)
     
    331351        bsp_section_fast_data_load_end = bsp_section_fast_data_load_begin + bsp_section_fast_data_size;
    332352
    333         .data : {
     353        .data : ALIGN(32) {
    334354                bsp_section_data_begin = .;
     355
     356                /* .data */
    335357                *(.data .data.* .gnu.linkonce.d.*)
    336358                SORT(CONSTRUCTORS)
    337         } > REGION_DATA AT > REGION_DATA_LOAD
    338         .data1 : {
     359
     360                /* .data1 */
    339361                *(.data1)
    340         } > REGION_DATA AT > REGION_DATA_LOAD
    341         .rwbsdsets : {
     362
    342363                /* Special FreeBSD linker set sections */
    343364                _bsd__start_set_sysinit_set = .;
     
    347368                bsp_section_data_end = .;
    348369        } > REGION_DATA AT > REGION_DATA_LOAD
    349         .tdata : {
    350                 *(.tdata .tdata.* .gnu.linkonce.td.*)
    351         } > REGION_DATA AT > REGION_DATA_LOAD
    352370        bsp_section_data_size = bsp_section_data_end - bsp_section_data_begin;
    353371        bsp_section_data_load_begin = LOADADDR (.data);
    354372        bsp_section_data_load_end = bsp_section_data_load_begin + bsp_section_data_size;
    355373
    356         .tbss : {
    357                 *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
    358         } > REGION_BSS AT > REGION_BSS
    359374        .bss : {
    360375                bsp_section_bss_begin = .;
     376
     377                /* .bss */
    361378                *(.dynbss)
    362379                *(.bss .bss.* .gnu.linkonce.b.*)
    363380                *(COMMON)
     381
    364382                bsp_section_bss_end = .;
    365383        } > REGION_BSS AT > REGION_BSS
  • c/src/lib/libbsp/powerpc/qoriq/start/start.S

    rd9bd5cd6 rcab410f  
    8484        bl      copy
    8585
     86        /* Copy small read-only data */
     87        LWI     r3, bsp_section_sdata2_begin
     88        LWI     r4, bsp_section_sdata2_load_begin
     89        LWI     r5, bsp_section_sdata2_size
     90        bl      copy
     91
    8692        /* Copy fast data */
    8793        LWI     r3, bsp_section_fast_data_begin
     
    94100        LWI     r4, bsp_section_data_load_begin
    95101        LWI     r5, bsp_section_data_size
     102        bl      copy
     103
     104        /* Copy small data */
     105        LWI     r3, bsp_section_sdata_begin
     106        LWI     r4, bsp_section_sdata_load_begin
     107        LWI     r5, bsp_section_sdata_size
    96108        bl      copy
    97109
  • c/src/lib/libbsp/powerpc/qoriq/startup/mmu-config.c

    rd9bd5cd6 rcab410f  
    7979        ENTRY_R(bsp_section_rodata_load_begin, bsp_section_rodata_size),
    8080        ENTRY_R(bsp_section_rodata_begin, bsp_section_rodata_size),
     81        ENTRY_R(bsp_section_sdata2_load_begin, bsp_section_sdata2_size),
     82        ENTRY_R(bsp_section_sdata2_begin, bsp_section_sdata2_size),
    8183        ENTRY_R(bsp_section_fast_data_load_begin, bsp_section_fast_data_size),
    8284        ENTRY_RW(bsp_section_fast_data_begin, bsp_section_fast_data_size),
    8385        ENTRY_R(bsp_section_data_load_begin, bsp_section_data_size),
    8486        ENTRY_RW(bsp_section_data_begin, bsp_section_data_size),
     87        ENTRY_R(bsp_section_sdata_load_begin, bsp_section_sdata_size),
     88        ENTRY_RW(bsp_section_sdata_begin, bsp_section_sdata_size),
    8589        ENTRY_RW(bsp_section_sbss_begin, bsp_section_sbss_size),
    8690        ENTRY_RW(bsp_section_bss_begin, bsp_section_bss_size),
  • c/src/lib/libbsp/powerpc/shared/include/linker-symbols.h

    rd9bd5cd6 rcab410f  
    6262LINKER_SYMBOL(bsp_section_rodata_load_end)
    6363
     64LINKER_SYMBOL(bsp_section_sdata2_begin)
     65LINKER_SYMBOL(bsp_section_sdata2_end)
     66LINKER_SYMBOL(bsp_section_sdata2_size)
     67LINKER_SYMBOL(bsp_section_sdata2_load_begin)
     68LINKER_SYMBOL(bsp_section_sdata2_load_end)
     69
    6470LINKER_SYMBOL(bsp_section_fast_data_begin)
    6571LINKER_SYMBOL(bsp_section_fast_data_end)
     
    7379LINKER_SYMBOL(bsp_section_data_load_begin)
    7480LINKER_SYMBOL(bsp_section_data_load_end)
     81
     82LINKER_SYMBOL(bsp_section_sdata_begin)
     83LINKER_SYMBOL(bsp_section_sdata_end)
     84LINKER_SYMBOL(bsp_section_sdata_size)
     85LINKER_SYMBOL(bsp_section_sdata_load_begin)
     86LINKER_SYMBOL(bsp_section_sdata_load_end)
    7587
    7688LINKER_SYMBOL(bsp_section_bss_begin)
  • c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base

    rd9bd5cd6 rcab410f  
    88
    99/*
    10  * Copyright (c) 2011-2012 embedded brains GmbH.  All rights reserved.
     10 * Copyright (c) 2011-2013 embedded brains GmbH.  All rights reserved.
    1111 *
    1212 *  embedded brains GmbH
     
    5252        } > REGION_TEXT
    5353
    54         .text : {
     54        .text : ALIGN(32) {
    5555                bsp_section_text_begin = .;
     56
    5657                *(SORT(.bsp_text*))
     58
     59                /* .text */
    5760                *(.text.unlikely .text.*_unlikely)
    5861                *(.text .stub .text.* .gnu.linkonce.t.*)
    5962                *(.gnu.warning)
    6063                *(.glink)
    61         } > REGION_TEXT AT > REGION_TEXT_LOAD
    62         .init : {
     64
     65                /* .init */
    6366                KEEP (*(.init))
    64         } > REGION_TEXT AT > REGION_TEXT_LOAD
    65         .fini : {
     67
     68                /* .fini */
    6669                PROVIDE (_fini = .);
    6770                KEEP (*(.fini))
     71
    6872                bsp_section_text_end = .;
    6973        } > REGION_TEXT AT > REGION_TEXT_LOAD
     
    7276        bsp_section_text_load_end = bsp_section_text_load_begin + bsp_section_text_size;
    7377
    74         .fast_text : {
     78        .fast_text : ALIGN(32) {
    7579                bsp_section_fast_text_begin = .;
    7680                *(.bsp_fast_text)
     
    8589        } > REGION_RODATA
    8690
    87         .rodata : {
     91        .rodata : ALIGN(32) {
    8892                bsp_section_rodata_begin = .;
     93
    8994                *(SORT(.bsp_rodata*))
     95
     96                /* .rodata */
    9097                *(.rodata .rodata.* .gnu.linkonce.r.*)
    91         } > REGION_RODATA AT > REGION_RODATA_LOAD
    92         .rodata1 : {
     98
     99                /* .rodata1 */
    93100                *(.rodata1)
    94         } > REGION_RODATA AT > REGION_RODATA_LOAD
    95         .sdata2 : {
    96                 PROVIDE (_SDA2_BASE_ = 32768);
    97                 *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
    98         } > REGION_RODATA AT > REGION_RODATA_LOAD
    99         .sbss2 : {
    100                 *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
    101         } > REGION_RODATA AT > REGION_RODATA_LOAD
    102         .eh_frame_hdr : {
     101
     102                /* .eh_frame_hdr */
    103103                *(.eh_frame_hdr)
    104         } > REGION_RODATA AT > REGION_RODATA_LOAD
    105         .eh_frame : {
     104
     105                /* .eh_frame */
    106106                KEEP (*(.eh_frame))
    107         } > REGION_RODATA AT > REGION_RODATA_LOAD
    108         .gcc_except_table : {
     107
     108                /* .gcc_except_table */
    109109                *(.gcc_except_table .gcc_except_table.*)
    110         } > REGION_RODATA AT > REGION_RODATA_LOAD
    111         .tdata : {
     110
     111                /* .tdata */
    112112                *(.tdata .tdata.* .gnu.linkonce.td.*)
    113         } > REGION_RODATA AT > REGION_RODATA_LOAD
    114         .tbss : {
     113
     114                /* .tbss */
    115115                *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
    116         } > REGION_RODATA AT > REGION_RODATA_LOAD
    117         .preinit_array : {
     116
     117                /* .preinit_array */
    118118                PROVIDE_HIDDEN (__preinit_array_start = .);
    119119                KEEP (*(.preinit_array))
    120120                PROVIDE_HIDDEN (__preinit_array_end = .);
    121         } > REGION_RODATA AT > REGION_RODATA_LOAD
    122         .init_array : {
     121
     122                /* .init_array */
    123123                PROVIDE_HIDDEN (__init_array_start = .);
    124124                KEEP (*(SORT(.init_array.*)))
    125125                KEEP (*(.init_array))
    126126                PROVIDE_HIDDEN (__init_array_end = .);
    127         } > REGION_RODATA AT > REGION_RODATA_LOAD
    128         .fini_array : {
     127
     128                /* .fini_array */
    129129                PROVIDE_HIDDEN (__fini_array_start = .);
    130130                KEEP (*(SORT(.fini_array.*)))
    131131                KEEP (*(.fini_array))
    132132                PROVIDE_HIDDEN (__fini_array_end = .);
    133         } > REGION_RODATA AT > REGION_RODATA_LOAD
    134         .ctors : {
     133
     134                /* .ctors */
    135135                KEEP (*crtbegin.o(.ctors))
    136136                KEEP (*crtbegin?.o(.ctors))
     
    138138                KEEP (*(SORT(.ctors.*)))
    139139                KEEP (*(.ctors))
    140         } > REGION_RODATA AT > REGION_RODATA_LOAD
    141         .dtors : {
     140
     141                /* .dtors */
    142142                KEEP (*crtbegin.o(.dtors))
    143143                KEEP (*crtbegin?.o(.dtors))
     
    145145                KEEP (*(SORT(.dtors.*)))
    146146                KEEP (*(.dtors))
    147         } > REGION_RODATA AT > REGION_RODATA_LOAD
    148         .jcr : {
     147
     148                /* .jcr */
    149149                KEEP (*(.jcr))
    150         } > REGION_RODATA AT > REGION_RODATA_LOAD
    151         .data.rel.ro : {
     150
     151                /* .data.rel.ro */
    152152                *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*)
    153         } > REGION_RODATA AT > REGION_RODATA_LOAD
    154         .fixup : {
     153
     154                /* .fixpup */
    155155                *(.fixup)
    156         } > REGION_RODATA AT > REGION_RODATA_LOAD
    157         .dynamic : {
     156
     157                /* .dynamic */
    158158                *(.dynamic)
    159         } > REGION_RODATA AT > REGION_RODATA_LOAD
    160         .got1 : {
     159
     160                /* .got1 */
    161161                *(.got1)
    162         } > REGION_RODATA AT > REGION_RODATA_LOAD
    163         .got2 : {
     162
     163                /* .got2 */
    164164                *(.got2)
    165         } > REGION_RODATA AT > REGION_RODATA_LOAD
    166         .got : {
     165
     166                /* .got */
    167167                *(.got)
    168         } > REGION_RODATA AT > REGION_RODATA_LOAD
    169         .plt : {
     168
     169                /* .plt */
    170170                *(.plt)
    171         } > REGION_RODATA AT > REGION_RODATA_LOAD
    172         .iplt : {
     171
     172                /* .iptl */
    173173                *(.iplt)
    174         } > REGION_RODATA AT > REGION_RODATA_LOAD
    175         .interp : {
     174
     175                /* .interp */
    176176                *(.interp)
    177         } > REGION_RODATA AT > REGION_RODATA_LOAD
    178         .note.gnu.build-id : {
     177
     178                /* .note.gnu.build-id */
    179179                *(.note.gnu.build-id)
    180         } > REGION_RODATA AT > REGION_RODATA_LOAD
    181         .hash : {
     180
     181                /* .hash */
    182182                *(.hash)
    183         } > REGION_RODATA AT > REGION_RODATA_LOAD
    184         .gnu.hash : {
     183
     184                /* .gnu.hash */
    185185                *(.gnu.hash)
    186         } > REGION_RODATA AT > REGION_RODATA_LOAD
    187         .dynsym : {
     186
     187                /* .dynsym */
    188188                *(.dynsym)
    189         } > REGION_RODATA AT > REGION_RODATA_LOAD
    190         .dynstr : {
     189
     190                /* .dynstr */
    191191                *(.dynstr)
    192         } > REGION_RODATA AT > REGION_RODATA_LOAD
    193         .gnu.version : {
     192
     193                /* .gnu.version */
    194194                *(.gnu.version)
    195         } > REGION_RODATA AT > REGION_RODATA_LOAD
    196         .gnu.version_d : {
     195
     196                /* .gnu.version_d */
    197197                *(.gnu.version_d)
    198         } > REGION_RODATA AT > REGION_RODATA_LOAD
    199         .gnu.version_r : {
     198
     199                /* .gnu.version_r */
    200200                *(.gnu.version_r)
    201         } > REGION_RODATA AT > REGION_RODATA_LOAD
    202         .rela.dyn : {
     201
     202                /* .rela.dyn */
    203203                *(.rela.init)
    204204                *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
     
    223223                *(.rela.iplt)
    224224                PROVIDE_HIDDEN (__rela_iplt_end = .);
    225         } > REGION_RODATA AT > REGION_RODATA_LOAD
    226         .rela.plt : {
     225
     226                /* .rela.plt */
    227227                *(.rela.plt)
    228         } > REGION_RODATA AT > REGION_RODATA_LOAD
    229         .robsdsets : {
     228
    230229                /* Special FreeBSD linker set sections */
    231230                __start_set_sysctl_set = .;
     
    247246        bsp_section_rodata_load_end = bsp_section_rodata_load_begin + bsp_section_rodata_size;
    248247
     248        .sdata2 : ALIGN(32) {
     249                bsp_section_sdata2_begin = .;
     250
     251                /* .sdata2 */
     252                PROVIDE (_SDA2_BASE_ = 32768);
     253                *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
     254
     255                /* .sbss2 */
     256                *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
     257
     258                bsp_section_sdata2_end = .;
     259        } > REGION_RODATA AT > REGION_RODATA_LOAD
     260        bsp_section_sdata2_size = bsp_section_sdata2_end - bsp_section_sdata2_begin;
     261        bsp_section_sdata2_load_begin = LOADADDR (.sdata2);
     262        bsp_section_sdata2_load_end = bsp_section_sdata2_load_begin + bsp_section_sdata2_size;
     263
    249264        .rwbarrier : {
    250265                . = ALIGN (bsp_section_rwbarrier_align);
    251266        } > REGION_DATA
    252267
    253         .fast_data : {
     268        .fast_data : ALIGN(32) {
    254269                bsp_section_fast_data_begin = .;
    255270                *(SORT(.bsp_fast_data*))
     
    260275        bsp_section_fast_data_load_end = bsp_section_fast_data_load_begin + bsp_section_fast_data_size;
    261276
    262         .data : {
     277        .data : ALIGN(32) {
    263278                bsp_section_data_begin = .;
     279
    264280                *(SORT(.bsp_data*))
     281
     282                /* .data */
    265283                *(.data .data.* .gnu.linkonce.d.*)
    266284                SORT(CONSTRUCTORS)
    267         } > REGION_DATA AT > REGION_DATA_LOAD
    268         .data1 : {
     285
     286                /* .data1 */
    269287                *(.data1)
    270         } > REGION_DATA AT > REGION_DATA_LOAD
    271         .rwbsdsets : {
     288
    272289                /* Special FreeBSD linker set sections */
    273290                _bsd__start_set_sysinit_set = .;
    274291                *(_bsd_set_sysinit_set);
    275292                _bsd__stop_set_sysinit_set = .;
    276         } > REGION_DATA AT > REGION_DATA_LOAD
    277         .sdata : {
    278                 PROVIDE (_SDA_BASE_ = 32768);
    279                 *(.sdata .sdata.* .gnu.linkonce.s.*)
     293
    280294                bsp_section_data_end = .;
    281295        } > REGION_DATA AT > REGION_DATA_LOAD
     
    283297        bsp_section_data_load_begin = LOADADDR (.data);
    284298        bsp_section_data_load_end = bsp_section_data_load_begin + bsp_section_data_size;
     299
     300        .sdata : ALIGN(32) {
     301                bsp_section_sdata_begin = .;
     302
     303                /* .sdata */
     304                PROVIDE (_SDA_BASE_ = 32768);
     305                *(.sdata .sdata.* .gnu.linkonce.s.*)
     306
     307                bsp_section_sdata_end = .;
     308        } > REGION_DATA AT > REGION_DATA_LOAD
     309        bsp_section_sdata_size = bsp_section_sdata_end - bsp_section_sdata_begin;
     310        bsp_section_sdata_load_begin = LOADADDR (.sdata);
     311        bsp_section_sdata_load_end = bsp_section_sdata_load_begin + bsp_section_sdata_size;
    285312
    286313        .sbss : {
  • c/src/lib/libbsp/powerpc/t32mppc/start/start.S

    rd9bd5cd6 rcab410f  
    4747        bl      copy
    4848
     49        /* Copy small read-only data */
     50        LWI     r3, bsp_section_sdata2_begin
     51        LWI     r4, bsp_section_sdata2_load_begin
     52        LWI     r5, bsp_section_sdata2_size
     53        bl      copy
     54
    4955        /* Copy fast data */
    5056        LWI     r3, bsp_section_fast_data_begin
     
    5763        LWI     r4, bsp_section_data_load_begin
    5864        LWI     r5, bsp_section_data_size
     65        bl      copy
     66
     67        /* Copy small data */
     68        LWI     r3, bsp_section_sdata_begin
     69        LWI     r4, bsp_section_sdata_load_begin
     70        LWI     r5, bsp_section_sdata_size
    5971        bl      copy
    6072
Note: See TracChangeset for help on using the changeset viewer.