diff --git a/.circleci/config.yml b/.circleci/config.yml
index 30652e5082c690b6643bb4240416e600d27bfaa0..8960c19132137d49867e092640536a4942e7ffbb 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -168,9 +168,9 @@ references:
          -czf "/artefacts/smartmontools-freebsd13.2-amd64-static-${SM_VER}-r${SVNREV}.tar.gz" *) &&
         rm -rf ~/build
 
-  sm_compile_freebsd12: &sm_compile_freebsd12
+  sm_compile_freebsd14: &sm_compile_freebsd14
     run:
-      name: Creating static FreeBSD-12.4/amd64 binaries
+      name: Creating static FreeBSD-14.0/amd64 binaries
       command: |
         SM_VER=`cat ~/SM_VER` && SVNREV=`cat ~/SVNREV` &&
         SOURCE_DATE_EPOCH=`cat ~/SOURCE_DATE_EPOCH` &&
@@ -178,15 +178,15 @@ references:
         mkdir ~/build && cd ~/build &&
         tar -xzf /artefacts/smartmontools-${SM_VER}-r${SVNREV}.src.tar.gz &&
         cd smartmontools-${SM_VER} && mkdir build && cd build &&
-        TARGET="-target x86_64-unknown-freebsd12 --sysroot=/opt/cross-freebsd-12/" &&
+        TARGET="-target x86_64-unknown-freebsd14 --sysroot=/opt/cross-freebsd-14/" &&
         ../configure CC="clang $TARGET" CXX="clang++ $TARGET" \
-          CPPFLAGS="-isystem /opt/cross-freebsd-12/usr/include/c++/v1" \
-          LDFLAGS="-static" --host=x86_64-pc-freebsd12 \
+          CPPFLAGS="-isystem /opt/cross-freebsd-14/usr/include/c++/v1" \
+          LDFLAGS="-static" --host=x86_64-pc-freebsd14 \
           SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} &&
         make -j3 BUILD_INFO="$BUILD_INFO" &&
         mkdir inst && make DESTDIR="$(pwd)/inst" install &&
         (cd inst && tar --sort=name --mtime=@${SOURCE_DATE_EPOCH} \
-         -czf "/artefacts/smartmontools-freebsd12.4-amd64-static-${SM_VER}-r${SVNREV}.tar.gz" *) &&
+         -czf "/artefacts/smartmontools-freebsd14.0-amd64-static-${SM_VER}-r${SVNREV}.tar.gz" *) &&
         rm -rf ~/build
 
   sm_run_cppcheck: &sm_run_cppcheck
@@ -231,7 +231,7 @@ jobs:
       - *sm_compile_win
       - *sm_compile_darwin
       - *sm_compile_freebsd13
-      - *sm_compile_freebsd12
+      - *sm_compile_freebsd14
       - *sm_compile_linux_clang
       - *sm_run_cppcheck
       - *sm_compute_hashes
diff --git a/smartmontools/ChangeLog b/smartmontools/ChangeLog
index 796ca25521ca67c27df316702f5ccb937f884366..b1bea4769935bd211314bfd733376d6d5da3693c 100644
--- a/smartmontools/ChangeLog
+++ b/smartmontools/ChangeLog
@@ -1,5 +1,9 @@
 $Id$
 
+2024-01-02  Alex Samorukov <samm@os2.kiev.ua>
+
+	CI: drop EoL FreeBSD 12, add FreeBSD 14.0, upgrade cppcheck
+
 2024-01-01  Christian Franke  <franke@computer.org>
 
 	Happy New Year!  Update copyright year in version info.