diff --git a/.github/workflows/riscv64.yml b/.github/workflows/riscv64.yml new file mode 100644 index 000000000..f37ea34d8 --- /dev/null +++ b/.github/workflows/riscv64.yml @@ -0,0 +1,29 @@ +name: Ubuntu riscv64 (GCC 11) + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: uraimo/run-on-arch-action@v2 + name: Test + id: runcmd + with: + arch: riscv64 + distro: ubuntu_latest + githubToken: ${{ github.token }} + install: | + apt-get update -q -y + apt-get install -y cmake make g++ + run: | + cmake -DCMAKE_BUILD_TYPE=Release -B build + cmake --build build -j=2 + ctest --output-on-failure --test-dir build diff --git a/include/simdjson/portability.h b/include/simdjson/portability.h index b832b99ba..4034e1565 100644 --- a/include/simdjson/portability.h +++ b/include/simdjson/portability.h @@ -36,6 +36,8 @@ #define SIMDJSON_IS_X86_64 1 #elif defined(__aarch64__) || defined(_M_ARM64) #define SIMDJSON_IS_ARM64 1 +#elif defined(__riscv) && __riscv_xlen == 64 +#define SIMDJSON_IS_RISCV64 1 #elif defined(__PPC64__) || defined(_M_PPC64) #if defined(__ALTIVEC__) #define SIMDJSON_IS_PPC64_VMX 1