m4: move the gawk script from m4/gen_bpf_attr_m4.sh into a separate file

As it turns out, old versions of gawk do not support -e option.

* m4/gen_bpf_attr_m4.sh: Move the gawk script ...
* m4/gen_bpf_attr_m4.awk: ... here.
This commit is contained in:
Eugene Syromyatnikov 2018-06-01 14:05:48 +02:00 committed by Dmitry V. Levin
parent 514a667cc3
commit 5c481739d7
2 changed files with 29 additions and 30 deletions

28
m4/gen_bpf_attr_m4.awk Normal file
View File

@ -0,0 +1,28 @@
/^struct ([^[:space:]]+)_struct([[:space:]]+\/\* ([^[:space:]]+) \*\/)?[[:space:]]+{/ {
match($0, /^struct ([^[:space:]]+)_struct([[:space:]]+\/\* ([^[:space:]]+) \*\/)?[[:space:]]+{/, a)
struct_name = a[1]
subtype_name = a[3]
if (struct_name ~ /^BPF_/)
prefix = "union bpf_attr"
else
prefix = "struct " struct_name
if (subtype_name != "")
prefix = prefix "." subtype_name
in_struct = 1
next
}
/^}( ATTRIBUTE_ALIGNED\(.*\))?;/ {
in_struct = 0
next
}
(in_struct == 1) {
if (match($0, /^[[:space:]]+[^;\[\]]+[[:space:]]+([^[:space:]\[\];]+)(\[[^;]*\])?;$/, a)) {
print "\t\t" prefix "." a[1] ","
}
}

View File

@ -34,36 +34,7 @@ AC_DEFUN([st_BPF_ATTR], [dnl
AC_CHECK_MEMBERS(m4_normalize([
EOF
gawk -e '
/^struct ([^[:space:]]+)_struct([[:space:]]+\/\* ([^[:space:]]+) \*\/)?[[:space:]]+{/ {
match($0, /^struct ([^[:space:]]+)_struct([[:space:]]+\/\* ([^[:space:]]+) \*\/)?[[:space:]]+{/, a)
struct_name = a[1]
subtype_name = a[3]
if (struct_name ~ /^BPF_/)
prefix = "union bpf_attr"
else
prefix = "struct " struct_name
if (subtype_name != "")
prefix = prefix "." subtype_name
in_struct = 1
next
}
/^}( ATTRIBUTE_ALIGNED\(.*\))?;/ {
in_struct = 0
next
}
(in_struct == 1) {
if (match($0, /^[[:space:]]+[^;\[\]]+[[:space:]]+([^[:space:]\[\];]+)(\[[^;]*\])?;$/, a)) {
print "\t\t" prefix "." a[1] ","
}
}
' < "$input" | sort -u
gawk -f "${0%/*}"/gen_bpf_attr_m4.awk < "$input" | sort -u
cat <<'EOF'
union bpf_attr.dummy