Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0007592 [Squeak] VM crash always 12-26-10 19:15 04-13-14 12:37
Reporter lewis View Status public  
Assigned To lewis
Priority normal Resolution fixed  
Status closed   Product Version trunk
Summary 0007592: FloatMathPlugin crashes the VM if compiled with gcc optimization
Description If compiled with -O2 optimization, the plugin crashes the VM. Observed on Linux and Windows, but probably applies to all platforms using gcc. Future VM builds should use -O0 (no optimizer).
Additional Information Problem reported on squeak-dev, see <http://lists.squeakfoundation.org/pipermail/squeak-dev/2010-December/156132.html> [^]
Attached Files  platforms-plugins-FloatMathPlugin-config.cmake.tgz [^] (460 bytes) 12-30-10 19:56

- Relationships

SYSTEM WARNING: Creating default object from empty value

SYSTEM WARNING: Creating default object from empty value

related to 0007583new  Float does not use FloatMathPlugin for bit-consistent float math across platforms 
related to 0007760assigned lewis FloatMathPlugin crashes the VM if compiled in 64 bit mode 

- Notes
(0014000 - 269 - 287 - 497 - 497 - 497 - 497)
lewis
12-26-10 23:59

Per Andreas <http://lists.squeakfoundation.org/pipermail/vm-dev/2010-December/006309.html> [^]

the FloatMathPlugin must also be compiled with -mno-fused-madd as this would produce another source of differences depending on whether a compiler chooses to use fmadd or not.
 
(0014003 - 366 - 408 - 408 - 408 - 408 - 408)
lewis
12-27-10 21:16

The Cog VM is compiled with -O2 apart from the Cogit and the FloatMathPlugin
which are both compiled with -O, the first for alloca issues, the second for
the aforementloned issues. But I think Igor found that -O1 is not necessary
for Cogit and instead may be necessary for the heartbeat code. In any case
the bulk of the VM is compiled with -O2.

best
Eliot
 
(0014005 - 143 - 143 - 143 - 143 - 143 - 143)
lewis
12-30-10 19:34

An additional issue is that fdlibm does not build properly on 64-bit Linux. This is caused by __LITTLE_ENDIAN not being set properly on x86_64.
 
(0014006 - 130 - 130 - 130 - 130 - 130 - 130)
lewis
12-30-10 19:57

platforms-plugins-FloatMathPlugin-config.cmake.tgz is a cmake file for the standard unix VM that sets gcc compiler flags properly.
 
(0014007 - 297 - 297 - 297 - 297 - 297 - 297)
lewis
12-31-10 06:37

Ian has made the necessary changes for platforms/unix, and Igor is making corresponding changes to support the OS X builds for 64 bits, so the issue should be resolved for future VM builds. No known issues on Windows. Close issue on that basis (can be reopened if further concerns are identified).
 

- Issue History
Date Modified Username Field Change
12-26-10 19:15 lewis New Issue
12-26-10 19:15 lewis Status new => assigned
12-26-10 19:15 lewis Assigned To  => lewis
12-26-10 23:59 lewis Note Added: 0014000
12-27-10 00:30 lewis Relationship added related to 0007583
12-27-10 21:16 lewis Note Added: 0014003
12-30-10 19:34 lewis Note Added: 0014005
12-30-10 19:56 lewis File Added: platforms-plugins-FloatMathPlugin-config.cmake.tgz
12-30-10 19:57 lewis Note Added: 0014006
12-31-10 06:37 lewis Status assigned => resolved
12-31-10 06:37 lewis Resolution open => fixed
12-31-10 06:37 lewis Note Added: 0014007
04-13-13 13:23 lewis Relationship added related to 0007760
04-13-14 12:37 lewis Status resolved => closed


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