MSVC struct packing is not compatible with GCC. Replace macro __rte_packed with __rte_packed_begin to push existing pack value and set packing to 1-byte and macro __rte_packed_end to restore the pack value prior to the push.
Macro __rte_packed_end is deliberately utilized to trigger a MSVC compiler warning if no existing packing has been pushed allowing easy identification of locations where the __rte_packed_begin is missing. Signed-off-by: Andre Muezerie <andre...@linux.microsoft.com> --- examples/ipsec-secgw/ipsec.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/ipsec-secgw/ipsec.h b/examples/ipsec-secgw/ipsec.h index f12f57e2d5..afa0f28cc5 100644 --- a/examples/ipsec-secgw/ipsec.h +++ b/examples/ipsec-secgw/ipsec.h @@ -274,11 +274,12 @@ struct socket_ctx { struct rte_mempool *session_pool; }; +__rte_packed_begin struct cnt_blk { uint32_t salt; uint64_t iv; uint32_t cnt; -} __rte_packed; +} __rte_packed_end; struct __rte_cache_aligned lcore_rx_queue { uint16_t port_id; -- 2.47.0.vfs.0.3