fix pointer type mismatch and misplacement of const
authorRich Felker <dalias@aerifal.cx>
Mon, 24 Mar 2014 21:39:08 +0000 (17:39 -0400)
committerRich Felker <dalias@aerifal.cx>
Mon, 24 Mar 2014 21:39:08 +0000 (17:39 -0400)
src/thread/pthread_create.c

index 08c74110faa1d57525abf4a1753fdd09f2bcf696..e0b5ef16b384c43c789fbadbc989577922a5a1d7 100644 (file)
@@ -112,7 +112,7 @@ static int start(void *p)
 /* pthread_key_create.c overrides this */
 static const size_t dummy = 0;
 weak_alias(dummy, __pthread_tsd_size);
-static const void *dummy_tsd[1] = { 0 };
+static void *const dummy_tsd[1] = { 0 };
 weak_alias(dummy_tsd, __pthread_tsd_main);
 
 static FILE *const dummy_file = 0;
@@ -148,7 +148,7 @@ int pthread_create(pthread_t *restrict res, const pthread_attr_t *restrict attrp
                init_file_lock(__stdout_used);
                init_file_lock(__stderr_used);
                __syscall(SYS_rt_sigprocmask, SIG_UNBLOCK, SIGPT_SET, 0, _NSIG/8);
-               self->tsd = __pthread_tsd_main;
+               self->tsd = (void **)__pthread_tsd_main;
                libc.threaded = 1;
        }
        if (attrp) attr = *attrp;