From b279fcce9ff2b71193702dae66d464d8068d96ab Mon Sep 17 00:00:00 2001 From: Lenny Komow Date: Thu, 29 Jun 2017 15:40:12 -0600 Subject: build: Fix build on non-x86 Linux systems Change-Id: I5a35e1bb5f1f9bf9b773588e1a20c24da78ddc35 --- loader/CMakeLists.txt | 13 ++++++++----- 1 file 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() -- cgit v1.2.3