On Wed, Aug 13, 2014 at 6:15 PM, Emil Velikov <emil.l.veli...@gmail.com> wrote: > On 13/08/14 23:01, Ilia Mirkin wrote: >> On Wed, Aug 13, 2014 at 5:56 PM, Emil Velikov <emil.l.veli...@gmail.com> >> wrote: >>> On 13/08/14 22:22, Ilia Mirkin wrote: >>>> On Wed, Aug 13, 2014 at 5:16 PM, Emil Velikov <emil.l.veli...@gmail.com> >>>> wrote: >>>>> Signed-off-by: Emil Velikov <emil.l.veli...@gmail.com> >>>>> --- >>>>> >>>>> Unless someone object I would like to squash this patch with the >>>>> previous one. >>>>> >>>>> -Emil >>>>> >>>>> docs/autoconf.html | 16 ++++++++++++++-- >>>>> 1 file changed, 14 insertions(+), 2 deletions(-) >>>>> >>>>> diff --git a/docs/autoconf.html b/docs/autoconf.html >>>>> index f27838f..c225659 100644 >>>>> --- a/docs/autoconf.html >>>>> +++ b/docs/autoconf.html >>>>> @@ -141,14 +141,26 @@ assembly will not be used.</p> >>>>> <dt><code>--host=</code></dt> >>>>> <dd><p>By default, the build will compile code for the architecture that >>>>> it's running on. In order to build Mesa on a x64-86 machine that is to >>>>> run >>>> >>>> While you're fixing stuff, x86-64 >>>> >>> Ack, will do. >>> >>>>> -on a i686, one would need to set the options to: >>>>> +on a i686, one would need to set the options to:</p> >>>>> >>>>> <p><code>--build=i686-pc-linux-gnu --host=i686-pc-linux-gnu</code></p> >>>>> >>>>> Note that these can vary from distribution to distribution. For more >>>>> information check with the >>>>> <a >>>>> href="https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Specifying-Target-Triplets.html"> >>>>> -autoconf manual</a>.</p> >>>>> +autoconf manual</a>. >>>>> + >>>>> + >>>>> +<p>In some cases a single compiler is capable of handling both >>>>> architectures >>>>> +in that case one would need to set the <code>CC,CXX</code> variables >>>>> +appending the correct machine options. Seek your compiler documentation >>>>> for >>>>> +further information - >>>>> +<a href="https://gcc.gnu.org/onlinedocs/gcc/Submodel-Options.html"> gcc >>>>> +machine dependent options</a></p> >>>>> + >>>>> +<p>The following is the complete setup needed to compile on my Archlinux >>>>> setup</p> >>>> >>>> There's nothing about the below that's specific to Arch, or any >>>> distro, really -- I'd avoid the explicit distro reference. >>> Haven't touched any other distro but Arch in years. Yet it makes sense to >>> drop >>> the distro reference but keep the example. >> >> Right, I was suggesting s/Archlinux// :) >> >>> >>>> Do you >>>> actually need the --build and --host things? I thought that was if you >>>> were going to use a cross-compiler. I only have >>>> x86_64-pc-linux-gnu-gcc, no i686-...-gnu-gcc. >>>> >>> --build/host (at lest) used to be required by mesa, as some bits were built >>> differently when doing cross-compilation. Not sure what the case is now - I >>> care not look in src/{glsl,mesa} which is where all of that chaos was. >> >> But that's my point -- it's not a cross-compilation. It's using the >> same system compiler. The way cross-compilation works (afaik) is that >> you just look for $host-gcc, $host-ld, $host-as etc (and use >> $build-gcc, etc for the binaries that need to be run as part of the >> build). But i686-...-gcc is not a binary available on my system. So >> the cross-compilation will fail... >> > IIRC the --build/host flags were required to get mesa past the "make" into the > "make check" stage when doing "multilib" builds. Things may have changed, yet > there should be no side-effects (unless we have a bug somewhere). Will give it > a try shortly, perhaps you can give it a bash on your Gentoo system as well ? > > Afaik if $arch-$plat-gcc is missing, then we fall back to $arch-gcc and > finally to gcc, and similarly for every other tool used.
Ah I see. I was not aware of that. Sneaky. I'll check it out tonight, although I doubt that I'll have different results from you. These things tend to vary from compiler to compiler, but not if we're using the same-ish environment (which we are). > >> Perhaps I'm just misunderstanding how things work though. > I don't claim to be an expert on the topic so it may be that I'm missing > something :) > > -Emil >> >>> >>> >>>> In the past I've just done CFLAGS=-m32 CXXFLAGS=-m32 and it has worked >>>> like a charm. But perhaps there's a downside to doing that... >>>> >>> I cannot think of any side effects to be honest (barring any bugs in mesa). >>> Yet I would love if people avoid touching any *FLAGS :) >>> >>> Thanks >>> -Emil >>> >>>>> + >>>>> +<code>./configure CC="gcc -m32" CXX="g++ -m32" >>>>> --build=i686-unknown-linux-gnu --host=i686-unknown-linux-gnu ...</code> >>>>> </dd> >>>>> </dl> >>>>> >>>>> -- >>>>> 2.0.2 >>>>> >>>>> _______________________________________________ >>>>> mesa-dev mailing list >>>>> mesa-dev@lists.freedesktop.org >>>>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev >>> > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev