cpprules.in: squash whitespace in generated files

CPP is used to generate files, but as cpp reads files from the build host the
output has a number of blank lines at the beginning which varies depending on
what GCC and friends is used.

Pathalogical example:

 $ cpp -undef -traditional /dev/null
 # 1 "/dev/null"
 # 1 "<built-in>"
 # 1 "<command-line>"
 # 31 "<command-line>"
 # 1 "/usr/include/stdc-predef.h" 1 3 4

 # 17 "/usr/include/stdc-predef.h" 3 4

 [ 40 blank line ]

 # 32 "<command-line>" 2
 # 1 "/dev/null"

So depending on the content of stdc-predef.h and what other headers CPP will
load, the amount of whitespace in the generates files varies. This can result in
differences in reproducible environments, and file conflicts in multilib
environments.

As whitespace is irrelevant to these machine-readable files, extend the sed to
just delete blank lines.
This commit is contained in:
Ross Burton 2020-01-22 17:11:23 +00:00 committed by Alan Coopersmith
parent 16192ce2a7
commit a37986f7a7

View file

@ -23,7 +23,8 @@ CPP_SED_MAGIC = $(SED) -e '/^\# *[0-9][0-9]* *.*$$/d' \
-e '/^[ ]*XCOMM[^a-zA-Z0-9_]/s/XCOMM/\#/' \
-e '/^[ ]*XHASH/s/XHASH/\#/' \
-e 's,X11_LOCALEDATADIR,$(X11_LOCALEDATADIR),g' \
-e '/\@\@$$/s/\@\@$$/\\/'
-e '/\@\@$$/s/\@\@$$/\\/' \
-e '/^$$/d'
.pre:
@$(MKDIR_P) $(@D)