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

Re: config.guess manufacturer string?



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

So it is possible that you would be satisfied if the %configure macro
used
 ./configure  --build=i686-redhat-linux-gnu --host=i686-redhat-linux-gnu

To achive that, it is sufficient to modify the macro %{_host}.
(Macro %{_host_vendor} should probably be modified as well.)

No, I do not see the reason for doing this.  Should all Linux
distributions do the same?

I think most distributions do set the --build correctly for how
they've configured their systems. Regardless of whether the redhat is
there or not, %configure should be setting --build and --host at least
the same as --target. Instead, rpm passes the values that _it_ was
built with as --build and --host.

Indeed, which pretty much comes to the bottom of why I'm asking.
Older rpm tarballs were generated on a system where config.guess was patched to give "redhat" as the manufacturer. And from that, through several twists and turns it ended up in %configure --target and the like, until recently.

That's by no means the only thing that rpm "leaks" to the overall configuration either, but that's another story...

$ rpm -E%configure | grep -e --build -e --host -e --target
 ./configure --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu \
       --target=x86_64-redhat-linux-gnu \

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

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. But where does the redhat in the gcc name come from? If it's an rpm macro like %{_vendor} it pretty much comes back a full circle to some extra heuristics in rpm configure.ac which triggers on certain results of config.guess... :)

	- Panu -


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