Fork us on GitHub Follow us on Facebook Follow us on Twitter

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


Ignore:
Timestamp:
2011-04-30T16:12:19Z (11 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master
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/ia32/_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        debug PT_NOTE;
    1321}
    1422
    1523SECTIONS {
    16 #ifdef LOADER
     24#if defined(LOADER) || defined(DLEXE)
    1725        .interp : {
    1826                *(.interp);
    1927        } :interp
    20 
     28#endif
     29#ifdef LOADER
    2130        . = 0x70001000 + SIZEOF_HEADERS;
    2231#else
     
    3140                *(.rodata .rodata.*);
    3241        } :text
     42
     43#if defined(SHLIB) || defined(DLEXE)
     44        .rel.plt : {
     45                *(.rel.plt);
     46        }
     47        /*
     48         *.rel.dyn MUST FOLLOW IMMEDIATELY after .rel.plt
     49         * without alignment gap or DT_REL will be broken
     50         */
     51        .rel.dyn : {
     52                *(.rel.*);
     53        } :text
    3354       
     55        .plt : {
     56                *(.plt);
     57        } :text
     58       
     59        .dynsym : {
     60                *(.dynsym);
     61        } :text
     62       
     63        .dynstr : {
     64                *(.dynstr);
     65        } :text
     66#endif
    3467        . = . + 0x1000;
     68       
     69#if defined(SHLIB) || defined(DLEXE)
     70        .dynamic : {
     71                *(.dynamic);
     72        } :data :dynamic
     73#endif
    3574       
    3675        .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 = .;
     
    49102       
    50103        _tls_alignment = ALIGNOF(.tdata);
     104#endif
    51105       
    52106        .bss : {
     
    68122#endif
    69123       
     124#if defined(SHLIB)
     125#elif defined(DLEXE)
     126        /DISCARD/ : {
     127                *(.comment);
     128        }
     129#else
    70130        /DISCARD/ : {
    71131                *(*);
    72132        }
     133#endif
    73134}
Note: See TracChangeset for help on using the changeset viewer.