diff --git a/FEXCore/Source/Common/JitSymbols.cpp b/FEXCore/Source/Common/JitSymbols.cpp index 8e9341914..e10a1cec0 100644 --- a/FEXCore/Source/Common/JitSymbols.cpp +++ b/FEXCore/Source/Common/JitSymbols.cpp @@ -15,14 +15,9 @@ JITSymbols::~JITSymbols() { } } -void JITSymbols::InitFile() { +void JITSymbols::InitFile(uint32_t ProcessPID) { // We can't use FILE here since we must be robust against forking processes closing our FD from under us. -#ifdef __ANDROID__ - // Android simpleperf looks in /data/local/tmp instead of /tmp - const auto PerfMap = fextl::fmt::format("/data/local/tmp/perf-{}.map", getpid()); -#else - const auto PerfMap = fextl::fmt::format("/tmp/perf-{}.map", getpid()); -#endif + const auto PerfMap = fextl::fmt::format("/tmp/perf-{}.map", ProcessPID); fd = open(PerfMap.c_str(), O_CREAT | O_TRUNC | O_WRONLY | O_APPEND, 0644); } diff --git a/FEXCore/Source/Common/JitSymbols.h b/FEXCore/Source/Common/JitSymbols.h index e264526e6..69e397c23 100644 --- a/FEXCore/Source/Common/JitSymbols.h +++ b/FEXCore/Source/Common/JitSymbols.h @@ -35,7 +35,7 @@ public: JITSymbols(); ~JITSymbols(); - void InitFile(); + void InitFile(uint32_t ProcessPID); void RegisterNamedRegion(const void* HostAddr, uint32_t CodeSize, std::string_view Name); void RegisterJITSpace(const void* HostAddr, uint32_t CodeSize); diff --git a/FEXCore/Source/Interface/Core/Core.cpp b/FEXCore/Source/Interface/Core/Core.cpp index e7047b8b6..8795e830c 100644 --- a/FEXCore/Source/Interface/Core/Core.cpp +++ b/FEXCore/Source/Interface/Core/Core.cpp @@ -90,7 +90,7 @@ ContextImpl::ContextImpl(const FEXCore::HostFeatures& Features) if (Config.BlockJITNaming() || Config.GlobalJITNaming() || Config.LibraryJITNaming()) { // Only initialize symbols file if enabled. Ensures we don't pollute /tmp with empty files. - Symbols.InitFile(); + Symbols.InitFile(Features.ProcessPID); } uint64_t FrequencyCounter = FEXCore::GetCycleCounterFrequency();