Changeset 729f774f in mainline


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.

Location:
uspace
Files:
6 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • uspace/Makefile.common

    r4ddbea7 r729f774f  
    101101BASE_LIBS = $(LIBC_PREFIX)/libc.so.0 $(LIBSOFTINT_PREFIX)/libsoftint.a
    102102LFLAGS = -Bdynamic
    103 LINKER_SCRIPT ?= $(LIBC_PREFIX)/shared/arch/$(UARCH)/_link.ld
     103LINKER_SCRIPT ?= $(LIBC_PREFIX)/arch/$(UARCH)/_link-dlexe.ld
    104104else
    105105BASE_LIBS = $(LIBC_PREFIX)/libc.a $(LIBSOFTINT_PREFIX)/libsoftint.a
     
    217217endif
    218218
    219 $(LOUTPUT): $(LARCHIVE) $(LIBC_PREFIX)/shared/arch/$(UARCH)/_lib.ld
    220         $(LD) -T $(LIBC_PREFIX)/shared/arch/$(UARCH)/_lib.ld $(LIB_LFLAGS) $(LARCHIVE) -o $@ -Map $(LOUTPUT).map
     219$(LOUTPUT): $(LARCHIVE) $(LIBC_PREFIX)/arch/$(UARCH)/_link-shlib.ld
     220        $(LD) -T $(LIBC_PREFIX)/arch/$(UARCH)/_link-shlib.ld $(LIB_LFLAGS) $(LARCHIVE) -o $@ -Map $(LOUTPUT).map
    221221endif
    222222
  • uspace/lib/c/Makefile

    r4ddbea7 r729f774f  
    4444LINKER_SCRIPTS = \
    4545        $(LIBC_PREFIX)/arch/$(UARCH)/_link.ld \
    46         $(LIBC_PREFIX)/arch/$(UARCH)/_link-loader.ld
     46        $(LIBC_PREFIX)/arch/$(UARCH)/_link-loader.ld \
     47        $(LIBC_PREFIX)/arch/$(UARCH)/_link-shlib.ld \
     48        $(LIBC_PREFIX)/arch/$(UARCH)/_link-dlexe.ld
    4749
    4850PRE_DEPEND = $(INCLUDE_KERNEL) $(INCLUDE_ARCH) $(INCLUDE_LIBARCH) $(INCLUDE_RTLDARCH) $(COMMON_HEADER_ARCH)
     
    159161        $(GCC) $(DEFS) $(CFLAGS) -DLIBC_PATH=$(CURDIR) -DLOADER -E -x c $< | grep -v "^\#" > $@
    160162
     163$(LIBC_PREFIX)/arch/$(UARCH)/_link-shlib.ld: $(LIBC_PREFIX)/arch/$(UARCH)/_link.ld.in
     164        $(GCC) $(DEFS) $(CFLAGS) -DLIBC_PATH=$(CURDIR) -DSHLIB -E -x c $< | grep -v "^\#" > $@
     165
     166$(LIBC_PREFIX)/arch/$(UARCH)/_link-dlexe.ld: $(LIBC_PREFIX)/arch/$(UARCH)/_link.ld.in
     167        $(GCC) $(DEFS) $(CFLAGS) -DLIBC_PATH=$(CURDIR) -DDLEXE -E -x c $< | grep -v "^\#" > $@
     168
    161169$(COMMON_HEADER_ARCH): $(COMMON_HEADER)
    162170        ln -sfn ../../../$< $@
  • 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}
  • uspace/lib/c/arch/mips32/_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        . = 0x70004000 + 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        . = . + 0x4000;
     67       
     68#if defined(SHLIB) || defined(DLEXE)
     69        .dynamic : {
     70                *(.dynamic);
     71        } :data :dynamic
     72#endif
    3473       
    3574        .data : {
     
    4382        } :data
    4483       
     84#ifndef DLEXE
    4585        .tdata : {
    4686                _tdata_start = .;
     
    5696       
    5797        _tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
    58        
     98#endif
    5999        .sbss : {
    60100                *(.scommon);
     
    67107        } :data
    68108       
     109#if defined(SHLIB)
     110#elif defined(DLEXE)
     111        /DISCARD/ : {
     112                *(.comment);
     113        }
     114#else
    69115        /DISCARD/ : {
    70116                *(*);
    71117        }
     118#endif
    72119}
  • 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.