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....@freescale.com> >Cc: Albert Aribaud <albert.u.b...@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@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot