Changeset 729f774f in mainline for uspace/lib/c/arch/ppc32/_link.ld.in


Ignore:
Timestamp:
2011-04-30T16:12:19Z (13 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
15b3761
Parents:
4ddbea7
Message:

Merge linker script sources for shared libs and dynamicaly linked executables
into the default one.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/arch/ppc32/_link.ld.in

    r4ddbea7 r729f774f  
     1#ifndef SHLIB
    12STARTUP(LIBC_PATH/arch/UARCH/src/entry.o)
    23ENTRY(__entry)
     4#endif
    35
    46PHDRS {
    5 #ifdef LOADER
     7#if defined(LOADER)
    68        interp PT_INTERP;
    79        text PT_LOAD FILEHDR PHDRS FLAGS(5);
     10#elif defined(DLEXE)
     11        interp PT_INTERP;
     12        text PT_LOAD FLAGS(5);
    813#else
    914        text PT_LOAD FLAGS(5);
    1015#endif
    1116        data PT_LOAD FLAGS(6);
     17#if defined(SHLIB) || defined(DLEXE)
     18        dynamic PT_DYNAMIC;
     19#endif
    1220}
    1321
    1422SECTIONS {
    15 #ifdef LOADER
     23#if defined(LOADER) || defined(DLEXE)
    1624        .interp : {
    1725                *(.interp);
    1826        } :interp
    19        
     27#endif
     28#ifdef LOADER
    2029        . = 0x70001000 + SIZEOF_HEADERS;
    2130#else
     
    3140        } :text
    3241       
     42#if defined(SHLIB) || defined(DLEXE)
     43        .rel.plt : {
     44                *(.rel.plt);
     45        }
     46        /*
     47         *.rel.dyn MUST FOLLOW IMMEDIATELY after .rel.plt
     48         * without alignment gap or DT_REL will be broken
     49         */
     50        .rel.dyn : {
     51                *(.rel.*);
     52        } :text
     53       
     54        .plt : {
     55                *(.plt);
     56        } :text
     57       
     58        .dynsym : {
     59                *(.dynsym);
     60        } :text
     61       
     62        .dynstr : {
     63                *(.dynstr);
     64        } :text
     65#endif
    3366        . = . + 0x1000;
     67       
     68#if defined(SHLIB) || defined(DLEXE)
     69        .dynamic : {
     70                *(.dynamic);
     71        } :data :dynamic
     72#endif
    3473       
    3574        .data : {
     
    3877        } :data
    3978       
     79#if defined(SHLIB) || defined(DLEXE)
     80        .data.rel : {
     81                *(.data.rel);
     82        } :data
     83       
     84        .got : {
     85                *(.got);
     86        } :data
     87        .got.plt : {
     88                *(.got.plt);
     89        } :data
     90#endif
     91       
     92#ifndef DLEXE
    4093        .tdata : {
    4194                _tdata_start = .;
     
    48101       
    49102        _tls_alignment = ALIGNOF(.tdata);
     103#endif
    50104       
    51105        .bss : {
     
    55109        } :data
    56110       
     111#if defined(SHLIB)
     112#elif defined(DLEXE)
     113        /DISCARD/ : {
     114                *(.comment);
     115        }
     116#else
    57117        /DISCARD/ : {
    58118                *(*);
    59119        }
     120#endif
    60121}
Note: See TracChangeset for help on using the changeset viewer.