From f202305d019c7a5d86bcbc14f9d6fe64c3fbe05b Mon Sep 17 00:00:00 2001 From: Andrew Haley Date: Tue, 4 Sep 2007 18:00:31 +0000 Subject: [multiple changes] 2007-09-04 Andrew Haley PR java/27908 * testsuite/libjava.lang/PR27908.java ({run1,run2,run3}.isRunning): New Method. (main): Fix race condition. 2007-08-29 Andrew Haley * gnu/classpath/natVMStackWalker.cc (VMStackWalker::getCallingClass): Make sure we're not sibcalled. (GET_CALLING_CLASS): Define for ARM EABI. 2007-08-22 Andrew Haley * configure.host (BACKTRACESPEC): Add arm*-linux*. 2007-08-22 Andrew Haley * configure.ac (LIBSTDCXXSPEC): New. * configure.host: Add arm*-linux* to pthread test. * configure.ac (LIBGCJTESTSPEC): Add path to libstdc++ for ARM EABI. * testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Use -fexceptions for ARM EABI. * testsuite/lib/libjava.exp (libjava_arguments): Add libgcj-test.spec. (libjava_invoke): Log the invocation. 2007-08-15 Andrew Haley * configure.ac (extra_ldflags): Define. * Makefile.am: Use extra_ldflags for all executables. 2007-08-14 Andrew Haley * sysdep/arm/backtrace.h: Remove stubs for _Unwind_GetIPInfo, _Unwind_GetRegionStart, and _Unwind_Backtrace. 2007-07-27 Andrew Haley * gnu/classpath/natVMStackWalker.cc (GET_CALLING_CLASS): Stub for ARM EABI. * exception.cc (get_exception_header_from_ue): New. (get_ttype_entry): ARM EABI version. (PERSONALITY_FUNCTION): Add ARM EABI code. * sysdep/arm/backtrace.h: New file. * stacktrace.cc (_URC_NORMAL_STOP): New. * configure.ac (extra_ldflags_libjava): Add libsupc++.la for ARM EABI. * configure.host (BACKTRACESPEC): Add arm/backtrace.h. From-SVN: r128098 --- libjava/gnu/classpath/natVMStackWalker.cc | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'libjava/gnu/classpath/natVMStackWalker.cc') diff --git a/libjava/gnu/classpath/natVMStackWalker.cc b/libjava/gnu/classpath/natVMStackWalker.cc index 1b336ca..2f068ca 100644 --- a/libjava/gnu/classpath/natVMStackWalker.cc +++ b/libjava/gnu/classpath/natVMStackWalker.cc @@ -19,6 +19,7 @@ details. */ #include #include +#ifndef __ARM_EABI_UNWINDER__ // Return the class of the method that contains PC. // This is a macro not a function, since defining it as one would // introduce an extra frame on the stack. */ @@ -44,6 +45,11 @@ details. */ \ klass; \ }) +#else // __ARM_EABI_UNWINDER__ +// ARM EABI doesn't support _Unwind_FindEnclosingFunction. +#define GET_CALLING_CLASS(PC) \ + (_Jv_StackTrace::GetStackWalkerCallingClass ()) +#endif JArray * gnu::classpath::VMStackWalker::getClassContext(void) @@ -59,14 +65,18 @@ jclass gnu::classpath::VMStackWalker::getCallingClass(void) { _Jv_InitClass (&::gnu::classpath::VMStackWalker::class$); - return _Jv_StackTrace::GetStackWalkerCallingClass (); + jclass result = _Jv_StackTrace::GetStackWalkerCallingClass (); + __asm__ __volatile__ ("" : : "g" (result)); + return result; } jclass gnu::classpath::VMStackWalker::getCallingClass(::gnu::gcj::RawData *pc) { _Jv_InitClass (&::gnu::classpath::VMStackWalker::class$); - return GET_CALLING_CLASS(pc); + jclass result = GET_CALLING_CLASS(pc); + __asm__ __volatile__ ("" : : "g" (result)); + return result; } ::java::lang::ClassLoader * -- cgit v1.1