Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0007760 [Squeak] VM crash always 04-13-13 13:22 04-18-13 01:21
Reporter lewis View Status public  
Assigned To lewis
Priority normal Resolution open  
Status assigned   Product Version
Summary 0007760: FloatMathPlugin crashes the VM if compiled in 64 bit mode
Description FloatMathPluginTest pass when VM is compiled 32 bit, but fail when compiled 64 bit. testCos (and probably others) will crash the VM.
Additional Information Tested on Linux with interpreter VM, but presumably effects all platforms.
Attached Files

- Relationships
related to 0007592closed lewis FloatMathPlugin crashes the VM if compiled with gcc optimization 

- Notes
(0014347 - 479 - 533 - 533 - 533 - 533 - 533)
lewis
04-18-13 00:53

The failure occurs in the support library, e.g. a segfault within the call to __ieee754_cos(). This is a gcc optimization bug, and turning off optimization makes it go away. This was identified in issue 7592 but it looks like we have reenabled too much of the optimization. Fix should go into config.cmake to set optimization to -O0, probably like this:

IF (CMAKE_COMPILER_IS_GNUCC AND CMAKE_SYSTEM_NAME STREQUAL "Linux")
  SET (LIBM_CFLAGS "${CMAKE_C_FLAGS} -O0")
ENDIF ()
 
(0014348 - 292 - 346 - 346 - 346 - 346 - 346)
lewis
04-18-13 01:21

To refine this a bit, on my SuSE Linux box the optimization -O0 and -O1 both work, and -O2 crashes with a segfault. So it may be a crashworthy compromise to set it as:

IF (CMAKE_COMPILER_IS_GNUCC AND CMAKE_SYSTEM_NAME STREQUAL "Linux")
  SET (LIBM_CFLAGS "${CMAKE_C_FLAGS} -O1")
ENDIF ()
 

- Issue History
Date Modified Username Field Change
04-13-13 13:22 lewis New Issue
04-13-13 13:22 lewis Status new => assigned
04-13-13 13:22 lewis Assigned To  => lewis
04-13-13 13:23 lewis Relationship added related to 0007592
04-18-13 00:53 lewis Note Added: 0014347
04-18-13 01:21 lewis Note Added: 0014348


Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
42 total queries executed.
32 unique queries executed.
Powered by Mantis Bugtracker