====== CScout on FreeBSD ====== This page is open for sharing improvement ideas, tips, tasks, and bugs regarding the application of the [[http://www.spinellis.gr/cscout|CScout]] refactoring browser on the %%FreeBSD%% source code. ===== Ideas for Improvements ===== These are some ideas for CScout improvements that could help %%FreeBSD%% development. * Track global variable assignments. Use this feature to verify the errno values listed in the section 2 of the manual against the implementation of the actual system calls. ===== Tasks ===== Here are some tasks open for interested developers. * Use CScout to locate problematic code areas (for example unused or too liberaly visible objects). * Use CScout to globaly rename identifiers in a more consistent fashion. * Apply CScout to the userland code. * Identify CScout extensions that would help us improve the quality of our code. * Arrange for the continous availability of a live CScout kernel session on the current version of the source code. ===== Bugs ===== * Identifiers appearing on function prototypes are listed as unused. This creates noise in the corresponding query. ===== Tips ===== ==== Processing the Kernel Source Code ==== * Create the toolchain for all Tier-1 architectures for a in amd64 i386 sparc64 do export MAKEOBJDIRPREFIX=/home/dds/src/fbsd-head/obj/$a make buildworld TARGET_ARCH=$a 2>make.world.$a.err >make.world.$a.out done * Modify Makefile.inc1 sed -ie '/^TMPPATH/s/.*/TMPPATH= ${CSCOUT_SPY_TMPDIR}:${STRICTTMPPATH}:${PATH}/' Makefile.inc1 * Build the kernel for a in amd64 i386 sparc64 do ( cd sys/$a/conf/ make LINT # To avoid ../../../gnu/fs/xfs/xfs_bit.h:42:5: # "XFS_WANT_FUNCS" is not defined during compilation sed '/XFS/d' LINT >CSCOUT config CSCOUT ) export MAKEOBJDIRPREFIX=/home/dds/src/fbsd-head/obj/$a spy-make buildkernel TARGET_ARCH=$a KERNCONF=CSCOUT 2>make.kernel.$a.err >make.kernel.$a.out mv make.cs make.$a.cs done * Merge the results cat make.*.cs >all.cs * Run CScout nice cscout all.cs ---- {{tag>InactiveProject}}