From d797ecc6f026e1f0af17f91df33e8cd44731a97f Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 30 Sep 2023 17:15:02 +0200 Subject: [PATCH] package/gcc/gcc-final: only install libgcc_s for shared library builds In commit 55e83008fc82cf621d94d60ab4401a4848880bc2 ("package/gcc/gcc-final: rework installation of libgcc_s/libatomic"), we reworked the libgcc_s installation. In the previous code, libgcc_s was installed to STAGING_DIR/TARGET_DIR unconditionally, but a "-cp" command was used, which means that any failure was ignored. As we are now more picky, it has become clear that this in fact wasn't entirely correct: libgcc_s only exists for shared builds. For static builds, only libgcc.a is available, but it doesn't need to be installed to STAGING_DIR (for some reason, and as it was never installed by Buildroot, it has always worked without libgcc.a in STAGING_DIR). So long story short: we change the code to only install libgcc_s when BR2_STATIC_LIBS is disabled. This fixes the following build failure on BR2_STATIC_LIBS=y builds: cp -dpf /home/thomas/buildroot/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/lib*/libgcc_s* /home/thomas/buildroot/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/lib/ cp: cannot stat '/home/thomas/buildroot/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/lib*/libgcc_s*': No such file or directory Reported-by: Peter Korsgaard Signed-off-by: Thomas Petazzoni Signed-off-by: Peter Korsgaard --- package/gcc/gcc-final/gcc-final.mk | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/package/gcc/gcc-final/gcc-final.mk b/package/gcc/gcc-final/gcc-final.mk index 11104167af..edb9b2f73a 100644 --- a/package/gcc/gcc-final/gcc-final.mk +++ b/package/gcc/gcc-final/gcc-final.mk @@ -144,7 +144,11 @@ HOST_GCC_FINAL_POST_INSTALL_HOOKS += TOOLCHAIN_WRAPPER_INSTALL # -cc symlink to the wrapper is not created. HOST_GCC_FINAL_POST_INSTALL_HOOKS += HOST_GCC_INSTALL_WRAPPER_AND_SIMPLE_SYMLINKS -GCC_FINAL_LIBS = libgcc_s libatomic +GCC_FINAL_LIBS = libatomic + +ifeq ($(BR2_STATIC_LIBS),) +GCC_FINAL_LIBS += libgcc_s +endif ifeq ($(BR2_INSTALL_LIBSTDCPP),y) GCC_FINAL_USR_LIBS += libstdc++