--host=i386-redhat-linux-gnu --target=i686-redhat-linux-gnu ???

Ralf Corsepius rc040203 at freenet.de
Wed Feb 3 14:01:30 UTC 2010


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



More information about the devel mailing list