Disable use of weak in threads_posix.h on Cygwin
authorJon Turney <jon.turney@dronecode.org.uk>
Thu, 9 Jun 2016 18:21:35 +0000 (18:21 +0000)
committerJon Turney <jon.turney@dronecode.org.uk>
Fri, 15 Jul 2016 18:46:54 +0000 (19:46 +0100)
Weak doesn't work the same on PE/COFF as on ELF, they are only weak
references.  Specifically, since nothing else pulls in the object which
contains pthread_mutexattr_init() (and coming from the C library, that is
the only thing that object contains), means that it ends up as 0

Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
include/c11/threads_posix.h

index 61b7fabf6378f920e54b4d767ea27f11ca784d04..43e803ee8d18cabbeefad73d132c16ef87f0af78 100644 (file)
@@ -184,7 +184,7 @@ mtx_destroy(mtx_t *mtx)
  * Thus the linker will be happy and things don't clash when building
  * with -O1 or greater.
  */
-#ifdef HAVE_FUNC_ATTRIBUTE_WEAK
+#if defined(HAVE_FUNC_ATTRIBUTE_WEAK) && !defined(__CYGWIN__)
 __attribute__((weak))
 int pthread_mutexattr_init(pthread_mutexattr_t *attr);