Hadrian: need includes/*.h build headers
Many includes/*.h have missing need
s in hadrian. Here is some example (cleaned up) output from fsatrace:
$ fsatrace rwm - -- _build/GL-16521_default/stage0/bin/ghc -Wall -hisuf p_hi -osuf p_o -hcsuf p_hc -static -prof -hide-all-packages -no-user-package-db '-package-db _build/GL-16521_default/stage1/lib/package.conf.d' '-this-unit-id ghc-prim-0.6.1' '-package-id rts-1.0' -i -i_build/GL-16521_default/stage1/libraries/ghc-prim/build -i_build/GL-16521_default/stage1/libraries/ghc-prim/build/autogen -ilibraries/ghc-prim/. -Iincludes -I_build/GL-16521_default/generated -I_build/GL-16521_default/stage1/libraries/ghc-prim/build -I_build/GL-16521_default/stage1/lib/x86_64-linux-ghc-8.9.0.20190430/rts-1.0/include -I_build/GL-16521_default/generated -optc-I_build/GL-16521_default/generated -optP-include -optP_build/GL-16521_default/stage1/libraries/ghc-prim/build/autogen/cabal_macros.h -outputdir _build/GL-16521_default/stage1/libraries/ghc-prim/build -Wnoncanonical-monad-instances -optc-Werror=unused-but-set-variable -optc-Wno-error=inline -c libraries/ghc-prim/GHC/Types.hs -o _build/GL-16521_default/stage1/libraries/ghc-prim/build/GHC/Types.p_o -O2 -H32m -this-unit-id ghc-prim -XHaskell2010 -ghcversion-file=_build/GL-16521_default/generated/ghcversion.h -Wno-deprecated-flags -Wno-trustworthy-safe
$ fsatrace rwm - -- _build/GL-16521_default/stage0/bin/ghc -Wall -hisuf p_hi -osuf p_o -hcsuf p_hc -static -prof -hide-all-packages -no-user-package-db '-package-db _build/GL-16521_default/stage1/lib/package.conf.d' '-this-unit-id ghc-prim-0.6.1' '-package-id rts-1.0' -i -i_build/GL-16521_default/stage1/libraries/ghc-prim/build -i_build/GL-16521_default/stage1/libraries/ghc-prim/build/autogen -ilibraries/ghc-prim/. -Iincludes -I_build/GL-16521_default/generated -I_build/GL-16521_default/stage1/libraries/ghc-prim/build -I_build/GL-16521_default/stage1/lib/x86_64-linux-ghc-8.9.0.20190430/rts-1.0/include -I_build/GL-16521_default/generated -optc-I_build/GL-16521_default/generated -optP-include -optP_build/GL-16521_default/stage1/libraries/ghc-prim/build/autogen/cabal_macros.h -outputdir _build/GL-16521_default/stage1/libraries/ghc-prim/build -Wnoncanonical-monad-instances -optc-Werror=unused-but-set-variable -optc-Wno-error=inline -c libraries/ghc-prim/GHC/Types.hs -o _build/GL-16521_default/stage1/libraries/ghc-prim/build/GHC/Types.p_o -O2 -H32m -this-unit-id ghc-prim -XHaskell2010 -ghcversion-file=_build/GL-16521_default/generated/ghcversion.h -Wno-deprecated-flags -Wno-trustworthy-safe
r|_build/GL-16521_default/stage0/lib/settings
r|_build/GL-16521_default/stage0/lib/platformConstants
r|_build/GL-16521_default/stage0/lib/llvm-targets
r|_build/GL-16521_default/stage0/lib/llvm-passes
r|/lib/terminfo/x/xterm-256color
r|_build/GL-16521_default/stage0/lib/package.conf.d/package.cache
r|_build/GL-16521_default/stage1/lib/package.conf.d/package.cache
r|libraries/ghc-prim/GHC/Types.hs
w|/tmp/ghc18485_0/ghc_2.h
r|/dev/urandom
w|/tmp/ghc18485_0/ghc_1.hscpp
r|libraries/ghc-prim/GHC/Types.hs
r|/usr/include/stdc-predef.h
r|_build/GL-16521_default/stage1/libraries/ghc-prim/build/autogen/cabal_macros.h
r|_build/GL-16521_default/generated/ghcversion.h
r|/tmp/ghc18485_0/ghc_2.h
r|includes/MachDeps.h
r|_build/GL-16521_default/generated/ghcautoconf.h
r|/tmp/ghc18485_0/ghc_1.hscpp
r|includes/MachDeps.h
r|_build/GL-16521_default/generated/ghcautoconf.h
r|_build/GL-16521_default/generated/ghcversion.h
r|_build/GL-16521_default/stage1/libraries/ghc-prim/build/autogen/cabal_macros.h
r|/usr/include/stdc-predef.h
w|_build/GL-16521_default/stage1/libraries/ghc-prim/build/GHC/Types.p_hi
w|/tmp/ghc18485_0/ghc_4.c
w|/tmp/ghc18485_0/ghc_3.s
w|/tmp/ghc18485_0/ghc_6.rsp
r|/tmp/ghc18485_0/ghc_6.rsp
r|/dev/urandom
r|/tmp/ghc18485_0/ghc_4.c
w|/tmp/ghc18485_0/ghc_5.s
r|/usr/include/stdc-predef.h
r|_build/GL-16521_default/generated/ghcversion.h
r|includes/Rts.h
r|includes/Stg.h
r|includes/ghcconfig.h
r|_build/GL-16521_default/generated/ghcautoconf.h
r|_build/GL-16521_default/generated/ghcplatform.h
r|/usr/include/math.h
r|/usr/include/x86_64-linux-gnu/bits/libc-header-start.h
r|/usr/include/features.h
r|/usr/include/x86_64-linux-gnu/sys/cdefs.h
r|/usr/include/x86_64-linux-gnu/bits/wordsize.h
r|/usr/include/x86_64-linux-gnu/bits/long-double.h
r|/usr/include/x86_64-linux-gnu/gnu/stubs.h
r|/usr/include/x86_64-linux-gnu/gnu/stubs-64.h
r|/usr/include/x86_64-linux-gnu/bits/types.h
r|/usr/include/x86_64-linux-gnu/bits/wordsize.h
r|/usr/include/x86_64-linux-gnu/bits/typesizes.h
r|/usr/include/x86_64-linux-gnu/bits/math-vector.h
r|/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h
r|/usr/include/x86_64-linux-gnu/bits/floatn.h
r|/usr/include/x86_64-linux-gnu/bits/floatn-common.h
r|/usr/include/x86_64-linux-gnu/bits/long-double.h
r|/usr/include/x86_64-linux-gnu/bits/flt-eval-method.h
r|/usr/include/x86_64-linux-gnu/bits/fp-logb.h
r|/usr/include/x86_64-linux-gnu/bits/fp-fast.h
r|/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h
r|/usr/include/x86_64-linux-gnu/bits/mathcalls.h
r|/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h
r|/usr/include/x86_64-linux-gnu/bits/mathcalls.h
r|/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h
r|/usr/include/x86_64-linux-gnu/bits/mathcalls.h
r|/usr/include/x86_64-linux-gnu/bits/mathcalls-helper-functions.h
r|/usr/include/x86_64-linux-gnu/bits/mathcalls.h
r|/usr/include/x86_64-linux-gnu/bits/iscanonical.h
r|/usr/include/x86_64-linux-gnu/bits/mathinline.h
r|includes/MachDeps.h
r|includes/stg/Types.h
r|/usr/include/inttypes.h
r|/usr/lib/gcc/x86_64-linux-gnu/7/include/stdint.h
r|/usr/include/stdint.h
r|/usr/include/x86_64-linux-gnu/bits/libc-header-start.h
r|/usr/include/x86_64-linux-gnu/bits/wchar.h
r|/usr/include/x86_64-linux-gnu/bits/wordsize.h
r|/usr/include/x86_64-linux-gnu/bits/stdint-intn.h
r|/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h
r|includes/stg/DLL.h
r|includes/stg/RtsMachRegs.h
r|includes/stg/MachRegs.h
r|includes/stg/Regs.h
r|includes/stg/Ticky.h
r|includes/stg/Prim.h
r|includes/stg/SMP.h
r|includes/HsFFI.h
r|/usr/lib/gcc/x86_64-linux-gnu/7/include/float.h
r|includes/RtsAPI.h
r|includes/rts/Time.h
r|includes/rts/EventLogWriter.h
r|/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h
r|/usr/lib/gcc/x86_64-linux-gnu/7/include/stdbool.h
r|includes/rts/Types.h
r|/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h
r|/usr/include/stdlib.h
r|/usr/include/x86_64-linux-gnu/bits/libc-header-start.h
r|/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h
r|/usr/include/x86_64-linux-gnu/bits/waitflags.h
r|/usr/include/x86_64-linux-gnu/bits/waitstatus.h
r|/usr/include/x86_64-linux-gnu/bits/types/locale_t.h
r|/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h
r|/usr/include/x86_64-linux-gnu/sys/types.h
r|/usr/include/x86_64-linux-gnu/bits/types/clock_t.h
r|/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h
r|/usr/include/x86_64-linux-gnu/bits/types/time_t.h
r|/usr/include/x86_64-linux-gnu/bits/types/timer_t.h
r|/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h
r|/usr/include/endian.h
r|/usr/include/x86_64-linux-gnu/bits/endian.h
r|/usr/include/x86_64-linux-gnu/bits/byteswap.h
r|/usr/include/x86_64-linux-gnu/bits/wordsize.h
r|/usr/include/x86_64-linux-gnu/bits/byteswap-16.h
r|/usr/include/x86_64-linux-gnu/bits/uintn-identity.h
r|/usr/include/x86_64-linux-gnu/sys/select.h
r|/usr/include/x86_64-linux-gnu/bits/select.h
r|/usr/include/x86_64-linux-gnu/bits/wordsize.h
r|/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h
r|/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h
r|/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h
r|/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
r|/usr/include/x86_64-linux-gnu/bits/select2.h
r|/usr/include/x86_64-linux-gnu/sys/sysmacros.h
r|/usr/include/x86_64-linux-gnu/bits/sysmacros.h
r|/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h
r|/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h
r|/usr/include/x86_64-linux-gnu/bits/pthreadtypes-arch.h
r|/usr/include/x86_64-linux-gnu/bits/wordsize.h
r|/usr/include/alloca.h
r|/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h
r|/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h
r|/usr/include/x86_64-linux-gnu/bits/stdlib-float.h
r|/usr/include/x86_64-linux-gnu/bits/stdlib.h
r|includes/rts/Config.h
r|includes/rts/Constants.h
r|includes/rts/prof/CCS.h
r|includes/rts/prof/LDV.h
r|includes/rts/OSThreads.h
r|/usr/include/pthread.h
r|/usr/include/sched.h
r|/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h
r|/usr/include/x86_64-linux-gnu/bits/sched.h
r|/usr/include/x86_64-linux-gnu/bits/cpu-set.h
r|/usr/include/time.h
r|/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h
r|/usr/include/x86_64-linux-gnu/bits/time.h
r|/usr/include/x86_64-linux-gnu/bits/timex.h
r|/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h
r|/usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h
r|/usr/include/x86_64-linux-gnu/bits/setjmp.h
r|/usr/include/x86_64-linux-gnu/bits/wordsize.h
r|/usr/include/errno.h
r|/usr/include/x86_64-linux-gnu/bits/errno.h
r|/usr/include/linux/errno.h
r|/usr/include/x86_64-linux-gnu/asm/errno.h
r|/usr/include/asm-generic/errno.h
r|/usr/include/asm-generic/errno-base.h
r|includes/rts/SpinLock.h
r|includes/rts/Messages.h
r|/usr/lib/gcc/x86_64-linux-gnu/7/include/stdarg.h
r|includes/rts/Threads.h
r|includes/rts/storage/FunTypes.h
r|includes/rts/storage/InfoTables.h
r|includes/rts/storage/Closures.h
r|includes/rts/storage/Heap.h
r|includes/rts/storage/Closures.h
r|includes/rts/storage/ClosureTypes.h
r|includes/rts/storage/TSO.h
r|includes/stg/MiscClosures.h
r|includes/rts/storage/Block.h
r|includes/ghcconfig.h
r|includes/rts/storage/ClosureMacros.h
r|includes/rts/storage/MBlock.h
r|includes/rts/storage/GC.h
r|/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h
r|includes/rts/OSThreads.h
r|includes/rts/Parallel.h
r|includes/rts/Signals.h
r|includes/rts/BlockSignals.h
r|includes/rts/Hpc.h
r|includes/rts/Flags.h
r|/usr/include/stdio.h
r|/usr/include/x86_64-linux-gnu/bits/libc-header-start.h
r|/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h
r|/usr/include/x86_64-linux-gnu/bits/types/__FILE.h
r|/usr/include/x86_64-linux-gnu/bits/types/FILE.h
r|/usr/include/x86_64-linux-gnu/bits/libio.h
r|/usr/include/x86_64-linux-gnu/bits/_G_config.h
r|/usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h
r|/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h
r|/usr/include/x86_64-linux-gnu/bits/stdio_lim.h
r|/usr/include/x86_64-linux-gnu/bits/sys_errlist.h
r|/usr/include/x86_64-linux-gnu/bits/stdio.h
r|/usr/include/x86_64-linux-gnu/bits/stdio2.h
r|includes/stg/Types.h
r|includes/rts/Time.h
r|includes/rts/Adjustor.h
r|includes/rts/FileLock.h
r|includes/Stg.h
r|includes/rts/GetTime.h
r|includes/rts/Globals.h
r|includes/rts/IOManager.h
r|includes/rts/Linker.h
r|includes/rts/Ticky.h
r|includes/rts/Timer.h
r|includes/rts/StablePtr.h
r|includes/rts/StableName.h
r|includes/rts/TTY.h
r|includes/rts/Utils.h
r|includes/rts/PrimFloat.h
r|includes/rts/Main.h
r|includes/rts/Profiling.h
r|includes/rts/StaticPtrTable.h
r|includes/rts/Libdw.h
r|includes/rts/LibdwPool.h
w|/tmp/ghc18485_0/ghc_7.p_o.tmp
r|/tmp/ghc18485_0/ghc_5.s
m|/tmp/ghc18485_0/ghc_7.p_o|/tmp/ghc18485_0/ghc_7.p_o.tmp
w|/tmp/ghc18485_0/ghc_8.p_o.tmp
r|/tmp/ghc18485_0/ghc_3.s
m|/tmp/ghc18485_0/ghc_8.p_o|/tmp/ghc18485_0/ghc_8.p_o.tmp
w|/tmp/ghc18485_0/ghc_9.ldscript
w|/tmp/ccBSGqsF.ld
w|/tmp/ccwVPdaH.le
r|/tmp/ccBSGqsF.ld
r|/tmp/ccwVPdaH.le
w|/tmp/ghc18485_0/ghc_10.rsp
r|/tmp/ghc18485_0/ghc_10.rsp
w|/tmp/cc2HQaBD
r|/tmp/cc2HQaBD
w|/tmp/ccIOCJOI
w|/tmp/ccSvjWnF.ld
w|/tmp/ccKWTk6G.le
r|/tmp/ccIOCJOI
r|/tmp/ghc18485_0/ghc_9.ldscript
r|/tmp/ghc18485_0/ghc_8.p_o
r|/tmp/ghc18485_0/ghc_7.p_o
w|_build/GL-16521_default/stage1/libraries/ghc-prim/build/GHC/Types.p_o
r|/tmp/ccSvjWnF.ld
r|/tmp/ccKWTk6G.le
Using hadrian/shakes --lint-fsatrace
feature, I get this corresponding lint error:
Lint checking error - ../.build/GL-16521_default/stage1/libraries/ghc-prim/build/GHC/Types.p_o - 58 values were used but not depended upon:
Lint checking error - ../.build/GL-16521_default/stage1/libraries/ghc-prim/build/GHC/Types.p_o - 58 values were used but not depended upon:
Used: includes/Rts.h
Used: includes/Stg.h
Used: includes/ghcconfig.h
Used: includes/stg/Types.h
Used: includes/stg/DLL.h
Used: includes/stg/RtsMachRegs.h
Used: includes/stg/MachRegs.h
Used: includes/stg/Regs.h
Used: includes/stg/Ticky.h
Used: includes/stg/Prim.h
Used: includes/stg/SMP.h
Used: includes/HsFFI.h
Used: includes/RtsAPI.h
Used: includes/rts/Time.h
Used: includes/rts/EventLogWriter.h
Used: includes/rts/Types.h
Used: includes/rts/Config.h
Used: includes/rts/Constants.h
Used: includes/rts/prof/CCS.h
Used: includes/rts/prof/LDV.h
Used: includes/rts/OSThreads.h
Used: includes/rts/SpinLock.h
Used: includes/rts/Messages.h
Used: includes/rts/Threads.h
Used: includes/rts/storage/FunTypes.h
Used: includes/rts/storage/InfoTables.h
Used: includes/rts/storage/Closures.h
Used: includes/rts/storage/Heap.h
Used: includes/rts/storage/ClosureTypes.h
Used: includes/rts/storage/TSO.h
Used: includes/stg/MiscClosures.h
Used: includes/rts/storage/Block.h
Used: includes/rts/storage/ClosureMacros.h
Used: includes/rts/storage/MBlock.h
Used: includes/rts/storage/GC.h
Used: includes/rts/Parallel.h
Used: includes/rts/Signals.h
Used: includes/rts/BlockSignals.h
Used: includes/rts/Hpc.h
Used: includes/rts/Flags.h
Used: includes/rts/Adjustor.h
Used: includes/rts/FileLock.h
Used: includes/rts/GetTime.h
Used: includes/rts/Globals.h
Used: includes/rts/IOManager.h
Used: includes/rts/Linker.h
Used: includes/rts/Ticky.h
Used: includes/rts/Timer.h
Used: includes/rts/StablePtr.h
Used: includes/rts/StableName.h
Used: includes/rts/TTY.h
Used: includes/rts/Utils.h
Used: includes/rts/PrimFloat.h
Used: includes/rts/Main.h
Used: includes/rts/Profiling.h
Used: includes/rts/StaticPtrTable.h
Used: includes/rts/Libdw.h
Used: includes/rts/LibdwPool.h
These files should be needed Hadrian.