view .github/workflows/coverity.yml @ 33988:7c30841c60a0 v9.0.2180

patch 9.0.2180: POSIX function name in exarg causes issues Commit: https://github.com/vim/vim/commit/6fdb6280821a822768df5689a5d727e37d38306c Author: Zoltan Arpadffy <zoltan.arpadffy@gmail.com> Date: Tue Dec 19 20:53:07 2023 +0100 patch 9.0.2180: POSIX function name in exarg causes issues Problem: POSIX function name in exarg struct causes issues on OpenVMS Solution: Rename getline member in exarg struct to ea_getline, remove isinf() workaround for VMS There are compilers that do not treat well POSIX functions - like getline - usage in the structs. Older VMS compilers could digest this... but the newer OpenVMS compilers ( like VSI C x86-64 X7.4-843 (GEM 50XB9) ) cannot deal with these structs. This could be limited to getline() that is defined via getdelim() and might not affect all POSIX functions in general - but avoiding POSIX function names usage in the structs is a "safe side" practice without compromising the functionality or the code readability. The previous OpenVMS X86 port used a workaround limiting the compiler capabilities using __CRTL_VER_OVERRIDE=80400000 In order to make the OpenVMS port future proof, this pull request proposes a possible solution. closes: #13704 Signed-off-by: Zoltan Arpadffy <zoltan.arpadffy@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Tue, 19 Dec 2023 21:00:04 +0100
parents db65486d8d75
children f8623bd12e17
line wrap: on
line source

name: Coverity
on:
  schedule:
    - cron: '42 0 * * *'  # Run once per day, to avoid Coverity's submission limits
  workflow_dispatch:

permissions:
  contents: read # to fetch code (actions/checkout)

jobs:
  scan:
    runs-on: ubuntu-22.04

    env:
      CC: gcc
      DEBIAN_FRONTEND: noninteractive
      TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}

    steps:
      - name: Checkout repository from github
        if: env.TOKEN
        uses: actions/checkout@v4

      - name: Download Coverity
        if: env.TOKEN
        run: |
          wget -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=$TOKEN&project=vim" -O coverity_tool.tgz
          mkdir cov-scan
          tar ax -f coverity_tool.tgz --strip-components=1 -C cov-scan

      - name: Install packages
        if: env.TOKEN
        run: |
          sudo apt-get update && sudo apt-get install -y \
            autoconf \
            gettext \
            libcanberra-dev \
            libperl-dev \
            python2-dev \
            python3-dev \
            liblua5.4-dev \
            lua5.4 \
            ruby-dev \
            tcl-dev \
            libgtk2.0-dev \
            desktop-file-utils \
            libtool-bin \
            libsodium-dev

      - name: Set up environment
        if: env.TOKEN
        run: |
          echo "$(pwd)/cov-scan/bin" >> $GITHUB_PATH
          (
          echo "NPROC=$(getconf _NPROCESSORS_ONLN)"
          echo "CONFOPT=--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp"
          ) >> $GITHUB_ENV

      - name: Configure
        if: env.TOKEN
        run: |
          ./configure --with-features=huge ${CONFOPT} --enable-fail-if-missing
          # Append various warning flags to CFLAGS.
          sed -i -f ci/config.mk.sed src/auto/config.mk
          sed -i -f ci/config.mk.${CC}.sed src/auto/config.mk

      - name: Build/scan vim
        if: env.TOKEN
        run: |
          cov-build --dir cov-int make -j${NPROC}

      - name: Submit results
        if: env.TOKEN
        run: |
          tar zcf cov-scan.tgz cov-int
          curl --form token=$TOKEN \
            --form email=$EMAIL \
            --form file=@cov-scan.tgz \
            --form version="$(git rev-parse HEAD)" \
            --form description="Automatic GHA scan" \
            'https://scan.coverity.com/builds?project=vim'
        env:
          EMAIL: ${{ secrets.COVERITY_SCAN_EMAIL }}