mirror of https://gitlab.freedesktop.org/mesa/mesa
mesa: Enable asm unconditionally, now that gen_matypes is gone.
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
52a39a332f
commit
20294dceeb
|
@ -103,12 +103,9 @@ ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo true),true)
|
|||
LOCAL_CFLAGS += -DHAVE_SYS_SHM_H
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(MESA_ENABLE_ASM)),true)
|
||||
ifeq ($(TARGET_ARCH),x86)
|
||||
LOCAL_CFLAGS += \
|
||||
-DUSE_X86_ASM
|
||||
|
||||
endif
|
||||
endif
|
||||
ifeq ($(ARCH_ARM_HAVE_NEON),true)
|
||||
LOCAL_CFLAGS_arm += -DUSE_ARM_ASM
|
||||
|
|
|
@ -83,13 +83,6 @@ endif
|
|||
|
||||
$(foreach d, $(MESA_BUILD_CLASSIC) $(MESA_BUILD_GALLIUM), $(eval $(d) := true))
|
||||
|
||||
# host and target must be the same arch to generate matypes.h
|
||||
ifeq ($(TARGET_ARCH),$(HOST_ARCH))
|
||||
MESA_ENABLE_ASM := true
|
||||
else
|
||||
MESA_ENABLE_ASM := false
|
||||
endif
|
||||
|
||||
ifneq ($(filter true, $(HAVE_GALLIUM_RADEONSI)),)
|
||||
MESA_ENABLE_LLVM := true
|
||||
endif
|
||||
|
|
92
meson.build
92
meson.build
|
@ -49,7 +49,6 @@ with_vulkan_icd_dir = get_option('vulkan-icd-dir')
|
|||
with_tests = get_option('build-tests')
|
||||
with_valgrind = get_option('valgrind')
|
||||
with_libunwind = get_option('libunwind')
|
||||
with_asm = get_option('asm')
|
||||
with_glx_read_only_text = get_option('glx-read-only-text')
|
||||
with_glx_direct = get_option('glx-direct')
|
||||
with_osmesa = get_option('osmesa')
|
||||
|
@ -972,69 +971,42 @@ endif
|
|||
|
||||
# TODO: shared/static? Is this even worth doing?
|
||||
|
||||
# When cross compiling we generally need to turn off the use of assembly,
|
||||
# because mesa's assembly relies on building an executable for the host system,
|
||||
# and running it to get information about struct sizes. There is at least one
|
||||
# case of cross compiling where we can use asm, and that's x86_64 -> x86 when
|
||||
# host OS == build OS, since in that case the build machine can run the host's
|
||||
# binaries.
|
||||
if with_asm and meson.is_cross_build()
|
||||
if build_machine.system() != host_machine.system()
|
||||
# TODO: It may be possible to do this with an exe_wrapper (like wine).
|
||||
message('Cross compiling from one OS to another, disabling assembly.')
|
||||
with_asm = false
|
||||
elif not (build_machine.cpu_family().startswith('x86') and host_machine.cpu_family() == 'x86')
|
||||
# FIXME: Gentoo always sets -m32 for x86_64 -> x86 builds, resulting in an
|
||||
# x86 -> x86 cross compile. We use startswith rather than == to handle this
|
||||
# case.
|
||||
# TODO: There may be other cases where the 64 bit version of the
|
||||
# architecture can run 32 bit binaries (aarch64 and armv7 for example)
|
||||
message('''
|
||||
Cross compiling to different architectures, and the host cannot run
|
||||
the build machine's binaries. Disabling assembly.
|
||||
''')
|
||||
with_asm = false
|
||||
endif
|
||||
endif
|
||||
|
||||
with_asm_arch = ''
|
||||
if with_asm
|
||||
if host_machine.cpu_family() == 'x86'
|
||||
if system_has_kms_drm or host_machine.system() == 'gnu'
|
||||
with_asm_arch = 'x86'
|
||||
pre_args += ['-DUSE_X86_ASM', '-DUSE_MMX_ASM', '-DUSE_3DNOW_ASM',
|
||||
'-DUSE_SSE_ASM']
|
||||
if host_machine.cpu_family() == 'x86'
|
||||
if system_has_kms_drm or host_machine.system() == 'gnu'
|
||||
with_asm_arch = 'x86'
|
||||
pre_args += ['-DUSE_X86_ASM', '-DUSE_MMX_ASM', '-DUSE_3DNOW_ASM',
|
||||
'-DUSE_SSE_ASM']
|
||||
|
||||
if with_glx_read_only_text
|
||||
pre_args += ['-DGLX_X86_READONLY_TEXT']
|
||||
endif
|
||||
endif
|
||||
elif host_machine.cpu_family() == 'x86_64'
|
||||
if system_has_kms_drm
|
||||
with_asm_arch = 'x86_64'
|
||||
pre_args += ['-DUSE_X86_64_ASM']
|
||||
endif
|
||||
elif host_machine.cpu_family() == 'arm'
|
||||
if system_has_kms_drm
|
||||
with_asm_arch = 'arm'
|
||||
pre_args += ['-DUSE_ARM_ASM']
|
||||
endif
|
||||
elif host_machine.cpu_family() == 'aarch64'
|
||||
if system_has_kms_drm
|
||||
with_asm_arch = 'aarch64'
|
||||
pre_args += ['-DUSE_AARCH64_ASM']
|
||||
endif
|
||||
elif host_machine.cpu_family() == 'sparc64'
|
||||
if system_has_kms_drm
|
||||
with_asm_arch = 'sparc'
|
||||
pre_args += ['-DUSE_SPARC_ASM']
|
||||
endif
|
||||
elif host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little'
|
||||
if system_has_kms_drm
|
||||
with_asm_arch = 'ppc64le'
|
||||
pre_args += ['-DUSE_PPC64LE_ASM']
|
||||
if with_glx_read_only_text
|
||||
pre_args += ['-DGLX_X86_READONLY_TEXT']
|
||||
endif
|
||||
endif
|
||||
elif host_machine.cpu_family() == 'x86_64'
|
||||
if system_has_kms_drm
|
||||
with_asm_arch = 'x86_64'
|
||||
pre_args += ['-DUSE_X86_64_ASM']
|
||||
endif
|
||||
elif host_machine.cpu_family() == 'arm'
|
||||
if system_has_kms_drm
|
||||
with_asm_arch = 'arm'
|
||||
pre_args += ['-DUSE_ARM_ASM']
|
||||
endif
|
||||
elif host_machine.cpu_family() == 'aarch64'
|
||||
if system_has_kms_drm
|
||||
with_asm_arch = 'aarch64'
|
||||
pre_args += ['-DUSE_AARCH64_ASM']
|
||||
endif
|
||||
elif host_machine.cpu_family() == 'sparc64'
|
||||
if system_has_kms_drm
|
||||
with_asm_arch = 'sparc'
|
||||
pre_args += ['-DUSE_SPARC_ASM']
|
||||
endif
|
||||
elif host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little'
|
||||
if system_has_kms_drm
|
||||
with_asm_arch = 'ppc64le'
|
||||
pre_args += ['-DUSE_PPC64LE_ASM']
|
||||
endif
|
||||
endif
|
||||
|
||||
# Check for standard headers and functions
|
||||
|
|
|
@ -227,12 +227,6 @@ option(
|
|||
value : false,
|
||||
description : 'Enable GLVND support.'
|
||||
)
|
||||
option(
|
||||
'asm',
|
||||
type : 'boolean',
|
||||
value : true,
|
||||
description : 'Build assembly code if possible'
|
||||
)
|
||||
option(
|
||||
'glx-read-only-text',
|
||||
type : 'boolean',
|
||||
|
|
|
@ -39,11 +39,9 @@ LOCAL_MODULE_CLASS := STATIC_LIBRARIES
|
|||
LOCAL_SRC_FILES := \
|
||||
$(MESA_FILES)
|
||||
|
||||
ifeq ($(strip $(MESA_ENABLE_ASM)),true)
|
||||
ifeq ($(TARGET_ARCH),x86)
|
||||
LOCAL_SRC_FILES += $(X86_FILES)
|
||||
endif # x86
|
||||
endif # MESA_ENABLE_ASM
|
||||
|
||||
ifeq ($(ARCH_X86_HAVE_SSE4_1),true)
|
||||
LOCAL_WHOLE_STATIC_LIBRARIES := \
|
||||
|
|
|
@ -42,11 +42,9 @@ LOCAL_GENERATED_SOURCES := \
|
|||
$(MESA_GEN_GLSL_H) \
|
||||
$(MESA_GEN_NIR_H)
|
||||
|
||||
ifeq ($(strip $(MESA_ENABLE_ASM)),true)
|
||||
ifeq ($(TARGET_ARCH),x86)
|
||||
LOCAL_SRC_FILES += $(X86_FILES)
|
||||
endif # x86
|
||||
endif # MESA_ENABLE_ASM
|
||||
|
||||
ifeq ($(ARCH_X86_HAVE_SSE4_1),true)
|
||||
LOCAL_WHOLE_STATIC_LIBRARIES := \
|
||||
|
|
Loading…
Reference in New Issue