Commit 7665ce68 authored by Jens Gustedt's avatar Jens Gustedt
Browse files

move detection of uchar.h and threads.h to libc instead of compiler

parent d4cb0bdc
......@@ -331,9 +331,7 @@ signed p00_trailing_comma_in_initializer__(void) {
# define p00_has_feature_stdalign_h 1
# if __STDC_VERSION__ > 201100L
# define p00_has_feature_c_max_align_t 1
# define p00_has_feature_uchar_h 0
# define __STDC_NO_ATOMICS__ 1
# define __STDC_NO_THREADS__ 1
# define p00_has_feature_c_generic_selections 0
# endif
# endif
......@@ -342,8 +340,6 @@ signed p00_trailing_comma_in_initializer__(void) {
# define p00_has_feature_stdalign_h 1
# if __STDC_VERSION__ > 201100L
# define p00_has_feature_c_max_align_t 1
# define p00_has_feature_uchar_h 0
# define __STDC_NO_THREADS__ 1
# define p00_has_feature_c_generic_selections 1
# endif
# endif
......@@ -380,9 +376,6 @@ signed p00_trailing_comma_in_initializer__(void) {
but doesn't implement a required feature, you have to define the
corresponding macro to 0 before this point. */
#if __STDC_VERSION__ > 201100L
# ifndef p00_has_feature_uchar_h
# define p00_has_feature_uchar_h 1
# endif
# ifndef p00_has_feature_stdnoreturn_h
# define p00_has_feature_stdnoreturn_h 1
# endif
......@@ -425,8 +418,6 @@ signed p00_trailing_comma_in_initializer__(void) {
# define P99_FIXED_REGISTER(REG)
/* clang has no stdatomic.h, yet */
# define __STDC_NO_ATOMICS__ 1
/* clang has no threads.h, yet */
# define __STDC_NO_THREADS__ 1
#elif P99_COMPILER & P99_COMPILER_CLANG
# if p99_has_attribute(always_inline)
......@@ -434,11 +425,10 @@ signed p00_trailing_comma_in_initializer__(void) {
# endif
/* clang can't nail a variable to a register, yet */
# define P99_FIXED_REGISTER(REG)
# if P99_VERSION_NO < 30200UL
/* clang has no stdatomic.h, yet */
# define __STDC_NO_ATOMICS__ 1
/* clang has no threads.h, yet */
# define __STDC_NO_THREADS__ 1
/* clang has no stdatomic.h, yet. It can't use the one from gcc, since
that (gratuously) uses __auto_type. */
# if P99_VERSION_NO < 100000UL
# define __STDC_NO_ATOMICS__ 1
# endif
# if P99_VERSION_NO > 30200UL
# define p00_has_feature_stdnoreturn_h 1
......
......@@ -88,17 +88,6 @@
# define p00_has_feature_wctype_h 1
# endif
# endif
# if __STDC_VERSION__ > 201100L
# define p00_has_feature_stdalign_h 1
# define p00_has_feature_stdnoreturn_h 1
# define p00_has_feature_uchar_h 1
# ifndef __STDC_NO_ATOMICS__
# define p00_has_feature_stdatomic_h 1
# endif
# ifndef __STDC_NO_THREADS__
# define p00_has_feature_threads_h 1
# endif
# endif
#else
/* This is what a standard conforming C library must provide. */
......@@ -131,19 +120,6 @@
# define p00_has_feature_wchar_h 1
# define p00_has_feature_wctype_h 1
# endif
# if __STDC_VERSION__ > 201100L
# define p00_has_feature_stdalign_h 1
# define p00_has_feature_stdnoreturn_h 1
# ifndef p00_has_feature_uchar_h
# define p00_has_feature_uchar_h 1
# endif
# ifndef __STDC_NO_ATOMICS__
# define p00_has_feature_stdatomic_h 1
# endif
# ifndef __STDC_NO_THREADS__
# define p00_has_feature_threads_h 1
# endif
# endif
#endif
......@@ -195,6 +171,27 @@ typedef size_t rsize_t;
# include <wctype.h>
#endif
/* Look for C11 features that are typically provided by a C library
and not by the compiler itself */
#ifdef __GLIBC__
/* The day glibc implements uchar.h, put the correct version number here */
# define p00_has_feature_uchar_h 0
/* The day glibc implements uchar.h, put the correct version number here */
# define __STDC_NO_THREADS__ 1
#endif
#if __STDC_VERSION__ > 201100L
# define p00_has_feature_stdalign_h 1
# define p00_has_feature_stdnoreturn_h 1
# ifndef __STDC_NO_ATOMICS__
# define p00_has_feature_stdatomic_h 1
# endif
# ifndef __STDC_NO_THREADS__
# define p00_has_feature_threads_h 1
# endif
#endif
/* implement emulation of some C11 features */
#if p99_has_feature(stdalign_h)
# include <stdalign.h>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment