This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Fix sparcv9 multilibs
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Richard Henderson <rth at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Fri, 5 Apr 2002 00:59:21 +0200
- Subject: [PATCH] Fix sparcv9 multilibs
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
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