boot/afboot-stm32: add patch fixing build issue with recent binutils

The afboot-stm32 build system was initially linking with gcc, but that
was changed upstream following a Buildroot contribution to use ld
instead.

However, the build system was still passing -nostartfiles, which is a
gcc option. By luck, this option was simply ignored by older versions
of ld (such as binutils 2.32), but newer versions of ld (2.36 and
newer, at least) no longer accept/ignore this option.

This commit adds a patch that drops the use of this option, since it
is useless for ld.

The first patch is slightly updated because the upstream pull request
has been updated to contain both build fixes.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
Thomas Petazzoni 2022-04-28 22:55:45 +02:00 committed by Yann E. MORIN
parent 2449d9c9dd
commit cf5206ea98
2 changed files with 43 additions and 3 deletions

View File

@ -1,4 +1,4 @@
From 5448f328ff63a6ca4a64519c2f1dfc63a33df4b7 Mon Sep 17 00:00:00 2001
From 9901603e18524c4c52fd1dd47bda4ab4016628fc Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Date: Thu, 10 Sep 2020 11:37:33 +0200
Subject: [PATCH] Pass -fno-builtin to fix build with gcc 10
@ -23,7 +23,7 @@ stm32f429i-disco.c:(.text.reset+0x1a): undefined reference to `memcpy'
/home/thomas/projets/buildroot/output/host/opt/ext-toolchain/bin/../arm-buildroot-uclinux-uclibcgnueabi/bin/ld.real: stm32f429i-disco.c:(.text.reset+0x34): undefined reference to `memset'
make[1]: *** [Makefile:26: stm32f429i-disco] Error 1
Upstream: https://github.com/mcoquelin-stm32/afboot-stm32/pull/9
Upstream: https://github.com/mcoquelin-stm32/afboot-stm32/pull/11
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
Makefile | 1 +
@ -42,5 +42,5 @@ index f699176..1e8557d 100644
obj-y += gpio.o mpu.o qspi.o start_kernel.o
--
2.26.2
2.35.1

View File

@ -0,0 +1,40 @@
From be760c062c5d05bd2223f3916afafd37120d3318 Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Date: Thu, 28 Apr 2022 22:47:09 +0200
Subject: [PATCH] Makefile: drop -nostartfiles
In commit 0f3e61c9dd48fd8b4248ce4672c044c2562e4de1 ("Use ld instead of
gcc for linking "), we started using ld instead of gcc for the link
step. This worked fine for a while, but recent versions of ld no
longer accept the -nostartfiles option, causing the build to break:
Error: unable to disambiguate: -nostartfiles (did you mean --nostartfiles ?)
In fact, -nostartfiles was passed to gcc prior to
0f3e61c9dd48fd8b4248ce4672c044c2562e4de1, but it is not a ld
option. It is only by luck that it was accepted and ignored by older
ld versions. Since this option is useless when calling ld directly, we
can simply drop it.
Upstream: https://github.com/mcoquelin-stm32/afboot-stm32/pull/11
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 1e8557d..8f42be1 100644
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,7 @@ CFLAGS := -mthumb -mcpu=cortex-m4
CFLAGS += -ffunction-sections -fdata-sections
CFLAGS += -Os -std=gnu99 -Wall
CFLAGS += -fno-builtin
-LINKERFLAGS := -nostartfiles --gc-sections
+LINKERFLAGS := --gc-sections
obj-y += gpio.o mpu.o qspi.o start_kernel.o
obj-f4 += $(obj-y) usart-f4.o
--
2.35.1