[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