[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: config.guess manufacturer string?

On Thu, 19 Feb 2009, Ralf Corsepius wrote:

Panu Matilainen wrote:
On Wed, 18 Feb 2009, Dan Nicholson wrote:

On Wed, Feb 18, 2009 at 9:13 AM, Stepan Kasal <skasal redhat com> wrote:

Actually, if you care about the host triplet used for rpm builds,
that's something where config.guess is not directly involved.

Most spec files call %configure.  That macro calls configure with
option --build.  With that option given, configure does not call

The advantage of setting --build correctly is that autoconf macros
will use test against the triplet will work as expected. For instance
AC_PROG_CC will search for gcc with the host triplet prefixed. Right
now, it searches for x86_64-unknown-linux-gnu-gcc. That's not how gcc
is installed on fedora (nor with the -gnu, but that's a separate

Right, there's /usr/bin/x86_64-redhat-linux-gcc instead, and quite obviously the build tools should be configured to match within the distro.
Please elaborate.

Unlike you're saying, it's actually not obvious.

/usr/bin/x86_64-redhat-linux-gcc only exists as legacy being installed in parallel to /usr/bin/gcc for cases where people are violently passing --build/--host/--target (such as current rpm).

Legacy? Okay, but due to the current messup with redhat/pc/unknown, not even rpm causes that name to be searched for. Look, I'm asking here because I don't know how this stuff is supposed to be set up, my "looks obviously wrong" is just layman observation of a mismatch of "stuff".

Hmm, so gcc gets the name for passing %{_target_platform} as --target to configure. Which in turn is something else than %{_target} (which is something rpm uses this for it's internal purposes), which is still different from %{_build}, nice little mess...

[pmatilai localhost ~]$ rpm --eval "%{_target}"
[pmatilai localhost ~]$ rpm --eval "%{_build}"
[pmatilai localhost ~]$ rpm --eval "%{_target_platform}"

I'm getting somewhat mixed signals in this thread as to what %configure should do. Is it
a) set *none* of --build, --target and --host (how do you set up a
   cross-build environment if that's the case?)
b) set only --build and add some conditional extra macros for passing in
   cross-build options
c) something else, what exactly?

And then related to above the manufacturer string, which is currently a complete mixup between rpm's notion of "vendor" and config.guess notion of "manufacturer", largely due to this:

%_target_platform       %{_target_cpu}-%{_vendor}-%{_target_os}%{?_gnu}

[pmatilai localhost ~]$ rpm --eval "%{_target_vendor}"
[pmatilai localhost ~]$ rpm --eval "%{_vendor}"

If the answer to the above %configure question is a), this doesn't make much of a difference I guess, except perhaps to gcc which is passing explicit --target %{_target_platform} (whether that can be dropped then or not I dunno). In case it's b) this is much more visible: do we want the "redhat" there or not?

	- Panu -

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]