libffi build logic is quite spread out
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".
- Modify the
Make
builder to take an additional argument which indicates whether to add theinstall
flag. - Move the override of
Make
for libffi intoRules.Libffi
and then import it intoSettings.Builders.Make
. This seems better but you still not entirely obvious what is going on.
Do the hadrian experts have any opinion on this?
Trac metadata
Trac field | Value |
---|---|
Version | 8.6.3 |
Type | Task |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |