freebsd-dev/sys
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
..
amd64 Return dst as the result from memcpy(9) on amd64. 2016-02-24 11:58:15 +00:00
arm Remove redundant __ARM_ARCH >= 6 check in armv6 specific files. 2016-02-23 10:12:50 +00:00
arm64 Make pci_host_generic and thunderx_pci common 2016-02-24 06:05:30 +00:00
boot Add support for symmetric multiprocessing (SMP). 2016-02-24 16:50:34 +00:00
bsm
cam Remove a stray else. It isn't needed (due to the return at the end of 2016-02-18 15:12:52 +00:00
cddl As <machine/vmparam.h> is included from <vm/vm_param.h>, there is no 2016-02-22 09:08:04 +00:00
compat Call cap_rights_init() properly. 2016-02-24 10:54:26 +00:00
conf FAST_DEPEND: Always run depend via beforebuild which removes many hacks. 2016-02-24 17:19:18 +00:00
contrib Optimize ROL and ROR emulations and fix comments. 2016-02-18 23:03:37 +00:00
crypto
ddb
dev hyperv/vmbus: Use free(9) for interrupt page; it is allocated by malloc(9) 2016-02-24 08:54:50 +00:00
fs Ext2: cleanup setting of ctime/mtime/birthtime. 2016-02-19 15:53:08 +00:00
gdb
geom Fixes to make it compile under gcc-4.2. 2016-02-24 02:52:49 +00:00
gnu Update our copy of the Linux dts files to be in sync with Linux 4.5-rc1. We 2016-02-09 16:42:32 +00:00
i386 As <machine/pmap.h> is included from <vm/pmap.h>, there is no need to 2016-02-22 09:02:20 +00:00
isa Replace several bus_alloc_resource() calls using default arguments with bus_alloc_resource_any() 2016-02-19 03:37:56 +00:00
kern Make asynchronous connection failures on UNIX sockets fail with ECONNRESET. 2016-02-24 17:10:32 +00:00
kgssapi kcrypto_aes: Use separate sessions for AES and SHA1 2016-02-02 00:14:51 +00:00
libkern
mips Migrate UNCOMPRESS -> UZIP 2016-02-24 03:06:26 +00:00
modules hyperv/utils: Code rearrange and cleanup 2016-02-24 05:01:18 +00:00
net Fix regression introduced on 272446r. 2016-02-19 06:35:53 +00:00
net80211 net80211: fix TIM cleanup. 2016-02-23 21:11:42 +00:00
netgraph These files were getting sys/malloc.h and vm/uma.h with header pollution 2016-02-01 17:41:21 +00:00
netinet Fix build after r29592. 2016-02-23 21:21:47 +00:00
netinet6 Don't leak an address in an error path. 2016-02-23 18:50:34 +00:00
netipsec Fix useless check. m_pkthdr.len should be equal to orglen. 2016-02-24 12:28:49 +00:00
netnatm
netpfil Fix bug in filling and handling ipfw's O_DSCP opcode. 2016-02-24 13:16:03 +00:00
netsmb
nfs MFP r287070,r287073: split radix implementation and route table structure. 2016-01-25 06:33:15 +00:00
nfsclient
nfsserver
nlm
ofed LinuxKPI list updates: 2016-01-26 15:12:31 +00:00
opencrypto
pc98 Convert rman to use rman_res_t instead of u_long 2016-01-27 02:23:54 +00:00
powerpc Allow the size argument for law_enable() to be non-power-of-2. 2016-02-23 02:28:19 +00:00
riscv Add support for symmetric multiprocessing (SMP). 2016-02-24 16:50:34 +00:00
rpc These files were getting sys/malloc.h and vm/uma.h with header pollution 2016-02-01 17:41:21 +00:00
security Busy the mount point which is the owner of the audit vnode, around 2016-01-16 10:06:33 +00:00
sparc64 As <machine/pmap.h> is included from <vm/pmap.h>, there is no need to 2016-02-22 09:02:20 +00:00
sys Provide more correct sizing of the KVA consumed by a vnode, used by 2016-02-24 15:15:46 +00:00
teken
tests
tools Fix MFS builds when both MD_ROOT_SIZE and MFS_IMAGE are specified 2016-02-02 07:02:51 +00:00
ufs The UFS filesystem requires that the last block of a file always be 2016-02-24 01:58:40 +00:00
vm Include sys/_task.h into uma_int.h, so that taskqueue.h isn't a 2016-02-09 20:22:35 +00:00
x86 Silence PVS-Studio warning (V595). It can never be NULL here. 2016-02-23 23:57:24 +00:00
xdr
xen xenbus: add a comment with the names of the generated accessors 2016-01-15 14:34:31 +00:00
Makefile