[uClibc] libm in staging dir has unresolved symbols on PPC, soft FP

Joakim Tjernlund joakim.tjernlund at lumentis.se
Tue Mar 22 14:31:01 UTC 2005


> 
> Executing LD_BIND_NOW=1 ls on a PPC with soft FP buildroot env, this
> error messages pops out:
> ls: can't resolve symbol '__unpack_d'
> 
> __unpack_d is a local symbol in libgcc_s_nof.so.
> I suspect that libm in staging dir has been linked with an early
> libgcc_s_nof.so from the gcc build.

The libgcc_s_nof.so.1 was not stripped like libgcc_s.so.1 is.
This patch hopefully fixes that. I leave to Manuel or Erik to commit it as I
am not sure that this is correct.

The orginal problem reported above still remains.

 Jocke

Index: gcc-uclibc-3.x.mk
===================================================================
--- gcc-uclibc-3.x.mk	(revision 9939)
+++ gcc-uclibc-3.x.mk	(working copy)
@@ -216,8 +216,8 @@
 
 $(TARGET_DIR)/lib/libgcc_s.so.1: $(GCC_BUILD_DIR2)/.installed
 	# These are in /lib, so...
-	rm -rf $(TARGET_DIR)/usr/lib/libgcc_s.so*
-	-$(STRIP) $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/lib/libgcc_s.so.1
+	rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so*
+	-$(STRIP) $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/lib/libgcc_s*.so.1
 	-cp -a $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/lib/libgcc_s* $(TARGET_DIR)/lib/
 
 gcc: uclibc-configured binutils gcc_initial $(LIBFLOAT_TARGET) uclibc \
@@ -298,7 +298,7 @@
 	-(cd $(TARGET_DIR)/usr/bin; find -type f | xargs $(STRIP) > /dev/null 2>&1)
 	-(cd $(TARGET_DIR)/usr/$(GCC_LIB_SUBDIR); $(STRIP) cc1 cc1plus collect2 > /dev/null 2>&1)
 	-(cd $(TARGET_DIR)/usr/lib; $(STRIP) libstdc++.so.*.*.* > /dev/null 2>&1)
-	-(cd $(TARGET_DIR)/lib; $(STRIP) libgcc_s.so.*.*.* > /dev/null 2>&1)
+	-(cd $(TARGET_DIR)/lib; $(STRIP) libgcc_s*.so.*.*.* > /dev/null 2>&1)
 	#
 	rm -f $(TARGET_DIR)/usr/lib/*.la*
 	#rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
@@ -310,7 +310,7 @@
 			$(TARGET_DIR)/usr/$(GCC_LIB_SUBDIR)/include/ ; \
 	fi
 	# These are in /lib, so...
-	#rm -rf $(TARGET_DIR)/usr/lib/libgcc_s.so*
+	#rm -rf $(TARGET_DIR)/usr/lib/libgcc_s*.so*
 	#touch -c $(TARGET_DIR)/usr/bin/gcc
 
 gcc_target: uclibc_target binutils_target $(TARGET_DIR)/usr/bin/gcc




More information about the uClibc mailing list