On 02/03/2010 02:20 PM, Panu Matilainen wrote:
On Wed, 3 Feb 2010, Ralf Corsepius wrote:
> On 02/03/2010 10:05 AM, Panu Matilainen wrote:
>> On Tue, 2 Feb 2010, Bill Nottingham wrote:
>>
>>> Panu Matilainen (pmatilai(a)laiskiainen.org) said:
>>>>> %{_host} is set by the rpm package in the macros file, %{_build}
>>>>> defaults
>>>>> to the value of %{_host}. %{_target_platform} comes from --target on
>>>>> the command line, plus the usual vendor/OS bits
>>>>>
>>>>> --target is what is set by rpm/mock. I think it defaults to %{_host}
>>>>> if it's not otherwise specified, but we specify it when building
>>>>> for i686,
>>>>> as we could theoretically still build i386 packages.
>>>>
>>>> Yup, and all wonderfully mixed up - rpm's idea of --target is
>>>> something
>>>> completely different from what auto*foo from this century thinks
>>>> of it.
>>>> Dunno if it ever was really valid but certainly not anymore.
>>>>
>>>> rpm>= 4.8.0 no longer sets the --target on %configure but that's
been
>>>> masked by the redhat-rpm-config version of %configure. That's been
>>>> fixed
>>>> too as of today.
>>>
>>> Is either %_host or %_build set based on --target?
>>
>> No... as there's no correct way to map rpm's --target to autotools
>> expectations.
>
> There is: rpm's --target is autoconf's --host
Yes, that's what would be the clean mapping. But as I said in the
latter part (which you cut out here):
I am aware about these issue. As you might
recall, I am cross-building
rpms and canadian crossbuilding rpms for many years.
The rpm-specs I am using for this are cluttered with clutches to work
around rpm's / redhat-rpm-config's brokeness wrt. rpm's --target handling ;)
much/most of the time rpm's --target is used to specify
sub-architecture optimization levels (--target i686 on i386 or
--target i686 on x86_64) which aren't cross-compiles. Just mapping
rpm's --target to autoconf --host causes autoconf to complain in these
situations.
Have a closer look: It only complains about bogus arguments being
used.
As long as you manage to derive CFLAGS/CPPFLAGS/CXXFLAGS etc. from rpm's
--target, these autoconf checks currently fall back to what you expect.
I dont feel quite confortable to changing it to something that causes
"this will not be supported in future" and other warnings.
Well, there are several work arounds:
a) Not using any of --build or --host unless --target is passed to rpm
This would be the ultimate solution .
b) Explicitly pass --build="rpm's target" == --host == "rpm's
target".
This suppresses the configure check because autoconf presumes the
invoker to "know what he does".
Ralf