fix #ifdef inside a macro argument list in __init_tls.c
authorSzabolcs Nagy <nsz@port70.net>
Wed, 13 Aug 2014 15:07:44 +0000 (17:07 +0200)
committerSzabolcs Nagy <nsz@port70.net>
Wed, 13 Aug 2014 15:07:44 +0000 (17:07 +0200)
C99 6.10.3p11 disallows such constructs
so use an #ifdef outside of the argument list of __syscall

src/env/__init_tls.c

index 6cca968505ddc19ae4140126882a48ca76c7f7c2..ddc2a7368306918a0e8ac753e288f523a9ebaf0d 100644 (file)
@@ -91,12 +91,11 @@ void __init_tls(size_t *aux)
        libc.tls_size = 2*sizeof(void *)+T.size+T.align+sizeof(struct pthread);
 
        if (libc.tls_size > sizeof builtin_tls) {
+#ifndef SYS_mmap2
+#define SYS_mmap2 SYS_mmap
+#endif
                mem = (void *)__syscall(
-#ifdef SYS_mmap2
                        SYS_mmap2,
-#else
-                       SYS_mmap,
-#endif
                        0, libc.tls_size, PROT_READ|PROT_WRITE,
                        MAP_ANONYMOUS|MAP_PRIVATE, -1, 0);
                /* -4095...-1 cast to void * will crash on dereference anyway,