This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
RFA: [PATCH]: MIPS enhancements to libgcj...
- From: Andrew Haley <aph at redhat dot com>
- To: David Daney <ddaney at avtrex dot com>
- Cc: java-patches at gcc dot gnu dot org
- Date: Tue, 21 Oct 2003 21:04:35 +0100
- Subject: RFA: [PATCH]: MIPS enhancements to libgcj...
- References: <3F956E85.5030007@avtrex.com>
David Daney writes:
> Greetings,
>
> Here is a much improved version of my libgcj/mips patch.
>
> Build for and tested on mipsisa32el-linux.
>
> For some running the test suite on our hardware is broken again, but I
> have successfully run several of the key tests manually. This
> includes PR218 and SyncTest.
>
> All added features were tested. Also the gcc-3.3.1 version passes the
> entire libjava testsuite (except for a couple of unrelated code
> generation problems) for what ever that is worth.
>
> The patch adds can_unwind_signal=yes and backtracing for all
> mips*-linux platforms. And enable_hash_synchronization_default=yes
> for (mipsel*-linux* | mipsisa32el*-linux*). I think the hash
> synchronization would work for others as well, but would want someone
> to test it before enabling it.
>
> The backtrace is implemented in sysdep/dwarf2-backtrace.cc which I
> think will work for all *-linux* targets. If someone wants to test
> this theory, that would be great.
This is very cool. It'll fix problems on a number of targets.
> Since I am only an amateur MIPS expert, perhaps someone (a real MIPS
> expert for example) should look at sysdeps/mips/locks.h
>
> BTW: I now have write after approval in gcc so I can do the checkins now.
>
> David Daney.
> Index: libjava/ChangeLog
> ===================================================================
> RCS file: /cvs/gcc/gcc/libjava/ChangeLog,v
> retrieving revision 1.2280
> diff -3 -u -p -r1.2280 ChangeLog
> --- libjava/ChangeLog 20 Oct 2003 20:14:04 -0000 1.2280
> +++ libjava/ChangeLog 21 Oct 2003 01:36:41 -0000
> @@ -1,3 +1,27 @@
> +2003-10-20 David Daney <ddaney@avtrex.com)
> +
> + * include/mips-signal.h: New file.
> + * sysdep/dwarf2-backtrace.cc: New file.
> + * sysdep/mips: New directory.
> + * sysdep/mips/locks.h: New file.
> + * Makefile.am(extra_cc_files): New, to allow extra c++ files to be
> + added to libgcj.
> + (extra_cc_source_files): Ditto.
> + * configure.in: added --with-broken-dladdr, --with-libgcj-mips-xgot
> + (mips*-*-linux*): Use sysdep/dwarf2-backtrace.cc to generate
> + backtrace, and include/mips-signal.h as SIGNAL_HANDLER
> + (HAVE_DLADDR): Make it depend on setting of --with-broken-dladdr.
> + (EXTRA_CC_FILES): New, to support conditional addition of
> + sysdep/dwarf2-backtrace.cc.
> + * configure.host(mips*-*-linux*): sysdeps_dir=mips,
> + can_unwind_signal=yes, use -mxgot if --with-libgcj-mips-xgot set.
> + (mipsel*-linux* | mipsisa32el*-linux*): Enable hash synchronization.
> + * configure: Regenerated.
> + * Makefile.in: Regenerated.
> + * include/config.h.in: Regenerated.
> + * include/Makefile.in: Regenerated.
> + * testsuite/Makefile.in: Regenerated.
> +
This is OK. However, I'm not a MIPS expert either. Perhaps you do
need to ask one. But don't let that stop you checking this in.
I agree you do need "memory" clobbers on the barrier instructions, if
"sync" does what I think it does.
Andrew.