]> granicus.if.org Git - php/commitdiff
Fix clang compilation
authorAnatol Belski <ab@php.net>
Wed, 1 Aug 2018 14:19:54 +0000 (16:19 +0200)
committerAnatol Belski <ab@php.net>
Wed, 1 Aug 2018 14:19:54 +0000 (16:19 +0200)
By usage of -fmodules, all the intrinsic items are loaded automatically.
The headers included come however from Visual Studio, thus bringing some
conflicting declarations. On the other hand, -fmodules is needed to
mitigate linking issues with clang in VS compatibility mode.

Zend/zend_cpuinfo.c
Zend/zend_portability.h
ext/standard/basic_functions.h
ext/standard/net.c

index 70e1dbf4fa3154f0d2d009ab469d7862e74a8387..39519c4c1660f2338a234d0b799a8ff57da999a3 100644 (file)
@@ -33,7 +33,7 @@ static zend_cpu_info cpuinfo = {0};
 static void __zend_cpuid(uint32_t func, uint32_t subfunc, zend_cpu_info *cpuinfo) {
        __cpuid_count(func, subfunc, cpuinfo->eax, cpuinfo->ebx, cpuinfo->ecx, cpuinfo->edx);
 }
-#elif defined(ZEND_WIN32)
+#elif defined(ZEND_WIN32) && !defined(__clang__)
 # include <intrin.h>
 static void __zend_cpuid(uint32_t func, uint32_t subfunc, zend_cpu_info *cpuinfo) {
        int regs[4];
index 34d5a3d9b328ccd5f453b5537e5365364595744e..296ffe74367f619470451be8a714e26cca1d70b7 100644 (file)
@@ -70,7 +70,7 @@
 # include <alloca.h>
 #endif
 
-#if defined(ZEND_WIN32)
+#if defined(ZEND_WIN32) && !defined(__clang__)
 #include <intrin.h>
 #endif
 
index b8a917920fd46849e5e4ebd8be4758c010f5eabd..c9b03e7a101f090a0996e012cea6da754f6a43d6 100644 (file)
@@ -32,7 +32,7 @@
 
 #include "url_scanner_ex.h"
 
-#if defined(_WIN32) && defined(__clang__)
+#if defined(_WIN32) && !defined(__clang__)
 #include <intrin.h>
 #endif
 
index d1e78dcc7a9f7e45a86b87ecd552ba5fe5992099..23806cabf8216150c79577f6d21f5c773ce29955 100644 (file)
@@ -32,7 +32,9 @@
 #endif
 
 #ifdef PHP_WIN32
+# ifndef __clang__
 # include <intrin.h>
+# endif
 # include <winsock2.h>
 # include <ws2ipdef.h>
 # include <Ws2tcpip.h>