Skip to content

libffi copies files into rts build tree

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
Trac metadata
Trac field Value
Version 8.6.3
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Build System (Hadrian)
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information