From owner-svn-src-all@FreeBSD.ORG Sat Feb 14 19:40:06 2009 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 410B6106566B; Sat, 14 Feb 2009 19:40:06 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail05.syd.optusnet.com.au (mail05.syd.optusnet.com.au [211.29.132.186]) by mx1.freebsd.org (Postfix) with ESMTP id 1A6ED8FC08; Sat, 14 Feb 2009 19:40:04 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from c122-107-120-227.carlnfd1.nsw.optusnet.com.au (c122-107-120-227.carlnfd1.nsw.optusnet.com.au [122.107.120.227]) by mail05.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id n1EJduNQ007439 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 15 Feb 2009 06:39:59 +1100 Date: Sun, 15 Feb 2009 06:39:56 +1100 (EST) From: Bruce Evans X-X-Sender: bde@delplex.bde.org To: Luigi Rizzo In-Reply-To: <20090214175136.GB89369@onelab2.iet.unipi.it> Message-ID: <20090215052941.E2522@delplex.bde.org> References: <200902131514.n1DFEhft091837@svn.freebsd.org> <20090214183758.I847@besplex.bde.org> <20090214175136.GB89369@onelab2.iet.unipi.it> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-37656405-1234640396=:2522" Cc: svn-src-head@FreeBSD.org, Luigi Rizzo , src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, Bruce Evans Subject: Re: svn commit: r188578 - head/sys/netinet X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Feb 2009 19:40:06 -0000 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --0-37656405-1234640396=:2522 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE On Sat, 14 Feb 2009, Luigi Rizzo wrote: > On Sat, Feb 14, 2009 at 06:59:57PM +1100, Bruce Evans wrote: >> On Fri, 13 Feb 2009, Luigi Rizzo wrote: >> >>> Log: >>> Use uint32_t instead of n_long and n_time, and uint16_t instead of >>> n_short. >>> Add a note next to fields in network format. >>> >>> The n_* types are not enough for compiler checks on endianness, and the= ir >>> use often requires an otherwise unnecessary #include >> >> This is too much like globally substituting uid_t with uint16_t. At > > actually uid_t are uint32_t :) > But there are several differences: > - uid_t, dev_t and other widelyused_t are in so you don't > need to add one extra header just for the n_long typedef; Actually, they would cause the same problem if their declarations were not correctly engineered. Without any engineering, it would be necessary to include in applications that don't otherwise need applications. This corresponds to including . With bad engineering, would be included nested in almost all headers. This corresponds to including in almost all netinet headers. > - n_{long|short|time} are so rarely used that after 20 years one can > safely declare they were an unsuccessful experiment; Only 20? They are in Net/2 and Stevens. I couldn't find any details of them in Stevens. Of course there are better ways of declaring them -- basically a foo_t for every logically distinct type, as was already done for n_time and is still done for in_addr_t... I found 2 Linux versions of in_systm.h on my disks. One dated 1994 is almost a copy of the Net/2 one (it still uses short and long). One dated 2001 uses uint* where FreeBSD now uses u_int*. I didn't notice before that in_systm.h declares nothing except these 3 types. Being so small to negative advantage is another engineering error. The FreeBSD one now has a single prototype, for in_time(). This was apparently done so that there aren't even more dependencies on in_systm.h due to the the (different) header that declares in_time() depending on in_systm.h. Now that in_time() doesn't depend on n_time, the placement of its declaration in in_systm.h is just bogus. The correct place is probably . FYI, here is an old script (last edit Jan 15 2000) for checking that header dependencies haven't rotted. The old dependencies can be read off the echo lists in it. I gave up maintaining this in 1999 because errors grew faster than I could fix them. In 1999, the error output was 2K; in 200 it was 11K; now it is 1327K and the test coverages is probably more incomplete. Due to bloat, it takes about the same time to run in 1999 on a K6/233MHz as in 2009 on a Core2/1.86GHz (about 1 minute). It only checks userland and doesn't try to give lists that don't depend on namespace pollution in other headers. It does try to give minimal lists. Many of the header engineering errors involving have been fixed so many of the includes of that in the lists are now bogus. BTW, I also disagree with you adding comments to include lines to say what the includes are for. There is no chance that such comments are complete or can be maintained. For completeness, every include line would need a paragraph or two like some of the ones in this mail to explain all the reasons why a header is included, and the details will change when code is added. The reasons why a header is needed are most easily seen by trying to compile without it. A generic header like will be needed for a myriad reasons and listing them all is not useful. A small header will be needed for only a small number of reasons and listing them all is even less useful, since it is easy to find and understand the reasons if only a couple of declarations are used. %%% #!/bin/sh # only depends on being previously # included with _KERNEL being defined, but depends on # generated headers if _KERNEL is defined. # , and refer to the # i386 hierarchy. # depends on _KERNEL being defined. # depends on _KERNEL being defined before including # , and then includes "opt_nfs.h". # depends on a type in which is only # declared if _KERNEL is defined. # depends on _KERNEL being defined before # is included. # uses an unifdefed gcc attribute so it and # everything that includes it break for for non-gcc. # depends on generated headers. # uses undefined macros. # conflicts with user lseek() etc. # CRUD=3D"(sys/bus_private|machine/ipl|machine/mpapic|netgraph/netgraph|nfs/n= fsrvcache|pccard/pccard_nbk|machine/sigframe|pccard/slot|netatm/spans/spans= _cls|sys/syscall-hide|sys/sysproto)\.h" # uses ANSI string concatenation. # uses #error. # isn't careful about #elif. # NEEDS_ANSI=3D"(sys/copyright|sys/devfsext|netatm/ipatm/ipatm_serv|netatm/ke= rn_include|netatm/port|netatm/uni/sscf_uni_var|netatm/uni/sscop_pdu|netatm/= uni/sscop_var|netatm/uni/unisig_decode|netatm/uni/unisig_mbuf)\.h" # Comment out the next line for non-ANSI. # NEEDS_ANSI=3D"^/nonesuch$" # Some files use use gcc features such as __inline and pragma pack (ugh!) # unconditionally. # NEEDS_GCC=3D"(machine/atomic|machine/cdk|machine/cpu|machine/globaldata|mac= hine/md_var|netncp/ncp|netncp/ncp_conn|netncp/ncp_file|netncp/ncp_lib|netnc= p/ncp_ncp|ncp_nls|netncp/ncp_rcfile|netncp/ncp_sock|netncp/ncp_rq|netncp/nc= p_subr|netncp/ncp_user|machine/pcb_ext|machine/segments|sys/signalvar|machi= ne/specialreg|sys/timepps|sys/user|machine/pc/vesa|vm/vm_map)\.h" # Comment out the next line for non-gcc. # NEEDS_GCC=3D"^/nonesuch$" # These files use prototypes and perhaps other ANSI features unconditionall= y. # Major breakage in acl.h pollutes vnode.h and thus nfs/nfsnode.h, # ufs/ffs/ffs_extern.h, ufs/ufs/ufs_extern.h, and others. # Major breakage in com_err (?) broke ss/ss.h and ss/ss_err.h. # NEEDS_PROTO=3D"(sys/acl|\./aio|sys/aio|\./alias|machine/pc/bios|sys/blist|n= et/bridge|sys/bus|machine/bus|\./calendar|cam/cam|cam/cam_ccb|cam/scsi/scsi= _all|cam/scsi/scsi_cd|cam/scsi/scsi_ch|cam/scsi/scsi_pass|cam/scsi/scsi_sa|= cam/scsi/scsi_targetio|\./camlib|\./curses|\./devstat|\./dialog|sys/extattr= |\./fetch|\./fetch_err|ufs/ffs/ffs_extern|\./form|\./ftpio|\./g2c|sys/inter= rupt|sys/kernel|\./libdisk|sys/linker|\./md2|\./md4|\./md5|sys/md5|\./menu|= sys/module|\./ncurses|\./netgraph|netgraph/ng_parse|netgraph/ng_pppoe|nfs/n= fsnode|ntfs/ntfs|ntfs/ntfs_compr|ntfs/ntfs_inode|ntfs/ntfs_subr|ntfs_vfsops= |nwfs/nwfs|nwfs/nwfs_mount|nwfs/nwfs_node|nwfs/nwfs_subr|\./objformat|panel= |security/_pam_types|security/pam_appl|security/pam_malloc|security/pam_mod= _misc|security/pam_modules|\./pcap-int|\./pcap-namedb|\./pcap|\./posix4|pos= ix4/posix4|\./radlib|sys/rman|\./ripemd|\./sha|machine/spigot|machine/sound= card|ss/ss|ss/ss_err|\./stand|\./strhash|\./taclib|\./term|\./termcap|\./ti= mepps|ufs/ufs/ufs_extern|\./unctrl|\./vgl|sys/vnode)\.h" # Comment out the next line for pure K&R (not for gcc -tradtional). # NEEDS_PROTO=3D"^/nonesuch$" # , and # use a combination of __CONCAT macros that doesn't work in traditional # mode. # and use token pasting. # , and # inherit breakage from . # uses ANSI cpp features. # isn't careful enough about spaces in # macro definitions to work in traditional mode. # inherits this problem. # NEEDS_NONTRAD=3D"(\./elf|machine/atomic|machine/elf|sys/elf_generic|sys/eve= nthandler|sys/imgact_elf|machine/in_cksum|netatm/kern_include|security/_pam= _macros|security/pam_misc|sys/systm|vm/vm_object|vm/vm_page)\.h" # Comment out the next line for pure K&R or gcc -traditional. # NEEDS_NONTRAD=3D"^/nonesuch$" gccw() { cc \ =09-Wall -ansi -pedantic \ =09-Wbad-function-cast \ =09-Wcast-align \ =09-Wcast-qual \ =09-Wchar-subscripts \ =09-Wconversion \ =09-Winline \ =09-Wmissing-prototypes \ =09-Wnested-externs \ =09-Wpointer-arith \ =09-Wredundant-decls \ =09-Wshadow \ =09-Wstrict-prototypes \ =09-Wwrite-strings \ =09"$@" } for i in `(cd /usr/include; find . -name '*.h' -follow | sort | =09 egrep -v "\./(g\+\+|netns|objc)/" | egrep -v "$CRUD" | =09 egrep -v "$NEEDS_ANSI" | egrep -v "$NEEDS_GCC" | =09 egrep -v "$NEEDS_PROTO" | egrep -v "$NEEDS_NONTRAD")` do =09echo -n >z.c =09test $i !=3D ./alias.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./arpa/inet.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./cam/cam.h || echo "#include " >>z.c =09test $i !=3D ./cam/cam_ccb.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./cam/scsi/scsi_all.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./cam/scsi/scsi_cd.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./cam/scsi/scsi_ch.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./cam/scsi/scsi_da.h || echo "#include " >>z.= c =09test $i !=3D ./cam/scsi/scsi_pass.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./cam/scsi/scsi_pt.h || echo "#include " >>z.= c =09test $i !=3D ./cam/scsi/scsi_sa.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./cam/scsi/scsi_targetio.h || =09 echo "#include " >>z.c =09test $i !=3D ./camlib.h || =09 echo "#include " >>z.c =09test $i !=3D ./devstat.h || =09 echo "#include " >>z.c =09test $i !=3D ./fetch.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./fts.h || =09 echo "#include " >>z.c =09test $i !=3D ./gnuregex.h || =09 echo "#include " >>z.c =09test $i !=3D ./grp.h || =09 echo "#include " >>z.c =09test $i !=3D ./isofs/cd9660/cd9660_mount.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./isofs/cd9660/cd9660_node.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./isofs/cd9660/cd9660_rrip.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./isofs/cd9660/iso.h || echo "#include " >>z.= c =09test $i !=3D ./isofs/cd9660/iso_rrip.h || =09 echo "#include " >>z.c =09test $i !=3D ./libatm.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./libdisk.h || =09 echo "#include " >>z.c =09# XXX link.h has no prerequisites in the elf case. It has namespace =09# pollution () and undocmentation (link.5 is aout-only). =09test $i !=3D ./link.h || =09 echo "#include =09 #include " >>z.c =09test $i !=3D ./login_cap.h || =09 echo "#include " >>z.c =09test $i !=3D ./md4.h || =09 echo "#include " >>z.c =09test $i !=3D ./md5.h || =09 echo "#include " >>z.c =09test $i !=3D ./mpool.h || echo "#include " >>z.c =09test $i !=3D ./machine/atomic.h || echo "#include " >>z.c =09test $i !=3D ./machine/bootinfo.h || echo "#include " >>z.= c =09test $i !=3D ./machine/bus.h || echo "#include " >>z.c =09test $i !=3D ./machine/cpu.h || echo "#include " >>z.c =09test $i !=3D ./machine/cpufunc.h || echo "#include " >>z.c =09test $i !=3D ./machine/db_machdep.h || echo "#include " >>= z.c =09test $i !=3D ./machine/dvcfg.h || echo "#include " >>z.c =09test $i !=3D ./machine/elf.h || echo "#include " >>z.c =09test $i !=3D ./machine/frame.h || echo "#include " >>z.c =09test $i !=3D ./machine/globaldata.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./machine/i4b_debug.h || echo "#include " >>z= =2Ec =09test $i !=3D ./machine/i4b_ioctl.h || echo "#include " >>z= =2Ec =09test $i !=3D ./machine/i4b_rbch_ioctl.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./machine/i4b_trace.h || echo "#include " >>z.= c =09test $i !=3D ./machine/if_wavelan_ieee.h || =09 echo "#include " >>z.c =09test $i !=3D ./machine/iic.h || echo "#include " >>z.c =09test $i !=3D ./machine/in_cksum.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./machine/ioctl_bt848.h || =09 echo "#include " >>z.c =09test $i !=3D ./machine/md_var.h || echo "#include " >>z.c =09test $i !=3D ./machine/npx.h || echo "#include " >>z.c =09test $i !=3D ./machine/pc/bios.h || echo "#include " >>z.c =09test $i !=3D ./machine/pc/vesa.h || echo "#include " >>z.c =09test $i !=3D ./machine/pcb.h || echo "#include " >>z.c =09test $i !=3D ./machine/pcb_ext.h || echo "#include " >>z.c =09test $i !=3D ./machine/pmap.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./machine/profile.h || echo "#include " >>z.c =09test $i !=3D ./machine/si.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./machine/signal.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./machine/smb.h || echo "#include " >>z.c =09test $i !=3D ./machine/specialreg.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./machine/types.h || echo "#include " >>z.c =09test $i !=3D ./machine/vm86.h || echo "#include " >>z.c =09test $i !=3D ./mqueue.h || =09 echo "#include " >>z.c =09test $i !=3D ./msdosfs/bootsect.h || echo "#include " >>z.= c =09test $i !=3D ./msdosfs/bpb.h || echo "#include " >>z.c =09test $i !=3D ./msdosfs/direntry.h || echo "#include " >>z.= c =09test $i !=3D ./msdosfs/denode.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./msdosfs/msdosfsmount.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./net/bridge.h || =09=09echo "#include =09=09 #include " >>z.c =09test $i !=3D ./net/bpf.h || echo "#include " >>z.c =09test $i !=3D ./net/bpfdesc.h || echo "#include " >>z.c =09test $i !=3D ./net/ethernet.h || echo "#include " >>z.c =09test $i !=3D ./net/hostcache.h || echo "#include " >>z.c =09test $i !=3D ./net/if.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./net/if_arp.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./net/if_atm.h || echo "#include " >>z.c =09test $i !=3D ./net/if_dl.h || echo "#include " >>z.c =09test $i !=3D ./net/if_gif.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./net/if_llc.h || echo "#include " >>z.c =09test $i !=3D ./net/if_mib.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./net/if_ppp.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./net/if_pppvar.h || =09 echo "#define NPPP 1 =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./net/if_slvar.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./net/if_sppp.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./net/if_tun.h || echo "#include " >>z.c =09test $i !=3D ./net/if_tunvar.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./net/if_var.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./net/if_vlan_var.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./net/iso88025.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./net/pfkeyv2.h || echo "#include " >>z.c =09test $i !=3D ./net/ppp_defs.h || echo "#include " >>z.c =09test $i !=3D ./net/radix.h || echo "#include " >>z.c =09test $i !=3D ./net/raw_cb.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./net/route.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./net/slcompress.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netatalk/aarp.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netatalk/at.h || echo "#include " >>z.c =09test $i !=3D ./netatalk/at_extern.h || echo "#include " >>= z.c =09test $i !=3D ./netatalk/at_var.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netatalk/ddp.h || echo "#include " >>z.c =09test $i !=3D ./netatalk/ddp_var.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netatalk/phase2.h || echo "#include " >>z.c =09test $i !=3D ./netatm/atm.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netatm/atm_cm.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netatm/atm_if.h || =09 echo "#include " >>z.c =09test $i !=3D ./netatm/atm_ioctl.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netatm/ipatm/ipatm_serv.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #define ATM_KERNEL =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netatm/kern_include.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netatm/port.h || =09 echo "#include =09=09 #define ATM_KERNEL" >>z.c =09test $i !=3D ./netatm/atm_sap.h || =09 echo "#include " >>z.c =09test $i !=3D ./netatm/atm_sys.h || =09 echo "#include " >>z.c =09test $i !=3D ./netatm/queue.h || =09 echo "#include " >>z.c =09test $i !=3D ./netatm/uni/sscf_uni_var.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #define ATM_KERNEL =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netatm/uni/sscop.h || =09 echo "#include " >>z.c =09test $i !=3D ./netatm/uni/sscop_misc.h || =09 echo "#include " >>z.c =09test $i !=3D ./netatm/uni/sscop_pdu.h || =09 echo "#include =09=09 #define ATM_KERNEL =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netatm/uni/sscop_var.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #define ATM_KERNEL =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netatm/uni/unisig_decode.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #define ATM_KERNEL =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netatm/uni/unisig_mbuf.h || =09 echo "#include =09=09 #define ATM_KERNEL =09=09 #include " >>z.c =09test $i !=3D ./netatm/uni/unisig_msg.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netatm/unisig_var.h || =09 echo "#include " >>z.c =09test $i !=3D ./netatm/uni/uniip_var.h || =09 echo "#include " >>z.c =09test $i !=3D ./netgraph/ng_async.h || echo "#include " >>z= =2Ec =09test $i !=3D ./netgraph/ng_bpf.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netgraph/ng_cisco.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./netgraph/ng_ksocket.h || =09 echo "#include " >>z.c =09test $i !=3D ./netgraph/ng_lmi.h || echo "#include " >>z.c =09test $i !=3D ./netgraph/ng_message.h || =09 echo "#include " >>z.c =09test $i !=3D ./netgraph/ng_parse.h || echo "#include " >>z= =2Ec =09test $i !=3D ./netgraph/ng_ppp.h || echo "#include " >>z.c =09test $i !=3D ./netgraph/ng_pppoe.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netgraph/ng_pptpgre.h || =09 echo "#include " >>z.c =09test $i !=3D ./netgraph/ng_sample.h || echo "#include " >>= z.c =09test $i !=3D ./netgraph/ng_socket.h || echo "#include " >>= z.c =09test $i !=3D ./netgraph/ng_socketvar.h || =09 echo "#include " >>z.c =09test $i !=3D ./netgraph/ng_tee.h || echo "#include " >>z.c =09test $i !=3D ./netgraph/ng_vjc.h || echo "#include " >>z.c =09test $i !=3D ./netinet/icmp_var.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet/icmp6.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./netinet/if_atm.h || echo "#include " >>z.c =09test $i !=3D ./netinet/if_ether.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet/if_fddi.h || echo "#include " >>z.c =09test $i !=3D ./netinet/if_gif.h || echo "#include " >>z.c =09test $i !=3D ./netinet/igmp.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./netinet/igmp_var.h || echo "#include " >>z.= c =09test $i !=3D ./netinet/in.h || echo "#include " >>z.c =09test $i !=3D ./netinet/in_gif.h || echo "#include " >>z.c =09test $i !=3D ./netinet/in_hostcache.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./netinet/in_pcb.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet/in_systm.h || echo "#include " >>z.= c =09test $i !=3D ./netinet/in_var.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet/ip.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet/ip_auth.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet/ip_compat.h || echo "#include " >>z= =2Ec =09test $i !=3D ./netinet/ip_dummynet.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet/ip_fil.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet/ip_flow.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet/ip_frag.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet/ip_fw.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./netinet/ip_icmp.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet/ip_mroute.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet/ip_nat.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet/ip_proxy.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet/ip_state.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet/ip_var.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./netinet/ip6.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./netinet/ipprotosw.h || echo "#include " >>z= =2Ec =09test $i !=3D ./netinet/tcp.h || echo "#include " >>z.c =09test $i !=3D ./netinet/tcp_debug.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet/tcp_var.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet/tcpip.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet/udp.h || echo "#include " >>z.c =09test $i !=3D ./netinet/udp_var.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet6/ah.h || echo "#include " >>z.c =09test $i !=3D ./netinet6/esp.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./netinet6/icmp6.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./netinet6/in6.h || echo "#include " >>z.c =09test $i !=3D ./netinet6/in6_gif.h || echo "#include " >>z.= c =09test $i !=3D ./netinet6/in6_prefix.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet6/in6_var.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet6/ip.h || echo "#include " >>z.c =09test $i !=3D ./netinet6/ip6.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./netinet6/ip6_var.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./netinet6/ipsec.h || echo "#include " >>z.c =09test $i !=3D ./netinet6/nd6.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netinet6/pim6.h || echo "#include " >>z.c =09test $i !=3D ./netinet6/pim6_var.h || echo "#include " >>z= =2Ec =09test $i !=3D ./netinet6/ip6protosw.h || =09 echo "#include " >>z.c =09test $i !=3D ./netipx/ipx.h || echo "#include " >>z.c =09test $i !=3D ./netipx/ipx_if.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netipx/ipx_ip.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netipx/ipx_pcb.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netipx/ipx_var.h || echo "#include " >>z.c =09test $i !=3D ./netipx/spx.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./netipx/spx_debug.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./netkey/key_debug.h || echo "#include " >>z.= c =09test $i !=3D ./netncp/ncp.h || echo "#include " >>z.c =09test $i !=3D ./netncp/ncp_conn.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./netncp/ncp_file.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./netncp/ncp_lib.h || echo "#include " >>z.c =09test $i !=3D ./netncp/ncp_ncp.h || echo "#include " >>z.c =09test $i !=3D ./netncp/ncp_nls.h || echo "#include " >>z.c =09test $i !=3D ./netncp/ncp_rcfile.h || echo "#include " >>z.c =09test $i !=3D ./netncp/ncp_rq.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./netncp/ncp_subr.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./netncp/ncp_user.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./nfs/nfs.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./nfs/krpc.h || echo "#include " >>z.c =09test $i !=3D ./nfs/nfsdiskless.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./nfs/nfsm_subs.h || echo "#include " >>z.c =09test $i !=3D ./nfs/nfsmount.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./nfs/nfsnode.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./nfs/nfsproto.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./nfs/nfsrtt.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./nfs/nfsrvcache.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./nfs/nfsv2.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./nfs/rpcv2.h || echo "#include " >>z.c =09test $i !=3D ./ntfs/ntfs.h || =09 echo "#include =09=09 #define _KERNEL =09=09 #include =09=09 #undef _KERNEL =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./ntfs/ntfs_compr.h || =09 echo "#include =09=09 #define _KERNEL =09=09 #include =09=09 #undef _KERNEL =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./ntfs/ntfs_ihash.h || echo "#include " >>z.c =09test $i !=3D ./ntfs/ntfs_inode.h || =09 echo "#include =09=09 #define _KERNEL =09=09 #include =09=09 #undef _KERNEL =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./ntfs/ntfsmount.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./ntfs/ntfs_subr.h || =09 echo "#include =09=09 #define _KERNEL =09=09 #include =09=09 #undef _KERNEL =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./ntfs/ntfs_vfsops.h || =09 echo "#include =09=09 #define _KERNEL =09=09 #include =09=09 #undef _KERNEL =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./nwfs/nwfs.h || echo "#include " >>z.c =09test $i !=3D ./nwfs/nwfs_mount.h || echo "#include " >>z.c =09test $i !=3D ./nwfs/nwfs_node.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./nwfs/nwfs_subr.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./pcap-namedb.h || echo "#include " >>z.c =09test $i !=3D ./pccard/driver.h || echo "#include " >>z.c =09test $i !=3D ./posix4/mqueue.h || echo "#include " >>z.c =09test $i !=3D ./protocols/dumprestore.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./protocols/routed.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./protocols/rwhod.h || =09 echo "#include " >>z.c =09test $i !=3D ./protocols/talkd.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./protocols/timed.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./pthread_np.h || =09 echo "#include " >>z.c =09test $i !=3D ./readline/readline.h || echo "#include " >>z.c =09test $i !=3D ./regex.h || echo "#include " >>z.c =09test $i !=3D ./resolv.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./rpc/auth.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./rpc/auth_des.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./rpc/auth_unix.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./rpc/clnt.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./rpc/des.h || echo "#include " >>z.c =09test $i !=3D ./rpc/pmap_clnt.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./rpc/pmap_prot.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./rpc/pmap_rmt.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./rpc/rpc_com.h || echo "#include " >>z.c =09test $i !=3D ./rpc/rpc_msg.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./rpc/svc.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./rpc/svc_auth.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./rpc/xdr.h || echo "#include " >>z.c =09test $i !=3D ./rpcsvc/nislib.h || echo "#include " >>z.c =09test $i !=3D ./rpcsvc/yp_prot.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./security/pam_mod_misc.h || =09 echo "#include " >>z.c =09test $i !=3D ./skey.h || echo "#include " >>z.c =09test $i !=3D ./sys/acct.h || echo "#include " >>z.c =09test $i !=3D ./sys/acl.h || echo "#include " >>z.c =09test $i !=3D ./sys/blist.h || echo "#include " >>z.c =09test $i !=3D ./sys/buf.h || echo "#include " >>z.c =09test $i !=3D ./sys/callout.h || echo "#include " >>z.c =09test $i !=3D ./sys/ccdvar.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./sys/clist.h || echo "#include " >>z.c =09test $i !=3D ./sys/conf.h || echo "#include " >>z.c =09test $i !=3D ./sys/cons.h || echo "#include " >>z.c =09test $i !=3D ./sys/devfsext.h || echo "#include " >>z.c =09test $i !=3D ./sys/dkbad.h || echo "#include " >>z.c =09test $i !=3D ./sys/dmap.h || echo "#include " >>z.c =09test $i !=3D ./sys/domain.h || echo "#include " >>z.c =09test $i !=3D ./sys/dvdio.h || echo "#include " >>z.c =09test $i !=3D ./sys/elf_common.h || echo "#include " >>z.c =09test $i !=3D ./sys/elf32.h || echo "#include " >>z.c =09test $i !=3D ./sys/elf64.h || echo "#include " >>z.c =09test $i !=3D ./sys/elf_generic.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./sys/eventhandler.h || echo "#include " >>z.= c =09test $i !=3D ./sys/exec.h || echo "#include " >>z.c =09test $i !=3D ./sys/extattr.h || echo "#include " >>z.c =09test $i !=3D ./sys/filedesc.h || echo "#include " >>z.c =09test $i !=3D ./sys/gmon.h || echo "#include " >>z.c =09test $i !=3D ./sys/imgact_elf.h || echo "#include " >>z.c =09test $i !=3D ./sys/interrupt.h || echo "#include " >>z.c =09test $i !=3D ./sys/ipc.h || echo "#include " >>z.c =09test $i !=3D ./sys/jail.h || echo "#include " >>z.c =09test $i !=3D ./sys/kernel.h || echo "#include " >>z.c =09test $i !=3D ./sys/kthread.h || echo "#include " >>z.c =09test $i !=3D ./sys/ktrace.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./sys/linker.h || echo "#include " >>z.c =09test $i !=3D ./sys/lkm.h || echo "#include " >>z.c =09test $i !=3D ./sys/lock.h || echo "#include " >>z.c =09test $i !=3D ./sys/lockf.h || echo "#include " >>z.c =09test $i !=3D ./sys/malloc.h || echo "#include " >>z.c =09test $i !=3D ./sys/mbuf.h || echo "#include " >>z.c =09test $i !=3D ./sys/md5.h || echo "#include " >>z.c =09test $i !=3D ./sys/memrange.h || echo "#include " >>z.c =09test $i !=3D ./sys/mman.h || echo "#include " >>z.c =09test $i !=3D ./sys/module.h || echo "#include " >>z.c =09test $i !=3D ./sys/mount.h || echo "#include " >>z.c =09test $i !=3D ./sys/msg.h || echo "#include " >>z.c =09test $i !=3D ./sys/namei.h || echo "#include " >>z.c =09test $i !=3D ./sys/pciio.h || echo "#include " >>z.c =09test $i !=3D ./sys/proc.h || echo "#include " >>z.c =09test $i !=3D ./sys/protosw.h || echo "#include " >>z.c =09test $i !=3D ./sys/ptrace.h || echo "#include " >>z.c =09test $i !=3D ./sys/resource.h || echo "#include " >>z.c =09test $i !=3D ./sys/resourcevar.h || echo "#include " >>z.c =09test $i !=3D ./sys/rlist.h || echo "#include " >>z.c =09test $i !=3D ./sys/rman.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./sys/rtprio.h || echo "#include " >>z.c =09test $i !=3D ./sys/select.h || echo "#include " >>z.c =09test $i !=3D ./sys/sem.h || echo "#include " >>z.c =09test $i !=3D ./sys/shm.h || echo "#include " >>z.c =09test $i !=3D ./sys/signal.h || echo "#include " >>z.c =09test $i !=3D ./sys/signalvar.h || echo "#include " >>z.c =09test $i !=3D ./sys/socket.h || echo "#include " >>z.c =09test $i !=3D ./sys/socketvar.h || echo "#include " >>z.c =09test $i !=3D ./sys/sysctl.h || echo "#include " >>z.c =09test $i !=3D ./sys/sysent.h || echo "#include " >>z.c =09test $i !=3D ./sys/systm.h || echo "#include " >>z.c =09test $i !=3D ./sys/timeb.h || echo "#include " >>z.c =09test $i !=3D ./sys/timex.h || echo "#include " >>z.c =09test $i !=3D ./sys/tprintf.h || echo "#include " >>z.c =09test $i !=3D ./sys/tty.h || echo "#include " >>z.c =09test $i !=3D ./sys/ucontext.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./sys/ucred.h || echo "#include " >>z.c =09test $i !=3D ./sys/uio.h || echo "#include " >>z.c =09test $i !=3D ./sys/un.h || echo "#include " >>z.c =09test $i !=3D ./sys/unpcb.h || echo "#include " >>z.c =09test $i !=3D ./sys/user.h || echo "#include " >>z.c =09test $i !=3D ./sys/vmmeter.h || echo "#include " >>z.c =09test $i !=3D ./sys/vnode.h || echo "#include " >>z.c =09test $i !=3D ./sys/vsio.h || echo "#include " >>z.c =09test $i !=3D ./sys/wormio.h || echo "#include " >>z.c =09test $i !=3D ./sys/xrpuio.h || echo "#include " >>z.c =09test $i !=3D ./ucontext.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./ufs/ffs/ffs_extern.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./ufs/ffs/fs.h || =09 echo "#include " >>z.c =09test $i !=3D ./ufs/ffs/softdep.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./ufs/mfs/mfs_extern.h || echo "#include " >>= z.c =09test $i !=3D ./ufs/mfs/mfsnode.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./ufs/ufs/dinode.h || echo "#include " >>z.c =09test $i !=3D ./ufs/ufs/dir.h || echo "#include " >>z.c =09test $i !=3D ./ufs/ufs/inode.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./ufs/ufs/quota.h || echo "#include " >>z.c =09test $i !=3D ./ufs/ufs/ufs_extern.h || =09 echo "#include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./ufs/ufs/ufsmount.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./utime.h || echo "#include " >>z.c =09test $i !=3D ./utmp.h || echo "#include " >>z.c =09test $i !=3D ./vgl.h || echo "#include " >>z.c =09test $i !=3D ./vm/default_pager.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./vm/pmap.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./vm/swap_pager.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./vm/vm.h || echo "#include " >>z.c =09test $i !=3D ./vm/vm_kern.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./vm/vm_map.h || =09 echo "#include =09=09 #include =09=09 #include =09=09 #include " >>z.c =09test $i !=3D ./vm/vm_object.h || echo "#include " >>z.c =09test $i !=3D ./vm/vm_page.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./vm/vm_pageout.h || echo "#include " >>z.c =09test $i !=3D ./vm/vm_pager.h || =09 echo "#include =09=09 #include " >>z.c =09test $i !=3D ./vm/vm_zone.h || echo "#include " >>z.c =09sed 's/^[ =09]*//' z1.c =09echo "#include <$i>" >>z1.c =09echo "int dummy;" >>z1.c =09gccw -S z1.c #=09echo "--- <$i> ---"; CFLAGS=3D-O unusedinc z1.o #if ! #=09cc -Dconst=3D -Dvolatile=3D -traditional -S z1.c #then echo $i; bash; fi #=09bcc -Dconst=3D -Dvolatile=3D -D__inline=3D -D__i386__ -S z1.c done %%% Bruce --0-37656405-1234640396=:2522--