Skip to content

Releases: daixtrose/libmodbus-cpp

v1.7.1

Choose a tag to compare

@github-actions github-actions released this 06 Mar 20:00
chore: bump version to 1.7.1 for container fix rebuild

The cross-build container image was fixed to properly extract sysroot
dev packages and remove host glibc 2.39 headers that shadowed the
sysroot. This rebuild ensures aarch64 binaries require max GLIBC_2.34.

v1.7.0

Choose a tag to compare

@github-actions github-actions released this 06 Mar 18:08
feat: Bookworm sysroot support for aarch64 cross-compilation (v1.7.0)

- Pass CMAKE_SYSROOT to autotools ExternalProject via CFLAGS/LDFLAGS
  so libmodbus links against the target libc (glibc 2.36) instead of
  the host's (glibc 2.39)
- Toolchain: auto-detect /opt/bookworm-arm64-sysroot if present
- CI: switch aarch64 jobs to ghcr.io/daixtrose/cross-build-bookworm-arm64
  container (Bookworm sysroot + GCC 14 + CMake 4.2.3)

v1.6.0

Choose a tag to compare

@daixtrose daixtrose released this 02 Mar 23:09

Features

  • Add read_discrete_input() and read_discrete_inputs() methods (Modbus Function Code 02 — Read Discrete Inputs)

v1.5.0

Choose a tag to compare

@github-actions github-actions released this 02 Mar 14:50
Fix Windows EINVAL on connect: override FD_SETSIZE for libmodbus

libmodbus checks 'if (socket >= FD_SETSIZE)' and returns EINVAL.
On Linux FD_SETSIZE=1024 and fd numbers are small, so this works.
On Windows FD_SETSIZE=64 and SOCKET handles are opaque kernel values
that are typically >> 64, causing every connection attempt to fail
with 'Invalid argument'.

Fix: pass CPPFLAGS=-DFD_SETSIZE=4096 when building libmodbus on
Windows so the check no longer rejects valid socket handles.

v1.4.0

Choose a tag to compare

@github-actions github-actions released this 28 Feb 15:49
fix: Windows MSYS2 build — pre-run autoreconf in CI step, bump to v1.4.0

Root cause: ExternalProject_Add runs commands via cmake -P / execute_process(),
which creates processes in the Windows/MinGW context, not the MSYS2 context.
This breaks aclocal's MSYS2 path resolution (progtest.m4 not found at the
doubled MSYS2 root path /a/_temp/msys64/usr/share/aclocal/).

Fix: Run autoreconf in a CI workflow step (proper MSYS2 shell context) between
configure and build. ExternalProject only runs ./configure, make, make install.
The autotools invocation (autoreconf/aclocal/automake) is cleanly separated
from the CMake/ExternalProject build.

v1.3.0

Choose a tag to compare

@daixtrose daixtrose released this 28 Feb 07:16

Added aarch64 cross-compilation support for Raspberry Pi 5 / Revolution Pi Connect 5

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 27 Feb 23:15
Release v1.2.0

- Standard DEB/RPM naming with architecture triplet
- DEB/RPM packages in releases