* The ISO C23 memalignment function has been added.
+* Initial support for building with clang has been added. It requires
+ at least clang version 18, aarch64-linux-gnu or x86_64-linux-gnu
+ targets, and libgcc compatible runtime (including libgcc_s.so for
+ pthread cancellation and backtrace runtime support).
+
Deprecated and removed features, and other changes affecting compatibility:
* Support for dumped heaps has been removed - malloc_set_state() now always
main (void)
{
-#if !defined __GNUC__ || __GNUC__ < 12 || (__GNUC__ == 12 && __GNUC_MINOR__ < 1)
+#if (!defined __GNUC__ || __GNUC__ < 12 || (__GNUC__ == 12 && __GNUC_MINOR__ < 1)) && (!defined __clang__ || __clang_major__ < 18)
#error insufficient compiler
#endif
;
extern char *strstr (const char *, const char *) __asm ("my_strstr");
char *foo (const char *a, const char *b)
{
- return __builtin_strstr (a, b);
+ return strstr (a, b);
}
EOF
if { ac_try='${CC-cc} -O3 -S conftest.c -o - | grep -F "my_strstr" > /dev/null'
# Require GCC 12.1 to build.
AC_CACHE_CHECK([if $CC is sufficient to build libc], libc_cv_compiler_ok, [
AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[]], [[
-#if !defined __GNUC__ || __GNUC__ < 12 || (__GNUC__ == 12 && __GNUC_MINOR__ < 1)
+#if (!defined __GNUC__ || __GNUC__ < 12 || (__GNUC__ == 12 && __GNUC_MINOR__ < 1)) && (!defined __clang__ || __clang_major__ < 18)
#error insufficient compiler
#endif]])],
[libc_cv_compiler_ok=yes],
extern char *strstr (const char *, const char *) __asm ("my_strstr");
char *foo (const char *a, const char *b)
{
- return __builtin_strstr (a, b);
+ return strstr (a, b);
}
EOF
dnl