On Thu, Aug 10, 2006 at 01:08:10PM -0700, Garrett D'Amore wrote: > > > > Agreed. If you're interested in working on this, I can put together my > > notes > > from the last time I worked on this (a few months back; my first big push > > was a year or so ago). > > > > Sure. I want to at least fix the kernel compilation as a first step. I > have verified that it does not look in the proto area built by the sgs > target at all.
I'm not sure how to parse this; I'm fairly sure that instead of adding includes for $ROOT/usr/include, it directly adds -I$SRC/uts/common, etc., so that the #include <sys/foo.h> finds it in $SRC/uts/common. See the comment on line 214 of usr/src/uts/Makefile.uts. > So /usr/include has potentially a big impact on the > compiled kernel and associated modules. /usr/include is possibly a problem, but at least /usr/lib isn't. It's actually fairly easy to verify that the kernel build doesn't use outside dependencies; the C preprocessor will shove any header file included into the .make.state files, and it's fairly simple to write a groveler that looks for bad references. I'm fairly sure it should be clean already. I've attached the current version of my groveler, and its input file. Cheers, - jonathan -- Jonathan Adams, Solaris Kernel Development
# # Copyright 2005 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # #ident "%Z%%M% %I% %E% SMI" # # This file lists exceptions to the "no compilation should use on-machine # header files and libraries" rules. It is divided into three sections: # # 1. "ignore"d items. These list object files and commands that are # compiled "native" (i.e. against the build machine's headers and # libraries) so that they can be run as part of the build. There # are two commands available for this section: # # ignore_re specify a regular expression. Matching # files will be ignored. # # ignore_dir specify a subdirectory. Files underneath # it will be ignored. # # 2. "disallow"ed directories. These are directories which hold the # build machine's versions of objects generated during the build # process. There is one command available for this section: # # disallow_dir specify a full path to a disallowed # directory. # # 3. "allow"ed items. These list exceptions to the "disallow" list. # These should be files not generated by the build process, which # are used as external dependencies. There are three commands # available for thie section: # # allow_lib specify a library which is allowed to # be linked against. Should be the "-l" # form of the name; e.g. "c" for "libc.so.1". # # allow_file specify a single file which is allowed to # be used. Must be the full path to the file. # # allow_dir specify a directory whose entire contents # may be used. # # # In addition, any line may be start with one of the following keywords, # which effect the line's use: # # for_sparc only process the line for Sparc builds # for_i386 only process the line for Intel builds # optional line may not be used in some builds # # The "optional" keyword should only be used when absolutely necessary. # # # Ignore section: native-built commands run as part of the build # process. There are two "generic" rules; *[-.]native and *[-.]native.o # are treated as native. Everything else should be called out as # explicitely as is reasonable. # ignore_re [-\.]native$ ignore_re [-\.]native\.o$ ignore_re ^usr\/src\/.*\/genassym$ ignore_re ^usr\/src\/cmd\/abi\/spectrans\/spec2map\/.*\/spec2map$ ignore_re ^usr\/src\/cmd\/abi\/spectrans\/spec2trace\/.*\/spec2trace$ ignore_re ^usr\/src\/cmd\/adbgen\/.*\/adbgen[134]$ ignore_file usr/src/cmd/awk/maketab ignore_file usr/src/cmd/lp/filter/postscript/font/native/makedev ignore_dir usr/src/cmd/mdb/tools ignore_dir usr/src/cmd/oawk/native ignore_file usr/src/cmd/spell/hashmk1 ignore_file usr/src/cmd/spell/spellin1 ignore_file usr/src/cmd/troff/troff.d/devaps/makedev ignore_dir usr/src/cmd/zic/native ignore_dir usr/src/lib/libscf/native ignore_dir usr/src/lib/libuutil/native ignore_dir usr/src/tools for_i386 ignore_re ^usr\/src\/psm\/stand\/.*\/mkbin$ for_sparc ignore_file usr/src/lib/libbc/libc/compat/sys5/mkepoch for_sparc ignore_re ^usr\/src\/uts\/.*\/genconst$ for_sparc ignore_re ^usr\/src\/psm\/stand\/.*\/stripalign$ for_sparc ignore_re ^usr\/src\/psm\/stand\/.*\/mkboot$ # # Disallow section: list of directories which contain libraries and # include files generated by OS/Net. # disallow_dir /lib disallow_dir /usr/lib disallow_dir /usr/ccs/lib disallow_dir /usr/sadm/lib disallow_dir /usr/snadm/lib disallow_dir /usr/xpg4/lib disallow_dir /usr/sfw/lib disallow_dir /usr/include # # Allow section: Files in the "disallow" directories which are *not* # generated by OS/Net, but which are used during the OS/Net build. # # C++ support; may not be used, depending upon which compiler we use optional allow_lib C optional allow_lib Cstd optional allow_lib Crun allow_file /usr/include/demangle.h # libm allow_lib m allow_file /usr/include/floatingpoint.h allow_file /usr/include/iso/math_c99.h allow_file /usr/include/iso/math_iso.h allow_file /usr/include/math.h # Fiberchannel HBA API for_sparc allow_lib HBAAPI for_sparc allow_file /usr/include/hbaapi.h # Admin consolidation stuff allow_lib spmicommon # WBEM stuff allow_lib cimapi allow_dir /usr/sadm/lib/wbem/include # Netscape Security Services / Netscape Portable Runtime allow_dir /usr/lib/mps allow_dir /usr/include/mps # libxml2 allow_lib xml2 allow_dir /usr/include/libxml2 # libxslt allow_lib xslt allow_dir /usr/include/libxslt # libz allow_lib z allow_file /usr/include/zconf.h allow_file /usr/include/zlib.h
checkmk.state.pl
Description: Perl program
_______________________________________________ opensolaris-code mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/opensolaris-code
