From 03a4991d9ae07d5273a73ae4556b5cd1007ab6ff Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Mon, 19 Mar 2018 21:16:34 +0000 Subject: [PATCH] cmake-utils.eclass: Make the new ASM-ATT rules actually work The previous attempt actually broke ASM in media-libs/vulkan-loader entirely so that it fell back to C code. After much experimentation and combing through strace output, I found that -x assembler is needed to handle non-standard file extentions and linking is done as a separate step. CMAKE_ASM-ATT_LINK_FLAGS therefore needs to be defined with -nostdlib to avoid errors about undefined main symbols. Closes: https://bugs.gentoo.org/625844 --- eclass/cmake-utils.eclass | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eclass/cmake-utils.eclass b/eclass/cmake-utils.eclass index f8853be502a1..f6952ec09efd 100644 --- a/eclass/cmake-utils.eclass +++ b/eclass/cmake-utils.eclass @@ -520,7 +520,8 @@ cmake-utils_src_configure() { fi cat > "${build_rules}" <<- _EOF_ || die SET (CMAKE_ASM_COMPILE_OBJECT " ${includes} ${CPPFLAGS} -o -c " CACHE STRING "ASM compile command" FORCE) - SET (CMAKE_ASM-ATT_COMPILE_OBJECT " ${includes} ${CPPFLAGS} -o -c " CACHE STRING "ASM compile command" FORCE) + SET (CMAKE_ASM-ATT_COMPILE_OBJECT " ${includes} ${CPPFLAGS} -o -c -x assembler " CACHE STRING "ASM-ATT compile command" FORCE) + SET (CMAKE_ASM-ATT_LINK_FLAGS "-nostdlib" CACHE STRING "ASM-ATT link flags" FORCE) SET (CMAKE_C_COMPILE_OBJECT " ${includes} ${CPPFLAGS} -o -c " CACHE STRING "C compile command" FORCE) SET (CMAKE_CXX_COMPILE_OBJECT " ${includes} ${CPPFLAGS} -o -c " CACHE STRING "C++ compile command" FORCE) SET (CMAKE_Fortran_COMPILE_OBJECT " ${includes} ${FCFLAGS} -o -c " CACHE STRING "Fortran compile command" FORCE) -- 2.26.2