Blame SOURCES/gcc34-libgcc_eh-hidden.patch

6fdc0f
--- gcc/mklibgcc.in.jj	2005-11-21 08:57:19.000000000 -0500
6fdc0f
+++ gcc/mklibgcc.in	2006-05-23 09:12:19.000000000 -0400
6fdc0f
@@ -490,10 +490,26 @@ EOF
6fdc0f
 
6fdc0f
   if [ "$SHLIB_LINK" ]; then
6fdc0f
 
6fdc0f
+    if [ "@libgcc_visibility@" = yes ]; then
6fdc0f
+      libgcc_eh_static_objS=
6fdc0f
+      echo ""
6fdc0f
+      for o in $libgcc_eh_static_objs; do
6fdc0f
+      # .oS objects will have all non-local symbol definitions .hidden
6fdc0f
+      oS=`echo ${o} | sed s~${objext}'$~.oS~g'`
6fdc0f
+      echo "${oS}: stmp-dirs libgcc/${dir}/stacknote.s ${o}"
6fdc0f
+      # non-GNU nm emits three fields even for undefined and typeless symbols,
6fdc0f
+      # so explicitly omit them
6fdc0f
+      echo '	( $(NM_FOR_TARGET) '${SHLIB_NM_FLAGS} ${o}' | $(AWK) '\''NF == 3 && $$2 !~ /^[UN]$$/ { print "\t.hidden", $$3 }'\''; cat libgcc/${dir}/stacknote.s ) | $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) '${flags}' -r -nostdinc -nostdlib -o $@ '${o}' -xassembler -'
6fdc0f
+      libgcc_eh_static_objS="${libgcc_eh_static_objS} ${oS}"
6fdc0f
+    done
6fdc0f
+    else
6fdc0f
+      libgcc_eh_static_objS="$libgcc_eh_static_objs"
6fdc0f
+    fi
6fdc0f
+
6fdc0f
     echo ""
6fdc0f
-    echo "${dir}/libgcc_eh.a: stmp-dirs $libgcc_eh_static_objs"
6fdc0f
+    echo "${dir}/libgcc_eh.a: stmp-dirs $libgcc_eh_static_objS"
6fdc0f
     echo "	-rm -rf ${dir}/libgcc_eh.a"
6fdc0f
-    echo '	$(AR_CREATE_FOR_TARGET)' ${dir}/libgcc_eh.a $libgcc_eh_static_objs
6fdc0f
+    echo '	$(AR_CREATE_FOR_TARGET)' ${dir}/libgcc_eh.a $libgcc_eh_static_objS
6fdc0f
     echo '	$(RANLIB_FOR_TARGET)' ${dir}/libgcc_eh.a
6fdc0f
 
6fdc0f
     if [ -z "$SHLIB_MULTILIB" ]; then