GCJ 4.03 crash on Windows 98 continued

Marco Trudel mtrudel@gmx.ch
Tue Jun 20 09:16:00 GMT 2006


Ranjit already made a backport (thank you Ranjit) which I adapted for 
the 4.1.1...

regards
Marco


Marco Trudel wrote:
> Hello Hans
> 
> If you create a patch for gcc4.1.1, I'll be happy to test if it works on 
> Windows 98... I assume this would be extra work for you, but it would be 
> great if you could do it...
> 
> regards
> Marco
> 
> 
> Boehm, Hans wrote:
>> Gc6.7 in fact contains the suggested fix.  It explicitly distinguishes
>> Windows NT descendants from ME and predecessors, and checks against
>> MEM_PRIVATE for the latter.  It would be good to confirm that that
>> solves the problem.
>>
>> Hans
>>> -----Original Message-----
>>> From: Ranjit Mathew [mailto:rmathew@gmail.com] Sent: Monday, June 19, 
>>> 2006 11:38 AM
>>> To: Jesper Juul / Soup Games
>>> Cc: java@gcc.gnu.org; Boehm, Hans
>>> Subject: Re: GCJ 4.03 crash on Windows 98 continued
>>>
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA1
>>>
>>> Jesper Juul / Soup Games wrote:
>>>> For the record, I have gotten a bit deeper on the issue of why gcj 
>>>> 4.0x executables crash on Windows 98.
>>> In my limited testing, I have also found that  even the simplest 
>>> executables produced by GCJ to crash under Windows 98. It seems to be 
>>> a problem in the GC. One of the workarounds is to set the environment 
>>> variable GC_DONT_GC to disable the GC entirely.
>>>
>>> Another workaround is to take a hint from:
>>>
>>> http://blog.gmane.org/gmane.comp.programming.garbage-collectio
>>> n.boehmgc/day=20051129
>>>
>>> and apply something like the following patch:
>>> - ------------------------------- 8< -------------------------------
>>> Index: dyn_load.c
>>> ===================================================================
>>> - --- dyn_load.c  (revision 114756)
>>> +++ dyn_load.c  (working copy)
>>> @@ -901,7 +901,8 @@ void GC_register_dynamic_libraries()
>>>                  * !is_frame_buffer(p, buf.RegionSize, buf.Type)
>>>                  * instead of just checking for MEM_IMAGE.
>>>                  * If something breaks, change it back. */
>>> - -               && buf.Type == MEM_IMAGE) {
>>> +               /* && buf.Type == MEM_IMAGE) {   */
>>> +               && !is_frame_buffer(p, buf.RegionSize, buf.Type)) {
>>>  #              ifdef DEBUG_VIRTUALQUERY
>>>                   GC_dump_meminfo(&buf);
>>>  #              endif
>>> - ------------------------------- 8< -------------------------------
>>>
>>> To quote Hans:
>>> "It sounds like the right solution here is to check is to explicitly 
>>> check for ME and predecessors, and to allow MEM_PRIVATE there, but to 
>>> continue to insist on MEM_IMAGE for newer msft operating systems."
>>>
>>> HTH,
>>> Ranjit.
>>>
>>> - --
>>> Ranjit Mathew       Email: rmathew AT gmail DOT com
>>>
>>> Bangalore, INDIA.     Web: http://rmathew.com/
>>>
>>>
>>>
>>>
>>> -----BEGIN PGP SIGNATURE-----
>>> Version: GnuPG v1.4.2 (GNU/Linux)
>>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>>>
>>> iD8DBQFElu8aYb1hx2wRS48RAmTBAKCfwcjRLkDoujST8y0ewr2d2hAQjQCfaVEv
>>> UsCG+PaK74Ip/I7QweXM3wA=
>>> =4FV1
>>> -----END PGP SIGNATURE-----
>>>
>>
>>
> 
> 



More information about the Java mailing list