fix linking of page_heap_test on windows

After change to release page heap lock around returning memory back to
kernel, page heap test got dependency on page heap lock. Which was not
available on windows since relevant symbols are not exported.

Proposed fix is to simply duplicate all needed .cc files in
page_heap_test project instead of linking to dll. This is not perfect
but gets job done, until we figure out better solution (GNU/Linux will
eventually get hidden visibility and will need it).

This fixes github issue 1189.
This commit is contained in:
Aliaksey Kandratsenka 2020-07-05 22:49:41 -07:00
parent e5f77d6485
commit e521472f1a
2 changed files with 94 additions and 12 deletions

View File

@ -123,7 +123,6 @@
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<ForceSymbolReferences>__tcmalloc;%(ForceSymbolReferences)</ForceSymbolReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@ -134,7 +133,6 @@
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<ForceSymbolReferences>__tcmalloc;%(ForceSymbolReferences)</ForceSymbolReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Patch|Win32'">
@ -148,7 +146,6 @@
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ForceSymbolReferences>__tcmalloc;%(ForceSymbolReferences)</ForceSymbolReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Override|Win32'">
@ -176,7 +173,6 @@
<SubSystem>Console</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<ForceSymbolReferences>__tcmalloc;%(ForceSymbolReferences)</ForceSymbolReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Override|x64'">
@ -194,7 +190,30 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\src\base\dynamic_annotations.c" />
<ClCompile Include="..\..\src\base\logging.cc" />
<ClCompile Include="..\..\src\base\low_level_alloc.cc" />
<ClCompile Include="..\..\src\base\spinlock.cc" />
<ClCompile Include="..\..\src\base\spinlock_internal.cc" />
<ClCompile Include="..\..\src\base\sysinfo.cc" />
<ClCompile Include="..\..\src\central_freelist.cc" />
<ClCompile Include="..\..\src\common.cc" />
<ClCompile Include="..\..\src\fake_stacktrace_scope.cc" />
<ClCompile Include="..\..\src\internal_logging.cc" />
<ClCompile Include="..\..\src\malloc_extension.cc" />
<ClCompile Include="..\..\src\malloc_hook.cc" />
<ClCompile Include="..\..\src\page_heap.cc" />
<ClCompile Include="..\..\src\raw_printer.cc" />
<ClCompile Include="..\..\src\sampler.cc" />
<ClCompile Include="..\..\src\span.cc" />
<ClCompile Include="..\..\src\stack_trace_table.cc" />
<ClCompile Include="..\..\src\stacktrace.cc" />
<ClCompile Include="..\..\src\static_vars.cc" />
<ClCompile Include="..\..\src\symbolize.cc" />
<ClCompile Include="..\..\src\tests\page_heap_test.cc" />
<ClCompile Include="..\..\src\thread_cache.cc" />
<ClCompile Include="..\..\src\windows\port.cc" />
<ClCompile Include="..\..\src\windows\system-alloc.cc" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\base\logging.h" />
@ -204,13 +223,7 @@
<ClInclude Include="..\..\src\windows\config.h" />
<ClInclude Include="..\..\src\windows\port.h" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\libtcmalloc_minimal\libtcmalloc_minimal.vcxproj">
<Project>{55e2b3ae-3ca1-4db6-97f7-0a044d6f446f}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
</Project>

View File

@ -11,9 +11,78 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\base\dynamic_annotations.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\base\logging.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\base\low_level_alloc.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\base\spinlock.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\base\spinlock_internal.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\base\sysinfo.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\central_freelist.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\common.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\fake_stacktrace_scope.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\internal_logging.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\malloc_extension.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\malloc_hook.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\page_heap.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\raw_printer.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sampler.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\span.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\stack_trace_table.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\stacktrace.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\static_vars.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\symbolize.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\tests\page_heap_test.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\thread_cache.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\windows\port.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\windows\system-alloc.cc">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\page_heap.h">
@ -35,4 +104,4 @@
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>
</Project>