aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLenny Komow <lenny@lunarg.com>2017-06-29 15:40:12 -0600
committerLenny Komow <lenny@lunarg.com>2017-06-30 16:26:51 -0600
commitb279fcce9ff2b71193702dae66d464d8068d96ab (patch)
tree000a1135b4b2aaed2e91dc0738a3901a62b60496
parent12e59077d55930f6af0a2e41c64578755d94f203 (diff)
downloadusermoji-b279fcce9ff2b71193702dae66d464d8068d96ab.tar.xz
build: Fix build on non-x86 Linux systems
Change-Id: I5a35e1bb5f1f9bf9b773588e1a20c24da78ddc35
-rw-r--r--loader/CMakeLists.txt13
1 files changed, 8 insertions, 5 deletions
diff --git a/loader/CMakeLists.txt b/loader/CMakeLists.txt
index e5a3c802..0e87e217 100644
--- a/loader/CMakeLists.txt
+++ b/loader/CMakeLists.txt
@@ -106,17 +106,20 @@ if (WIN32)
endif()
else()
enable_language(ASM-ATT)
- if (CMAKE_ASM-ATT_COMPILER_WORKS)
- set(OPT_LOADER_SRCS ${OPT_LOADER_SRCS} phys_dev_chain_gas.asm)
+ set(CMAKE_ASM-ATT_FLAGS "${CMAKE_ASM-ATT_FLAGS} $ENV{ASFLAGS}")
+ set(CMAKE_ASM-ATT_FLAGS "${CMAKE_ASM-ATT_FLAGS} -I\"${CMAKE_CURRENT_BINARY_DIR}\"")
- set(CMAKE_ASM-ATT_FLAGS "${CMAKE_ASM-ATT_FLAGS} $ENV{ASFLAGS}")
- set(CMAKE_ASM-ATT_FLAGS "${CMAKE_ASM-ATT_FLAGS} -I\"${CMAKE_CURRENT_BINARY_DIR}\"")
+ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/asm_test.asm ".intel_syntax noprefix\n.text\n.global sample\nsample:\nmov ecx, [eax + 16]\n")
+ try_compile(ASSEMBLER_WORKS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/asm_test.asm)
+ file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/asm_test.asm)
+ if (ASSEMBLER_WORKS)
+ set(OPT_LOADER_SRCS ${OPT_LOADER_SRCS} phys_dev_chain_gas.asm)
add_executable(asm_offset asm_offset.c)
add_dependencies(asm_offset generate_helper_files loader_gen_files)
add_custom_command(OUTPUT gen_defines.asm DEPENDS asm_offset COMMAND asm_offset GAS)
add_custom_target(loader_asm_gen_files DEPENDS gen_defines.asm)
else()
- message(WARNING "Could not find working GAS assembler\n${ASM_FAILURE_MSG}")
+ message(WARNING "Could not find working x86 GAS assembler\n${ASM_FAILURE_MSG}")
set(OPT_LOADER_SRCS ${OPT_LOADER_SRCS} phys_dev_chain.c)
add_custom_target(loader_asm_gen_files)
endif()