crypto: align host and VPP IPsec-mb lib 76/39976/16
authorRanjan Raj <ranjanx.raj@intel.com>
Mon, 20 Nov 2023 07:04:24 +0000 (07:04 +0000)
committerFan Zhang <fanzhang.oss@gmail.com>
Thu, 11 Jan 2024 13:19:57 +0000 (13:19 +0000)
Ensure alignment between the Intel IPsec-mb library on the
host and VPP targets.If the version of Intel ipsec-mb on the
host is misaligned with the targets,terminate the compilation
process to prevent potential library linkage issues.

Type: fix

Change-Id: I38864115d59ae09fb5556ad4a29e884ebace8155
Signed-off-by: Ranjan Raj <ranjanx.raj@intel.com>
build/external/packages/ipsec-mb.mk

index 3e8ef21..d38f2e3 100644 (file)
@@ -12,6 +12,8 @@
 # limitations under the License.
 
 ipsec-mb_version             := 1.5
+ipsec-mb_patch_version       := 0
+ipsec-mb_version_str         := $(ipsec-mb_version).$(ipsec-mb_patch_version)
 ipsec-mb_tarball             := v$(ipsec-mb_version).tar.gz
 ipsec-mb_tarball_md5sum_1.0  := 906e701937751e761671dc83a41cff65
 ipsec-mb_tarball_md5sum_1.1  := 3916471d3713d27e42473cb6af9c65e5
@@ -23,6 +25,7 @@ ipsec-mb_tarball_md5sum_1.5  := f18680f8dd43208a15a19a494423bdb9
 ipsec-mb_tarball_md5sum      := $(ipsec-mb_tarball_md5sum_$(ipsec-mb_version))
 ipsec-mb_tarball_strip_dirs  := 1
 ipsec-mb_url                 := http://github.com/intel/intel-ipsec-mb/archive/$(ipsec-mb_tarball)
+ipsec-mb_system_header       := $(wildcard /usr/include/intel-ipsec-mb.h)
 
 define  ipsec-mb_config_cmds
        @true
@@ -38,7 +41,22 @@ define  ipsec-mb_build_cmds
          EXTRA_CFLAGS="-g -msse4.2" > $(ipsec-mb_build_log)
 endef
 
+ifneq   ($(ipsec-mb_system_header), )
+       ipsec-mb_system_ver_str := $(shell awk '/^#define\s+IMB_VERSION_STR/ { print $$3 }' \
+       $(ipsec-mb_system_header))
+endif
+
 define  ipsec-mb_install_cmds
+       if [[ -n "$(ipsec-mb_system_header)" ]]; then \
+               if [[ "$(ipsec-mb_system_ver_str)" != "$(ipsec-mb_version_str)" ]]; then \
+               echo "Intel-ipsec-mb build Error: System installed Intel IPsec-mb lib \
+               version mismatch with target version, \
+               expecting $(ipsec-mb_version_str), \
+               but system has $(ipsec-mb_system_ver_str) \
+               please align/remove system installed $(ipsec-mb_system_header) before building."; \
+               exit 1; \
+               fi \
+       fi
        @mkdir -p $(ipsec-mb_install_dir)/include
        @mkdir -p $(ipsec-mb_install_dir)/lib
        @cp $(ipsec-mb_src_dir)/lib/intel-ipsec-mb.h $(ipsec-mb_install_dir)/include