Opened 14 years ago
Closed 14 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)
Change History (11)
comment:1 by , 14 years ago
Milestone: | Alpha → Core |
---|
comment:2 by , 14 years ago
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 by , 14 years ago
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 by , 14 years ago
Errr, silly trac markup (very annoying for any programmer). _System=__attribute__((__system__)), that is.
comment:5 by , 14 years ago
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 by , 14 years ago
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 by , 14 years ago
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!
by , 14 years ago
Attachment: | emx-cconv-on-var-crash.diff added |
---|
Fixes the GCC 4.4.x crash when applying function attributes like system to variables.
comment:8 by , 14 years ago
Okay, the server's jvm.dll is finally built. Waiting for the client one to finish...
comment:9 by , 14 years ago
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 by , 14 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
We actually need HotSpot for Core because it's the primary JVM implementation everything else depends on.