On Wednesday, 2017-11-15 17:11:00 -0800, Dylan Baker wrote: > This patch allows building asm for x86 on x86_64 platforms, when the > operating system is the same. Previously cross compile always turned off > assembly. This allows using a cross file to cross compile x86 binaries > on x86_64 with asm. > > This could probably be relaxed further thanks to meson's "exe_wrapper", > which is way to specify an emulator or compatibility layer (wine) that > can run the foreign binaries on the build system. Since the meson build > at this point only supports building on Linux I can't test this and I > don't want to write/enable code that cannot even be build tested. > > Signed-off-by: Dylan Baker <dylanx.c.ba...@intel.com> > --- > meson.build | 17 ++++++++++------- > 1 file changed, 10 insertions(+), 7 deletions(-) > > diff --git a/meson.build b/meson.build > index 0d201c711a0..261c4753427 100644 > --- a/meson.build > +++ b/meson.build > @@ -554,13 +554,16 @@ endif > > # TODO: texture-float (gallium/mesa only) > > -# TODO: cross-compiling. I don't think this is relavent to meson > - > -# FIXME: enable asm when cross compiler > -# This is doable (autotools does it), but it's not of immediate concern > -if meson.is_cross_build() and host_machine.cpu_family().startswith('x86') > - message('Cross compiling, disabling x86/x86_64 asm') > - with_asm = false > +# Building x86 assembly code requires running x86 binaries. It is possible > for > +# x86_64 OSes to run x86 binaries, so don't disable asm in those cases > +# TODO: it should be possible to use an exe_wrapper to run the binary durring
"during" > +# the build. > +if meson.is_cross_build() > + if (not (build_machine.cpu_family() == 'x86_64' and > host_machine.cpu_family() == 'x86') > + and build_machine.system() == host_machine.system()) > + message('Cross compiling to x86 from non-x86, disabling asm') > + with_asm = false > + endif This looks off to me. Shouldn't the `and build_os==host_os` be `or not build_os==host_os`? In other words, if cross-building on the same os from 64bit to 32bit, allow asm, and otherwise disable it? If so, you could factor the `not` out, and it would be: if not (build_os==host_os and build==64bit and host==32bit) with_asm = false > endif > > with_asm_arch = '' > -- > 2.15.0 > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev