[GHC] #16055: libffi build logic is quite spread out

GHC ghc-devs at haskell.org
Sat Dec 15 23:47:48 UTC 2018


#16055: libffi build logic is quite spread out
-------------------------------------+-------------------------------------
           Reporter:  mpickering     |             Owner:  (none)
               Type:  task           |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Compiler       |           Version:  8.6.3
           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 rules for building libffi are in `Rules.Libffi` and at a first glance
 they just use the normal `Make` builder in order to build the project.
 However, if one looks carefully, you actually need to run `make install`
 so the normal `Make` builder has an argument appended in
 `Settings.Builders.Make`.

 The problem here is that the two modules are completely unrelated to each
 other. In order to discover this I had to wonder why the build was failing
 to copy a file and then by chance guess that it wasn't running `make
 install`. I think grepped for `"install"` and managed to find this
 additional rule.

 Is there a way to move this logic into one place? I considered two
 possibilities but it didn't seem to be "how things are done".

 1. Modify the `Make` builder to take an additional argument which
 indicates whether to add the `install` flag.
 2. Move the override of `Make` for libffi into `Rules.Libffi` and then
 import it into `Settings.Builders.Make`. This seems better but you still
 not entirely obvious what is going on.

 Do the hadrian experts have any opinion on this?

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


More information about the ghc-tickets mailing list