ebpf-for-windows/Directory.Build.props

83 строки
4.4 KiB
Plaintext
Исходник Обычный вид История

<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) Microsoft Corporation
SPDX-License-Identifier: MIT
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" TreatAsLocalProperty="Platform">
<PropertyGroup Condition="'$(Analysis)'=='True'">
<RunCodeAnalysis>true</RunCodeAnalysis>
<DisableAnalyzeExternal>true</DisableAnalyzeExternal>
<CodeAnalysisRuleSet>$(SolutionDir)Analyze.default.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(AddressSanitizer)'=='True'">
<EnableASAN>true</EnableASAN>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='NativeOnlyDebug' Or '$(Configuration)'=='NativeOnlyRelease'">
<DisableJIT>true</DisableJIT>
<DisableInterpreter>true</DisableInterpreter>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release' Or '$(Configuration)'=='NativeOnlyRelease'">
<FuzzerLibs>libsancov.lib;clang_rt.fuzzer_MD-x86_64.lib</FuzzerLibs>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug' Or '$(Configuration)'=='FuzzerDebug' Or '$(Configuration)'=='NativeOnlyDebug'">
<FuzzerLibs>libsancov.lib;clang_rt.fuzzer_MDd-x86_64.lib</FuzzerLibs>
</PropertyGroup>
Add bpf2c fuzzer and execution context fuzzer to CI/CD (#1164) * Enable bpf2c fuzzer and execution context fuzzer in CI/CD Signed-off-by: Dave Thaler <dthaler@microsoft.com> * Create bpf2c fuzzer corpus Signed-off-by: Dave Thaler <dthaler@microsoft.com> * Make absolute path and strip trailing slash from it. (#1175) Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Alan Jowett <alan.jowett@microsoft.com> * Add libsancov.lib when building fuzzer (#1179) * Add libsancov.lib when building fuzzer Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * upload artifacts as dumps Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Alan Jowett <alan.jowett@microsoft.com> * Bpf2c fuzzer fix build (#1180) * Disable caching of verifier cmake project for now Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix dump upload path Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix dump upload path Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix crash dump upload Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Add Execution Context corpus Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Limit fuzzing to 15 minutes Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix artifact path Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix yaml to corectly upload artifacts Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix yaml to corectly upload artifacts Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix yaml to corectly upload artifacts Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Alan Jowett <alan.jowett@microsoft.com> * Bpf2c fuzzer fix build (#1182) * Disable caching of verifier cmake project for now Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Limit fuzzing memory Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Validate symbols offset Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Alan Jowett <alan.jowett@microsoft.com> * Reject maps that have no associated symbols Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Alan Jowett <alanjo@microsoft.com> Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-06-09 20:24:28 +03:00
<PropertyGroup Condition="'$(Configuration)|$(Fuzzer)'=='Release|True'">
Add libfuzzer based fuzzer. (#1117) * Add libfuzzer based fuzzer. See: https://www.llvm.org/docs/LibFuzzer.html Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix ELF parsing bugs found by fuzzer Signed-off-by: Dave Thaler <dthaler@microsoft.com> * Make verifier fuzzer compile in Debug configuration Signed-off-by: Dave Thaler <dthaler@microsoft.com> * Cleanup fuzzer code Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * PR feedback Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Setup/cleanup state for fuzzing Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix debug build of execution_context_fuzzer Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix verifier Signed-off-by: Dave Thaler <dthaler@microsoft.com> * Pickup latest ebpf-verifier Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Remove corpus from git Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix CR/LF mangling in ELF files Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * PR feedback Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Remove corpus from git Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix build break Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Enable debug fuzzer build Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Update to latest verifier Signed-off-by: Dave Thaler <dthaler@microsoft.com> * Update test based on latest verifier changes Signed-off-by: Dave Thaler <dthaler@microsoft.com> * Fix execution context fuzzer Signed-off-by: Dave Thaler <dthaler@microsoft.com> Co-authored-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Dave Thaler <dthaler@microsoft.com> Co-authored-by: saxena-anurag <43585259+saxena-anurag@users.noreply.github.com>
2022-05-28 02:31:04 +03:00
<EnableASAN>true</EnableASAN>
<AdditionalOptions>/fsanitize-coverage=inline-bool-flag /fsanitize-coverage=edge /fsanitize-coverage=trace-cmp /fsanitize-coverage=trace-div /ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
Add bpf2c fuzzer and execution context fuzzer to CI/CD (#1164) * Enable bpf2c fuzzer and execution context fuzzer in CI/CD Signed-off-by: Dave Thaler <dthaler@microsoft.com> * Create bpf2c fuzzer corpus Signed-off-by: Dave Thaler <dthaler@microsoft.com> * Make absolute path and strip trailing slash from it. (#1175) Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Alan Jowett <alan.jowett@microsoft.com> * Add libsancov.lib when building fuzzer (#1179) * Add libsancov.lib when building fuzzer Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * upload artifacts as dumps Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Alan Jowett <alan.jowett@microsoft.com> * Bpf2c fuzzer fix build (#1180) * Disable caching of verifier cmake project for now Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix dump upload path Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix dump upload path Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix crash dump upload Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Add Execution Context corpus Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Limit fuzzing to 15 minutes Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix artifact path Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix yaml to corectly upload artifacts Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix yaml to corectly upload artifacts Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix yaml to corectly upload artifacts Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Alan Jowett <alan.jowett@microsoft.com> * Bpf2c fuzzer fix build (#1182) * Disable caching of verifier cmake project for now Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Limit fuzzing memory Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Validate symbols offset Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Alan Jowett <alan.jowett@microsoft.com> * Reject maps that have no associated symbols Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Alan Jowett <alanjo@microsoft.com> Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-06-09 20:24:28 +03:00
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Fuzzer)'=='Debug|True' Or '$(Configuration)'=='FuzzerDebug'">
Add bpf2c fuzzer and execution context fuzzer to CI/CD (#1164) * Enable bpf2c fuzzer and execution context fuzzer in CI/CD Signed-off-by: Dave Thaler <dthaler@microsoft.com> * Create bpf2c fuzzer corpus Signed-off-by: Dave Thaler <dthaler@microsoft.com> * Make absolute path and strip trailing slash from it. (#1175) Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Alan Jowett <alan.jowett@microsoft.com> * Add libsancov.lib when building fuzzer (#1179) * Add libsancov.lib when building fuzzer Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * upload artifacts as dumps Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Alan Jowett <alan.jowett@microsoft.com> * Bpf2c fuzzer fix build (#1180) * Disable caching of verifier cmake project for now Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix dump upload path Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix dump upload path Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix crash dump upload Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Add Execution Context corpus Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Limit fuzzing to 15 minutes Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix artifact path Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix yaml to corectly upload artifacts Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix yaml to corectly upload artifacts Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix yaml to corectly upload artifacts Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Alan Jowett <alan.jowett@microsoft.com> * Bpf2c fuzzer fix build (#1182) * Disable caching of verifier cmake project for now Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Limit fuzzing memory Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Validate symbols offset Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Alan Jowett <alan.jowett@microsoft.com> * Reject maps that have no associated symbols Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Alan Jowett <alanjo@microsoft.com> Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
2022-06-09 20:24:28 +03:00
<EnableASAN>true</EnableASAN>
<AdditionalOptions>/fsanitize-coverage=inline-bool-flag /fsanitize-coverage=edge /fsanitize-coverage=trace-cmp /fsanitize-coverage=trace-div /ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
Add libfuzzer based fuzzer. (#1117) * Add libfuzzer based fuzzer. See: https://www.llvm.org/docs/LibFuzzer.html Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix ELF parsing bugs found by fuzzer Signed-off-by: Dave Thaler <dthaler@microsoft.com> * Make verifier fuzzer compile in Debug configuration Signed-off-by: Dave Thaler <dthaler@microsoft.com> * Cleanup fuzzer code Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * PR feedback Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Setup/cleanup state for fuzzing Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix debug build of execution_context_fuzzer Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix verifier Signed-off-by: Dave Thaler <dthaler@microsoft.com> * Pickup latest ebpf-verifier Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Remove corpus from git Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix CR/LF mangling in ELF files Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * PR feedback Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Remove corpus from git Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Fix build break Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Enable debug fuzzer build Signed-off-by: Alan Jowett <alan.jowett@microsoft.com> * Update to latest verifier Signed-off-by: Dave Thaler <dthaler@microsoft.com> * Update test based on latest verifier changes Signed-off-by: Dave Thaler <dthaler@microsoft.com> * Fix execution context fuzzer Signed-off-by: Dave Thaler <dthaler@microsoft.com> Co-authored-by: Alan Jowett <alan.jowett@microsoft.com> Co-authored-by: Dave Thaler <dthaler@microsoft.com> Co-authored-by: saxena-anurag <43585259+saxena-anurag@users.noreply.github.com>
2022-05-28 02:31:04 +03:00
</PropertyGroup>
<PropertyGroup Condition="'$(Fuzzer)'!='True' And '$(Configuration)'!='FuzzerDebug'">
<SpectreMitigation>Spectre</SpectreMitigation>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<WarningLevel>Level4</WarningLevel>
<LanguageStandard>stdcpp20</LanguageStandard>
<TreatWarningAsError>true</TreatWarningAsError>
<SDLCheck>true</SDLCheck>
<SupportJustMyCode>false</SupportJustMyCode>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<IntrinsicFunctions>true</IntrinsicFunctions>
<ControlFlowGuard>Guard</ControlFlowGuard>
<AdditionalOptions>/ZH:SHA_256 /we4062 %(AdditionalOptions)</AdditionalOptions>
<AdditionalIncludeDirectories>$(WindowsSdkDir)Include\10.0.22621.0\km;$(SolutionDir)external\ebpf-verifier\build\packages\boost\lib\native\include</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<CETCompat>true</CETCompat>
<AdditionalLibraryDirectories>$(VC_LibraryPath_VC_x64_Desktop);%(Link.AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
2023-05-10 06:03:09 +03:00
<ItemDefinitionGroup Condition="'$(DisableJIT)'=='True'">
<ClCompile>
<PreprocessorDefinitions>CONFIG_BPF_JIT_DISABLED;%(ClCompile.PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
2023-05-10 06:03:09 +03:00
<ItemDefinitionGroup Condition="'$(DisableInterpreter)'=='True'">
<ClCompile>
<PreprocessorDefinitions>CONFIG_BPF_INTERPRETER_DISABLED;%(ClCompile.PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release' Or '$(Configuration)'=='NativeOnlyRelease'">
<ClCompile>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<WholeProgramOptimization Condition="'$(EnableAsan)' != 'true'">true</WholeProgramOptimization>
</ClCompile>
<Link>
<AdditionalOptions Condition="'$(EnableASAN)' != 'true'">/spgo %(AdditionalOptions)</AdditionalOptions>
<LinkTimeCodeGeneration Condition="'$(EnableAsan)' != 'true'">UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug' Or '$(Configuration)'=='FuzzerDebug' Or '$(Configuration)'=='NativeOnlyDebug'">
<ClCompile>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
</ClCompile>
</ItemDefinitionGroup>
</Project>