[GHC] #16272: libffi copies files into rts build tree
#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
#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) | 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: | -------------------------------------+------------------------------------- Changes (by NeilMitchell): * cc: ndmitchell@… (added) -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16272#comment:1> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#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) | 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: | -------------------------------------+------------------------------------- Changes (by NeilMitchell): * cc: ndmitchell@… (removed) * cc: NeilMitchell (added) -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16272#comment:2> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#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) | 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 Marge Bot <ben+marge-bot@…>): In [changeset:"1dad4fc27ea128a11ba0077f459494c2a1ca0d5c/ghc" 1dad4fc2/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="1dad4fc27ea128a11ba0077f459494c2a1ca0d5c" Hadrian: Fix untracked dependencies This is a preparation for #16295: https://ghc.haskell.org/trac/ghc/ticket/16295 This commit mostly focuses on getting rid of untracked dependencies, which prevent Shake's new `--shared` feature from appropriately caching build rules. There are three different solutions to untracked dependencies: * Track them! This is the obvious and the best approach, but in some situations we cannot use it, for example, because a build rule creates files whose names are not known statically and hence cannot be specified as the rule's outputs. * Use Shake's `produces` to record outputs dynamically, within the rule. * Use Shake's `historyDisable` to disable caching for a particular build rule. We currently use this approach only for `ghc-pkg` which mutates the package database and the file `package.cache`. These two tickets are fixed as the result: Ticket #16271: https://ghc.haskell.org/trac/ghc/ticket/16271 Ticket #16272: https://ghc.haskell.org/trac/ghc/ticket/16272 (this one is fixed only partially: we correctly record the dependency, but we still copy files into the RTS build tree). }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16272#comment:3> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
participants (1)
-
GHC