ANDROID: Fix 32-bit x86 iproute2 on 64-bit kernel

Fix VtsKernelNetTest / xfrm_test.XfrmFunctionalTest testAddSa and other
system users of iproute2 binaries on 32-bit x86 userspaces.

The upstream XFRM netlink interface does not use packed structures, so
it depends on architecture-specific alignment of XFRM structures. In
upstream kernels, the workaround was to disallow 32-bit applications to
use this netlink interface on 64-bit kernels, but on Android we want to
support this, and so the check was removed from the kernel.

Other changes had already been made to netd and various C++ unittests to
mitigate this incompatibility, however these workarounds were not
applied / cannot work with the C binaries from the iproute2 package.
Apply the same workaround again here.

NOTE: This explicitly breaks running iproute2 on a 32-bit x86 kernel.
However, we don't think this will affect any device in the Android
ecosystem.

Bug: 138147164
Change-Id: Ibc6aa966f7f114d75c46078e5675ba2a44836a7d
3 files changed