[Buildroot] [PATCH v2, 1/1] toolchain/toolchain-wrapper: fix gcc -v with relro

Fabrice Fontaine fontaine.fabrice at gmail.com
Thu Dec 24 10:18:40 UTC 2020


rhash in version 1.4.0 with relro fails to build because gcc -v raises
the following build failure:

/data/buildroot-test/instance-1/output-1/host/mips64el-buildroot-linux-gnu/sysroot/soft-float/el/usr/lib64/Scrt1.o: In function `__start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
Run result: 1

This build failure is raised because the toolchain-wrapper calls gcc with
-Wl,-z,relro and as a result gcc wrongly assumes that some linking must
be done.

Fixes:
 - http://autobuild.buildroot.org/results/8605c16cc28316954ce8b9dcc266974390c5da20

Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
Tested-by: Peter Seiderer <ps.report at gmx.net>
---
Changes v1 -> v2 (after review of Peter Seiderer):
 - Fix typos in commit log and update comment in source code

 toolchain/toolchain-wrapper.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/toolchain/toolchain-wrapper.c b/toolchain/toolchain-wrapper.c
index 0fb6064b1c..2a7dd61729 100644
--- a/toolchain/toolchain-wrapper.c
+++ b/toolchain/toolchain-wrapper.c
@@ -453,10 +453,11 @@ int main(int argc, char **argv)
 			*cur++ = "-pie";
 	}
 #endif
-	/* Are we building the Linux Kernel or U-Boot? */
+	/* Are we building the Linux Kernel or U-Boot or displaying the programs invoked by the compiler? */
 	for (i = 1; i < argc; i++) {
 		if (!strcmp(argv[i], "-D__KERNEL__") ||
-		    !strcmp(argv[i], "-D__UBOOT__"))
+		    !strcmp(argv[i], "-D__UBOOT__") ||
+		    !strcmp(argv[i], "-v"))
 			break;
 	}
 	if (i == argc) {
-- 
2.29.2



More information about the buildroot mailing list