[Mesa-dev] [PATCH] docs/autoconf: mention CC/CXX when doing multilib builds

Ilia Mirkin imirkin at alum.mit.edu
Wed Aug 13 15:23:44 PDT 2014


On Wed, Aug 13, 2014 at 6:15 PM, Emil Velikov <emil.l.velikov at 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.velikov at 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.velikov at gmail.com> wrote:
>>>>> Signed-off-by: Emil Velikov <emil.l.velikov at 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 at lists.freedesktop.org
>>>>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>>
>


More information about the mesa-dev mailing list