diff options
Diffstat (limited to 'rts/Linker.c')
-rw-r--r-- | rts/Linker.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/rts/Linker.c b/rts/Linker.c index c8451b0425..9dc0598ddf 100644 --- a/rts/Linker.c +++ b/rts/Linker.c @@ -3798,6 +3798,11 @@ ocGetNames_PEi386 ( ObjectCode* oc ) /* I'm sure this is the Right Way to do it. However, the alternative of testing the sectab_i->Name field seems to work ok with Cygwin. + + EZY: We should strongly consider using this style, because + it lets us pick up sections that should be added (e.g. + for a while the linker did not work due to missing .eh_frame + in this section.) */ if (sectab_i->Characteristics & MYIMAGE_SCN_CNT_CODE || sectab_i->Characteristics & MYIMAGE_SCN_CNT_INITIALIZED_DATA) @@ -3807,6 +3812,7 @@ ocGetNames_PEi386 ( ObjectCode* oc ) if (0==strcmp(".text",(char*)secname) || 0==strcmp(".text.startup",(char*)secname) || 0==strcmp(".rdata",(char*)secname)|| + 0==strcmp(".eh_frame", (char*)secname)|| 0==strcmp(".rodata",(char*)secname)) kind = SECTIONKIND_CODE_OR_RODATA; if (0==strcmp(".data",(char*)secname) || @@ -3835,6 +3841,8 @@ ocGetNames_PEi386 ( ObjectCode* oc ) /* ignore unknown section that appeared in gcc 3.4.5(?) */ && 0!= strcmp(".reloc", (char*)secname) && 0 != strcmp(".rdata$zzz", (char*)secname) + /* ignore linker directive sections */ + && 0 != strcmp(".drectve", (char*)secname) ) { errorBelch("Unknown PEi386 section name `%s' (while processing: %" PATH_FMT")", secname, oc->fileName); stgFree(secname); |