Changeset 1e00216 in mainline


Ignore:
Timestamp:
2011-02-02T20:35:31Z (13 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
86d7bfa
Parents:
c5f0bff
Message:

add support for line number debug information into linker scripts (ia32, amd64; both kernel & uspace)
add basic support for PT_NOTE into ELF loaders (both kernel & uspace)

Files:
8 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia32/_link.ld.in

    rc5f0bff r1e00216  
    4949        }
    5050       
     51#ifdef CONFIG_LINE_DEBUG
     52        .comment 0 : { *(.comment); }
     53        .debug_abbrev 0 : { *(.debug_abbrev); }
     54        .debug_aranges 0 : { *(.debug_aranges); }
     55        .debug_info 0 : { *(.debug_info); }
     56        .debug_line 0 : { *(.debug_line); }
     57        .debug_loc 0 : { *(.debug_loc); }
     58        .debug_pubnames 0 : { *(.debug_pubnames); }
     59        .debug_pubtypes 0 : { *(.debug_pubtypes); }
     60        .debug_ranges 0 : { *(.debug_ranges); }
     61        .debug_str 0 : { *(.debug_str); }
     62#endif
     63       
    5164        /DISCARD/ : {
    52                 *(.note.GNU-stack);
    53                 *(.comment);
     65                *(*);
    5466        }
    5567       
  • kernel/generic/src/lib/elf.c

    rc5f0bff r1e00216  
    157157        case PT_NULL:
    158158        case PT_PHDR:
     159        case PT_NOTE:
    159160                break;
    160161        case PT_LOAD:
     
    173174                break;
    174175        case PT_SHLIB:
    175         case PT_NOTE:
    176176        case PT_LOPROC:
    177177        case PT_HIPROC:
  • uspace/Makefile.common

    rc5f0bff r1e00216  
    135135endif
    136136
     137ifeq ($(CONFIG_LINE_DEBUG),y)
     138        GCC_CFLAGS += -g
     139        ICC_CFLAGS += -g
     140        SUNCC_CFLAGS += -g
     141        CLANG_CFLAGS += -g
     142endif
     143
    137144## Setup platform configuration
    138145#
  • uspace/lib/c/arch/amd64/_link.ld.in

    rc5f0bff r1e00216  
    55        text PT_LOAD FLAGS(5);
    66        data PT_LOAD FLAGS(6);
     7        debug PT_NOTE;
    78}
    89
     
    1314                *(.init);
    1415        } :text
     16       
    1517        .text : {
    1618                *(.text);
    1719                *(.rodata*);
    1820        } :text
    19 
     21       
    2022        . = . + 0x1000;
    21 
     23       
    2224        .data : {
    2325                *(.data);
    2426        } :data
     27       
    2528        .tdata : {
    2629                _tdata_start = .;
     
    3134                _tbss_end = .;
    3235        } :data
     36       
    3337        _tls_alignment = ALIGNOF(.tdata);
     38       
    3439        .bss : {
    3540                *(COMMON);
    3641                *(.bss);
    3742        } :data
    38 
     43       
    3944        . = ALIGN(0x1000);
    4045        _heap = .;
     46       
     47#ifdef CONFIG_LINE_DEBUG
     48        .comment 0 : { *(.comment); } :debug
     49        .debug_abbrev 0 : { *(.debug_abbrev); } :debug
     50        .debug_aranges 0 : { *(.debug_aranges); } :debug
     51        .debug_info 0 : { *(.debug_info); } :debug
     52        .debug_line 0 : { *(.debug_line); } :debug
     53        .debug_loc 0 : { *(.debug_loc); } :debug
     54        .debug_pubnames 0 : { *(.debug_pubnames); } :debug
     55        .debug_pubtypes 0 : { *(.debug_pubtypes); } :debug
     56        .debug_ranges 0 : { *(.debug_ranges); } :debug
     57        .debug_str 0 : { *(.debug_str); } :debug
     58#endif
    4159       
    4260        /DISCARD/ : {
  • uspace/lib/c/arch/ia32/_link.ld.in

    rc5f0bff r1e00216  
    55        text PT_LOAD FLAGS(5);
    66        data PT_LOAD FLAGS(6);
     7        debug PT_NOTE;
    78}
    89
     
    4344       
    4445        . = ALIGN(0x1000);
     46        _heap = .;
    4547       
    46         _heap = .;
     48#ifdef CONFIG_LINE_DEBUG
     49        .comment 0 : { *(.comment); } :debug
     50        .debug_abbrev 0 : { *(.debug_abbrev); } :debug
     51        .debug_aranges 0 : { *(.debug_aranges); } :debug
     52        .debug_info 0 : { *(.debug_info); } :debug
     53        .debug_line 0 : { *(.debug_line); } :debug
     54        .debug_loc 0 : { *(.debug_loc); } :debug
     55        .debug_pubnames 0 : { *(.debug_pubnames); } :debug
     56        .debug_pubtypes 0 : { *(.debug_pubtypes); } :debug
     57        .debug_ranges 0 : { *(.debug_ranges); } :debug
     58        .debug_str 0 : { *(.debug_str); } :debug
     59#endif
    4760       
    4861        /DISCARD/ : {
  • uspace/srv/loader/arch/amd64/_link.ld.in

    rc5f0bff r1e00216  
     1/*
     2 * The difference from _link.ld.in for regular statically-linked apps
     3 * is the base address and the special interp section.
     4 */
     5
    16STARTUP(LIBC_PREFIX/arch/UARCH/src/entry.o)
    27ENTRY(__entry)
     
    611        text PT_LOAD FLAGS(5);
    712        data PT_LOAD FLAGS(6);
     13        debug PT_NOTE;
    814}
    915
     
    1117        .interp : {
    1218                *(.interp);
    13         } : interp
    14 
    15         /* . = 0x0000700000001000;*/
     19        } :interp
     20       
     21        /* . = 0x0000700000001000; */
    1622        . = 0x70001000;
    1723       
     
    1925                *(.init);
    2026        } :text
     27       
    2128        .text : {
    2229                *(.text);
     
    2734                *(.data);
    2835        } :data
     36       
    2937        .tdata : {
    3038                _tdata_start = .;
     
    3240                _tdata_end = .;
    3341        } :data
     42       
    3443        .tbss : {
    3544                _tbss_start = .;
     
    3746                _tbss_end = .;
    3847        } :data
     48       
    3949        _tls_alignment = MAX(ALIGNOF(.tdata), ALIGNOF(.tbss));
     50       
    4051        .bss : {
    4152                *(COMMON);
    4253                *(.bss);
    4354        } :data
    44 
     55       
    4556        . = ALIGN(0x1000);
    4657        _heap = .;
     58       
     59#ifdef CONFIG_LINE_DEBUG
     60        .comment 0 : { *(.comment); } :debug
     61        .debug_abbrev 0 : { *(.debug_abbrev); } :debug
     62        .debug_aranges 0 : { *(.debug_aranges); } :debug
     63        .debug_info 0 : { *(.debug_info); } :debug
     64        .debug_line 0 : { *(.debug_line); } :debug
     65        .debug_loc 0 : { *(.debug_loc); } :debug
     66        .debug_pubnames 0 : { *(.debug_pubnames); } :debug
     67        .debug_pubtypes 0 : { *(.debug_pubtypes); } :debug
     68        .debug_ranges 0 : { *(.debug_ranges); } :debug
     69        .debug_str 0 : { *(.debug_str); } :debug
     70#endif
    4771       
    4872        /DISCARD/ : {
    4973                *(*);
    5074        }
    51 
    5275}
  • uspace/srv/loader/arch/ia32/_link.ld.in

    rc5f0bff r1e00216  
    33 * is the base address and the special interp section.
    44 */
     5
    56STARTUP(LIBC_PREFIX/arch/UARCH/src/entry.o)
    67ENTRY(__entry)
     
    1011        text PT_LOAD FILEHDR PHDRS FLAGS(5);
    1112        data PT_LOAD FLAGS(6);
     13        debug PT_NOTE;
    1214}
    1315
     
    5355       
    5456        . = ALIGN(0x1000);
     57        _heap = .;
    5558       
    56         _heap = .;
     59#ifdef CONFIG_LINE_DEBUG
     60        .comment 0 : { *(.comment); } :debug
     61        .debug_abbrev 0 : { *(.debug_abbrev); } :debug
     62        .debug_aranges 0 : { *(.debug_aranges); } :debug
     63        .debug_info 0 : { *(.debug_info); } :debug
     64        .debug_line 0 : { *(.debug_line); } :debug
     65        .debug_loc 0 : { *(.debug_loc); } :debug
     66        .debug_pubnames 0 : { *(.debug_pubnames); } :debug
     67        .debug_pubtypes 0 : { *(.debug_pubtypes); } :debug
     68        .debug_ranges 0 : { *(.debug_ranges); } :debug
     69        .debug_str 0 : { *(.debug_str); } :debug
     70#endif
    5771       
    5872        /DISCARD/ : {
  • uspace/srv/loader/elf_load.c

    rc5f0bff r1e00216  
    300300        case PT_NULL:
    301301        case PT_PHDR:
     302        case PT_NOTE:
    302303                break;
    303304        case PT_LOAD:
     
    310311        case PT_DYNAMIC:
    311312        case PT_SHLIB:
    312         case PT_NOTE:
    313313        case PT_LOPROC:
    314314        case PT_HIPROC:
Note: See TracChangeset for help on using the changeset viewer.