[GHC] #15808: Master sefaults on windows during aeson build when stage2 libs have dwarf enabled.
GHC
ghc-devs at haskell.org
Sat Oct 27 10:33:25 UTC 2018
#15808: Master sefaults on windows during aeson build when stage2 libs have dwarf
enabled.
-------------------------------------+-------------------------------------
Reporter: AndreasK | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.7
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by AndreasK):
I've traced it back to ocRunInit_PEi386 so far.
There in the call to `(*init)` we trigger an access exception by calling
into the target address.
I've seen some changes in related linker code were made recently. I will
try to bisect that.
{{{
bool
ocRunInit_PEi386 ( ObjectCode *oc )
{
if (!oc || !oc->info || !oc->info->init) {
return true;
}
int argc, envc;
char **argv, **envv;
getProgArgv(&argc, &argv);
getProgEnvv(&envc, &envv);
Section section = *oc->info->init;
ASSERT(SECTIONKIND_INIT_ARRAY == section.kind);
uint8_t *init_startC = section.start;
init_t *init_start = (init_t*)init_startC;
init_t *init_end = (init_t*)(init_startC + section.size);
// ctors are run *backwards*!
for (init_t *init = init_end - 1; init >= init_start; init--)
(*init)(argc, argv, envv);
freeProgEnvv(envc, envv);
releaseOcInfo (oc);
return true;
}
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15808#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list