No description
Find a file
Mathieu Desnoyers 33c0043558 Use __NR_futex_time64 in futex syscall wrapper
The "futex()" wrapper has an issue with its timeout parameter.

It uses struct timespec, which has the libc struct timespec layout,
which may differ from the layout expected by the futex system call.

When the architecture provides futex_time64, detect when the size of
struct timespec is the same as struct __kernel_timespec, and use
futex_time64 in that situation.

When the architecture does _not_ provide futex_time64 (e.g. 64-bit
architecture), then just keep using the futex system call.

Note that for the very limited use libside does of the futex system
call, those changes are not expected to have any runtime effect.

Change-Id: I0f6990641d6a8151cfd990a7206cb87d856eee86
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2025-12-13 08:47:11 -05:00
include Fix typo 2025-08-20 08:50:44 -04:00
LICENSES Add missing license and copyright headers 2024-07-23 19:07:42 -04:00
m4 fix: m4: ensure newline after the no-op command 2025-06-09 11:00:48 -04:00
src Use __NR_futex_time64 in futex syscall wrapper 2025-12-13 08:47:11 -05:00
tests Fix float conversion error 2024-11-28 14:33:37 -05:00
.gitignore Add static checker tests 2024-10-24 16:51:26 -04:00
.gitreview Add git-review config 2024-07-23 16:38:23 -04:00
bootstrap Add autotools build system 2022-11-25 15:24:44 -05:00
configure.ac Add static checker tests 2024-10-24 16:51:26 -04:00
LICENSE Initial commit 2022-10-12 11:36:23 +01:00
Makefile.am Remove specification draft 2024-08-05 09:53:16 -04:00
README.md docs: Add building pre-requisites and instructions 2025-01-28 13:53:00 -05:00

libside

Software Instrumentation Dynamically Enabled

Dependencies

Building

Prerequisites

This source tree is based on the Autotools suite from GNU to simplify portability. Here are some things you should have on your system in order to compile the Git repository tree:

Building steps

If you get the tree from the Git repository, you will need to run

./bootstrap

in its root. It calls all the GNU tools needed to prepare the tree configuration.

To build and install, do:

./configure
make
sudo make install
sudo ldconfig