1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-23 11:18:54 +00:00
freebsd/sys/conf
Bryan Drewery b9cd412e7b FAST_DEPEND: Always run depend via beforebuild which removes many hacks.
This will generate dependencies rather than depending on the previous behavior
of depending on the guessed OBJS: *.h dependecies or a user running
'make depend'.

Experimentation showed that depending only on headers was not enough and
prone to .ORDER errors.  Downstream users may also have added
dependencies into beforedepend or afterdepend targets.  The safest way to
ensure dependencies are generated before build is to run 'make depend'
beforehand rather than just depending on DPSRCS+SRCS.

Note that the OBJS_DEPEND_GUESS mechanism (a.k.a .if !exists(.depend) then
foo.o: *.h) is still useful as it improves incremental builds with missing
.depend.* files and allows 'make foo.o' to usually work, while this
'beforebuild: depend' ensures that the build will always find all dependencies.
The 'make foo.o' case has no means of a 'beforebuild' hook.

This also removes several hacks in the DIRDEPS_BUILD:
- NO_INSTALL_INCLUDES is no longer needed as it mostly was to work around
  .ORDER problems with building the needed headers early.
- DIRDEPS_BUILD: It is no longer necesarry to track "local dependencies" in
  Makefile.depend.

  These were only in Makefile.depend for 'clean builds' since nothing would
  generate the files due to skipping 'make depend' and early dependency
  bugs that have been fixed, such as adding headers into SRCS for the
  OBJS_DEPEND_GUESS mechanism.  Normally if a .depend file does not exist then
  a dependency is added by bsd.lib.mk/bsd.prog.mk from OBJS: *.h.  However,
  meta.autodep.mk creates a .depend file from created meta files and inserts
  that into Makefile.depend.  It also only tracks *.[ch] files though which can
  miss some dependencies that are hooked into 'make depend'.  This .depend
  that is created then breaks incremental builds due to the !exists(.depend)
  checks for OBJS_DEPEND_GUESS.  The goal was to skip 'make depend' yet it only
  really works the first time.  After that files are not generated as expected,
  which r288966 tried to address but was using buildfiles: rather than
  beforebuild: and was reverted in r291725.  As noted previously,
  depending only on headers in beforebuild: would create .ORDER errors
  in some cases.

  meta.autodep.mk is still used to generate Makefile.depend though via:
    gendirdeps: Makefile.depend
    .END: gendirdeps

  This commit allows removing all of the "local dependencies" in
  Makefile.depend which cuts down on churn and removes some of the
  arch-dependent Makefile.depend files.

  The "local dependencies" were also problematic for bootstrapping.

Sponsored by:	EMC / Isilon Storage Division
2016-02-24 17:19:18 +00:00
..
config.mk
dtb.mk
files Obsolete mkulzma(8) and geom_uncompress(4), their functionality 2016-02-24 00:39:36 +00:00
files.amd64 hyperv/utils: Code rearrange and cleanup 2016-02-24 05:01:18 +00:00
files.arm Rename busdma_machdep.c to busdma_machdep-v4.c, pmap.c to pmap-v4.c 2016-02-20 07:45:21 +00:00
files.arm64 Make pci_host_generic and thunderx_pci common 2016-02-24 06:05:30 +00:00
files.i386 hyperv/utils: Code rearrange and cleanup 2016-02-24 05:01:18 +00:00
files.mips Remove bus space fdt for MIPS. 2016-02-11 06:19:32 +00:00
files.pc98
files.powerpc
files.riscv Add support for symmetric multiprocessing (SMP). 2016-02-24 16:50:34 +00:00
files.sparc64
kern.mk Use medany (Medium/Anywhere) GCC code model for RISC-V. 2016-02-18 14:38:37 +00:00
kern.opts.mk Hook the meta/nofilemon build into using FAST_DEPEND. 2016-02-24 17:19:13 +00:00
kern.post.mk FAST_DEPEND: Always run depend via beforebuild which removes many hacks. 2016-02-24 17:19:18 +00:00
kern.pre.mk Fix MFS builds when both MD_ROOT_SIZE and MFS_IMAGE are specified 2016-02-02 07:02:51 +00:00
kmod_syms.awk
kmod.mk FAST_DEPEND: Rework how guessed dependencies are handled. 2016-02-24 17:19:05 +00:00
ldscript.amd64
ldscript.arm
ldscript.arm64
ldscript.i386
ldscript.mips
ldscript.mips.cfe
ldscript.mips.mips64
ldscript.mips.octeon1
ldscript.powerpc
ldscript.powerpc64
ldscript.riscv Welcome the RISC-V 64-bit kernel. 2016-01-29 15:12:31 +00:00
ldscript.sparc64
Makefile.amd64
Makefile.arm ARM: All remaining functions in cpufunc_asm_arm10.S are identical with 2016-02-02 14:53:34 +00:00
Makefile.arm64
Makefile.i386
Makefile.mips
Makefile.pc98
Makefile.powerpc
Makefile.riscv Welcome the RISC-V 64-bit kernel. 2016-01-29 15:12:31 +00:00
Makefile.sparc64
makeLINT.mk
makeLINT.sed
newvers.sh
NOTES Kill few remaininng instances of GEOM_UNCOMPRESS. 2016-02-24 05:16:24 +00:00
options o kill few remaining references to the GEOM_UNCOMPRESS; 2016-02-24 05:17:52 +00:00
options.amd64
options.arm Move the Allwinner kernels to use fdt_pinctrl. This will read the pin 2016-02-17 18:28:03 +00:00
options.arm64
options.i386
options.mips Rename some CPU_MIPSxxx options and add new CPU_MIPSxxx options 2016-02-02 07:47:38 +00:00
options.pc98
options.powerpc
options.riscv Welcome the RISC-V 64-bit kernel. 2016-01-29 15:12:31 +00:00
options.sparc64
systags.sh
WITHOUT_SOURCELESS
WITHOUT_SOURCELESS_HOST
WITHOUT_SOURCELESS_UCODE