Changeset 43c6268 in rtems


Ignore:
Timestamp:
Jul 9, 2013, 7:53:08 AM (6 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.11, master
Children:
287bbb6
Parents:
fb664a2
git-author:
Sebastian Huber <sebastian.huber@…> (07/09/13 07:53:08)
git-committer:
Sebastian Huber <sebastian.huber@…> (12/16/13 14:15:00)
Message:

bsps/powerpc: Use ALIGN_WITH_INPUT

This requires at least Binutils 2.24.

Location:
c/src/lib/libbsp/powerpc
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/powerpc/qoriq/start/start.S

    rfb664a2 r43c6268  
    8989        bl      copy
    9090
    91         /* Copy small read-only data */
    92         LWI     r3, bsp_section_sdata2_begin
    93         LWI     r4, bsp_section_sdata2_load_begin
    94         LWI     r5, bsp_section_sdata2_size
    95         bl      copy
    96 
    9791        /* Copy fast data */
    9892        LWI     r3, bsp_section_fast_data_begin
     
    10599        LWI     r4, bsp_section_data_load_begin
    106100        LWI     r5, bsp_section_data_size
    107         bl      copy
    108 
    109         /* Copy small data */
    110         LWI     r3, bsp_section_sdata_begin
    111         LWI     r4, bsp_section_sdata_load_begin
    112         LWI     r5, bsp_section_sdata_size
    113101        bl      copy
    114102
  • c/src/lib/libbsp/powerpc/qoriq/startup/mmu-config.c

    rfb664a2 r43c6268  
    8585        ENTRY_R(bsp_section_rodata_load_begin, bsp_section_rodata_size),
    8686        ENTRY_R(bsp_section_rodata_begin, bsp_section_rodata_size),
    87         ENTRY_R(bsp_section_sdata2_load_begin, bsp_section_sdata2_size),
    88         ENTRY_R(bsp_section_sdata2_begin, bsp_section_sdata2_size),
    8987        ENTRY_R(bsp_section_fast_data_load_begin, bsp_section_fast_data_size),
    9088        ENTRY_RW(bsp_section_fast_data_begin, bsp_section_fast_data_size),
    9189        ENTRY_R(bsp_section_data_load_begin, bsp_section_data_size),
    9290        ENTRY_RW(bsp_section_data_begin, bsp_section_data_size),
    93         ENTRY_R(bsp_section_sdata_load_begin, bsp_section_sdata_size),
    94         ENTRY_RW(bsp_section_sdata_begin, bsp_section_sdata_size),
    9591        ENTRY_RW(bsp_section_sbss_begin, bsp_section_sbss_size),
    9692        ENTRY_RW(bsp_section_bss_begin, bsp_section_bss_size),
  • c/src/lib/libbsp/powerpc/shared/include/linker-symbols.h

    rfb664a2 r43c6268  
    88
    99/*
    10  * Copyright (c) 2010-2012 embedded brains GmbH.  All rights reserved.
     10 * Copyright (c) 2010-2013 embedded brains GmbH.  All rights reserved.
    1111 *
    1212 *  embedded brains GmbH
    13  *  Obere Lagerstr. 30
     13 *  Donrierstr. 4
    1414 *  82178 Puchheim
    1515 *  Germany
     
    6262LINKER_SYMBOL(bsp_section_rodata_load_end)
    6363
    64 LINKER_SYMBOL(bsp_section_sdata2_begin)
    65 LINKER_SYMBOL(bsp_section_sdata2_end)
    66 LINKER_SYMBOL(bsp_section_sdata2_size)
    67 LINKER_SYMBOL(bsp_section_sdata2_load_begin)
    68 LINKER_SYMBOL(bsp_section_sdata2_load_end)
    69 
    7064LINKER_SYMBOL(bsp_section_fast_data_begin)
    7165LINKER_SYMBOL(bsp_section_fast_data_end)
     
    7973LINKER_SYMBOL(bsp_section_data_load_begin)
    8074LINKER_SYMBOL(bsp_section_data_load_end)
    81 
    82 LINKER_SYMBOL(bsp_section_sdata_begin)
    83 LINKER_SYMBOL(bsp_section_sdata_end)
    84 LINKER_SYMBOL(bsp_section_sdata_size)
    85 LINKER_SYMBOL(bsp_section_sdata_load_begin)
    86 LINKER_SYMBOL(bsp_section_sdata_load_end)
    8775
    8876LINKER_SYMBOL(bsp_section_bss_begin)
  • c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base

    rfb664a2 r43c6268  
    4040
    4141SECTIONS {
    42         .start : {
     42        .start : ALIGN_WITH_INPUT {
    4343                bsp_section_start_begin = .;
    4444                KEEP (*(.bsp_start_text))
     
    4848        bsp_section_start_size = bsp_section_start_end - bsp_section_start_begin;
    4949
    50         .xbarrier : {
     50        .xbarrier : ALIGN_WITH_INPUT {
    5151                . = ALIGN (bsp_section_xbarrier_align);
    5252        } > REGION_TEXT
    5353
    54         .text : ALIGN(32) {
     54        .text : ALIGN_WITH_INPUT {
    5555                bsp_section_text_begin = .;
    56 
    5756                *(SORT(.bsp_text*))
    58 
    59                 /* .text */
    6057                *(.text.unlikely .text.*_unlikely)
    6158                *(.text .stub .text.* .gnu.linkonce.t.*)
    6259                *(.gnu.warning)
    6360                *(.glink)
    64 
    65                 /* .init */
     61        } > REGION_TEXT AT > REGION_TEXT_LOAD
     62        .init : ALIGN_WITH_INPUT {
    6663                KEEP (*(.init))
    67 
    68                 /* .fini */
     64        } > REGION_TEXT AT > REGION_TEXT_LOAD
     65        .fini : ALIGN_WITH_INPUT {
    6966                PROVIDE (_fini = .);
    7067                KEEP (*(.fini))
    71 
    7268                bsp_section_text_end = .;
    7369        } > REGION_TEXT AT > REGION_TEXT_LOAD
     
    7672        bsp_section_text_load_end = bsp_section_text_load_begin + bsp_section_text_size;
    7773
    78         .fast_text : ALIGN(32) {
     74        .fast_text : ALIGN_WITH_INPUT {
    7975                bsp_section_fast_text_begin = .;
    8076                *(.bsp_fast_text)
     
    8581        bsp_section_fast_text_load_end = bsp_section_fast_text_load_begin + bsp_section_fast_text_size;
    8682
    87         .robarrier : {
     83        .robarrier : ALIGN_WITH_INPUT {
    8884                . = ALIGN (bsp_section_robarrier_align);
    8985        } > REGION_RODATA
    9086
    91         .rodata : ALIGN(32) {
     87        .rodata : ALIGN_WITH_INPUT {
    9288                bsp_section_rodata_begin = .;
    93 
    9489                *(SORT(.bsp_rodata*))
    95 
    96                 /* .rodata */
    9790                *(.rodata .rodata.* .gnu.linkonce.r.*)
    98 
    99                 /* .rodata1 */
     91        } > REGION_RODATA AT > REGION_RODATA_LOAD
     92        .rodata1 : ALIGN_WITH_INPUT {
    10093                *(.rodata1)
    101 
    102                 /* .eh_frame_hdr */
     94        } > REGION_RODATA AT > REGION_RODATA_LOAD
     95        .sdata2 : ALIGN_WITH_INPUT {
     96                PROVIDE (_SDA2_BASE_ = 32768);
     97                *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
     98        } > REGION_RODATA AT > REGION_RODATA_LOAD
     99        .sbss2 : ALIGN_WITH_INPUT {
     100                *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
     101        } > REGION_RODATA AT > REGION_RODATA_LOAD
     102        .eh_frame_hdr : ALIGN_WITH_INPUT {
    103103                *(.eh_frame_hdr)
    104 
    105                 /* .eh_frame */
     104        } > REGION_RODATA AT > REGION_RODATA_LOAD
     105        .eh_frame : ALIGN_WITH_INPUT {
    106106                KEEP (*(.eh_frame))
    107 
    108                 /* .gcc_except_table */
     107        } > REGION_RODATA AT > REGION_RODATA_LOAD
     108        .gcc_except_table : ALIGN_WITH_INPUT {
    109109                *(.gcc_except_table .gcc_except_table.*)
    110 
    111                 /* .tdata */
     110        } > REGION_RODATA AT > REGION_RODATA_LOAD
     111        .tdata : ALIGN_WITH_INPUT {
    112112                *(.tdata .tdata.* .gnu.linkonce.td.*)
    113 
    114                 /* .tbss */
     113        } > REGION_RODATA AT > REGION_RODATA_LOAD
     114        .tbss : ALIGN_WITH_INPUT {
    115115                *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
    116 
    117                 /* .preinit_array */
     116        } > REGION_RODATA AT > REGION_RODATA_LOAD
     117        .preinit_array : ALIGN_WITH_INPUT {
    118118                PROVIDE_HIDDEN (__preinit_array_start = .);
    119119                KEEP (*(.preinit_array))
    120120                PROVIDE_HIDDEN (__preinit_array_end = .);
    121 
    122                 /* .init_array */
     121        } > REGION_RODATA AT > REGION_RODATA_LOAD
     122        .init_array : ALIGN_WITH_INPUT {
    123123                PROVIDE_HIDDEN (__init_array_start = .);
    124124                KEEP (*(SORT(.init_array.*)))
    125125                KEEP (*(.init_array))
    126126                PROVIDE_HIDDEN (__init_array_end = .);
    127 
    128                 /* .fini_array */
     127        } > REGION_RODATA AT > REGION_RODATA_LOAD
     128        .fini_array : ALIGN_WITH_INPUT {
    129129                PROVIDE_HIDDEN (__fini_array_start = .);
    130130                KEEP (*(SORT(.fini_array.*)))
    131131                KEEP (*(.fini_array))
    132132                PROVIDE_HIDDEN (__fini_array_end = .);
    133 
    134                 /* .ctors */
     133        } > REGION_RODATA AT > REGION_RODATA_LOAD
     134        .ctors : ALIGN_WITH_INPUT {
    135135                KEEP (*crtbegin.o(.ctors))
    136136                KEEP (*crtbegin?.o(.ctors))
     
    138138                KEEP (*(SORT(.ctors.*)))
    139139                KEEP (*(.ctors))
    140 
    141                 /* .dtors */
     140        } > REGION_RODATA AT > REGION_RODATA_LOAD
     141        .dtors : ALIGN_WITH_INPUT {
    142142                KEEP (*crtbegin.o(.dtors))
    143143                KEEP (*crtbegin?.o(.dtors))
     
    145145                KEEP (*(SORT(.dtors.*)))
    146146                KEEP (*(.dtors))
    147 
    148                 /* .jcr */
     147        } > REGION_RODATA AT > REGION_RODATA_LOAD
     148        .jcr : ALIGN_WITH_INPUT {
    149149                KEEP (*(.jcr))
    150 
    151                 /* .data.rel.ro */
     150        } > REGION_RODATA AT > REGION_RODATA_LOAD
     151        .data.rel.ro : ALIGN_WITH_INPUT {
    152152                *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*)
    153 
    154                 /* .fixpup */
     153        } > REGION_RODATA AT > REGION_RODATA_LOAD
     154        .fixup : ALIGN_WITH_INPUT {
    155155                *(.fixup)
    156 
    157                 /* .dynamic */
     156        } > REGION_RODATA AT > REGION_RODATA_LOAD
     157        .dynamic : ALIGN_WITH_INPUT {
    158158                *(.dynamic)
    159 
    160                 /* .got1 */
     159        } > REGION_RODATA AT > REGION_RODATA_LOAD
     160        .got1 : ALIGN_WITH_INPUT {
    161161                *(.got1)
    162 
    163                 /* .got2 */
     162        } > REGION_RODATA AT > REGION_RODATA_LOAD
     163        .got2 : ALIGN_WITH_INPUT {
    164164                *(.got2)
    165 
    166                 /* .got */
     165        } > REGION_RODATA AT > REGION_RODATA_LOAD
     166        .got : ALIGN_WITH_INPUT {
    167167                *(.got)
    168 
    169                 /* .plt */
     168        } > REGION_RODATA AT > REGION_RODATA_LOAD
     169        .plt : ALIGN_WITH_INPUT {
    170170                *(.plt)
    171 
    172                 /* .iptl */
     171        } > REGION_RODATA AT > REGION_RODATA_LOAD
     172        .iplt : ALIGN_WITH_INPUT {
    173173                *(.iplt)
    174 
    175                 /* .interp */
     174        } > REGION_RODATA AT > REGION_RODATA_LOAD
     175        .interp : ALIGN_WITH_INPUT {
    176176                *(.interp)
    177 
    178                 /* .note.gnu.build-id */
     177        } > REGION_RODATA AT > REGION_RODATA_LOAD
     178        .note.gnu.build-id : ALIGN_WITH_INPUT {
    179179                *(.note.gnu.build-id)
    180 
    181                 /* .hash */
     180        } > REGION_RODATA AT > REGION_RODATA_LOAD
     181        .hash : ALIGN_WITH_INPUT {
    182182                *(.hash)
    183 
    184                 /* .gnu.hash */
     183        } > REGION_RODATA AT > REGION_RODATA_LOAD
     184        .gnu.hash : ALIGN_WITH_INPUT {
    185185                *(.gnu.hash)
    186 
    187                 /* .dynsym */
     186        } > REGION_RODATA AT > REGION_RODATA_LOAD
     187        .dynsym : ALIGN_WITH_INPUT {
    188188                *(.dynsym)
    189 
    190                 /* .dynstr */
     189        } > REGION_RODATA AT > REGION_RODATA_LOAD
     190        .dynstr : ALIGN_WITH_INPUT {
    191191                *(.dynstr)
    192 
    193                 /* .gnu.version */
     192        } > REGION_RODATA AT > REGION_RODATA_LOAD
     193        .gnu.version : ALIGN_WITH_INPUT {
    194194                *(.gnu.version)
    195 
    196                 /* .gnu.version_d */
     195        } > REGION_RODATA AT > REGION_RODATA_LOAD
     196        .gnu.version_d : ALIGN_WITH_INPUT {
    197197                *(.gnu.version_d)
    198 
    199                 /* .gnu.version_r */
     198        } > REGION_RODATA AT > REGION_RODATA_LOAD
     199        .gnu.version_r : ALIGN_WITH_INPUT {
    200200                *(.gnu.version_r)
    201 
    202                 /* .rela.dyn */
     201        } > REGION_RODATA AT > REGION_RODATA_LOAD
     202        .rela.dyn : ALIGN_WITH_INPUT {
    203203                *(.rela.init)
    204204                *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
     
    223223                *(.rela.iplt)
    224224                PROVIDE_HIDDEN (__rela_iplt_end = .);
    225 
    226                 /* .rela.plt */
     225        } > REGION_RODATA AT > REGION_RODATA_LOAD
     226        .rela.plt : ALIGN_WITH_INPUT {
    227227                *(.rela.plt)
    228 
     228        } > REGION_RODATA AT > REGION_RODATA_LOAD
     229        .robsdsets : ALIGN_WITH_INPUT {
    229230                /* Special FreeBSD linker set sections */
    230231                __start_set_sysctl_set = .;
     
    246247        bsp_section_rodata_load_end = bsp_section_rodata_load_begin + bsp_section_rodata_size;
    247248
    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 
    264         .rwbarrier : {
     249        .rwbarrier : ALIGN_WITH_INPUT {
    265250                . = ALIGN (bsp_section_rwbarrier_align);
    266251        } > REGION_DATA
    267252
    268         .fast_data : ALIGN(32) {
     253        .fast_data : ALIGN_WITH_INPUT {
    269254                bsp_section_fast_data_begin = .;
    270255                *(SORT(.bsp_fast_data*))
     
    275260        bsp_section_fast_data_load_end = bsp_section_fast_data_load_begin + bsp_section_fast_data_size;
    276261
    277         .data : ALIGN(32) {
     262        .data : ALIGN_WITH_INPUT {
    278263                bsp_section_data_begin = .;
    279 
    280264                *(SORT(.bsp_data*))
    281 
    282                 /* .data */
    283265                *(.data .data.* .gnu.linkonce.d.*)
    284266                SORT(CONSTRUCTORS)
    285 
    286                 /* .data1 */
     267        } > REGION_DATA AT > REGION_DATA_LOAD
     268        .data1 : ALIGN_WITH_INPUT {
    287269                *(.data1)
    288 
     270        } > REGION_DATA AT > REGION_DATA_LOAD
     271        .rwbsdsets : ALIGN_WITH_INPUT {
    289272                /* Special FreeBSD linker set sections */
    290273                _bsd__start_set_sysinit_set = .;
    291274                *(_bsd_set_sysinit_set);
    292275                _bsd__stop_set_sysinit_set = .;
    293 
     276        } > REGION_DATA AT > REGION_DATA_LOAD
     277        .sdata : ALIGN_WITH_INPUT {
     278                PROVIDE (_SDA_BASE_ = 32768);
     279                *(.sdata .sdata.* .gnu.linkonce.s.*)
    294280                bsp_section_data_end = .;
    295281        } > REGION_DATA AT > REGION_DATA_LOAD
     
    298284        bsp_section_data_load_end = bsp_section_data_load_begin + bsp_section_data_size;
    299285
    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;
    312 
    313         .sbss : {
     286        .sbss : ALIGN_WITH_INPUT {
    314287                bsp_section_sbss_begin = .;
    315288                *(.dynsbss)
     
    320293        bsp_section_sbss_size = bsp_section_sbss_end - bsp_section_sbss_begin;
    321294
    322         .bss : {
     295        .bss : ALIGN_WITH_INPUT {
    323296                bsp_section_bss_begin = .;
    324297                *(.dynbss)
     
    329302        bsp_section_bss_size = bsp_section_bss_end - bsp_section_bss_begin;
    330303
    331         .rwextra : {
     304        .rwextra : ALIGN_WITH_INPUT {
    332305                bsp_section_rwextra_begin = .;
    333306                *(.bsp_rwextra)
     
    336309        bsp_section_rwextra_size = bsp_section_rwextra_end - bsp_section_rwextra_begin;
    337310
    338         .work : {
     311        .work : ALIGN_WITH_INPUT {
    339312                /*
    340313                 * The work section will occupy the remaining REGION_WORK region and
     
    347320        bsp_section_work_size = bsp_section_work_end - bsp_section_work_begin;
    348321
    349         .stack : {
     322        .stack : ALIGN_WITH_INPUT {
    350323                /*
    351324                 * The stack section will occupy the remaining REGION_STACK region and may
     
    359332        bsp_section_stack_size = bsp_section_stack_end - bsp_section_stack_begin;
    360333
    361         .nocache : {
     334        .nocache : ALIGN_WITH_INPUT {
    362335                bsp_section_nocache_begin = .;
    363336                *(SORT(.bsp_nocache*))
     
    368341        bsp_section_nocache_load_end = bsp_section_nocache_load_begin + bsp_section_nocache_size;
    369342
    370         .nvram (NOLOAD) : {
     343        .nvram (NOLOAD) : ALIGN_WITH_INPUT {
    371344                bsp_section_nvram_begin = .;
    372345                *(SORT(.bsp_nvram*))
  • c/src/lib/libbsp/powerpc/t32mppc/start/start.S

    rfb664a2 r43c6268  
    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 
    5549        /* Copy fast data */
    5650        LWI     r3, bsp_section_fast_data_begin
     
    6357        LWI     r4, bsp_section_data_load_begin
    6458        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
    7159        bl      copy
    7260
Note: See TracChangeset for help on using the changeset viewer.