From: Benoît Ganne Date: Wed, 9 Sep 2020 10:50:07 +0000 (+0200) Subject: build: fix build for Debian 9 and Debian 10 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=3f0ae664faf33578515ffa1fd5287ad692f16c6f;p=vpp.git build: fix build for Debian 9 and Debian 10 Type: fix Change-Id: Ic07d0ae313b32e420ba93693cb75960a86f752a9 Signed-off-by: Benoît Ganne --- diff --git a/Makefile b/Makefile index 29c4c962254..cac1ed770d9 100644 --- a/Makefile +++ b/Makefile @@ -91,6 +91,8 @@ else ifeq ($(OS_ID)-$(OS_VERSION_ID),debian-9) DEB_DEPENDS += libssl1.0-dev DEB_DEPENDS += python-all python-pip DEB_DEPENDS += python-dev python-all python-pip python-virtualenv +else ifeq ($(OS_ID)-$(OS_VERSION_ID),debian-10) + DEB_DEPENDS += libelf-dev # for libbpf (af_xdp) else DEB_DEPENDS += libssl-dev endif diff --git a/src/tools/vppapigen/vppapigen.py b/src/tools/vppapigen/vppapigen.py index 9d74a5b0357..bfc77ca7019 100755 --- a/src/tools/vppapigen/vppapigen.py +++ b/src/tools/vppapigen/vppapigen.py @@ -11,7 +11,7 @@ import os import sys from subprocess import Popen, PIPE -assert sys.version_info >= (3, 6), \ +assert sys.version_info >= (3, 5), \ "Not supported Python version: {}".format(sys.version) log = logging.getLogger('vppapigen') @@ -780,12 +780,13 @@ class VPPAPI(object): def parse_filename(self, filename, debug=0): if self.revision: - git_show = f'git show {self.revision}:{filename}' + git_show = 'git show {}:{}'.format(self.revision, filename) proc = Popen(git_show.split(), stdout=PIPE, encoding='utf-8') try: data, errs = proc.communicate() if proc.returncode != 0: - print(f'File not found: {self.revision}:{filename}', file=sys.stderr) + print('File not found: {}:{}'.format(self.revision, + filename), file=sys.stderr) sys.exit(2) return self.parse_string(data, debug=debug) except Exception as e: @@ -795,7 +796,7 @@ class VPPAPI(object): with open(filename, encoding='utf-8') as fd: return self.parse_fd(fd, None) except FileNotFoundError: - print(f'File not found: {filename}', file=sys.stderr) + print('File not found: {}'.format(filename), file=sys.stderr) sys.exit(2) def autoreply_block(self, name, parent): diff --git a/src/vnet/devices/virtio/virtio.h b/src/vnet/devices/virtio/virtio.h index f1eaa07fe5d..b00e1eceb85 100644 --- a/src/vnet/devices/virtio/virtio.h +++ b/src/vnet/devices/virtio/virtio.h @@ -129,7 +129,15 @@ typedef struct /* error */ clib_error_t *error; - u8 mac_addr[6]; + union + { + struct + { + u32 mac_addr32; + u16 mac_addr16; + }; + u8 mac_addr[6]; + }; union { struct /* tun/tap interface */ diff --git a/src/vnet/devices/virtio/virtio_pci_modern.c b/src/vnet/devices/virtio/virtio_pci_modern.c index 0d86ff2acda..4eb0ff102ae 100644 --- a/src/vnet/devices/virtio/virtio_pci_modern.c +++ b/src/vnet/devices/virtio/virtio_pci_modern.c @@ -311,19 +311,17 @@ virtio_pci_modern_del_queue (vlib_main_t * vm, virtio_if_t * vif, static void virtio_pci_modern_get_device_mac (vlib_main_t * vm, virtio_if_t * vif) { - *((u32 *) vif->mac_addr) = - virtio_pci_reg_read_u32 (vif, VIRTIO_MAC_OFFSET (vif)); - *((u16 *) (vif->mac_addr + 4)) = + vif->mac_addr32 = virtio_pci_reg_read_u32 (vif, VIRTIO_MAC_OFFSET (vif)); + vif->mac_addr16 = virtio_pci_reg_read_u16 (vif, VIRTIO_MAC_OFFSET (vif) + 4); } static void virtio_pci_modern_set_device_mac (vlib_main_t * vm, virtio_if_t * vif) { - virtio_pci_reg_write_u32 (vif, VIRTIO_MAC_OFFSET (vif), - *((u32 *) vif->mac_addr)); + virtio_pci_reg_write_u32 (vif, VIRTIO_MAC_OFFSET (vif), vif->mac_addr32); virtio_pci_reg_write_u16 (vif, VIRTIO_MAC_OFFSET (vif) + 4, - *((u16 *) (vif->mac_addr + 4))); + vif->mac_addr16); } static u16