Changeset 287bbb6 in rtems


Ignore:
Timestamp:
Aug 30, 2013, 3:43:16 PM (6 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.11, master
Children:
e4927ece
Parents:
43c6268
git-author:
Sebastian Huber <sebastian.huber@…> (08/30/13 15:43:16)
git-committer:
Sebastian Huber <sebastian.huber@…> (12/16/13 14:15:00)
Message:

bsps/arm: Use ALIGN_WITH_INPUT

This requires at least Binutils 2.24.

Location:
c/src/lib/libbsp/arm/shared
Files:
3 edited

Legend:

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

    r43c6268 r287bbb6  
    8484LINKER_SYMBOL(bsp_section_rodata_load_end)
    8585
    86 LINKER_SYMBOL(bsp_section_armexidx_begin)
    87 LINKER_SYMBOL(bsp_section_armexidx_end)
    88 LINKER_SYMBOL(bsp_section_armexidx_size)
    89 LINKER_SYMBOL(bsp_section_armexidx_load_begin)
    90 LINKER_SYMBOL(bsp_section_armexidx_load_end)
    91 
    9286LINKER_SYMBOL(bsp_section_data_begin)
    9387LINKER_SYMBOL(bsp_section_data_end)
  • c/src/lib/libbsp/arm/shared/include/start.h

    r43c6268 r287bbb6  
    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 
    109102  /* Copy .data section */
    110103  bsp_start_memcpy(
  • c/src/lib/libbsp/arm/shared/startup/linkcmds.base

    r43c6268 r287bbb6  
    6666
    6767SECTIONS {
    68         .start : {
     68        .start : ALIGN_WITH_INPUT {
    6969                bsp_section_start_begin = .;
    7070                KEEP (*(.bsp_start_text))
     
    7474        bsp_section_start_size = bsp_section_start_end - bsp_section_start_begin;
    7575
    76         .xbarrier : {
     76        .xbarrier : ALIGN_WITH_INPUT {
    7777                . = ALIGN (bsp_section_xbarrier_align);
    7878        } > REGION_VECTOR
    7979
    80         .text : ALIGN(32) {
     80        .text : ALIGN_WITH_INPUT {
    8181                bsp_section_text_begin = .;
    82 
    83                 /* .text */
    8482                *(.text.unlikely .text.*_unlikely)
    8583                *(.text .stub .text.* .gnu.linkonce.t.*)
     
    8785                *(.gnu.warning)
    8886                *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)
    89 
    90                 /* .init */
     87        } > REGION_TEXT AT > REGION_TEXT_LOAD
     88        .init : ALIGN_WITH_INPUT {
    9189                KEEP (*(.init))
    92 
    93                 /* .fini */
     90        } > REGION_TEXT AT > REGION_TEXT_LOAD
     91        .fini : ALIGN_WITH_INPUT {
    9492                KEEP (*(.fini))
    95 
    9693                bsp_section_text_end = .;
    9794        } > REGION_TEXT AT > REGION_TEXT_LOAD
     
    10097        bsp_section_text_load_end = bsp_section_text_load_begin + bsp_section_text_size;
    10198
    102         .robarrier : {
     99        .robarrier : ALIGN_WITH_INPUT {
    103100                . = ALIGN (bsp_section_robarrier_align);
    104101        } > REGION_RODATA
    105102
    106         .rodata : ALIGN(32) {
     103        .rodata : ALIGN_WITH_INPUT {
    107104                bsp_section_rodata_begin = .;
    108 
    109                 /* .rodata */
    110105                *(.rodata .rodata.* .gnu.linkonce.r.*)
    111 
    112                 /* .rodata1 */
     106        } > REGION_RODATA AT > REGION_RODATA_LOAD
     107        .rodata1 : ALIGN_WITH_INPUT {
    113108                *(.rodata1)
    114 
    115                 /* .ARM.extab */
     109        } > REGION_RODATA AT > REGION_RODATA_LOAD
     110        .ARM.extab : ALIGN_WITH_INPUT {
    116111                *(.ARM.extab* .gnu.linkonce.armextab.*)
    117 
    118                 /* .eh_frame */
     112        } > REGION_RODATA AT > REGION_RODATA_LOAD
     113        .ARM.exidx : ALIGN_WITH_INPUT {
     114                __exidx_start = .;
     115                *(.ARM.exidx* .gnu.linkonce.armexidx.*)
     116                __exidx_end = .;
     117        } > REGION_RODATA AT > REGION_RODATA_LOAD
     118        .eh_frame : ALIGN_WITH_INPUT {
    119119                KEEP (*(.eh_frame))
    120 
    121                 /* .gcc_except_table */
     120        } > REGION_RODATA AT > REGION_RODATA_LOAD
     121        .gcc_except_table : ALIGN_WITH_INPUT {
    122122                *(.gcc_except_table .gcc_except_table.*)
    123 
    124                 /* .tdata */
     123        } > REGION_RODATA AT > REGION_RODATA_LOAD
     124        .tdata : ALIGN_WITH_INPUT {
    125125                *(.tdata .tdata.* .gnu.linkonce.td.*)
    126 
    127                 /* .tbss */
     126        } > REGION_RODATA AT > REGION_RODATA_LOAD
     127        .tbss : ALIGN_WITH_INPUT {
    128128                *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
    129 
    130                 /* .preinit_array */
     129        } > REGION_RODATA AT > REGION_RODATA_LOAD
     130        .preinit_array : ALIGN_WITH_INPUT {
    131131                PROVIDE_HIDDEN (__preinit_array_start = .);
    132132                KEEP (*(.preinit_array))
    133133                PROVIDE_HIDDEN (__preinit_array_end = .);
    134 
    135                 /* .init_array */
     134        } > REGION_RODATA AT > REGION_RODATA_LOAD
     135        .init_array : ALIGN_WITH_INPUT {
    136136                PROVIDE_HIDDEN (__init_array_start = .);
    137137                KEEP (*(SORT(.init_array.*)))
    138138                KEEP (*(.init_array))
    139139                PROVIDE_HIDDEN (__init_array_end = .);
    140 
    141                 /* .fini_array */
     140        } > REGION_RODATA AT > REGION_RODATA_LOAD
     141        .fini_array : ALIGN_WITH_INPUT {
    142142                PROVIDE_HIDDEN (__fini_array_start = .);
    143143                KEEP (*(.fini_array))
    144144                KEEP (*(SORT(.fini_array.*)))
    145145                PROVIDE_HIDDEN (__fini_array_end = .);
    146 
    147                 /* .ctors */
     146        } > REGION_RODATA AT > REGION_RODATA_LOAD
     147        .ctors : ALIGN_WITH_INPUT {
    148148                /* gcc uses crtbegin.o to find the start of
    149149                   the constructors, so we make sure it is
     
    164164                KEEP (*(SORT(.ctors.*)))
    165165                KEEP (*(.ctors))
    166 
    167                 /* .dtors */
     166        } > REGION_RODATA AT > REGION_RODATA_LOAD
     167        .dtors : ALIGN_WITH_INPUT {
    168168                KEEP (*crtbegin.o(.dtors))
    169169                KEEP (*crtbegin?.o(.dtors))
     
    171171                KEEP (*(SORT(.dtors.*)))
    172172                KEEP (*(.dtors))
    173 
    174                 /* .data.rel.ro */
     173        } > REGION_RODATA AT > REGION_RODATA_LOAD
     174        .data.rel.ro : ALIGN_WITH_INPUT {
    175175                *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*)
    176176                *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*)
    177 
    178                 /* .jcr */
     177        } > REGION_RODATA AT > REGION_RODATA_LOAD
     178        .jcr : ALIGN_WITH_INPUT {
    179179                KEEP (*(.jcr))
    180 
    181                 /* .interp */
     180        } > REGION_RODATA AT > REGION_RODATA_LOAD
     181        .interp : ALIGN_WITH_INPUT {
    182182                *(.interp)
    183 
    184                 /* .note.gnu.build-id */
     183        } > REGION_RODATA AT > REGION_RODATA_LOAD
     184        .note.gnu.build-id : ALIGN_WITH_INPUT {
    185185                *(.note.gnu.build-id)
    186 
    187                 /* .hash */
     186        } > REGION_RODATA AT > REGION_RODATA_LOAD
     187        .hash : ALIGN_WITH_INPUT {
    188188                *(.hash)
    189 
    190                 /* .gnu.hash */
     189        } > REGION_RODATA AT > REGION_RODATA_LOAD
     190        .gnu.hash : ALIGN_WITH_INPUT {
    191191                *(.gnu.hash)
    192 
    193                 /* .dynsym */
     192        } > REGION_RODATA AT > REGION_RODATA_LOAD
     193        .dynsym : ALIGN_WITH_INPUT {
    194194                *(.dynsym)
    195 
    196                 /* .dynstr */
     195        } > REGION_RODATA AT > REGION_RODATA_LOAD
     196        .dynstr : ALIGN_WITH_INPUT {
    197197                *(.dynstr)
    198 
    199                 /* .gnu.version */
     198        } > REGION_RODATA AT > REGION_RODATA_LOAD
     199        .gnu.version : ALIGN_WITH_INPUT {
    200200                *(.gnu.version)
    201 
    202                 /* .gnu.version_d */
     201        } > REGION_RODATA AT > REGION_RODATA_LOAD
     202        .gnu.version_d : ALIGN_WITH_INPUT {
    203203                *(.gnu.version_d)
    204 
    205                 /* .gnu.version_r */
     204        } > REGION_RODATA AT > REGION_RODATA_LOAD
     205        .gnu.version_r : ALIGN_WITH_INPUT {
    206206                *(.gnu.version_r)
    207 
    208                 /* .rel.dyn */
     207        } > REGION_RODATA AT > REGION_RODATA_LOAD
     208        .rel.dyn : ALIGN_WITH_INPUT {
    209209                *(.rel.init)
    210210                *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
     
    224224                PROVIDE_HIDDEN (__rela_iplt_start = .);
    225225                PROVIDE_HIDDEN (__rela_iplt_end = .);
    226 
    227                 /* .rela.dyn */
     226        } > REGION_RODATA AT > REGION_RODATA_LOAD
     227        .rela.dyn : ALIGN_WITH_INPUT {
    228228                *(.rela.init)
    229229                *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
     
    242242                *(.rela.iplt)
    243243                PROVIDE_HIDDEN (__rela_iplt_end = .);
    244 
    245                 /* .rel.plt */
     244        } > REGION_RODATA AT > REGION_RODATA_LOAD
     245        .rel.plt : ALIGN_WITH_INPUT {
    246246                *(.rel.plt)
    247 
    248                 /* .rela.plt */
     247        } > REGION_RODATA AT > REGION_RODATA_LOAD
     248        .rela.plt : ALIGN_WITH_INPUT {
    249249                *(.rela.plt)
    250 
    251                 /* .plt */
     250        } > REGION_RODATA AT > REGION_RODATA_LOAD
     251        .plt : ALIGN_WITH_INPUT {
    252252                *(.plt)
    253 
    254                 /* .iplt */
     253        } > REGION_RODATA AT > REGION_RODATA_LOAD
     254        .iplt : ALIGN_WITH_INPUT {
    255255                *(.iplt)
    256 
    257                 /* .dynamic */
     256        } > REGION_RODATA AT > REGION_RODATA_LOAD
     257        .dynamic : ALIGN_WITH_INPUT {
    258258                *(.dynamic)
    259 
    260                 /* .got */
     259        } > REGION_RODATA AT > REGION_RODATA_LOAD
     260        .got : ALIGN_WITH_INPUT {
    261261                *(.got.plt) *(.igot.plt) *(.got) *(.igot)
    262 
     262        } > REGION_RODATA AT > REGION_RODATA_LOAD
     263        .robsdsets : ALIGN_WITH_INPUT {
    263264                /* Special FreeBSD linker set sections */
    264265                __start_set_sysctl_set = .;
     
    280281        bsp_section_rodata_load_end = bsp_section_rodata_load_begin + bsp_section_rodata_size;
    281282
    282         .ARM.exidx : ALIGN(32) {
    283                 bsp_section_armexidx_begin = .;
    284 
    285                 /* .ARM.exidx */
    286                 __exidx_start = .;
    287                 *(.ARM.exidx* .gnu.linkonce.armexidx.*)
    288                 __exidx_end = .;
    289 
    290                 bsp_section_armexidx_end = .;
    291         } > REGION_RODATA AT > REGION_RODATA_LOAD
    292         bsp_section_armexidx_size = bsp_section_armexidx_end - bsp_section_armexidx_begin;
    293         bsp_section_armexidx_load_begin = LOADADDR (.ARM.exidx);
    294         bsp_section_armexidx_load_end = bsp_section_armexidx_load_begin + bsp_section_armexidx_size;
    295 
    296         .rwbarrier : {
     283        .rwbarrier : ALIGN_WITH_INPUT {
    297284                . = ALIGN (bsp_section_rwbarrier_align);
    298285        } > REGION_DATA
    299286
    300         .vector : {
     287        .vector : ALIGN_WITH_INPUT {
    301288                bsp_section_vector_begin = .;
    302289
     
    334321
    335322                *(.bsp_vector)
    336 
    337323                bsp_section_vector_end = .;
    338324        } > REGION_VECTOR AT > REGION_VECTOR
     
    341327        bsp_vector_table_end = bsp_vector_table_begin + bsp_vector_table_size;
    342328
    343         .fast_text : {
     329        .fast_text : ALIGN_WITH_INPUT {
    344330                bsp_section_fast_text_begin = .;
    345331                *(.bsp_fast_text)
     
    350336        bsp_section_fast_text_load_end = bsp_section_fast_text_load_begin + bsp_section_fast_text_size;
    351337
    352         .fast_data : ALIGN(32) {
     338        .fast_data : ALIGN_WITH_INPUT {
    353339                bsp_section_fast_data_begin = .;
    354340                *(.bsp_fast_data)
     
    359345        bsp_section_fast_data_load_end = bsp_section_fast_data_load_begin + bsp_section_fast_data_size;
    360346
    361         .data : ALIGN(32) {
     347        .data : ALIGN_WITH_INPUT {
    362348                bsp_section_data_begin = .;
    363 
    364                 /* .data */
    365349                *(.data .data.* .gnu.linkonce.d.*)
    366350                SORT(CONSTRUCTORS)
    367 
    368                 /* .data1 */
     351        } > REGION_DATA AT > REGION_DATA_LOAD
     352        .data1 : ALIGN_WITH_INPUT {
    369353                *(.data1)
    370 
     354        } > REGION_DATA AT > REGION_DATA_LOAD
     355        .rwbsdsets : ALIGN_WITH_INPUT {
    371356                /* Special FreeBSD linker set sections */
    372357                _bsd__start_set_sysinit_set = .;
     
    380365        bsp_section_data_load_end = bsp_section_data_load_begin + bsp_section_data_size;
    381366
    382         .bss : {
     367        .bss : ALIGN_WITH_INPUT {
    383368                bsp_section_bss_begin = .;
    384 
    385                 /* .bss */
    386369                *(.dynbss)
    387370                *(.bss .bss.* .gnu.linkonce.b.*)
    388371                *(COMMON)
    389 
    390372                bsp_section_bss_end = .;
    391373        } > REGION_BSS AT > REGION_BSS
    392374        bsp_section_bss_size = bsp_section_bss_end - bsp_section_bss_begin;
    393375
    394         .work : {
     376        .work : ALIGN_WITH_INPUT {
    395377                /*
    396378                 * The work section will occupy the remaining REGION_WORK region and
     
    403385        bsp_section_work_size = bsp_section_work_end - bsp_section_work_begin;
    404386
    405         .stack : {
     387        .stack : ALIGN_WITH_INPUT {
    406388                /*
    407389                 * The stack section will occupy the remaining REGION_STACK region and may
Note: See TracChangeset for help on using the changeset viewer.