git: 4a6bf977ac3e - stable/13 - Fix cross-builds after 4e5d32a445f90d37966cd6de571978551654e3f3

Alex Richardson arichardson at FreeBSD.org
Tue Sep 7 09:57:23 UTC 2021


The branch stable/13 has been updated by arichardson:

URL: https://cgit.FreeBSD.org/src/commit/?id=4a6bf977ac3e309c2213e15e17630b0aabb49949

commit 4a6bf977ac3e309c2213e15e17630b0aabb49949
Author:     Jose Luis Duran <jlduran at users.noreply.github.com>
AuthorDate: 2021-08-30 19:29:17 +0000
Commit:     Alex Richardson <arichardson at FreeBSD.org>
CommitDate: 2021-09-07 09:56:17 +0000

    Fix cross-builds after 4e5d32a445f90d37966cd6de571978551654e3f3
    
    Add alignment macros to cross-build's sys/cdefs.h
    
    Pull Request:   https://github.com/freebsd/freebsd-src/pull/531
    MFC after:      immediately (build fix)
    
    (cherry picked from commit 94d9439b6be6bd5ef9febfaf38128e0cad91476d)
---
 tools/build/cross-build/include/common/sys/cdefs.h | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/tools/build/cross-build/include/common/sys/cdefs.h b/tools/build/cross-build/include/common/sys/cdefs.h
index c129542b6180..6d62333bcffe 100644
--- a/tools/build/cross-build/include/common/sys/cdefs.h
+++ b/tools/build/cross-build/include/common/sys/cdefs.h
@@ -255,3 +255,22 @@
 #define	__BSD_VISIBLE		1
 #define	__ISO_C_VISIBLE		2011
 #define	__EXT1_VISIBLE		1
+
+/* Alignment builtins for better type checking and improved code generation. */
+/* Provide fallback versions for other compilers (GCC/Clang < 10): */
+#if !__has_builtin(__builtin_is_aligned)
+#define __builtin_is_aligned(x, align)	\
+	(((__uintptr_t)x & ((align) - 1)) == 0)
+#endif
+#if !__has_builtin(__builtin_align_up)
+#define __builtin_align_up(x, align)	\
+	((__typeof__(x))(((__uintptr_t)(x)+((align)-1))&(~((align)-1))))
+#endif
+#if !__has_builtin(__builtin_align_down)
+#define __builtin_align_down(x, align)	\
+	((__typeof__(x))((x)&(~((align)-1))))
+#endif
+
+#define __align_up(x, y) __builtin_align_up(x, y)
+#define __align_down(x, y) __builtin_align_down(x, y)
+#define __is_aligned(x, y) __builtin_is_aligned(x, y)


More information about the dev-commits-src-branches mailing list