toolchain: Disable PIE for ARC
diff mbox

Message ID 20170313174145.40650-1-abrodkin@synopsys.com
State Rejected
Headers show

Commit Message

Alexey Brodkin March 13, 2017, 5:41 p.m. UTC
Even though ARC's toolchain may build PIE binaries
those binaries ane not really functional in runtime as of today.
On ARC we don't expect text sections to be updated in run-time and
so when dynamic loader attempts to patch text section we're getting
access violation exception and application gets killed.

So until we improve support of PIE in run-time let's force-disable PIE
in Buildroot for ARC. Oherwise autotools will continue to detect PIE and
build OpenSSH and friends with PIE which leads to completely unexpected
"crashes" later on on the target.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
---
 toolchain/Config.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Alexey Brodkin March 13, 2017, 9:52 p.m. UTC | #1
Hi,

On Mon, 2017-03-13 at 20:41 +0300, Alexey Brodkin wrote:
> Even though ARC's toolchain may build PIE binaries
> those binaries ane not really functional in runtime as of today.
> On ARC we don't expect text sections to be updated in run-time and
> so when dynamic loader attempts to patch text section we're getting
> access violation exception and application gets killed.
> 
> So until we improve support of PIE in run-time let's force-disable PIE
> in Buildroot for ARC. Oherwise autotools will continue to detect PIE and
> build OpenSSH and friends with PIE which leads to completely unexpected
> "crashes" later on on the target.
> 
> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Cc: Peter Korsgaard <peter@korsgaard.com>
> ---

My memory is getting worse with time...
We specifically focused on polishing PIE support in Linux on ARC
in arc-2016.09 so please disregard this patch for a moment.

We'll take a look at the issue with OpenSSH and hopefully will
just fix it keeping PIE enabled and working for ARC.

-Alexey

Patch
diff mbox

diff --git a/toolchain/Config.in b/toolchain/Config.in
index de0158567..26b5e62f1 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -19,7 +19,7 @@  config BR2_TOOLCHAIN_USES_GLIBC
 
 config BR2_TOOLCHAIN_USES_UCLIBC
 	bool
-	select BR2_TOOLCHAIN_SUPPORTS_PIE if !BR2_m68k && !BR2_microblaze && !BR2_STATIC_LIBS
+	select BR2_TOOLCHAIN_SUPPORTS_PIE if !BR2_arc && !BR2_m68k && !BR2_microblaze && !BR2_STATIC_LIBS
 
 config BR2_TOOLCHAIN_USES_MUSL
 	bool