On 9/25/2020 3:28 PM, Bruce Richardson wrote:
On Fri, Sep 25, 2020 at 10:08:35AM -0400, Lance Richardson wrote:
On Fri, Sep 25, 2020 at 9:44 AM Bruce Richardson
<bruce.richard...@intel.com> wrote:

On Fri, Sep 25, 2020 at 09:27:25AM -0400, Lance Richardson wrote:
On Fri, Sep 25, 2020 at 5:13 AM Bruce Richardson
<bruce.richard...@intel.com> wrote:

On Thu, Sep 24, 2020 at 12:37:42PM -0400, Lance Richardson wrote:
Add meson cross files for building i686 targets using gcc on x86_64
linux hosts.

Uusage example:

     meson --cross-file config/x86/cross-i686-linux-gcc build-i686
     ninja -C build-i686

Signed-off-by: Lance Richardson <lance.richard...@broadcom.com>
---
Red Hat distros use a different name for the 32-bit pkg-config
command from most other distros, maybe there is a better way
to handle this than using separate files.

Others will probably have better naming suggestions for the files.

Just to note that rather than using cross-files, building i686 on x86_64
should be possible by just setting environment variables.

For example, on Ubuntu 20.04, this works for me:

PKG_CONFIG_LIBDIR=/usr/lib/i386-linux-gnu/pkgconfig CFLAGS='-m32' 
LDFLAGS='-m32' meson --werror build-32bit
ninja -C build-32bit/

For Fedora or Redhat system the PKG_CONFIG_LIBDIR will be different (I
think just /usr/lib/pkgconfig), but the rest should work identically.

/Bruce

Thanks, that does work, although I'll have some trouble remembering it
for future
use (unlike using cross-files). Googling for "PKG_CONFIG_LIBDIR meson dpdk"
did lead me to this discussion, which makes it sound like cross-files
might still
worthy of consideration:

    https://patches.dpdk.org/patch/69067/


Yes, absolutely the cross-file is worthy of consideration. The most awkward
part in both cases is getting the 32-bit pkg-config right.

Agreed, having the distro-specific bits is not pretty.

Would it be possible to set the pkgconfig binary name or
PKG_CONFIG_LIBDIR in config/x86/meson.build? If so,
maybe we could have a single cross-file and probe for the
distro-specifics in meson.build.

Sadly, I'm not aware of any way to do that right now. It probably requires
changes in meson itself. :-(


I did hit similar thing with arm cross compile recently, the values provided in the 'config/arm/arm64_armv8_linux_gcc' doesn't match with the cross compiler I installed, so had to update it manually. Not sure if it is possible to cover all options, or should we add a config file to cover each case, perhaps we can document it and go with common values.

Reply via email to