This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java 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]

Re: [PATCH,final respin] [4.5 regression] Fix PR42811: java.lang.ExceptionInInitializerError in ecj1 and associated issues.


On 03/20/2010 02:46 PM, Dave Korn wrote:
>> On 02/20/2010 06:36 PM, Dave Korn wrote:
> 
>>>   Bootstrapped and tested on i686-pc-cygwin; fixes PR42811 and doesn't cause
>>> any further regressions (there are some preexisting fails that this makes no
>>> difference to).  OK for head?
>>
>> A couple of things:
>>
>> 1.  Bounce the gc changes off gc@napali
> 
>   The GC changes have now been accepted upstream.  During porting them, I
> developed a testcase, which (by your kind permission) I will submit as a
> separate patch shortly after this round of patches is accepted and checked in.
> 
>> 2.  Is it really necessary to make the main program depend on a symbol
>>     in libgcj-noncore when BC compiling?  Can't you make the libgcj
>>     itself depend on libgcj-noncore?
> 
>   It turns out that I can, and I can do it without having to hack libtool or
> do anything else unsuitable (IMO) for stage 3.  Bootstrapped, and test results
> posted(*), no regressions.
> 
> pr42811-final.diff
> libjava/ChangeLog:
> 
> 	* libjava/configure.ac (DLLTOOL): Call AC_CHECK_TOOL.
> 	(libgcj_sublib_core_extra_deps): New host-dependent configure var.
> 	(LIBGCJ_SUBLIB_CORE_EXTRA_DEPS): AC_SUBST it.
> 	* libjava/configure.host (libgcj_sublib_core_extra_deps): Define
> 	appropriately on Cygwin and MinGW.
> 	(libgcj_sublib_core_extra_deps): Add libgcj-noncore-dummy import
> 	stub library on Cygwin and MinGW.
> 	* libjava/Makefile.am (LIBJAVA_CORE_EXTRA): Import AC_SUBST'd
> 	LIBGCJ_SUBLIB_CORE_EXTRA_DEPS if building sublibs, else define empty.
> 	(libgcj_la_DEPENDENCIES): Use it.
> 	(DLL_VERSION): New makefile macro.
> 	(libgcj-noncore-dummy.dll.a): New build rule for dummy import stub
> 	library.
> 	(libgcj_noncore_la_LIBADD): Trim superfluous convenience libs.
> 	(AM_MAKEFLAGS): Add DLLTOOL recursive propagation.
> 	* libjava/libgcj-noncore-dummy.def: New file.
> 	* libjava/Makefile.in: Regenerate.
> 	* libjava/include/Makefile.in: Likewise.
> 	* libjava/testsuite/Makefile.in: Likewise.
> 	* libjava/configure: Likewise.
> 	* libjava/gcj/Makefile.in: Likewise.
> 
> pr42811-uninit-mem-fix.diff:
> libjava/ChangeLog:
> 
> 	* jvmti.cc (_Jv_GetJVMTIEnv): Avoid use of uninitialised memory.
> 
> pr42811-boehm-gc-fixes.diff:
> boehm-gc/ChangeLog:
> 
> 	* include/private/gc_priv.h (struct roots) [CYGWIN32]: Don't
> 	declare r_next member on Cygwin as on other windows hosts.
> 	(LOG_RT_SIZE) [CYGWIN32]: Don't define likewise.
> 	(RT_SIZE) [CYGWIN32]: Likewise.
> 	(struct _GC_arrays) [CYGWIN32]: Do declare _heap_bases[] member
> 	likewise.
> 	(GC_heap_bases) [CYGWIN32]: Do define likewise.
> 	(struct _SYSTEM_INFO) [CYGWIN32]: Do forward-declare likewise.
> 	(GC_sysinfo) [CYGWIN32]: Do declare extern likewise.
> 	(GC_n_heap_bases) [CYGWIN32]: Likewise.
> 	(GC_is_tmp_root) [CYGWIN32]: Do prototype likewise.
> 	* include/private/gcconfig.h (GC_win32_get_mem) [CYGWIN32]: Likewise.
> 	(GET_MEM) [CYGWIN32]: Do define likewise.
> 	* boehm-gc/ptr_chck.c (GC_is_visible) [CYGWIN32]: Do handle dynamic
> 	registration likewise.
> 	* boehm-gc/os_dep.c (GC_setpagesize) [CYGWIN32]: Do define likewise.
> 	(GC_no_win32_dlls) [CYGWIN32]: Define as constant false, unlike
> 	other windows hosts.
> 	(GC_sysinfo) [CYGWIN32]: Define as on other windows hosts.
> 	(GC_n_heap_bases) [CYGWIN32]: Likewise.
> 	(GLOBAL_ALLOC_TEST) [CYGWIN32]: Likewise.
> 	(GC_win32_get_mem) [CYGWIN32]: Likewise, but wrapping GC_unix_get_mem
> 	rather than GlobalAlloc/VirtualAlloc.
> 	(GC_win32_free_heap) [CYGWIN32]: Likewise, but wrapping free instead
> 	of GlobalFree (even though the function body is optimised away).
> 	* boehm-gc/mark_rts.c (add_roots_to_index) [CYGWIN32]: Define as on
> 	other windows hosts.
> 	(GC_add_roots_inner) [CYGWIN32]: Avoid overlapping or adjacent
> 	intervals likewise.
> 	(GC_clear_roots) [CYGWIN32]: Clear GC_root_index[] likewise.
> 	(GC_rebuild_root_index) [CYGWIN32]: Define as on other windows hosts.
> 	(GC_remove_tmp_roots) [CYGWIN32]: Call it likewise.
> 	(GC_remove_roots) [CYGWIN32]: Don't define, as on other windows hosts.
> 	(GC_is_tmp_root) [CYGWIN32]: Define, as on other windows hosts.
> 	(GC_cond_register_dynamic_libraries) [CYGWIN32]: Handle temporary
> 	roots and dynamic registration likewise.
> 	* boehm-gc/dyn_load.c (GC_has_static_roots) [CYGWIN32]: Define as on
> 	other windows hosts.
> 	(GC_register_has_static_roots_callback) [CYGWIN32]: Likewise.
> 	(GC_cond_add_roots) [CYGWIN32]: Likewise.
> 	(GC_register_main_static_data) [CYGWIN32]: Define to always return
> 	false, as on MSWINCE
> 	(HAVE_REGISTER_MAIN_STATIC_DATA) [CYGWIN32]: Define as on other
> 	windows hosts.
> 	(GC_warn_fb) [CYGWIN32]: Likewise.
> 	(GC_disallow_ignore_fb) [CYGWIN32]: Likewise.
> 	(GC_ignore_fb_mb) [CYGWIN32]: Likewise.
> 	(GC_ignore_fb) [CYGWIN32]: Likewise.
> 	(is_frame_buffer) [CYGWIN32]: Likewise.
> 	(GC_dump_meminfo) [CYGWIN32]: Likewise.
> 	(GC_wnt) [CYGWIN32]: Define to constant true.
> 	(GC_register_dynamic_libraries) [CYGWIN32]: Define as on other
> 	windows hosts.
> 
>   OK for HEAD?

OK, thanks.

Andrew.


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