File tree Expand file tree Collapse file tree 5 files changed +118
-3
lines changed Expand file tree Collapse file tree 5 files changed +118
-3
lines changed Original file line number Diff line number Diff line change
1
+ name : Ubuntu LoongArch64 (GCC 14)
2
+
3
+ on :
4
+ pull_request :
5
+ types : [opened, synchronize, reopened, ready_for_review]
6
+ paths-ignore :
7
+ - ' **.md'
8
+ - ' docs/**'
9
+ push :
10
+ branches :
11
+ - main
12
+ paths-ignore :
13
+ - ' **.md'
14
+ - ' docs/**'
15
+
16
+ permissions :
17
+ contents : read
18
+
19
+ concurrency :
20
+ group : ${{ github.workflow }}-${{ github.ref }}
21
+ cancel-in-progress : true
22
+ jobs :
23
+ ubuntu-build :
24
+ strategy :
25
+ fail-fast : false
26
+ runs-on : ubuntu-24.04
27
+ steps :
28
+ - uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
29
+ - name : Setup ENV
30
+ run : |
31
+ sudo apt-get update -y
32
+ sudo apt-get install -y cmake curl ninja-build \
33
+ g++-14-loongarch64-linux-gnu \
34
+ gcc-14-loongarch64-linux-gnu-base \
35
+ gcc-14-loongarch64-linux-gnu
36
+ sudo curl -L https://github.com/loongson/build-tools/releases/download/2025.06.06/qemu-loongarch64 --output /usr/local/bin/qemu-loongarch64
37
+ sudo chmod +x /usr/local/bin/qemu-loongarch64
38
+ - name : Build
39
+ run : |
40
+ export QEMU_LD_PREFIX="/usr/loongarch64-linux-gnu"
41
+ export QEMU_CPU="la464"
42
+ cmake -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains-dev/loongarch64.cmake \
43
+ -DADA_TESTING=ON \
44
+ -DADA_USE_SIMDUTF=ON \
45
+ -DCMAKE_BUILD_TYPE=Release \
46
+ -G Ninja -B build
47
+ cmake --build build -j=4
48
+ - name : Test
49
+ run : |
50
+ export QEMU_LD_PREFIX="/usr/loongarch64-linux-gnu"
51
+ export QEMU_CPU="la464"
52
+ ctest --output-on-failure --test-dir build
Original file line number Diff line number Diff line change @@ -41,7 +41,11 @@ function(add_cpp_test TEST_NAME)
41
41
)
42
42
set_target_properties (${TEST_NAME} PROPERTIES EXCLUDE_FROM_ALL TRUE EXCLUDE_FROM_DEFAULT_BUILD TRUE )
43
43
else ()
44
- add_test (${TEST_NAME} ${TEST_NAME} )
44
+ if (CMAKE_CROSSCOMPILING_EMULATOR )
45
+ add_test (${TEST_NAME} ${CMAKE_CROSSCOMPILING_EMULATOR} ${TEST_NAME} )
46
+ else ()
47
+ add_test (${TEST_NAME} ${TEST_NAME} )
48
+ endif ()
45
49
46
50
# Add to <label>_tests make targets
47
51
foreach (label ${ARGS_LABELS} )
Original file line number Diff line number Diff line change
1
+ # LoongArch64
2
+ You can now build and run the LoongArch64 code as needed:
3
+ GCC >= 14.1
4
+ Binutils >= 2.41
5
+ QEMU >= 9.2
6
+
7
+ Note that the compiler may be named ` loongarch64-linux-gnu-g++ ` , without the ` unknown ` part.
8
+ Please adjust to your system.
9
+
10
+ ```
11
+ $ sudo curl -L https://github.com/loongson/build-tools/releases/download/2025.06.06/qemu-loongarch64 --output /opt/qemu-loongarch64
12
+ $ sudo chmod +x /opt/qemu-loongarch64
13
+ $ export PATH=/opt:$PATH
14
+
15
+ $ export QEMU_LD_PREFIX="/usr/loongarch64-linux-gnu" # ubuntu 24.04
16
+ $ export QEMU_CPU="la464"
17
+ $ mkdir build && cd build
18
+ $ cmake -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains-dev/loongarch64.cmake -DADA_TESTING=ON ../
19
+ $ make
20
+ ```
21
+
22
+ Running tests with qemu
23
+ ```
24
+ $ make test
25
+ or
26
+ $ ctest --output-on-failure --test-dir build
27
+ or
28
+ $ qemu-loongarch64 build/singleheader/cdemo
29
+ ```
Original file line number Diff line number Diff line change
1
+ # Usage:
2
+ # $ cmake -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains-dev/loongarch64.cmake
3
+ set (CMAKE_SYSTEM_NAME Generic )
4
+
5
+ #set(target loongarch64-unknown-linux-gnu)
6
+ set (target loongarch64-linux-gnu )
7
+ set (version 14 )
8
+ set (c_compiler gcc )
9
+ set (cxx_compiler g++ )
10
+
11
+ set (CMAKE_C_COMPILER "${target} -${c_compiler} -${version} " )
12
+ set (CMAKE_CXX_COMPILER "${target} -${cxx_compiler} -${version} " )
13
+
14
+ set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER )
15
+
16
+ set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )
17
+ set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )
18
+
19
+ set (LOONGARCH64_ISA "loongarch64" )
20
+ set (CMAKE_CROSSCOMPILING_EMULATOR "qemu-${LOONGARCH64_ISA} " )
21
+
22
+ set (CMAKE_CXX_FLAGS "-mlsx" )
Original file line number Diff line number Diff line change @@ -78,11 +78,19 @@ if (Python3_Interpreter_FOUND)
78
78
endif ()
79
79
target_compile_definitions (demo_no_url_pattern PRIVATE ADA_INCLUDE_URL_PATTERN=0 )
80
80
81
- add_test (demo_no_url_pattern demo_no_url_pattern )
81
+ if (CMAKE_CROSSCOMPILING_EMULATOR )
82
+ add_test (demo_no_url_pattern ${CMAKE_CROSSCOMPILING_EMULATOR} demo_no_url_pattern )
83
+ else ()
84
+ add_test (demo_no_url_pattern demo_no_url_pattern )
85
+ endif ()
82
86
83
87
add_executable (cdemo $< BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} /demo.c> )
84
88
target_link_libraries (cdemo ada-singleheader-lib )
85
- add_test (cdemo cdemo )
89
+ if (CMAKE_CROSSCOMPILING_EMULATOR )
90
+ add_test (cdemo ${CMAKE_CROSSCOMPILING_EMULATOR} cdemo )
91
+ else ()
92
+ add_test (cdemo cdemo )
93
+ endif ()
86
94
endif ()
87
95
else ()
88
96
MESSAGE ( STATUS "Python not found, we are unable to test amalgamate.py." )
You can’t perform that action at this time.
0 commit comments