diff --git a/.github/alpine_32bit_log_warnings b/.github/alpine_32bit_log_warnings new file mode 100644 index 000000000000..aa5848ac82a9 --- /dev/null +++ b/.github/alpine_32bit_log_warnings @@ -0,0 +1,91 @@ +../../../gettext/gettext-runtime/gnulib-lib/careadlinkat.c:176:5: warning: #warning "GCC might issue a bogus -Wreturn-local-addr warning here." [-Wcpp] +../../../gettext/gettext-runtime/gnulib-lib/careadlinkat.c:177:5: warning: #warning "See ." [-Wcpp] +../../../gettext/gettext-runtime/gnulib-lib/careadlinkat.c:180:10: warning: function may return address of local variable [-Wreturn-local-addr] +../../../libcpp/expr.cc:842:35: warning: format not a string literal and no format arguments [-Wformat-security] +../../../libcpp/expr.cc:845:38: warning: format not a string literal and no format arguments [-Wformat-security] +../../../libcpp/expr.cc:855:33: warning: format not a string literal and no format arguments [-Wformat-security] +../../../libcpp/expr.cc:867:42: warning: format not a string literal and no format arguments [-Wformat-security] +../../../libcpp/expr.cc:870:39: warning: format not a string literal and no format arguments [-Wformat-security] +../../../libcpp/expr.cc:877:35: warning: format not a string literal and no format arguments [-Wformat-security] +../../../libcpp/lex.cc:2120:39: warning: ‘loc’ may be used uninitialized [-Wmaybe-uninitialized] +../../../libcpp/macro.cc:185:26: warning: format not a string literal and no format arguments [-Wformat-security] +../../../libcpp/macro.cc:214:34: warning: format not a string literal and no format arguments [-Wformat-security] +../../../libcpp/macro.cc:3710:25: warning: format not a string literal and no format arguments [-Wformat-security] +../../../libcpp/macro.cc:3725:25: warning: format not a string literal and no format arguments [-Wformat-security] +../../c++tools/server.cc:490:11: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] +../../c++tools/server.cc:620:10: warning: ignoring return value of ‘int pipe(int*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] +../../gcc/../libgcc/libgcov-util.c:455:9: warning: ignoring return value of ‘int chdir(const char*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] +../../gcc/analyzer/program-state.cc:1498:15: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/analyzer/store.h:310:5: warning: ‘size_in_bytes.generic_wide_int >::.fixed_wide_int_storage<128>::val[1]’ may be used uninitialized [-Wmaybe-uninitialized] +../../gcc/c-family/c-common.cc:6763:14: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/c-family/c-common.cc:6767:16: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/c/c-convert.cc:84:13: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/c/c-typeck.cc:12453:16: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/c/c-typeck.cc:3878:17: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/c/c-typeck.cc:4648:16: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/c/c-typeck.cc:6913:23: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/collect-utils.cc:237:21: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/collect2.cc:2400:21: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/diagnostic.cc:2316:15: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/expmed.cc:1845:45: warning: ‘*(unsigned int*)((char*)&imode + offsetof(scalar_int_mode, scalar_int_mode::m_mode))’ may be used uninitialized in this function [-Wmaybe-uninitialized] +../../gcc/fold-const.cc:384:13: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/gcc.cc:10668:12: warning: ignoring return value of ‘ssize_t read(int, void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] +../../gcc/gcc.cc:2412:30: warning: too many arguments for format [-Wformat-extra-args] +../../gcc/gcc.cc:2413:32: warning: unknown conversion type character ‘t’ in format [-Wformat=] +../../gcc/gcc.cc:2432:30: warning: too many arguments for format [-Wformat-extra-args] +../../gcc/gcc.cc:2433:32: warning: unknown conversion type character ‘t’ in format [-Wformat=] +../../gcc/gcc.cc:2458:30: warning: too many arguments for format [-Wformat-extra-args] +../../gcc/gcc.cc:2459:32: warning: unknown conversion type character ‘t’ in format [-Wformat=] +../../gcc/gcc.cc:2467:30: warning: too many arguments for format [-Wformat-extra-args] +../../gcc/gcc.cc:2468:32: warning: unknown conversion type character ‘t’ in format [-Wformat=] +../../gcc/gcc.cc:2477:30: warning: too many arguments for format [-Wformat-extra-args] +../../gcc/gcc.cc:2478:32: warning: unknown conversion type character ‘t’ in format [-Wformat=] +../../gcc/gcc.cc:2487:30: warning: too many arguments for format [-Wformat-extra-args] +../../gcc/gcc.cc:2488:32: warning: unknown conversion type character ‘t’ in format [-Wformat=] +../../gcc/gcc.cc:2527:26: warning: too many arguments for format [-Wformat-extra-args] +../../gcc/gcc.cc:2527:59: warning: unknown conversion type character ‘t’ in format [-Wformat=] +../../gcc/gcc.cc:2539:22: warning: too many arguments for format [-Wformat-extra-args] +../../gcc/gcc.cc:2539:51: warning: unknown conversion type character ‘t’ in format [-Wformat=] +../../gcc/gcc.cc:2553:22: warning: too many arguments for format [-Wformat-extra-args] +../../gcc/gcc.cc:2553:51: warning: unknown conversion type character ‘t’ in format [-Wformat=] +../../gcc/gcc.cc:7897:9: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] +../../gcc/gcc.cc:7900:13: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] +../../gcc/gcc.cc:7901:13: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] +../../gcc/gcc.cc:7903:9: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] +../../gcc/genhooks.cc:112:17: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] +../../gcc/genhooks.cc:121:14: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] +../../gcc/genhooks.cc:174:14: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] +../../gcc/genhooks.cc:180:14: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] +../../gcc/gimple-range-gori.cc:318:19: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/ipa-devirt.cc:967:10: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/lto-wrapper.cc:1151:8: warning: ignoring return value of ‘ssize_t read(int, void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] +../../gcc/lto-wrapper.cc:1369:10: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/lto-wrapper.cc:1971:23: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/lto/lto-common.cc:2084:10: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] +../../gcc/lto/lto-common.cc:2086:9: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] +../../gcc/lto/lto-common.cc:2106:10: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] +../../gcc/text-art/style.cc:150:25: warning: spurious leading punctuation sequence ‘;’ in format [-Wformat-diag] +../../gcc/text-art/style.cc:160:25: warning: spurious leading punctuation sequence ‘;’ in format [-Wformat-diag] +../../gcc/text-art/table.cc:981:62: warning: unquoted keyword ‘char’ in format [-Wformat-diag] +../../gcc/text-art/table.cc:981:69: warning: spurious trailing punctuation sequence ‘])’ in format [-Wformat-diag] +../../gcc/tree-ssa-sccvn.cc:286:21: warning: format not a string literal and no format arguments [-Wformat-security] +../../gcc/tree-vect-stmts.cc:10397:47: warning: ‘stride_step’ may be used uninitialized in this function [-Wmaybe-uninitialized] +../../gcc/vec.h:347:10: warning: ‘void free(void*)’ called on unallocated object ‘dest_bbs’ [-Wfree-nonheap-object] +../../libcpp/expr.cc:842:35: warning: format not a string literal and no format arguments [-Wformat-security] +../../libcpp/expr.cc:845:38: warning: format not a string literal and no format arguments [-Wformat-security] +../../libcpp/expr.cc:855:33: warning: format not a string literal and no format arguments [-Wformat-security] +../../libcpp/expr.cc:867:42: warning: format not a string literal and no format arguments [-Wformat-security] +../../libcpp/expr.cc:870:39: warning: format not a string literal and no format arguments [-Wformat-security] +../../libcpp/expr.cc:877:35: warning: format not a string literal and no format arguments [-Wformat-security] +../../libcpp/lex.cc:2120:39: warning: ‘loc’ may be used uninitialized [-Wmaybe-uninitialized] +../../libcpp/macro.cc:185:26: warning: format not a string literal and no format arguments [-Wformat-security] +../../libcpp/macro.cc:214:34: warning: format not a string literal and no format arguments [-Wformat-security] +../../libcpp/macro.cc:3710:25: warning: format not a string literal and no format arguments [-Wformat-security] +../../libcpp/macro.cc:3725:25: warning: format not a string literal and no format arguments [-Wformat-security] +/home/runner/work/gccrs/gccrs/gccrs-build/x86_64-pc-linux-gnu/libssp/../../../libssp/gets-chk.c:73: warning: the `gets' function is dangerous and should not be used. +gengtype-lex.cc:357:15: warning: this statement may fall through [-Wimplicit-fallthrough=] +gengtype-lex.cc:357:15: warning: this statement may fall through [-Wimplicit-fallthrough=] +gengtype-lex.cc:357:15: warning: this statement may fall through [-Wimplicit-fallthrough=] +gengtype-lex.cc:357:15: warning: this statement may fall through [-Wimplicit-fallthrough=] +install.texi:2231: warning: `.' or `,' must follow @xref, not f +libtool: install: warning: remember to run `libtool --finish /usr/local/libexec/gcc/x86_64-pc-linux-gnu/14.0.1' diff --git a/.github/workflows/ccpp.yml b/.github/workflows/ccpp.yml index 57bb4d630226..2c6837c0419e 100644 --- a/.github/workflows/ccpp.yml +++ b/.github/workflows/ccpp.yml @@ -1,306 +1,306 @@ -name: GCC Rust build and test - -on: - push: - branches: - - trying - - staging - pull_request: - branches: [ master ] - merge_group: - -env: - ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true - -jobs: - build-and-check-ubuntu-64bit: - - env: - # Force locale, in particular for reproducible results re '.github/bors_log_expected_warnings' (see below). - LC_ALL: C.UTF-8 - - runs-on: ubuntu-22.04 - - steps: - - uses: actions/checkout@v3 - - - name: Install Deps - run: | - sudo apt-get update; - sudo apt-get install -y \ - automake \ - autoconf \ - libtool \ - autogen \ - bison \ - flex \ - libgmp3-dev \ - libmpfr-dev \ - libmpc-dev \ - build-essential \ - gcc-multilib \ - g++-multilib \ - dejagnu; - # install Rust directly using rustup - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=1.72.0; - - - name: Configure - run: | - mkdir -p gccrs-build; - cd gccrs-build; - ../configure \ - --enable-languages=rust \ - --disable-bootstrap \ - --enable-multilib - - - name: Build - shell: bash - run: | - cd gccrs-build; \ - # Add cargo to our path quickly - . "$HOME/.cargo/env"; - make -Otarget -j $(nproc) 2>&1 | tee log - - - name: Check for new warnings - run: | - cd gccrs-build - < log grep 'warning: ' | sort > log_warnings - if diff -U0 ../.github/bors_log_expected_warnings log_warnings; then - : - else - echo 'See .' - exit 1 - fi >&2 - - - name: Run Tests - run: | - cd gccrs-build; \ - make check-rust RUNTESTFLAGS="--target_board=unix\{-m64}" - - name: Archive check-rust results - uses: actions/upload-artifact@v3 - with: - name: check-rust-logs - path: | - gccrs-build/gcc/testsuite/rust/ - - name: Check regressions - run: | - cd gccrs-build; \ - if grep -e "unexpected" -e "unresolved" -e "ERROR:" gcc/testsuite/rust/rust.sum;\ - then \ - echo "::error title=Regression test failed::some tests are not correct"; \ - perl -n ../.github/emit_test_errors.pl < gcc/testsuite/rust/rust.sum; \ - exit 1; \ - else \ - exit 0; \ - fi - - build-and-check-ubuntu-32bit: - - env: - # Force locale, in particular for reproducible results re '.github/bors_log_expected_warnings' (see below). - LC_ALL: C.UTF-8 - - runs-on: ubuntu-22.04 - - steps: - - uses: actions/checkout@v3 - - - name: Install Deps - run: | - sudo apt-get update; - sudo apt-get install -y \ - automake \ - autoconf \ - libtool \ - autogen \ - bison \ - flex \ - libgmp3-dev \ - libmpfr-dev \ - libmpc-dev \ - build-essential \ - gcc-multilib \ - g++-multilib \ - dejagnu; - # install Rust directly using rustup - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=1.72.0; - - - name: Configure - run: | - mkdir -p gccrs-build; - cd gccrs-build; - ../configure \ - --enable-languages=rust \ - --disable-bootstrap \ - --enable-multilib - - - name: Build - shell: bash - run: | - cd gccrs-build; \ - # Add cargo to our path quickly - . "$HOME/.cargo/env"; - make -Otarget -j $(nproc) 2>&1 | tee log - - - name: Check for new warnings - run: | - cd gccrs-build - < log grep 'warning: ' | sort > log_warnings - if diff -U0 ../.github/bors_log_expected_warnings log_warnings; then - : - else - echo 'See .' - exit 1 - fi >&2 - - - name: Run Tests - run: | - cd gccrs-build; \ - make check-rust RUNTESTFLAGS="--target_board=unix\{-m32}" - - name: Archive check-rust results - uses: actions/upload-artifact@v3 - with: - name: check-rust-logs - path: | - gccrs-build/gcc/testsuite/rust/ - - name: Check regressions - run: | - cd gccrs-build; \ - if grep -e "unexpected" -e "unresolved" -e "ERROR:" gcc/testsuite/rust/rust.sum;\ - then \ - echo "::error title=Regression test failed::some tests are not correct"; \ - perl -n ../.github/emit_test_errors.pl < gcc/testsuite/rust/rust.sum; \ - exit 1; \ - else \ - exit 0; \ - fi - - build-and-check-gcc-48: - - runs-on: ubuntu-22.04 - container: ubuntu:18.04 - env: - # otherwise we hang when installing tzdata - DEBIAN_FRONTEND: noninteractive - steps: - - uses: actions/checkout@v3 - - - name: Install Deps - run: | - apt-get update; - apt-get install -y \ - curl \ - automake \ - autoconf \ - libtool \ - autogen \ - bison \ - flex \ - libgmp3-dev \ - libmpfr-dev \ - libmpc-dev \ - build-essential \ - gcc-4.8 \ - g++-4.8 \ - gcc-4.8-multilib \ - g++-4.8-multilib \ - dejagnu; - # install Rust directly using rustup - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=1.72.0; - - - name: Configure - run: | - mkdir -p gccrs-build; - cd gccrs-build; - ../configure \ - CC='gcc-4.8' \ - CXX='g++-4.8' \ - --enable-languages=rust \ - --disable-bootstrap \ - --enable-multilib - - - name: Build - shell: bash - run: | - # Add cargo to our path quickly - . "$HOME/.cargo/env"; - make -C gccrs-build -j $(nproc) - - - name: Run Tests - run: | - cd gccrs-build; \ - make check-rust RUNTESTFLAGS="--target_board=unix\{-m32,-m64}" - - - name: Archive check-rust results - uses: actions/upload-artifact@v3 - with: - name: check-rust-logs-4.8 - path: | - gccrs-build/gcc/testsuite/rust/ - - - name: Check regressions - run: | - cd gccrs-build; \ - if grep -e "unexpected" -e "unresolved" -e "ERROR:" gcc/testsuite/rust/rust.sum;\ - then \ - echo "::error title=Regression test failed::some tests are not correct"; \ - exit 1; \ - else \ - exit 0; \ - fi - - build-and-check-clang-macos: - - env: - # Force CC/CXX to be explicitly clang to make it clear which compiler is used - CC: clang - CXX: clang++ - - runs-on: macos-13 - - steps: - - uses: actions/checkout@v3 - - - name: Install Deps - run: | - brew install dejagnu mpfr libmpc gmp; - # install Rust directly using rustup - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=1.72.0; - - - name: Configure - run: | - mkdir -p gccrs-build; - cd gccrs-build; - ../configure \ - --enable-languages=rust \ - --disable-bootstrap \ - --enable-multilib \ - --with-native-system-header-dir=/usr/include \ - --with-sysroot=$(xcrun --show-sdk-path) - - - name: Build - shell: bash - run: | - cd gccrs-build; \ - make -j $(sysctl -n hw.ncpu) 2>&1 | tee log - - - name: Run Tests - run: | - cd gccrs-build; \ - make check-rust - - name: Archive check-rust results - uses: actions/upload-artifact@v3 - with: - name: check-rust-logs-macos - path: | - gccrs-build/gcc/testsuite/rust/ - - name: Check regressions - run: | - cd gccrs-build; \ - if grep -e "unexpected" -e "unresolved" -e "ERROR:" gcc/testsuite/rust/rust.sum;\ - then \ - echo "::error title=Regression test failed::some tests are not correct"; \ - exit 1; \ - else \ - exit 0; \ - fi +# name: GCC Rust build and test +# +# on: +# push: +# branches: +# - trying +# - staging +# pull_request: +# branches: [ master ] +# merge_group: +# +# env: +# ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true +# +# jobs: +# build-and-check-ubuntu-64bit: +# +# env: +# # Force locale, in particular for reproducible results re '.github/bors_log_expected_warnings' (see below). +# LC_ALL: C.UTF-8 +# +# runs-on: ubuntu-22.04 +# +# steps: +# - uses: actions/checkout@v3 +# +# - name: Install Deps +# run: | +# sudo apt-get update; +# sudo apt-get install -y \ +# automake \ +# autoconf \ +# libtool \ +# autogen \ +# bison \ +# flex \ +# libgmp3-dev \ +# libmpfr-dev \ +# libmpc-dev \ +# build-essential \ +# gcc-multilib \ +# g++-multilib \ +# dejagnu; +# # install Rust directly using rustup +# curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=1.72.0; +# +# - name: Configure +# run: | +# mkdir -p gccrs-build; +# cd gccrs-build; +# ../configure \ +# --enable-languages=rust \ +# --disable-bootstrap \ +# --enable-multilib +# +# - name: Build +# shell: bash +# run: | +# cd gccrs-build; \ +# # Add cargo to our path quickly +# . "$HOME/.cargo/env"; +# make -Otarget -j $(nproc) 2>&1 | tee log +# +# - name: Check for new warnings +# run: | +# cd gccrs-build +# < log grep 'warning: ' | sort > log_warnings +# if diff -U0 ../.github/bors_log_expected_warnings log_warnings; then +# : +# else +# echo 'See .' +# exit 1 +# fi >&2 +# +# - name: Run Tests +# run: | +# cd gccrs-build; \ +# make check-rust RUNTESTFLAGS="--target_board=unix\{-m64}" +# - name: Archive check-rust results +# uses: actions/upload-artifact@v3 +# with: +# name: check-rust-logs +# path: | +# gccrs-build/gcc/testsuite/rust/ +# - name: Check regressions +# run: | +# cd gccrs-build; \ +# if grep -e "unexpected" -e "unresolved" -e "ERROR:" gcc/testsuite/rust/rust.sum;\ +# then \ +# echo "::error title=Regression test failed::some tests are not correct"; \ +# perl -n ../.github/emit_test_errors.pl < gcc/testsuite/rust/rust.sum; \ +# exit 1; \ +# else \ +# exit 0; \ +# fi +# +# build-and-check-ubuntu-32bit: +# +# env: +# # Force locale, in particular for reproducible results re '.github/bors_log_expected_warnings' (see below). +# LC_ALL: C.UTF-8 +# +# runs-on: ubuntu-22.04 +# +# steps: +# - uses: actions/checkout@v3 +# +# - name: Install Deps +# run: | +# sudo apt-get update; +# sudo apt-get install -y \ +# automake \ +# autoconf \ +# libtool \ +# autogen \ +# bison \ +# flex \ +# libgmp3-dev \ +# libmpfr-dev \ +# libmpc-dev \ +# build-essential \ +# gcc-multilib \ +# g++-multilib \ +# dejagnu; +# # install Rust directly using rustup +# curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=1.72.0; +# +# - name: Configure +# run: | +# mkdir -p gccrs-build; +# cd gccrs-build; +# ../configure \ +# --enable-languages=rust \ +# --disable-bootstrap \ +# --enable-multilib +# +# - name: Build +# shell: bash +# run: | +# cd gccrs-build; \ +# # Add cargo to our path quickly +# . "$HOME/.cargo/env"; +# make -Otarget -j $(nproc) 2>&1 | tee log +# +# - name: Check for new warnings +# run: | +# cd gccrs-build +# < log grep 'warning: ' | sort > log_warnings +# if diff -U0 ../.github/bors_log_expected_warnings log_warnings; then +# : +# else +# echo 'See .' +# exit 1 +# fi >&2 +# +# - name: Run Tests +# run: | +# cd gccrs-build; \ +# make check-rust RUNTESTFLAGS="--target_board=unix\{-m32}" +# - name: Archive check-rust results +# uses: actions/upload-artifact@v3 +# with: +# name: check-rust-logs +# path: | +# gccrs-build/gcc/testsuite/rust/ +# - name: Check regressions +# run: | +# cd gccrs-build; \ +# if grep -e "unexpected" -e "unresolved" -e "ERROR:" gcc/testsuite/rust/rust.sum;\ +# then \ +# echo "::error title=Regression test failed::some tests are not correct"; \ +# perl -n ../.github/emit_test_errors.pl < gcc/testsuite/rust/rust.sum; \ +# exit 1; \ +# else \ +# exit 0; \ +# fi +# +# build-and-check-gcc-48: +# +# runs-on: ubuntu-22.04 +# container: ubuntu:18.04 +# env: +# # otherwise we hang when installing tzdata +# DEBIAN_FRONTEND: noninteractive +# steps: +# - uses: actions/checkout@v3 +# +# - name: Install Deps +# run: | +# apt-get update; +# apt-get install -y \ +# curl \ +# automake \ +# autoconf \ +# libtool \ +# autogen \ +# bison \ +# flex \ +# libgmp3-dev \ +# libmpfr-dev \ +# libmpc-dev \ +# build-essential \ +# gcc-4.8 \ +# g++-4.8 \ +# gcc-4.8-multilib \ +# g++-4.8-multilib \ +# dejagnu; +# # install Rust directly using rustup +# curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=1.72.0; +# +# - name: Configure +# run: | +# mkdir -p gccrs-build; +# cd gccrs-build; +# ../configure \ +# CC='gcc-4.8' \ +# CXX='g++-4.8' \ +# --enable-languages=rust \ +# --disable-bootstrap \ +# --enable-multilib +# +# - name: Build +# shell: bash +# run: | +# # Add cargo to our path quickly +# . "$HOME/.cargo/env"; +# make -C gccrs-build -j $(nproc) +# +# - name: Run Tests +# run: | +# cd gccrs-build; \ +# make check-rust RUNTESTFLAGS="--target_board=unix\{-m32,-m64}" +# +# - name: Archive check-rust results +# uses: actions/upload-artifact@v3 +# with: +# name: check-rust-logs-4.8 +# path: | +# gccrs-build/gcc/testsuite/rust/ +# +# - name: Check regressions +# run: | +# cd gccrs-build; \ +# if grep -e "unexpected" -e "unresolved" -e "ERROR:" gcc/testsuite/rust/rust.sum;\ +# then \ +# echo "::error title=Regression test failed::some tests are not correct"; \ +# exit 1; \ +# else \ +# exit 0; \ +# fi +# +# build-and-check-clang-macos: +# +# env: +# # Force CC/CXX to be explicitly clang to make it clear which compiler is used +# CC: clang +# CXX: clang++ +# +# runs-on: macos-13 +# +# steps: +# - uses: actions/checkout@v3 +# +# - name: Install Deps +# run: | +# brew install dejagnu mpfr libmpc gmp; +# # install Rust directly using rustup +# curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=1.72.0; +# +# - name: Configure +# run: | +# mkdir -p gccrs-build; +# cd gccrs-build; +# ../configure \ +# --enable-languages=rust \ +# --disable-bootstrap \ +# --enable-multilib \ +# --with-native-system-header-dir=/usr/include \ +# --with-sysroot=$(xcrun --show-sdk-path) +# +# - name: Build +# shell: bash +# run: | +# cd gccrs-build; \ +# make -j $(sysctl -n hw.ncpu) 2>&1 | tee log +# +# - name: Run Tests +# run: | +# cd gccrs-build; \ +# make check-rust +# - name: Archive check-rust results +# uses: actions/upload-artifact@v3 +# with: +# name: check-rust-logs-macos +# path: | +# gccrs-build/gcc/testsuite/rust/ +# - name: Check regressions +# run: | +# cd gccrs-build; \ +# if grep -e "unexpected" -e "unresolved" -e "ERROR:" gcc/testsuite/rust/rust.sum;\ +# then \ +# echo "::error title=Regression test failed::some tests are not correct"; \ +# exit 1; \ +# else \ +# exit 0; \ +# fi diff --git a/.github/workflows/cppp32.yml b/.github/workflows/cppp32.yml new file mode 100644 index 000000000000..acb13bcde799 --- /dev/null +++ b/.github/workflows/cppp32.yml @@ -0,0 +1,132 @@ +name: GCC Rust build and test (Alpine 32-bit) + +on: + push: + branches: + - trying + - staging + pull_request: + branches: [ master ] + merge_group: + +env: + ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true + +jobs: + build-alpine-32bit-and-check-alpine-32bit: + + env: + # Force locale, in particular for reproducible results re '.github/bors_log_expected_warnings' (see below). + LC_ALL: C.UTF-8 + + runs-on: ubuntu-22.04 + + steps: + - uses: actions/checkout@v3 + - name: Setup Alpine Linux (32-bit) + uses: jirutka/setup-alpine@v1 + with: + arch: x86 + packages: > + automake + autoconf + libtool + bison + flex + gmp-dev + mpfr-dev + mpc1-dev + build-base + dejagnu + curl + gcompat + libc6-compat + libc-dev + libc++-dev + + # - name: Install gcc dependency + # run: | + # sudo apt install gcc-multilib g++-multilib libc6-dev-i386 + - name: Install Rust + run: | + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=1.72.0 + shell: alpine.sh {0} + + - name: Install dependencies with gcc + run: | + ./contrib/download_prerequisites + shell: alpine.sh {0} + + - name: Inspect libc file + run: | + file /usr/lib/* | grep "libc" + + - name: Configure + run: | + mkdir -p gccrs-build; + cd gccrs-build; + ../configure \ + --host=i586-alpine-linux-musl --build=i586-alpine-linux-musl --target=i586-alpine-linux-musl \ + --enable-languages=rust \ + --disable-bootstrap \ + --disable-multilib # Try to disable multilib on alpine https://github.com/conan-io/conan/issues/14307#issuecomment-1652433132 + shell: alpine.sh {0} + + - name: Build + run: | + cd gccrs-build; \ + # Add cargo to our path quickly + # . "$HOME/.cargo/env"; + make -Otarget -j $(nproc) 2>&1 | tee log + shell: alpine.sh {0} + + - name: Produce warning logs + run: | + cd gccrs-build + < log grep 'warning: ' | sort > log_warnings + cat log_warnings + shell: alpine.sh {0} + - name: Archive warnings logs + uses: actions/upload-artifact@v3 + with: + name: warnings + path: | + gccrs-build/log_warnings + - name: Check for new warnings + run: | + cd gccrs-build + < log grep 'warning: ' | sort > log_warnings + if diff -U0 ../.github/alpine_32bit_log_warnings log_warnings; then + : + else + echo 'See .' + exit 1 + fi >&2 + shell: alpine.sh {0} + + - name: Run Tests + run: | + cd gccrs-build; \ + make check-rust RUNTESTFLAGS="--target_board=unix\{-m32}" + shell: alpine.sh {0} + + - name: Archive check-rust results + uses: actions/upload-artifact@v3 + with: + name: check-rust-logs + path: | + gccrs-build/gcc/testsuite/rust/ + + - name: Check regressions + run: | + cd gccrs-build; \ + if grep -e "unexpected" -e "unresolved" -e "ERROR:" gcc/testsuite/rust/rust.sum;\ + then \ + echo "::error title=Regression test failed::some tests are not correct"; \ + perl -n ../.github/emit_test_errors.pl < gcc/testsuite/rust/rust.sum; \ + exit 1; \ + else \ + exit 0; \ + fi + shell: alpine.sh {0} +