Changes in / [f798178:a71d2630] in mainline


Ignore:
Files:
26 added
9 deleted
24 edited

Legend:

Unmodified
Added
Removed
  • boot/Makefile.build

    rf798178 ra71d2630  
    111111
    112112$(RAW): $(OBJECTS) $(COMPONENT_OBJECTS) $(LINK)
    113         $(LD) -n $(LFLAGS) -T $(LINK) -M -Map $(MAP) -o $@ $(COMPONENT_OBJECTS) $(OBJECTS)
     113        $(LD) -N $(LFLAGS) -T $(LINK) -M -Map $(MAP) -o $@ $(COMPONENT_OBJECTS) $(OBJECTS)
    114114
    115115$(LINK): $(LINK).comp $(DEPEND)
  • kernel/Makefile

    rf798178 ra71d2630  
    134134#
    135135AFLAGS =
    136 LFLAGS = -n -T $(LINK) -M
     136LFLAGS = -N -T $(LINK) -M
    137137
    138138#
  • uspace/Makefile.common

    rf798178 ra71d2630  
    203203
    204204$(BINARY): $(LINKER_SCRIPT) $(OBJECTS) $(LIBS) $(BASE_LIBS)
    205         $(LD) -n $(LFLAGS) -T $(LINKER_SCRIPT) -M -Map $(BINARY).map -o $(BINARY) $(OBJECTS) $(LIBS) $(BASE_LIBS)
     205        $(LD) -N $(LFLAGS) -T $(LINKER_SCRIPT) -M -Map $(BINARY).map -o $(BINARY) $(OBJECTS) $(LIBS) $(BASE_LIBS)
    206206ifeq ($(CONFIG_STRIP_BINARIES),y)
    207207        $(STRIP) $(BINARY)
  • uspace/lib/c/Makefile

    rf798178 ra71d2630  
    4242CONFIG_MAKEFILE = $(ROOT_PATH)/Makefile.config
    4343
    44 LINKER_SCRIPTS = \
    45         $(LIBC_PREFIX)/arch/$(UARCH)/_link.ld \
    46         $(LIBC_PREFIX)/arch/$(UARCH)/_link-loader.ld
    47 
    4844PRE_DEPEND = $(INCLUDE_KERNEL) $(INCLUDE_ARCH) $(INCLUDE_LIBARCH) $(INCLUDE_RTLDARCH) $(COMMON_HEADER_ARCH)
    49 EXTRA_OUTPUT = $(LINKER_SCRIPTS)
    50 EXTRA_CLEAN = $(INCLUDE_KERNEL) $(INCLUDE_ARCH) $(INCLUDE_LIBARCH) $(INCLUDE_RTLDARCH) $(COMMON_HEADER_ARCH) $(LINKER_SCRIPTS)
     45EXTRA_OUTPUT = $(LINKER_SCRIPT)
     46EXTRA_CLEAN = $(INCLUDE_KERNEL) $(INCLUDE_ARCH) $(INCLUDE_LIBARCH) $(INCLUDE_RTLDARCH) $(COMMON_HEADER_ARCH) $(LINKER_SCRIPT)
    5147LIBRARY = libc
    5248SLIBRARY = libc.so.0.0
     
    153149        ln -sfn ../$< $@
    154150
    155 $(LIBC_PREFIX)/arch/$(UARCH)/_link.ld: $(LIBC_PREFIX)/arch/$(UARCH)/_link.ld.in
     151$(LINKER_SCRIPT): $(LINKER_SCRIPT).in
    156152        $(GCC) $(DEFS) $(CFLAGS) -DLIBC_PATH=$(CURDIR) -E -x c $< | grep -v "^\#" > $@
    157 
    158 $(LIBC_PREFIX)/arch/$(UARCH)/_link-loader.ld: $(LIBC_PREFIX)/arch/$(UARCH)/_link.ld.in
    159         $(GCC) $(DEFS) $(CFLAGS) -DLIBC_PATH=$(CURDIR) -DLOADER -E -x c $< | grep -v "^\#" > $@
    160153
    161154$(COMMON_HEADER_ARCH): $(COMMON_HEADER)
  • uspace/lib/c/arch/abs32le/Makefile.inc

    rf798178 ra71d2630  
    2929ARCH_SOURCES = \
    3030        arch/$(UARCH)/src/entry.c \
    31         arch/$(UARCH)/src/entryjmp.c \
    3231        arch/$(UARCH)/src/thread_entry.c \
    3332        arch/$(UARCH)/src/fibril.c \
  • uspace/lib/c/arch/abs32le/_link.ld.in

    rf798178 ra71d2630  
    33
    44PHDRS {
    5 #ifdef LOADER
    6         interp PT_INTERP;
    7         text PT_LOAD FILEHDR PHDRS FLAGS(5);
    8 #else
    95        text PT_LOAD FLAGS(5);
    10 #endif
    116        data PT_LOAD FLAGS(6);
    127}
    138
    149SECTIONS {
    15 #ifdef LOADER
    16         .interp : {
    17                 *(.interp);
    18         } :interp
     10        . = 0x1000 + SIZEOF_HEADERS;
    1911       
    20         . = 0x70001000 + SIZEOF_HEADERS;
    21 #else
    22         . = 0x1000 + SIZEOF_HEADERS;
    23 #endif
    2412        .text : {
    2513                *(.text .text.*);
  • uspace/lib/c/arch/amd64/Makefile.inc

    rf798178 ra71d2630  
    2929ARCH_SOURCES = \
    3030        arch/$(UARCH)/src/entry.s \
    31         arch/$(UARCH)/src/entryjmp.s \
    3231        arch/$(UARCH)/src/thread_entry.s \
    3332        arch/$(UARCH)/src/syscall.S \
  • uspace/lib/c/arch/amd64/_link.ld.in

    rf798178 ra71d2630  
    33
    44PHDRS {
    5 #ifdef LOADER
    6         interp PT_INTERP;
    7         text PT_LOAD FILEHDR PHDRS FLAGS(5);
    8 #else
    95        text PT_LOAD FLAGS(5);
    10 #endif
    116        data PT_LOAD FLAGS(6);
    127        debug PT_NOTE;
     
    149
    1510SECTIONS {
    16 #ifdef LOADER
    17         .interp : {
    18                 *(.interp);
    19         } :interp
     11        . = 0x1000 + SIZEOF_HEADERS;
    2012       
    21         . = 0x70001000 + SIZEOF_HEADERS;
    22 #else
    23         . = 0x1000 + SIZEOF_HEADERS;
    24 #endif
    2513        .init : {
    2614                *(.init);
  • uspace/lib/c/arch/arm32/Makefile.inc

    rf798178 ra71d2630  
    3030ARCH_SOURCES = \
    3131        arch/$(UARCH)/src/entry.s \
    32         arch/$(UARCH)/src/entryjmp.s \
    3332        arch/$(UARCH)/src/thread_entry.s \
    3433        arch/$(UARCH)/src/syscall.c \
  • uspace/lib/c/arch/arm32/_link.ld.in

    rf798178 ra71d2630  
    33
    44PHDRS {
    5 #ifdef LOADER
    6         interp PT_INTERP;
    7         text PT_LOAD FILEHDR PHDRS FLAGS(5);
    8 #else
    95        text PT_LOAD FLAGS(5);
    10 #endif
    116        data PT_LOAD FLAGS(6);
    127}
    138
    149SECTIONS {
    15 #ifdef LOADER
    16         .interp : {
    17                 *(.interp);
    18         } :interp
     10        . = 0x1000 + SIZEOF_HEADERS;
    1911       
    20         . = 0x70001000 + SIZEOF_HEADERS;
    21 #else
    22         . = 0x1000 + SIZEOF_HEADERS;
    23 #endif
    2412        .init : {
    2513                *(.init);
  • uspace/lib/c/arch/ia32/Makefile.inc

    rf798178 ra71d2630  
    2929ARCH_SOURCES = \
    3030        arch/$(UARCH)/src/entry.s \
    31         arch/$(UARCH)/src/entryjmp.s \
    3231        arch/$(UARCH)/src/thread_entry.s \
    3332        arch/$(UARCH)/src/syscall.S \
  • uspace/lib/c/arch/ia32/_link.ld.in

    rf798178 ra71d2630  
    33
    44PHDRS {
    5 #ifdef LOADER
    6         interp PT_INTERP;
    7         text PT_LOAD FILEHDR PHDRS FLAGS(5);
    8 #else
    95        text PT_LOAD FLAGS(5);
    10 #endif
    116        data PT_LOAD FLAGS(6);
    127        debug PT_NOTE;
     
    149
    1510SECTIONS {
    16 #ifdef LOADER
    17         .interp : {
    18                 *(.interp);
    19         } :interp
    20 
    21         . = 0x70001000 + SIZEOF_HEADERS;
    22 #else
    2311        . = 0x1000 + SIZEOF_HEADERS;
    24 #endif
     12       
    2513        .init : {
    2614                *(.init);
  • uspace/lib/c/arch/ia64/Makefile.inc

    rf798178 ra71d2630  
    2929ARCH_SOURCES = \
    3030        arch/$(UARCH)/src/entry.s \
    31         arch/$(UARCH)/src/entryjmp.s \
    3231        arch/$(UARCH)/src/thread_entry.s \
    3332        arch/$(UARCH)/src/syscall.S \
  • uspace/lib/c/arch/ia64/_link.ld.in

    rf798178 ra71d2630  
    33
    44PHDRS {
    5 #ifdef LOADER
    6         interp PT_INTERP;
    75        text PT_LOAD FLAGS(5);
    8 #else
    9         text PT_LOAD FLAGS(5);
    10 #endif
    116        data PT_LOAD FLAGS(6);
    127}
    138
    149SECTIONS {
    15 #ifdef LOADER
    16         .interp : {
    17                 *(.interp);
    18         } :interp
     10        . = 0x4000 + SIZEOF_HEADERS;
    1911       
    20         . = 0x800000000 + SIZEOF_HEADERS;
    21 #else
    22         . = 0x4000 + SIZEOF_HEADERS;
    23 #endif
    24         /*
    25          * XXX This is just a work around. Problem: .init section does not
    26          * have the proper alignment.
    27          */
    28         . = ALIGN(., 16);
    29 
    3012        .init : {
    3113                *(.init);
  • uspace/lib/c/arch/mips32/Makefile.inc

    rf798178 ra71d2630  
    2929ARCH_SOURCES = \
    3030        arch/$(UARCH)/src/entry.s \
    31         arch/$(UARCH)/src/entryjmp.s \
    3231        arch/$(UARCH)/src/thread_entry.s \
    3332        arch/$(UARCH)/src/syscall.c \
  • uspace/lib/c/arch/mips32/_link.ld.in

    rf798178 ra71d2630  
    33
    44PHDRS {
    5 #ifdef LOADER
    6         interp PT_INTERP;
    7         text PT_LOAD FILEHDR PHDRS FLAGS(5);
    8 #else
    95        text PT_LOAD FLAGS(5);
    10 #endif
    116        data PT_LOAD FLAGS(6);
    127}
    138
    149SECTIONS {
    15 #ifdef LOADER
    16         .interp : {
    17                 *(.interp);
    18         } :interp
     10        . = 0x4000 + SIZEOF_HEADERS;
    1911       
    20         . = 0x70004000 + SIZEOF_HEADERS;
    21 #else
    22         . = 0x4000 + SIZEOF_HEADERS;
    23 #endif
    2412        .init : {
    2513                *(.init);
  • uspace/lib/c/arch/mips32eb/Makefile.inc

    rf798178 ra71d2630  
    2929ARCH_SOURCES = \
    3030        arch/$(UARCH)/src/entry.s \
    31         arch/$(UARCH)/src/entryjmp.s \
    3231        arch/$(UARCH)/src/thread_entry.s \
    3332        arch/$(UARCH)/src/syscall.c \
  • uspace/lib/c/arch/ppc32/Makefile.inc

    rf798178 ra71d2630  
    2929ARCH_SOURCES = \
    3030        arch/$(UARCH)/src/entry.s \
    31         arch/$(UARCH)/src/entryjmp.s \
    3231        arch/$(UARCH)/src/thread_entry.s \
    3332        arch/$(UARCH)/src/syscall.c \
  • uspace/lib/c/arch/ppc32/_link.ld.in

    rf798178 ra71d2630  
    33
    44PHDRS {
    5 #ifdef LOADER
    6         interp PT_INTERP;
    7         text PT_LOAD FILEHDR PHDRS FLAGS(5);
    8 #else
    95        text PT_LOAD FLAGS(5);
    10 #endif
    116        data PT_LOAD FLAGS(6);
    127}
    138
    149SECTIONS {
    15 #ifdef LOADER
    16         .itnerp : {
    17                 *(.interp);
    18         } :interp
     10        . = 0x1000 + SIZEOF_HEADERS;
    1911       
    20         . = 0x70001000 + SIZEOF_HEADERS;
    21 #else
    22         . = 0x1000 + SIZEOF_HEADERS;
    23 #endif
    2412        .init : {
    2513                *(.init);
  • uspace/lib/c/arch/sparc64/Makefile.inc

    rf798178 ra71d2630  
    2929ARCH_SOURCES = \
    3030        arch/$(UARCH)/src/entry.s \
    31         arch/$(UARCH)/src/entryjmp.s \
    3231        arch/$(UARCH)/src/thread_entry.s \
    3332        arch/$(UARCH)/src/fibril.S \
  • uspace/lib/c/arch/sparc64/_link.ld.in

    rf798178 ra71d2630  
    33
    44PHDRS {
    5 #ifdef LOADER
    6         interp PT_INTERP;
    7         text PT_LOAD FILEHDR PHDRS FLAGS(5);
    8 #else
    95        text PT_LOAD FLAGS(5);
    10 #endif
    116        data PT_LOAD FLAGS(6);
    127}
    138
    149SECTIONS {
    15 #ifdef LOADER
    16         .interp : {
    17                 *(.interp);
    18         } :interp
     10        . = 0x4000 + SIZEOF_HEADERS;
    1911       
    20         . = 0x70004000 + SIZEOF_HEADERS;
    21 #else
    22         . = 0x4000 + SIZEOF_HEADERS;
    23 #endif
    2412        .init : {
    2513                *(.init);
  • uspace/srv/loader/Makefile

    rf798178 ra71d2630  
    3636-include $(COMMON_MAKEFILE)
    3737-include $(CONFIG_MAKEFILE)
     38-include arch/$(UARCH)/Makefile.inc
    3839
    39 LINKER_SCRIPT = $(LIBC_PREFIX)/arch/$(UARCH)/_link-loader.ld
     40LINKER_SCRIPT = arch/$(UARCH)/_link.ld
     41EXTRA_CLEAN = $(LINKER_SCRIPT)
    4042
    4143EXTRA_CFLAGS = -Iinclude -I../../lib/c/rtld/include
     
    5355
    5456include $(USPACE_PREFIX)/Makefile.common
     57
     58$(LINKER_SCRIPT): $(LINKER_SCRIPT).in
     59        $(GCC) $(DEFS) $(CFLAGS) -DLIBC_PREFIX=$(LIBC_PREFIX) -E -x c $< | grep -v "^\#" > $@
  • uspace/srv/loader/elf_load.c

    rf798178 ra71d2630  
    22 * Copyright (c) 2006 Sergey Bondari
    33 * Copyright (c) 2006 Jakub Jermar
    4  * Copyright (c) 2011 Jiri Svoboda
     4 * Copyright (c) 2008 Jiri Svoboda
    55 * All rights reserved.
    66 *
     
    5353#include <smc.h>
    5454#include <loader/pcb.h>
    55 #include <entry_point.h>
    5655
    5756#include "elf.h"
    5857#include "elf_load.h"
     58#include "arch.h"
    5959
    6060#define DPRINTF(...)
  • uspace/srv/loader/main.c

    rf798178 ra71d2630  
    5555#include <macros.h>
    5656#include <loader/pcb.h>
    57 #include <entry_point.h>
    5857#include <errno.h>
    5958#include <async.h>
     
    7271#define DPRINTF(...)
    7372
     73void program_run(void *entry, pcb_t *pcb);
    7474static int ldr_load_dyn_linked(elf_info_t *p_info);
    7575
     
    394394        async_answer_0(rid, EOK);
    395395        DPRINTF("Jump to entry point at %p\n", pcb.entry);
    396         entry_point_jmp(prog_info.entry, &pcb);
     396        program_run(prog_info.entry, &pcb);
    397397       
    398398        /* Not reached */
Note: See TracChangeset for help on using the changeset viewer.