This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Fix sparcv9 multilibs


Hi!

And this should fix Brad's problem (briefly tested on sparc64-linux,
full bootstrap running overnight). Ok to commit if testing is ok?

BTW: It looks to me like very bad idea to give different sonames
to different libgcc_s multilibs, at least to selected ones.
If sparc64-linux gcc creates libgcc_s.so.1 (64-bit) and libgcc_s_32.so.1 
(32-bit) and sparc64-linux with default CPU v7 creates libgcc_s.so.1 
(32-bit) and libgcc_s_64.so.1 (64-bit), then it is a big mess.
I fear libgcc_s_alt.so.1 will be libgcc_s_64_alt.so.1 in one
of the cases too.
Both on Solaris and Linux both 64-bit and 32-bit libgcc_s should
have the same soname IMHO and reside
in
/lib/libgcc_s.so.1, /lib/sparcv9/libgcc_s.so.1
resp.
/lib/libgcc_s.so.1, /lib64/libgcc_s.so.1, /lib64/libgcc_s_alt.so.1

2002-04-05  Jakub Jelinek  <jakub@redhat.com>

	* mklibgcc.in: Use separate libgcc.map for each multilib.
	* Makefile.in (distclean): Don't remove libgcc.map here.

--- gcc/mklibgcc.in.jj	Sat Mar 23 12:02:51 2002
+++ gcc/mklibgcc.in	Fri Apr  5 00:55:40 2002
@@ -257,12 +257,13 @@ for ml in $MULTILIBS; do
     libgcc_st_objs="$libgcc_st_objs libgcc/${dir}/$o"
   done
 
-  if [ "$SHLIB_LINK" -a "$SHLIB_MKMAP" -a -z "$mapfile" ]; then
-    mapfile="libgcc.map"
+  if [ "$SHLIB_LINK" -a "$SHLIB_MKMAP" ]; then
+    mapfile="libgcc/${dir}/libgcc.map"
+    tmpmapfile="libgcc/${dir}/tmp-libgcc.map"
     echo ""
     echo "${mapfile}: $SHLIB_MKMAP $SHLIB_MAPFILES $libgcc_sh_objs"
-    echo '	{ $(NM_FOR_TARGET)'" $SHLIB_NM_FLAGS $libgcc_sh_objs; echo %%; cat $SHLIB_MAPFILES; } | "'$(AWK)'" -f $SHLIB_MKMAP $SHLIB_MKMAP_OPTS > "'tmp-$@'
-    echo '	mv tmp-$@ $@'
+    echo '	{ $(NM_FOR_TARGET)'" $SHLIB_NM_FLAGS $libgcc_sh_objs; echo %%; cat $SHLIB_MAPFILES; } | "'$(AWK)'" -f $SHLIB_MKMAP $SHLIB_MKMAP_OPTS > ${tmpmapfile}"
+    echo '	mv '"$tmpmapfile"' $@'
   fi
   shlib_deps="$shlib_deps $mapfile"
 
--- gcc/Makefile.in.jj	Fri Apr  5 00:15:09 2002
+++ gcc/Makefile.in	Fri Apr  5 00:29:45 2002
@@ -2476,7 +2476,7 @@ distclean: clean $(INTL_DISTCLEAN) lang.
 	-rm -f testsuite/{gcc,g++}.{log,sum}
 	-rm -f intl/libintl.h libintl.h
 	-rm -f cxxmain.c
-	-rm -f mklibgcc libgcc.map gccbug .gdbinit configargs.h
+	-rm -f mklibgcc gccbug .gdbinit configargs.h
 	-rm -f gcov.pod
 	-rm -f fixinc/Makefile
 	-rmdir ada cp f java objc fixinc intl po 2>/dev/null

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]