Opened 10 years ago
Closed 10 years ago
#109 closed defect (fixed)
Build of pe/pec fails with GCC 4.7.3
Reported by: | dmik | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | next |
Component: | odin | Version: | 0.8.9 |
Severity: | medium | Keywords: | |
Cc: |
Description
There is one incompatibility with GCC 4.7.3 in Odin: the PE and PEC tools.
They use custom startup code (to reserve as low virtual address in private memory space as possible — this is vital for some WIn32 .EXE files which have the very low virtual entry point which we must be able to provide as there is 1-to-1 address mapping).
However, GCC 4.7.3 puts a reference to __ehInit
(C++ exception handling) in each object file it generates. And since we don't link to the normal CRT startup code in case of PE/PEC, this symbol remains undefined. This seems like a bug of GCC, more details are here: https://github.com/psmedley/gcc/issues/8.
Change History (4)
comment:1 by , 10 years ago
comment:3 by , 10 years ago
using -fno-asynchronous-unwind-tables produces a object file without unwinding table (so without eh_frame and _ehInit).
comment:4 by , 10 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
The issue has been fixed within https://github.com/psmedley/gcc/issues/8. The new build of gcc 4.9.2 that includes this fix works well w/o the need to specify -fno-asynchronous-unwind-tables
by hand as is now assumed by default on OS/2.
pe and pec built fine for me with gcc 4.7.3 (my own build not the rpm one)