mirror of
https://github.com/wolfpld/tracy.git
synced 2024-11-22 14:44:34 +00:00
Fix cpuid symbol redefinition on older GCC versions
Since commit 940f32c1a8
building the Tracy
library on Linux using a GCC version < 11 would result in compile errors
due to symbol redefinitions of __get_cpuid_max, __get_cpuid and
__get_cpuid_count.
This is because prior to GCC 11 the cpuid.h header file did not have any
include guards and thus including this header more than once would
produce the abovementioned errors.
To work around this issue, including cpuid.h has been wrapped into a
custom header file that itself uses include guards and thus shields
cpuid.h from being included multiple times.
Fixes #452
This commit is contained in:
parent
107975c8de
commit
ece8779362
12
public/client/TracyCpuid.hpp
Normal file
12
public/client/TracyCpuid.hpp
Normal file
@ -0,0 +1,12 @@
|
||||
#ifndef __TRACYCPUID_HPP__
|
||||
#define __TRACYCPUID_HPP__
|
||||
|
||||
// Prior to GCC 11 the cpuid.h header did not have any include guards and thus
|
||||
// including it more than once would cause a compiler error due to symbol
|
||||
// redefinitions. In order to support older GCC versions, we have to wrap this
|
||||
// include between custom include guards to prevent this issue.
|
||||
// See also https://github.com/wolfpld/tracy/issues/452
|
||||
|
||||
#include <cpuid.h>
|
||||
|
||||
#endif
|
@ -106,7 +106,7 @@ extern "C" typedef BOOL (WINAPI *t_GetLogicalProcessorInformationEx)( LOGICAL_PR
|
||||
#endif
|
||||
|
||||
#if !defined _WIN32 && ( defined __i386 || defined _M_IX86 || defined __x86_64__ || defined _M_X64 )
|
||||
# include <cpuid.h>
|
||||
# include "TracyCpuid.hpp"
|
||||
#endif
|
||||
|
||||
#if !( ( defined _WIN32 && _WIN32_WINNT >= _WIN32_WINNT_VISTA ) || defined __linux__ )
|
||||
|
@ -609,7 +609,7 @@ void SysTraceGetExternalName( uint64_t thread, const char*& threadName, const ch
|
||||
# include <sys/syscall.h>
|
||||
|
||||
# if defined __i386 || defined __x86_64__
|
||||
# include <cpuid.h>
|
||||
# include "TracyCpuid.hpp"
|
||||
# endif
|
||||
|
||||
# include "TracyProfiler.hpp"
|
||||
|
Loading…
Reference in New Issue
Block a user