Patchwork [v3] Remove -fPIC on x86_64

login
register
mail settings
Submitter Arnout Vandecappelle
Date July 11, 2012, 12:57 p.m.
Message ID <1342011438-13433-1-git-send-email-arnout@mind.be>
Download mbox | patch
Permalink /patch/170464/
State Accepted
Headers show

Comments

Arnout Vandecappelle - July 11, 2012, 12:57 p.m.
The -fPIC breaks the purgatory of kexec (= the code that passes command-line
arguments to the kernel): kexec doesn't know how to handle the GOT and PLT
relocation entries.

There is also no reason at all to pass -fPIC.  Shared libraries that require
it will add it to their local Makefiles, and normal executables have no
business with -fPIC (plus it adds overhead...).

The -fPIC was added by Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
in commit 8027784c.  That commit adds sysroot parameters to CFLAGS.
There is no explanation why -fPIC is also added for x86_64.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
Build-tested with Sourcery toolchain and full-featured internal toolchain
on a x86_64 host with allyesconfig (but without the packages that fail to
build in the first place).

v3:
 - Rebase on master (v2 was accidentally diffed against the rejected 
   libgcrypt-config patch)
 - Remove CCACHE_DISABLE again (I couldn't reproduce it on clean rebuild
   of the allyesconfig)

v2:
 - Add CCACHE_DISABLE to TARGET_CONFIGURE_ARGS
 - Test with allyesconfig

 package/Makefile.in |    6 ------
 1 file changed, 6 deletions(-)
Thomas Petazzoni - July 13, 2012, 8:37 p.m.
Le Wed, 11 Jul 2012 14:57:18 +0200,
"Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be> a écrit :

> The -fPIC breaks the purgatory of kexec (= the code that passes command-line
> arguments to the kernel): kexec doesn't know how to handle the GOT and PLT
> relocation entries.
> 
> There is also no reason at all to pass -fPIC.  Shared libraries that require
> it will add it to their local Makefiles, and normal executables have no
> business with -fPIC (plus it adds overhead...).
> 
> The -fPIC was added by Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
> in commit 8027784c.  That commit adds sysroot parameters to CFLAGS.
> There is no explanation why -fPIC is also added for x86_64.
> 
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

Applied, thanks.

Thomas

Patch

diff --git a/package/Makefile.in b/package/Makefile.in
index c5ad00a..1c3ce48 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -87,12 +87,6 @@  endif
 
 TARGET_CFLAGS=$(TARGET_ABI) $(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING)
 
-ifneq ($(BR2_PREFER_STATIC_LIB),y)
-ifeq ($(BR2_x86_64),y)
-TARGET_CFLAGS+=-fPIC -DPIC
-endif # PIC for dynamic objects on x86_64
-endif
-
 ifeq ($(findstring yy,$(BR2_mips)$(BR2_MIPS_ABI64)),yy)
 TARGET_CFLAGS+=-fno-pic -mno-abicalls
 endif