From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <bruce.richardson@intel.com>
Received: from mga17.intel.com (mga17.intel.com [192.55.52.151])
 by dpdk.org (Postfix) with ESMTP id D14BE4CA0
 for <dev@dpdk.org>; Mon, 17 Sep 2018 21:34:13 +0200 (CEST)
X-Amp-Result: UNKNOWN
X-Amp-Original-Verdict: FILE UNKNOWN
X-Amp-File-Uploaded: False
Received: from fmsmga001.fm.intel.com ([10.253.24.23])
 by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 17 Sep 2018 12:34:12 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.53,386,1531810800"; d="scan'208";a="90879321"
Received: from bricha3-mobl.ger.corp.intel.com ([10.252.21.106])
 by fmsmga001.fm.intel.com with SMTP; 17 Sep 2018 12:34:10 -0700
Received: by  (sSMTP sendmail emulation); Mon, 17 Sep 2018 20:34:09 +0100
Date: Mon, 17 Sep 2018 20:34:08 +0100
From: Bruce Richardson <bruce.richardson@intel.com>
To: Thomas Monjalon <thomas@monjalon.net>
Cc: dev@dpdk.org
Message-ID: <20180917193408.GA18116@bricha3-MOBL.ger.corp.intel.com>
References: <20180829160252.7890-1-bruce.richardson@intel.com>
 <2047675.hNTm73f6kF@xps>
 <20180917151716.GA16172@bricha3-MOBL.ger.corp.intel.com>
 <4495560.7NONgeh6lB@xps>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <4495560.7NONgeh6lB@xps>
Organization: Intel Research and Development Ireland Ltd.
User-Agent: Mutt/1.10.1 (2018-07-13)
Subject: Re: [dpdk-dev] [PATCH] test-meson-builds: add 32-bit compilation
	test
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Mon, 17 Sep 2018 19:34:14 -0000

On Mon, Sep 17, 2018 at 06:44:52PM +0200, Thomas Monjalon wrote:
> 17/09/2018 17:17, Bruce Richardson:
> > On Mon, Sep 17, 2018 at 03:38:58PM +0200, Thomas Monjalon wrote:
> > > 17/09/2018 14:54, Bruce Richardson:
> > > > On Mon, Sep 17, 2018 at 02:03:50PM +0200, Thomas Monjalon wrote:
> > > > > 29/08/2018 18:02, Bruce Richardson:
> > > > > > Add in a cross-file to enable 32-bit compile tests as part
> > > > > > of the test-meson-builds script.
> > > > > > 
> > > > > > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> > > > > > ---
> > > > > > NOTE: For ease of use, it's recommended that meson 0.47 be used for
> > > > > > this testing. With earlier versions, it may be necessary to ensure that
> > > > > > the same development packages are installed for both 64-bit and 32-bit.
> > > > > > ---
> > > > > >  config/x86/i686_sse4_linuxapp_gcc | 18 ++++++++++++++++++
> > > > > >  devtools/test-meson-builds.sh     |  4 ++++
> > > > > >  2 files changed, 22 insertions(+)
> > > > > 
> > > > > I'm not sure about adding this test as mandatory, because 32-bit version
> > > > > of libraries can be hard to get, especially libbsd and libnuma.
> > > > > I hope this test will be run by all developers, so we should not discourage
> > > > > them by adding too many requirements.
> > > > > Opinion? Idea?
> > > > 
> > > > Libbsd is not required, but yes, libnuma is, so you do need a 32-bit
> > > > libnuma (devel) installed to run this test. I would expect that to be
> > > > available on most distros though. I'm open to suggestions as to how to make
> > > > this optional, but I do think that sanity checking 32-bit is good practice
> > > > to avoid errors, e.g. those wonderful printf format strings for uint64_t.*
> > > 
> > > I agree and I am testing i686 with the "make build system".
> > > I define DPDK_DEP_NUMA=n which disables any NUMA option.
> > > Can we have this kind of tweak with meson?
> > > 
> > > Or perhaps we can just have an option in the script to disable this test?
> > > 
> > Actually, do you see build failures with 32-bit without the numa or BSD
> > libraries? I removed 32-bit versions of both dev packages and everything
> > still compiles? The setting of the appropriate defines is based on detected
> > libraries.
> 
> This is what I see:
> 
> ninja -C build-i686
> ninja: Entering directory `build-i686'
> [6/1237] Linking target lib/librte_kvargs.so.1.1.
> FAILED: lib/librte_kvargs.so.1.1 
> gcc  -o lib/librte_kvargs.so.1.1 'lib/lib@@rte_kvargs@sta/librte_kvargs_rte_kvargs.c.o' -Wl,--no-undefined -Wl,--as-needed -Wl,-O1 -shared -fPIC -Wl,--start-group -Wl,-soname,librte_kvargs.so.1 -pthread -lm -ldl -lnuma -lbsd -Wl,--end-group -Wl,--version-script=lib/librte_kvargs/rte_kvargs_version.map -m32 
> /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/../../../libnuma.so when searching for -lnuma
> /usr/bin/ld: skipping incompatible /usr/lib/libnuma.so when searching for -lnuma
> /usr/bin/ld: cannot find -lnuma
> /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/../../../libbsd.so when searching for -lbsd
> /usr/bin/ld: skipping incompatible /usr/lib/libbsd.so when searching for -lbsd
> /usr/bin/ld: cannot find -lbsd
> collect2: error: ld returned 1 exit status
> [11/1237] Compiling C object 'lib/lib@@rte_eal@sta/librte_eal_common_eal_common_fbarray.c.o'.
> ninja: build stopped: subcommand failed.
> 
What version of meson are you using? As the comment in the file suggests,
0.47 is really needed for sane behaviour, as before then meson could
sometimes pick up 64-bit static libs and use them for 32-bit compilation.
[Being static libs makes them rather hard to test if they are usable since
the .a file itself doesn't provide that info, unlike for a .so]. So for
0.46 or earlier, you can still build, but you probably need 32-bit versions
of your 64-bit dev packages installed.

/Bruce