@@ -159,6 +159,12 @@ jobs:
159159 otp : " master"
160160 elixir_version : " main"
161161
162+ # Additional mbedtls@4 coverage with the default Linux toolchain
163+ - cc : " cc"
164+ cxx : " c++"
165+ otp : " 28"
166+ mbedtls : " mbedtls@4"
167+
162168 # Additional latest & -Os compiler builds
163169 - cc : " gcc-14"
164170 cxx : " g++-14"
@@ -495,12 +501,23 @@ jobs:
495501
496502 - name : " Install deps"
497503 if : matrix.container != ''
498- run : sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen valgrind libmbedtls-dev
504+ env :
505+ MBEDTLS_VARIANT : ${{ matrix.mbedtls || 'default' }}
506+ run : |
507+ sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen valgrind
508+ if [[ "$MBEDTLS_VARIANT" != "mbedtls@4" ]]; then
509+ sudo apt install -y libmbedtls-dev
510+ fi
499511
500512 - name : " Install deps"
501513 if : matrix.container == ''
514+ env :
515+ MBEDTLS_VARIANT : ${{ matrix.mbedtls || 'default' }}
502516 run : |
503- sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen libmbedtls-dev libc6-dbg
517+ sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen libc6-dbg
518+ if [[ "$MBEDTLS_VARIANT" != "mbedtls@4" ]]; then
519+ sudo apt install -y libmbedtls-dev
520+ fi
504521 # Get a more recent valgrind
505522 sudo snap install valgrind --classic
506523
@@ -536,6 +553,19 @@ jobs:
536553 https://repo.hex.pm
537554 https://cdn.jsdelivr.net/hex
538555
556+ - name : " Install specific MbedTLS version"
557+ if : matrix.mbedtls == 'mbedtls@4'
558+ run : |
559+ git clone --depth 1 --branch mbedtls-4.0.0 --recurse-submodules https://github.com/Mbed-TLS/mbedtls
560+ cd mbedtls
561+ mkdir build
562+ cd build
563+ cmake -DENABLE_TESTING=OFF -DUSE_SHARED_MBEDTLS_LIBRARY=On -DCMAKE_INSTALL_PREFIX=/usr/local ..
564+ make -j$(nproc)
565+ sudo make install
566+ sudo ldconfig
567+ echo "MBEDTLS_ROOT_DIR=/usr/local" >> $GITHUB_ENV
568+
539569 # Builder info
540570 - name : " System info"
541571 run : |
@@ -568,7 +598,7 @@ jobs:
568598 - name : " Build: run cmake"
569599 working-directory : build
570600 run : |
571- cmake ${{ matrix.cmake_opts_fp }} ${{ matrix.cmake_opts_smp }} ${{ matrix.cmake_opts_other || env.DEFAULT_CMAKE_OPTS_OTHER }} ..
601+ cmake ${MBEDTLS_ROOT_DIR:+-DMBEDTLS_ROOT_DIR=$MBEDTLS_ROOT_DIR} ${ { matrix.cmake_opts_fp }} ${{ matrix.cmake_opts_smp }} ${{ matrix.cmake_opts_other || env.DEFAULT_CMAKE_OPTS_OTHER }} ..
572602 # git clone will use more recent timestamps than cached beam files
573603 # touch them so we can benefit from the cache and avoid costly beam file rebuild.
574604 find . -name '*.beam' -exec touch {} \;
0 commit comments