Fix atomic-alignment warnings in libspl on FreeBSD/i386

On i386, Clang complains about misaligned atomic operations.  Silence
these warnings to fix the build on FreeBSD/i386.

Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by:	Alan Somers <[email protected]>
Sponsored by:	ConnectWise
Closes #17708
This commit is contained in:
Alan Somers authored and Brian Behlendorf committed 2025-09-17 16:34:19 -07:00
1 parent 15a6b982c5
commit 9c6f72021d
4 files changed
+26

No files matched your search

+1
View File
@@ -34,6 +34,7 @@ AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_ARCH], [
esac
AM_CONDITIONAL([TARGET_CPU_AARCH64], test $TARGET_CPU = aarch64)
AM_CONDITIONAL([TARGET_CPU_I386], test $TARGET_CPU = i386)
AM_CONDITIONAL([TARGET_CPU_X86_64], test $TARGET_CPU = x86_64)
AM_CONDITIONAL([TARGET_CPU_POWERPC], test $TARGET_CPU = powerpc)
AM_CONDITIONAL([TARGET_CPU_SPARC64], test $TARGET_CPU = sparc64)
+21
View File
@@ -209,6 +209,27 @@ AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_CC_NO_CLOBBERED], [
AC_SUBST([NO_CLOBBERED])
])
dnl #
dnl # Check if cc supports -Wno-atomic-alignment option.
dnl #
AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_CC_NO_ATOMIC_ALIGNMENT], [
AC_MSG_CHECKING([whether $CC supports -Wno-atomic-alignment])
saved_flags="$CFLAGS"
CFLAGS="$CFLAGS -Werror -Wno-atomic-alignment"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])], [
NO_ATOMIC_ALIGNMENT=-Wno-atomic-alignment
AC_MSG_RESULT([yes])
], [
NO_ATOMIC_ALIGNMENT=
AC_MSG_RESULT([no])
])
CFLAGS="$saved_flags"
AC_SUBST([NO_ATOMIC_ALIGNMENT])
])
dnl #
dnl # Check if cc supports -Wimplicit-fallthrough option.
dnl #
+1
View File
@@ -252,6 +252,7 @@ AC_DEFUN([ZFS_AC_CONFIG_ALWAYS], [
ZFS_AC_CONFIG_ALWAYS_CC_NO_CLOBBERED
ZFS_AC_CONFIG_ALWAYS_CC_INFINITE_RECURSION
ZFS_AC_CONFIG_ALWAYS_KERNEL_CC_INFINITE_RECURSION
ZFS_AC_CONFIG_ALWAYS_CC_NO_ATOMIC_ALIGNMENT
ZFS_AC_CONFIG_ALWAYS_CC_IMPLICIT_FALLTHROUGH
ZFS_AC_CONFIG_ALWAYS_CC_FRAME_LARGER_THAN
ZFS_AC_CONFIG_ALWAYS_CC_NO_FORMAT_TRUNCATION
+3
View File
@@ -2,6 +2,9 @@ include $(srcdir)/%D%/include/Makefile.am
libspl_assert_la_CFLAGS = $(AM_CFLAGS) $(LIBRARY_CFLAGS) $(LIBUNWIND_CFLAGS)
libspl_la_CFLAGS = $(libspl_assert_la_CFLAGS)
if TARGET_CPU_I386
libspl_la_CFLAGS += $(NO_ATOMIC_ALIGNMENT)
endif
noinst_LTLIBRARIES += libspl_assert.la libspl.la
CPPCHECKTARGETS += libspl_assert.la libspl.la