libatomic_ops provides implementations for atomic memory update operations on a number of architectures. This allows direct use of these in reasonably portable code. Unlike earlier similar packages, this one explicitly considers memory barrier semantics, and allows the construction of code that involves minimum overhead across a variety of architectures. Some systems, like various Intel CPUs, don't support native atomic operations either, and this package offers as a stand-in replacement.
Many systems won't need this package in GLFS or SLFS, but may be required in BLFS. However, some Intel systems need this package to provide atomics, needed by libdrm-2.4.130. Otherwise, the libdrm module for the Intel platform will not be built, causing cascading issues for packages like Mesa-25.3.1. If you know your platform supports atomics, you can safely skip this package.
Install libatomic_ops by running the following commands:
./configure --prefix=/usr \
--enable-shared \
--disable-static \
--docdir=/usr/share/doc/libatomic_ops-7.10.0 &&
make
Now, as the root user:
make install
Install lib32-libatomic_ops by running the following commands:
make distclean &&
CC="gcc -m32" CXX="g++ -m32" \
PKG_CONFIG_PATH=/usr/lib32/pkgconfig \
./configure --prefix=/usr \
--libdir=/usr/lib32 \
--host=i686-pc-linux-gnu \
--enable-shared \
--disable-static &&
make
Now, as the root user:
make DESTDIR=$PWD/DESTDIR install && cp -vr DESTDIR/usr/lib32/* /usr/lib32 && rm -rf DESTDIR && ldconfig
Run ./configure --help for a full list of options.
--enable-shared: This
switch enables building of the libatomic_ops shared libraries.
--disable-static: This
switch prevents installation of static versions of the libraries.