… | |
… | |
48 | #include <inttypes.h> |
48 | #include <inttypes.h> |
49 | #endif |
49 | #endif |
50 | |
50 | |
51 | /* many compilers define _GNUC_ to some versions but then only implement |
51 | /* many compilers define _GNUC_ to some versions but then only implement |
52 | * what their idiot authors think are the "more important" extensions, |
52 | * what their idiot authors think are the "more important" extensions, |
53 | * causing enourmous grief in return for some better fake benchmark numbers. |
53 | * causing enormous grief in return for some better fake benchmark numbers. |
54 | * or so. |
54 | * or so. |
55 | * we try to detect these and simply assume they are not gcc - if they have |
55 | * we try to detect these and simply assume they are not gcc - if they have |
56 | * an issue with that they should have done it right in the first place. |
56 | * an issue with that they should have done it right in the first place. |
57 | */ |
57 | */ |
58 | #ifndef ECB_GCC_VERSION |
58 | #ifndef ECB_GCC_VERSION |
… | |
… | |
109 | #ifndef ECB_MEMORY_FENCE |
109 | #ifndef ECB_MEMORY_FENCE |
110 | /* |
110 | /* |
111 | * if you get undefined symbol references to pthread_mutex_lock, |
111 | * if you get undefined symbol references to pthread_mutex_lock, |
112 | * or failure to find pthread.h, then you should implement |
112 | * or failure to find pthread.h, then you should implement |
113 | * the ECB_MEMORY_FENCE operations for your cpu/compiler |
113 | * the ECB_MEMORY_FENCE operations for your cpu/compiler |
114 | * OR proide pthread.h and link against the posix thread library |
114 | * OR provide pthread.h and link against the posix thread library |
115 | * of your system. |
115 | * of your system. |
116 | */ |
116 | */ |
117 | #include <pthread.h> |
117 | #include <pthread.h> |
118 | |
118 | |
119 | static pthread_mutex_t ecb_mf_lock = PTHREAD_MUTEX_INITIALIZER; |
119 | static pthread_mutex_t ecb_mf_lock = PTHREAD_MUTEX_INITIALIZER; |