On Mon, Mar 17, 2025 at 5:04 PM Lianbo Jiang <liji...@redhat.com> wrote:

> From: lian-bo <liji...@redhat.com>
>
> Enable ci build on arches:
> x86_64, x86, aarch64, s390x, powerpc64, alpha, sparc64, mips, riscv64
>
> Signed-off-by: Lianbo Jiang <liji...@redhat.com>
> ---
>  .github/workflows/ci-build.yml | 93 ++++++++++++++++++++++++++++++++++
>  1 file changed, 93 insertions(+)
>  create mode 100644 .github/workflows/ci-build.yml
>
> diff --git a/.github/workflows/ci-build.yml
> b/.github/workflows/ci-build.yml
> new file mode 100644
> index 000000000000..681f104ab1e4
> --- /dev/null
> +++ b/.github/workflows/ci-build.yml
> @@ -0,0 +1,93 @@
> +name: Build
> +
> +on:
> +  push:
> +    branches: [ "master" ]
> +
> +jobs:
> +  build:
> +    name: Build
> +    runs-on: ubuntu-24.04
> +    strategy:
> +      matrix:
> +        arch:
> +        - x86_64
> +        - aarch64
> +        - s390x
> +        - powerpc64
> +        - x86
> +        - riscv64
> +        - mips
> +        - alpha
> +        - sparc64
> +
> +    steps:
> +    - name: Checkout
> +      uses: actions/checkout@v4
> +
> +    - name: Set Environment
> +      env:
> +        ARCH: ${{ matrix.arch }}
> +      run: |
> +        case $ARCH in
> +          x86)         GNU_ARCH="i686-linux-gnu" ;;
> +          x86_64)      CROSS_COMPILER_PKG="gcc-x86-64-linux-gnu"
> +                       CROSS_COMPILER_PKG+=" g++-x86-64-linux-gnu"
> +                       GNU_ARCH="$ARCH-linux-gnu" ;;
> +          *)           GNU_ARCH="$ARCH-linux-gnu" ;;
> +        esac
> +
> +        if [ -n "$GNU_ARCH" ]; then
> +          if [ -z "$CROSS_COMPILER_PKG" ]; then
> +            CROSS_COMPILER_PKG="gcc-$GNU_ARCH"
> +            CROSS_COMPILER_PKG+=" g++-$GNU_ARCH"
> +          fi
> +          EXTRA_PKGS+=" $CROSS_COMPILER_PKG"
> +          CROSS_COMPILE="$GNU_ARCH"
> +        fi
> +
> +        echo "EXTRA_PKGS=$EXTRA_PKGS" >> $GITHUB_ENV
> +        echo "CROSS_COMPILE=$CROSS_COMPILE" >> $GITHUB_ENV
> +
> +    - name: Install deps for crash-utility building
> +      run: |
> +        sudo apt-get update
> +        sudo apt-get install make gcc g++ bison flex texinfo wget patch
> tar build-essential libc-dev autoconf automake libncurses-dev
> +
> +    - name: Install corss compile tool pkgs
> +      if: env.EXTRA_PKGS != ''
> +      run: |
> +        sudo apt-get update
> +        sudo apt-get -q=2 install ${{ env.EXTRA_PKGS }}
> +
> +    - name: Cross compile gmp lib
> +      run: |
> +        mkdir $GITHUB_WORKSPACE/libtools
> +        wget https://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.2.1.tar.bz2
> +        tar -jxvf gmp-6.2.1.tar.bz2
> +        cd gmp-6.2.1
> +        ./configure --host=${{ env.CROSS_COMPILE }}
> --prefix=$GITHUB_WORKSPACE/libtools
> +        make -j`nproc`
> +        sudo make install
> +        cd ..
> +    - name: Cross compile mpfr lib
> +      run: |
> +        wget
> https://gcc.gnu.org/pub/gcc/infrastructure/mpfr-4.1.0.tar.bz2
> +        tar -jxvf mpfr-4.1.0.tar.bz2
> +        cd mpfr-4.1.0
> +        ./configure --host=${{ env.CROSS_COMPILE }}
> --prefix=$GITHUB_WORKSPACE/libtools --with-gmp=$GITHUB_WORKSPACE/libtools
> +        make -j`nproc`
> +        sudo make install
> +        cd ..
> +    - name: Cross compile crash-utility
> +      run: |
> +        sudo cp $GITHUB_WORKSPACE/libtools/include/* /usr/include/
> +        sudo cp -r $GITHUB_WORKSPACE/libtools/lib/* /usr/lib/
> +        sudo ldconfig -n /usr/lib/
>

Note: the above "ldconfig -n /usr/lib/" is not needed, we can remove it.

Thanks
Lianbo


> +        make CROSS_COMPILE=${{ env.CROSS_COMPILE }}- -j"$(nproc)" warn
> +    - name: Checking and Clean up
> +      run: |
> +        echo "Run command: file crash ..."
> +        file crash
> +        echo "Clean up for compiling ..."
> +        make CROSS_COMPILE=${{ env.CROSS_COMPILE }}- -j"$(nproc)" clean
> --
> 2.47.1
>
>
--
Crash-utility mailing list -- devel@lists.crash-utility.osci.io
To unsubscribe send an email to devel-le...@lists.crash-utility.osci.io
https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/
Contribution Guidelines: https://github.com/crash-utility/crash/wiki

Reply via email to