From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ie0-f181.google.com (mail-ie0-f181.google.com [209.85.223.181]) by dpdk.org (Postfix) with ESMTP id 900509A8C for ; Fri, 13 Mar 2015 15:12:36 +0100 (CET) Received: by iecsl2 with SMTP id sl2so106904165iec.1 for ; Fri, 13 Mar 2015 07:12:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=zYxYj79KwVOqtayXJrpcdZSxS81gLiAQcMdLJvMelpU=; b=QgucuWmNFwUsyVX/QqKpXJu8WzOxrXkecp/Tva0uhTYxUa8/LVnc13dtNuC6QzB3pe kMWIr4e+CBpo4MJXpE2bSH8eea+E+/JmFd+4bkA6cX86IphnzCUhkg6QgMvlmciP3Nrj B4yld04yU/9jKfoPNYqAb0VJKJG2P5N0PosgpF+6u/mSbhgMjW+CojOuPTIeu+TE28mu URf/z0HpfxAZae7b9k597GEA5ENSASHXSshb4lKneK21y0HCPfhaF7LUBuMm20iEWyG0 hpGyW2zEaK0xok3YEazRWv7KafNigtRoHt9aM7zyeeJMTPNJ/uF5K6CQWS1HLX48iCeX w3NA== MIME-Version: 1.0 X-Received: by 10.107.152.211 with SMTP id a202mr83604932ioe.59.1426255955656; Fri, 13 Mar 2015 07:12:35 -0700 (PDT) Received: by 10.36.60.78 with HTTP; Fri, 13 Mar 2015 07:12:35 -0700 (PDT) In-Reply-To: <20150313131719.GA28191@hmsreliant.think-freely.org> References: <1422544811-26385-1-git-send-email-sergio.gonzalez.monroy@intel.com> <1426177681-16931-1-git-send-email-sergio.gonzalez.monroy@intel.com> <1426177681-16931-2-git-send-email-sergio.gonzalez.monroy@intel.com> <5502C7D9.2060503@intel.com> <5502CEAB.8060801@intel.com> <20150313131719.GA28191@hmsreliant.think-freely.org> Date: Fri, 13 Mar 2015 16:12:35 +0200 Message-ID: From: Stefan Puiu To: Neil Horman Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [PATCH v2 1/4] mk: Remove combined library and related options X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Mar 2015 14:12:37 -0000 Hi, 2 cents from a DPDK library user - I make 2 changes to the default linux+gcc configuration: combine libraries and build shared libraries (since I want 2 instances of the app, it didn't make sense to me to link statically). I tried working with the individual libs, but adding all of them with --start-group/-end-group just seemed so much more painful than simply linking against one lib. I know there are some Makefile variables to help with this, but I use scons for building my app, so that doesn't help much. Of course, if that can be achieved easily after building all the libraries, that's fine. But I think combining the libs makes a lot of sense in many cases. Thanks, Stefan. On Fri, Mar 13, 2015 at 3:17 PM, Neil Horman wrote: > On Fri, Mar 13, 2015 at 11:48:59AM +0000, Gonzalez Monroy, Sergio wrote: >> On 13/03/2015 11:34, Kavanagh, Mark B wrote: >> >>On 13/03/2015 10:49, Kavanagh, Mark B wrote: >> >>>>--- >> >>>>config/common_bsdapp | 6 -- >> >>>>config/common_linuxapp | 6 -- >> >>>>config/defconfig_ppc_64-power8-linuxapp-gcc | 2 - >> >>>>lib/Makefile | 1 - >> >>>>mk/rte.app.mk | 12 ---- >> >>>>mk/rte.lib.mk | 35 ---------- >> >>>>mk/rte.sdkbuild.mk | 3 - >> >>>>mk/rte.sharelib.mk | 101 ------------------= ---------- >> >>>>mk/rte.vars.mk | 9 --- >> >>>>9 files changed, 175 deletions(-) >> >>>>delete mode 100644 mk/rte.sharelib.mk >> >>>> >> >>>>diff --git a/config/common_bsdapp b/config/common_bsdapp >> >>>>index 8ff4dc2..7ee5ecf 100644 >> >>>>--- a/config/common_bsdapp >> >>>>+++ b/config/common_bsdapp >> >>>>@@ -79,12 +79,6 @@ CONFIG_RTE_FORCE_INTRINSICS=3Dn >> >>>>CONFIG_RTE_BUILD_SHARED_LIB=3Dn >> >>>> >> >>>># >> >>>>-# Combine to one single library >> >>>>-# >> >>>>-CONFIG_RTE_BUILD_COMBINE_LIBS=3Dn >> >>>>-CONFIG_RTE_LIBNAME=3Dintel_dpdk >> >>>Hi Sergio, >> >>> >> >>>Removing these options breaks compatibility with OVS. While it may be= feasible to link >> >>to individual static libraries, in our experience, a single combined l= ibrary provides a >> >>much more convenient way of linking. >> >>>Thanks, >> >>>Mark >> >>> >> >>>>- >> > >> >(snip) >> > >> > >> >>>>-endif >> >>>>- >> >>>>-RTE_LIBNAME :=3D $(CONFIG_RTE_LIBNAME:"%"=3D%) >> >>>>-ifeq ($(RTE_LIBNAME),) >> >>>>-RTE_LIBNAME :=3D intel_dpdk >> >>>>endif >> >>>> >> >>>># RTE_TARGET is deducted from config when we are building the SDK. >> >>>>-- >> >>>>1.9.3 >> >>Hi Mark, >> >> >> >>How does this patch break compatibility with OVS? >> >> >> >>Thanks, >> >>Sergio >> >Hey Sergio, >> > >> >We use the CONFIG_RTE_BUILD_COMBINE_LIBS and CONFIG_RTE_LINBNAME flags = to build a single static DPDK library, named 'libintel_dpdk.a', which OVS l= inks against. Removing the combined library option breaks compatibility wit= h any application that links against the combined DPDK library. >> > >> >Is there a strong technical motivation for removing these options? >> > >> >Thanks, >> >Mark >> From a shared library point of view, it just does not make sense to have >> applications linked against a 'combined' library that may have different >> features built in it. >> >> Removing these options, aside from the obvious 'less build config option= ', >> it simplifies maintenance of makefiles as we currently have a separated >> makefile with specific rules just for combined library. >> >> It is pretty straight forward to build a single combined archive out of >> multiple archives, would it be acceptable to have a script to do this? >> >> Thanks, >> Sergio >> > +1 > > For the static case, its easy to do a post build combination of archives.= For > the shared library case, its equally easy to simply create a linker scrip= ts call > .so that pulls in all the individual libraries. > > Neil >