As reported in https://github.com/systemd/systemd/issues/38222, we get the buffer size calculation wrong on 32-bit arm. The reporter suggested checking if __TIMESIZE == 64, but I think it's better to just use the bigger size in all cases. The code to guesstimate the buffer size was already tweaked a few times and apparently it's not easy to get it right. Systemd and glibc might be compiled with different combinations of __TIMESIZE, so the compile-time check is not super reliable, and by using the bigger size, we don't depend on the details of how glibc decided whether to duplicate the struct or not. The cost is negligible, 16 bytes on stack, so let's do the easy and robust thing. Solution based on the suggestion by UZver24. While at it, drop the mock struct definitions. They are only used to calculate the size, but since the types involved are 8-bit values, there are no alignment issues and we can just calculate the size directly. Fixes https://github.com/systemd/systemd/issues/38222.
System and Service Manager
Details
Most documentation is available on systemd's web site.
Assorted, older, general information about systemd can be found in the systemd Wiki.
Information about build requirements is provided in the README file.
Consult our NEWS file for information about what's new in the most recent systemd versions.
Please see the Code Map for information about this repository's layout and content.
Please see the Hacking guide for information on how to hack on systemd and test your modifications.
Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our Coding Style Guidelines.
If you are looking for support, please contact our mailing list, join our IRC channel #systemd on libera.chat or Matrix channel
Stable branches with backported patches are available in the stable repo.
We have a security bug bounty program sponsored by the Sovereign Tech Fund hosted on YesWeHack
Repositories with distribution packages built from git main are available on OBS
