diff --git a/.github/workflows/build-gccjit-trunk.yml b/.github/workflows/build-gccjit-trunk.yml new file mode 100644 index 0000000..3953279 --- /dev/null +++ b/.github/workflows/build-gccjit-trunk.yml @@ -0,0 +1,62 @@ +name: Build (gccjit-trunk) +on: + push: + pull_request: + types: [labeled, synchronize, opened, reopened] + +jobs: + build: + runs-on: ubuntu-24.04 + if: contains(github.event.pull_request.labels.*.name, 'check-gcc-trunk') + env: + LLVM_DIR: /usr/lib/llvm-18/cmake + steps: + - uses: actions/checkout@v4 + + - name: Install build tools and libraries + run: | + sudo apt-get update + sudo apt-get install -y gcc-14 g++-14 gcc-14-multilib cmake ninja-build llvm-18-dev llvm-18-tools \ + libmlir-18-dev mlir-18-tools python3 python3-pip build-essential \ + libmpfr-dev libmpc-dev libgmp-dev flex bison libbison-dev + pip install lit + + - name: Run sccache-cache + uses: mozilla-actions/sccache-action@v0.0.6 + + - name: Build GCCJIT + run: | + git clone https://github.com/gcc-mirror/gcc --depth 1 + mkdir gcc-build + mkdir gcc-install + export PREFIX=$(pwd)/gcc-install + export SCCACHE_GHA_ENABLED=true + cd gcc-build + ../gcc/configure CC='sccache gcc-14' CXX='sccache g++-14' \ + --disable-multilib \ + --enable-host-shared \ + --enable-languages=jit,c++ \ + --disable-bootstrap \ + --enable-checking=release \ + --prefix=$PREFIX + make -j$(nproc) + make install + echo "GCCJIT_ROOT=$PREFIX" >> $GITHUB_ENV + + + - name: Build + run: | + export SCCACHE_GHA_ENABLED=true + cmake -B build -G Ninja \ + -DGCCJIT_ROOT=${GCCJIT_ROOT} \ + -DCMAKE_C_COMPILER_LAUNCHER=sccache \ + -DCMAKE_CXX_COMPILER_LAUNCHER=sccache \ + -DCMAKE_C_COMPILER=gcc-14 \ + -DCMAKE_CXX_COMPILER=g++-14 . + cmake --build build + cmake --build build --target gccjit-tools + + - name: Run tests + run: | + sudo ln -sf /usr/lib/gcc/x86_64-linux-gnu/14/* /usr/lib64 + cmake --build build --target check diff --git a/src/Translation/TranslateToGCCJIT.cpp b/src/Translation/TranslateToGCCJIT.cpp index cacd625..2a4bab0 100644 --- a/src/Translation/TranslateToGCCJIT.cpp +++ b/src/Translation/TranslateToGCCJIT.cpp @@ -991,7 +991,7 @@ gcc_jit_rvalue *RegionVisitor::visitExprWithoutCache(AlignOfOp op) { if (resTy.getKind() != GCC_JIT_TYPE_INT) align = gcc_jit_context_new_cast(getContext(), loc, align, resTyHandle); return align; -#endif +#else auto type = op.getType(); auto *typeHandle = getTranslator().convertType(type); auto *resTyHandle = getTranslator().convertType(op.getResult().getType()); @@ -1018,6 +1018,7 @@ gcc_jit_rvalue *RegionVisitor::visitExprWithoutCache(AlignOfOp op) { return gcc_jit_context_new_cast(getContext(), nullptr, fakeFieldAddrValue, resTyHandle); return fakeFieldAddrValue; +#endif } gcc_jit_rvalue *RegionVisitor::visitExprWithoutCache(AsRValueOp op) {