GNU awk does not output escaped newlines in multi-line printc statements. This

leads to compile errors when trying to compile firmware(9) stubs created with
gawk, as multiple #include statements end up on the same line.  Replace the
multi-line printc statement that outputs all of the #includes with one printc
per #include.  This allows modules compatible with firmware(9) to be cross-built
from a Linux machine without requiring the one true awk to be installed.

I've intentionally done the minimal set of changes necessary to make gawk
produce valid (but not pretty) C code, to reduce the churn and keep fw_stubs.awk
as readable as possible.

Approved by:	emaste (mentor)
MFC after:	2 weeks
This commit is contained in:
Ryan Stone 2011-03-31 21:33:33 +00:00
parent 8b94099c81
commit 04af6e9603

View File

@ -124,14 +124,14 @@ gsub(/[-\.]/, "_", modname);
printc("/*\ printc("/*\
* Automatically generated by:\ * Automatically generated by:\
* $FreeBSD$\ * $FreeBSD$\
*/\ */");
#include <sys/param.h>\ printc("#include <sys/param.h>");
#include <sys/errno.h>\ printc("#include <sys/errno.h>");
#include <sys/kernel.h>\ printc("#include <sys/kernel.h>");
#include <sys/module.h>\ printc("#include <sys/module.h>");
#include <sys/linker.h>\ printc("#include <sys/linker.h>");
#include <sys/firmware.h>\ printc("#include <sys/firmware.h>");
#include <sys/systm.h>\n"); printc("#include <sys/systm.h>\n");
if (opt_l) { if (opt_l) {
printc("static long " opt_l "_license_ack = 0;"); printc("static long " opt_l "_license_ack = 0;");