Opened 10 years ago

Closed 9 years ago

#10 closed task (fixed)

Build hotspot

Reported by: dmik Owned by:
Priority: blocker Milestone: Core
Component: general Version:
Severity: Keywords:
Cc:

Description

Build the hotspot component (make hotspot).

Attachments (1)

emx-cconv-on-var-crash.diff (11.2 KB) - added by dmik 9 years ago.
Fixes the GCC 4.4.x crash when applying function attributes like system to variables.

Download all attachments as: .zip

Change History (11)

comment:1 Changed 9 years ago by dmik

  • Milestone changed from Alpha to Core

We actually need HotSpot? for Core because it's the primary JVM implementation everything else depends on.

comment:2 Changed 9 years ago by dmik

The windows code uses try/except (this is a MSVC compiler extension to support structured exception handling). I will need to add support for this to Odin. See http://svn.netlabs.org/odin32/ticket/7 for details.

comment:3 Changed 9 years ago by dmik

Went further and got the following compiler crash:

Killed by SIGSEGV
pid=0x03fa ppid=0x03f9 tid=0x0001 slot=0x00bd pri=0x0200 mc=0x0001
D:\DEV\GCC442\USR\LOCAL442\LIBEXEC\GCC\I386-PC-OS2-EMX\4.4.2\CC1PLUS.EXE
CC1PLUS 0:00304713
cs:eip=005b:00314713      ss:esp=0053:00a8ee78      ebp=00a8ee78
 ds=0053      es=0053      fs=150b      gs=0000     efl=00012202
eax=026c4e80 ebx=00a8ef18 ecx=00000007 edx=029cce00 edi=00000000 esi=00916ac0
Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.
g++: Internal error: Segmentation fault (program cc1plus)
Please submit a full bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

I saw something similar already and it was related to using the _System calling convention modifier (which is internally defined by GCC as attribute((system))). The question is how to find it out this time: there are 100's of includes...

comment:4 Changed 9 years ago by dmik

Errr, silly trac markup (very annoying for any programmer). _System=__attribute__((__system__)), that is.

comment:5 Changed 9 years ago by dmik

I can't find that out. I'm afraid I will have to build GCC myself to see what's going wrong. This will take some extra time.

comment:6 Changed 9 years ago by psmedley

Thanks to a nice explanation from dmik of how to trigger the SIGSEGV, the GCC crash turned out to be pretty easy to fix. Will be fixed in the 20100707 build that I will upload later today (dmik already has the fixed cc1.exe and cc1plus.exe)

comment:7 Changed 9 years ago by dmik

Okay, I finally fixed the crash caused by the calling convention applied to a variable (the previous fix didn't fix it completely). The patches are attached. My testcases show that the compiler generates exactly the same assembler code for all calling conventions in question as w/o the patch but it does not crash.

Paul, please test them too and if OK, upload a new GCC -- I would have to rebuild my tree with debug info turned off which would take another many hours I'm afraid.

P.S. It's a real-real-real-real pain to make diffs on already diffed sources, this sucks. A complete waste of time. Everything must use GIT or similar system with local commits nowadays. Another waste of time is autoconf & friends. Hey, the world has simpler tools for that!

Changed 9 years ago by dmik

Fixes the GCC 4.4.x crash when applying function attributes like system to variables.

comment:8 Changed 9 years ago by dmik

Okay, the server's jvm.dll is finally built. Waiting for the client one to finish...

comment:9 Changed 9 years ago by dmik

All variants of hotspot (client/server/kernel) are built now. Note that it will be tested later when we've got console java working. All issues will go to separate defects.

comment:10 Changed 9 years ago by dmik

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.