diff options
-rw-r--r-- | arch/arc/cpu/u-boot.lds | 51 | ||||
-rw-r--r-- | arch/arc/include/asm/sections.h | 2 | ||||
-rw-r--r-- | arch/arc/lib/Makefile | 1 | ||||
-rw-r--r-- | arch/arc/lib/relocate.c | 5 | ||||
-rw-r--r-- | arch/arc/lib/sections.c | 23 |
5 files changed, 18 insertions, 64 deletions
diff --git a/arch/arc/cpu/u-boot.lds b/arch/arc/cpu/u-boot.lds index 693df74061..d3d0a53bf2 100644 --- a/arch/arc/cpu/u-boot.lds +++ b/arch/arc/cpu/u-boot.lds @@ -4,38 +4,29 @@ * SPDX-License-Identifier: GPL-2.0+ */ +#include <config.h> + OUTPUT_FORMAT("elf32-littlearc", "elf32-littlearc", "elf32-littlearc") OUTPUT_ARCH(arc) ENTRY(_start) SECTIONS { - . = ALIGN(4); + . = CONFIG_SYS_TEXT_BASE; + __image_copy_start = .; + __text_start = .; .text : { - *(.__text_start) - *(.__image_copy_start) arch/arc/lib/start.o (.text*) *(.text*) } - - . = ALIGN(4); - .text_end : - { - *(.__text_end) - } + __text_end = .; . = ALIGN(1024); - .ivt_start : { - *(.__ivt_start) - } - + __ivt_start = .; .ivt : { *(.ivt) } - - .ivt_end : { - *(.__ivt_end) - } + __ivt_end = .; . = ALIGN(4); .rodata : { @@ -53,34 +44,20 @@ SECTIONS } . = ALIGN(4); - .rel_dyn_start : { - *(.__rel_dyn_start) - } - + __rel_dyn_start = .; .rela.dyn : { *(.rela.dyn) } - - .rel_dyn_end : { - *(.__rel_dyn_end) - } + __rel_dyn_end = .; . = ALIGN(4); - .bss_start : { - *(.__bss_start); - } - + __bss_start = .; .bss : { *(.bss*) } - - .bss_end : { - *(.__bss_end); - } + __bss_end = .; . = ALIGN(4); - .image_copy_end : { - *(.__image_copy_end) - *(.__init_end) - } + __image_copy_end = .; + __init_end = .; } diff --git a/arch/arc/include/asm/sections.h b/arch/arc/include/asm/sections.h index b8f2a859fd..00f12172ab 100644 --- a/arch/arc/include/asm/sections.h +++ b/arch/arc/include/asm/sections.h @@ -9,9 +9,7 @@ #include <asm-generic/sections.h> -extern ulong __text_end; extern ulong __ivt_start; extern ulong __ivt_end; -extern ulong __image_copy_start; #endif /* __ASM_ARC_SECTIONS_H */ diff --git a/arch/arc/lib/Makefile b/arch/arc/lib/Makefile index e592802907..eb62b3c427 100644 --- a/arch/arc/lib/Makefile +++ b/arch/arc/lib/Makefile @@ -9,7 +9,6 @@ head-y := start.o obj-y += cache.o obj-y += cpu.o obj-y += interrupts.o -obj-y += sections.o obj-y += relocate.o obj-y += strchr-700.o obj-y += strcmp.o diff --git a/arch/arc/lib/relocate.c b/arch/arc/lib/relocate.c index 7709633d5b..7802f40545 100644 --- a/arch/arc/lib/relocate.c +++ b/arch/arc/lib/relocate.c @@ -6,7 +6,10 @@ #include <common.h> #include <elf.h> -#include <asm/sections.h> +#include <asm-generic/sections.h> + +extern ulong __image_copy_start; +extern ulong __ivt_end; DECLARE_GLOBAL_DATA_PTR; diff --git a/arch/arc/lib/sections.c b/arch/arc/lib/sections.c deleted file mode 100644 index a72c6946d5..0000000000 --- a/arch/arc/lib/sections.c +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (C) 2013-2014 Synopsys, Inc. All rights reserved. - * - * SPDX-License-Identifier: GPL-2.0+ - */ - -/* - * For some reason linker sets linker-generated symbols to zero in PIE mode. - * A work-around is substitution of linker-generated symbols with - * compiler-generated symbols which are properly handled by linker in PAE mode. - */ - -char __bss_start[0] __attribute__((section(".__bss_start"))); -char __bss_end[0] __attribute__((section(".__bss_end"))); -char __image_copy_start[0] __attribute__((section(".__image_copy_start"))); -char __image_copy_end[0] __attribute__((section(".__image_copy_end"))); -char __rel_dyn_start[0] __attribute__((section(".__rel_dyn_start"))); -char __rel_dyn_end[0] __attribute__((section(".__rel_dyn_end"))); -char __text_start[0] __attribute__((section(".__text_start"))); -char __text_end[0] __attribute__((section(".__text_end"))); -char __init_end[0] __attribute__((section(".__init_end"))); -char __ivt_start[0] __attribute__((section(".__ivt_start"))); -char __ivt_end[0] __attribute__((section(".__ivt_end"))); |