From: Vladimir Zapolskiy <vz@mleia.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [RESEND][PATCH 23/24] sh: generate position independent code for all platforms
Date: Mon, 28 Nov 2016 00:15:35 +0200 [thread overview]
Message-ID: <20161127221536.9577-24-vz@mleia.com> (raw)
In-Reply-To: <20161127221536.9577-1-vz@mleia.com>
Finally add fpic compilation option to produce relocatable code.
Note that this requires to define CONFIG_NEEDS_MANUAL_RELOC for all
board files, also relocation support still has some limitations
(e.g. a developer should care not to overwrite the executing code or
memset() with zeroes not yet relocated data on malloc init etc.),
which may be fixed while switching to PIE.
Due to short investigation the architecture code is not ready for PIE
linking, this will require some manipulations with .dyn* sections.
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
---
arch/sh/config.mk | 1 +
arch/sh/cpu/u-boot.lds | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/sh/config.mk b/arch/sh/config.mk
index 673ed8d..71540c8 100644
--- a/arch/sh/config.mk
+++ b/arch/sh/config.mk
@@ -15,5 +15,6 @@ CONFIG_STANDALONE_LOAD_ADDR += -EB
endif
PLATFORM_CPPFLAGS += -DCONFIG_SH -D__SH__
+PLATFORM_RELFLAGS += -fpic
LDFLAGS_FINAL = --gc-sections
PLATFORM_RELFLAGS += -ffixed-r13
diff --git a/arch/sh/cpu/u-boot.lds b/arch/sh/cpu/u-boot.lds
index f2e48c6..bbf9ff4 100644
--- a/arch/sh/cpu/u-boot.lds
+++ b/arch/sh/cpu/u-boot.lds
@@ -60,7 +60,7 @@ SECTIONS
PROVIDE (_fgot = .);
.got :
{
- *(.got)
+ *(.got.plt) *(.got)
. = ALIGN(4);
} >ram
PROVIDE (_egot = .);
--
2.10.2
next prev parent reply other threads:[~2016-11-27 22:15 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-27 22:15 [U-Boot] [RESEND][PATCH 00/24] sh: add generic board support and fixes Vladimir Zapolskiy
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 01/24] sh4: cache: correct dcache flush to invalidate with write-back Vladimir Zapolskiy
2016-12-03 23:48 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 02/24] sh4: cache: correct flush_cache() to writeback and invalidate Vladimir Zapolskiy
2016-11-30 0:33 ` Simon Glass
2016-12-03 23:48 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 03/24] sh3: remove unused cache.c file from being built Vladimir Zapolskiy
2016-11-30 0:33 ` Simon Glass
2016-12-03 23:49 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 04/24] sh: cache use jump_to_P2() and back_to_P1() from asm/system.h Vladimir Zapolskiy
2016-11-30 0:33 ` Simon Glass
2016-12-03 23:52 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 05/24] sh: cache: don't modify CCR from P1 area Vladimir Zapolskiy
2016-12-03 23:52 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 06/24] sh4: cache: move exported cache manipulation functions into cache.c Vladimir Zapolskiy
2016-11-30 0:33 ` Simon Glass
2016-12-03 23:53 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 07/24] pci: sh7751: fix up PCI I/O space address Vladimir Zapolskiy
2016-12-03 23:53 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 08/24] pci: sh7751: map PCI memory space into SDRAM Vladimir Zapolskiy
2016-12-03 23:56 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 09/24] sh4: remove __io config options from r2dplus and r7780mp boards Vladimir Zapolskiy
2016-11-30 0:33 ` Simon Glass
2016-12-04 0:35 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 10/24] r2dplus: use P1 area space for text base and PCI system memory Vladimir Zapolskiy
2016-11-30 0:33 ` Simon Glass
2016-12-04 0:36 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 11/24] r2dplus: select rtl8139 driver in defconfig Vladimir Zapolskiy
2016-11-30 0:33 ` Simon Glass
2016-12-04 0:36 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 12/24] common: sh: add necessary define bits to board_f Vladimir Zapolskiy
2016-12-04 0:37 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 13/24] sh4: use single u-boot linker script for all boards Vladimir Zapolskiy
2016-11-30 0:33 ` Simon Glass
2016-12-04 0:37 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 14/24] sh: place board lowlevel_init code in the beginning of .text Vladimir Zapolskiy
2016-11-30 0:33 ` Simon Glass
2016-12-04 0:38 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 15/24] sh: define entry point and reloc_dst inside a linker script Vladimir Zapolskiy
2016-11-30 0:33 ` Simon Glass
2016-12-04 0:39 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 16/24] sh: add MEMORY command to a shared " Vladimir Zapolskiy
2016-11-30 0:33 ` Simon Glass
2016-12-04 0:39 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 17/24] sh: remove undefined DEBUG preprocessor token from board config files Vladimir Zapolskiy
2016-11-30 0:33 ` Simon Glass
2016-12-04 0:40 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 18/24] sh: define CONFIG_DISPLAY_BOARDINFO to print board information Vladimir Zapolskiy
2016-11-30 0:33 ` Simon Glass
2016-12-04 0:41 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 19/24] sh: add common dram_init() function for all boards Vladimir Zapolskiy
2016-11-30 0:34 ` Simon Glass
2016-12-04 0:41 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 20/24] sh: add shared relocate_code() function and call board_init_r() Vladimir Zapolskiy
2016-11-30 0:34 ` Simon Glass
2016-12-04 0:42 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 21/24] sh4: fix start.S by calling board_init_f() after first code relocation Vladimir Zapolskiy
2016-11-30 0:34 ` Simon Glass
2016-12-04 0:42 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 22/24] sh: share the correct version of start.S among all cpus Vladimir Zapolskiy
2016-11-30 0:34 ` Simon Glass
2016-12-04 0:43 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
2016-11-27 22:15 ` Vladimir Zapolskiy [this message]
2016-12-04 0:43 ` [U-Boot] [U-Boot, RESEND, 23/24] sh: generate position independent code for all platforms Tom Rini
2016-11-27 22:15 ` [U-Boot] [RESEND][PATCH 24/24] r2dplus: fixup CONFIG_SYS_TEXT_BASE to account arch/sh changes Vladimir Zapolskiy
2016-12-04 0:44 ` [U-Boot] [U-Boot, RESEND, " Tom Rini
[not found] ` <20161128154357.GD2546@bill-the-cat>
2016-11-29 0:58 ` [U-Boot] [RESEND][PATCH 00/24] sh: add generic board support and fixes Vladimir Zapolskiy
2016-11-29 1:22 ` Tom Rini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161127221536.9577-24-vz@mleia.com \
--to=vz@mleia.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox