diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/gen_compat_patch.sh drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/gen_compat_patch.sh --- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/gen_compat_patch.sh 2020-09-19 08:34:40.643919136 +0800 +++ drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/gen_compat_patch.sh 2020-09-19 08:50:59.095231966 +0800 @@ -44,9 +44,15 @@ if hash spatch && spatch_is_recent; then K=$(cat $incdir/kernelrelease.txt) + echo " compat.h content "; + cat $incdir/compat.h; + echo " ------------------- "; echo " GENPATCHNAMES "$K gcc -I $incdir -o $incdir/gen_patch_names -std=c99 drbd-kernel-compat/gen_patch_names.c $incdir/gen_patch_names > $incdir/applied_cocci_files.txt + echo " APPLIED_COCCI_FILES "; + cat $incdir/applied_cocci_files.txt; + echo " ------------------- "; rm $incdir/gen_patch_names rm -f $incdir/.compat.cocci rm -f $incdir/.compat.patch @@ -61,29 +67,46 @@ < drbd-kernel-compat/cocci/debugfs_compat_template.cocci.in \ >> $incdir/.compat.cocci done + + coccilibpath=$(rpm -ql coccinelle|grep standard.h|xargs dirname); + echo " SPATCH_SOURCES: "$*; + echo " COCCI_LIBPATH: "$coccilibpath; + if [ -e $incdir/.compat.cocci ]; then - echo " SPATCH $chksum "$K - # Note: $* (or $@) is NOT make magic variable now, this is a shell script - # make $@, the target file, was passed as $1, and is now $compat_patch - # make $^, the source (and header) files spatch should operate on, - # are "the rest of the shell argument array", so after shifting the first - # argument away this is shell $@ respectively $* now. - # we know we don't have white-space in the argument list + echo " GENCOCCIRULES .compat.cocci"; + cat $incdir/.compat.cocci; - command="spatch --sp-file $incdir/.compat.cocci $* --macro-file drbd-kernel-compat/cocci_macros.h --very-quiet > $compat_patch.tmp 2> $incdir/.spatch.stderr;" + echo " SPATCH $chksum "$K + # Note: $* (or $@) is NOT make magic variable now, this is a shell script + # make $@, the target file, was passed as $1, and is now $compat_patch + # make $^, the source (and header) files spatch should operate on, + # are "the rest of the shell argument array", so after shifting the first + # argument away this is shell $@ respectively $* now. + # we know we don't have white-space in the argument list - if test -t 0; then - $SHELL -c "$command" - else - # spatch is broken in a way: it "requires" a tty. - # provide a tty using "script", so I can have several spatch in parallel. - # They may ignore INT and TERM; if you have to, use HUP. - /dev/null script --append $incdir/.spatch.tty.out --return --quiet --command "$command" - fi + command="spatch --sp-file $incdir/.compat.cocci $* --macro-file drbd-kernel-compat/cocci_macros.h --macro-file-builtins $coccilibpath/standard.h --iso-file $coccilibpath/standard.iso --very-quiet > $compat_patch.tmp 2> $incdir/.spatch.stderr;" + echo " SPATCH COMMAND $command "; + + if test -t 0; then + $SHELL -c "$command" + else + # spatch is broken in a way: it "requires" a tty. + # provide a tty using "script", so I can have several spatch in parallel. + # They may ignore INT and TERM; if you have to, use HUP. + /dev/null script --append $incdir/.spatch.tty.out --return --quiet --command "$command" + fi else - echo " SPATCH $chksum "$K" - nothing to do" - touch $compat_patch.tmp + echo " SPATCH $chksum "$K" - nothing to do" + touch $compat_patch.tmp + fi + + echo " GENSPATCHFILE $compat_patch.tmp "; + cat $compat_patch.tmp; + if [ -e $incdir/.spatch.stderr ]; then + echo " GENSPATCHERR .spatch.stderr"; + cat $incdir/.spatch.stderr; fi + if [ -e $incdir/.compat.patch ]; then cat $incdir/.compat.patch >> $compat_patch.tmp fi