From mboxrd@z Thu Jan 1 00:00:00 1970 From: Remy Bohmer Date: Thu, 27 Jan 2011 18:53:37 +0100 Subject: [U-Boot] [PATCH v2] Divides variable of linker flags to LDFLAGS-u-boot and LDFLAGS In-Reply-To: <1294277034-6509-1-git-send-email-iwamatsu@nigauri.org> References: <1294277034-6509-1-git-send-email-iwamatsu@nigauri.org> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi, 2011/1/6 Nobuhiro Iwamatsu : > Linker needs to use the proper endian/bfd flags even when doing partial linking. > LDFLAGS_u-boot sets linker option which is called it when U-boot is built > (u-boot final). > LDFLAGS sets necessary option by partial linking (use in cmd_link_o_target). > > CC: Mike Frysinger > Signed-off-by: Nobuhiro Iwamatsu > --- This patch breaks compilation for some ARM based boards, I get for example this error: =============================================================== make -C examples/standalone all make[1]: Entering directory `/home/bohm/Workarea/u-boot/examples/standalone' arm-none-eabi-gcc -g -Os -fno-common -ffixed-r8 -msoft-float -D__KERNEL__ -DCONFIG_SYS_TEXT_BASE=0x23f00000 -I/home/bohm/Workarea/u-boot/include -fno-builtin -ffreestanding -nostdinc -isystem /home/bohm/x-tools/CodeSourcery/arm-2009q1/bin/../lib/gcc/arm-none-eabi/4.3.3/include -pipe -DCONFIG_ARM -D__ARM__ -marm -mabi=aapcs-linux -mno-thumb-interwork -march=armv5te -Wall -Wstrict-prototypes -fno-stack-protector -fno-toplevel-reorder -o hello_world.o hello_world.c -c arm-none-eabi-gcc -g -Os -fno-common -ffixed-r8 -msoft-float -D__KERNEL__ -DCONFIG_SYS_TEXT_BASE=0x23f00000 -I/home/bohm/Workarea/u-boot/include -fno-builtin -ffreestanding -nostdinc -isystem /home/bohm/x-tools/CodeSourcery/arm-2009q1/bin/../lib/gcc/arm-none-eabi/4.3.3/include -pipe -DCONFIG_ARM -D__ARM__ -marm -mabi=aapcs-linux -mno-thumb-interwork -march=armv5te -Wall -Wstrict-prototypes -fno-stack-protector -fno-toplevel-reorder -o stubs.o stubs.c -c arm-none-eabi-ld -pie -r -o libstubs.o stubs.o ----> arm-none-eabi-ld: -r and -shared may not be used together make[1]: *** [libstubs.o] Error 1 make[1]: Leaving directory `/home/bohm/Workarea/u-boot/examples/standalone' make: *** [examples/standalone] Error 2 =============================================================== It seems that the ' -pie' and '-r' flags may not be used together. The ' -r' flag is defined at line 263 in config.mk: cmd_link_o_target = $(if $(strip $1),\ $(LD) $(LDFLAGS) -r -o $@ $1,\ rm -f $@; $(AR) rcs $@ ) This patch now includes $(LDFLAGS) which was previously not included: > # Location of a usable BFD library, where we define "usable" as > @@ -259,7 +261,7 @@ $(obj)%.s: %.c > > # If the list of objects to link is empty, just create an empty built-in.o > cmd_link_o_target = $(if $(strip $1),\ > - $(LD) -r -o $@ $1 ,\ > + $(LD) $(LDFLAGS) -r -o $@ $1,\ > rm -f $@; $(AR) rcs $@ ) > Since it is included the following flag is added from arch/arm/config.mk: PLATFORM_LDFLAGS += -pie This results in the error as listed above. Any suggestions how to fix it? Kind regards, Remy