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

2010-02-03 Thread Ralf Corsepius
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 (pmati...@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

-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


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

2010-02-02 Thread Jussi Lehtola
On Mon, 2010-02-01 at 18:24 -0500, Owen Taylor wrote:
 we seem to have things set up to run configure as:
 
  --build=i386-redhat-linux-gnu
  --host=i386-redhat-linux-gnu
  --target=i686-redhat-linux-gnu
 
 Which, according to my reading of the autoconf manual means:
 
  * Build on a i386-redhat-linux-gnu
  * Create code that runs on i386-redhat-linux-gnu
  * Build a cross tool chain that targets i686-redhat-linux-gnu
 
 and really doesn't make sense. I'm pretty sure we want to pass
 i686-redhat-linux-gnu for --host, and we don't need to specify --target.

(clip)

 Am I missing something here? This is causing GLib to build using slow
 fallbacks for atomic operations, and likely causes other problems as
 well.

I've had some problems as well with pcc where using %configure makes the
build process think a cross compilation should be done.
-- 
Jussi Lehtola
Fedora Project Contributor
jussileht...@fedoraproject.org

-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


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

2010-02-02 Thread Panu Matilainen
On Mon, 1 Feb 2010, Bill Nottingham wrote:

 Owen Taylor (otay...@redhat.com) said:
 Looking at the build logs for F-12, e.g.:

 http://kojipkgs.fedoraproject.org/packages/glib2/2.22.4/1.fc12/data/logs/i686/build.log

 we seem to have things set up to run configure as:

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

 This comes from the rpm %configure macro, which hasn't changed:

  ./configure --build=%{_build} --host=%{_host} \\\
--target=%{_target_platform} \\\

More precisely it comes from redhat-rpm-config which overrides rpm's own 
%configure macro.


 %{_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.

- Panu -


-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


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

2010-02-02 Thread Bill Nottingham
Panu Matilainen (pmati...@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?

Bill
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel


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

2010-02-01 Thread Owen Taylor
Looking at the build logs for F-12, e.g.:

http://kojipkgs.fedoraproject.org/packages/glib2/2.22.4/1.fc12/data/logs/i686/build.log

we seem to have things set up to run configure as:

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

Which, according to my reading of the autoconf manual means:

 * Build on a i386-redhat-linux-gnu
 * Create code that runs on i386-redhat-linux-gnu
 * Build a cross tool chain that targets i686-redhat-linux-gnu

and really doesn't make sense. I'm pretty sure we want to pass
i686-redhat-linux-gnu for --host, and we don't need to specify --target.

See
http://www.gnu.org/software/autoconf/manual/autoconf.html#System-Type,
or the info pages which have different text and are a bit clearer.

In fact, we really could just specify --build, I think and have
that go for all three.

Am I missing something here? This is causing GLib to build using slow
fallbacks for atomic operations, and likely causes other problems as
well.

- Owen


-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel