From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 4A249594B for ; Wed, 2 Dec 2015 13:54:36 +0100 (CET) Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (Postfix) with ESMTPS id 79558C0CC623; Wed, 2 Dec 2015 12:54:35 +0000 (UTC) Received: from sopuli.koti.laiskiainen.org (vpn1-6-161.ams2.redhat.com [10.36.6.161]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id tB2CsXNZ023492; Wed, 2 Dec 2015 07:54:33 -0500 To: Thomas Monjalon References: <1449028676-19232-1-git-send-email-thomas.monjalon@6wind.com> <1449028676-19232-4-git-send-email-thomas.monjalon@6wind.com> <565EC77B.6060807@redhat.com> <1789607.LxQySkSOJm@xps13> From: Panu Matilainen Message-ID: <565EEA08.9050900@redhat.com> Date: Wed, 2 Dec 2015 14:54:32 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <1789607.LxQySkSOJm@xps13> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH 03/10] mk: install a standard cutomizable tree 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: Wed, 02 Dec 2015 12:54:36 -0000 On 12/02/2015 01:25 PM, Thomas Monjalon wrote: > 2015-12-02 12:27, Panu Matilainen: >> On 12/02/2015 05:57 AM, Thomas Monjalon wrote: >>> The old installed tree was static and always had .config, includes and >>> libs in a RTE_TARGET subdirectory. There is no such directory anymore in >>> an installed SDK. So the top directory is checked. >>> But RTE_TARGET can still be used, especially to build an app with a >>> compiled but not installed SDK. >>> That's why both cases are looked for RTE_SDK_BIN. > [...] >>> The old usage of an installed SDK is: >>> make -C examples/helloworld RTE_SDK=$(readlink -m $DESTDIR) \ >>> RTE_TARGET=x86_64-native-linuxapp-gcc >>> RTE_TARGET can be specified but is useless now with an installed SDK. >>> The RTE_SDK directory must now point to a different path depending of >>> the installation. > [...] >>> + $(Q)$(call rte_mkdir, $(DESTDIR)$(sdkdir)) >>> + $(Q)cp -a $(BUILD_DIR)/.config $(DESTDIR)$(sdkdir) >>> + $(Q)cp -a $(RTE_SDK)/{mk,scripts} $(DESTDIR)$(sdkdir) >>> + $(Q)$(call rte_symlink, $(DESTDIR)$(includedir), $(DESTDIR)$(sdkdir)/include) >>> + $(Q)$(call rte_symlink, $(DESTDIR)$(libdir), $(DESTDIR)$(sdkdir)/lib) >> >> $(prefix)/share is supposed to be shareable across different >> architectures. Most of the content here is, but at least the lib symlink >> and .config file are not. > > The case you want to address is multilib 32/x32/64, right? That, plus modern Debian/Ubuntu supports multiarch, not just -lib. And then there's the pedantic side, ie to be in line with the FHS definition: http://www.pathname.com/fhs/pub/fhs-2.3.html#USRSHAREARCHITECTUREINDEPENDENTDATA > >> One option is to install .config and the symlinks within $(sdkdir)/$(T) >> directories, then it can be shared across architectures because each >> lives in their own directory. Another possibility is moving the whole >> sdk directory into a subdir in $(libdir), but that misses the >> opportunity to share across architectures (whether anybody actually >> cares is a whole other question :) > > Yes, I tried to remove the use of RTE_TARGET when building an example. > But we can keep it with a subdirectory in $(sdkdir). Just realized my suggestion $(sdkdir)/$(T) would not cut it because if T= is specified then this installation method wont be invoked at all :D So yeah, RTE_TARGET. Or perhaps just RTE_ARCH. Dunno if there's actual added value to having the whole target string there, but I wont mind either. > >> $(sdkdir)/lib -> $(libdir) symlink seems reasonable when installing to >> an empty staging root, but on a real-world installation it'd point to >> /usr/lib(something) which has hundreds or thousands of other unrelated >> libraries. My memory is hazy on details but I think this caused an >> actual problem with something because I ended up $(sdkdir)/lib an actual >> directory populated with symlinks to the individual DPDK libraries. > > I don't see the problem. > I suggest to keep it and see how to fix it if an issue is raised. The problem probably had to do with something external, like compiling OVS or pktgen, but ... this is too hand-wavy to worry about right now. Just wanted to mention it because I dont think I added the extra complexity in packaging just for fun. - Panu -