Index: bin/hdrtest/Makefile =================================================================== --- /dev/null +++ bin/hdrtest/Makefile @@ -0,0 +1,44 @@ +# +# A number of header files in sys/* have, going back to 7th Edition Unix in +# 1979, reqiured other files (like sys/types.h) to compile. Likewise the 4BSD +# networking code has had prerequisites. However, going back to around the turn +# of the century, other systems have made them be independently includable +# (wide-spread header include protection post-dates 7th edition Unix by maybe 4 +# or 5 years judging from netnews sources). Start down the path of making them +# all independently includable by creating this test that fails buildworld when +# they are not. +# +PROG= hdrtest +SRCS= hdrtest.c +INTERNALPROG= This is a compile-only test +MAN= + +# Some files have to be clean for extra defines too... +#CFLAGS.event.c= -D_WANT_KEVENT32 -D_WANT_FREEBSD11_KEVENT + +.include "goodfiles.inc" + +.for h in ${HDRS} +SRCS+= ${h:R}.c +CLEANFILES+=${h:R}.c +${h:R}.c: + echo "#include <$h>" > ${.TARGET} +.endfor + +# +# Target to make the current known good list. Only run it when this hdrtest is +# building so the list never shrinks (except when files are removed entirely +# that are on the list). +# +goodfiles.inc! + @(cd ${SRCTOP}/sys; \ + echo "# DO NOT EDIT-- this file is automatically @""generated."; \ + echo "HDRS= \\"; \ + for i in sys/*.h net*/*.h; do \ + echo "#include <$$i>" | \ + ${CC} ${CFLAGS} -xc - -c -o /dev/null 2> /dev/null && \ + echo " $$i \\"; \ + done; \ + echo) > ${.CURDIR}/goodfiles.inc + +.include Index: bin/hdrtest/goodfiles.inc =================================================================== --- /dev/null +++ bin/hdrtest/goodfiles.inc @@ -0,0 +1,241 @@ +# DO NOT EDIT-- this file is automatically @generated. +HDRS= \ + sys/_bitset.h \ + sys/_bus_dma.h \ + sys/_clock_id.h \ + sys/_cpuset.h \ + sys/_domainset.h \ + sys/_eventhandler.h \ + sys/_iovec.h \ + sys/_null.h \ + sys/_pthreadtypes.h \ + sys/_stdarg.h \ + sys/_termios.h \ + sys/_timespec.h \ + sys/_timeval.h \ + sys/_types.h \ + sys/_uio.h \ + sys/_umtx.h \ + sys/_winsize.h \ + sys/abi_compat.h \ + sys/acl.h \ + sys/aio.h \ + sys/arb.h \ + sys/asan.h \ + sys/assym.h \ + sys/auxv.h \ + sys/bitset.h \ + sys/blockcount.h \ + sys/boot.h \ + sys/bufobj.h \ + sys/capsicum.h \ + sys/cdefs.h \ + sys/cdio.h \ + sys/chio.h \ + sys/ck.h \ + sys/clock.h \ + sys/cnv.h \ + sys/compressor.h \ + sys/condvar.h \ + sys/consio.h \ + sys/csan.h \ + sys/ctype.h \ + sys/devicestat.h \ + sys/dirent.h \ + sys/disk.h \ + sys/disklabel.h \ + sys/dkstat.h \ + sys/dnv.h \ + sys/elf.h \ + sys/endian.h \ + sys/errno.h \ + sys/event.h \ + sys/eventfd.h \ + sys/fbio.h \ + sys/fcntl.h \ + sys/fdcio.h \ + sys/file.h \ + sys/filio.h \ + sys/gsb_crc32.h \ + sys/hash.h \ + sys/imgact_binmisc.h \ + sys/ioccom.h \ + sys/ioctl.h \ + sys/ipc.h \ + sys/joystick.h \ + sys/kbio.h \ + sys/kcov.h \ + sys/kenv.h \ + sys/kern_prefetch.h \ + sys/kerneldump.h \ + sys/kpilite.h \ + sys/kthread.h \ + sys/ktr.h \ + sys/ktr_class.h \ + sys/limits.h \ + sys/link_elf.h \ + sys/lockstat.h \ + sys/malloc.h \ + sys/mchain.h \ + sys/mman.h \ + sys/mount.h \ + sys/mouse.h \ + sys/mqueue.h \ + sys/msan.h \ + sys/msg.h \ + sys/mtio.h \ + sys/nlist_aout.h \ + sys/nv.h \ + sys/param.h \ + sys/pcpu.h \ + sys/pidctrl.h \ + sys/poll.h \ + sys/priv.h \ + sys/procctl.h \ + sys/procdesc.h \ + sys/procfs.h \ + sys/protosw.h \ + sys/ptio.h \ + sys/ptrace.h \ + sys/queue.h \ + sys/random.h \ + sys/rangelock.h \ + sys/rangeset.h \ + sys/rctl.h \ + sys/reboot.h \ + sys/reg.h \ + sys/regression.h \ + sys/resource.h \ + sys/sched.h \ + sys/sdt.h \ + sys/select.h \ + sys/selinfo.h \ + sys/sem.h \ + sys/seqc.h \ + sys/serial.h \ + sys/shm.h \ + sys/signal.h \ + sys/sleepqueue.h \ + sys/slicer.h \ + sys/smp.h \ + sys/sndstat.h \ + sys/snoop.h \ + sys/sockbuf.h \ + sys/socket.h \ + sys/sockio.h \ + sys/soundcard.h \ + sys/specialfd.h \ + sys/spigenio.h \ + sys/stat.h \ + sys/statvfs.h \ + sys/stdatomic.h \ + sys/stddef.h \ + sys/stdint.h \ + sys/syscall.h \ + sys/sysctl.h \ + sys/sysent.h \ + sys/syslog.h \ + sys/sysproto.h \ + sys/thr.h \ + sys/tim_filter.h \ + sys/time.h \ + sys/timers.h \ + sys/times.h \ + sys/timespec.h \ + sys/timex.h \ + sys/tree.h \ + sys/tslog.h \ + sys/tty.h \ + sys/ttycom.h \ + sys/ttydefaults.h \ + sys/turnstile.h \ + sys/types.h \ + sys/ucontext.h \ + sys/ucred.h \ + sys/uio.h \ + sys/umtxvar.h \ + sys/un.h \ + sys/unistd.h \ + sys/utsname.h \ + sys/vmem.h \ + sys/wait.h \ + sys/watchdog.h \ + net/debugnet.h \ + net/dlt.h \ + net/ieee8023ad_lacp.h \ + net/ieee_oui.h \ + net/if.h \ + net/if_clone.h \ + net/if_gif.h \ + net/if_gre.h \ + net/if_ipsec.h \ + net/if_types.h \ + net/if_vxlan.h \ + net/infiniband.h \ + net/netmap_user.h \ + net/netmap_virt.h \ + net/ppp_defs.h \ + net/sff8436.h \ + net/sff8472.h \ + net/vnet.h \ + net80211/ieee80211_phy.h \ + net80211/ieee80211_regdomain.h \ + net80211/ieee80211_wps.h \ + netgraph/ng_UI.h \ + netgraph/ng_atmllc.h \ + netgraph/ng_device.h \ + netgraph/ng_echo.h \ + netgraph/ng_eiface.h \ + netgraph/ng_ether.h \ + netgraph/ng_ether_echo.h \ + netgraph/ng_frame_relay.h \ + netgraph/ng_gif.h \ + netgraph/ng_gif_demux.h \ + netgraph/ng_hub.h \ + netgraph/ng_iface.h \ + netgraph/ng_ip_input.h \ + netgraph/ng_ipfw.h \ + netgraph/ng_rfc1490.h \ + netgraph/ng_split.h \ + netgraph/ng_sppp.h \ + netgraph/ng_tty.h \ + netinet/in.h \ + netinet/ip_divert.h \ + netinet/ip_ecn.h \ + netinet/ip_encap.h \ + netinet/pim.h \ + netinet/sctp.h \ + netinet/sctp_asconf.h \ + netinet/sctp_constants.h \ + netinet/sctp_crc32.h \ + netinet/sctp_header.h \ + netinet/sctp_indata.h \ + netinet/sctp_input.h \ + netinet/sctp_lock_bsd.h \ + netinet/sctp_output.h \ + netinet/sctp_peeloff.h \ + netinet/sctp_timer.h \ + netinet/sctp_uio.h \ + netinet/sctp_var.h \ + netinet/sctputil.h \ + netinet/tcp.h \ + netinet/tcp_accounting.h \ + netinet/tcp_fastopen.h \ + netinet/tcp_fsm.h \ + netinet/tcp_seq.h \ + netinet/tcp_syncache.h \ + netinet/tcp_timer.h \ + netinet6/in6_ifattach.h \ + netinet6/in6_pcb.h \ + netinet6/ip6_ecn.h \ + netinet6/scope6_var.h \ + netinet6/sctp6_var.h \ + netinet6/tcp6_var.h \ + netinet6/udp6_var.h \ + netipsec/ipsec_support.h \ + netipsec/key.h \ + netipsec/key_var.h \ + netipsec/keydb.h \ + netsmb/smb_dev.h \ + netsmb/smb_trantcp.h \ +