[meta-intel] [fido][PATCH 1/1] meta-crystalforest: build zlib shim layer for qat

anujx.mittal at intel.com anujx.mittal at intel.com
Sun Jul 5 22:28:36 PDT 2015


From: Anuj Mittal <anujx.mittal at intel.com>

This recipe and makefile patches add build support for
zlib shim layer for QAT v2.3.0-34.

zlib-qat libraries and headers are installed in /usr/local.

Signed-off-by: Anuj Mittal <anujx.mittal at intel.com>
---
 ...build-qat_mem-ko-against-yocto-kernel-src.patch |   55 ++++++++
 ...lib_test-add-a-install-target-to-makefile.patch |   44 +++++++
 ....4.7-002-zlib-Remove-rpaths-from-makefile.patch |   37 ++++++
 .../zlib-qat/zlib-qat_0.4.7-002.bb                 |  132 ++++++++++++++++++++
 4 files changed, 268 insertions(+)
 create mode 100644 meta-crystalforest/recipes-extended/zlib-qat/zlib-qat/zlib-qat-0.4.7-002-qat_mem-build-qat_mem-ko-against-yocto-kernel-src.patch
 create mode 100644 meta-crystalforest/recipes-extended/zlib-qat/zlib-qat/zlib-qat-0.4.7-002-qat_zlib_test-add-a-install-target-to-makefile.patch
 create mode 100644 meta-crystalforest/recipes-extended/zlib-qat/zlib-qat/zlib-qat-0.4.7-002-zlib-Remove-rpaths-from-makefile.patch
 create mode 100644 meta-crystalforest/recipes-extended/zlib-qat/zlib-qat_0.4.7-002.bb

diff --git a/meta-crystalforest/recipes-extended/zlib-qat/zlib-qat/zlib-qat-0.4.7-002-qat_mem-build-qat_mem-ko-against-yocto-kernel-src.patch b/meta-crystalforest/recipes-extended/zlib-qat/zlib-qat/zlib-qat-0.4.7-002-qat_mem-build-qat_mem-ko-against-yocto-kernel-src.patch
new file mode 100644
index 0000000..47ecb81
--- /dev/null
+++ b/meta-crystalforest/recipes-extended/zlib-qat/zlib-qat/zlib-qat-0.4.7-002-qat_mem-build-qat_mem-ko-against-yocto-kernel-src.patch
@@ -0,0 +1,55 @@
+From 198a9f71d524f5748cc9b7596bed0e76d5bd4423 Mon Sep 17 00:00:00 2001
+From: Anuj Mittal <anujx.mittal at intel.com>
+Date: Thu, 18 Jun 2015 11:56:08 +0800
+Subject: [PATCH] qat_mem: build qat_mem ko against yocto kernel src
+
+Upstream-Status: Inappropriate [Configuration]
+
+This tweaks the kernel source and build path in the makefile
+to make sure the module is built against the right source. Also
+add an install target to facilitate installation to {D}.
+
+Signed-off-by: Anuj Mittal <anujx.mittal at intel.com>
+---
+ contrib/qat/qat_mem/Makefile |   16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/contrib/qat/qat_mem/Makefile b/contrib/qat/qat_mem/Makefile
+index ddf5b59..e4d77b6 100644
+--- a/contrib/qat/qat_mem/Makefile
++++ b/contrib/qat/qat_mem/Makefile
+@@ -61,16 +61,10 @@
+ #########################################################################
+ 
+ MODULENAME 	:= qat_mem
+-KDIR		:= /lib/modules/$(shell uname -r)/build
++KDIR		:= $(KERNEL_SOURCE_ROOT)
+ PWD		:= $(shell pwd)
+ 
+-ifeq ($(shell uname -r|grep -c grsec-WR), 1)
+-AUTO_CONF=/lib/modules/$(shell uname -r)/build/include/generated/autoconf.h
+-else
+-AUTO_CONF=/usr/src/kernels/$(shell uname -r)/include/linux/autoconf.h
+-endif
+-
+-CC		:= gcc -Wall -imacros $(AUTO_CONF)
++CC             := ${CC} -Wall -imacros $(KERNEL_BUILDDIR)/include/generated/autoconf.h
+ 
+ ifeq ($(KERNELRELEASE),)
+ all:	$(MODULENAME)_test
+@@ -80,6 +74,12 @@ else
+   obj-m	:= $(MODULENAME).o
+ endif
+ 
++install: modules_install
++	cp qat_mem_test $(INSTALL_MOD_PATH)$(bindir)
++
++modules_install:
++	$(MAKE) -C $(KDIR) M=$(PWD) modules_install
++
+ $(MODULENAME)_test: $(MODULENAME)_test.c
+ 	$(CC) -g -o $(MODULENAME)_test $(MODULENAME)_test.c
+ 
+-- 
+1.7.9.5
+
diff --git a/meta-crystalforest/recipes-extended/zlib-qat/zlib-qat/zlib-qat-0.4.7-002-qat_zlib_test-add-a-install-target-to-makefile.patch b/meta-crystalforest/recipes-extended/zlib-qat/zlib-qat/zlib-qat-0.4.7-002-qat_zlib_test-add-a-install-target-to-makefile.patch
new file mode 100644
index 0000000..44e1f97
--- /dev/null
+++ b/meta-crystalforest/recipes-extended/zlib-qat/zlib-qat/zlib-qat-0.4.7-002-qat_zlib_test-add-a-install-target-to-makefile.patch
@@ -0,0 +1,44 @@
+From 2baa963993dd345ce732549b8452c7a51bc4d2d1 Mon Sep 17 00:00:00 2001
+From: Anuj Mittal <anujx.mittal at intel.com>
+Date: Thu, 18 Jun 2015 11:53:23 +0800
+Subject: [PATCH] qat_zlib_test: add a install target to makefile
+
+Upstream-Status: Inappropriate [Configuration]
+
+This adds an install target to qat_zlib_test makefile
+to facilitate the installation of test binaries to {D}.
+
+Also removes RPATH that is no longer necessary and introduces
+warnings when building using bitbake.
+
+Signed-off-by: Anuj Mittal <anujx.mittal at intel.com>
+---
+ contrib/qat/qat_zlib_test/Makefile |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/contrib/qat/qat_zlib_test/Makefile b/contrib/qat/qat_zlib_test/Makefile
+index 8a29a92..7da5ddd 100644
+--- a/contrib/qat/qat_zlib_test/Makefile
++++ b/contrib/qat/qat_zlib_test/Makefile
+@@ -84,9 +84,6 @@ OBJS = $(SRCS:%.c=%.o)
+ COVERAGE_OBJS =
+ EXE=
+ LIBQAT=
+-ifdef ICP_BUILD_OUTPUT
+-    LIBQAT+= -Wl,-rpath,$(ICP_BUILD_OUTPUT) -L$(ICP_BUILD_OUTPUT)
+-endif
+ 
+ DRIVER=icp_qa_al
+ ifdef WITH_CPA_MUX
+@@ -115,5 +112,8 @@ comptestappsh$(EXE): $(OBJS) Makefile
+ 	$(CC) -o comptestappsh $(OBJS) $(COVERAGE) \
+ 	$(SHAREDLIBQAT)
+ 
++install:
++	cp comptestapp $(DESTDIR)$(bindir)
++
+ clean:
+ 	rm -f $(OBJS) $(COVERAGE_OBJS) comptestapp comptestappsh
+-- 
+1.7.9.5
+
diff --git a/meta-crystalforest/recipes-extended/zlib-qat/zlib-qat/zlib-qat-0.4.7-002-zlib-Remove-rpaths-from-makefile.patch b/meta-crystalforest/recipes-extended/zlib-qat/zlib-qat/zlib-qat-0.4.7-002-zlib-Remove-rpaths-from-makefile.patch
new file mode 100644
index 0000000..3a537a7
--- /dev/null
+++ b/meta-crystalforest/recipes-extended/zlib-qat/zlib-qat/zlib-qat-0.4.7-002-zlib-Remove-rpaths-from-makefile.patch
@@ -0,0 +1,37 @@
+From 65509f553fa22923a32f0bdf4d255e29285ecfba Mon Sep 17 00:00:00 2001
+From: Anuj Mittal <anujx.mittal at intel.com>
+Date: Thu, 18 Jun 2015 11:46:17 +0800
+Subject: [PATCH] zlib: Remove rpaths from makefile
+
+Upstream-Status: Inappropriate [configuration]
+
+This removes references to RPATHS that are no longer
+necesary when building using bitbake.
+
+Signed-off-by: Anuj Mittal <anujx.mittal at intel.com>
+---
+ Makefile.in |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 94d8a80..cba5291 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -59,12 +59,12 @@ ICP_LAC_API_DIR=$(ICP_API_DIR)/lac/
+ ICP_DC_API_DIR=$(ICP_API_DIR)/dc/
+ CFLAGS+=-D_GNU_SOURCE -I$(ICP_API_DIR) -I$(ICP_DC_API_DIR) -I$(ICP_LAC_API_DIR) -I$(ICP_SAL_API_DIR)
+ SFLAGS+=-D_GNU_SOURCE -I$(ICP_API_DIR) -I$(ICP_DC_API_DIR) -I$(ICP_LAC_API_DIR) -I$(ICP_SAL_API_DIR)
+-ADDITIONAL_LDFLAGS+=-Wl,-rpath,$(ZLIB_ROOT) -lz  
++#ADDITIONAL_LDFLAGS+=-Wl,-rpath,$(ZLIB_ROOT) -lz
+ SHARED_APP_FLAGS=-Wl,-rpath,$(ZLIB_ROOT) -L$(ZLIB_ROOT) -lz  
+ 
+ ifdef ICP_BUILD_OUTPUT
+     TEST_LDFLAGS+=-L$(ICP_BUILD_OUTPUT)
+-    ADDITIONAL_LDFLAGS+=-Wl,-rpath,$(ICP_BUILD_OUTPUT) -L$(ICP_BUILD_OUTPUT)  
++#    ADDITIONAL_LDFLAGS+=-Wl,-rpath,$(ICP_BUILD_OUTPUT) -L$(ICP_BUILD_OUTPUT)
+ endif
+ 
+ ifdef ZLIB_DH895XCC 
+-- 
+1.7.9.5
+
diff --git a/meta-crystalforest/recipes-extended/zlib-qat/zlib-qat_0.4.7-002.bb b/meta-crystalforest/recipes-extended/zlib-qat/zlib-qat_0.4.7-002.bb
new file mode 100644
index 0000000..cf65371
--- /dev/null
+++ b/meta-crystalforest/recipes-extended/zlib-qat/zlib-qat_0.4.7-002.bb
@@ -0,0 +1,132 @@
+SUMMARY="Zlib QAT_MEM Memory Management Module for Intel Quick Assist Technology"
+DESCRIPTION="This software accelerates the data compression algorithm \
+in the zlib software library via the Intel QuickAssist Technology \
+implemented on Intel Communications Chipset 89xx Series based platforms."
+
+HOMEPAGE = "http://zlib.net/"
+LICENSE = "Zlib & GPLv2 & BSD"
+
+ZLIB_VERSION = "1.2.8"
+
+LIC_FILES_CHKSUM = "file://${WORKDIR}/zlib-${ZLIB_VERSION}/zlib.h;beginline=4;endline=23;md5=fde612df1e5933c428b73844a0c494fd \ 
+			file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 \
+			file://${COMMON_LICENSE_DIR}/BSD;md5=3775480a712fc46a69647678acb234cb"
+	
+SRC_URI = "http://www.zlib.net/zlib-${ZLIB_VERSION}.tar.gz;name=zlib 					\
+	https://01.org/sites/default/files/page/zlib_shim_0.4.7-002_withdocumentation.zip;name=zlib_qat;subdir=${PN}-${PV} \
+	file://zlib-qat-0.4.7-002-zlib-Remove-rpaths-from-makefile.patch			\
+	file://zlib-qat-0.4.7-002-qat_mem-build-qat_mem-ko-against-yocto-kernel-src.patch 	\
+	file://zlib-qat-0.4.7-002-qat_zlib_test-add-a-install-target-to-makefile.patch 		\
+	"
+
+SRC_URI[zlib.md5sum]="44d667c142d7cda120332623eab69f40"
+SRC_URI[zlib.sha256sum]="36658cb768a54c1d4dec43c3116c27ed893e88b02ecfcb44f2166f9c0b7f2a0d"
+
+SRC_URI[zlib_qat.md5sum]="dfde8618198aa8d35ecc00d10dcc7000"
+SRC_URI[zlib_qat.sha256sum]="8e5786400bbc2a879ae705c864ec63b53ae019b4f2d1c94524a97223847b6e46"
+
+DEPENDS += " qat"
+REDEPENDS += " qat"
+
+PACKAGES =+ "${PN}-apps"
+inherit module
+
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+
+#Ignore warnings related to libraries being present in /usr/local/lib
+INSANE_SKIP_${PN} += "libdir"
+INSANE_SKIP_${PN}-dev += "libdir"
+
+export KERNEL_SOURCE_ROOT = "${STAGING_KERNEL_DIR}"
+export ICP_ROOT = "${WORKDIR}/zlib-${ZLIB_VERSION}"
+export ZLIB_DH895XCC = "1"
+export ZLIB_MEMORY_DRIVER = "qat_mem"
+export ICP_BUILD_OUTPUT = "${STAGING_DIR_TARGET}"
+export KERNEL_BUILDDIR = "${STAGING_KERNEL_BUILDDIR}"
+export ZLIB_ROOT = "${ICP_ROOT}"
+export ZLIB_INSTALL_PREFIX = "/usr/local"
+
+S = "${ICP_ROOT}"
+
+do_fixsource()	{
+	cd ${WORKDIR}/${PN}-${PV}
+	unzip zlib_quickassist_patch*.zip
+
+	cd zlib_quickassist_patch*
+	tar -zxof zlib-${ZLIB_VERSION}-qat.L.${PV}.tar.gz 
+	mv zlib-${ZLIB_VERSION}-qat.patch ${ICP_ROOT}/..
+}
+
+addtask do_fixsource after do_unpack before do_patch
+
+do_patch() 	{
+	cd ${S}
+	patch -p1 < ${WORKDIR}/zlib-${ZLIB_VERSION}-qat.patch
+	patch -p1 < ${WORKDIR}/zlib-qat-0.4.7-002-zlib-Remove-rpaths-from-makefile.patch 
+	patch -p1 < ${WORKDIR}/zlib-qat-0.4.7-002-qat_mem-build-qat_mem-ko-against-yocto-kernel-src.patch
+	patch -p1 < ${WORKDIR}/zlib-qat-0.4.7-002-qat_zlib_test-add-a-install-target-to-makefile.patch
+}
+
+do_configure()	{
+	./configure --prefix=$ZLIB_INSTALL_PREFIX --shared --libdir=$ZLIB_INSTALL_PREFIX$base_libdir --includedir=$ZLIB_INSTALL_PREFIX/include
+}
+
+do_compile()	{
+	unset CFLAGS CXXFLAGS
+	oe_runmake
+
+	cd ${S}/contrib/qat/qat_mem
+	oe_runmake
+
+	cd ${S}/contrib/qat/qat_zlib_test
+	oe_runmake
+}
+
+do_install()     {
+	unset prefix libdir includedir
+	oe_runmake DESTDIR=${D} install
+
+	install -D -m 750 minigzip 	${D}/${ZLIB_INSTALL_PREFIX}${base_bindir}/minigzip
+	install -D -m 750 zpipe 	${D}/${ZLIB_INSTALL_PREFIX}${base_bindir}/zpipe
+
+	mkdir -p ${D}/${ZLIB_INSTALL_PREFIX}${sysconfdir}/${PN}_conf
+	install -m 660 ${S}/contrib/qat/config/dh895xcc/multi_thread_optimized/dh895xcc_qa_dev0.conf ${D}/${ZLIB_INSTALL_PREFIX}${sysconfdir}/${PN}_conf
+
+	mkdir -p ${D}/${bindir}
+	cd ${S}/contrib/qat/qat_mem
+	oe_runmake INSTALL_MOD_PATH=${D} install
+
+	cd ${S}/contrib/qat/qat_zlib_test
+	oe_runmake DESTDIR=${D} install
+}
+
+#Override the package names to ensure package.bbclass doesn't pick up libz
+python populate_packages_prepend () {
+    if (d.getVar('DEBIAN_NAMES', True)):
+        d.setVar('PKG_${PN}-dev', '${MLPREFIX}${PN}-dev')
+        d.setVar('PKG_${PN}', '${MLPREFIX}${PN}')
+        d.setVar('PKG_${PN}-dbg', '${MLPREFIX}${PN}-dbg')
+        d.setVar('PKG_${PN}-staticdev', '${MLPREFIX}${PN}-staticdev')
+        d.setVar('PKG_${PN}-doc', '${MLPREFIX}${PN}-doc')
+}
+
+FILES_${PN}-staticdev += " \
+		${ZLIB_INSTALL_PREFIX}${base_libdir}/libz.a	\
+		"
+
+FILES_${PN}-dev += " \
+		${ZLIB_INSTALL_PREFIX}/include			\
+		${ZLIB_INSTALL_PREFIX}${base_libdir}/pkgconfig	\
+		${ZLIB_INSTALL_PREFIX}${base_libdir}/libz.so.1	\
+		${ZLIB_INSTALL_PREFIX}${base_libdir}/libz.so	\	
+		"
+	
+FILES_${PN}-apps += " \
+		${ZLIB_INSTALL_PREFIX}/bin 		\
+		${bindir}				\
+		"
+		
+FILES_${PN} += " \
+		${ZLIB_INSTALL_PREFIX}			\
+		${ZLIB_INSTALL_PREFIX}${base_libdir} 	\
+		"
-- 
1.7.9.5



More information about the meta-intel mailing list