diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 81d6cca..3b04538 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,6 +18,8 @@ jobs: target: - os: linux cpu: amd64 + - os: linux-gcc-14 # this is to use ubuntu 24 and install gcc 14. Must be removed when ubuntu-latest is 24.04 + cpu: amd64 - os: linux cpu: i386 - os: macos @@ -32,6 +34,10 @@ jobs: os: linux builder: ubuntu-latest shell: bash + - target: + os: linux-gcc-14 # this is to use ubuntu 24 and install gcc 14. Must be removed when ubuntu-latest is 24.04 + builder: ubuntu-24.04 + shell: bash - target: os: macos cpu: amd64 @@ -165,6 +171,15 @@ jobs: bash build_nim.sh nim csources dist/nimble NimBinaries echo '${{ github.workspace }}/nim/bin' >> $GITHUB_PATH + - name: Use gcc 14 # Must be removed when ubuntu-latest is 24.04 and gcc 14 is the default + if : ${{ matrix.target.os == 'linux-gcc-14' }} + run: | + # Add GCC-14 to alternatives + sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 14 + + # Set GCC-14 as the default + sudo update-alternatives --set gcc /usr/bin/gcc-14 + - name: Run tests run: | nim --version diff --git a/chronos.nimble b/chronos.nimble index a6ae749..2040642 100644 --- a/chronos.nimble +++ b/chronos.nimble @@ -10,7 +10,7 @@ skipDirs = @["tests"] requires "nim >= 1.6.16", "results", "stew", - "bearssl >= 0.2.3", + "bearssl >= 0.2.5", "httputils", "unittest2" diff --git a/chronos/streams/tlsstream.nim b/chronos/streams/tlsstream.nim index 0e3430e..803208e 100644 --- a/chronos/streams/tlsstream.nim +++ b/chronos/streams/tlsstream.nim @@ -510,7 +510,8 @@ proc newTLSClientAsyncStream*( if TLSFlags.NoVerifyHost in flags: sslClientInitFull(res.ccontext, addr res.x509, nil, 0) - x509NoanchorInit(res.xwc, addr res.x509.vtable) + x509NoanchorInit(res.xwc, + X509ClassPointerConst(addr res.x509.vtable)) sslEngineSetX509(res.ccontext.eng, X509ClassPointerConst(addr res.xwc.vtable)) else: