summaryrefslogtreecommitdiffstats
path: root/libjava/sysdep
diff options
context:
space:
mode:
authordavek <davek@138bc75d-0d04-0410-961f-82ee72b054a4>2009-09-22 18:58:13 +0000
committerdavek <davek@138bc75d-0d04-0410-961f-82ee72b054a4>2009-09-22 18:58:13 +0000
commitfa280a58741fcaca48ce7ee0329228b0c7f77986 (patch)
tree89fb7aceeab12051629b5e047d3df2ddf3ab2894 /libjava/sysdep
parent5a97a04d3e5a92a66c055da3e6fcc3cb2505286b (diff)
downloadppe42-gcc-fa280a58741fcaca48ce7ee0329228b0c7f77986.tar.gz
ppe42-gcc-fa280a58741fcaca48ce7ee0329228b0c7f77986.zip
gcc/ChangeLog
* config/i386/cygming.h (TARGET_USE_JCR_SECTION): Enable. * config/i386/cygwin.h (LIBGCJ_SONAME): Define. * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise. libjava/ChangeLog * configure.host (enable_libgcj_sublibs_default): New variable, set for Cygwin and MinGW. * configure.ac (--enable-libgcj-sublibs): New command-line switch. (BUILD_SUBLIBS): New AM_CONDITIONAL relating to it. (libgcj_spec_lgcj_override): New variable, define if building sublibs. (libgcj_spec_lgcj_bc_override): Likewise for when USE_LIBGCJ_BC. (LIBGCJ_SPEC_LGCJ): New variable to abstract "-lgcj" from specs. (LIBGCJ_SPEC_LGCJ_BC): Likewise for when USE_LIBGCJ_BC. (LIBGCJ_SPEC): Use them. * configure: Regenerate. * Makefile.am (LOWER_PACKAGE_FILES_LO): New variable. (ALL_PACKAGE_SOURCE_FILES_LO): Likewise. (NONCORE_PACKAGE_SOURCE_FILES_LO): Likewise. (CORE_PACKAGE_SOURCE_FILES_LO): Likewise. (toolexeclib_LTLIBRARIES): Add libgcj-noncore.la if building sublibs. (libgcj_noncore_la_LIBADD_SUBOBJECTS): New variable. (libgcj_la_LIBADD_SUBOBJECTS): Likewise. (libgcj_la_LDFLAGS_NOUNDEF): Likewise. (libgij_la_LDFLAGS): Add DLL-related options. (libgcj_la_LDFLAGS): Use libgcj_la_LDFLAGS_NOUNDEF and libgcj_la_LIBADD_SUBOBJECTS. (libgcj_la_DEPENDENCIES): Adjust to match. (libgcj_noncore_la_SOURCES, libgcj_noncore_la_LDFLAGS, libgcj_noncore_la_LIBADD, libgcj_noncore_la_DEPENDENCIES, libgcj_noncore_la_LINK): New automake variables for sublibrary. (libgcj_tools_la_LDFLAGS): Add DLL-related flags. (libgcj_tools_la_LIBADD): New variable. (libjvm_la_LDFLAGS): Add DLL-related flags. (lib_gnu_awt_xlib_la_LDFLAGS): Likewise. (libgcj_bc_la_LDFLAGS): Likewise. (libgij_la_DEPENDENCIES): Add dependency on libgcj-noncore.la when building sublibs. (libgcj_tools_la_DEPENDENCIES, libjvm_la_DEPENDENCIES, lib_gnu_awt_xlib_la_DEPENDENCIES, jv_convert_DEPENDENCIES, gcj_dbtool_DEPENDENCIES, gc_analyze_DEPENDENCIES, ecjx_DEPENDENCIES): Likewise. * Makefile.in: Regenerate. * sysdep/i386/backtrace.h (MAIN_FUNC): New #define for main function, set appropriately for Cygwin on that platform or to "main" elsewhere. (fallback_backtrace): Use it to limit stack unwind. libjava/libltdl/ChangeLog: * ltdl.h (LT_SCOPE): Change conditional to avoid breaking auto-export during libgcj DLL linking. * Makefile.am (libltdl_la_LDFLAGS): Remove -bindir switch. * Makefile.in: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@152041 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/sysdep')
-rw-r--r--libjava/sysdep/i386/backtrace.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/libjava/sysdep/i386/backtrace.h b/libjava/sysdep/i386/backtrace.h
index 63b32746137..ee793b22a0f 100644
--- a/libjava/sysdep/i386/backtrace.h
+++ b/libjava/sysdep/i386/backtrace.h
@@ -13,7 +13,14 @@ details. */
#include <java-stack.h>
-extern int main (int, char **);
+#ifdef __CYGWIN__
+/* To allow this to link as a DLL. */
+#define MAIN_FUNC dll_crt0__FP11per_process
+extern "C" int MAIN_FUNC () __declspec(dllimport);
+#else /* !__CYGWIN__ */
+#define MAIN_FUNC main
+extern int MAIN_FUNC (int, char **);
+#endif /* ?__CYGWIN__ */
/* The context used to keep track of our position while unwinding through
the call stack. */
@@ -104,7 +111,7 @@ fallback_backtrace (_Unwind_Trace_Fn trace_fn, _Jv_UnwindState *state)
const char **, bool))_Jv_RunMain;
if (ctx.meth_addr == (_Jv_uintptr_t)jv_runmain
|| ctx.meth_addr == (_Jv_uintptr_t)_Jv_ThreadStart
- || (ctx.meth_addr - (_Jv_uintptr_t)main) < 16)
+ || (ctx.meth_addr - (_Jv_uintptr_t)MAIN_FUNC) < 16)
break;
}
OpenPOWER on IntegriCloud