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

H.J. Lu
2020-07-28T15:05:53Z

On Tue, Jul 28, 2020 at 7:34 AM Simon Marchi <simark@simark.ca> wrote:
>
> 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
> ...
>

I checked it again. I also passed i686-linux, not --host=, to configure.

>
> 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.

I am OK to remove pkg.m4.

--
H.J.