From mboxrd@z Thu Jan 1 00:00:00 1970 From: Panu Matilainen Subject: Re: [PATCH v2 5/7] mk: fix external dependencies of crypto drivers Date: Mon, 27 Jun 2016 11:48:40 +0300 Message-ID: References: <1466959325-9426-1-git-send-email-thomas.monjalon@6wind.com> <1466959325-9426-6-git-send-email-thomas.monjalon@6wind.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Cc: dev@dpdk.org To: Thomas Monjalon Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 6DEEE5A90 for ; Mon, 27 Jun 2016 10:48:42 +0200 (CEST) In-Reply-To: <1466959325-9426-6-git-send-email-thomas.monjalon@6wind.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 06/26/2016 07:42 PM, Thomas Monjalon wrote: > When linking drivers as shared libraries, the dependencies need > to be marked as DT_NEEDED entries. > > The crypto dependencies (libsso and libIPSec) are static libraries. > To make them linked in the shared PMDs, the code must relocatable: > - libIPSec_MB.a must be built with -fPIC > - libsso_kasumi.a must be built with KASUMI_CFLAGS=-DKASUMI_C > > Fixes: 924e84f87306 ("aesni_mb: add driver for multi buffer based crypto") > Fixes: eec136f3c54f ("aesni_gcm: add driver for AES-GCM crypto operations") > Fixes: 3aafc423cf4d ("snow3g: add driver for SNOW 3G library") > Fixes: 2773c86d061a ("crypto/kasumi: add driver for KASUMI library") > > Signed-off-by: Thomas Monjalon > --- > drivers/crypto/aesni_gcm/Makefile | 3 ++- > drivers/crypto/aesni_mb/Makefile | 3 ++- > drivers/crypto/kasumi/Makefile | 3 ++- > drivers/crypto/snow3g/Makefile | 3 ++- > 4 files changed, 8 insertions(+), 4 deletions(-) > > diff --git a/drivers/crypto/aesni_gcm/Makefile b/drivers/crypto/aesni_gcm/Makefile > index ab5d2ed..5898cae 100644 > --- a/drivers/crypto/aesni_gcm/Makefile > +++ b/drivers/crypto/aesni_gcm/Makefile > @@ -49,9 +49,10 @@ LIBABIVER := 1 > # versioning export map > EXPORT_MAP := rte_pmd_aesni_gcm_version.map > > -# external library include paths > +# external library dependencies > CFLAGS += -I$(AESNI_MULTI_BUFFER_LIB_PATH) > CFLAGS += -I$(AESNI_MULTI_BUFFER_LIB_PATH)/include > +LDLIBS += -L$(AESNI_MULTI_BUFFER_LIB_PATH) -lIPSec_MB > LDLIBS += -lcrypto > > # library source files > diff --git a/drivers/crypto/aesni_mb/Makefile b/drivers/crypto/aesni_mb/Makefile > index 348a8bd..d3994cc 100644 > --- a/drivers/crypto/aesni_mb/Makefile > +++ b/drivers/crypto/aesni_mb/Makefile > @@ -49,9 +49,10 @@ LIBABIVER := 1 > # versioning export map > EXPORT_MAP := rte_pmd_aesni_version.map > > -# external library include paths > +# external library dependencies > CFLAGS += -I$(AESNI_MULTI_BUFFER_LIB_PATH) > CFLAGS += -I$(AESNI_MULTI_BUFFER_LIB_PATH)/include > +LDLIBS += -L$(AESNI_MULTI_BUFFER_LIB_PATH) -lIPSec_MB > > # library source files > SRCS-$(CONFIG_RTE_LIBRTE_PMD_AESNI_MB) += rte_aesni_mb_pmd.c > diff --git a/drivers/crypto/kasumi/Makefile b/drivers/crypto/kasumi/Makefile > index 72b1ca4..9fb0be8 100644 > --- a/drivers/crypto/kasumi/Makefile > +++ b/drivers/crypto/kasumi/Makefile > @@ -49,10 +49,11 @@ LIBABIVER := 1 > # versioning export map > EXPORT_MAP := rte_pmd_kasumi_version.map > > -# external library include paths > +# external library dependencies > CFLAGS += -I$(LIBSSO_KASUMI_PATH) > CFLAGS += -I$(LIBSSO_KASUMI_PATH)/include > CFLAGS += -I$(LIBSSO_KASUMI_PATH)/build > +LDLIBS += -L$(LIBSSO_KASUMI_PATH)/build -lsso_kasumi > > # library source files > SRCS-$(CONFIG_RTE_LIBRTE_PMD_KASUMI) += rte_kasumi_pmd.c > diff --git a/drivers/crypto/snow3g/Makefile b/drivers/crypto/snow3g/Makefile > index 582907f..bea6760 100644 > --- a/drivers/crypto/snow3g/Makefile > +++ b/drivers/crypto/snow3g/Makefile > @@ -49,10 +49,11 @@ LIBABIVER := 1 > # versioning export map > EXPORT_MAP := rte_pmd_snow3g_version.map > > -# external library include paths > +# external library dependencies > CFLAGS += -I$(LIBSSO_SNOW3G_PATH) > CFLAGS += -I$(LIBSSO_SNOW3G_PATH)/include > CFLAGS += -I$(LIBSSO_SNOW3G_PATH)/build > +LDLIBS += -L$(LIBSSO_SNOW3G_PATH)/build -lsso_snow3g > > # library source files > SRCS-$(CONFIG_RTE_LIBRTE_PMD_SNOW3G) += rte_snow3g_pmd.c > LDLIBS should only contain the actual libraries, everything else including -L should go to LDFLAGS. The rule is not honored in dpdk at all currently and nothing depends on that, so it doesn't really matter. Just thought to mention it since this adds several new instances of mixed usage. - Panu -