Re: V2 [PATCH] PKG_CHECK_MODULES: Check if $pkg_cv_[]$1[]_LIBS works

Simon Marchi
2020-07-28T14:34:31Z

On 2020-07-28 10:11 a.m., H.J. Lu wrote:
> On Tue, Jul 28, 2020 at 7:01 AM Simon Marchi <simark@simark.ca> wrote:
>>
>> On 2020-07-28 9:56 a.m., H.J. Lu wrote:
>>> On Tue, Jul 28, 2020 at 6:51 AM Andreas Schwab <schwab@linux-m68k.org> wrote:
>>>>
>>>> On Jul 28 2020, H.J. Lu via Binutils wrote:
>>>>
>>>>> On x86, the native GCC can support -m32 and -m64. "gcc -m32" or "gcc -m64"
>>>>> are not cross compiling.
>>>>
>>>> You cannot link -m64 and -m32 together.
>>>>
>>>>> I didn't set PKG_CONFIG_LIBDIR and I don't want to set it.
>>>>
>>>> Then use the correct pkg-config for your target. If you think
>>>> pkg-config is broken, then fix _that_.
>>>>
>>>
>>> I did:
>>>
>>> RUNTESTFLAGS="--target_board 'unix{-m32}'" CC="gcc -m32 -fno-lto
>>> -fcf-protection"
>>> CXX="g++ -fno-lto -m32 -fcf-protection" /exp
>>> ort/gnu/import/git/gitlab/x86-binutils/configure \
>>> --enable-targets=x86_64-linux \
>>> i686-linux \
>>> --enable-plugins --disable-gdb --disable-gdbserver --disable-libdecnumbe
>>> r --disable-readline --disable-sim --with-sysroot=/ --with-system-zlib \
>>> --prefix=/usr/local \
>>> --with-local-prefix=/usr/local
>>> configure: WARNING: you should use --build, --host, --target
>>> checking build system type... i686-pc-linux-gnu
>>> checking host system type... i686-pc-linux-gnu
>>> checking target system type... i686-pc-linux-gnu
>>
>> So... is your build system a 32-bit one? Why does the above say i686-pc-linux-gnu
>> and not x86_64-something?
>>
>
> My system supports both -m32 and -m64. Depending on CC, configure
> selects i686 or x86-64 target.

Can you clarify how this magic works, is this standard autoconf? Because I am trying this
on Fedora, so pretty much the same setup as you, and I don't see this behavior:

$ /home/simark/src/binutils-gdb/configure CC="gcc -m32" CXX="g++ -m32"
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
...

And even if it worked, why would it set "build" to i686, it doesn't make sense. The gcc you
compile with, and its environment, is still x86_64, not i686.

So *if* it works, it would be a shortcut for setting --host=i686-something, maybe. So
regardless of how that above works, that doesn't remove the need to configure pkg-config
correctly for the host system.

If you don't want to learn about with pkg-config and deal with it, then please say "I think
we should not use pkg-config", and ideally give supporting points. Please don't unilaterally
push patches just to paper over your own problems. You just make it so that somebody will
need to untangle more mess later.

Simon