All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peng Fan <van.freenix@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [RFC V1] arm: config: enforce -fno-pic for gcc
Date: Thu, 31 Dec 2015 15:07:47 +0800	[thread overview]
Message-ID: <20151231070745.GA5711@linux-7smt.suse> (raw)
In-Reply-To: <20151214072850.GA22680@shlinux2>

Hi Albert,

Gentle ping! Sorry for missing to mail you when I sent out the patch.

Thanks,
Peng.
On Mon, Dec 14, 2015 at 03:28:56PM +0800, Peng Fan wrote:
>Hi Albert,
>
>Do you have any comments on this patch?
>
>Regards,
>Peng.
>
>On Sat, Dec 05, 2015 at 03:53:46PM +0800, Peng Fan wrote:
>>Android's tool chain enable the -mandroid at default.
>>This option will enable the -fpic, which cause uboot compilation
>>failure:
>>"
>> LD      u-boot
>> u-boot contains unexpected relocations: R_ARM_ABS32
>> R_ARM_RELATIVE
>>"
>>
>>In my testcase, arm-linux-androideabi-gcc-4.9 internally
>>enables '-fpic', so when compiling code, there will be
>>relocation entries using type R_ARM_GOT_BREL and .got
>>section. When linking all the built-in.o using ld, there
>>will be R_ARM_ABS32 relocation entry and .got section
>>in the final u-boot elf image. This can not be handled
>>by u-boot, since u-boot only expects R_ARM_RELATIVE
>>relocation entry.
>>arm-poky-linux-gnueabi-gcc-4.9 default does not enable '-fpic',
>>so there is not .got section and R_ARM_GOT_BREL in built-in.o.
>>And in the final u-boot elf image, all relocation entries are
>>R_ARM_RELATIVE.
>>
>>we can pass '-fno-pic' to xxx-gcc to disable pic. whether
>>the toolchain internally enables or disables pic, '-fno-pic'
>>can work well.
>>
>>Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
>>Cc: Albert Aribaud <albert.u.boot@aribaud.net>
>>---
>> arch/arm/config.mk | 1 +
>> 1 file changed, 1 insertion(+)
>>
>>diff --git a/arch/arm/config.mk b/arch/arm/config.mk
>>index 0550225..2b6322a 100644
>>--- a/arch/arm/config.mk
>>+++ b/arch/arm/config.mk
>>@@ -106,6 +106,7 @@ ALL-y += checkarmreloc
>> # instruction. Relocation is not supported for that case, so disable
>> # such usage by requiring word relocations.
>> PLATFORM_CPPFLAGS += $(call cc-option, -mword-relocations)
>>+PLATFORM_CPPFLAGS += $(call cc-option, -fno-pic)
>> endif
>> 
>> # limit ourselves to the sections we want in the .bin.
>>-- 
>>2.6.2
>>
>>
>
>-- 
>_______________________________________________
>U-Boot mailing list
>U-Boot at lists.denx.de
>http://lists.denx.de/mailman/listinfo/u-boot

  reply	other threads:[~2015-12-31  7:07 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-05  7:53 [U-Boot] [RFC V1] arm: config: enforce -fno-pic for gcc Peng Fan
2015-12-14  7:28 ` Peng Fan
2015-12-31  7:07   ` Peng Fan [this message]
2016-01-29 16:42 ` Albert ARIBAUD

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=20151231070745.GA5711@linux-7smt.suse \
    --to=van.freenix@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.