[libvirt PATCH 2/2] scripts: trim "__attribute__((packed))" in RPC struct diff

Daniel P. Berrangé berrange at redhat.com
Fri Oct 30 15:28:10 UTC 2020


i686 builds on x86_64 host on Debian 10 result in the RPC structs
getting "__attribute__((packed))" annotations added to them. This is
harmless since we know the XDR protocol aligns and pads struct fields
suitably on the wire. Thus we can safely cull the attribute before doing
the diff comparison.

Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
---
 scripts/check-remote-protocol.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/scripts/check-remote-protocol.py b/scripts/check-remote-protocol.py
index 0a6135376e..cd96e894a7 100644
--- a/scripts/check-remote-protocol.py
+++ b/scripts/check-remote-protocol.py
@@ -123,6 +123,12 @@ if n < 1:
 
 diff = subprocess.Popen(["diff", "-u", expected, "-"], stdin=subprocess.PIPE)
 actualstr = "\n".join(actual) + "\n"
+# i686 builds on x86_64 host add __attribute__(packed)) to
+# the structs. This doesn't matter functionally because we
+# know our RPC structs are suitably aligned to not need
+# packing, so we can just trim the attribute.
+actualstr = re.sub(r'''} __attribute__\(\(__packed__\)\);''', "};", actualstr)
+
 diff.communicate(input=actualstr.encode("utf-8"))
 
 sys.exit(diff.returncode)
-- 
2.28.0




More information about the libvir-list mailing list