Testing removal of ifdef or configure checks

From SambaWiki
Revision as of 06:48, 14 March 2020 by Abartlet (talk | contribs) (mention that this gets us cpp output (help wiki search))
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

#ifdef removal is risky

Large-scale removal of "unused" ifdef or the configure checks that produce #defines is an important, but risky task.

It is difficult (and time consuming) to prove that the code is unused and that there is no change to the compiled output.

A script to help

File:Gcc-E.py.txt is a Python script that wraps gcc -E (to get the CPP output) to attempt to solve this dilemma, so as to provide a result that can be reasoned with via tools like dirdiff

Getting the results

git checkout origin/master
git clean -x -f -d
CC="gcc -E" ./configure.developer && make -j
mv bin /tmp/master-bin

git checkout newbranch
git clean -x -f -d
CC="gcc -E" ./configure.developer && make -j

Reading the results

dirdiff /tmp/master-bin bin

or

diff -ur --ignore-matching-lines="^#" /tmp/master-bin/ bin> /tmp/diff