[GHC] #16272: libffi copies files into rts build tree

GHC ghc-devs at haskell.org
Fri Feb 1 18:11:29 UTC 2019


#16272: libffi copies files into rts build tree
-------------------------------------+-------------------------------------
           Reporter:  mpickering     |             Owner:  (none)
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Build System   |           Version:  8.6.3
  (Hadrian)                          |
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 The `rts` should explicitly depend on `ffi.h` and `ffitarget.h`, then use
 this path to copy in these two header files itself rather than relying on
 the libffi build rule to copy them into the `rts/build` directory.

 You can see this happening in `Rules.Libffi.libffiRules`

 This often results in a failure where the `rts` rule will fail to produce
 these files after deleting build products in `_build`.

 {{{
 shakeArgsWith         0.000s    0%
 Function shake        0.006s    0%
 Database read         1.051s    0%
 Database compression  0.146s    0%
 With database         0.031s    0%
 Running rules       121.010s   98%  =========================
 Total               122.244s  100%
 Error when running Shake build system:
   at src/Main.hs:58:30-42:
 * Depends on: stage1:lib:text
   at src/Rules/SimpleTargets.hs:31:5-15:
 * Depends on: integersimple/stage1/lib/package.conf.d/text-1.2.3.1.conf
 * Depends on: OracleQ (ContextDataKey (Context {stage = Stage1, package =
 Package {pkgType = Library, pkgName = "text", pkgPath = "libraries/text"},
 way = v}))
 * Depends on: integersimple/stage1/libraries/text/setup-config
 * Depends on: integersimple/stage1/lib/package.conf.d/base-4.12.0.0.conf
 * Depends on: OracleQ (ContextDataKey (Context {stage = Stage1, package =
 Package {pkgType = Library, pkgName = "base", pkgPath = "libraries/base"},
 way = v}))
 * Depends on: integersimple/stage1/libraries/base/setup-config
 * Depends on: integersimple/stage1/lib/package.conf.d/rts-1.0.conf
 * Depends on: integersimple/stage1/rts/build/libHSrts-1.0_thr_l.a
 * Depends on: integersimple/stage1/rts/build/c/Interpreter.thr_l_o
 * Depends on: integersimple/stage1/rts/build/ffi.h
 * Depends on: integersimple/stage1/rts/build/ffi.h
 integersimple/stage1/rts/build/ffitarget.h
 * Raised the exception:
 Error, &%> rule failed to produce 2 files (out of 2)
   integersimple/stage1/rts/build/ffi.h - MISSING
   integersimple/stage1/rts/build/ffitarget.h - MISSING
 CallStack (from HasCallStack):
   error, called at src/Development/Shake/Internal/Rules/Files.hs:245:13 in
 shake-0.17.2-586622e6ae1d899ec790b1028cae3413c00a616f124bac634769a9607581e631:Development.Shake.Internal.Rules.Files
 }}}

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16272>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list