snowleopard / hadrian

Hadrian: a new build system for the Glasgow Haskell Compiler. Now merged into the GHC tree!
https://gitlab.haskell.org/ghc/ghc/tree/master/hadrian
MIT License
208 stars 39 forks source link

Move touchy from lib/bin to bin #570

Open snowleopard opened 6 years ago

snowleopard commented 6 years ago

UPDATE: The original issue is now fixed in #572, but we might want to move touchy to bin.


After #568 we have a new Windows-specific failure:

Command: _build/stage0/bin/ghc.exe -Wall -hisuf hi -osuf o -hcsuf hc -static -hide-all-packages -no-user-package-db "-package-db _build/stage1/lib/package.conf.d" "-this-unit-id base-4.11.1.0" "-package-id ghc-prim-0.5.2.0" "-package-id integer-gmp-1.0.2.0" "-package-id rts-1.0" -i -i_build/stage1/libraries/base/build -i_build/stage1/libraries/base/build/autogen -ilibraries/base/. -Iincludes -I_build/generated -I_build/stage1/libraries/base/build -I_build/stage1/libraries/base/build/include -Ilibraries/base/include -IC:/ghc/_build/stage1/x86_64-windows-ghc-8.5.20180413/integer-gmp-1.0.2.0/include -IC:/ghc/_build/stage1/x86_64-windows-ghc-8.5.20180413/rts-1.0/include -I_build/generated -optc-I_build/generated -optP-include -optP_build/stage1/libraries/base/build/autogen/cabal_macros.h -optc-fno-stack-protector -optP-DOPTIMISE_INTEGER_GCD_LCM -odir _build/stage1/libraries/base/build -hidir _build/stage1/libraries/base/build -stubdir _build/stage1/libraries/base/build -Wnoncanonical-monad-instances -optc-Wno-error=inline -c libraries/base/GHC/Real.hs-boot -o _build/stage1/libraries/base/build/GHC/Real.o-boot -O0 -H64m -this-unit-id base -XHaskell2010 -ghcversion-file=C:/ghc/_build/generated/ghcversion.h -Wno-deprecated-flags -Wno-trustworthy-safe
Exit code: 1
Stderr:
ghc.exe: could not execute: C:\ghc\_build\stage0\lib/bin/touchy.exe
)

Looks like in #531 touchy was relocated to the bin directory. I guess we should bring it back to lib/bin.

angerman commented 6 years ago

I'd rather argue that we should locate touchy.exe in bin rather than lib.

snowleopard commented 6 years ago

@angerman I agree, but this requires changes to GHC.

In the meantime I suggest we follow what GHC does. It looks a bit inconvenient but not a big deal.

alpmestan commented 6 years ago

@snowleopard We don't put our binaries under .../lib/bin anymore though with our relocatable builds. Do you see a good reason why we should not put touchy right next to the ghc binaries that'll use it, under <build root>/stage<N>/bin?

angerman commented 6 years ago

(Sorry, I've been mostly offline last week).

So it looks like it would be a required change to the aclocal.m4 file, to change the touchy path if we are building with hadrian? Wasn't there some discussion about adding --hadrian to configure?

Alternatively, we could patch the lib/settings file in hadrian, after building ghc.

snowleopard commented 6 years ago

Do you see a good reason why

I don't, but people who chose lib might... I'm not the one who will be reviewing this patch to GHC.

snowleopard commented 6 years ago

Wasn't there some discussion about adding --hadrian to configure?

@angerman Yes, there was such suggestion, but I'm not a fan of it. I don't want to add another potential way to screw up when using Hadrian.

For now, I've just pushed a simple commit (#572) that moves touchy to lib/bin, to follow the current file layout used in GHC. I'd like to have a working CI as soon as possible, so I don't want to be blocked by a review of the potential patch to GHC. When/if GHC moves touchy to bin we'll simply revert #572.