Merge topic 'nasm'

7cf45c9e6a ASM_NASM: Improve support for standalone usage
47bc42b5ac ci: Add nasm assembler to Debian and Fedora base images

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9306
This commit is contained in:
Brad King
2024-03-05 13:21:11 +00:00
committed by Kitware Robot
10 changed files with 58 additions and 2 deletions
@@ -1,2 +1,4 @@
set(CMake_TEST_ASM_NASM "ON" CACHE BOOL "")
include("${CMAKE_CURRENT_LIST_DIR}/configure_debian12_ninja_common.cmake")
set(CMake_TEST_UseSWIG "ON" CACHE BOOL "")
@@ -6,6 +6,7 @@ if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "")
set(CMake_TEST_CTestUpdate_P4 "ON" CACHE BOOL "")
endif()
set(CMake_TEST_ASM_NASM "ON" CACHE BOOL "")
set(CMake_TEST_FindALSA "ON" CACHE BOOL "")
set(CMake_TEST_FindBLAS "All;static=1;Generic" CACHE STRING "")
set(CMake_TEST_FindBoost "ON" CACHE BOOL "")
@@ -32,6 +32,9 @@ cvs
subversion
mercurial
# Install ASM_NASM language toolchain.
nasm
# Install HIP language toolchain.
hipcc
@@ -46,6 +46,9 @@ file
jq
which
# Install ASM_NASM language toolchain.
nasm
# Install HIP language toolchain.
hsakmt-devel
lld
+2 -2
View File
@@ -45,7 +45,7 @@
### Debian
.debian12:
image: "kitware/cmake:ci-debian12-x86_64-2023-07-27"
image: "kitware/cmake:ci-debian12-x86_64-2024-03-04"
variables:
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
@@ -69,7 +69,7 @@
### Fedora
.fedora39:
image: "kitware/cmake:ci-fedora39-x86_64-2023-11-16"
image: "kitware/cmake:ci-fedora39-x86_64-2024-03-04"
variables:
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci/long file name for testing purposes"
+11
View File
@@ -12,6 +12,8 @@ if(NOT CMAKE_ASM_NASM_OBJECT_FORMAT)
set(CMAKE_ASM_NASM_OBJECT_FORMAT win64)
elseif(DEFINED CMAKE_CXX_SIZEOF_DATA_PTR AND CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8)
set(CMAKE_ASM_NASM_OBJECT_FORMAT win64)
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
set(CMAKE_ASM_NASM_OBJECT_FORMAT win64)
else()
set(CMAKE_ASM_NASM_OBJECT_FORMAT win32)
endif()
@@ -20,6 +22,8 @@ if(NOT CMAKE_ASM_NASM_OBJECT_FORMAT)
set(CMAKE_ASM_NASM_OBJECT_FORMAT macho64)
elseif(DEFINED CMAKE_CXX_SIZEOF_DATA_PTR AND CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8)
set(CMAKE_ASM_NASM_OBJECT_FORMAT macho64)
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
set(CMAKE_ASM_NASM_OBJECT_FORMAT macho64)
else()
set(CMAKE_ASM_NASM_OBJECT_FORMAT macho)
endif()
@@ -28,6 +32,8 @@ if(NOT CMAKE_ASM_NASM_OBJECT_FORMAT)
set(CMAKE_ASM_NASM_OBJECT_FORMAT elf64)
elseif(DEFINED CMAKE_CXX_SIZEOF_DATA_PTR AND CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8)
set(CMAKE_ASM_NASM_OBJECT_FORMAT elf64)
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
set(CMAKE_ASM_NASM_OBJECT_FORMAT elf64)
else()
set(CMAKE_ASM_NASM_OBJECT_FORMAT elf)
endif()
@@ -38,6 +44,11 @@ if(NOT CMAKE_ASM_NASM_COMPILE_OBJECT)
set(CMAKE_ASM_NASM_COMPILE_OBJECT "<CMAKE_ASM_NASM_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -f ${CMAKE_ASM_NASM_OBJECT_FORMAT} -o <OBJECT> <SOURCE>")
endif()
if(NOT CMAKE_ASM_NASM_LINK_EXECUTABLE)
set(CMAKE_ASM_NASM_LINK_EXECUTABLE
"<CMAKE_LINKER> <CMAKE_ASM_NASM_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
endif()
if(CMAKE_ASM_NASM_COMPILER_ID STREQUAL "NASM")
set(CMAKE_DEPFILE_FLAGS_ASM_NASM "-MD <DEP_FILE> -MT <DEP_TARGET>")
+4
View File
@@ -498,6 +498,10 @@ if(BUILD_TESTING)
ADD_TEST_MACRO(ReturnTest ReturnTest)
ADD_TEST_MACRO(Properties Properties)
ADD_TEST_MACRO(Assembler HelloAsm)
# relies on Linux syscall interface
if(CMake_TEST_ASM_NASM AND CMAKE_SYSTEM_NAME MATCHES "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
ADD_TEST_MACRO(NasmOnly NasmOnly)
endif()
ADD_TEST_MACRO(SourceGroups SourceGroups)
ADD_TEST_MACRO(Preprocess Preprocess)
set(ExportImport_BUILD_OPTIONS -DCMake_TEST_NESTED_MAKE_PROGRAM:FILEPATH=${CMake_TEST_EXPLICIT_MAKE_PROGRAM}
+7
View File
@@ -0,0 +1,7 @@
cmake_minimum_required(VERSION 3.28)
project(NasmOnly LANGUAGES ASM_NASM)
add_library(testnasm1 STATIC libnasm1.nasm)
add_executable(NasmOnly nasmonly.nasm)
target_link_libraries(NasmOnly testnasm1)
+6
View File
@@ -0,0 +1,6 @@
global LibNasm1Func
section .text
LibNasm1Func:
mov rax, 1
ret
+19
View File
@@ -0,0 +1,19 @@
global _start
extern LibNasm1Func
section .text
_start:
xor rax, rax
call LibNasm1Func
cmp rax, 1
jne err
mov rax, 60
xor rdi, rdi
syscall
err:
mov rax, 60
mov rdi, 1
syscall