Skip to content

Commit 3497b75

Browse files
committed
Fixed bug #76825 (Undefined symbols ___cpuid_count)
1 parent 7d8e6e6 commit 3497b75

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

Diff for: NEWS

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ PHP NEWS
33
?? ??? ????, PHP 7.3.0RC1
44

55
- Core:
6+
. Fixed bug #76825 (Undefined symbols ___cpuid_count). (Laruence)
67
. Fixed bug #76820 (Z_COPYABLE invalid definition). (mvdwerve, cmb)
78

89
- intl:

Diff for: Zend/Zend.m4

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ sys/time.h \
5858
signal.h \
5959
unix.h \
6060
stdlib.h \
61+
cpuid.h \
6162
dlfcn.h)
6263
6364
AC_TYPE_SIZE_T

Diff for: Zend/zend_cpuinfo.c

+11-1
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,20 @@ typedef struct _zend_cpu_info {
2929
static zend_cpu_info cpuinfo = {0};
3030

3131
#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
32-
#include <cpuid.h>
32+
# ifdef HAVE_CPUID_H
33+
# include <cpuid.h>
3334
static void __zend_cpuid(uint32_t func, uint32_t subfunc, zend_cpu_info *cpuinfo) {
3435
__cpuid_count(func, subfunc, cpuinfo->eax, cpuinfo->ebx, cpuinfo->ecx, cpuinfo->edx);
3536
}
37+
# else
38+
static void __zend_cpuid(uint32_t func, uint32_t subfunc, zend_cpu_info *cpuinfo) {
39+
__asm__ __volatile__ (
40+
"cpuid"
41+
: "=a"(cpuinfo->eax), "=b"(cpuinfo->ebx), "=c"(cpuinfo->ecx), "=d"(cpuinfo->edx)
42+
: "a"(func), "c"(subfunc)
43+
);
44+
}
45+
# endif
3646
#elif defined(ZEND_WIN32) && !defined(__clang__)
3747
# include <intrin.h>
3848
static void __zend_cpuid(uint32_t func, uint32_t subfunc, zend_cpu_info *cpuinfo) {

0 commit comments

Comments
 (0)