[Buildroot] [PATCH] fix gcc install problem on powerpc+soft-float+install_libgcc_s

angus salkeld angus.salkeld at alliedtelesis.co.nz
Mon May 4 20:04:39 UTC 2009


Hi

I am building with:
gcc-4.3.3
powerpc-8540
soft-float
install libgcc_s
install libstd++

I get the following error:

# These are in /lib, so...
rm -rf /home/anguss/imports/buildroot/project_build_powerpc/r1/root/usr/lib/libgcc_s*.so*
cp -dpf
/home/anguss/imports/buildroot/build_powerpc/staging_dir/usr/powerpc-linux-uclibc/lib/libgcc_s* \
                /home/anguss/imports/buildroot/project_build_powerpc/r1/root/lib/
cp: cannot stat
`/home/anguss/imports/buildroot/build_powerpc/staging_dir/usr/powerpc-linux-uclibc/lib/libgcc_s*':
No such file or directory
make:
[/home/anguss/imports/buildroot/project_build_powerpc/r1/autotools-stamps/gcc_libs_target_installed]
Error 1 (ignored)
/home/anguss/imports/buildroot/build_powerpc/staging_dir/usr/bin/powerpc-linux-uclibc-strip
--remove-section=.comment --remove-section=.note --strip-unneeded
/home/anguss/imports/buildroot/project_build_powerpc/r1/root/lib/libgcc_s*
/home/anguss/imports/buildroot/build_powerpc/staging_dir/usr/bin/powerpc-linux-uclibc-strip:
'/home/anguss/imports/buildroot/project_build_powerpc/r1/root/lib/libgcc_s*': No such file
make:
[/home/anguss/imports/buildroot/project_build_powerpc/r1/autotools-stamps/gcc_libs_target_installed]
Error 1 (ignored)
mkdir -p /home/anguss/imports/buildroot/project_build_powerpc/r1/root/usr/lib
cp -dpf
/home/anguss/imports/buildroot/build_powerpc/staging_dir/usr/powerpc-linux-uclibc/lib/libstdc++.so*
\
                /home/anguss/imports/buildroot/project_build_powerpc/r1/root/usr/lib/
cp: cannot stat
`/home/anguss/imports/buildroot/build_powerpc/staging_dir/usr/powerpc-linux-uclibc/lib/libstdc++.so*':
No such file or directory
make:
[/home/anguss/imports/buildroot/project_build_powerpc/r1/autotools-stamps/gcc_libs_target_installed]
Error 1 (ignored)


So here is a patch that fixes it for me.

Note:

1) I only include this for powerpc (maybe it should only check for soft float)?
2) I have removed the ignore "-" from the copy, as it think that it is
   a problem if you want a library installed but it fails to install.

Regards
Angus Salkeld

diff --git a/toolchain/gcc/gcc-uclibc-4.x.mk b/toolchain/gcc/gcc-uclibc-4.x.mk
index 42e9d29..ff6acfd 100644
--- a/toolchain/gcc/gcc-uclibc-4.x.mk
+++ b/toolchain/gcc/gcc-uclibc-4.x.mk
@@ -140,6 +140,12 @@ ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y)
 GCC_DECIMAL_FLOAT:=--disable-decimal-float
 endif
 
+ifeq ($(BR2_SOFT_FLOAT),y)
+ifeq ($(ARCH),powerpc)
+GCC_NOF_DIR:=/nof
+endif
+endif
+
 # gcc version < 4.2.0 don't have -Wno-overlength-strings and the configure
 # script has problems detecting it, so help it
 ifeq ($(shell test $(HOSTCC_VERSION) -lt 420 && echo OLD),OLD)
@@ -347,18 +353,19 @@ endif
        mkdir -p $(TARGET_DIR)/usr/lib $(TARGET_DIR)/usr/sbin
        touch $@
 
+
 $(PROJECT_BUILD_DIR)/autotools-stamps/gcc_libs_target_installed: $(GCC_BUILD_DIR2)/.installed
 ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
        # These are in /lib, so...
        rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so*
-   -cp -dpf $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib/libgcc_s* \
+ cp -dpf $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib$(GCC_NOF_DIR)/libgcc_s* \
                $(TARGET_DIR)/lib/
        -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/lib/libgcc_s*
 endif
 ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
 ifeq ($(BR2_GCC_SHARED_LIBGCC),y)
        mkdir -p $(TARGET_DIR)/usr/lib
-   -cp -dpf $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib/libstdc++.so* \
+ cp -dpf $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib$(GCC_NOF_DIR)/libstdc++.so* \
                $(TARGET_DIR)/usr/lib/
        -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libstdc++.so*
 endif






More information about the buildroot mailing list