m1n1/sysinc/assert.h
Hector Martin efa4452a47 Fix libc header dependencies
Turns out we had a bunch of silly dependencies on libc headers that are
not included with freestanding compilers. Fix all this and change the
CFLAGS to exclude libc headers and only include the built-in compiler
path.

Add our own versions of assert.h, errno.h, limits.h, and move malloc.h
and string.h together into a new path used as -isystem, so these headers
can be included using #include <>.

Remove a bunch of other dependencies in third-party code.

Add a strnlen function.

Disable building the libfdt overlay code for now, as it needs a strtoul
implementation. We can throw that in if/when we decide to use overlays.

Signed-off-by: Hector Martin <marcan@marcan.st>
2021-03-08 01:31:14 +09:00

15 lines
447 B
C

/* SPDX-License-Identifier: MIT */
#ifndef ASSERT_H
#define ASSERT_H
void __assert_fail(const char *assertion, const char *file, unsigned int line,
const char *function);
#define assert(expression) \
((expression) ? (void)0 : __assert_fail(#expression, __FILE__, __LINE__, __func__))
/* Requires C11 */
#define static_assert _Static_assert
#endif