From 4b11dc566a5bbfa1378d6266525c281b028abcc8 Mon Sep 17 00:00:00 2001 From: Jiyoung Yun Date: Fri, 10 Feb 2017 20:35:12 +0900 Subject: Imported Upstream version 1.0.0.9910 --- .gitattributes | 8 + BuildToolsVersion.txt | 2 +- CMakeLists.txt | 24 +- Documentation/botr/clr-abi.md | 16 +- Documentation/building/android.md | 102 + Documentation/building/cross-building.md | 25 +- Documentation/building/testing-with-corefx.md | 25 +- Documentation/building/unix-test-instructions.md | 3 +- Documentation/design-docs/finally-optimizations.md | 487 + .../design-docs/tailcalls-with-helpers.md | 460 + .../project-docs/contributing-workflow.md | 2 +- Documentation/project-docs/glossary.md | 7 + Documentation/workflow/IssuesFeedbackEngagement.md | 12 +- Documentation/workflow/OfficalAndDailyBuilds.md | 2 +- DotnetCLIVersion.txt | 2 +- binclash.log | 0 build-test.cmd | 88 +- build.cmd | 12 +- build.sh | 88 +- clr.coreclr.props | 18 - clr.defines.targets | 70 - clr.desktop.props | 104 - clr.props | 19 +- clrdefinitions.cmake | 11 +- config.json | 27 +- cross/arm-softfp/sources.list.jessie | 3 - cross/arm-softfp/toolchain.cmake | 46 - cross/arm-softfp/tryrun.cmake | 123 - cross/armel/sources.list.jessie | 3 + cross/armel/tizen-build-rootfs.sh | 44 + cross/armel/tizen-fetch.sh | 174 + cross/armel/tizen/tizen.patch | 33 + cross/armel/toolchain.cmake | 59 + cross/armel/tryrun.cmake | 123 + cross/build-android-rootfs.sh | 145 + cross/build-rootfs.sh | 76 +- crosscomponents.cmake | 21 +- dependencies.props | 8 +- dir.props | 9 +- dirs.proj | 25 - functions.cmake | 4 +- init-tools.cmd | 2 +- init-tools.log | 539 - init-tools.sh | 9 +- netci.groovy | 1426 +- perf.groovy | 15 +- .../Microsoft.NETCore.ILAsm.builds | 8 + .../Microsoft.NETCore.ILAsm.pkgproj | 8 +- .../debian/Microsoft.NETCore.ILAsm.pkgproj | 6 +- .../tizen/4.0.0/Microsoft.NETCore.ILAsm.pkgproj | 29 + .../Microsoft.NETCore.ILDAsm.builds | 8 + .../Microsoft.NETCore.ILDAsm.pkgproj | 8 +- .../debian/Microsoft.NETCore.ILDAsm.pkgproj | 6 +- .../tizen/4.0.0/Microsoft.NETCore.ILDAsm.pkgproj | 29 + .../Microsoft.NETCore.Jit.builds | 8 + .../Microsoft.NETCore.Jit.pkgproj | 8 +- .../debian/Microsoft.NETCore.Jit.pkgproj | 6 +- .../tizen/4.0.0/Microsoft.NETCore.Jit.pkgproj | 29 + .../Microsoft.NETCore.Native.builds | 65 + .../Microsoft.NETCore.Native.pkgproj | 50 + .../alpine/3.4.3/Microsoft.NETCore.Native.pkgproj | 30 + .../debian/Microsoft.NETCore.Native.pkgproj | 30 + .../fedora/23/Microsoft.NETCore.Native.pkgproj | 30 + .../fedora/24/Microsoft.NETCore.Native.pkgproj | 30 + .../linux/Microsoft.NETCore.Native.pkgproj | 30 + .../opensuse/13.2/Microsoft.NETCore.Native.pkgproj | 30 + .../opensuse/42.1/Microsoft.NETCore.Native.pkgproj | 30 + .../osx/Microsoft.NETCore.Native.pkgproj | 30 + .../rhel/Microsoft.NETCore.Native.pkgproj | 30 + .../ubuntu/14.04/Microsoft.NETCore.Native.pkgproj | 30 + .../ubuntu/16.04/Microsoft.NETCore.Native.pkgproj | 30 + .../ubuntu/16.10/Microsoft.NETCore.Native.pkgproj | 30 + .../Microsoft.NETCore.Runtime.CoreCLR.builds | 8 + .../Microsoft.NETCore.Runtime.CoreCLR.pkgproj | 8 +- .../Microsoft.NETCore.Runtime.CoreCLR.pkgproj | 10 +- .../Microsoft.NETCore.Runtime.CoreCLR.pkgproj | 57 + .../Microsoft.NETCore.TestHost.builds | 8 + .../Microsoft.NETCore.TestHost.pkgproj | 8 +- .../debian/Microsoft.NETCore.TestHost.pkgproj | 6 +- .../tizen/4.0.0/Microsoft.NETCore.TestHost.pkgproj | 29 + src/.nuget/descriptions.json | 9 +- src/.nuget/packages.builds | 1 + src/ToolBox/PdbTypeMatch/PdbTypeMatch.nativeproj | 59 - src/ToolBox/SOS/Strike/SOS.nativeproj | 7 - src/ToolBox/SOS/Strike/SOS.sln | 76 - src/ToolBox/SOS/Strike/SOS.vcproj | 303 - src/ToolBox/SOS/Strike/dirs.proj | 20 - src/ToolBox/SOS/Strike/disasmARM.cpp | 1 + src/ToolBox/SOS/Strike/eeheap.cpp | 4 +- src/ToolBox/SOS/Strike/exts.cpp | 15 +- src/ToolBox/SOS/Strike/inc/dbgeng.h | 18 +- src/ToolBox/SOS/Strike/sos.targets | 166 - src/ToolBox/SOS/Strike/strike.h | 4 - src/ToolBox/SOS/Strike/xplat/dbgeng.h | 2 +- src/ToolBox/SOS/diasdk/diasdk.nativeproj | 43 - src/ToolBox/SOS/dirs.proj | 32 - src/ToolBox/SOS/lldbplugin/CMakeLists.txt | 44 +- src/ToolBox/SOS/lldbplugin/inc/lldbservices.h | 1 + src/ToolBox/SOS/lldbplugin/services.cpp | 10 + src/ToolBox/dirs.proj | 102 - src/binder/binder.targets | 50 - src/binder/dirs.proj | 20 - src/binder/v3binder/v3binder.nativeproj | 15 - .../v3binder_crossgen/v3binder_crossgen.nativeproj | 15 - src/classlibnative/Dirs.proj | 29 - src/classlibnative/bcltype/BCLType.nativeproj | 47 - src/classlibnative/bcltype/CMakeLists.txt | 1 - src/classlibnative/bcltype/arraynative.cpp | 12 +- src/classlibnative/bcltype/console.cpp | 152 - src/classlibnative/bcltype/console.h | 45 - src/classlibnative/bcltype/number.cpp | 459 +- src/classlibnative/bcltype/number.h | 14 - src/classlibnative/float/Float.nativeproj | 36 - src/classlibnative/nls/NLS.nativeproj | 37 - src/coreclr/dirs.proj | 25 - .../hosts/coreconsole/CoreConsole.nativeproj | 32 - src/coreclr/hosts/corerun/coreRun.nativeproj | 45 - src/coreclr/hosts/dirs.proj | 19 - src/coreclr/hosts/unixcoreconsole/CMakeLists.txt | 9 +- src/coreclr/hosts/unixcorerun/CMakeLists.txt | 10 +- .../hosts/unixcoreruncommon/coreruncommon.cpp | 8 +- .../System.Globalization.Native/CMakeLists.txt | 16 + src/corefx/format-code.sh | 8 +- src/debug/daccess/daccess.targets | 73 - src/debug/daccess/dacdbiimplstackwalk.cpp | 16 +- src/debug/daccess/dacfn.cpp | 2 +- src/debug/daccess/datatargetadapter.cpp | 6 +- src/debug/daccess/dirs.proj | 19 - src/debug/daccess/enummem.cpp | 4 +- src/debug/dbgutil/dbgutil.props | 14 - src/debug/dbgutil/dirs.proj | 16 - src/debug/di/DI.props | 86 - src/debug/di/dbi.sln | 20 - src/debug/di/dbi.vcxproj | 143 - src/debug/di/dirs.proj | 18 - src/debug/di/rspriv.h | 4 +- src/debug/di/rsthread.cpp | 4 +- src/debug/dirs.proj | 23 - src/debug/ee/DIRS.proj | 20 - src/debug/ee/DebuggerEE.vcproj | 107 - src/debug/ee/EE.props | 60 - src/debug/ee/amd64/amd64walker.cpp | 5 +- src/debug/ee/arm64/dbghelpers.S | 25 + src/debug/ee/dac/dirs.proj | 19 - src/debug/ee/debugger.cpp | 13 +- src/debug/ee/debugger.inl | 16 +- src/debug/ee/i386/x86walker.cpp | 16 +- src/debug/ee/wks/CMakeLists.txt | 2 +- src/debug/ee/wks/wks.nativeproj | 43 - src/debug/ildbsymlib/dirs.proj | 19 - src/debug/ildbsymlib/ildbsymlib.props | 29 - src/debug/ildbsymlib/ildbsymlib.vcproj | 213 - src/debug/inc/dbgipcevents.h | 4 +- src/debug/inc/dbgtargetcontext.h | 18 +- src/debug/shared/i386/primitives.cpp | 14 +- src/debug/shim/debugshim.props | 19 - src/debug/shim/dirs.proj | 16 - src/dirs.proj | 96 - src/dlls/clretwrc/clretwrc.nativeproj | 27 - src/dlls/dbgshim/dbgshim.cpp | 63 +- src/dlls/dbgshim/dbgshim.targets | 94 - src/dlls/dbgshim/dirs.proj | 19 - src/dlls/dirs.proj | 50 - src/dlls/mscordac/dirs.proj | 21 - src/dlls/mscordac/mscordac.targets | 142 - src/dlls/mscordac/mscordac.vrg | 10 - src/dlls/mscordac/mscordac_unixexports.src | 4 +- src/dlls/mscordbi/DIRS.proj | 23 - src/dlls/mscordbi/mscordbi.settings.targets | 144 - src/dlls/mscordbi/mscordbi.vrg | 78 - src/dlls/mscordbi/mscordbiv.vrg | 4 - src/dlls/mscoree/CMakeLists.txt | 1 - src/dlls/mscoree/coreclr/CMakeLists.txt | 6 + src/dlls/mscoree/coreclr/coreclr.nativeproj | 59 - src/dlls/mscoree/delayload.cpp | 455 - src/dlls/mscoree/dirs.proj | 24 - src/dlls/mscoree/dw20.msi | Bin 599552 -> 0 bytes src/dlls/mscoree/dw20_amd64.msi | Bin 1956352 -> 0 bytes src/dlls/mscoree/mscoree.cpp | 413 +- src/dlls/mscoree/mscoree.settings.targets | 268 - src/dlls/mscoree/mscoree.targets | 198 - src/dlls/mscoree/mscoree.vrg | 177 - src/dlls/mscoree/mscoree20_shared_neutral.vrg | 286 - src/dlls/mscoree/mscoreeBBT.bat | 83 - src/dlls/mscoree/mscoreeDoNotEverRemove.vrg | 4 - src/dlls/mscoree/mscoreeVersioned.vrg | 22 - src/dlls/mscoree/shim.reg | 9 - src/dlls/mscoree/type_exclusion_list.txt | 142 - src/dlls/mscorpe/CMakeLists.txt | 4 - src/dlls/mscorpe/Native.rc | 8 - src/dlls/mscorpe/ceefilegenwritertokens.cpp | 3 - src/dlls/mscorpe/dirs.proj | 15 - src/dlls/mscorpe/mscorpe/mscorpe.def | 11 - src/dlls/mscorpe/mscorpe/mscorpe.nativeproj | 46 - src/dlls/mscorpe/mscorpe/wrapper.cpp | 149 - src/dlls/mscorpe/mscorpehost/mscorpehost.def | 12 - .../mscorpe/mscorpehost/mscorpehost.nativeproj | 68 - src/dlls/mscorpe/utilcodeinit.cpp | 11 - src/dlls/mscorrc/dirs.proj | 18 - src/dlls/mscorrc/full/mscorrc.nativeproj | 25 - src/dlls/mscorrc/mscorrc.rc | 3 + src/dlls/mscorrc/mscorrc.rc2 | 52 - src/dlls/mscorrc/resource.h | 3 +- src/dlls/mscorrc/small/mscorrc.nativeproj | 22 - src/gc/CMakeLists.txt | 10 +- src/gc/env/gcenv.base.h | 21 +- src/gc/env/gcenv.ee.h | 2 + src/gc/gc.cpp | 168 +- src/gc/gc.h | 8 +- src/gc/gccommon.cpp | 3 +- src/gc/gcenv.ee.standalone.inl | 88 +- src/gc/gcenv.unix.cpp | 308 - src/gc/gcenv.windows.cpp | 625 - src/gc/gcimpl.h | 1 - src/gc/gcinterface.ee.h | 5 + src/gc/gcinterface.h | 23 +- src/gc/gcpriv.h | 4 +- src/gc/gcsvr.cpp | 1 + src/gc/gcwks.cpp | 1 + src/gc/sample/CMakeLists.txt | 2 +- src/gc/sample/GCSample.cpp | 13 +- src/gc/sample/GCSample.vcxproj | 2 +- src/gc/sample/gcenv.ee.cpp | 9 +- src/gc/softwarewritewatch.cpp | 11 +- src/gc/softwarewritewatch.h | 40 +- src/gc/unix/CMakeLists.txt | 10 + src/gc/unix/config.h.in | 14 + src/gc/unix/configure.cmake | 40 + src/gc/unix/gcenv.unix.cpp | 627 + src/gc/windows/gcenv.windows.cpp | 625 + src/gcdump/gcdump.settings.targets | 24 - src/gcinfo/DIRS.proj | 19 - src/gcinfo/crossgen/gcinfo_crossgen.nativeproj | 9 - src/gcinfo/gcinfo.settings.targets | 21 - src/gcinfo/lib/GCInfo.nativeproj | 15 - src/ilasm/MscorpeSxS.cpp | 23 - src/ilasm/MscorpeSxS.h | 20 - src/ilasm/assem.cpp | 22 +- src/ilasm/assembler.h | 2 +- src/ildasm/Litening.ico | Bin 766 -> 0 bytes src/ildasm/class.bmp | Bin 3126 -> 0 bytes src/ildasm/classa.bmp | Bin 1318 -> 0 bytes src/ildasm/classag.bmp | Bin 1318 -> 0 bytes src/ildasm/classe.bmp | Bin 1318 -> 0 bytes src/ildasm/classeg.bmp | Bin 1318 -> 0 bytes src/ildasm/classi.bmp | Bin 1318 -> 0 bytes src/ildasm/classig.bmp | Bin 1318 -> 0 bytes src/ildasm/classv.bmp | Bin 1318 -> 0 bytes src/ildasm/classvg.bmp | Bin 1318 -> 0 bytes src/ildasm/dasm.cpp | 227 +- src/ildasm/dasm.rc | 245 - src/ildasm/dasm_pr.cpp | 275 - src/ildasm/dasmgui.h | 15 - src/ildasm/dasmhlp.hhc | 32 - src/ildasm/dirs.proj | 15 - src/ildasm/dis.cpp | 35 +- src/ildasm/dis.h | 8 +- src/ildasm/dman.cpp | 22 +- src/ildasm/dres.cpp | 1 - src/ildasm/event.bmp | Bin 1318 -> 0 bytes src/ildasm/exe/CMakeLists.txt | 4 +- src/ildasm/exe/ildasm.nativeproj | 72 - src/ildasm/field.bmp | Bin 1318 -> 0 bytes src/ildasm/gui.cpp | 4013 --- src/ildasm/gui.h | 155 - src/ildasm/html/clicking.htm | 35 - src/ildasm/html/keyboard.htm | 166 - src/ildasm/html/menu_options.htm | 324 - src/ildasm/html/tree_view_icons.htm | 102 - src/ildasm/html/tree_view_icons_files/class.gif | Bin 960 -> 0 bytes src/ildasm/html/tree_view_icons_files/enum.gif | Bin 987 -> 0 bytes src/ildasm/html/tree_view_icons_files/event.gif | Bin 963 -> 0 bytes src/ildasm/html/tree_view_icons_files/field.gif | Bin 965 -> 0 bytes .../html/tree_view_icons_files/interface.gif | Bin 981 -> 0 bytes .../tree_view_icons_files/manifest_classinfo.GIF | Bin 843 -> 0 bytes .../tree_view_icons_files/manifest_classinfo.jpg | Bin 723 -> 0 bytes .../tree_view_icons_files/manifest_classinfo.png | Bin 926 -> 0 bytes src/ildasm/html/tree_view_icons_files/method.gif | Bin 963 -> 0 bytes .../html/tree_view_icons_files/namespace.gif | Bin 969 -> 0 bytes src/ildasm/html/tree_view_icons_files/property.gif | Bin 961 -> 0 bytes .../html/tree_view_icons_files/static_field.gif | Bin 978 -> 0 bytes .../html/tree_view_icons_files/static_method.gif | Bin 977 -> 0 bytes .../html/tree_view_icons_files/value_class.gif | Bin 960 -> 0 bytes src/ildasm/ildasm.chm | Bin 18371 -> 0 bytes src/ildasm/ildasm.hhp | 36 - src/ildasm/map.h | 8 - src/ildasm/method.bmp | Bin 1318 -> 0 bytes src/ildasm/methodg.bmp | Bin 1318 -> 0 bytes src/ildasm/namespace.bmp | Bin 1318 -> 0 bytes src/ildasm/prop.bmp | Bin 1318 -> 0 bytes src/ildasm/rcdll/CMakeLists.txt | 2 +- src/ildasm/rcdll/ildasmrc.nativeproj | 19 - src/ildasm/redarrow.bmp | Bin 1318 -> 0 bytes src/ildasm/resource.h | 57 - src/ildasm/staticfield.bmp | Bin 1318 -> 0 bytes src/ildasm/staticmethod.bmp | Bin 1318 -> 0 bytes src/ildasm/staticmethodg.bmp | Bin 1318 -> 0 bytes src/ildasm/windasm.cpp | 133 +- src/inc/1031/CORPerfMonSymbols.ini | 576 - src/inc/1031/_DataPerfCounters.ini | Bin 4664 -> 0 bytes src/inc/1031/_NetworkingPerfCounters.ini | Bin 5246 -> 0 bytes src/inc/1031/aspnet_perf.ini | 415 - src/inc/1031/aspnet_perf2.ini | 416 - src/inc/1041/CORPerfMonSymbols.ini | 577 - src/inc/1041/_DataPerfCounters.ini | Bin 4364 -> 0 bytes src/inc/1041/_NetworkingPerfCounters.ini | Bin 4204 -> 0 bytes src/inc/1041/aspnet_perf.ini | 414 - src/inc/1041/aspnet_perf2.ini | 411 - src/inc/bitposition.h | 4 +- src/inc/ceegen.h | 3 - src/inc/clrconfigvalues.h | 8 +- src/inc/clrnt.h | 44 + src/inc/corcompile.h | 21 +- src/inc/corguids.nativeproj | 438 - src/inc/corguids.targets | 53 - src/inc/corinfo.h | 2 + src/inc/crosscomp.h | 4 +- src/inc/daccess.h | 2 +- src/inc/eetwain.h | 74 +- src/inc/gcinfodecoder.h | 2 + src/inc/iceefilegen.h | 17 +- src/inc/mscorpesxswrapper.h | 125 - src/inc/palclr.h | 2 + src/inc/readytorun.h | 2 +- src/inc/regdisp.h | 409 +- src/inc/sortversioning.h | 33 +- src/inc/stackframe.h | 7 +- src/inc/switches.h | 2 +- src/inc/win64unwind.h | 9 + src/ipcman/dirs.proj | 19 - src/ipcman/ipcman-staticcrt/dirs.proj | 17 - src/ipcman/ipcman-staticcrt/ipcman-staticcrt.props | 11 - src/ipcman/ipcmanager.props | 28 - src/jit/CMakeLists.txt | 9 +- src/jit/DIRS.proj | 4 +- src/jit/block.cpp | 20 +- src/jit/block.h | 161 +- src/jit/codegen.h | 2 + src/jit/codegenarm.cpp | 1185 +- src/jit/codegenarm64.cpp | 27 +- src/jit/codegencommon.cpp | 151 +- src/jit/codegenlegacy.cpp | 215 +- src/jit/codegenlinear.cpp | 32 +- src/jit/codegenlinear.h | 5 +- src/jit/codegenxarch.cpp | 483 +- src/jit/compiler.cpp | 83 +- src/jit/compiler.h | 322 +- src/jit/compiler.hpp | 68 +- src/jit/compmemkind.h | 2 +- src/jit/compphases.h | 6 +- src/jit/decomposelongs.cpp | 165 + src/jit/decomposelongs.h | 2 + src/jit/ee_il_dll.cpp | 3 + src/jit/emit.cpp | 2 - src/jit/emit.h | 21 +- src/jit/emitarm.cpp | 57 +- src/jit/emitarm64.cpp | 1 - src/jit/emitxarch.cpp | 79 +- src/jit/emitxarch.h | 40 +- src/jit/flowgraph.cpp | 1797 +- src/jit/gcencode.cpp | 11 +- src/jit/gcinfo.cpp | 6 + src/jit/gentree.cpp | 315 +- src/jit/gentree.h | 188 +- src/jit/gschecks.cpp | 3 +- src/jit/gtlist.h | 13 +- src/jit/importer.cpp | 233 +- src/jit/inline.def | 2 +- src/jit/instr.cpp | 12 + src/jit/instrsxarch.h | 3 + src/jit/jit.h | 12 - src/jit/jit.settings.targets | 5 + src/jit/jitconfigvalues.h | 25 +- src/jit/jiteh.cpp | 7 +- src/jit/jiteh.h | 4 +- src/jit/lclvars.cpp | 136 +- src/jit/lir.cpp | 10 +- src/jit/liveness.cpp | 699 +- src/jit/lower.cpp | 724 +- src/jit/lower.h | 23 +- src/jit/lowerarm.cpp | 148 +- src/jit/lowerarm64.cpp | 1752 +- src/jit/lowerxarch.cpp | 4237 +-- src/jit/lsra.cpp | 34 +- src/jit/lsraarm.cpp | 1073 + src/jit/lsraarm64.cpp | 1766 + src/jit/lsraxarch.cpp | 3684 ++ src/jit/morph.cpp | 567 +- src/jit/optcse.cpp | 20 + src/jit/optimizer.cpp | 134 +- src/jit/rationalize.cpp | 16 +- src/jit/regalloc.cpp | 4 +- src/jit/registerfp.cpp | 6 +- src/jit/simd.cpp | 257 +- src/jit/simdcodegenxarch.cpp | 161 +- src/jit/simdintrinsiclist.h | 5 +- src/jit/sm.cpp | 5 - src/jit/sm.h | 3 - src/jit/ssabuilder.cpp | 410 +- src/jit/ssabuilder.h | 4 +- src/jit/ssarenamestate.cpp | 16 +- src/jit/ssarenamestate.h | 94 +- src/jit/stackfp.cpp | 10 +- src/jit/target.h | 20 + src/jit/unwind.cpp | 32 +- src/jit/unwindx86.cpp | 249 + src/jit/valuenum.cpp | 804 +- src/jit/valuenum.h | 4 +- src/jit/valuenumfuncs.h | 10 +- src/jit/valuenumtype.h | 4 +- src/md/MD.props | 158 - src/md/ceefilegen/ceefgen.nativeproj | 42 - src/md/compiler/Compiler.settings.targets | 68 - .../crossgen/MDCompiler_crossgen.nativeproj | 15 - src/md/compiler/dac/dirs.proj | 19 - src/md/compiler/dbi/MDCompiler-dbi.props | 9 - src/md/compiler/dbi/dirs.proj | 19 - src/md/compiler/dirs.proj | 27 - src/md/compiler/regmeta.cpp | 5 +- src/md/compiler/wks/MDCompiler_wks.nativeproj | 19 - src/md/datasource/DataSource.settings.targets | 42 - src/md/datasource/dbi/DataSource-dbi.props | 9 - src/md/datasource/dbi/dirs.proj | 19 - src/md/datasource/dirs.proj | 19 - src/md/dirs.proj | 25 - .../enc/crossgen/MDRuntimeRW_crossgen.nativeproj | 15 - src/md/enc/dac/dirs.proj | 19 - src/md/enc/dbi/MDRuntimeRW-dbi.props | 10 - src/md/enc/dbi/dirs.proj | 19 - src/md/enc/dirs.proj | 23 - src/md/enc/enc.settings.targets | 45 - src/md/enc/wks/MDRuntimeRW.nativeproj | 19 - src/md/hotdata/HotData.settings.targets | 28 - .../hotdata/crossgen/MDHotData_crossgen.nativeproj | 18 - src/md/hotdata/dac/dirs.proj | 19 - src/md/hotdata/dirs.proj | 21 - .../full-staticcrt/MDHotData-staticcrt.props | 11 - src/md/hotdata/full-staticcrt/dirs.proj | 19 - src/md/hotdata/full/MDHotData.nativeproj | 19 - src/md/runtime/Runtime.settings.targets | 43 - .../runtime/crossgen/MDRuntime_crossgen.nativeproj | 15 - src/md/runtime/dac/dirs.proj | 19 - src/md/runtime/dbi/MDRuntime-dbi.props | 10 - src/md/runtime/dbi/dirs.proj | 19 - src/md/runtime/dirs.proj | 22 - src/md/runtime/wks/MDRuntime.nativeproj | 19 - src/md/winmd/WinMD.settings.targets | 49 - src/md/winmd/crossgen/MDWinMD_crossgen.nativeproj | 14 - src/md/winmd/dac/dirs.proj | 19 - src/md/winmd/dbi/MDWinMD-dbi.props | 9 - src/md/winmd/dbi/MDWinMD_dbi.nativeproj | 17 - src/md/winmd/dbi/dirs.proj | 19 - src/md/winmd/dirs.proj | 21 - src/md/winmd/wks/MDWinMD_wks.nativeproj | 19 - src/mscorlib/Common/PinnableBufferCache.cs | 25 - src/mscorlib/Common/Preprocessed/AssemblyRefs.g.cs | 1049 - src/mscorlib/System.Private.CoreLib.csproj | 1107 +- src/mscorlib/System.Private.CoreLib.sln | 5 - src/mscorlib/Tools/BclRewriter/BclRewriter.targets | 35 - src/mscorlib/Tools/PostProcessingTools.targets | 28 - .../corefx/Interop/Unix/Interop.Libraries.cs | 6 - .../System.Globalization.Native/Interop.Casing.cs | 3 - .../Interop.Collation.cs | 13 - .../corefx/Interop/Windows/Interop.Errors.cs | 71 + .../corefx/Interop/Windows/Interop.Libraries.cs | 67 - .../Interop/Windows/NtDll/Interop.ZeroMemory.cs | 2 - .../Interop/Windows/kernel32/Interop.CancelIoEx.cs | 16 + .../Windows/kernel32/Interop.CloseHandle.cs | 16 + .../Interop/Windows/kernel32/Interop.CreateFile.cs | 40 + .../Windows/kernel32/Interop.FileOperations.cs | 12 + .../Interop/Windows/kernel32/Interop.FileTypes.cs | 16 + .../Windows/kernel32/Interop.FlushFileBuffers.cs | 17 + .../Windows/kernel32/Interop.FormatMessage.cs | 112 + .../Interop.GetFileInformationByHandleEx.cs | 26 + .../kernel32/Interop.GetFileType_SafeHandle.cs | 15 + .../Windows/kernel32/Interop.GetFullPathNameW.cs | 18 + .../Windows/kernel32/Interop.GetLongPathNameW.cs | 18 + .../Windows/kernel32/Interop.GetTempFileNameW.cs | 16 + .../Windows/kernel32/Interop.GetTempPathW.cs | 16 + .../Interop/Windows/kernel32/Interop.LockFile.cs | 20 + .../kernel32/Interop.ReadFile_SafeHandle_IntPtr.cs | 21 + ...Interop.ReadFile_SafeHandle_NativeOverlapped.cs | 22 + .../kernel32/Interop.SECURITY_ATTRIBUTES.cs | 21 + .../Windows/kernel32/Interop.SafeCreateFile.cs | 45 + .../Windows/kernel32/Interop.SecurityOptions.cs | 18 + .../Windows/kernel32/Interop.SetEndOfFile.cs | 15 + .../Windows/kernel32/Interop.SetErrorMode.cs | 14 + .../kernel32/Interop.SetFileInformationByHandle.cs | 39 + .../Windows/kernel32/Interop.SetFilePointerEx.cs | 15 + .../Windows/kernel32/Interop.UnsafeCreateFile.cs | 25 + .../kernel32/Interop.WideCharToMultiByte.cs | 22 + .../Interop.WriteFile_SafeHandle_IntPtr.cs | 24 + ...nterop.WriteFile_SafeHandle_NativeOverlapped.cs | 22 + .../Interop/Windows/mincore/Interop.CancelIoEx.cs | 16 - .../Interop/Windows/mincore/Interop.CloseHandle.cs | 16 - .../Interop/Windows/mincore/Interop.CreateFile.cs | 40 - .../Interop/Windows/mincore/Interop.Errors.cs | 74 - .../Windows/mincore/Interop.FileOperations.cs | 35 - .../Interop/Windows/mincore/Interop.FileTypes.cs | 16 - .../Windows/mincore/Interop.FlushFileBuffers.cs | 17 - .../Windows/mincore/Interop.FormatMessage.cs | 112 - .../Interop.GetFileInformationByHandleEx.cs | 26 - .../mincore/Interop.GetFileType_SafeHandle.cs | 15 - .../Windows/mincore/Interop.GetFullPathNameW.cs | 18 - .../Windows/mincore/Interop.GetLongPathNameW.cs | 18 - .../Windows/mincore/Interop.GetTempFileNameW.cs | 16 - .../Windows/mincore/Interop.GetTempPathW.cs | 16 - .../corefx/Interop/Windows/mincore/Interop.Idna.cs | 37 - .../Interop/Windows/mincore/Interop.LockFile.cs | 20 - .../mincore/Interop.ReadFile_SafeHandle_IntPtr.cs | 21 - ...Interop.ReadFile_SafeHandle_NativeOverlapped.cs | 22 - .../Windows/mincore/Interop.SECURITY_ATTRIBUTES.cs | 21 - .../Windows/mincore/Interop.SafeCreateFile.cs | 45 - .../Windows/mincore/Interop.SecurityOptions.cs | 18 - .../Windows/mincore/Interop.SetEndOfFile.cs | 15 - .../Windows/mincore/Interop.SetErrorMode.cs | 14 - .../mincore/Interop.SetFileInformationByHandle.cs | 72 - .../Windows/mincore/Interop.SetFilePointerEx.cs | 15 - .../Windows/mincore/Interop.ThreadPoolIO.cs | 27 - .../Windows/mincore/Interop.UnsafeCreateFile.cs | 25 - .../Windows/mincore/Interop.WideCharToMultiByte.cs | 22 - .../mincore/Interop.WriteFile_SafeHandle_IntPtr.cs | 24 - ...nterop.WriteFile_SafeHandle_NativeOverlapped.cs | 22 - .../Win32/SafeHandles/SafeFileHandle.Unix.cs | 3 - .../Win32/SafeHandles/SafeFileHandle.Windows.cs | 2 +- src/mscorlib/corefx/SR.cs | 240 +- src/mscorlib/corefx/System/Buffers/ArrayPool.cs | 25 +- .../corefx/System/Buffers/ConfigurableArrayPool.cs | 2 +- .../TlsOverPerCoreLockedStacksArrayPool.Unix.cs | 28 - .../TlsOverPerCoreLockedStacksArrayPool.Windows.cs | 20 - .../Buffers/TlsOverPerCoreLockedStacksArrayPool.cs | 46 +- .../corefx/System/Globalization/Calendar.cs | 9 - .../System/Globalization/CalendarData.Unix.cs | 7 - .../System/Globalization/CalendarWeekRule.cs | 1 - .../Globalization/CalendricalCalculationsHelper.cs | 8 +- .../corefx/System/Globalization/CharUnicodeInfo.cs | 32 +- .../Globalization/ChineseLunisolarCalendar.cs | 10 +- .../System/Globalization/CompareInfo.Windows.cs | 4 +- .../System/Globalization/CultureData.Unix.cs | 7 - .../System/Globalization/CultureData.Windows.cs | 3 +- .../Globalization/CultureNotFoundException.cs | 11 +- .../corefx/System/Globalization/CultureTypes.cs | 4 +- .../System/Globalization/DateTimeFormatInfo.cs | 8 +- .../corefx/System/Globalization/DigitShapes.cs | 1 + .../Globalization/EastAsianLunisolarCalendar.cs | 1 - .../System/Globalization/GregorianCalendar.cs | 5 - .../corefx/System/Globalization/HebrewCalendar.cs | 1 - .../System/Globalization/HijriCalendar.Win32.cs | 36 +- .../corefx/System/Globalization/HijriCalendar.cs | 5 - .../System/Globalization/IdnMapping.Windows.cs | 2 +- .../System/Globalization/JapaneseCalendar.Win32.cs | 22 +- .../System/Globalization/JapaneseCalendar.cs | 6 - .../Globalization/JapaneseLunisolarCalendar.cs | 6 +- .../corefx/System/Globalization/JulianCalendar.cs | 5 - .../corefx/System/Globalization/KoreanCalendar.cs | 6 - .../Globalization/KoreanLunisolarCalendar.cs | 6 +- .../System/Globalization/NumberFormatInfo.cs | 54 +- .../corefx/System/Globalization/RegionInfo.cs | 2 - .../corefx/System/Globalization/SortKey.cs | 1 - .../corefx/System/Globalization/SortVersion.cs | 50 +- .../corefx/System/Globalization/StringInfo.cs | 3 - .../corefx/System/Globalization/TaiwanCalendar.cs | 6 - .../Globalization/TaiwanLunisolarCalendar.cs | 6 +- .../System/Globalization/TextElementEnumerator.cs | 1 - .../corefx/System/Globalization/TextInfo.Unix.cs | 2 - .../corefx/System/Globalization/TextInfo.cs | 3 - .../System/Globalization/ThaiBuddhistCalendar.cs | 6 - .../System/Globalization/UmAlQuraCalendar.cs | 2 +- .../corefx/System/IO/FileStream.NetStandard17.cs | 76 - src/mscorlib/corefx/System/IO/FileStream.Win32.cs | 76 +- src/mscorlib/corefx/System/IO/FileStream.cs | 94 +- .../System/IO/FileStreamCompletionSource.Win32.cs | 6 +- src/mscorlib/corefx/System/IO/Path.Unix.cs | 62 +- src/mscorlib/corefx/System/IO/Path.Windows.cs | 32 +- src/mscorlib/corefx/System/IO/Path.cs | 33 +- .../corefx/System/IO/PathHelper.Windows.cs | 245 +- .../System/IO/PathInternal.CaseSensitivity.cs | 75 - src/mscorlib/corefx/System/IO/PathInternal.Unix.cs | 42 +- .../System/IO/PathInternal.Windows.StringBuffer.cs | 18 +- .../corefx/System/IO/PathInternal.Windows.cs | 124 +- src/mscorlib/corefx/System/IO/PathInternal.cs | 58 - src/mscorlib/corefx/System/IO/Win32Marshal.cs | 45 +- .../System/Runtime/InteropServices/NativeBuffer.cs | 157 - .../Runtime/InteropServices/SafeHeapHandle.cs | 109 - .../Runtime/InteropServices/SafeHeapHandleCache.cs | 97 - .../System/Runtime/InteropServices/StringBuffer.cs | 199 +- .../corefx/System/Security/SecureString.Windows.cs | 8 +- src/mscorlib/facade/mscorlib.csproj | 5 +- src/mscorlib/facade/project.json | 1 + src/mscorlib/model.xml | 12486 ------- src/mscorlib/mscorlib.shared.sources.props | 1317 - src/mscorlib/ref/mscorlib.cs | 375 +- src/mscorlib/src/CleanupToDoList.cs | 27 + .../src/Internal/Runtime/Augments/RuntimeThread.cs | 7 +- src/mscorlib/src/Microsoft/Win32/Registry.cs | 21 +- src/mscorlib/src/Microsoft/Win32/RegistryKey.cs | 758 +- .../src/Microsoft/Win32/RegistryOptions.cs | 25 - .../src/Microsoft/Win32/RegistryValueKind.cs | 4 +- src/mscorlib/src/Microsoft/Win32/RegistryView.cs | 2 +- .../Win32/SafeHandles/SafeFileMappingHandle.cs | 39 - .../Microsoft/Win32/SafeHandles/SafeFindHandle.cs | 1 - .../Win32/SafeHandles/SafeLibraryHandle.cs | 1 - .../Win32/SafeHandles/SafeLocalAllocHandle.cs | 29 - .../Win32/SafeHandles/SafeRegistryHandle.cs | 4 +- .../Win32/SafeHandles/SafeViewOfFileHandle.cs | 46 - .../Microsoft/Win32/SafeHandles/SafeWaitHandle.cs | 2 - .../Win32/SafeHandles/Win32SafeHandles.cs | 5 - .../src/Microsoft/Win32/UnsafeNativeMethods.cs | 15 - src/mscorlib/src/Microsoft/Win32/Win32Native.cs | 1389 +- src/mscorlib/src/System.Private.CoreLib.txt | 67 +- .../src/System/AccessViolationException.cs | 39 +- src/mscorlib/src/System/Action.cs | 6 +- src/mscorlib/src/System/Activator.cs | 192 +- src/mscorlib/src/System/AppContext/AppContext.cs | 41 +- src/mscorlib/src/System/AppDomain.cs | 1307 +- src/mscorlib/src/System/AppDomainAttributes.cs | 21 +- src/mscorlib/src/System/AppDomainManager.cs | 3 +- src/mscorlib/src/System/AppDomainSetup.cs | 383 +- .../src/System/AppDomainUnloadedException.cs | 13 +- src/mscorlib/src/System/ApplicationException.cs | 40 +- src/mscorlib/src/System/ApplicationId.cs | 141 - src/mscorlib/src/System/ArgIterator.cs | 69 +- src/mscorlib/src/System/ArgumentException.cs | 105 +- src/mscorlib/src/System/ArgumentNullException.cs | 47 +- .../src/System/ArgumentOutOfRangeException.cs | 2 - src/mscorlib/src/System/ArithmeticException.cs | 39 +- src/mscorlib/src/System/Array.cs | 93 +- src/mscorlib/src/System/ArraySegment.cs | 14 +- .../src/System/ArrayTypeMismatchException.cs | 41 +- src/mscorlib/src/System/AsyncCallback.cs | 6 +- src/mscorlib/src/System/Attribute.cs | 6 +- src/mscorlib/src/System/AttributeTargets.cs | 48 +- src/mscorlib/src/System/AttributeUsageAttribute.cs | 1 - src/mscorlib/src/System/BCLDebug.cs | 67 - src/mscorlib/src/System/BadImageFormatException.cs | 2 - src/mscorlib/src/System/BitConverter.cs | 6 +- src/mscorlib/src/System/Boolean.cs | 1 - src/mscorlib/src/System/Buffer.cs | 7 - src/mscorlib/src/System/ByReference.cs | 12 +- src/mscorlib/src/System/Byte.cs | 1 - src/mscorlib/src/System/CLRConfig.cs | 20 - src/mscorlib/src/System/CLSCompliantAttribute.cs | 22 +- .../src/System/CannotUnloadAppDomainException.cs | 49 - src/mscorlib/src/System/CfgParser.cs | 564 - src/mscorlib/src/System/Char.cs | 1 - src/mscorlib/src/System/CharEnumerator.cs | 84 +- src/mscorlib/src/System/Collections/ArrayList.cs | 2139 +- .../src/System/Collections/CollectionBase.cs | 20 +- src/mscorlib/src/System/Collections/Comparer.cs | 4 +- .../Collections/Concurrent/ConcurrentDictionary.cs | 375 +- .../Collections/Concurrent/ConcurrentQueue.cs | 1486 +- .../Collections/Concurrent/ConcurrentStack.cs | 323 +- .../Concurrent/IProducerConsumerCollection.cs | 49 +- .../Collections/Concurrent/OrderablePartitioner.cs | 280 - .../System/Collections/Concurrent/Partitioner.cs | 101 - .../Collections/Concurrent/PartitionerStatic.cs | 1715 - .../src/System/Collections/DictionaryEntry.cs | 4 +- .../src/System/Collections/Generic/Comparer.cs | 3 - .../src/System/Collections/Generic/DebugView.cs | 1 - .../src/System/Collections/Generic/Dictionary.cs | 2 - .../System/Collections/Generic/EqualityComparer.cs | 153 +- .../Collections/Generic/KeyNotFoundException.cs | 1 - .../src/System/Collections/Generic/KeyValuePair.cs | 3 +- .../src/System/Collections/Generic/List.cs | 12 +- src/mscorlib/src/System/Collections/Hashtable.cs | 323 +- src/mscorlib/src/System/Collections/ICollection.cs | 1 - src/mscorlib/src/System/Collections/IComparer.cs | 1 - src/mscorlib/src/System/Collections/IDictionary.cs | 1 - .../System/Collections/IDictionaryEnumerator.cs | 1 - src/mscorlib/src/System/Collections/IEnumerable.cs | 1 - src/mscorlib/src/System/Collections/IEnumerator.cs | 1 - .../src/System/Collections/IEqualityComparer.cs | 1 - .../src/System/Collections/IHashCodeProvider.cs | 3 +- src/mscorlib/src/System/Collections/IList.cs | 1 - .../src/System/Collections/KeyValuePairs.cs | 40 - .../System/Collections/ListDictionaryInternal.cs | 14 - .../System/Collections/ObjectModel/Collection.cs | 1 - .../Collections/ObjectModel/KeyedCollection.cs | 1 - .../Collections/ObjectModel/ReadOnlyCollection.cs | 1 - src/mscorlib/src/System/Collections/SortedList.cs | 1008 - src/mscorlib/src/System/Collections/Stack.cs | 379 - src/mscorlib/src/System/CompatibilitySwitches.cs | 31 - .../ComponentModel/EditorBrowsableAttribute.cs | 48 + .../Configuration/Assemblies/AssemblyHash.cs | 74 - .../Assemblies/AssemblyHashAlgorithm.cs | 4 - .../Assemblies/AssemblyVersionCompatibility.cs | 1 - src/mscorlib/src/System/ContextMarshalException.cs | 45 - src/mscorlib/src/System/Convert.cs | 9 +- src/mscorlib/src/System/DBNull.cs | 2 - src/mscorlib/src/System/DataMisalignedException.cs | 34 +- src/mscorlib/src/System/DateTime.cs | 15 +- src/mscorlib/src/System/DateTimeKind.cs | 6 +- src/mscorlib/src/System/DateTimeOffset.cs | 1 - src/mscorlib/src/System/DayOfWeek.cs | 7 +- src/mscorlib/src/System/Decimal.cs | 14 - src/mscorlib/src/System/Delegate.cs | 1 - .../src/System/DelegateSerializationHolder.cs | 9 +- src/mscorlib/src/System/Diagnostics/Assert.cs | 9 - .../src/System/Diagnostics/ConditionalAttribute.cs | 1 - .../src/System/Diagnostics/Contracts/Contracts.cs | 128 - .../System/Diagnostics/Contracts/ContractsBCL.cs | 16 - src/mscorlib/src/System/Diagnostics/Debugger.cs | 52 - .../src/System/Diagnostics/DebuggerAttributes.cs | 116 - .../System/Diagnostics/Eventing/EventDescriptor.cs | 2 + .../System/Diagnostics/Eventing/EventProvider.cs | 21 +- .../src/System/Diagnostics/Eventing/EventSource.cs | 23 +- .../Diagnostics/Eventing/FrameworkEventSource.cs | 70 +- .../Eventing/TraceLogging/TraceLoggingTypeInfo.cs | 2 +- .../Diagnostics/Eventing/XplatEventLogger.cs | 2 - src/mscorlib/src/System/Diagnostics/LogSwitch.cs | 13 - src/mscorlib/src/System/Diagnostics/Stackframe.cs | 37 - src/mscorlib/src/System/Diagnostics/Stacktrace.cs | 14 - .../System/Diagnostics/SymbolStore/ISymBinder.cs | 42 - .../System/Diagnostics/SymbolStore/ISymDocument.cs | 48 - .../Diagnostics/SymbolStore/ISymDocumentWriter.cs | 1 - .../System/Diagnostics/SymbolStore/ISymMethod.cs | 86 - .../Diagnostics/SymbolStore/ISymNamespace.cs | 30 - .../System/Diagnostics/SymbolStore/ISymReader.cs | 68 - .../System/Diagnostics/SymbolStore/ISymScope.cs | 47 - .../System/Diagnostics/SymbolStore/ISymVariable.cs | 41 - .../System/Diagnostics/SymbolStore/ISymWriter.cs | 78 +- .../Diagnostics/SymbolStore/SymAddressKind.cs | 3 +- .../Diagnostics/SymbolStore/SymDocumentType.cs | 24 - .../Diagnostics/SymbolStore/SymLanguageType.cs | 42 - .../Diagnostics/SymbolStore/SymLanguageVendor.cs | 23 - .../src/System/Diagnostics/SymbolStore/Token.cs | 13 +- src/mscorlib/src/System/Diagnostics/log.cs | 116 - src/mscorlib/src/System/DivideByZeroException.cs | 40 +- src/mscorlib/src/System/DllNotFoundException.cs | 1 - src/mscorlib/src/System/Double.cs | 2 - .../src/System/DuplicateWaitObjectException.cs | 58 +- .../src/System/EntryPointNotFoundException.cs | 44 +- src/mscorlib/src/System/Enum.cs | 132 +- src/mscorlib/src/System/Environment.cs | 616 +- src/mscorlib/src/System/EventArgs.cs | 15 +- src/mscorlib/src/System/EventHandler.cs | 7 +- src/mscorlib/src/System/Exception.cs | 98 +- .../src/System/ExecutionEngineException.cs | 39 +- src/mscorlib/src/System/FieldAccessException.cs | 40 +- src/mscorlib/src/System/FlagsAttribute.cs | 7 +- src/mscorlib/src/System/FormatException.cs | 40 +- src/mscorlib/src/System/FormattableString.cs | 2 +- src/mscorlib/src/System/GC.cs | 18 - src/mscorlib/src/System/Globalization/Calendar.cs | 9 - .../System/Globalization/CalendarAlgorithmType.cs | 1 - .../src/System/Globalization/CalendarData.cs | 35 - .../src/System/Globalization/CalendarWeekRule.cs | 1 - .../Globalization/ChineseLunisolarCalendar.cs | 4 - .../src/System/Globalization/CompareInfo.cs | 6 - .../src/System/Globalization/CultureData.cs | 110 +- .../src/System/Globalization/CultureInfo.cs | 98 +- .../Globalization/CultureNotFoundException.cs | 1 - .../src/System/Globalization/CultureTypes.cs | 1 - .../src/System/Globalization/DateTimeFormat.cs | 8 - .../src/System/Globalization/DateTimeFormatInfo.cs | 24 +- .../src/System/Globalization/DateTimeStyles.cs | 1 - .../src/System/Globalization/DaylightTime.cs | 1 - .../src/System/Globalization/DigitShapes.cs | 1 - .../Globalization/EastAsianLunisolarCalendar.cs | 1 - .../src/System/Globalization/EncodingTable.cs | 4 - .../System/Globalization/GlobalizationAssembly.cs | 1 - .../src/System/Globalization/GregorianCalendar.cs | 5 - .../System/Globalization/GregorianCalendarTypes.cs | 1 - .../src/System/Globalization/HebrewCalendar.cs | 1 - .../src/System/Globalization/HijriCalendar.cs | 5 - .../src/System/Globalization/JapaneseCalendar.cs | 14 +- .../src/System/Globalization/JulianCalendar.cs | 5 - .../src/System/Globalization/KoreanCalendar.cs | 6 - .../src/System/Globalization/NumberFormatInfo.cs | 26 +- .../src/System/Globalization/NumberStyles.cs | 1 - .../src/System/Globalization/RegionInfo.cs | 5 - src/mscorlib/src/System/Globalization/SortKey.cs | 1 - .../src/System/Globalization/StringInfo.cs | 4 - .../src/System/Globalization/TaiwanCalendar.cs | 6 - .../System/Globalization/TextElementEnumerator.cs | 1 - src/mscorlib/src/System/Globalization/TextInfo.cs | 9 - .../System/Globalization/ThaiBuddhistCalendar.cs | 6 - .../src/System/Globalization/UnicodeCategory.cs | 1 - src/mscorlib/src/System/Guid.cs | 9 - src/mscorlib/src/System/IAppDomain.cs | 28 - src/mscorlib/src/System/IAppDomainPauseManager.cs | 40 - src/mscorlib/src/System/IAppDomainSetup.cs | 84 - src/mscorlib/src/System/IAsyncResult.cs | 18 +- src/mscorlib/src/System/ICloneable.cs | 1 - src/mscorlib/src/System/IComparable.cs | 8 +- src/mscorlib/src/System/IConvertible.cs | 10 +- src/mscorlib/src/System/ICustomFormatter.cs | 11 +- src/mscorlib/src/System/IDisposable.cs | 8 +- src/mscorlib/src/System/IEquatable.cs | 8 +- src/mscorlib/src/System/IFormatProvider.cs | 8 +- src/mscorlib/src/System/IFormattable.cs | 9 +- src/mscorlib/src/System/IO/BinaryReader.cs | 1 - src/mscorlib/src/System/IO/BinaryWriter.cs | 5 +- src/mscorlib/src/System/IO/Directory.cs | 806 +- src/mscorlib/src/System/IO/DirectoryInfo.cs | 511 - .../src/System/IO/DirectoryNotFoundException.cs | 1 - .../src/System/IO/DriveNotFoundException.cs | 8 +- src/mscorlib/src/System/IO/EndOfStreamException.cs | 1 - src/mscorlib/src/System/IO/File.cs | 601 +- src/mscorlib/src/System/IO/FileAccess.cs | 1 - src/mscorlib/src/System/IO/FileAttributes.cs | 39 - src/mscorlib/src/System/IO/FileInfo.cs | 270 - src/mscorlib/src/System/IO/FileLoadException.cs | 2 - src/mscorlib/src/System/IO/FileMode.cs | 1 - .../src/System/IO/FileNotFoundException.cs | 2 - src/mscorlib/src/System/IO/FileOptions.cs | 1 - src/mscorlib/src/System/IO/FileShare.cs | 1 - src/mscorlib/src/System/IO/FileSystemEnumerable.cs | 107 +- src/mscorlib/src/System/IO/FileSystemInfo.cs | 240 - src/mscorlib/src/System/IO/IOException.cs | 1 - src/mscorlib/src/System/IO/MemoryStream.cs | 5 - src/mscorlib/src/System/IO/PathTooLongException.cs | 1 - .../src/System/IO/PinnedBufferMemoryStream.cs | 4 +- src/mscorlib/src/System/IO/ReadLinesIterator.cs | 102 - src/mscorlib/src/System/IO/SearchOption.cs | 1 - src/mscorlib/src/System/IO/SeekOrigin.cs | 1 - src/mscorlib/src/System/IO/Stream.cs | 28 +- src/mscorlib/src/System/IO/StreamReader.cs | 10 +- src/mscorlib/src/System/IO/StreamWriter.cs | 765 - src/mscorlib/src/System/IO/TextReader.cs | 12 +- src/mscorlib/src/System/IO/TextWriter.cs | 886 - .../src/System/IO/UnmanagedMemoryAccessor.cs | 1 - .../src/System/IO/UnmanagedMemoryStream.cs | 47 +- .../src/System/IO/UnmanagedMemoryStreamWrapper.cs | 1 - src/mscorlib/src/System/IO/__Error.cs | 28 - src/mscorlib/src/System/IObservable.cs | 13 - src/mscorlib/src/System/IObserver.cs | 14 - src/mscorlib/src/System/IProgress.cs | 11 - .../src/System/IndexOutOfRangeException.cs | 39 +- .../System/InsufficientExecutionStackException.cs | 45 +- src/mscorlib/src/System/Int16.cs | 1 - src/mscorlib/src/System/Int32.cs | 1 - src/mscorlib/src/System/Int64.cs | 1 - src/mscorlib/src/System/IntPtr.cs | 17 - src/mscorlib/src/System/Internal.cs | 8 - src/mscorlib/src/System/InvalidCastException.cs | 49 +- .../src/System/InvalidOperationException.cs | 37 +- src/mscorlib/src/System/InvalidProgramException.cs | 38 +- .../src/System/InvalidTimeZoneException.cs | 28 +- src/mscorlib/src/System/Lazy.cs | 2 - src/mscorlib/src/System/LowLevelConsole.cs | 36 +- src/mscorlib/src/System/MarshalByRefObject.cs | 21 +- src/mscorlib/src/System/Math.cs | 23 - src/mscorlib/src/System/MathF.cs | 3 - src/mscorlib/src/System/MemberAccessException.cs | 40 +- src/mscorlib/src/System/MethodAccessException.cs | 40 +- src/mscorlib/src/System/MidpointRounding.cs | 9 +- src/mscorlib/src/System/MissingFieldException.cs | 9 - src/mscorlib/src/System/MissingMemberException.cs | 12 - src/mscorlib/src/System/MissingMethodException.cs | 9 - src/mscorlib/src/System/MulticastDelegate.cs | 5 +- .../src/System/MulticastNotSupportedException.cs | 40 +- src/mscorlib/src/System/NonSerializedAttribute.cs | 1 - .../src/System/NotFiniteNumberException.cs | 62 +- src/mscorlib/src/System/NotImplementedException.cs | 32 +- src/mscorlib/src/System/NotSupportedException.cs | 36 +- src/mscorlib/src/System/NullReferenceException.cs | 41 +- src/mscorlib/src/System/Nullable.cs | 3 - src/mscorlib/src/System/Number.cs | 4 - .../src/System/Numerics/Hashing/HashHelpers.cs | 8 +- src/mscorlib/src/System/Object.cs | 3 - src/mscorlib/src/System/ObjectDisposedException.cs | 79 +- src/mscorlib/src/System/ObsoleteAttribute.cs | 43 +- src/mscorlib/src/System/OperatingSystem.cs | 21 +- .../src/System/OperationCanceledException.cs | 1 - src/mscorlib/src/System/OutOfMemoryException.cs | 1 - src/mscorlib/src/System/OverflowException.cs | 41 +- src/mscorlib/src/System/ParamArrayAttribute.cs | 13 +- src/mscorlib/src/System/PlatformID.cs | 3 +- .../src/System/PlatformNotSupportedException.cs | 35 +- src/mscorlib/src/System/Progress.cs | 36 +- src/mscorlib/src/System/Random.cs | 1 - src/mscorlib/src/System/RankException.cs | 36 +- src/mscorlib/src/System/ReadOnlySpan.cs | 293 +- .../System/Reflection/AmbiguousMatchException.cs | 1 - src/mscorlib/src/System/Reflection/Assembly.cs | 507 +- .../src/System/Reflection/AssemblyAttributes.cs | 19 - src/mscorlib/src/System/Reflection/AssemblyName.cs | 8 +- .../src/System/Reflection/AssemblyNameFlags.cs | 3 - .../src/System/Reflection/AssemblyNameProxy.cs | 28 - src/mscorlib/src/System/Reflection/Binder.cs | 2 - src/mscorlib/src/System/Reflection/BindingFlags.cs | 1 - .../src/System/Reflection/CallingConventions.cs | 1 - .../src/System/Reflection/ComInterfaces.cs | 115 - .../src/System/Reflection/ConstructorInfo.cs | 42 +- .../src/System/Reflection/CustomAttribute.cs | 44 +- .../Reflection/CustomAttributeFormatException.cs | 1 - .../System/Reflection/DefaultMemberAttribute.cs | 1 - .../src/System/Reflection/Emit/AssemblyBuilder.cs | 280 +- .../Reflection/Emit/AssemblyBuilderAccess.cs | 3 - .../System/Reflection/Emit/AssemblyBuilderData.cs | 346 - .../src/System/Reflection/Emit/ComInterfaces.cs | 143 - .../System/Reflection/Emit/ConstructorBuilder.cs | 34 +- .../Reflection/Emit/CustomAttributeBuilder.cs | 18 +- .../System/Reflection/Emit/DynamicILGenerator.cs | 243 +- .../src/System/Reflection/Emit/DynamicMethod.cs | 36 +- .../src/System/Reflection/Emit/EnumBuilder.cs | 13 +- .../src/System/Reflection/Emit/EventBuilder.cs | 7 +- .../src/System/Reflection/Emit/EventToken.cs | 2 - .../src/System/Reflection/Emit/FieldBuilder.cs | 23 +- .../src/System/Reflection/Emit/FieldToken.cs | 2 - .../src/System/Reflection/Emit/FlowControl.cs | 1 - .../Reflection/Emit/GenericTypeParameterBuilder.cs | 5 - .../src/System/Reflection/Emit/ILGenerator.cs | 67 +- .../src/System/Reflection/Emit/ISymWrapperCore.cs | 143 +- src/mscorlib/src/System/Reflection/Emit/Label.cs | 2 - .../src/System/Reflection/Emit/LocalBuilder.cs | 6 +- .../src/System/Reflection/Emit/MethodBuilder.cs | 319 +- .../Reflection/Emit/MethodBuilderInstantiation.cs | 1 - .../src/System/Reflection/Emit/MethodToken.cs | 2 - .../src/System/Reflection/Emit/ModuleBuilder.cs | 263 +- .../System/Reflection/Emit/ModuleBuilderData.cs | 32 - src/mscorlib/src/System/Reflection/Emit/OpCodes.cs | 3 - src/mscorlib/src/System/Reflection/Emit/Opcode.cs | 2 - .../src/System/Reflection/Emit/OpcodeType.cs | 1 - .../src/System/Reflection/Emit/OperandType.cs | 1 - .../src/System/Reflection/Emit/PEFileKinds.cs | 1 - .../src/System/Reflection/Emit/ParameterBuilder.cs | 26 +- .../src/System/Reflection/Emit/ParameterToken.cs | 7 - .../src/System/Reflection/Emit/PropertyBuilder.cs | 15 +- .../src/System/Reflection/Emit/PropertyToken.cs | 2 - .../src/System/Reflection/Emit/SignatureHelper.cs | 44 +- .../src/System/Reflection/Emit/SignatureToken.cs | 2 - .../src/System/Reflection/Emit/StackBehaviour.cs | 1 - .../src/System/Reflection/Emit/StringToken.cs | 2 - .../src/System/Reflection/Emit/SymbolType.cs | 2 - .../src/System/Reflection/Emit/TypeBuilder.cs | 215 +- .../Reflection/Emit/TypeBuilderInstantiation.cs | 3 - .../src/System/Reflection/Emit/TypeToken.cs | 7 - .../src/System/Reflection/Emit/UnmanagedMarshal.cs | 183 - .../Emit/XXXOnTypeBuilderInstantiation.cs | 18 - .../src/System/Reflection/EventAttributes.cs | 1 - src/mscorlib/src/System/Reflection/EventInfo.cs | 7 +- .../src/System/Reflection/FieldAttributes.cs | 1 - src/mscorlib/src/System/Reflection/FieldInfo.cs | 9 +- .../System/Reflection/ICustomAttributeProvider.cs | 1 - src/mscorlib/src/System/Reflection/IReflect.cs | 1 - .../src/System/Reflection/InterfaceMapping.cs | 5 - .../Reflection/InvalidFilterCriteriaException.cs | 1 - .../src/System/Reflection/ManifestResourceInfo.cs | 2 - src/mscorlib/src/System/Reflection/MdImport.cs | 3 +- src/mscorlib/src/System/Reflection/MemberFilter.cs | 1 - src/mscorlib/src/System/Reflection/MemberInfo.cs | 6 +- src/mscorlib/src/System/Reflection/MemberTypes.cs | 1 - .../src/System/Reflection/MethodAttributes.cs | 1 - src/mscorlib/src/System/Reflection/MethodBase.cs | 28 +- src/mscorlib/src/System/Reflection/MethodBody.cs | 4 - .../src/System/Reflection/MethodImplAttributes.cs | 2 - src/mscorlib/src/System/Reflection/MethodInfo.cs | 31 +- src/mscorlib/src/System/Reflection/Missing.cs | 2 - src/mscorlib/src/System/Reflection/Module.cs | 30 +- .../Reflection/ObfuscateAssemblyAttribute.cs | 1 - .../src/System/Reflection/ObfuscationAttribute.cs | 1 - .../src/System/Reflection/ParameterAttributes.cs | 1 - .../src/System/Reflection/ParameterInfo.cs | 6 +- .../src/System/Reflection/ParameterModifier.cs | 1 - src/mscorlib/src/System/Reflection/Pointer.cs | 1 - .../src/System/Reflection/PropertyAttributes.cs | 1 - src/mscorlib/src/System/Reflection/PropertyInfo.cs | 7 +- .../Reflection/ReflectionTypeLoadException.cs | 7 - .../src/System/Reflection/ResourceAttributes.cs | 1 - .../Reflection/RuntimeReflectionExtensions.cs | 12 +- .../src/System/Reflection/StrongNameKeyPair.cs | 2 - .../src/System/Reflection/TargetException.cs | 1 - .../System/Reflection/TargetInvocationException.cs | 1 - .../Reflection/TargetParameterCountException.cs | 1 - .../src/System/Reflection/TypeAttributes.cs | 2 - .../src/System/Reflection/TypeDelegator.cs | 3 - src/mscorlib/src/System/Reflection/TypeFilter.cs | 1 - src/mscorlib/src/System/Reflection/TypeInfo.cs | 1 - .../System/Resources/FileBasedResourceGroveler.cs | 36 +- .../src/System/Resources/IResourceReader.cs | 1 - .../src/System/Resources/IResourceWriter.cs | 45 - .../Resources/LooselyLinkedResourceReference.cs | 1 - .../Resources/MissingManifestResourceException.cs | 1 - .../Resources/MissingSatelliteAssemblyException.cs | 1 - .../Resources/NeutralResourcesLanguageAttribute.cs | 1 - .../src/System/Resources/ResourceManager.cs | 47 +- .../src/System/Resources/ResourceReader.cs | 251 +- src/mscorlib/src/System/Resources/ResourceSet.cs | 4 - .../Resources/SatelliteContractVersionAttribute.cs | 1 - .../Resources/UltimateResourceFallbackLocation.cs | 1 - src/mscorlib/src/System/RtType.cs | 80 +- .../AccessedThroughPropertyAttribute.cs | 1 - .../CompilerServices/AssemblyAttributesGoHere.cs | 43 - .../Runtime/CompilerServices/AsyncMethodBuilder.cs | 60 +- .../CompilerServices/CompilationRelaxations.cs | 2 - .../CompilerGlobalScopeAttribute.cs | 1 - .../CompilerServices/ConditionalWeakTable.cs | 366 +- .../CompilerServices/CustomConstantAttribute.cs | 1 - .../CompilerServices/DateTimeConstantAttribute.cs | 1 - .../CompilerServices/DecimalConstantAttribute.cs | 1 - .../CompilerServices/DecoratedNameAttribute.cs | 18 - .../CompilerServices/DiscardableAttribute.cs | 1 - .../src/System/Runtime/CompilerServices/ITuple.cs | 22 + .../CompilerServices/IndexerNameAttribute.cs | 1 - .../System/Runtime/CompilerServices/IsVolatile.cs | 1 - .../CompilerServices/MethodImplAttribute.cs | 4 - .../Runtime/CompilerServices/RuntimeHelpers.cs | 6 - .../CompilerServices/RuntimeWrappedException.cs | 1 - .../System/Runtime/CompilerServices/TaskAwaiter.cs | 9 +- .../CompilerServices/TupleElementNamesAttribute.cs | 57 + .../CompilerServices/TypeForwardedToAttribute.cs | 12 - .../src/System/Runtime/CompilerServices/Unsafe.cs | 13 + .../Runtime/CompilerServices/YieldAwaitable.cs | 1 - .../System/Runtime/CompilerServices/jithelpers.cs | 2 - .../ExceptionServices/CorruptingExceptionCommon.cs | 2 - .../ExceptionServices/ExceptionNotification.cs | 3 - .../ExceptionServices/ExceptionServicesCommon.cs | 2 - src/mscorlib/src/System/Runtime/GcSettings.cs | 7 +- .../Runtime/InteropServices/ArrayWithOffset.cs | 1 - .../System/Runtime/InteropServices/Attributes.cs | 353 +- .../System/Runtime/InteropServices/BStrWrapper.cs | 2 - .../System/Runtime/InteropServices/COMException.cs | 13 - .../Runtime/InteropServices/CallingConvention.cs | 1 - .../src/System/Runtime/InteropServices/CharSet.cs | 1 - .../Runtime/InteropServices/ComEventsMethod.cs | 72 +- .../Runtime/InteropServices/ComEventsSink.cs | 118 +- .../Runtime/InteropServices/ComMemberType.cs | 1 - .../InteropServices/ComTypes/IEnumerable.cs | 28 - .../InteropServices/ComTypes/IEnumerator.cs | 34 - .../Runtime/InteropServices/ComTypes/IExpando.cs | 31 - .../Runtime/InteropServices/ComTypes/IReflect.cs | 79 - .../Runtime/InteropServices/CriticalHandle.cs | 13 - .../Runtime/InteropServices/CurrencyWrapper.cs | 1 - .../Runtime/InteropServices/DispatchWrapper.cs | 2 - .../System/Runtime/InteropServices/ErrorWrapper.cs | 2 - .../Runtime/InteropServices/Expando/IExpando.cs | 12 +- .../InteropServices/ExtensibleClassFactory.cs | 40 - .../Runtime/InteropServices/ExternalException.cs | 1 - .../src/System/Runtime/InteropServices/GcHandle.cs | 146 +- .../System/Runtime/InteropServices/HandleRef.cs | 1 - .../Runtime/InteropServices/ICustomAdapter.cs | 1 - .../Runtime/InteropServices/ICustomFactory.cs | 1 - .../Runtime/InteropServices/ICustomMarshaler.cs | 1 - .../InteropServices/ICustomQueryInterface.cs | 2 - .../System/Runtime/InteropServices/IException.cs | 4 +- .../InteropServices/IRegistrationServices.cs | 50 - .../Runtime/InteropServices/ITypeLibConverter.cs | 122 - .../InteropServices/InvalidComObjectException.cs | 1 - .../InvalidOleVariantTypeException.cs | 1 - .../System/Runtime/InteropServices/LayoutKind.cs | 1 - .../src/System/Runtime/InteropServices/Marshal.cs | 538 - .../InteropServices/MarshalDirectiveException.cs | 1 - .../Runtime/InteropServices/NativeMethods.cs | 31 - .../System/Runtime/InteropServices/NonPortable.cs | 33 - .../InteropServices/ObjectCreationDelegate.cs | 24 - .../InteropServices/RegistrationServices.cs | 1059 - .../Runtime/InteropServices/RuntimeEnvironment.cs | 81 +- .../System/Runtime/InteropServices/SEHException.cs | 1 - .../SafeArrayRankMismatchException.cs | 1 - .../SafeArrayTypeMismatchException.cs | 1 - .../System/Runtime/InteropServices/SafeBuffer.cs | 15 - .../System/Runtime/InteropServices/SafeHandle.cs | 15 - .../InteropServices/TCEAdapterGen/EventItfInfo.cs | 53 - .../TCEAdapterGen/EventProviderWriter.cs | 774 - .../TCEAdapterGen/EventSinkHelperWriter.cs | 298 - .../TCEAdapterGen/NameSpaceExtractor.cs | 21 - .../TCEAdapterGen/TCEAdapterGenerator.cs | 141 - .../System/Runtime/InteropServices/UCOMIBindCtx.cs | 46 - .../InteropServices/UCOMIConnectionPoint.cs | 30 - .../UCOMIConnectionPointContainer.cs | 27 - .../InteropServices/UCOMIEnumConnectionPoints.cs | 32 - .../InteropServices/UCOMIEnumConnections.cs | 42 - .../Runtime/InteropServices/UCOMIEnumMoniker.cs | 33 - .../Runtime/InteropServices/UCOMIEnumString.cs | 32 - .../Runtime/InteropServices/UCOMIEnumVARIANT.cs | 35 - .../Runtime/InteropServices/UCOMIEnumerable.cs | 30 - .../Runtime/InteropServices/UCOMIEnumerator.cs | 32 - .../System/Runtime/InteropServices/UCOMIExpando.cs | 33 - .../System/Runtime/InteropServices/UCOMIMoniker.cs | 60 - .../Runtime/InteropServices/UCOMIPersistFile.cs | 36 - .../System/Runtime/InteropServices/UCOMIReflect.cs | 79 - .../InteropServices/UCOMIRunningObjectTable.cs | 32 - .../System/Runtime/InteropServices/UCOMIStream.cs | 57 - .../Runtime/InteropServices/UCOMITypeComp.cs | 52 - .../Runtime/InteropServices/UCOMITypeInfo.cs | 330 - .../System/Runtime/InteropServices/UCOMITypeLib.cs | 71 - .../Runtime/InteropServices/UnknownWrapper.cs | 1 - .../src/System/Runtime/InteropServices/Variant.cs | 658 - .../InteropServices/WindowsRuntime/Attributes.cs | 2 +- .../WindowsRuntime/CLRIPropertyValueImpl.cs | 9 - .../WindowsRuntime/ConstantSplittableMap.cs | 62 +- .../WindowsRuntime/CustomPropertyImpl.cs | 1 - .../InteropServices/WindowsRuntime/IVector.cs | 3 - .../WindowsRuntime/NativeMethods.cs | 2 +- .../WindowsRuntime/WindowsRuntimeBufferHelper.cs | 2 - .../WindowsRuntime/WindowsRuntimeMarshal.cs | 42 - .../WindowsRuntime/WindowsRuntimeMetadata.cs | 100 +- .../System/Runtime/Loader/AssemblyLoadContext.cs | 41 +- src/mscorlib/src/System/Runtime/MemoryFailPoint.cs | 6 - .../src/System/Runtime/ProfileOptimization.cs | 50 - .../Runtime/Reliability/CriticalFinalizerObject.cs | 4 - .../Reliability/PrePrepareMethodAttribute.cs | 2 +- .../src/System/Runtime/Remoting/ObjectHandle.cs | 9 +- .../Runtime/Serialization/FormatterConverter.cs | 3 +- .../Runtime/Serialization/FormatterServices.cs | 480 - .../Serialization/IDeserializationCallback.cs | 1 - .../src/System/Runtime/Serialization/IFormatter.cs | 41 - .../Runtime/Serialization/IFormatterConverter.cs | 1 - .../Runtime/Serialization/IObjectReference.cs | 2 - .../System/Runtime/Serialization/ISerializable.cs | 2 - .../Serialization/ISerializationSurrogate.cs | 34 - .../Runtime/Serialization/ISurrogateSelector.cs | 34 - .../System/Runtime/Serialization/MemberHolder.cs | 51 - .../Serialization/SafeSerializationManager.cs | 210 +- .../Serialization/SerializationAttributes.cs | 5 - .../Runtime/Serialization/SerializationBinder.cs | 29 - .../Serialization/SerializationException.cs | 1 - .../Serialization/SerializationFieldInfo.cs | 136 - .../Runtime/Serialization/SerializationInfo.cs | 59 - .../Serialization/SerializationInfoEnumerator.cs | 2 - .../Runtime/Serialization/StreamingContext.cs | 2 - .../Runtime/Versioning/CompatibilitySwitch.cs | 28 +- .../System/Runtime/Versioning/TargetFrameworkId.cs | 28 - src/mscorlib/src/System/RuntimeArgumentHandle.cs | 1 - src/mscorlib/src/System/RuntimeHandles.cs | 150 +- src/mscorlib/src/System/SByte.cs | 1 - .../src/System/Security/AccessControl/Enums.cs | 75 - src/mscorlib/src/System/Security/Attributes.cs | 3 - .../src/System/Security/BuiltInPermissionSets.cs | 255 - .../src/System/Security/CodeAccessPermission.cs | 229 - .../System/Security/CodeAccessSecurityEngine.cs | 400 - .../src/System/Security/FrameSecurityDescriptor.cs | 537 - .../src/System/Security/HostProtectionException.cs | 135 - .../src/System/Security/HostSecurityManager.cs | 90 - .../src/System/Security/IEvidenceFactory.cs | 11 - src/mscorlib/src/System/Security/IPermission.cs | 84 - .../src/System/Security/ISecurityEncodable.cs | 17 - .../System/Security/ISecurityPolicyEncodable.cs | 17 - src/mscorlib/src/System/Security/IStackWalk.cs | 23 - .../src/System/Security/NamedPermissionSet.cs | 75 - .../src/System/Security/PermissionListSet.cs | 535 - src/mscorlib/src/System/Security/PermissionSet.cs | 1605 - .../src/System/Security/PermissionSetEnumerator.cs | 89 - .../src/System/Security/PermissionSetTriple.cs | 270 - .../src/System/Security/PermissionToken.cs | 383 - .../Security/Permissions/EnvironmentPermission.cs | 347 - .../Security/Permissions/FileDialogPermission.cs | 158 - .../Security/Permissions/FileIOPermission.cs | 1216 - .../Security/Permissions/GACIdentityPermission.cs | 103 - .../Permissions/HostProtectionPermission.cs | 265 - .../Security/Permissions/IBuiltInPermission.cs | 63 - .../Permissions/IUnrestrictedPermission.cs | 13 - .../Permissions/IsolatedStorageFilePermission.cs | 163 - .../Permissions/IsolatedStoragePermission.cs | 183 - .../Security/Permissions/PermissionAttributes.cs | 880 - .../System/Security/Permissions/PermissionState.cs | 21 - .../Security/Permissions/ReflectionPermission.cs | 274 - .../Security/Permissions/RegistryPermission.cs | 363 - .../Security/Permissions/SecurityPermission.cs | 270 - .../Security/Permissions/SiteIdentityPermission.cs | 251 - .../Permissions/StrongNameIdentityPermission.cs | 401 - .../Permissions/StrongNamePublicKeyBlob.cs | 94 - .../System/Security/Permissions/UIPermission.cs | 327 - .../Security/Permissions/URLIdentityPermission.cs | 284 - .../Security/Permissions/ZoneIdentityPermission.cs | 208 - .../Security/Permissions/keycontainerpermission.cs | 634 - .../src/System/Security/Policy/ApplicationTrust.cs | 126 - .../src/System/Security/Policy/Evidence.cs | 38 - .../src/System/Security/Policy/EvidenceBase.cs | 178 - .../Security/Policy/EvidenceTypeDescriptor.cs | 160 - .../Security/Policy/IDelayEvaluatedEvidence.cs | 34 - .../Security/Policy/IIdentityPermissionFactory.cs | 20 - .../Security/Policy/IRuntimeEvidenceFactory.cs | 36 - .../src/System/Security/Policy/PolicyException.cs | 50 - .../src/System/Security/Policy/PolicyStatement.cs | 246 - src/mscorlib/src/System/Security/Policy/Site.cs | 105 - .../src/System/Security/Policy/StrongName.cs | 171 - src/mscorlib/src/System/Security/Policy/URL.cs | 98 - src/mscorlib/src/System/Security/Policy/Zone.cs | 93 - .../src/System/Security/Principal/IIdentity.cs | 29 - .../src/System/Security/Principal/IPrincipal.cs | 26 - .../Security/Principal/TokenImpersonationLevel.cs | 15 - .../src/System/Security/SafeSecurityHandles.cs | 148 - .../src/System/Security/SecurityContext.cs | 486 - .../src/System/Security/SecurityElement.cs | 875 - .../src/System/Security/SecurityException.cs | 35 +- .../src/System/Security/SecurityManager.cs | 157 - .../src/System/Security/SecurityRuntime.cs | 159 - src/mscorlib/src/System/Security/SecurityState.cs | 1 - src/mscorlib/src/System/Security/SecurityZone.cs | 29 - src/mscorlib/src/System/Security/Util/Config.cs | 83 - src/mscorlib/src/System/Security/Util/Hex.cs | 126 - .../System/Security/Util/StringExpressionSet.cs | 752 - .../src/System/Security/Util/TokenBasedSet.cs | 443 - .../Security/Util/TokenBasedSetEnumerator.cs | 36 - src/mscorlib/src/System/Security/Util/URLString.cs | 1237 +- src/mscorlib/src/System/Security/Util/XMLUtil.cs | 435 - .../src/System/Security/Util/sitestring.cs | 289 - .../src/System/Security/VerificationException.cs | 1 - src/mscorlib/src/System/Security/securestring.cs | 751 - src/mscorlib/src/System/SerializableAttribute.cs | 1 - src/mscorlib/src/System/SharedStatics.cs | 33 - src/mscorlib/src/System/Single.cs | 2 - src/mscorlib/src/System/Span.cs | 226 +- src/mscorlib/src/System/StackOverflowException.cs | 41 +- src/mscorlib/src/System/String.Comparison.cs | 9 - src/mscorlib/src/System/String.Manipulation.cs | 247 +- src/mscorlib/src/System/String.cs | 19 +- src/mscorlib/src/System/StringComparer.cs | 161 - src/mscorlib/src/System/StringComparison.cs | 9 +- src/mscorlib/src/System/StringSplitOptions.cs | 5 +- src/mscorlib/src/System/StubHelpers.cs | 34 +- src/mscorlib/src/System/SystemException.cs | 37 +- src/mscorlib/src/System/Text/ASCIIEncoding.cs | 9 - .../src/System/Text/BaseCodePageEncoding.cs | 332 - src/mscorlib/src/System/Text/CodePageEncoding.cs | 136 - .../src/System/Text/DBCSCodePageEncoding.cs | 1194 - src/mscorlib/src/System/Text/Decoder.cs | 9 - src/mscorlib/src/System/Text/DecoderFallback.cs | 8 - src/mscorlib/src/System/Text/DecoderNLS.cs | 11 +- src/mscorlib/src/System/Text/EUCJPEncoding.cs | 183 - src/mscorlib/src/System/Text/Encoder.cs | 8 - .../src/System/Text/EncoderBestFitFallback.cs | 2 +- .../src/System/Text/EncoderExceptionFallback.cs | 2 +- src/mscorlib/src/System/Text/EncoderNLS.cs | 11 +- .../src/System/Text/EncoderReplacementFallback.cs | 2 +- src/mscorlib/src/System/Text/Encoding.cs | 232 - src/mscorlib/src/System/Text/EncodingForwarder.cs | 6 +- src/mscorlib/src/System/Text/EncodingNLS.cs | 1 - src/mscorlib/src/System/Text/EncodingProvider.cs | 1 - src/mscorlib/src/System/Text/GB18030Encoding.cs | 1365 - src/mscorlib/src/System/Text/ISCIIEncoding.cs | 2621 -- src/mscorlib/src/System/Text/ISO2022Encoding.cs | 1983 -- src/mscorlib/src/System/Text/Latin1Encoding.cs | 3 - .../src/System/Text/MLangCodePageEncoding.cs | 172 - .../src/System/Text/Normalization.Windows.cs | 8 - src/mscorlib/src/System/Text/Normalization.cs | 7 - .../src/System/Text/SBCSCodePageEncoding.cs | 1009 - src/mscorlib/src/System/Text/StringBuilder.cs | 12 +- src/mscorlib/src/System/Text/SurrogateEncoder.cs | 57 - src/mscorlib/src/System/Text/UTF7Encoding.cs | 11 - src/mscorlib/src/System/Text/UTF8Encoding.cs | 7 - src/mscorlib/src/System/Text/UnicodeEncoding.cs | 8 - src/mscorlib/src/System/ThreadAttributes.cs | 12 +- src/mscorlib/src/System/ThreadStaticAttribute.cs | 12 +- .../src/System/Threading/ApartmentState.cs | 1 - src/mscorlib/src/System/Threading/AsyncLocal.cs | 2 - .../src/System/Threading/AutoResetEvent.cs | 2 - .../src/System/Threading/CancellationToken.cs | 8 +- .../Threading/CancellationTokenRegistration.cs | 1 - .../System/Threading/CancellationTokenSource.cs | 102 +- .../src/System/Threading/CountdownEvent.cs | 2 - .../src/System/Threading/EventWaitHandle.cs | 14 +- .../src/System/Threading/ExecutionContext.cs | 62 +- src/mscorlib/src/System/Threading/IObjectHandle.cs | 31 - src/mscorlib/src/System/Threading/Interlocked.cs | 20 - .../src/System/Threading/LazyInitializer.cs | 1 - src/mscorlib/src/System/Threading/LockCookie.cs | 57 - .../src/System/Threading/LockRecursionException.cs | 1 - .../src/System/Threading/ManualResetEvent.cs | 2 - .../src/System/Threading/ManualResetEventSlim.cs | 2 - src/mscorlib/src/System/Threading/Monitor.cs | 3 - src/mscorlib/src/System/Threading/Mutex.cs | 52 +- src/mscorlib/src/System/Threading/Overlapped.cs | 54 +- .../System/Threading/ParameterizedThreadStart.cs | 1 - .../src/System/Threading/ReaderWriterLock.cs | 276 - src/mscorlib/src/System/Threading/SemaphoreSlim.cs | 6 +- src/mscorlib/src/System/Threading/SpinLock.cs | 82 +- src/mscorlib/src/System/Threading/SpinWait.cs | 1 - .../src/System/Threading/SynchronizationContext.cs | 23 - .../Threading/SynchronizationLockException.cs | 1 - .../Threading/Tasks/BeginEndAwaitableAdapter.cs | 157 - .../Tasks/ConcurrentExclusiveSchedulerPair.cs | 1 - .../src/System/Threading/Tasks/FutureFactory.cs | 145 +- .../Tasks/IAsyncCausalityTracerStatics.cs | 14 +- .../src/System/Threading/Tasks/Parallel.cs | 3593 -- .../System/Threading/Tasks/ParallelLoopState.cs | 641 - .../System/Threading/Tasks/ParallelRangeManager.cs | 279 - .../Threading/Tasks/ProducerConsumerQueues.cs | 171 - .../src/System/Threading/Tasks/TPLETWProvider.cs | 214 +- src/mscorlib/src/System/Threading/Tasks/Task.cs | 716 +- .../System/Threading/Tasks/TaskCompletionSource.cs | 17 - .../src/System/Threading/Tasks/TaskContinuation.cs | 54 +- .../System/Threading/Tasks/TaskExceptionHolder.cs | 17 - .../src/System/Threading/Tasks/TaskFactory.cs | 259 +- .../src/System/Threading/Tasks/TaskScheduler.cs | 1 - src/mscorlib/src/System/Threading/Tasks/future.cs | 171 +- src/mscorlib/src/System/Threading/Thread.cs | 542 +- .../src/System/Threading/ThreadAbortException.cs | 6 - .../System/Threading/ThreadInterruptedException.cs | 1 - src/mscorlib/src/System/Threading/ThreadLocal.cs | 1 - src/mscorlib/src/System/Threading/ThreadPool.cs | 960 +- .../src/System/Threading/ThreadPriority.cs | 1 - src/mscorlib/src/System/Threading/ThreadStart.cs | 2 - src/mscorlib/src/System/Threading/ThreadState.cs | 1 - .../src/System/Threading/ThreadStateException.cs | 1 - src/mscorlib/src/System/Threading/Timeout.cs | 2 - src/mscorlib/src/System/Threading/Timer.cs | 147 +- src/mscorlib/src/System/Threading/Volatile.cs | 32 - src/mscorlib/src/System/Threading/WaitHandle.cs | 13 +- src/mscorlib/src/System/ThrowHelper.cs | 36 +- src/mscorlib/src/System/TimeSpan.cs | 1 - src/mscorlib/src/System/TimeZone.cs | 1 - .../src/System/TimeZoneInfo.AdjustmentRule.cs | 251 + .../src/System/TimeZoneInfo.StringSerializer.cs | 625 + .../src/System/TimeZoneInfo.TransitionTime.cs | 159 + src/mscorlib/src/System/TimeZoneInfo.Unix.cs | 1463 + src/mscorlib/src/System/TimeZoneInfo.Win32.cs | 1023 + src/mscorlib/src/System/TimeZoneInfo.cs | 5777 +--- .../src/System/TimeZoneNotFoundException.cs | 33 +- src/mscorlib/src/System/TimeoutException.cs | 44 +- src/mscorlib/src/System/Tuple.cs | 729 +- src/mscorlib/src/System/TupleExtensions.cs | 930 + src/mscorlib/src/System/Type.cs | 45 +- src/mscorlib/src/System/TypeAccessException.cs | 24 +- src/mscorlib/src/System/TypeCode.cs | 10 +- .../src/System/TypeInitializationException.cs | 58 +- src/mscorlib/src/System/TypeLoadException.cs | 2 - src/mscorlib/src/System/TypeUnloadedException.cs | 1 - src/mscorlib/src/System/TypedReference.cs | 2 - src/mscorlib/src/System/UInt16.cs | 1 - src/mscorlib/src/System/UInt32.cs | 1 - src/mscorlib/src/System/UInt64.cs | 1 - src/mscorlib/src/System/UIntPtr.cs | 1 - .../src/System/UnauthorizedAccessException.cs | 36 +- .../src/System/UnhandledExceptionEventArgs.cs | 36 +- .../src/System/UnhandledExceptionEventHandler.cs | 6 +- src/mscorlib/src/System/ValueTuple.cs | 2324 ++ src/mscorlib/src/System/ValueType.cs | 1 - src/mscorlib/src/System/Variant.cs | 15 - src/mscorlib/src/System/Version.cs | 4 +- src/mscorlib/src/System/Void.cs | 9 +- src/mscorlib/src/System/WeakReference.cs | 2 - src/mscorlib/src/System/_LocalDataStore.cs | 244 - src/mscorlib/src/System/_LocalDataStoreMgr.cs | 332 - src/mscorlib/src/System/__ComObject.cs | 7 - src/mscorlib/src/System/cominterfaces.cs | 40 - src/mscorlib/src/mscorlib.Friends.cs | 12 +- src/pal/CMakeLists.txt | 2 +- src/pal/inc/mbusafecrt.h | 2 +- src/pal/inc/pal.h | 878 +- src/pal/inc/pal_char16.h | 5 +- src/pal/inc/pal_mstypes.h | 10 - src/pal/inc/rt/intsafe.h | 44 +- src/pal/inc/rt/palrt.h | 51 +- src/pal/inc/rt/safecrt.h | 8 - src/pal/inc/rt/sal.h | 2 +- src/pal/inc/rt/specstrings_strict.h | 2 +- src/pal/inc/rt/specstrings_undef.h | 2 +- src/pal/inc/rt/vsassert.h | 5 - src/pal/inc/strsafe.h | 593 - src/pal/inc/unixasmmacrosarm64.inc | 3 +- src/pal/src/CMakeLists.txt | 111 +- src/pal/src/arch/amd64/processor.cpp | 16 +- src/pal/src/arch/i386/context2.S | 47 +- src/pal/src/config.h.in | 1 + src/pal/src/configure.cmake | 33 +- src/pal/src/cruntime/file.cpp | 78 - src/pal/src/cruntime/math.cpp | 8 - src/pal/src/cruntime/printf.cpp | 82 - src/pal/src/cruntime/printfcpp.cpp | 940 +- src/pal/src/cruntime/silent_printf.cpp | 280 - src/pal/src/cruntime/string.cpp | 2 +- src/pal/src/debug/debug.cpp | 304 +- src/pal/src/exception/machexception.h | 2 - src/pal/src/exception/seh-unwind.cpp | 4 +- src/pal/src/exception/signal.hpp | 7 - src/pal/src/file/disk.cpp | 3 - src/pal/src/file/file.cpp | 9 +- src/pal/src/file/path.cpp | 4 +- src/pal/src/include/pal/modulename.h | 3 - src/pal/src/include/pal/palinternal.h | 20 +- src/pal/src/include/pal/printfcpp.hpp | 55 - src/pal/src/include/pal/sharedmemory.h | 21 +- src/pal/src/include/pal/thread.hpp | 18 - src/pal/src/include/pal/threadsusp.hpp | 2 + src/pal/src/include/pal/utils.h | 56 + src/pal/src/include/pal/virtual.h | 5 - src/pal/src/init/pal.cpp | 17 +- src/pal/src/loader/module.cpp | 6 +- src/pal/src/loader/modulename.cpp | 134 - src/pal/src/misc/dbgmsg.cpp | 10 +- src/pal/src/misc/fmtmessage.cpp | 3 +- src/pal/src/misc/perftrace.cpp | 179 +- src/pal/src/misc/sysinfo.cpp | 18 +- src/pal/src/misc/utils.cpp | 6 +- src/pal/src/safecrt/cruntime.h | 14 +- src/pal/src/safecrt/sscanf_s.cpp | 6 +- src/pal/src/safecrt/wcslen_s.cpp | 2 +- src/pal/src/shmemory/shmemory.cpp | 54 +- src/pal/src/thread/process.cpp | 24 +- src/pal/src/thread/thread.cpp | 108 +- src/pal/src/thread/threadsusp.cpp | 10 - src/pal/tests/palsuite/CMakeLists.txt | 10 + src/pal/tests/palsuite/c_runtime/CMakeLists.txt | 4 +- .../c_runtime/__iscsym/test1/CMakeLists.txt | 4 +- .../c_runtime/_alloca/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/_ecvt/test1/CMakeLists.txt | 4 +- .../c_runtime/_fdopen/test1/CMakeLists.txt | 4 +- .../c_runtime/_finite/test1/CMakeLists.txt | 4 +- .../c_runtime/_finitef/test1/CMakeLists.txt | 4 +- .../c_runtime/_fullpath/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/_gcvt/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/_gcvt/test2/CMakeLists.txt | 4 +- .../tests/palsuite/c_runtime/_getw/CMakeLists.txt | 4 - .../palsuite/c_runtime/_getw/test1/CMakeLists.txt | 19 - .../tests/palsuite/c_runtime/_getw/test1/test.dat | Bin 28 -> 0 bytes .../tests/palsuite/c_runtime/_getw/test1/test1.cpp | 96 - .../palsuite/c_runtime/_getw/test1/testinfo.dat | 15 - .../palsuite/c_runtime/_isnan/test1/CMakeLists.txt | 4 +- .../c_runtime/_isnanf/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/_itow/test1/CMakeLists.txt | 4 +- .../c_runtime/_mbsdec/test1/CMakeLists.txt | 4 +- .../c_runtime/_mbsinc/test1/CMakeLists.txt | 4 +- .../c_runtime/_mbsninc/test1/CMakeLists.txt | 4 +- .../c_runtime/_open_osfhandle/test1/CMakeLists.txt | 4 +- .../c_runtime/_open_osfhandle/test2/CMakeLists.txt | 4 +- .../c_runtime/_putenv/test1/CMakeLists.txt | 4 +- .../c_runtime/_putenv/test2/CMakeLists.txt | 4 +- .../c_runtime/_putenv/test3/CMakeLists.txt | 4 +- .../c_runtime/_putenv/test4/CMakeLists.txt | 4 +- .../tests/palsuite/c_runtime/_putw/CMakeLists.txt | 4 - .../palsuite/c_runtime/_putw/test1/CMakeLists.txt | 19 - .../tests/palsuite/c_runtime/_putw/test1/test1.cpp | 112 - .../palsuite/c_runtime/_putw/test1/testinfo.dat | 13 - .../palsuite/c_runtime/_rotl/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/_rotr/test1/CMakeLists.txt | 4 +- .../c_runtime/_snprintf_s/test1/CMakeLists.txt | 4 +- .../c_runtime/_snprintf_s/test10/CMakeLists.txt | 4 +- .../c_runtime/_snprintf_s/test11/CMakeLists.txt | 4 +- .../c_runtime/_snprintf_s/test12/CMakeLists.txt | 4 +- .../c_runtime/_snprintf_s/test13/CMakeLists.txt | 4 +- .../c_runtime/_snprintf_s/test14/CMakeLists.txt | 4 +- .../c_runtime/_snprintf_s/test15/CMakeLists.txt | 4 +- .../c_runtime/_snprintf_s/test16/CMakeLists.txt | 4 +- .../c_runtime/_snprintf_s/test17/CMakeLists.txt | 4 +- .../c_runtime/_snprintf_s/test18/CMakeLists.txt | 4 +- .../c_runtime/_snprintf_s/test19/CMakeLists.txt | 4 +- .../c_runtime/_snprintf_s/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/_snprintf_s/test2/test2.cpp | 6 + .../c_runtime/_snprintf_s/test3/CMakeLists.txt | 4 +- .../palsuite/c_runtime/_snprintf_s/test3/test3.cpp | 6 + .../c_runtime/_snprintf_s/test4/CMakeLists.txt | 4 +- .../palsuite/c_runtime/_snprintf_s/test4/test4.cpp | 4 +- .../c_runtime/_snprintf_s/test6/CMakeLists.txt | 4 +- .../c_runtime/_snprintf_s/test7/CMakeLists.txt | 4 +- .../c_runtime/_snprintf_s/test8/CMakeLists.txt | 4 +- .../c_runtime/_snprintf_s/test9/CMakeLists.txt | 4 +- .../c_runtime/_snwprintf_s/test1/CMakeLists.txt | 4 +- .../c_runtime/_snwprintf_s/test10/CMakeLists.txt | 4 +- .../c_runtime/_snwprintf_s/test11/CMakeLists.txt | 4 +- .../c_runtime/_snwprintf_s/test12/CMakeLists.txt | 4 +- .../c_runtime/_snwprintf_s/test13/CMakeLists.txt | 4 +- .../c_runtime/_snwprintf_s/test14/CMakeLists.txt | 4 +- .../c_runtime/_snwprintf_s/test15/CMakeLists.txt | 4 +- .../c_runtime/_snwprintf_s/test16/CMakeLists.txt | 4 +- .../c_runtime/_snwprintf_s/test17/CMakeLists.txt | 4 +- .../c_runtime/_snwprintf_s/test18/CMakeLists.txt | 4 +- .../c_runtime/_snwprintf_s/test19/CMakeLists.txt | 4 +- .../c_runtime/_snwprintf_s/test2/CMakeLists.txt | 4 +- .../c_runtime/_snwprintf_s/test2/test2.cpp | 6 + .../c_runtime/_snwprintf_s/test3/CMakeLists.txt | 4 +- .../c_runtime/_snwprintf_s/test3/test3.cpp | 6 + .../c_runtime/_snwprintf_s/test4/CMakeLists.txt | 4 +- .../c_runtime/_snwprintf_s/test4/test4.cpp | 2 +- .../c_runtime/_snwprintf_s/test6/CMakeLists.txt | 4 +- .../c_runtime/_snwprintf_s/test7/CMakeLists.txt | 4 +- .../c_runtime/_snwprintf_s/test8/CMakeLists.txt | 4 +- .../c_runtime/_snwprintf_s/test9/CMakeLists.txt | 4 +- .../c_runtime/_stricmp/test1/CMakeLists.txt | 4 +- .../c_runtime/_strlwr/test1/CMakeLists.txt | 4 +- .../c_runtime/_strnicmp/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/_vsnprintf/CMakeLists.txt | 22 - .../palsuite/c_runtime/_vsnprintf/_vsnprintf.h | 124 - .../c_runtime/_vsnprintf/test1/CMakeLists.txt | 19 - .../palsuite/c_runtime/_vsnprintf/test1/test1.cpp | 55 - .../c_runtime/_vsnprintf/test1/testinfo.dat | 13 - .../c_runtime/_vsnprintf/test10/CMakeLists.txt | 19 - .../c_runtime/_vsnprintf/test10/test10.cpp | 50 - .../c_runtime/_vsnprintf/test10/testinfo.dat | 14 - .../c_runtime/_vsnprintf/test11/CMakeLists.txt | 19 - .../c_runtime/_vsnprintf/test11/test11.cpp | 50 - .../c_runtime/_vsnprintf/test11/testinfo.dat | 14 - .../c_runtime/_vsnprintf/test12/CMakeLists.txt | 19 - .../c_runtime/_vsnprintf/test12/test12.cpp | 52 - .../c_runtime/_vsnprintf/test12/testinfo.dat | 14 - .../c_runtime/_vsnprintf/test13/CMakeLists.txt | 19 - .../c_runtime/_vsnprintf/test13/test13.cpp | 52 - .../c_runtime/_vsnprintf/test13/testinfo.dat | 14 - .../c_runtime/_vsnprintf/test14/CMakeLists.txt | 19 - .../c_runtime/_vsnprintf/test14/test14.cpp | 50 - .../c_runtime/_vsnprintf/test14/testinfo.dat | 14 - .../c_runtime/_vsnprintf/test15/CMakeLists.txt | 19 - .../c_runtime/_vsnprintf/test15/test15.cpp | 49 - .../c_runtime/_vsnprintf/test15/testinfo.dat | 14 - .../c_runtime/_vsnprintf/test16/CMakeLists.txt | 19 - .../c_runtime/_vsnprintf/test16/test16.cpp | 49 - .../c_runtime/_vsnprintf/test16/testinfo.dat | 14 - .../c_runtime/_vsnprintf/test17/CMakeLists.txt | 19 - .../c_runtime/_vsnprintf/test17/test17.cpp | 50 - .../c_runtime/_vsnprintf/test17/testinfo.dat | 14 - .../c_runtime/_vsnprintf/test18/CMakeLists.txt | 19 - .../c_runtime/_vsnprintf/test18/test18.cpp | 50 - .../c_runtime/_vsnprintf/test18/testinfo.dat | 14 - .../c_runtime/_vsnprintf/test19/CMakeLists.txt | 19 - .../c_runtime/_vsnprintf/test19/test19.cpp | 103 - .../c_runtime/_vsnprintf/test19/testinfo.dat | 14 - .../c_runtime/_vsnprintf/test2/CMakeLists.txt | 19 - .../palsuite/c_runtime/_vsnprintf/test2/test2.cpp | 44 - .../c_runtime/_vsnprintf/test2/testinfo.dat | 14 - .../c_runtime/_vsnprintf/test3/CMakeLists.txt | 19 - .../palsuite/c_runtime/_vsnprintf/test3/test3.cpp | 43 - .../c_runtime/_vsnprintf/test3/testinfo.dat | 14 - .../c_runtime/_vsnprintf/test4/CMakeLists.txt | 19 - .../palsuite/c_runtime/_vsnprintf/test4/test4.cpp | 98 - .../c_runtime/_vsnprintf/test4/testinfo.dat | 14 - .../c_runtime/_vsnprintf/test5/CMakeLists.txt | 19 - .../palsuite/c_runtime/_vsnprintf/test5/test5.cpp | 78 - .../c_runtime/_vsnprintf/test5/testinfo.dat | 14 - .../c_runtime/_vsnprintf/test6/CMakeLists.txt | 19 - .../palsuite/c_runtime/_vsnprintf/test6/test6.cpp | 44 - .../c_runtime/_vsnprintf/test6/testinfo.dat | 14 - .../c_runtime/_vsnprintf/test7/CMakeLists.txt | 19 - .../palsuite/c_runtime/_vsnprintf/test7/test7.cpp | 44 - .../c_runtime/_vsnprintf/test7/testinfo.dat | 14 - .../c_runtime/_vsnprintf/test8/CMakeLists.txt | 19 - .../palsuite/c_runtime/_vsnprintf/test8/test8.cpp | 52 - .../c_runtime/_vsnprintf/test8/testinfo.dat | 14 - .../c_runtime/_vsnprintf/test9/CMakeLists.txt | 19 - .../palsuite/c_runtime/_vsnprintf/test9/test9.cpp | 51 - .../c_runtime/_vsnprintf/test9/testinfo.dat | 14 - .../palsuite/c_runtime/_vsnprintf_s/CMakeLists.txt | 21 + .../palsuite/c_runtime/_vsnprintf_s/_vsnprintf_s.h | 124 + .../c_runtime/_vsnprintf_s/test1/CMakeLists.txt | 17 + .../c_runtime/_vsnprintf_s/test1/test1.cpp | 55 + .../c_runtime/_vsnprintf_s/test1/testinfo.dat | 13 + .../c_runtime/_vsnprintf_s/test10/CMakeLists.txt | 17 + .../c_runtime/_vsnprintf_s/test10/test10.cpp | 50 + .../c_runtime/_vsnprintf_s/test10/testinfo.dat | 14 + .../c_runtime/_vsnprintf_s/test11/CMakeLists.txt | 17 + .../c_runtime/_vsnprintf_s/test11/test11.cpp | 50 + .../c_runtime/_vsnprintf_s/test11/testinfo.dat | 14 + .../c_runtime/_vsnprintf_s/test12/CMakeLists.txt | 17 + .../c_runtime/_vsnprintf_s/test12/test12.cpp | 52 + .../c_runtime/_vsnprintf_s/test12/testinfo.dat | 14 + .../c_runtime/_vsnprintf_s/test13/CMakeLists.txt | 17 + .../c_runtime/_vsnprintf_s/test13/test13.cpp | 52 + .../c_runtime/_vsnprintf_s/test13/testinfo.dat | 14 + .../c_runtime/_vsnprintf_s/test14/CMakeLists.txt | 17 + .../c_runtime/_vsnprintf_s/test14/test14.cpp | 50 + .../c_runtime/_vsnprintf_s/test14/testinfo.dat | 14 + .../c_runtime/_vsnprintf_s/test15/CMakeLists.txt | 17 + .../c_runtime/_vsnprintf_s/test15/test15.cpp | 49 + .../c_runtime/_vsnprintf_s/test15/testinfo.dat | 14 + .../c_runtime/_vsnprintf_s/test16/CMakeLists.txt | 17 + .../c_runtime/_vsnprintf_s/test16/test16.cpp | 49 + .../c_runtime/_vsnprintf_s/test16/testinfo.dat | 14 + .../c_runtime/_vsnprintf_s/test17/CMakeLists.txt | 17 + .../c_runtime/_vsnprintf_s/test17/test17.cpp | 50 + .../c_runtime/_vsnprintf_s/test17/testinfo.dat | 14 + .../c_runtime/_vsnprintf_s/test18/CMakeLists.txt | 17 + .../c_runtime/_vsnprintf_s/test18/test18.cpp | 50 + .../c_runtime/_vsnprintf_s/test18/testinfo.dat | 14 + .../c_runtime/_vsnprintf_s/test19/CMakeLists.txt | 17 + .../c_runtime/_vsnprintf_s/test19/test19.cpp | 103 + .../c_runtime/_vsnprintf_s/test19/testinfo.dat | 14 + .../c_runtime/_vsnprintf_s/test2/CMakeLists.txt | 17 + .../c_runtime/_vsnprintf_s/test2/test2.cpp | 50 + .../c_runtime/_vsnprintf_s/test2/testinfo.dat | 14 + .../c_runtime/_vsnprintf_s/test3/CMakeLists.txt | 17 + .../c_runtime/_vsnprintf_s/test3/test3.cpp | 49 + .../c_runtime/_vsnprintf_s/test3/testinfo.dat | 14 + .../c_runtime/_vsnprintf_s/test4/CMakeLists.txt | 17 + .../c_runtime/_vsnprintf_s/test4/test4.cpp | 98 + .../c_runtime/_vsnprintf_s/test4/testinfo.dat | 14 + .../c_runtime/_vsnprintf_s/test6/CMakeLists.txt | 17 + .../c_runtime/_vsnprintf_s/test6/test6.cpp | 44 + .../c_runtime/_vsnprintf_s/test6/testinfo.dat | 14 + .../c_runtime/_vsnprintf_s/test7/CMakeLists.txt | 17 + .../c_runtime/_vsnprintf_s/test7/test7.cpp | 44 + .../c_runtime/_vsnprintf_s/test7/testinfo.dat | 14 + .../c_runtime/_vsnprintf_s/test8/CMakeLists.txt | 17 + .../c_runtime/_vsnprintf_s/test8/test8.cpp | 52 + .../c_runtime/_vsnprintf_s/test8/testinfo.dat | 14 + .../c_runtime/_vsnprintf_s/test9/CMakeLists.txt | 17 + .../c_runtime/_vsnprintf_s/test9/test9.cpp | 51 + .../c_runtime/_vsnprintf_s/test9/testinfo.dat | 14 + .../c_runtime/_vsnwprintf_s/test1/CMakeLists.txt | 4 +- .../c_runtime/_vsnwprintf_s/test10/CMakeLists.txt | 4 +- .../c_runtime/_vsnwprintf_s/test11/CMakeLists.txt | 4 +- .../c_runtime/_vsnwprintf_s/test12/CMakeLists.txt | 4 +- .../c_runtime/_vsnwprintf_s/test13/CMakeLists.txt | 4 +- .../c_runtime/_vsnwprintf_s/test14/CMakeLists.txt | 4 +- .../c_runtime/_vsnwprintf_s/test15/CMakeLists.txt | 4 +- .../c_runtime/_vsnwprintf_s/test16/CMakeLists.txt | 4 +- .../c_runtime/_vsnwprintf_s/test17/CMakeLists.txt | 4 +- .../c_runtime/_vsnwprintf_s/test18/CMakeLists.txt | 4 +- .../c_runtime/_vsnwprintf_s/test19/CMakeLists.txt | 4 +- .../c_runtime/_vsnwprintf_s/test2/CMakeLists.txt | 4 +- .../c_runtime/_vsnwprintf_s/test2/test2.cpp | 6 + .../c_runtime/_vsnwprintf_s/test3/CMakeLists.txt | 4 +- .../c_runtime/_vsnwprintf_s/test3/test3.cpp | 6 + .../c_runtime/_vsnwprintf_s/test4/CMakeLists.txt | 4 +- .../c_runtime/_vsnwprintf_s/test4/test4.cpp | 2 +- .../c_runtime/_vsnwprintf_s/test6/CMakeLists.txt | 4 +- .../c_runtime/_vsnwprintf_s/test7/CMakeLists.txt | 4 +- .../c_runtime/_vsnwprintf_s/test8/CMakeLists.txt | 4 +- .../c_runtime/_vsnwprintf_s/test9/CMakeLists.txt | 4 +- .../c_runtime/_wcsicmp/test1/CMakeLists.txt | 4 +- .../c_runtime/_wcslwr/test1/CMakeLists.txt | 4 +- .../c_runtime/_wcsnicmp/test1/CMakeLists.txt | 4 +- .../c_runtime/_wfopen/test1/CMakeLists.txt | 4 +- .../c_runtime/_wfopen/test2/CMakeLists.txt | 4 +- .../c_runtime/_wfopen/test3/CMakeLists.txt | 4 +- .../c_runtime/_wfopen/test4/CMakeLists.txt | 4 +- .../c_runtime/_wfopen/test5/CMakeLists.txt | 4 +- .../c_runtime/_wfopen/test6/CMakeLists.txt | 4 +- .../c_runtime/_wfopen/test7/CMakeLists.txt | 4 +- .../palsuite/c_runtime/_wtoi/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/abs/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/acos/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/acosf/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/asin/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/asinf/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/atan/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/atan2/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/atan2f/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/atanf/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/atof/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/atoi/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/atol/test1/CMakeLists.txt | 4 +- .../c_runtime/bsearch/test1/CMakeLists.txt | 4 +- .../c_runtime/bsearch/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/ceil/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/ceilf/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/cos/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/cosf/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/cosh/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/coshf/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/ctime/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/errno/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/errno/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/exit/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/exit/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/exp/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/expf/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fabs/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fabsf/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fclose/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fclose/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/feof/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/ferror/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/ferror/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fflush/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fgets/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fgets/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fgets/test3/CMakeLists.txt | 4 +- .../palsuite/c_runtime/floor/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/floorf/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fmod/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fmodf/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fopen/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fopen/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fopen/test3/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fopen/test4/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fopen/test5/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fopen/test6/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fopen/test7/CMakeLists.txt | 4 +- .../c_runtime/fprintf/test1/CMakeLists.txt | 4 +- .../c_runtime/fprintf/test10/CMakeLists.txt | 4 +- .../c_runtime/fprintf/test11/CMakeLists.txt | 4 +- .../c_runtime/fprintf/test12/CMakeLists.txt | 4 +- .../c_runtime/fprintf/test13/CMakeLists.txt | 4 +- .../c_runtime/fprintf/test14/CMakeLists.txt | 4 +- .../c_runtime/fprintf/test15/CMakeLists.txt | 4 +- .../c_runtime/fprintf/test16/CMakeLists.txt | 4 +- .../c_runtime/fprintf/test17/CMakeLists.txt | 4 +- .../c_runtime/fprintf/test18/CMakeLists.txt | 4 +- .../c_runtime/fprintf/test19/CMakeLists.txt | 4 +- .../c_runtime/fprintf/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fprintf/test2/test2.cpp | 6 + .../c_runtime/fprintf/test3/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fprintf/test3/test3.cpp | 6 + .../c_runtime/fprintf/test4/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fprintf/test4/test4.cpp | 2 +- .../c_runtime/fprintf/test5/CMakeLists.txt | 4 +- .../c_runtime/fprintf/test6/CMakeLists.txt | 4 +- .../c_runtime/fprintf/test7/CMakeLists.txt | 4 +- .../c_runtime/fprintf/test8/CMakeLists.txt | 4 +- .../c_runtime/fprintf/test9/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fputs/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fputs/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fread/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fread/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fread/test3/CMakeLists.txt | 4 +- .../palsuite/c_runtime/free/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fseek/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/ftell/test1/CMakeLists.txt | 4 +- .../c_runtime/fwprintf/test1/CMakeLists.txt | 4 +- .../c_runtime/fwprintf/test10/CMakeLists.txt | 4 +- .../c_runtime/fwprintf/test11/CMakeLists.txt | 4 +- .../c_runtime/fwprintf/test12/CMakeLists.txt | 4 +- .../c_runtime/fwprintf/test13/CMakeLists.txt | 4 +- .../c_runtime/fwprintf/test14/CMakeLists.txt | 4 +- .../c_runtime/fwprintf/test15/CMakeLists.txt | 4 +- .../c_runtime/fwprintf/test16/CMakeLists.txt | 4 +- .../c_runtime/fwprintf/test17/CMakeLists.txt | 4 +- .../c_runtime/fwprintf/test18/CMakeLists.txt | 4 +- .../c_runtime/fwprintf/test19/CMakeLists.txt | 4 +- .../c_runtime/fwprintf/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fwprintf/test2/test2.cpp | 6 + .../c_runtime/fwprintf/test3/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fwprintf/test3/test3.cpp | 6 + .../c_runtime/fwprintf/test4/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fwprintf/test4/test4.cpp | 2 +- .../c_runtime/fwprintf/test5/CMakeLists.txt | 4 +- .../c_runtime/fwprintf/test6/CMakeLists.txt | 4 +- .../c_runtime/fwprintf/test7/CMakeLists.txt | 4 +- .../c_runtime/fwprintf/test8/CMakeLists.txt | 4 +- .../c_runtime/fwprintf/test9/CMakeLists.txt | 4 +- .../palsuite/c_runtime/fwrite/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/getc/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/getenv/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/getenv/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/getenv/test3/CMakeLists.txt | 4 +- .../c_runtime/isalnum/test1/CMakeLists.txt | 4 +- .../c_runtime/isalpha/test1/CMakeLists.txt | 4 +- .../c_runtime/isdigit/test1/CMakeLists.txt | 4 +- .../c_runtime/islower/test1/CMakeLists.txt | 4 +- .../c_runtime/isprint/test1/CMakeLists.txt | 4 +- .../c_runtime/isprint/test2/CMakeLists.txt | 4 +- .../c_runtime/isspace/test1/CMakeLists.txt | 4 +- .../c_runtime/isupper/test1/CMakeLists.txt | 4 +- .../c_runtime/iswdigit/test1/CMakeLists.txt | 4 +- .../c_runtime/iswprint/test1/CMakeLists.txt | 4 +- .../c_runtime/iswspace/test1/CMakeLists.txt | 4 +- .../c_runtime/iswupper/test1/CMakeLists.txt | 4 +- .../c_runtime/iswxdigit/test1/CMakeLists.txt | 4 +- .../c_runtime/isxdigit/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/labs/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/llabs/test1/CMakeLists.txt | 4 +- .../c_runtime/localtime/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/log/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/log10/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/log10f/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/logf/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/malloc/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/malloc/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/memchr/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/memcmp/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/memcpy/test1/CMakeLists.txt | 4 +- .../c_runtime/memmove/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/memset/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/modf/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/modff/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/pow/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/powf/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/printf/test1/CMakeLists.txt | 4 +- .../c_runtime/printf/test10/CMakeLists.txt | 4 +- .../c_runtime/printf/test11/CMakeLists.txt | 4 +- .../c_runtime/printf/test12/CMakeLists.txt | 4 +- .../c_runtime/printf/test13/CMakeLists.txt | 4 +- .../c_runtime/printf/test14/CMakeLists.txt | 4 +- .../c_runtime/printf/test15/CMakeLists.txt | 4 +- .../c_runtime/printf/test16/CMakeLists.txt | 4 +- .../c_runtime/printf/test17/CMakeLists.txt | 4 +- .../c_runtime/printf/test18/CMakeLists.txt | 4 +- .../c_runtime/printf/test19/CMakeLists.txt | 4 +- .../palsuite/c_runtime/printf/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/printf/test2/test2.cpp | 6 + .../palsuite/c_runtime/printf/test3/CMakeLists.txt | 4 +- .../palsuite/c_runtime/printf/test3/test3.cpp | 6 + .../palsuite/c_runtime/printf/test4/CMakeLists.txt | 4 +- .../palsuite/c_runtime/printf/test4/test4.cpp | 2 +- .../palsuite/c_runtime/printf/test5/CMakeLists.txt | 4 +- .../palsuite/c_runtime/printf/test6/CMakeLists.txt | 4 +- .../palsuite/c_runtime/printf/test7/CMakeLists.txt | 4 +- .../palsuite/c_runtime/printf/test8/CMakeLists.txt | 4 +- .../palsuite/c_runtime/printf/test9/CMakeLists.txt | 4 +- .../palsuite/c_runtime/qsort/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/qsort/test2/CMakeLists.txt | 4 +- .../c_runtime/rand_srand/test1/CMakeLists.txt | 4 +- .../c_runtime/realloc/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/sin/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/sinf/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/sinh/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/sinhf/test1/CMakeLists.txt | 4 +- .../c_runtime/sprintf_s/test1/CMakeLists.txt | 4 +- .../c_runtime/sprintf_s/test10/CMakeLists.txt | 4 +- .../c_runtime/sprintf_s/test11/CMakeLists.txt | 4 +- .../c_runtime/sprintf_s/test12/CMakeLists.txt | 4 +- .../c_runtime/sprintf_s/test13/CMakeLists.txt | 4 +- .../c_runtime/sprintf_s/test14/CMakeLists.txt | 4 +- .../c_runtime/sprintf_s/test15/CMakeLists.txt | 4 +- .../c_runtime/sprintf_s/test16/CMakeLists.txt | 4 +- .../c_runtime/sprintf_s/test17/CMakeLists.txt | 4 +- .../c_runtime/sprintf_s/test18/CMakeLists.txt | 4 +- .../c_runtime/sprintf_s/test19/CMakeLists.txt | 4 +- .../c_runtime/sprintf_s/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/sprintf_s/test2/test2.cpp | 6 + .../c_runtime/sprintf_s/test3/CMakeLists.txt | 4 +- .../palsuite/c_runtime/sprintf_s/test3/test3.cpp | 6 + .../c_runtime/sprintf_s/test4/CMakeLists.txt | 4 +- .../palsuite/c_runtime/sprintf_s/test4/test4.cpp | 2 +- .../c_runtime/sprintf_s/test6/CMakeLists.txt | 4 +- .../c_runtime/sprintf_s/test7/CMakeLists.txt | 4 +- .../c_runtime/sprintf_s/test8/CMakeLists.txt | 4 +- .../c_runtime/sprintf_s/test9/CMakeLists.txt | 4 +- .../palsuite/c_runtime/sqrt/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/sqrtf/test1/CMakeLists.txt | 4 +- .../c_runtime/sscanf_s/test1/CMakeLists.txt | 4 +- .../c_runtime/sscanf_s/test10/CMakeLists.txt | 4 +- .../c_runtime/sscanf_s/test11/CMakeLists.txt | 4 +- .../c_runtime/sscanf_s/test12/CMakeLists.txt | 4 +- .../c_runtime/sscanf_s/test13/CMakeLists.txt | 4 +- .../c_runtime/sscanf_s/test14/CMakeLists.txt | 4 +- .../c_runtime/sscanf_s/test15/CMakeLists.txt | 4 +- .../c_runtime/sscanf_s/test16/CMakeLists.txt | 4 +- .../c_runtime/sscanf_s/test17/CMakeLists.txt | 4 +- .../c_runtime/sscanf_s/test2/CMakeLists.txt | 4 +- .../c_runtime/sscanf_s/test3/CMakeLists.txt | 4 +- .../c_runtime/sscanf_s/test4/CMakeLists.txt | 4 +- .../c_runtime/sscanf_s/test5/CMakeLists.txt | 4 +- .../c_runtime/sscanf_s/test6/CMakeLists.txt | 4 +- .../c_runtime/sscanf_s/test7/CMakeLists.txt | 4 +- .../c_runtime/sscanf_s/test8/CMakeLists.txt | 4 +- .../c_runtime/sscanf_s/test9/CMakeLists.txt | 4 +- .../palsuite/c_runtime/strcat/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/strchr/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/strcmp/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/strcpy/test1/CMakeLists.txt | 4 +- .../c_runtime/strcspn/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/strlen/test1/CMakeLists.txt | 4 +- .../c_runtime/strncat/test1/CMakeLists.txt | 4 +- .../c_runtime/strncmp/test1/CMakeLists.txt | 4 +- .../c_runtime/strncpy/test1/CMakeLists.txt | 4 +- .../c_runtime/strpbrk/test1/CMakeLists.txt | 4 +- .../c_runtime/strrchr/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/strspn/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/strstr/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/strtod/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/strtod/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/strtok/test1/CMakeLists.txt | 4 +- .../c_runtime/strtoul/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/swprintf/CMakeLists.txt | 1 - .../tests/palsuite/c_runtime/swprintf/swprintf.h | 60 +- .../c_runtime/swprintf/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/swprintf/test1/test1.cpp | 2 +- .../c_runtime/swprintf/test10/CMakeLists.txt | 4 +- .../c_runtime/swprintf/test11/CMakeLists.txt | 4 +- .../c_runtime/swprintf/test12/CMakeLists.txt | 4 +- .../c_runtime/swprintf/test13/CMakeLists.txt | 4 +- .../c_runtime/swprintf/test14/CMakeLists.txt | 4 +- .../c_runtime/swprintf/test15/CMakeLists.txt | 4 +- .../c_runtime/swprintf/test16/CMakeLists.txt | 4 +- .../c_runtime/swprintf/test17/CMakeLists.txt | 4 +- .../c_runtime/swprintf/test18/CMakeLists.txt | 4 +- .../c_runtime/swprintf/test19/CMakeLists.txt | 4 +- .../palsuite/c_runtime/swprintf/test19/test19.cpp | 8 - .../c_runtime/swprintf/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/swprintf/test2/test2.cpp | 6 + .../c_runtime/swprintf/test3/CMakeLists.txt | 4 +- .../palsuite/c_runtime/swprintf/test3/test3.cpp | 6 + .../c_runtime/swprintf/test4/CMakeLists.txt | 4 +- .../palsuite/c_runtime/swprintf/test4/test4.cpp | 2 +- .../c_runtime/swprintf/test5/CMakeLists.txt | 19 - .../palsuite/c_runtime/swprintf/test5/test5.cpp | 67 - .../palsuite/c_runtime/swprintf/test5/testinfo.dat | 12 - .../c_runtime/swprintf/test6/CMakeLists.txt | 4 +- .../c_runtime/swprintf/test7/CMakeLists.txt | 4 +- .../c_runtime/swprintf/test8/CMakeLists.txt | 4 +- .../c_runtime/swprintf/test9/CMakeLists.txt | 4 +- .../c_runtime/swscanf/test1/CMakeLists.txt | 4 +- .../c_runtime/swscanf/test10/CMakeLists.txt | 4 +- .../c_runtime/swscanf/test11/CMakeLists.txt | 4 +- .../c_runtime/swscanf/test12/CMakeLists.txt | 4 +- .../c_runtime/swscanf/test13/CMakeLists.txt | 4 +- .../c_runtime/swscanf/test14/CMakeLists.txt | 4 +- .../c_runtime/swscanf/test15/CMakeLists.txt | 4 +- .../c_runtime/swscanf/test16/CMakeLists.txt | 4 +- .../c_runtime/swscanf/test17/CMakeLists.txt | 4 +- .../c_runtime/swscanf/test2/CMakeLists.txt | 4 +- .../c_runtime/swscanf/test3/CMakeLists.txt | 4 +- .../c_runtime/swscanf/test4/CMakeLists.txt | 4 +- .../c_runtime/swscanf/test5/CMakeLists.txt | 4 +- .../c_runtime/swscanf/test6/CMakeLists.txt | 4 +- .../c_runtime/swscanf/test7/CMakeLists.txt | 4 +- .../c_runtime/swscanf/test8/CMakeLists.txt | 4 +- .../c_runtime/swscanf/test9/CMakeLists.txt | 4 +- .../palsuite/c_runtime/tan/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/tanf/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/tanh/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/tanhf/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/time/test1/CMakeLists.txt | 4 +- .../c_runtime/tolower/test1/CMakeLists.txt | 4 +- .../c_runtime/toupper/test1/CMakeLists.txt | 4 +- .../c_runtime/towlower/test1/CMakeLists.txt | 4 +- .../c_runtime/towupper/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/ungetc/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/ungetc/test2/CMakeLists.txt | 4 +- .../c_runtime/vfprintf/test1/CMakeLists.txt | 4 +- .../c_runtime/vfprintf/test10/CMakeLists.txt | 4 +- .../c_runtime/vfprintf/test11/CMakeLists.txt | 4 +- .../c_runtime/vfprintf/test12/CMakeLists.txt | 4 +- .../c_runtime/vfprintf/test13/CMakeLists.txt | 4 +- .../c_runtime/vfprintf/test14/CMakeLists.txt | 4 +- .../c_runtime/vfprintf/test15/CMakeLists.txt | 4 +- .../c_runtime/vfprintf/test16/CMakeLists.txt | 4 +- .../c_runtime/vfprintf/test17/CMakeLists.txt | 4 +- .../c_runtime/vfprintf/test18/CMakeLists.txt | 4 +- .../c_runtime/vfprintf/test19/CMakeLists.txt | 4 +- .../c_runtime/vfprintf/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/vfprintf/test2/test2.cpp | 6 + .../c_runtime/vfprintf/test3/CMakeLists.txt | 4 +- .../palsuite/c_runtime/vfprintf/test3/test3.cpp | 6 + .../c_runtime/vfprintf/test4/CMakeLists.txt | 4 +- .../palsuite/c_runtime/vfprintf/test4/test4.cpp | 2 +- .../c_runtime/vfprintf/test5/CMakeLists.txt | 4 +- .../c_runtime/vfprintf/test6/CMakeLists.txt | 4 +- .../c_runtime/vfprintf/test7/CMakeLists.txt | 4 +- .../c_runtime/vfprintf/test8/CMakeLists.txt | 4 +- .../c_runtime/vfprintf/test9/CMakeLists.txt | 4 +- .../c_runtime/vprintf/test1/CMakeLists.txt | 4 +- .../c_runtime/vprintf/test10/CMakeLists.txt | 4 +- .../c_runtime/vprintf/test11/CMakeLists.txt | 4 +- .../c_runtime/vprintf/test12/CMakeLists.txt | 4 +- .../c_runtime/vprintf/test13/CMakeLists.txt | 4 +- .../c_runtime/vprintf/test14/CMakeLists.txt | 4 +- .../c_runtime/vprintf/test15/CMakeLists.txt | 4 +- .../c_runtime/vprintf/test16/CMakeLists.txt | 4 +- .../c_runtime/vprintf/test17/CMakeLists.txt | 4 +- .../c_runtime/vprintf/test18/CMakeLists.txt | 4 +- .../c_runtime/vprintf/test19/CMakeLists.txt | 4 +- .../c_runtime/vprintf/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/vprintf/test2/test2.cpp | 6 + .../c_runtime/vprintf/test3/CMakeLists.txt | 4 +- .../palsuite/c_runtime/vprintf/test3/test3.cpp | 6 + .../c_runtime/vprintf/test4/CMakeLists.txt | 4 +- .../palsuite/c_runtime/vprintf/test4/test4.cpp | 2 +- .../c_runtime/vprintf/test5/CMakeLists.txt | 4 +- .../c_runtime/vprintf/test6/CMakeLists.txt | 4 +- .../c_runtime/vprintf/test7/CMakeLists.txt | 4 +- .../c_runtime/vprintf/test8/CMakeLists.txt | 4 +- .../c_runtime/vprintf/test9/CMakeLists.txt | 4 +- .../palsuite/c_runtime/vsprintf/CMakeLists.txt | 1 - .../c_runtime/vsprintf/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/vsprintf/test1/test1.cpp | 6 +- .../c_runtime/vsprintf/test10/CMakeLists.txt | 4 +- .../c_runtime/vsprintf/test11/CMakeLists.txt | 4 +- .../c_runtime/vsprintf/test12/CMakeLists.txt | 4 +- .../c_runtime/vsprintf/test13/CMakeLists.txt | 4 +- .../c_runtime/vsprintf/test14/CMakeLists.txt | 4 +- .../c_runtime/vsprintf/test15/CMakeLists.txt | 4 +- .../c_runtime/vsprintf/test16/CMakeLists.txt | 4 +- .../c_runtime/vsprintf/test17/CMakeLists.txt | 4 +- .../c_runtime/vsprintf/test18/CMakeLists.txt | 4 +- .../c_runtime/vsprintf/test19/CMakeLists.txt | 4 +- .../c_runtime/vsprintf/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/vsprintf/test2/test2.cpp | 6 + .../c_runtime/vsprintf/test3/CMakeLists.txt | 4 +- .../palsuite/c_runtime/vsprintf/test3/test3.cpp | 6 + .../c_runtime/vsprintf/test4/CMakeLists.txt | 4 +- .../palsuite/c_runtime/vsprintf/test4/test4.cpp | 2 +- .../c_runtime/vsprintf/test5/CMakeLists.txt | 19 - .../palsuite/c_runtime/vsprintf/test5/test5.cpp | 43 - .../palsuite/c_runtime/vsprintf/test5/testinfo.dat | 14 - .../c_runtime/vsprintf/test6/CMakeLists.txt | 4 +- .../c_runtime/vsprintf/test7/CMakeLists.txt | 4 +- .../c_runtime/vsprintf/test8/CMakeLists.txt | 4 +- .../c_runtime/vsprintf/test9/CMakeLists.txt | 4 +- .../tests/palsuite/c_runtime/vsprintf/vsprintf.h | 30 +- .../palsuite/c_runtime/vswprintf/CMakeLists.txt | 1 - .../c_runtime/vswprintf/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/vswprintf/test1/test1.cpp | 2 +- .../c_runtime/vswprintf/test10/CMakeLists.txt | 4 +- .../c_runtime/vswprintf/test11/CMakeLists.txt | 4 +- .../c_runtime/vswprintf/test12/CMakeLists.txt | 4 +- .../c_runtime/vswprintf/test13/CMakeLists.txt | 4 +- .../c_runtime/vswprintf/test14/CMakeLists.txt | 4 +- .../c_runtime/vswprintf/test15/CMakeLists.txt | 4 +- .../c_runtime/vswprintf/test16/CMakeLists.txt | 4 +- .../c_runtime/vswprintf/test17/CMakeLists.txt | 4 +- .../c_runtime/vswprintf/test18/CMakeLists.txt | 4 +- .../c_runtime/vswprintf/test19/CMakeLists.txt | 4 +- .../palsuite/c_runtime/vswprintf/test19/test19.cpp | 4 +- .../c_runtime/vswprintf/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/vswprintf/test2/test2.cpp | 6 + .../c_runtime/vswprintf/test3/CMakeLists.txt | 4 +- .../palsuite/c_runtime/vswprintf/test3/test3.cpp | 6 + .../c_runtime/vswprintf/test4/CMakeLists.txt | 4 +- .../palsuite/c_runtime/vswprintf/test4/test4.cpp | 6 +- .../c_runtime/vswprintf/test5/CMakeLists.txt | 19 - .../palsuite/c_runtime/vswprintf/test5/test5.cpp | 79 - .../c_runtime/vswprintf/test5/testinfo.dat | 14 - .../c_runtime/vswprintf/test6/CMakeLists.txt | 4 +- .../c_runtime/vswprintf/test7/CMakeLists.txt | 4 +- .../c_runtime/vswprintf/test8/CMakeLists.txt | 4 +- .../c_runtime/vswprintf/test9/CMakeLists.txt | 4 +- .../tests/palsuite/c_runtime/vswprintf/vswprintf.h | 18 +- .../palsuite/c_runtime/wcscat/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/wcschr/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/wcscmp/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/wcscpy/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/wcslen/test1/CMakeLists.txt | 4 +- .../c_runtime/wcsncat/test1/CMakeLists.txt | 4 +- .../c_runtime/wcsncmp/test1/CMakeLists.txt | 4 +- .../c_runtime/wcsncpy/test1/CMakeLists.txt | 4 +- .../c_runtime/wcspbrk/test1/CMakeLists.txt | 4 +- .../c_runtime/wcsrchr/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/wcsstr/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/wcstod/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/wcstod/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/wcstok/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/wcstol/test1/CMakeLists.txt | 4 +- .../palsuite/c_runtime/wcstol/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/wcstol/test3/CMakeLists.txt | 4 +- .../palsuite/c_runtime/wcstol/test4/CMakeLists.txt | 4 +- .../palsuite/c_runtime/wcstol/test5/CMakeLists.txt | 4 +- .../palsuite/c_runtime/wcstol/test6/CMakeLists.txt | 4 +- .../c_runtime/wcstoul/test1/CMakeLists.txt | 4 +- .../c_runtime/wcstoul/test2/CMakeLists.txt | 4 +- .../c_runtime/wcstoul/test3/CMakeLists.txt | 4 +- .../c_runtime/wcstoul/test4/CMakeLists.txt | 4 +- .../c_runtime/wcstoul/test5/CMakeLists.txt | 4 +- .../c_runtime/wcstoul/test6/CMakeLists.txt | 4 +- .../c_runtime/wprintf/test1/CMakeLists.txt | 4 +- .../c_runtime/wprintf/test2/CMakeLists.txt | 4 +- .../palsuite/c_runtime/wprintf/test2/test2.cpp | 6 + src/pal/tests/palsuite/common/ResultTime.h | 20 - .../event/nonshared/CMakeLists.txt | 4 +- .../object_management/event/shared/CMakeLists.txt | 4 +- .../mutex/nonshared/CMakeLists.txt | 4 +- .../object_management/mutex/shared/CMakeLists.txt | 4 +- .../semaphore/nonshared/CMakeLists.txt | 4 +- .../semaphore/shared/CMakeLists.txt | 4 +- .../object_management/semaphore/shared/main.cpp | 3 - .../synchronization/criticalsection/CMakeLists.txt | 4 +- .../nativecriticalsection/CMakeLists.txt | 4 +- .../pal_composite_native_cs.cpp | 6 +- .../nativecs_interlocked/CMakeLists.txt | 4 +- .../pal_composite_native_cs.cpp | 6 +- .../threading/threadsuspension/CMakeLists.txt | 4 +- .../threadsuspension_switchthread/CMakeLists.txt | 4 +- .../tests/palsuite/composite/wfmo/CMakeLists.txt | 4 +- .../debug_api/DebugBreak/test1/CMakeLists.txt | 4 +- .../OutputDebugStringA/test1/CMakeLists.txt | 8 +- .../OutputDebugStringW/test1/CMakeLists.txt | 4 +- .../WriteProcessMemory/test1/CMakeLists.txt | 8 +- .../WriteProcessMemory/test3/CMakeLists.txt | 8 +- .../WriteProcessMemory/test4/CMakeLists.txt | 8 +- .../PAL_EXCEPT_FILTER/test1/CMakeLists.txt | 4 +- .../PAL_EXCEPT_FILTER/test2/CMakeLists.txt | 4 +- .../PAL_EXCEPT_FILTER/test3/CMakeLists.txt | 4 +- .../PAL_EXCEPT_FILTER_EX/test1/CMakeLists.txt | 4 +- .../PAL_EXCEPT_FILTER_EX/test2/CMakeLists.txt | 4 +- .../PAL_EXCEPT_FILTER_EX/test3/CMakeLists.txt | 4 +- .../PAL_TRY_EXCEPT/test1/CMakeLists.txt | 4 +- .../PAL_TRY_EXCEPT/test2/CMakeLists.txt | 4 +- .../PAL_TRY_EXCEPT_EX/test1/CMakeLists.txt | 4 +- .../PAL_TRY_EXCEPT_EX/test2/CMakeLists.txt | 4 +- .../PAL_TRY_EXCEPT_EX/test3/CMakeLists.txt | 4 +- .../PAL_TRY_LEAVE_FINALLY/test1/CMakeLists.txt | 4 +- .../RaiseException/test1/CMakeLists.txt | 4 +- .../RaiseException/test2/CMakeLists.txt | 4 +- .../RaiseException/test3/CMakeLists.txt | 4 +- .../test1/CMakeLists.txt | 4 +- .../pal_except/test1/CMakeLists.txt | 4 +- .../pal_except/test2/CMakeLists.txt | 4 +- .../pal_except/test3/CMakeLists.txt | 4 +- .../pal_except/test4/CMakeLists.txt | 4 +- .../pal_except/test5/CMakeLists.txt | 4 +- .../pal_except/test6/CMakeLists.txt | 4 +- .../pal_except/test7/CMakeLists.txt | 4 +- .../pal_finally/test1/CMakeLists.txt | 4 +- .../pal_sxs/test1/CMakeLists.txt | 7 +- .../file_io/AreFileApisANSI/test1/CMakeLists.txt | 4 +- .../file_io/CompareFileTime/test1/CMakeLists.txt | 4 +- .../file_io/CopyFileA/test1/CMakeLists.txt | 4 +- .../file_io/CopyFileA/test2/CMakeLists.txt | 4 +- .../file_io/CopyFileA/test3/CMakeLists.txt | 4 +- .../file_io/CopyFileA/test4/CMakeLists.txt | 4 +- .../file_io/CopyFileW/test1/CMakeLists.txt | 4 +- .../file_io/CopyFileW/test2/CMakeLists.txt | 4 +- .../file_io/CopyFileW/test3/CMakeLists.txt | 4 +- .../file_io/CreateDirectoryA/test1/CMakeLists.txt | 4 +- .../file_io/CreateDirectoryA/test2/CMakeLists.txt | 4 +- .../file_io/CreateDirectoryW/test1/CMakeLists.txt | 4 +- .../file_io/CreateDirectoryW/test2/CMakeLists.txt | 4 +- .../file_io/CreateFileA/test1/CMakeLists.txt | 4 +- .../file_io/CreateFileW/test1/CMakeLists.txt | 4 +- .../file_io/DeleteFileA/test1/CMakeLists.txt | 4 +- .../file_io/DeleteFileW/test1/CMakeLists.txt | 4 +- .../file_io/FILECanonicalizePath/CMakeLists.txt | 4 +- .../FileTimeToDosDateTime/test1/CMakeLists.txt | 4 +- .../file_io/FindClose/test1/CMakeLists.txt | 4 +- .../file_io/FindFirstFileA/test1/CMakeLists.txt | 4 +- .../file_io/FindFirstFileW/test1/CMakeLists.txt | 4 +- .../file_io/FindNextFileA/test1/CMakeLists.txt | 4 +- .../file_io/FindNextFileA/test2/CMakeLists.txt | 4 +- .../file_io/FindNextFileW/test1/CMakeLists.txt | 4 +- .../file_io/FindNextFileW/test2/CMakeLists.txt | 4 +- .../file_io/FlushFileBuffers/test1/CMakeLists.txt | 4 +- .../file_io/GetConsoleCP/test1/CMakeLists.txt | 4 +- .../GetConsoleOutputCP/test1/CMakeLists.txt | 4 +- .../GetCurrentDirectoryA/test1/CMakeLists.txt | 4 +- .../GetCurrentDirectoryW/test1/CMakeLists.txt | 4 +- .../file_io/GetDiskFreeSpaceW/test1/CMakeLists.txt | 4 +- .../file_io/GetDiskFreeSpaceW/test2/CMakeLists.txt | 4 +- .../GetFileAttributesA/test1/CMakeLists.txt | 4 +- .../GetFileAttributesExW/test1/CMakeLists.txt | 4 +- .../GetFileAttributesExW/test2/CMakeLists.txt | 4 +- .../GetFileAttributesW/test1/CMakeLists.txt | 4 +- .../file_io/GetFileSize/test1/CMakeLists.txt | 4 +- .../file_io/GetFileSizeEx/test1/CMakeLists.txt | 4 +- .../file_io/GetFileTime/test1/CMakeLists.txt | 4 +- .../file_io/GetFileTime/test2/CMakeLists.txt | 4 +- .../file_io/GetFileTime/test3/CMakeLists.txt | 4 +- .../file_io/GetFileTime/test4/CMakeLists.txt | 4 +- .../file_io/GetFileTime/test5/CMakeLists.txt | 4 +- .../file_io/GetFileTime/test6/CMakeLists.txt | 4 +- .../file_io/GetFileTime/test7/CMakeLists.txt | 4 +- .../file_io/GetFileType/test1/CMakeLists.txt | 4 +- .../file_io/GetFileType/test2/CMakeLists.txt | 4 +- .../file_io/GetFileType/test3/CMakeLists.txt | 4 +- .../file_io/GetFullPathNameA/test1/CMakeLists.txt | 4 +- .../file_io/GetFullPathNameA/test2/CMakeLists.txt | 4 +- .../file_io/GetFullPathNameA/test3/CMakeLists.txt | 4 +- .../file_io/GetFullPathNameA/test4/CMakeLists.txt | 4 +- .../file_io/GetFullPathNameW/test1/CMakeLists.txt | 4 +- .../file_io/GetFullPathNameW/test2/CMakeLists.txt | 4 +- .../file_io/GetFullPathNameW/test3/CMakeLists.txt | 4 +- .../file_io/GetFullPathNameW/test4/CMakeLists.txt | 4 +- .../file_io/GetLongPathNameW/test1/CMakeLists.txt | 4 +- .../file_io/GetLongPathNameW/test2/CMakeLists.txt | 4 +- .../file_io/GetStdHandle/test1/CMakeLists.txt | 4 +- .../file_io/GetStdHandle/test2/CMakeLists.txt | 4 +- .../file_io/GetSystemTime/test1/CMakeLists.txt | 4 +- .../GetSystemTimeAsFileTime/test1/CMakeLists.txt | 4 +- .../file_io/GetTempFileNameA/test1/CMakeLists.txt | 4 +- .../file_io/GetTempFileNameA/test2/CMakeLists.txt | 4 +- .../file_io/GetTempFileNameA/test3/CMakeLists.txt | 4 +- .../file_io/GetTempFileNameW/test1/CMakeLists.txt | 4 +- .../GetTempFileNameW/test1/GetTempFileNameW.cpp | 2 +- .../file_io/GetTempFileNameW/test2/CMakeLists.txt | 4 +- .../file_io/GetTempFileNameW/test3/CMakeLists.txt | 4 +- .../file_io/GetTempPathW/test1/CMakeLists.txt | 4 +- .../file_io/MoveFileA/test1/CMakeLists.txt | 4 +- .../file_io/MoveFileExA/test1/CMakeLists.txt | 4 +- .../file_io/MoveFileExW/test1/CMakeLists.txt | 4 +- .../file_io/MoveFileW/test1/CMakeLists.txt | 4 +- .../palsuite/file_io/ReadFile/test1/CMakeLists.txt | 4 +- .../palsuite/file_io/ReadFile/test2/CMakeLists.txt | 4 +- .../palsuite/file_io/ReadFile/test2/ReadFile.cpp | 4 - .../palsuite/file_io/ReadFile/test3/CMakeLists.txt | 4 +- .../palsuite/file_io/ReadFile/test4/CMakeLists.txt | 4 +- .../file_io/RemoveDirectoryA/test1/CMakeLists.txt | 4 +- .../file_io/RemoveDirectoryW/test1/CMakeLists.txt | 4 +- .../file_io/SearchPathA/test1/CMakeLists.txt | 4 +- .../file_io/SearchPathW/test1/CMakeLists.txt | 4 +- .../SetCurrentDirectoryA/test1/CMakeLists.txt | 4 +- .../SetCurrentDirectoryA/test2/CMakeLists.txt | 4 +- .../SetCurrentDirectoryA/test3/CMakeLists.txt | 4 +- .../SetCurrentDirectoryW/test1/CMakeLists.txt | 4 +- .../SetCurrentDirectoryW/test2/CMakeLists.txt | 4 +- .../SetCurrentDirectoryW/test3/CMakeLists.txt | 4 +- .../file_io/SetEndOfFile/test1/CMakeLists.txt | 4 +- .../file_io/SetEndOfFile/test2/CMakeLists.txt | 4 +- .../file_io/SetEndOfFile/test3/CMakeLists.txt | 4 +- .../file_io/SetEndOfFile/test4/CMakeLists.txt | 4 +- .../file_io/SetEndOfFile/test5/CMakeLists.txt | 4 +- .../SetFileAttributesA/test1/CMakeLists.txt | 4 +- .../SetFileAttributesA/test2/CMakeLists.txt | 4 +- .../SetFileAttributesA/test3/CMakeLists.txt | 4 +- .../SetFileAttributesA/test4/CMakeLists.txt | 4 +- .../SetFileAttributesW/test1/CMakeLists.txt | 4 +- .../SetFileAttributesW/test2/CMakeLists.txt | 4 +- .../SetFileAttributesW/test3/CMakeLists.txt | 4 +- .../SetFileAttributesW/test4/CMakeLists.txt | 4 +- .../file_io/SetFilePointer/test1/CMakeLists.txt | 4 +- .../file_io/SetFilePointer/test2/CMakeLists.txt | 4 +- .../file_io/SetFilePointer/test3/CMakeLists.txt | 4 +- .../file_io/SetFilePointer/test4/CMakeLists.txt | 4 +- .../file_io/SetFilePointer/test5/CMakeLists.txt | 4 +- .../file_io/SetFilePointer/test6/CMakeLists.txt | 4 +- .../file_io/SetFilePointer/test7/CMakeLists.txt | 4 +- .../file_io/SetFileTime/test1/CMakeLists.txt | 4 +- .../file_io/SetFileTime/test2/CMakeLists.txt | 4 +- .../file_io/SetFileTime/test3/CMakeLists.txt | 4 +- .../file_io/SetFileTime/test4/CMakeLists.txt | 4 +- .../file_io/WriteFile/test1/CMakeLists.txt | 4 +- .../file_io/WriteFile/test2/CMakeLists.txt | 4 +- .../palsuite/file_io/WriteFile/test2/WriteFile.cpp | 4 - .../file_io/WriteFile/test3/CMakeLists.txt | 4 +- .../file_io/WriteFile/test4/CMakeLists.txt | 4 +- .../file_io/WriteFile/test5/CMakeLists.txt | 4 +- .../file_io/errorpathnotfound/test1/CMakeLists.txt | 4 +- .../file_io/errorpathnotfound/test2/CMakeLists.txt | 4 +- .../file_io/errorpathnotfound/test3/CMakeLists.txt | 4 +- .../file_io/errorpathnotfound/test4/CMakeLists.txt | 4 +- .../file_io/gettemppatha/test1/CMakeLists.txt | 4 +- .../CreateFileMappingA/test1/CMakeLists.txt | 4 +- .../CreateFileMappingA/test3/CMakeLists.txt | 4 +- .../CreateFileMappingA/test4/CMakeLists.txt | 4 +- .../CreateFileMappingA/test5/CMakeLists.txt | 4 +- .../CreateFileMappingA/test6/CMakeLists.txt | 4 +- .../CreateFileMappingA/test7/CMakeLists.txt | 4 +- .../CreateFileMappingA/test8/CMakeLists.txt | 4 +- .../CreateFileMappingA/test9/CMakeLists.txt | 4 +- .../CreateFileMapping_neg1/CMakeLists.txt | 4 +- .../CreateFileMappingW/test1/CMakeLists.txt | 4 +- .../CreateFileMappingW/test2/CMakeLists.txt | 4 +- .../CreateFileMappingW/test3/CMakeLists.txt | 4 +- .../CreateFileMappingW/test4/CMakeLists.txt | 4 +- .../CreateFileMappingW/test5/CMakeLists.txt | 4 +- .../CreateFileMappingW/test6/CMakeLists.txt | 4 +- .../CreateFileMappingW/test7/CMakeLists.txt | 4 +- .../CreateFileMappingW/test8/CMakeLists.txt | 4 +- .../CreateFileMappingW/test9/CMakeLists.txt | 4 +- .../FreeLibrary/test1/CMakeLists.txt | 4 +- .../FreeLibrary/test2/CMakeLists.txt | 4 +- .../FreeLibraryAndExitThread/test1/CMakeLists.txt | 4 +- .../GetModuleFileNameA/test1/CMakeLists.txt | 4 +- .../GetModuleFileNameA/test2/CMakeLists.txt | 4 +- .../GetModuleFileNameW/test1/CMakeLists.txt | 4 +- .../GetModuleFileNameW/test2/CMakeLists.txt | 4 +- .../GetProcAddress/test1/CMakeLists.txt | 4 +- .../GetProcAddress/test2/CMakeLists.txt | 4 +- .../GetProcessHeap/test1/CMakeLists.txt | 4 +- .../HeapAlloc/test1/CMakeLists.txt | 4 +- .../HeapAlloc/test2/CMakeLists.txt | 4 +- .../HeapAlloc/test3/CMakeLists.txt | 4 +- .../HeapFree/test1/CMakeLists.txt | 4 +- .../HeapReAlloc/test1/CMakeLists.txt | 4 +- .../HeapReAlloc/test2/CMakeLists.txt | 4 +- .../HeapReAlloc/test3/CMakeLists.txt | 4 +- .../HeapReAlloc/test4/CMakeLists.txt | 4 +- .../HeapReAlloc/test5/CMakeLists.txt | 4 +- .../LocalAlloc/test1/CMakeLists.txt | 4 +- .../LocalFree/test1/CMakeLists.txt | 4 +- .../LocalFree/test2/CMakeLists.txt | 4 +- .../LockFile/test1/CMakeLists.txt | 8 +- .../LockFile/test2/CMakeLists.txt | 4 +- .../LockFile/test3/CMakeLists.txt | 8 +- .../LockFile/test4/CMakeLists.txt | 4 +- .../LockFile/test5/CMakeLists.txt | 8 +- .../LockFile/test6/CMakeLists.txt | 8 +- .../LockFile/test7/CMakeLists.txt | 4 +- .../MapViewOfFile/test1/CMakeLists.txt | 4 +- .../MapViewOfFile/test2/CMakeLists.txt | 4 +- .../MapViewOfFile/test3/CMakeLists.txt | 4 +- .../MapViewOfFile/test4/CMakeLists.txt | 4 +- .../MapViewOfFile/test5/CMakeLists.txt | 4 +- .../MapViewOfFile/test6/CMakeLists.txt | 4 +- .../OpenFileMappingA/test1/CMakeLists.txt | 4 +- .../OpenFileMappingA/test2/CMakeLists.txt | 4 +- .../OpenFileMappingA/test3/CMakeLists.txt | 4 +- .../OpenFileMappingW/test1/CMakeLists.txt | 4 +- .../OpenFileMappingW/test2/CMakeLists.txt | 4 +- .../OpenFileMappingW/test3/CMakeLists.txt | 4 +- .../ProbeMemory/ProbeMemory_neg1/CMakeLists.txt | 4 +- .../ProbeMemory/test1/CMakeLists.txt | 4 +- .../RtlMoveMemory/test1/CMakeLists.txt | 4 +- .../RtlMoveMemory/test3/CMakeLists.txt | 4 +- .../RtlMoveMemory/test4/CMakeLists.txt | 4 +- .../RtlMoveMemory/test5/CMakeLists.txt | 4 +- .../UnlockFile/test1/CMakeLists.txt | 8 +- .../UnlockFile/test2/CMakeLists.txt | 4 +- .../UnlockFile/test3/CMakeLists.txt | 8 +- .../UnlockFile/test4/CMakeLists.txt | 4 +- .../UnmapViewOfFile/test1/CMakeLists.txt | 4 +- .../UnmapViewOfFile/test2/CMakeLists.txt | 4 +- .../VirtualAlloc/test1/CMakeLists.txt | 4 +- .../VirtualAlloc/test10/CMakeLists.txt | 4 +- .../VirtualAlloc/test11/CMakeLists.txt | 4 +- .../VirtualAlloc/test12/CMakeLists.txt | 4 +- .../VirtualAlloc/test13/CMakeLists.txt | 4 +- .../VirtualAlloc/test14/CMakeLists.txt | 4 +- .../VirtualAlloc/test15/CMakeLists.txt | 4 +- .../VirtualAlloc/test16/CMakeLists.txt | 4 +- .../VirtualAlloc/test17/CMakeLists.txt | 4 +- .../VirtualAlloc/test18/CMakeLists.txt | 4 +- .../VirtualAlloc/test19/CMakeLists.txt | 4 +- .../VirtualAlloc/test2/CMakeLists.txt | 4 +- .../VirtualAlloc/test20/CMakeLists.txt | 4 +- .../VirtualAlloc/test21/CMakeLists.txt | 4 +- .../VirtualAlloc/test22/CMakeLists.txt | 4 +- .../VirtualAlloc/test3/CMakeLists.txt | 4 +- .../VirtualAlloc/test4/CMakeLists.txt | 4 +- .../VirtualAlloc/test5/CMakeLists.txt | 4 +- .../VirtualAlloc/test6/CMakeLists.txt | 4 +- .../VirtualAlloc/test7/CMakeLists.txt | 4 +- .../VirtualAlloc/test8/CMakeLists.txt | 4 +- .../VirtualAlloc/test9/CMakeLists.txt | 4 +- .../VirtualFree/test1/CMakeLists.txt | 4 +- .../VirtualFree/test2/CMakeLists.txt | 4 +- .../VirtualFree/test3/CMakeLists.txt | 4 +- .../VirtualProtect/test1/CMakeLists.txt | 4 +- .../VirtualProtect/test2/CMakeLists.txt | 4 +- .../VirtualProtect/test3/CMakeLists.txt | 4 +- .../VirtualProtect/test4/CMakeLists.txt | 4 +- .../VirtualProtect/test6/CMakeLists.txt | 4 +- .../VirtualProtect/test7/CMakeLists.txt | 4 +- .../VirtualQuery/test1/CMakeLists.txt | 4 +- .../loader/LoadLibraryA/test1/CMakeLists.txt | 4 +- .../loader/LoadLibraryA/test2/CMakeLists.txt | 4 +- .../loader/LoadLibraryA/test3/CMakeLists.txt | 4 +- .../loader/LoadLibraryA/test5/CMakeLists.txt | 4 +- .../loader/LoadLibraryA/test6/CMakeLists.txt | 8 +- .../loader/LoadLibraryA/test7/CMakeLists.txt | 4 +- .../loader/LoadLibraryA/test8/CMakeLists.txt | 8 +- .../loader/LoadLibraryW/test1/CMakeLists.txt | 4 +- .../loader/LoadLibraryW/test2/CMakeLists.txt | 4 +- .../loader/LoadLibraryW/test3/CMakeLists.txt | 4 +- .../loader/LoadLibraryW/test5/CMakeLists.txt | 4 +- .../CompareStringA/test1/CMakeLists.txt | 4 +- .../CompareStringW/test1/CMakeLists.txt | 4 +- .../locale_info/GetACP/test1/CMakeLists.txt | 4 +- .../locale_info/GetCPInfo/test1/CMakeLists.txt | 4 +- .../locale_info/GetCPInfo/test2/CMakeLists.txt | 4 +- .../locale_info/GetCPInfo/test3/CMakeLists.txt | 4 +- .../GetLocaleInfoW/test1/CMakeLists.txt | 4 +- .../GetLocaleInfoW/test2/CMakeLists.txt | 4 +- .../GetStringTypeExW/test1/CMakeLists.txt | 4 +- .../GetStringTypeExW/test2/CMakeLists.txt | 4 +- .../GetSystemDefaultLangID/test1/CMakeLists.txt | 4 +- .../GetThreadLocale/test1/CMakeLists.txt | 4 +- .../GetTimeZoneInformation/test1/CMakeLists.txt | 4 +- .../GetUserDefaultLCID/test1/CMakeLists.txt | 4 +- .../GetUserDefaultLangID/test1/CMakeLists.txt | 4 +- .../IsDBCSLeadByte/test1/CMakeLists.txt | 4 +- .../IsDBCSLeadByteEx/test1/CMakeLists.txt | 4 +- .../IsValidCodePage/test1/CMakeLists.txt | 4 +- .../IsValidCodePage/test2/CMakeLists.txt | 4 +- .../locale_info/IsValidLocale/test1/CMakeLists.txt | 4 +- .../MultiByteToWideChar/test1/CMakeLists.txt | 4 +- .../MultiByteToWideChar/test2/CMakeLists.txt | 4 +- .../MultiByteToWideChar/test3/CMakeLists.txt | 4 +- .../MultiByteToWideChar/test4/CMakeLists.txt | 4 +- .../SetThreadLocale/test1/CMakeLists.txt | 4 +- .../WideCharToMultiByte/test1/CMakeLists.txt | 4 +- .../WideCharToMultiByte/test2/CMakeLists.txt | 4 +- .../WideCharToMultiByte/test3/CMakeLists.txt | 4 +- .../WideCharToMultiByte/test4/CMakeLists.txt | 4 +- .../WideCharToMultiByte/test5/CMakeLists.txt | 4 +- .../miscellaneous/CharNextA/test1/CMakeLists.txt | 4 +- .../miscellaneous/CharNextA/test2/CMakeLists.txt | 4 +- .../miscellaneous/CharNextExA/test1/CMakeLists.txt | 4 +- .../miscellaneous/CharNextExA/test2/CMakeLists.txt | 4 +- .../miscellaneous/CloseHandle/test1/CMakeLists.txt | 4 +- .../miscellaneous/CloseHandle/test2/CMakeLists.txt | 4 +- .../miscellaneous/CreatePipe/test1/CMakeLists.txt | 4 +- .../FlushInstructionCache/test1/CMakeLists.txt | 4 +- .../FormatMessageW/test1/CMakeLists.txt | 4 +- .../FormatMessageW/test2/CMakeLists.txt | 4 +- .../miscellaneous/FormatMessageW/test2/test.cpp | 2 +- .../FormatMessageW/test3/CMakeLists.txt | 4 +- .../FormatMessageW/test4/CMakeLists.txt | 4 +- .../FormatMessageW/test5/CMakeLists.txt | 4 +- .../FormatMessageW/test6/CMakeLists.txt | 4 +- .../FreeEnvironmentStringsW/test1/CMakeLists.txt | 4 +- .../FreeEnvironmentStringsW/test2/CMakeLists.txt | 4 +- .../GetCalendarInfoW/test1/CMakeLists.txt | 4 +- .../GetCalendarInfoW/test2/CMakeLists.txt | 4 +- .../GetCommandLineW/test1/CMakeLists.txt | 4 +- .../GetComputerNameW/test1/CMakeLists.txt | 4 +- .../GetDateFormatW_neg1/CMakeLists.txt | 4 +- .../GetDateFormatW_neg2/CMakeLists.txt | 4 +- .../GetDateFormatW/test1/CMakeLists.txt | 4 +- .../GetEnvironmentStringsW/test1/CMakeLists.txt | 4 +- .../GetEnvironmentVariableA/test1/CMakeLists.txt | 4 +- .../GetEnvironmentVariableA/test2/CMakeLists.txt | 4 +- .../GetEnvironmentVariableA/test3/CMakeLists.txt | 4 +- .../GetEnvironmentVariableA/test4/CMakeLists.txt | 4 +- .../GetEnvironmentVariableA/test5/CMakeLists.txt | 4 +- .../GetEnvironmentVariableA/test6/CMakeLists.txt | 4 +- .../GetEnvironmentVariableW/test1/CMakeLists.txt | 4 +- .../GetEnvironmentVariableW/test2/CMakeLists.txt | 4 +- .../GetEnvironmentVariableW/test3/CMakeLists.txt | 4 +- .../GetEnvironmentVariableW/test4/CMakeLists.txt | 4 +- .../GetEnvironmentVariableW/test5/CMakeLists.txt | 4 +- .../GetEnvironmentVariableW/test6/CMakeLists.txt | 4 +- .../GetLastError/test1/CMakeLists.txt | 4 +- .../GetSystemInfo/test1/CMakeLists.txt | 4 +- .../GetTickCount/test1/CMakeLists.txt | 4 +- .../GetUserNameW/test1/CMakeLists.txt | 4 +- .../GetVersionExA/test1/CMakeLists.txt | 4 +- .../GetVersionExW/test1/CMakeLists.txt | 4 +- .../InterLockedExchangeAdd/test1/CMakeLists.txt | 4 +- .../InterLockedExchangeAdd/test1/test.cpp | 2 +- .../InterlockedBit/test1/CMakeLists.txt | 4 +- .../InterlockedBit/test2/CMakeLists.txt | 4 +- .../test1/CMakeLists.txt | 4 +- .../test2/CMakeLists.txt | 4 +- .../test1/CMakeLists.txt | 4 +- .../InterlockedCompareExchange64/test1/test.cpp | 25 +- .../test2/CMakeLists.txt | 4 +- .../InterlockedCompareExchange64/test2/test.cpp | 4 +- .../test1/CMakeLists.txt | 4 +- .../InterlockedDecrement/test1/CMakeLists.txt | 4 +- .../InterlockedDecrement/test2/CMakeLists.txt | 4 +- .../InterlockedDecrement64/test1/CMakeLists.txt | 4 +- .../InterlockedDecrement64/test1/test.cpp | 14 +- .../InterlockedDecrement64/test2/CMakeLists.txt | 4 +- .../InterlockedDecrement64/test2/test.cpp | 4 +- .../InterlockedExchange/test1/CMakeLists.txt | 4 +- .../InterlockedExchange64/test1/CMakeLists.txt | 4 +- .../InterlockedExchange64/test1/test.cpp | 15 +- .../test1/CMakeLists.txt | 4 +- .../InterlockedIncrement/test1/CMakeLists.txt | 4 +- .../InterlockedIncrement/test2/CMakeLists.txt | 4 +- .../InterlockedIncrement64/test1/CMakeLists.txt | 4 +- .../InterlockedIncrement64/test1/test.cpp | 14 +- .../InterlockedIncrement64/test2/CMakeLists.txt | 4 +- .../InterlockedIncrement64/test2/test.cpp | 4 +- .../IsBadCodePtr/test1/CMakeLists.txt | 4 +- .../IsBadReadPtr/test1/CMakeLists.txt | 4 +- .../IsBadWritePtr/test1/CMakeLists.txt | 4 +- .../IsBadWritePtr/test2/CMakeLists.txt | 4 +- .../IsBadWritePtr/test3/CMakeLists.txt | 4 +- .../miscellaneous/MessageBoxW/test1/CMakeLists.txt | 4 +- .../miscellaneous/MessageBoxW/test2/CMakeLists.txt | 4 +- .../SetEnvironmentVariableA/test1/CMakeLists.txt | 4 +- .../SetEnvironmentVariableA/test2/CMakeLists.txt | 4 +- .../SetEnvironmentVariableA/test3/CMakeLists.txt | 4 +- .../SetEnvironmentVariableA/test4/CMakeLists.txt | 4 +- .../SetEnvironmentVariableW/test1/CMakeLists.txt | 4 +- .../SetEnvironmentVariableW/test2/CMakeLists.txt | 4 +- .../SetEnvironmentVariableW/test3/CMakeLists.txt | 4 +- .../SetEnvironmentVariableW/test4/CMakeLists.txt | 4 +- .../SetLastError/test1/CMakeLists.txt | 4 +- .../miscellaneous/_i64tow/test1/CMakeLists.txt | 4 +- .../miscellaneous/lstrlenA/test1/CMakeLists.txt | 4 +- .../miscellaneous/lstrlenW/test1/CMakeLists.txt | 4 +- .../queryperformancecounter/test1/CMakeLists.txt | 4 +- .../queryperformancefrequency/test1/CMakeLists.txt | 4 +- .../PAL_GetPALDirectoryW/test1/CMakeLists.txt | 4 +- .../PAL_GetUserTempDirectoryW/test1/CMakeLists.txt | 4 +- .../PAL_Initialize_Terminate/test1/CMakeLists.txt | 4 +- .../PAL_Initialize_Terminate/test2/CMakeLists.txt | 4 +- .../test1/CMakeLists.txt | 4 +- .../test2_neg/CMakeLists.txt | 4 +- .../pal_specific/PAL_errno/test1/CMakeLists.txt | 4 +- .../PAL_get_stderr/test1/CMakeLists.txt | 4 +- .../PAL_get_stdin/test1/CMakeLists.txt | 4 +- .../PAL_get_stdout/test1/CMakeLists.txt | 4 +- .../pal_entrypoint/test1/CMakeLists.txt | 4 +- .../pal_initializedebug/test1/CMakeLists.txt | 4 +- src/pal/tests/palsuite/paltestlist.txt | 41 +- src/pal/tests/palsuite/palverify.dat | 37 +- .../tests/palsuite/samples/test1/CMakeLists.txt | 4 +- .../tests/palsuite/samples/test2/CMakeLists.txt | 4 +- .../threading/CreateEventA/test1/CMakeLists.txt | 4 +- .../threading/CreateEventA/test2/CMakeLists.txt | 4 +- .../threading/CreateEventA/test3/CMakeLists.txt | 4 +- .../threading/CreateEventW/test1/CMakeLists.txt | 4 +- .../threading/CreateEventW/test2/CMakeLists.txt | 4 +- .../threading/CreateEventW/test3/CMakeLists.txt | 4 +- .../CreateMutexA_ReleaseMutex/test1/CMakeLists.txt | 4 +- .../CreateMutexA_ReleaseMutex/test2/CMakeLists.txt | 4 +- .../CreateMutexW_ReleaseMutex/test1/CMakeLists.txt | 4 +- .../CreateMutexW_ReleaseMutex/test2/CMakeLists.txt | 4 +- .../threading/CreateProcessA/test1/CMakeLists.txt | 8 +- .../threading/CreateProcessA/test2/CMakeLists.txt | 8 +- .../threading/CreateProcessW/test1/CMakeLists.txt | 8 +- .../threading/CreateProcessW/test2/CMakeLists.txt | 8 +- .../test1/CMakeLists.txt | 4 +- .../test2/CMakeLists.txt | 4 +- .../test3/CMakeLists.txt | 4 +- .../test1/CMakeLists.txt | 4 +- .../test2/CMakeLists.txt | 4 +- .../test3/CMakeLists.txt | 4 +- .../threading/CreateThread/test1/CMakeLists.txt | 4 +- .../threading/CreateThread/test1/test1.cpp | 4 - .../threading/CreateThread/test2/CMakeLists.txt | 4 +- .../threading/CreateThread/test3/CMakeLists.txt | 4 +- .../CriticalSectionFunctions/test1/CMakeLists.txt | 4 +- .../CriticalSectionFunctions/test2/CMakeLists.txt | 4 +- .../CriticalSectionFunctions/test3/CMakeLists.txt | 4 +- .../CriticalSectionFunctions/test4/CMakeLists.txt | 4 +- .../CriticalSectionFunctions/test5/CMakeLists.txt | 4 +- .../CriticalSectionFunctions/test6/CMakeLists.txt | 4 +- .../CriticalSectionFunctions/test7/CMakeLists.txt | 4 +- .../CriticalSectionFunctions/test8/CMakeLists.txt | 4 +- .../threading/DuplicateHandle/test1/CMakeLists.txt | 4 +- .../DuplicateHandle/test10/CMakeLists.txt | 4 +- .../DuplicateHandle/test11/CMakeLists.txt | 8 +- .../DuplicateHandle/test12/CMakeLists.txt | 4 +- .../threading/DuplicateHandle/test2/CMakeLists.txt | 4 +- .../threading/DuplicateHandle/test3/CMakeLists.txt | 4 +- .../threading/DuplicateHandle/test4/CMakeLists.txt | 4 +- .../threading/DuplicateHandle/test5/CMakeLists.txt | 4 +- .../threading/DuplicateHandle/test6/CMakeLists.txt | 4 +- .../threading/DuplicateHandle/test7/CMakeLists.txt | 4 +- .../threading/DuplicateHandle/test8/CMakeLists.txt | 4 +- .../threading/DuplicateHandle/test9/CMakeLists.txt | 4 +- .../threading/ExitProcess/test1/CMakeLists.txt | 4 +- .../threading/ExitProcess/test2/CMakeLists.txt | 4 +- .../threading/ExitProcess/test3/CMakeLists.txt | 4 +- .../threading/ExitThread/test1/CMakeLists.txt | 4 +- .../threading/ExitThread/test2/CMakeLists.txt | 8 +- .../GetCurrentProcess/test1/CMakeLists.txt | 4 +- .../GetCurrentProcessId/test1/CMakeLists.txt | 4 +- .../GetCurrentThread/test1/CMakeLists.txt | 4 +- .../GetCurrentThread/test2/CMakeLists.txt | 4 +- .../GetCurrentThreadId/test1/CMakeLists.txt | 4 +- .../GetExitCodeProcess/test1/CMakeLists.txt | 8 +- .../threading/GetProcessTimes/test2/CMakeLists.txt | 4 +- .../threading/GetThreadTimes/test1/CMakeLists.txt | 4 +- .../threading/NamedMutex/test1/CMakeLists.txt | 4 +- .../palsuite/threading/NamedMutex/test1/nopal.cpp | 1 + .../threading/OpenEventW/test1/CMakeLists.txt | 4 +- .../threading/OpenEventW/test2/CMakeLists.txt | 4 +- .../threading/OpenEventW/test3/CMakeLists.txt | 8 +- .../threading/OpenEventW/test4/CMakeLists.txt | 4 +- .../threading/OpenEventW/test5/CMakeLists.txt | 4 +- .../threading/OpenProcess/test1/CMakeLists.txt | 8 +- .../QueryThreadCycleTime/test1/CMakeLists.txt | 4 +- .../threading/QueueUserAPC/test1/CMakeLists.txt | 4 +- .../threading/QueueUserAPC/test2/CMakeLists.txt | 4 +- .../threading/QueueUserAPC/test3/CMakeLists.txt | 4 +- .../threading/QueueUserAPC/test4/CMakeLists.txt | 4 +- .../threading/QueueUserAPC/test5/CMakeLists.txt | 4 +- .../threading/QueueUserAPC/test6/CMakeLists.txt | 4 +- .../threading/QueueUserAPC/test7/CMakeLists.txt | 4 +- .../threading/ReleaseMutex/test3/CMakeLists.txt | 4 +- .../threading/ResetEvent/test1/CMakeLists.txt | 4 +- .../threading/ResetEvent/test2/CMakeLists.txt | 4 +- .../threading/ResetEvent/test3/CMakeLists.txt | 4 +- .../threading/ResetEvent/test4/CMakeLists.txt | 4 +- .../threading/ResumeThread/test1/CMakeLists.txt | 4 +- .../threading/SetErrorMode/test1/CMakeLists.txt | 4 +- .../threading/SetEvent/test1/CMakeLists.txt | 4 +- .../threading/SetEvent/test2/CMakeLists.txt | 4 +- .../threading/SetEvent/test3/CMakeLists.txt | 4 +- .../threading/SetEvent/test4/CMakeLists.txt | 4 +- .../palsuite/threading/Sleep/test1/CMakeLists.txt | 4 +- .../palsuite/threading/Sleep/test2/CMakeLists.txt | 4 +- .../threading/SleepEx/test1/CMakeLists.txt | 4 +- .../threading/SleepEx/test2/CMakeLists.txt | 4 +- .../threading/SwitchToThread/test1/CMakeLists.txt | 4 +- .../palsuite/threading/TLS/test1/CMakeLists.txt | 4 +- .../palsuite/threading/TLS/test2/CMakeLists.txt | 4 +- .../palsuite/threading/TLS/test3/CMakeLists.txt | 4 +- .../palsuite/threading/TLS/test4/CMakeLists.txt | 4 +- .../palsuite/threading/TLS/test5/CMakeLists.txt | 4 +- .../TLS/test6_optimizedtls/CMakeLists.txt | 4 +- .../TerminateProcess/test1/CMakeLists.txt | 4 +- .../threading/ThreadPriority/test1/CMakeLists.txt | 4 +- .../WaitForMultipleObjects/test1/CMakeLists.txt | 4 +- .../WaitForMultipleObjectsEx/test1/CMakeLists.txt | 4 +- .../WaitForMultipleObjectsEx/test2/CMakeLists.txt | 4 +- .../WaitForMultipleObjectsEx/test3/CMakeLists.txt | 4 +- .../WaitForMultipleObjectsEx/test4/CMakeLists.txt | 4 +- .../WaitForMultipleObjectsEx/test5/CMakeLists.txt | 8 +- .../WaitForMultipleObjectsEx/test6/CMakeLists.txt | 8 +- .../WFSOExMutexTest/CMakeLists.txt | 4 +- .../WFSOExSemaphoreTest/CMakeLists.txt | 4 +- .../WFSOExThreadTest/CMakeLists.txt | 4 +- .../WFSOMutexTest/CMakeLists.txt | 4 +- .../WFSOProcessTest/CMakeLists.txt | 8 +- .../WFSOSemaphoreTest/CMakeLists.txt | 4 +- .../WFSOThreadTest/CMakeLists.txt | 4 +- .../WaitForSingleObject/test1/CMakeLists.txt | 4 +- .../threading/YieldProcessor/test1/CMakeLists.txt | 4 +- .../releasesemaphore/test1/CMakeLists.txt | 4 +- src/pal/tools/clang-compiler-override-arm.txt | 20 + src/pal/tools/gen-buildsys-clang.sh | 57 +- src/palrt/CMakeLists.txt | 2 +- src/palrt/coguid.cpp | 2 +- src/publish.proj | 9 +- src/strongname/api/api.props | 43 - .../api/crossgen/strongname_crossgen.nativeproj | 18 - src/strongname/api/dac/dirs.proj | 19 - src/strongname/api/dirs.proj | 22 - src/strongname/api/wks/strongname_wks.nativeproj | 23 - src/strongname/dirs.proj | 29 - src/strongname/inc/StrongName_inc.nativeproj | 31 - src/strongname/strongname.vcxproj | 396 - src/strongname/strongname.vcxproj.filters | 108 - src/strongname/strongname.vcxproj.vspscc | 10 - src/syncAzure.proj | 8 +- .../GenClrDebugResource.nativeproj | 26 - src/tools/InjectResource/InjectResource.nativeproj | 27 - src/tools/crossgen/crossgen.nativeproj | 94 - src/tools/dirs.proj | 77 - src/tools/metainfo/metainfo.nativeproj | 42 - src/unwinder/CMakeLists.txt | 10 +- src/unwinder/dac/dirs.proj | 18 - src/unwinder/dac/hostlocal/unwinder_dac.nativeproj | 13 - .../dac/hostwinamd64/unwinder_dac.nativeproj | 15 - .../dac/hostwinx86/unwinder_dac.nativeproj | 15 - src/unwinder/dirs.proj | 19 - src/unwinder/i386/unwinder_i386.cpp | 194 + src/unwinder/i386/unwinder_i386.h | 33 + src/unwinder/unwinder.targets | 60 - src/utilcode/UtilCode.vcproj | 617 - src/utilcode/UtilCode.vcxproj | 450 - src/utilcode/UtilCode.vcxproj.vspscc | 10 - src/utilcode/crossgen/utilcode_crossgen.nativeproj | 21 - src/utilcode/dac/dirs.proj | 18 - src/utilcode/dirs.proj | 27 - src/utilcode/dyncrt/dyncrt.nativeproj | 25 - src/utilcode/log.cpp | 2 +- src/utilcode/sstring.cpp | 2 +- src/utilcode/staticnohost/staticnohost.nativeproj | 15 - src/utilcode/staticnohost/staticnohost.targets | 15 - src/utilcode/util.cpp | 113 +- src/utilcode/utilcode.settings.targets | 132 - src/vm/CMakeLists.txt | 4 +- src/vm/amd64/CLRErrorReporting.vrg | 5 - src/vm/amd64/jitinterfaceamd64.cpp | 5 +- src/vm/appdomain.cpp | 6 +- src/vm/appdomainnative.cpp | 198 +- src/vm/appdomainnative.hpp | 3 +- src/vm/appdomainstack.cpp | 85 - src/vm/appdomainstack.h | 3 - src/vm/argdestination.h | 7 +- src/vm/arm/asmhelpers.S | 2 - src/vm/arm64/asmhelpers.S | 96 +- src/vm/arm64/crthelpers.S | 27 +- src/vm/assembly.cpp | 17 - src/vm/assembly.hpp | 3 - src/vm/assemblyspec.cpp | 9 + src/vm/ceemain.cpp | 3 +- src/vm/certificatecache.cpp | 85 - src/vm/certificatecache.h | 40 - src/vm/cgensys.h | 1 + src/vm/codeman.cpp | 135 +- src/vm/codeman.h | 16 +- src/vm/comsynchronizable.cpp | 34 +- src/vm/comsynchronizable.h | 4 +- src/vm/confighelper.cpp | 309 - src/vm/confighelper.h | 203 - src/vm/corhost.cpp | 8 - src/vm/crossgen/wks_crossgen.nativeproj | 164 - .../crossgen_mscorlib/mscorlib_crossgen.nativeproj | 34 - src/vm/crst.h | 1 - src/vm/dac/dacwks.targets | 168 - src/vm/dac/dirs.proj | 18 - src/vm/dirs.proj | 20 - src/vm/dllimport.cpp | 56 - src/vm/ecalllist.h | 489 +- src/vm/eeconfig.h | 20 - src/vm/eedbginterface.h | 2 + src/vm/eedbginterfaceimpl.cpp | 2 + src/vm/eedbginterfaceimpl.h | 2 + src/vm/eetoprofinterfaceimpl.cpp | 12 - src/vm/eetwain.cpp | 460 +- src/vm/eventtrace.cpp | 5 +- src/vm/excep.cpp | 75 +- src/vm/excep.h | 23 +- src/vm/exceptionhandling.cpp | 131 +- src/vm/exceptionhandling.h | 12 +- src/vm/exinfo.cpp | 2 + src/vm/exstate.cpp | 8 +- src/vm/exstatecommon.h | 22 +- src/vm/finalizerthread.cpp | 7 +- src/vm/frames.cpp | 4 +- src/vm/frames.h | 20 +- src/vm/gccover.cpp | 8 +- src/vm/gcenv.ee.cpp | 60 +- src/vm/gcenv.ee.h | 2 + src/vm/gcenv.h | 2 - src/vm/gcheaputilities.cpp | 9 +- src/vm/gcheaputilities.h | 103 +- src/vm/gchelpers.cpp | 99 +- src/vm/gchelpers.h | 4 +- src/vm/gdbjit.cpp | 182 +- src/vm/gdbjit.h | 44 +- src/vm/i386/CLRErrorReporting.vrg | 5 - src/vm/i386/asmconstants.h | 34 + src/vm/i386/asmhelpers.S | 213 +- src/vm/i386/cgencpu.h | 24 +- src/vm/i386/cgenx86.cpp | 277 +- src/vm/i386/excepcpu.h | 38 +- src/vm/i386/excepx86.cpp | 125 +- src/vm/i386/gmsx86.cpp | 2 + src/vm/i386/jithelp.S | 27 - src/vm/i386/umthunkstub.S | 52 +- src/vm/i386/unixstubs.cpp | 37 +- src/vm/jitinterface.cpp | 212 +- src/vm/jitinterface.h | 2 + src/vm/metasig.h | 58 - src/vm/method.cpp | 13 +- src/vm/methodtable.cpp | 20 +- src/vm/methodtablebuilder.cpp | 27 + src/vm/mscorlib.cpp | 22 - src/vm/mscorlib.h | 300 +- src/vm/multicorejit.cpp | 2 +- src/vm/newcompressedstack.cpp | 1074 - src/vm/newcompressedstack.h | 197 - src/vm/object.cpp | 15 - src/vm/object.h | 219 - src/vm/prestub.cpp | 28 +- src/vm/proftoeeinterfaceimpl.cpp | 8 +- src/vm/reflectclasswriter.cpp | 125 - src/vm/reflectioninvocation.cpp | 21 - src/vm/rexcep.h | 6 + src/vm/security.h | 4 - src/vm/security.inl | 18 +- src/vm/securityattributes.cpp | 1282 - src/vm/securitydeclarative.cpp | 150 - src/vm/securitydeclarative.h | 3 - src/vm/securitydeclarative.inl | 6 - src/vm/securitydescriptor.cpp | 54 +- src/vm/securitydescriptorappdomain.cpp | 412 - src/vm/securitydescriptorassembly.cpp | 229 - src/vm/securitydescriptorassembly.h | 4 - src/vm/securityhostprotection.cpp | 102 - src/vm/securityhostprotection.h | 14 - src/vm/securityimperative.cpp | 119 - src/vm/securityimperative.h | 36 - src/vm/securitymeta.cpp | 1 - src/vm/securitypolicy.h | 17 - src/vm/securityprincipal.cpp | 227 - src/vm/securityprincipal.h | 33 - src/vm/securitystackwalk.cpp | 2439 -- src/vm/securitytransparentassembly.cpp | 6 +- src/vm/siginfo.cpp | 51 +- src/vm/stackcompressor.cpp | 378 - src/vm/stackcompressor.h | 39 - src/vm/stackwalk.cpp | 59 +- src/vm/stackwalk.h | 2 + src/vm/stubmgr.h | 14 +- src/vm/threads.cpp | 58 +- src/vm/threads.h | 13 +- src/vm/threadsuspend.cpp | 37 +- src/vm/vars.cpp | 5 - src/vm/vars.hpp | 9 - src/vm/vm.settings | 79 - src/vm/vm.targets | 59 - src/vm/wks/wks.nativeproj | 22 - src/vm/wks/wks.targets | 391 - src/zap/common.h | 4 +- src/zap/crossgen/zap_crossgen.nativeproj | 12 - src/zap/dirs.proj | 19 - src/zap/wks/zap.nativeproj | 16 - src/zap/zap.settings.targets | 52 - src/zap/zapcode.cpp | 2 +- src/zap/zapimport.cpp | 2 +- src/zap/zapimport.h | 2 +- sync.cmd | 8 +- tests/dir.props | 23 + tests/helixprep.proj | 155 + tests/helixpublish.proj | 67 + tests/issues.targets | 1349 + tests/longRunningGcTests.txt | 1 + tests/publishdependency.targets | 11 +- tests/runtest.cmd | 25 +- tests/runtest.proj | 30 +- tests/runtest.sh | 49 +- tests/scripts/arm32_ci_script.sh | 11 +- tests/scripts/perf-prep.sh | 6 +- tests/scripts/run-corefx-tests.py | 333 + tests/scripts/run-xunit-perf.cmd | 4 + tests/scripts/run-xunit-perf.sh | 37 +- tests/src/CLRTest.Execute.Bash.targets | 1 + tests/src/CLRTest.Jit.targets | 13 +- .../Coreclr.TestWrapper/CoreclrTestWrapperLib.cs | 17 +- .../build_against_pkg_dependencies/project.json | 10 +- tests/src/Common/empty/project.json | 6 +- tests/src/Common/netcoreapp/project.json | 71 +- tests/src/Common/targeting_pack_ref/project.json | 8 +- tests/src/Common/test_dependencies/project.json | 127 +- tests/src/Common/test_runtime/project.json | 13 +- .../cti/system/datetime/DateTimeCompare.csproj | 45 - .../cti/system/datetime/DateTimeCompareTo1.csproj | 45 - .../cti/system/datetime/DateTimeCtor1.csproj | 45 - .../cti/system/datetime/DateTimeCtor3.csproj | 45 - .../cti/system/datetime/DateTimeCtor4.csproj | 45 - .../cti/system/datetime/DateTimeCtor6.csproj | 45 - .../cti/system/datetime/DateTimeCtor7.csproj | 45 - .../cti/system/datetime/DateTimeDate.csproj | 45 - .../cti/system/datetime/DateTimeGetHashCode.csproj | 45 - .../cti/system/datetime/DateTimeHour.csproj | 45 - .../cti/system/datetime/DateTimeKind.csproj | 45 - .../cti/system/datetime/DateTimeMaxValue.csproj | 45 - .../cti/system/datetime/DateTimeMillisecond.csproj | 45 - .../cti/system/datetime/DateTimeMinValue.csproj | 45 - .../cti/system/datetime/DateTimeMinute.csproj | 45 - .../cti/system/datetime/DateTimeNow.csproj | 45 - .../cti/system/datetime/DateTimeParse1.csproj | 45 - .../cti/system/datetime/DateTimeParse2.csproj | 45 - .../cti/system/datetime/DateTimeParse3.csproj | 45 - .../cti/system/datetime/DateTimeParseExact1.csproj | 45 - .../cti/system/datetime/DateTimeParseExact2.csproj | 45 - .../cti/system/datetime/DateTimeParseExact3.csproj | 45 - .../cti/system/datetime/DateTimeSecond.csproj | 45 - .../cti/system/datetime/DateTimeSubtract1.csproj | 45 - .../cti/system/datetime/DateTimeSubtract2.csproj | 45 - .../cti/system/datetime/DateTimeTicks.csproj | 45 - .../cti/system/datetime/DateTimeTimeOfDay.csproj | 45 - .../cti/system/datetime/DateTimeToFileTime.csproj | 45 - .../system/datetime/DateTimeToFileTimeUtc.csproj | 45 - .../cti/system/datetime/DateTimeToLocalTime.csproj | 45 - .../cti/system/datetime/DateTimeToString1.csproj | 45 - .../cti/system/datetime/DateTimeToString2.csproj | 45 - .../cti/system/datetime/DateTimeToString3.csproj | 45 - .../cti/system/datetime/DateTimeUtcNow.csproj | 45 - .../cti/system/datetime/DateTimetoday.csproj | 45 - .../cti/system/datetime/cfdatetimetools.cs | 142 - .../cti/system/datetime/datetimecompare.cs | 250 - .../cti/system/datetime/datetimecompareto1.cs | 250 - .../cti/system/datetime/datetimector1.cs | 342 - .../cti/system/datetime/datetimector3.cs | 521 - .../cti/system/datetime/datetimector4.cs | 638 - .../cti/system/datetime/datetimector6.cs | 570 - .../cti/system/datetime/datetimector7.cs | 689 - .../cti/system/datetime/datetimedate.cs | 144 - .../cti/system/datetime/datetimegethashcode.cs | 141 - .../cti/system/datetime/datetimehour.cs | 99 - .../cti/system/datetime/datetimekind.cs | 221 - .../cti/system/datetime/datetimemaxvalue.cs | 73 - .../cti/system/datetime/datetimemillisecond.cs | 124 - .../cti/system/datetime/datetimeminute.cs | 95 - .../cti/system/datetime/datetimeminvalue.cs | 73 - .../CoreMangLib/cti/system/datetime/datetimenow.cs | 93 - .../cti/system/datetime/datetimeparse1.cs | 828 - .../cti/system/datetime/datetimeparse2.cs | 216 - .../cti/system/datetime/datetimeparse3.cs | 274 - .../cti/system/datetime/datetimeparseexact1.cs | 964 - .../cti/system/datetime/datetimeparseexact2.cs | 285 - .../cti/system/datetime/datetimeparseexact3.cs | 318 - .../cti/system/datetime/datetimesecond.cs | 98 - .../cti/system/datetime/datetimesubtract1.cs | 205 - .../cti/system/datetime/datetimesubtract2.cs | 225 - .../cti/system/datetime/datetimeticks.cs | 99 - .../cti/system/datetime/datetimetimeofday.cs | 98 - .../cti/system/datetime/datetimetoday.cs | 95 - .../cti/system/datetime/datetimetofiletime.cs | 126 - .../cti/system/datetime/datetimetofiletimeutc.cs | 126 - .../cti/system/datetime/datetimetolocaltime.cs | 66 - .../cti/system/datetime/datetimetostring1.cs | 122 - .../cti/system/datetime/datetimetostring2.cs | 118 - .../cti/system/datetime/datetimetostring3.cs | 588 - .../cti/system/datetime/datetimeutcnow.cs | 93 - .../system/datetimekind/DateTimeKindLocal.csproj | 45 - .../datetimekind/DateTimeKindUnspecified.csproj | 45 - .../cti/system/datetimekind/DateTimeKindUtc.csproj | 45 - .../cti/system/datetimekind/datetimekindlocal.cs | 69 - .../system/datetimekind/datetimekindunspecified.cs | 69 - .../cti/system/datetimekind/datetimekindutc.cs | 69 - .../CalendarWeekRuleFirstDay.csproj | 45 - .../CalendarWeekRuleFirstFourDayWeek.csproj | 45 - .../CalendarWeekRuleFirstFullWeek.csproj | 45 - .../calendarweekrule/calendarweekrulefirstday.cs | 70 - .../calendarweekrulefirstfourdayweek.cs | 70 - .../calendarweekrulefirstfullweek.cs | 70 - .../CharUnicodeInfoGetNumericValue1.csproj | 45 - .../CharUnicodeInfoGetNumericValue2.csproj | 45 - .../CharUnicodeInfoGetUnicodeCategory1.csproj | 45 - .../CharUnicodeInfoGetUnicodeCategory2.csproj | 45 - .../charunicodeinfogetnumericvalue1.cs | 226 - .../charunicodeinfogetnumericvalue2.cs | 310 - .../charunicodeinfogetunicodecategory1.cs | 944 - .../charunicodeinfogetunicodecategory2.cs | 1040 - .../compareinfo/CompareInfoCompare2.csproj | 45 - .../compareinfo/CompareInfoIndexOf2.csproj | 45 - .../compareinfo/compareinfocompare2.cs | 218 - .../compareinfo/compareinfoindexof2.cs | 185 - .../compareoptions/CompareOptionsIgnoreCase.csproj | 45 - .../CompareOptionsIgnoreKanaType.csproj | 45 - .../CompareOptionsIgnoreNonSpace.csproj | 45 - .../CompareOptionsIgnoreSymbols.csproj | 45 - .../CompareOptionsIgnoreWidth.csproj | 45 - .../compareoptions/CompareOptionsNone.csproj | 45 - .../compareoptions/CompareOptionsOrdinal.csproj | 45 - .../CompareOptionsOrdinalIgoreCase.csproj | 45 - .../compareoptions/CompareOptionsStringSort.csproj | 45 - .../compareoptions/compareoptionsignorecase.cs | 73 - .../compareoptions/compareoptionsignorekanatype.cs | 73 - .../compareoptions/compareoptionsignorenonspace.cs | 73 - .../compareoptions/compareoptionsignoresymbols.cs | 73 - .../compareoptions/compareoptionsignorewidth.cs | 73 - .../compareoptions/compareoptionsnone.cs | 73 - .../compareoptions/compareoptionsordinal.cs | 73 - .../compareoptionsordinaligorecase.cs | 73 - .../compareoptions/compareoptionsstringsort.cs | 73 - .../cultureinfo/CultureInfoClone.csproj | 45 - .../cultureinfo/CultureInfoEnglishName.csproj | 45 - .../cultureinfo/CultureInfoEquals.csproj | 45 - .../cultureinfo/CultureInfoGetCultureInfo2.csproj | 45 - .../cultureinfo/CultureInfoGetHashCode.csproj | 45 - .../cultureinfo/CultureInfoInvariantCulture.csproj | 45 - .../cultureinfo/CultureInfoIsNeutralCulture.csproj | 45 - .../cultureinfo/CultureInfoName.csproj | 45 - .../cultureinfo/CultureInfoNativeName.csproj | 45 - .../cultureinfo/CultureInfoParent.csproj | 45 - .../cultureinfo/CultureInfoReadOnly.csproj | 45 - .../cultureinfo/CultureInfoTextInfo.csproj | 45 - .../cultureinfo/CultureInfoToString.csproj | 45 - .../CultureInfoTwoLetterISOLanguageName.csproj | 45 - .../globalization/cultureinfo/cultureinfoclone.cs | Bin 7244 -> 0 bytes .../cultureinfo/cultureinfoenglishname.cs | Bin 3738 -> 0 bytes .../globalization/cultureinfo/cultureinfoequals.cs | Bin 15856 -> 0 bytes .../cultureinfo/cultureinfogetcultureinfo2.cs | Bin 15566 -> 0 bytes .../cultureinfo/cultureinfogethashcode.cs | Bin 10202 -> 0 bytes .../cultureinfo/cultureinfoinvariantculture.cs | Bin 3866 -> 0 bytes .../cultureinfo/cultureinfoisneutralculture.cs | Bin 7066 -> 0 bytes .../globalization/cultureinfo/cultureinfoname.cs | Bin 3724 -> 0 bytes .../cultureinfo/cultureinfonativename.cs | Bin 3844 -> 0 bytes .../globalization/cultureinfo/cultureinfoparent.cs | Bin 8140 -> 0 bytes .../cultureinfo/cultureinforeadonly.cs | Bin 9148 -> 0 bytes .../cultureinfo/cultureinfotextinfo.cs | Bin 7212 -> 0 bytes .../cultureinfo/cultureinfotostring.cs | Bin 7288 -> 0 bytes .../cultureinfotwoletterisolanguagename.cs | Bin 8410 -> 0 bytes .../DateTimeFormatInfoClone.csproj | 45 - .../DateTimeFormatInfoCurrentInfo.csproj | 45 - ...ateTimeFormatInfoGetAbbreviatedMonthName.csproj | 45 - .../DateTimeFormatInfoGetFormat.csproj | 45 - .../DateTimeFormatInfoGetInstance.csproj | 45 - .../DateTimeFormatInfoGetMonthName.csproj | 45 - .../DateTimeFormatInfoInvariantInfo.csproj | 45 - .../DateTimeFormatInfoIsReadOnly.csproj | 45 - .../DateTimeFormatInfoRFC1123Pattern.csproj | 45 - .../DateTimeFormatInfoReadOnly.csproj | 45 - ...ateTimeFormatInfoSortableDateTimePattern.csproj | 45 - .../UniversalSortableDateTimePattern.csproj | 45 - .../datetimeformatinfo/datetimeformatinfoclone.cs | 239 - .../datetimeformatinfocurrentinfo.cs | 70 - .../datetimeformatinfogetabbreviatedmonthname.cs | 277 - .../datetimeformatinfogetformat.cs | 105 - .../datetimeformatinfogetinstance.cs | 195 - .../datetimeformatinfogetmonthname.cs | 277 - .../datetimeformatinfoinvariantinfo.cs | 70 - .../datetimeformatinfoisreadonly.cs | 122 - .../datetimeformatinforeadonly.cs | 131 - .../datetimeformatinforfc1123pattern.cs | 92 - .../datetimeformatinfosortabledatetimepattern.cs | 93 - ...meformatinfouniversalsortabledatetimepattern.cs | 93 - .../DateTimeStyleAllowInnerWhite.csproj | 45 - .../DateTimeStylesAdjustToUniversal.csproj | 45 - .../DateTimeStylesAllowLeadingWhite.csproj | 45 - .../DateTimeStylesAllowTrailingWhite.csproj | 45 - .../DateTimeStylesAllowWhiteSpaces.csproj | 45 - .../DateTimeStylesAssumeLocal.csproj | 45 - .../DateTimeStylesAssumeUniversal.csproj | 45 - .../DateTimeStylesNoCurrentDateDefault.csproj | 45 - .../datetimestyles/DateTimeStylesNone.csproj | 45 - .../DateTimeStylesRoundTripKind.csproj | 45 - .../datetimestyles/datetimestyleallowinnerwhite.cs | 73 - .../datetimestylesadjusttouniversal.cs | 73 - .../datetimestylesallowleadingwhite.cs | 73 - .../datetimestylesallowtrailingwhite.cs | 73 - .../datetimestylesallowwhitespaces.cs | 73 - .../datetimestyles/datetimestylesassumelocal.cs | 73 - .../datetimestylesassumeuniversal.cs | 73 - .../datetimestylesnocurrentdatedefault.cs | 73 - .../datetimestyles/datetimestylesnone.cs | 73 - .../datetimestyles/datetimestylesroundtripkind.cs | 73 - .../numberformatinfo/NumberFormatInfoClone.csproj | 45 - .../numberformatinfo/NumberFormatInfoCtor.csproj | 45 - ...NumberFormatInfoCurrencyDecimalSeparator.csproj | 45 - .../NumberFormatInfoCurrencyGroupSeparator.csproj | 45 - .../NumberFormatInfoGetFormat.csproj | 45 - .../NumberFormatInfoGetInstance.csproj | 45 - .../NumberFormatInfoReadOnly.csproj | 45 - .../numberformatinfo/numberformatinfoclone.cs | 104 - .../numberformatinfo/numberformatinfoctor.cs | 103 - .../numberformatinfocurrencydecimalseparator.cs | 193 - .../numberformatinfocurrencygroupseparator.cs | 165 - .../numberformatinfo/numberformatinfogetformat.cs | 137 - .../numberformatinfogetinstance.cs | 105 - .../numberformatinfo/numberformatinforeadonly.cs | 107 - .../NumberStylesAllowCurrencySymbol.csproj | 45 - .../NumberStylesAllowDecimalPoint.csproj | 45 - .../numberstyles/NumberStylesAllowExponent.csproj | 45 - .../NumberStylesAllowHexSpecifier.csproj | 45 - .../NumberStylesAllowLeadingSign.csproj | 45 - .../NumberStylesAllowLeadingWhite.csproj | 45 - .../NumberStylesAllowParentheses.csproj | 45 - .../numberstyles/NumberStylesAllowThousands.csproj | 45 - .../NumberStylesAllowTrailingSign.csproj | 45 - .../NumberStylesAllowTrailingWhite.csproj | 45 - .../numberstyles/NumberStylesAny.csproj | 45 - .../numberstyles/NumberStylesCurrency.csproj | 45 - .../numberstyles/NumberStylesFloat.csproj | 45 - .../numberstyles/NumberStylesHexNumber.csproj | 45 - .../numberstyles/NumberStylesInteger.csproj | 45 - .../numberstyles/NumberStylesNone.csproj | 45 - .../numberstyles/NumberStylesNumber.csproj | 45 - .../numberstylesallowcurrencysymbol.cs | 105 - .../numberstyles/numberstylesallowdecimalpoint.cs | 105 - .../numberstyles/numberstylesallowexponent.cs | 105 - .../numberstyles/numberstylesallowhexspecifier.cs | 105 - .../numberstyles/numberstylesallowleadingsign.cs | 105 - .../numberstyles/numberstylesallowleadingwhite.cs | 105 - .../numberstyles/numberstylesallowparentheses.cs | 105 - .../numberstyles/numberstylesallowthousands.cs | 105 - .../numberstyles/numberstylesallowtrailingsign.cs | 105 - .../numberstyles/numberstylesallowtrailingwhite.cs | 105 - .../globalization/numberstyles/numberstylesany.cs | 125 - .../numberstyles/numberstylescurrency.cs | 124 - .../numberstyles/numberstylesfloat.cs | 119 - .../numberstyles/numberstyleshexnumber.cs | 112 - .../numberstyles/numberstylesinteger.cs | 111 - .../globalization/numberstyles/numberstylesnone.cs | 105 - .../numberstyles/numberstylesnumber.cs | 120 - .../regioninfo/RegionInfoEquals.csproj | 45 - .../regioninfo/RegionInfoGetHashCode.csproj | 45 - .../regioninfo/RegionInfoISOCurrencySymbol.csproj | 45 - .../regioninfo/RegionInfoIsMetric.csproj | 45 - .../globalization/regioninfo/RegionInfoName.csproj | 45 - .../regioninfo/RegionInfoToString.csproj | 45 - .../RegionInfoTwoLetterISORegionName.csproj | 45 - .../globalization/regioninfo/regioninfoequals.cs | 133 - .../regioninfo/regioninfogethashcode.cs | 85 - .../globalization/regioninfo/regioninfoismetric.cs | 85 - .../regioninfo/regioninfoisocurrencysymbol.cs | 153 - .../globalization/regioninfo/regioninfoname.cs | 130 - .../globalization/regioninfo/regioninfotostring.cs | 107 - .../regioninfo/regioninfotwoletterisoregionname.cs | 129 - .../stringinfo/StringInfoCtor1.csproj | 45 - .../stringinfo/StringInfoCtor2.csproj | 45 - .../stringinfo/StringInfoEquals.csproj | 45 - .../stringinfo/StringInfoGetHashCode.csproj | 45 - .../StringInfoGetNextTextElement2.csproj | 45 - .../StringInfoGetTextElementEnumerator1.csproj | 45 - .../StringInfoGetTextElementEnumerator2.csproj | 45 - .../StringInfoLengthInTextElements.csproj | 45 - .../StringInfoParseCombiningCharacters.csproj | 45 - .../stringinfo/StringInfoString.csproj | 45 - .../globalization/stringinfo/stringinfoctor1.cs | 77 - .../globalization/stringinfo/stringinfoctor2.cs | 171 - .../globalization/stringinfo/stringinfoequals.cs | 235 - .../stringinfo/stringinfogethashcode.cs | 104 - .../stringinfo/stringinfogetnexttextelement2.cs | 267 - .../stringinfogettextelementenumerator1.cs | 185 - .../stringinfogettextelementenumerator2.cs | 257 - .../stringinfo/stringinfolengthintextelements.cs | 109 - .../stringinfoparsecombiningcharacters.cs | 166 - .../globalization/stringinfo/stringinfostring.cs | 184 - .../TextElementEnumeratorCurrent.csproj | 45 - .../TextElementEnumeratorElementIndex.csproj | 45 - .../TextElementEnumeratorGetTextElement.csproj | 45 - .../TextElementEnumeratorMoveNext.csproj | 45 - .../TextElementEnumeratorReset.csproj | 45 - .../textelementenumeratorcurrent.cs | Bin 10394 -> 0 bytes .../textelementenumeratorelementindex.cs | Bin 7622 -> 0 bytes .../textelementenumeratorgettextelement.cs | Bin 10562 -> 0 bytes .../textelementenumeratormovenext.cs | Bin 5786 -> 0 bytes .../textelementenumeratorreset.cs | Bin 4652 -> 0 bytes .../textinfo/TextInfoCultureName.csproj | 45 - .../globalization/textinfo/TextInfoEquals.csproj | 45 - .../textinfo/TextInfoGetHashCode.csproj | 45 - .../textinfo/TextInfoIsReadOnly.csproj | 45 - .../globalization/textinfo/TextInfoToString.csproj | 45 - .../globalization/textinfo/TextInfoToUpper1.csproj | 45 - .../globalization/textinfo/TextInfoToUpper2.csproj | 45 - .../globalization/textinfo/textinfoculturename.cs | 104 - .../globalization/textinfo/textinfoequals.cs | 243 - .../globalization/textinfo/textinfogethashcode.cs | 108 - .../globalization/textinfo/textinfoisreadonly.cs | 103 - .../globalization/textinfo/textinfotostring.cs | 102 - .../globalization/textinfo/textinfotoupper1.cs | 223 - .../globalization/textinfo/textinfotoupper2.cs | 244 - .../UnicodeCategoryClosePunctuation.csproj | 45 - .../UnicodeCategoryConnectorPunctuation.csproj | 45 - .../unicodecategory/UnicodeCategoryControl.csproj | 45 - .../UnicodeCategoryDashPunctuation.csproj | 45 - .../UnicodeCategoryDecimalDigitNumber.csproj | 45 - .../UnicodeCategoryEnclosingMark.csproj | 45 - .../UnicodeCategoryFinalQuotePunctuation.csproj | 45 - .../unicodecategory/UnicodeCategoryFormat.csproj | 45 - .../UnicodeCategoryInitialQuotePunctuation.csproj | 45 - .../UnicodeCategoryLetterNumber.csproj | 45 - .../UnicodeCategoryLineSeparator.csproj | 45 - .../UnicodeCategoryLowercaseLetter.csproj | 45 - .../UnicodeCategoryMathSymbol.csproj | 45 - .../UnicodeCategoryModifierLetter.csproj | 45 - .../UnicodeCategoryModifierSymbol.csproj | 45 - .../UnicodeCategoryNonSpacingMark.csproj | 45 - .../UnicodeCategoryOpenPunctuation.csproj | 45 - .../UnicodeCategoryOtherLetter.csproj | 45 - .../UnicodeCategoryOtherNotAssigned.csproj | 45 - .../UnicodeCategoryOtherNumber.csproj | 45 - .../UnicodeCategoryOtherPunctuation.csproj | 45 - .../UnicodeCategoryOtherSymbol.csproj | 45 - .../UnicodeCategoryParagraphSeparator.csproj | 45 - .../UnicodeCategoryPrivateUse.csproj | 45 - .../UnicodeCategorySpaceSeparator.csproj | 45 - .../UnicodeCategorySpacingCombiningMark.csproj | 45 - .../UnicodeCategorySurrogate.csproj | 45 - .../UnicodeCategoryTitlecaseLetter.csproj | 45 - .../UnicodeCategoryUppercaseLetter.csproj | 45 - .../unicodecategoryclosepunctuation.cs | 57 - .../unicodecategoryconnectorpunctuation.cs | 57 - .../unicodecategory/unicodecategorycontrol.cs | 57 - .../unicodecategorydashpunctuation.cs | 57 - .../unicodecategorydecimaldigitnumber.cs | 57 - .../unicodecategoryenclosingmark.cs | 57 - .../unicodecategoryfinalquotepunctuation.cs | 57 - .../unicodecategory/unicodecategoryformat.cs | 57 - .../unicodecategoryinitialquotepunctuation.cs | 57 - .../unicodecategory/unicodecategoryletternumber.cs | 57 - .../unicodecategorylineseparator.cs | 57 - .../unicodecategorylowercaseletter.cs | 57 - .../unicodecategory/unicodecategorymathsymbol.cs | 57 - .../unicodecategorymodifierletter.cs | 57 - .../unicodecategorymodifiersymbol.cs | 57 - .../unicodecategorynonspacingmark.cs | 57 - .../unicodecategoryopenpunctuation.cs | 57 - .../unicodecategory/unicodecategoryotherletter.cs | 57 - .../unicodecategoryothernotassigned.cs | 57 - .../unicodecategory/unicodecategoryothernumber.cs | 57 - .../unicodecategoryotherpunctuation.cs | 57 - .../unicodecategory/unicodecategoryothersymbol.cs | 57 - .../unicodecategoryparagraphseparator.cs | 57 - .../unicodecategory/unicodecategoryprivateuse.cs | 57 - .../unicodecategoryspaceseparator.cs | 57 - .../unicodecategoryspacingcombiningmark.cs | 57 - .../unicodecategory/unicodecategorysurrogate.cs | 57 - .../unicodecategorytitlecaseletter.cs | 57 - .../unicodecategoryuppercaseletter.cs | 57 - .../datetime/Co7510ParseExact_formatarray.csproj | 44 - .../datetime/co7510parseexact_formatarray.cs | 69 - .../system/text/encoding/Shift_Jis.csproj | 45 - .../CoreMangLib/system/text/encoding/shift_jis.cs | 224 - tests/src/GC/API/GC/TotalMemory.cs | 1 + .../src/GC/Coverage/delete_next_card_table.csproj | 3 +- tests/src/Interop/common/types.h | 1 + tests/src/JIT/Directed/shift/uint64Opt.cs | 178 + tests/src/JIT/Directed/shift/uint64Opt_d.csproj | 47 + tests/src/JIT/Directed/shift/uint64Opt_do.csproj | 46 + tests/src/JIT/Directed/shift/uint64Opt_r.csproj | 47 + tests/src/JIT/Directed/shift/uint64Opt_ro.csproj | 46 + .../src/JIT/Methodical/fp/exgen/10w5d_cs_d.csproj | 3 +- .../src/JIT/Methodical/fp/exgen/10w5d_cs_r.csproj | 3 +- tests/src/JIT/Methodical/refany/format.cs | 10 + tests/src/JIT/Methodical/refany/format.il | 50 +- tests/src/JIT/Methodical/refany/longsig.il | 50 +- tests/src/JIT/Methodical/refany/shortsig.il | 50 +- .../tailcall/Desktop/_il_relthread-race.csproj | 3 + .../JIT/Methodical/tailcall_v4/hijacking.ilproj | 4 + .../CodeQuality/BenchmarksGame/LICENSE.TXT | 2 +- .../binarytrees/binarytrees.csharp.cs | 1 + .../binarytrees/binarytrees.csharp3.cs | 142 + .../BenchmarksGame/binarytrees/binarytrees.csproj | 2 + .../BenchmarksGame/binarytrees/binarytrees3.csproj | 46 + .../BenchmarksGame/k-nucleotide/k-nucleotide.cs | 312 + .../k-nucleotide/k-nucleotide.csproj | 53 + .../k-nucleotide/knucleotide-input-big.txt | 33337 +++++++++++++++++++ .../k-nucleotide/knucleotide-input.txt | 171 + .../BenchmarksGame/regexdna/regexdna-input25.txt | 9 + .../regexdna/regexdna-input25000.txt | 4171 +++ .../BenchmarksGame/regexdna/regexdna.csharp-6.cs | 230 + .../BenchmarksGame/regexdna/regexdna.csproj | 53 + .../BenchmarksGame/revcomp/revcomp-input25.txt | 9 + .../BenchmarksGame/revcomp/revcomp-input25000.txt | 4171 +++ .../BenchmarksGame/revcomp/revcomp.csharp-1.cs | 250 + .../BenchmarksGame/revcomp/revcomp.csproj | 53 + .../CodeQuality/SIMD/SeekUnroll/SeekUnroll.cs | 12 +- .../CLR-x86-JIT/V2.0-Beta2/b425314/b425314.csproj | 4 + .../JitBlue/DevDiv_1206929/DevDiv_1206929.cs | 50 + .../JitBlue/DevDiv_1206929/DevDiv_1206929.csproj | 47 + .../JitBlue/DevDiv_359733/DevDiv_359733.il | 66 + .../JitBlue/DevDiv_359733/DevDiv_359733.ilproj | 41 + .../JitBlue/DevDiv_359737/DevDiv_359737.il | 42 + .../JitBlue/DevDiv_359737/DevDiv_359737.ilproj | 41 + .../JitBlue/DevDiv_362706/DevDiv_362706.il | 162 + .../JitBlue/DevDiv_362706/DevDiv_362706.ilproj | 51 + .../JitBlue/DevDiv_367099/DevDiv_367099.il | 99 + .../JitBlue/DevDiv_367099/DevDiv_367099.ilproj | 51 + .../JitBlue/DevDiv_370233/DevDiv_370233.il | 136 + .../JitBlue/DevDiv_370233/DevDiv_370233.ilproj | 51 + .../JitBlue/DevDiv_377155/DevDiv_377155.il | 75 + .../JitBlue/DevDiv_377155/DevDiv_377155.ilproj | 51 + .../Regression/JitBlue/GitHub_7508/Vector3Test.cs | 152 + .../JitBlue/GitHub_7508/Vector3Test.csproj | 46 + .../VS-ia64-JIT/V2.0-RTM/b539509/b539509.cs | 2 +- tests/src/JIT/SIMD/VectorAbs.cs | 8 +- tests/src/JIT/SIMD/VectorMin.cs | 1 + tests/src/JIT/SIMD/VectorReturn.cs | 164 +- tests/src/JIT/SIMD/VectorUtil.cs | 2 +- tests/src/JIT/config/benchmark+roslyn/project.json | 34 +- .../JIT/config/benchmark+serialize/project.json | 34 +- tests/src/JIT/config/benchmark/project.json | 45 +- tests/src/JIT/config/extra/project.json | 38 +- tests/src/JIT/config/minimal/project.json | 16 +- tests/src/JIT/config/threading+thread/project.json | 20 +- tests/src/JIT/config/threading/project.json | 16 +- .../JIT/jit64/opt/cg/cgstress/CgStress1_d.csproj | 6 +- .../JIT/jit64/opt/cg/cgstress/CgStress1_r.csproj | 6 +- tests/src/JIT/jit64/opt/cse/hugeexpr1.csproj | 4 +- tests/src/JIT/jit64/regress/vsw/539509/test1.cs | 2 +- .../bigvtbl/bigvtbl_cs_d.csproj | 3 +- .../bigvtbl/bigvtbl_cs_r.csproj | 3 +- tests/src/TestWrappersConfig/project.json | 9 +- tests/src/dir.common.props | 2 +- tests/src/dir.props | 11 +- tests/src/dirs.proj | 6 +- .../jit/Performance/CodeQuality/Span/SpanBench.cs | 468 + .../Performance/CodeQuality/Span/SpanBench.csproj | 45 + tests/src/managed/Compilation/HelloWorld.cs | 2 +- tests/src/performance/project.json | 42 +- tests/src/readytorun/main.cs | 5 + tests/src/readytorun/test.cs | 7 + tests/testsFailingOutsideWindows.txt | 2 + tests/testsUnsupportedOnARM32.txt | 1 - tests/x86_jit32_issues.targets | 3 - tests/x86_legacy_backend_issues.targets | 3 - 3193 files changed, 88817 insertions(+), 177723 deletions(-) create mode 100644 Documentation/building/android.md create mode 100644 Documentation/design-docs/finally-optimizations.md create mode 100644 Documentation/design-docs/tailcalls-with-helpers.md delete mode 100755 binclash.log delete mode 100644 clr.desktop.props delete mode 100644 cross/arm-softfp/sources.list.jessie delete mode 100644 cross/arm-softfp/toolchain.cmake delete mode 100644 cross/arm-softfp/tryrun.cmake create mode 100644 cross/armel/sources.list.jessie create mode 100755 cross/armel/tizen-build-rootfs.sh create mode 100755 cross/armel/tizen-fetch.sh create mode 100644 cross/armel/tizen/tizen.patch create mode 100644 cross/armel/toolchain.cmake create mode 100644 cross/armel/tryrun.cmake create mode 100755 cross/build-android-rootfs.sh delete mode 100644 dirs.proj delete mode 100644 init-tools.log create mode 100644 src/.nuget/Microsoft.NETCore.ILAsm/tizen/4.0.0/Microsoft.NETCore.ILAsm.pkgproj create mode 100644 src/.nuget/Microsoft.NETCore.ILDAsm/tizen/4.0.0/Microsoft.NETCore.ILDAsm.pkgproj create mode 100644 src/.nuget/Microsoft.NETCore.Jit/tizen/4.0.0/Microsoft.NETCore.Jit.pkgproj create mode 100644 src/.nuget/Microsoft.NETCore.Native/Microsoft.NETCore.Native.builds create mode 100644 src/.nuget/Microsoft.NETCore.Native/Microsoft.NETCore.Native.pkgproj create mode 100644 src/.nuget/Microsoft.NETCore.Native/alpine/3.4.3/Microsoft.NETCore.Native.pkgproj create mode 100644 src/.nuget/Microsoft.NETCore.Native/debian/Microsoft.NETCore.Native.pkgproj create mode 100644 src/.nuget/Microsoft.NETCore.Native/fedora/23/Microsoft.NETCore.Native.pkgproj create mode 100644 src/.nuget/Microsoft.NETCore.Native/fedora/24/Microsoft.NETCore.Native.pkgproj create mode 100644 src/.nuget/Microsoft.NETCore.Native/linux/Microsoft.NETCore.Native.pkgproj create mode 100644 src/.nuget/Microsoft.NETCore.Native/opensuse/13.2/Microsoft.NETCore.Native.pkgproj create mode 100644 src/.nuget/Microsoft.NETCore.Native/opensuse/42.1/Microsoft.NETCore.Native.pkgproj create mode 100644 src/.nuget/Microsoft.NETCore.Native/osx/Microsoft.NETCore.Native.pkgproj create mode 100644 src/.nuget/Microsoft.NETCore.Native/rhel/Microsoft.NETCore.Native.pkgproj create mode 100644 src/.nuget/Microsoft.NETCore.Native/ubuntu/14.04/Microsoft.NETCore.Native.pkgproj create mode 100644 src/.nuget/Microsoft.NETCore.Native/ubuntu/16.04/Microsoft.NETCore.Native.pkgproj create mode 100644 src/.nuget/Microsoft.NETCore.Native/ubuntu/16.10/Microsoft.NETCore.Native.pkgproj create mode 100644 src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/tizen/4.0.0/Microsoft.NETCore.Runtime.CoreCLR.pkgproj create mode 100644 src/.nuget/Microsoft.NETCore.TestHost/tizen/4.0.0/Microsoft.NETCore.TestHost.pkgproj delete mode 100644 src/ToolBox/PdbTypeMatch/PdbTypeMatch.nativeproj delete mode 100644 src/ToolBox/SOS/Strike/SOS.nativeproj delete mode 100644 src/ToolBox/SOS/Strike/SOS.sln delete mode 100644 src/ToolBox/SOS/Strike/SOS.vcproj delete mode 100644 src/ToolBox/SOS/Strike/dirs.proj delete mode 100644 src/ToolBox/SOS/Strike/sos.targets delete mode 100644 src/ToolBox/SOS/diasdk/diasdk.nativeproj delete mode 100644 src/ToolBox/SOS/dirs.proj delete mode 100644 src/ToolBox/dirs.proj delete mode 100644 src/binder/binder.targets delete mode 100644 src/binder/dirs.proj delete mode 100644 src/binder/v3binder/v3binder.nativeproj delete mode 100644 src/binder/v3binder_crossgen/v3binder_crossgen.nativeproj delete mode 100644 src/classlibnative/Dirs.proj delete mode 100644 src/classlibnative/bcltype/BCLType.nativeproj delete mode 100644 src/classlibnative/bcltype/console.cpp delete mode 100644 src/classlibnative/bcltype/console.h delete mode 100644 src/classlibnative/float/Float.nativeproj delete mode 100644 src/classlibnative/nls/NLS.nativeproj delete mode 100644 src/coreclr/dirs.proj delete mode 100644 src/coreclr/hosts/coreconsole/CoreConsole.nativeproj delete mode 100644 src/coreclr/hosts/corerun/coreRun.nativeproj delete mode 100644 src/coreclr/hosts/dirs.proj delete mode 100644 src/debug/daccess/daccess.targets delete mode 100644 src/debug/daccess/dirs.proj delete mode 100644 src/debug/dbgutil/dbgutil.props delete mode 100644 src/debug/dbgutil/dirs.proj delete mode 100644 src/debug/di/DI.props delete mode 100644 src/debug/di/dbi.sln delete mode 100644 src/debug/di/dbi.vcxproj delete mode 100644 src/debug/di/dirs.proj delete mode 100644 src/debug/dirs.proj delete mode 100644 src/debug/ee/DIRS.proj delete mode 100644 src/debug/ee/DebuggerEE.vcproj delete mode 100644 src/debug/ee/EE.props create mode 100644 src/debug/ee/arm64/dbghelpers.S delete mode 100644 src/debug/ee/dac/dirs.proj delete mode 100644 src/debug/ee/wks/wks.nativeproj delete mode 100644 src/debug/ildbsymlib/dirs.proj delete mode 100644 src/debug/ildbsymlib/ildbsymlib.props delete mode 100644 src/debug/ildbsymlib/ildbsymlib.vcproj delete mode 100644 src/debug/shim/debugshim.props delete mode 100644 src/debug/shim/dirs.proj delete mode 100644 src/dirs.proj delete mode 100644 src/dlls/clretwrc/clretwrc.nativeproj delete mode 100644 src/dlls/dbgshim/dbgshim.targets delete mode 100644 src/dlls/dbgshim/dirs.proj delete mode 100644 src/dlls/dirs.proj delete mode 100644 src/dlls/mscordac/dirs.proj delete mode 100644 src/dlls/mscordac/mscordac.targets delete mode 100644 src/dlls/mscordac/mscordac.vrg delete mode 100644 src/dlls/mscordbi/DIRS.proj delete mode 100644 src/dlls/mscordbi/mscordbi.settings.targets delete mode 100644 src/dlls/mscordbi/mscordbi.vrg delete mode 100644 src/dlls/mscordbi/mscordbiv.vrg delete mode 100644 src/dlls/mscoree/coreclr/coreclr.nativeproj delete mode 100644 src/dlls/mscoree/delayload.cpp delete mode 100644 src/dlls/mscoree/dirs.proj delete mode 100644 src/dlls/mscoree/dw20.msi delete mode 100644 src/dlls/mscoree/dw20_amd64.msi delete mode 100644 src/dlls/mscoree/mscoree.settings.targets delete mode 100644 src/dlls/mscoree/mscoree.targets delete mode 100644 src/dlls/mscoree/mscoree.vrg delete mode 100644 src/dlls/mscoree/mscoree20_shared_neutral.vrg delete mode 100644 src/dlls/mscoree/mscoreeBBT.bat delete mode 100644 src/dlls/mscoree/mscoreeDoNotEverRemove.vrg delete mode 100644 src/dlls/mscoree/mscoreeVersioned.vrg delete mode 100644 src/dlls/mscoree/shim.reg delete mode 100644 src/dlls/mscoree/type_exclusion_list.txt delete mode 100644 src/dlls/mscorpe/Native.rc delete mode 100644 src/dlls/mscorpe/dirs.proj delete mode 100644 src/dlls/mscorpe/mscorpe/mscorpe.def delete mode 100644 src/dlls/mscorpe/mscorpe/mscorpe.nativeproj delete mode 100644 src/dlls/mscorpe/mscorpe/wrapper.cpp delete mode 100644 src/dlls/mscorpe/mscorpehost/mscorpehost.def delete mode 100644 src/dlls/mscorpe/mscorpehost/mscorpehost.nativeproj delete mode 100644 src/dlls/mscorpe/utilcodeinit.cpp delete mode 100644 src/dlls/mscorrc/dirs.proj delete mode 100644 src/dlls/mscorrc/full/mscorrc.nativeproj delete mode 100644 src/dlls/mscorrc/mscorrc.rc2 delete mode 100644 src/dlls/mscorrc/small/mscorrc.nativeproj delete mode 100644 src/gc/gcenv.unix.cpp delete mode 100644 src/gc/gcenv.windows.cpp create mode 100644 src/gc/unix/CMakeLists.txt create mode 100644 src/gc/unix/config.h.in create mode 100644 src/gc/unix/configure.cmake create mode 100644 src/gc/unix/gcenv.unix.cpp create mode 100644 src/gc/windows/gcenv.windows.cpp delete mode 100644 src/gcdump/gcdump.settings.targets delete mode 100644 src/gcinfo/DIRS.proj delete mode 100644 src/gcinfo/crossgen/gcinfo_crossgen.nativeproj delete mode 100644 src/gcinfo/gcinfo.settings.targets delete mode 100644 src/gcinfo/lib/GCInfo.nativeproj delete mode 100644 src/ilasm/MscorpeSxS.cpp delete mode 100644 src/ilasm/MscorpeSxS.h delete mode 100644 src/ildasm/Litening.ico delete mode 100644 src/ildasm/class.bmp delete mode 100644 src/ildasm/classa.bmp delete mode 100644 src/ildasm/classag.bmp delete mode 100644 src/ildasm/classe.bmp delete mode 100644 src/ildasm/classeg.bmp delete mode 100644 src/ildasm/classi.bmp delete mode 100644 src/ildasm/classig.bmp delete mode 100644 src/ildasm/classv.bmp delete mode 100644 src/ildasm/classvg.bmp delete mode 100644 src/ildasm/dasm_pr.cpp delete mode 100644 src/ildasm/dasmgui.h delete mode 100644 src/ildasm/dasmhlp.hhc delete mode 100644 src/ildasm/dirs.proj delete mode 100644 src/ildasm/event.bmp delete mode 100644 src/ildasm/exe/ildasm.nativeproj delete mode 100644 src/ildasm/field.bmp delete mode 100644 src/ildasm/gui.cpp delete mode 100644 src/ildasm/gui.h delete mode 100644 src/ildasm/html/clicking.htm delete mode 100644 src/ildasm/html/keyboard.htm delete mode 100644 src/ildasm/html/menu_options.htm delete mode 100644 src/ildasm/html/tree_view_icons.htm delete mode 100644 src/ildasm/html/tree_view_icons_files/class.gif delete mode 100644 src/ildasm/html/tree_view_icons_files/enum.gif delete mode 100644 src/ildasm/html/tree_view_icons_files/event.gif delete mode 100644 src/ildasm/html/tree_view_icons_files/field.gif delete mode 100644 src/ildasm/html/tree_view_icons_files/interface.gif delete mode 100644 src/ildasm/html/tree_view_icons_files/manifest_classinfo.GIF delete mode 100644 src/ildasm/html/tree_view_icons_files/manifest_classinfo.jpg delete mode 100644 src/ildasm/html/tree_view_icons_files/manifest_classinfo.png delete mode 100644 src/ildasm/html/tree_view_icons_files/method.gif delete mode 100644 src/ildasm/html/tree_view_icons_files/namespace.gif delete mode 100644 src/ildasm/html/tree_view_icons_files/property.gif delete mode 100644 src/ildasm/html/tree_view_icons_files/static_field.gif delete mode 100644 src/ildasm/html/tree_view_icons_files/static_method.gif delete mode 100644 src/ildasm/html/tree_view_icons_files/value_class.gif delete mode 100644 src/ildasm/ildasm.chm delete mode 100644 src/ildasm/ildasm.hhp delete mode 100644 src/ildasm/map.h delete mode 100644 src/ildasm/method.bmp delete mode 100644 src/ildasm/methodg.bmp delete mode 100644 src/ildasm/namespace.bmp delete mode 100644 src/ildasm/prop.bmp delete mode 100644 src/ildasm/rcdll/ildasmrc.nativeproj delete mode 100644 src/ildasm/redarrow.bmp delete mode 100644 src/ildasm/staticfield.bmp delete mode 100644 src/ildasm/staticmethod.bmp delete mode 100644 src/ildasm/staticmethodg.bmp delete mode 100644 src/inc/1031/CORPerfMonSymbols.ini delete mode 100644 src/inc/1031/_DataPerfCounters.ini delete mode 100644 src/inc/1031/_NetworkingPerfCounters.ini delete mode 100644 src/inc/1031/aspnet_perf.ini delete mode 100644 src/inc/1031/aspnet_perf2.ini delete mode 100644 src/inc/1041/CORPerfMonSymbols.ini delete mode 100644 src/inc/1041/_DataPerfCounters.ini delete mode 100644 src/inc/1041/_NetworkingPerfCounters.ini delete mode 100644 src/inc/1041/aspnet_perf.ini delete mode 100644 src/inc/1041/aspnet_perf2.ini delete mode 100644 src/inc/corguids.nativeproj delete mode 100644 src/inc/corguids.targets delete mode 100644 src/inc/mscorpesxswrapper.h delete mode 100644 src/ipcman/dirs.proj delete mode 100644 src/ipcman/ipcman-staticcrt/dirs.proj delete mode 100644 src/ipcman/ipcman-staticcrt/ipcman-staticcrt.props delete mode 100644 src/ipcman/ipcmanager.props create mode 100644 src/jit/lsraarm.cpp create mode 100644 src/jit/lsraarm64.cpp create mode 100644 src/jit/lsraxarch.cpp create mode 100644 src/jit/unwindx86.cpp delete mode 100644 src/md/MD.props delete mode 100644 src/md/ceefilegen/ceefgen.nativeproj delete mode 100644 src/md/compiler/Compiler.settings.targets delete mode 100644 src/md/compiler/crossgen/MDCompiler_crossgen.nativeproj delete mode 100644 src/md/compiler/dac/dirs.proj delete mode 100644 src/md/compiler/dbi/MDCompiler-dbi.props delete mode 100644 src/md/compiler/dbi/dirs.proj delete mode 100644 src/md/compiler/dirs.proj delete mode 100644 src/md/compiler/wks/MDCompiler_wks.nativeproj delete mode 100644 src/md/datasource/DataSource.settings.targets delete mode 100644 src/md/datasource/dbi/DataSource-dbi.props delete mode 100644 src/md/datasource/dbi/dirs.proj delete mode 100644 src/md/datasource/dirs.proj delete mode 100644 src/md/dirs.proj delete mode 100644 src/md/enc/crossgen/MDRuntimeRW_crossgen.nativeproj delete mode 100644 src/md/enc/dac/dirs.proj delete mode 100644 src/md/enc/dbi/MDRuntimeRW-dbi.props delete mode 100644 src/md/enc/dbi/dirs.proj delete mode 100644 src/md/enc/dirs.proj delete mode 100644 src/md/enc/enc.settings.targets delete mode 100644 src/md/enc/wks/MDRuntimeRW.nativeproj delete mode 100644 src/md/hotdata/HotData.settings.targets delete mode 100644 src/md/hotdata/crossgen/MDHotData_crossgen.nativeproj delete mode 100644 src/md/hotdata/dac/dirs.proj delete mode 100644 src/md/hotdata/dirs.proj delete mode 100644 src/md/hotdata/full-staticcrt/MDHotData-staticcrt.props delete mode 100644 src/md/hotdata/full-staticcrt/dirs.proj delete mode 100644 src/md/hotdata/full/MDHotData.nativeproj delete mode 100644 src/md/runtime/Runtime.settings.targets delete mode 100644 src/md/runtime/crossgen/MDRuntime_crossgen.nativeproj delete mode 100644 src/md/runtime/dac/dirs.proj delete mode 100644 src/md/runtime/dbi/MDRuntime-dbi.props delete mode 100644 src/md/runtime/dbi/dirs.proj delete mode 100644 src/md/runtime/dirs.proj delete mode 100644 src/md/runtime/wks/MDRuntime.nativeproj delete mode 100644 src/md/winmd/WinMD.settings.targets delete mode 100644 src/md/winmd/crossgen/MDWinMD_crossgen.nativeproj delete mode 100644 src/md/winmd/dac/dirs.proj delete mode 100644 src/md/winmd/dbi/MDWinMD-dbi.props delete mode 100644 src/md/winmd/dbi/MDWinMD_dbi.nativeproj delete mode 100644 src/md/winmd/dbi/dirs.proj delete mode 100644 src/md/winmd/dirs.proj delete mode 100644 src/md/winmd/wks/MDWinMD_wks.nativeproj delete mode 100644 src/mscorlib/Tools/BclRewriter/BclRewriter.targets delete mode 100644 src/mscorlib/Tools/PostProcessingTools.targets create mode 100644 src/mscorlib/corefx/Interop/Windows/Interop.Errors.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.CancelIoEx.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.CloseHandle.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.CreateFile.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.FileOperations.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.FileTypes.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.FlushFileBuffers.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.FormatMessage.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.GetFileInformationByHandleEx.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.GetFileType_SafeHandle.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.GetFullPathNameW.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.GetLongPathNameW.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.GetTempFileNameW.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.GetTempPathW.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.LockFile.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.ReadFile_SafeHandle_IntPtr.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.ReadFile_SafeHandle_NativeOverlapped.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.SECURITY_ATTRIBUTES.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.SafeCreateFile.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.SecurityOptions.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.SetEndOfFile.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.SetErrorMode.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.SetFileInformationByHandle.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.SetFilePointerEx.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.UnsafeCreateFile.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.WideCharToMultiByte.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.WriteFile_SafeHandle_IntPtr.cs create mode 100644 src/mscorlib/corefx/Interop/Windows/kernel32/Interop.WriteFile_SafeHandle_NativeOverlapped.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.CancelIoEx.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.CloseHandle.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.CreateFile.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.Errors.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.FileOperations.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.FileTypes.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.FlushFileBuffers.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.FormatMessage.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.GetFileInformationByHandleEx.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.GetFileType_SafeHandle.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.GetFullPathNameW.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.GetLongPathNameW.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.GetTempFileNameW.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.GetTempPathW.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.Idna.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.LockFile.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.ReadFile_SafeHandle_IntPtr.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.ReadFile_SafeHandle_NativeOverlapped.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.SECURITY_ATTRIBUTES.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.SafeCreateFile.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.SecurityOptions.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.SetEndOfFile.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.SetErrorMode.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.SetFileInformationByHandle.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.SetFilePointerEx.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.ThreadPoolIO.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.UnsafeCreateFile.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.WideCharToMultiByte.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.WriteFile_SafeHandle_IntPtr.cs delete mode 100644 src/mscorlib/corefx/Interop/Windows/mincore/Interop.WriteFile_SafeHandle_NativeOverlapped.cs delete mode 100644 src/mscorlib/corefx/System/Buffers/TlsOverPerCoreLockedStacksArrayPool.Unix.cs delete mode 100644 src/mscorlib/corefx/System/Buffers/TlsOverPerCoreLockedStacksArrayPool.Windows.cs delete mode 100644 src/mscorlib/corefx/System/IO/FileStream.NetStandard17.cs delete mode 100644 src/mscorlib/corefx/System/IO/PathInternal.CaseSensitivity.cs delete mode 100644 src/mscorlib/corefx/System/Runtime/InteropServices/NativeBuffer.cs delete mode 100644 src/mscorlib/corefx/System/Runtime/InteropServices/SafeHeapHandle.cs delete mode 100644 src/mscorlib/corefx/System/Runtime/InteropServices/SafeHeapHandleCache.cs delete mode 100644 src/mscorlib/model.xml delete mode 100644 src/mscorlib/mscorlib.shared.sources.props create mode 100644 src/mscorlib/src/CleanupToDoList.cs delete mode 100644 src/mscorlib/src/Microsoft/Win32/RegistryOptions.cs delete mode 100644 src/mscorlib/src/Microsoft/Win32/SafeHandles/SafeFileMappingHandle.cs delete mode 100644 src/mscorlib/src/Microsoft/Win32/SafeHandles/SafeLocalAllocHandle.cs delete mode 100644 src/mscorlib/src/Microsoft/Win32/SafeHandles/SafeViewOfFileHandle.cs delete mode 100644 src/mscorlib/src/System/ApplicationId.cs delete mode 100644 src/mscorlib/src/System/CannotUnloadAppDomainException.cs delete mode 100644 src/mscorlib/src/System/CfgParser.cs delete mode 100644 src/mscorlib/src/System/Collections/Concurrent/OrderablePartitioner.cs delete mode 100644 src/mscorlib/src/System/Collections/Concurrent/Partitioner.cs delete mode 100644 src/mscorlib/src/System/Collections/Concurrent/PartitionerStatic.cs delete mode 100644 src/mscorlib/src/System/Collections/KeyValuePairs.cs delete mode 100644 src/mscorlib/src/System/Collections/SortedList.cs delete mode 100644 src/mscorlib/src/System/Collections/Stack.cs create mode 100644 src/mscorlib/src/System/ComponentModel/EditorBrowsableAttribute.cs delete mode 100644 src/mscorlib/src/System/Configuration/Assemblies/AssemblyHash.cs delete mode 100644 src/mscorlib/src/System/ContextMarshalException.cs delete mode 100644 src/mscorlib/src/System/Diagnostics/SymbolStore/ISymBinder.cs delete mode 100644 src/mscorlib/src/System/Diagnostics/SymbolStore/ISymDocument.cs delete mode 100644 src/mscorlib/src/System/Diagnostics/SymbolStore/ISymMethod.cs delete mode 100644 src/mscorlib/src/System/Diagnostics/SymbolStore/ISymNamespace.cs delete mode 100644 src/mscorlib/src/System/Diagnostics/SymbolStore/ISymReader.cs delete mode 100644 src/mscorlib/src/System/Diagnostics/SymbolStore/ISymScope.cs delete mode 100644 src/mscorlib/src/System/Diagnostics/SymbolStore/ISymVariable.cs delete mode 100644 src/mscorlib/src/System/Diagnostics/SymbolStore/SymDocumentType.cs delete mode 100644 src/mscorlib/src/System/Diagnostics/SymbolStore/SymLanguageType.cs delete mode 100644 src/mscorlib/src/System/Diagnostics/SymbolStore/SymLanguageVendor.cs delete mode 100644 src/mscorlib/src/System/IAppDomain.cs delete mode 100644 src/mscorlib/src/System/IAppDomainSetup.cs delete mode 100644 src/mscorlib/src/System/IO/DirectoryInfo.cs delete mode 100644 src/mscorlib/src/System/IO/FileAttributes.cs delete mode 100644 src/mscorlib/src/System/IO/FileInfo.cs delete mode 100644 src/mscorlib/src/System/IO/FileSystemInfo.cs delete mode 100644 src/mscorlib/src/System/IO/ReadLinesIterator.cs delete mode 100644 src/mscorlib/src/System/IO/StreamWriter.cs delete mode 100644 src/mscorlib/src/System/IO/TextWriter.cs delete mode 100644 src/mscorlib/src/System/Reflection/AssemblyNameProxy.cs delete mode 100644 src/mscorlib/src/System/Reflection/ComInterfaces.cs delete mode 100644 src/mscorlib/src/System/Reflection/Emit/ComInterfaces.cs delete mode 100644 src/mscorlib/src/System/Reflection/Emit/UnmanagedMarshal.cs delete mode 100644 src/mscorlib/src/System/Resources/IResourceWriter.cs delete mode 100644 src/mscorlib/src/System/Runtime/CompilerServices/AssemblyAttributesGoHere.cs delete mode 100644 src/mscorlib/src/System/Runtime/CompilerServices/DecoratedNameAttribute.cs create mode 100644 src/mscorlib/src/System/Runtime/CompilerServices/ITuple.cs create mode 100644 src/mscorlib/src/System/Runtime/CompilerServices/TupleElementNamesAttribute.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/ComTypes/IEnumerable.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/ComTypes/IEnumerator.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/ComTypes/IExpando.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/ComTypes/IReflect.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/ExtensibleClassFactory.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/IRegistrationServices.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/ObjectCreationDelegate.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/RegistrationServices.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/TCEAdapterGen/EventItfInfo.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/TCEAdapterGen/EventProviderWriter.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/TCEAdapterGen/EventSinkHelperWriter.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/TCEAdapterGen/NameSpaceExtractor.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/TCEAdapterGen/TCEAdapterGenerator.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/UCOMIBindCtx.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/UCOMIConnectionPoint.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/UCOMIConnectionPointContainer.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/UCOMIEnumConnectionPoints.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/UCOMIEnumConnections.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/UCOMIEnumMoniker.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/UCOMIEnumString.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/UCOMIEnumVARIANT.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/UCOMIEnumerable.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/UCOMIEnumerator.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/UCOMIExpando.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/UCOMIMoniker.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/UCOMIPersistFile.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/UCOMIReflect.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/UCOMIRunningObjectTable.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/UCOMIStream.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/UCOMITypeComp.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/UCOMITypeInfo.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/UCOMITypeLib.cs delete mode 100644 src/mscorlib/src/System/Runtime/InteropServices/Variant.cs delete mode 100644 src/mscorlib/src/System/Runtime/ProfileOptimization.cs delete mode 100644 src/mscorlib/src/System/Runtime/Serialization/IFormatter.cs delete mode 100644 src/mscorlib/src/System/Runtime/Serialization/ISerializationSurrogate.cs delete mode 100644 src/mscorlib/src/System/Runtime/Serialization/ISurrogateSelector.cs delete mode 100644 src/mscorlib/src/System/Runtime/Serialization/MemberHolder.cs delete mode 100644 src/mscorlib/src/System/Runtime/Serialization/SerializationBinder.cs delete mode 100644 src/mscorlib/src/System/Runtime/Serialization/SerializationFieldInfo.cs delete mode 100644 src/mscorlib/src/System/Runtime/Versioning/TargetFrameworkId.cs delete mode 100644 src/mscorlib/src/System/Security/AccessControl/Enums.cs delete mode 100644 src/mscorlib/src/System/Security/BuiltInPermissionSets.cs delete mode 100644 src/mscorlib/src/System/Security/CodeAccessPermission.cs delete mode 100644 src/mscorlib/src/System/Security/CodeAccessSecurityEngine.cs delete mode 100644 src/mscorlib/src/System/Security/FrameSecurityDescriptor.cs delete mode 100644 src/mscorlib/src/System/Security/HostProtectionException.cs delete mode 100644 src/mscorlib/src/System/Security/HostSecurityManager.cs delete mode 100644 src/mscorlib/src/System/Security/IEvidenceFactory.cs delete mode 100644 src/mscorlib/src/System/Security/IPermission.cs delete mode 100644 src/mscorlib/src/System/Security/ISecurityEncodable.cs delete mode 100644 src/mscorlib/src/System/Security/ISecurityPolicyEncodable.cs delete mode 100644 src/mscorlib/src/System/Security/IStackWalk.cs delete mode 100644 src/mscorlib/src/System/Security/NamedPermissionSet.cs delete mode 100644 src/mscorlib/src/System/Security/PermissionListSet.cs delete mode 100644 src/mscorlib/src/System/Security/PermissionSet.cs delete mode 100644 src/mscorlib/src/System/Security/PermissionSetEnumerator.cs delete mode 100644 src/mscorlib/src/System/Security/PermissionSetTriple.cs delete mode 100644 src/mscorlib/src/System/Security/PermissionToken.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/EnvironmentPermission.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/FileDialogPermission.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/FileIOPermission.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/GACIdentityPermission.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/HostProtectionPermission.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/IBuiltInPermission.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/IUnrestrictedPermission.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/IsolatedStorageFilePermission.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/IsolatedStoragePermission.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/PermissionAttributes.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/PermissionState.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/ReflectionPermission.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/RegistryPermission.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/SecurityPermission.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/SiteIdentityPermission.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/StrongNameIdentityPermission.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/StrongNamePublicKeyBlob.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/UIPermission.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/URLIdentityPermission.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/ZoneIdentityPermission.cs delete mode 100644 src/mscorlib/src/System/Security/Permissions/keycontainerpermission.cs delete mode 100644 src/mscorlib/src/System/Security/Policy/ApplicationTrust.cs delete mode 100644 src/mscorlib/src/System/Security/Policy/Evidence.cs delete mode 100644 src/mscorlib/src/System/Security/Policy/EvidenceBase.cs delete mode 100644 src/mscorlib/src/System/Security/Policy/EvidenceTypeDescriptor.cs delete mode 100644 src/mscorlib/src/System/Security/Policy/IDelayEvaluatedEvidence.cs delete mode 100644 src/mscorlib/src/System/Security/Policy/IIdentityPermissionFactory.cs delete mode 100644 src/mscorlib/src/System/Security/Policy/IRuntimeEvidenceFactory.cs delete mode 100644 src/mscorlib/src/System/Security/Policy/PolicyException.cs delete mode 100644 src/mscorlib/src/System/Security/Policy/PolicyStatement.cs delete mode 100644 src/mscorlib/src/System/Security/Policy/Site.cs delete mode 100644 src/mscorlib/src/System/Security/Policy/StrongName.cs delete mode 100644 src/mscorlib/src/System/Security/Policy/URL.cs delete mode 100644 src/mscorlib/src/System/Security/Policy/Zone.cs delete mode 100644 src/mscorlib/src/System/Security/Principal/IIdentity.cs delete mode 100644 src/mscorlib/src/System/Security/Principal/IPrincipal.cs delete mode 100644 src/mscorlib/src/System/Security/Principal/TokenImpersonationLevel.cs delete mode 100644 src/mscorlib/src/System/Security/SafeSecurityHandles.cs delete mode 100644 src/mscorlib/src/System/Security/SecurityContext.cs delete mode 100644 src/mscorlib/src/System/Security/SecurityElement.cs delete mode 100644 src/mscorlib/src/System/Security/SecurityManager.cs delete mode 100644 src/mscorlib/src/System/Security/SecurityRuntime.cs delete mode 100644 src/mscorlib/src/System/Security/SecurityZone.cs delete mode 100644 src/mscorlib/src/System/Security/Util/Config.cs delete mode 100644 src/mscorlib/src/System/Security/Util/Hex.cs delete mode 100644 src/mscorlib/src/System/Security/Util/StringExpressionSet.cs delete mode 100644 src/mscorlib/src/System/Security/Util/TokenBasedSet.cs delete mode 100644 src/mscorlib/src/System/Security/Util/TokenBasedSetEnumerator.cs delete mode 100644 src/mscorlib/src/System/Security/Util/XMLUtil.cs delete mode 100644 src/mscorlib/src/System/Security/Util/sitestring.cs delete mode 100644 src/mscorlib/src/System/Security/securestring.cs delete mode 100644 src/mscorlib/src/System/Text/BaseCodePageEncoding.cs delete mode 100644 src/mscorlib/src/System/Text/CodePageEncoding.cs delete mode 100644 src/mscorlib/src/System/Text/DBCSCodePageEncoding.cs delete mode 100644 src/mscorlib/src/System/Text/EUCJPEncoding.cs delete mode 100644 src/mscorlib/src/System/Text/GB18030Encoding.cs delete mode 100644 src/mscorlib/src/System/Text/ISCIIEncoding.cs delete mode 100644 src/mscorlib/src/System/Text/ISO2022Encoding.cs delete mode 100644 src/mscorlib/src/System/Text/MLangCodePageEncoding.cs delete mode 100644 src/mscorlib/src/System/Text/SBCSCodePageEncoding.cs delete mode 100644 src/mscorlib/src/System/Text/SurrogateEncoder.cs delete mode 100644 src/mscorlib/src/System/Threading/IObjectHandle.cs delete mode 100644 src/mscorlib/src/System/Threading/LockCookie.cs delete mode 100644 src/mscorlib/src/System/Threading/ReaderWriterLock.cs delete mode 100644 src/mscorlib/src/System/Threading/Tasks/BeginEndAwaitableAdapter.cs delete mode 100644 src/mscorlib/src/System/Threading/Tasks/Parallel.cs delete mode 100644 src/mscorlib/src/System/Threading/Tasks/ParallelLoopState.cs delete mode 100644 src/mscorlib/src/System/Threading/Tasks/ParallelRangeManager.cs create mode 100644 src/mscorlib/src/System/TimeZoneInfo.AdjustmentRule.cs create mode 100644 src/mscorlib/src/System/TimeZoneInfo.StringSerializer.cs create mode 100644 src/mscorlib/src/System/TimeZoneInfo.TransitionTime.cs create mode 100644 src/mscorlib/src/System/TimeZoneInfo.Unix.cs create mode 100644 src/mscorlib/src/System/TimeZoneInfo.Win32.cs create mode 100644 src/mscorlib/src/System/TupleExtensions.cs create mode 100644 src/mscorlib/src/System/ValueTuple.cs delete mode 100644 src/mscorlib/src/System/_LocalDataStore.cs delete mode 100644 src/mscorlib/src/System/_LocalDataStoreMgr.cs delete mode 100644 src/mscorlib/src/System/cominterfaces.cs delete mode 100644 src/pal/tests/palsuite/c_runtime/_getw/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_getw/test1/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_getw/test1/test.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_getw/test1/test1.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_getw/test1/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_putw/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_putw/test1/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_putw/test1/test1.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_putw/test1/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/_vsnprintf.h delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test1/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test1/test1.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test1/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test10/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test10/test10.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test10/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test11/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test11/test11.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test11/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test12/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test12/test12.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test12/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test13/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test13/test13.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test13/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test14/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test14/test14.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test14/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test15/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test15/test15.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test15/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test16/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test16/test16.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test16/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test17/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test17/test17.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test17/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test18/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test18/test18.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test18/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test19/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test19/test19.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test19/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test2/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test2/test2.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test2/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test3/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test3/test3.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test3/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test4/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test4/test4.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test4/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test5/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test5/test5.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test5/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test6/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test6/test6.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test6/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test7/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test7/test7.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test7/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test8/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test8/test8.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test8/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test9/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test9/test9.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf/test9/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/_vsnprintf_s.h create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test1/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test1/test1.cpp create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test1/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test10/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test10/test10.cpp create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test10/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test11/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test11/test11.cpp create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test11/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test12/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test12/test12.cpp create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test12/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test13/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test13/test13.cpp create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test13/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test14/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test14/test14.cpp create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test14/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test15/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test15/test15.cpp create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test15/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test16/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test16/test16.cpp create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test16/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test17/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test17/test17.cpp create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test17/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test18/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test18/test18.cpp create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test18/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test19/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test19/test19.cpp create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test19/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test2/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test2/test2.cpp create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test2/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test3/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test3/test3.cpp create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test3/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test4/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test4/test4.cpp create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test4/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test6/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test6/test6.cpp create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test6/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test7/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test7/test7.cpp create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test7/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test8/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test8/test8.cpp create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test8/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test9/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test9/test9.cpp create mode 100644 src/pal/tests/palsuite/c_runtime/_vsnprintf_s/test9/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/swprintf/test5/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/swprintf/test5/test5.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/swprintf/test5/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/vsprintf/test5/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/vsprintf/test5/test5.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/vsprintf/test5/testinfo.dat delete mode 100644 src/pal/tests/palsuite/c_runtime/vswprintf/test5/CMakeLists.txt delete mode 100644 src/pal/tests/palsuite/c_runtime/vswprintf/test5/test5.cpp delete mode 100644 src/pal/tests/palsuite/c_runtime/vswprintf/test5/testinfo.dat create mode 100644 src/pal/tools/clang-compiler-override-arm.txt delete mode 100644 src/strongname/api/api.props delete mode 100644 src/strongname/api/crossgen/strongname_crossgen.nativeproj delete mode 100644 src/strongname/api/dac/dirs.proj delete mode 100644 src/strongname/api/dirs.proj delete mode 100644 src/strongname/api/wks/strongname_wks.nativeproj delete mode 100644 src/strongname/dirs.proj delete mode 100644 src/strongname/inc/StrongName_inc.nativeproj delete mode 100644 src/strongname/strongname.vcxproj delete mode 100644 src/strongname/strongname.vcxproj.filters delete mode 100644 src/strongname/strongname.vcxproj.vspscc delete mode 100644 src/tools/GenClrDebugResource/GenClrDebugResource.nativeproj delete mode 100644 src/tools/InjectResource/InjectResource.nativeproj delete mode 100644 src/tools/crossgen/crossgen.nativeproj delete mode 100644 src/tools/dirs.proj delete mode 100644 src/tools/metainfo/metainfo.nativeproj delete mode 100644 src/unwinder/dac/dirs.proj delete mode 100644 src/unwinder/dac/hostlocal/unwinder_dac.nativeproj delete mode 100644 src/unwinder/dac/hostwinamd64/unwinder_dac.nativeproj delete mode 100644 src/unwinder/dac/hostwinx86/unwinder_dac.nativeproj delete mode 100644 src/unwinder/dirs.proj create mode 100644 src/unwinder/i386/unwinder_i386.cpp create mode 100644 src/unwinder/i386/unwinder_i386.h delete mode 100644 src/unwinder/unwinder.targets delete mode 100644 src/utilcode/UtilCode.vcproj delete mode 100644 src/utilcode/UtilCode.vcxproj delete mode 100644 src/utilcode/UtilCode.vcxproj.vspscc delete mode 100644 src/utilcode/crossgen/utilcode_crossgen.nativeproj delete mode 100644 src/utilcode/dac/dirs.proj delete mode 100644 src/utilcode/dirs.proj delete mode 100644 src/utilcode/dyncrt/dyncrt.nativeproj delete mode 100644 src/utilcode/staticnohost/staticnohost.nativeproj delete mode 100644 src/utilcode/staticnohost/staticnohost.targets delete mode 100644 src/utilcode/utilcode.settings.targets delete mode 100644 src/vm/amd64/CLRErrorReporting.vrg delete mode 100644 src/vm/certificatecache.cpp delete mode 100644 src/vm/certificatecache.h delete mode 100644 src/vm/confighelper.cpp delete mode 100644 src/vm/confighelper.h delete mode 100644 src/vm/crossgen/wks_crossgen.nativeproj delete mode 100644 src/vm/crossgen_mscorlib/mscorlib_crossgen.nativeproj delete mode 100644 src/vm/dac/dacwks.targets delete mode 100644 src/vm/dac/dirs.proj delete mode 100644 src/vm/dirs.proj delete mode 100644 src/vm/i386/CLRErrorReporting.vrg delete mode 100644 src/vm/newcompressedstack.cpp delete mode 100644 src/vm/newcompressedstack.h delete mode 100644 src/vm/securityhostprotection.cpp delete mode 100644 src/vm/securityhostprotection.h delete mode 100644 src/vm/securityimperative.cpp delete mode 100644 src/vm/securityimperative.h delete mode 100644 src/vm/securityprincipal.cpp delete mode 100644 src/vm/securityprincipal.h delete mode 100644 src/vm/securitystackwalk.cpp delete mode 100644 src/vm/stackcompressor.cpp delete mode 100644 src/vm/stackcompressor.h delete mode 100644 src/vm/vm.settings delete mode 100644 src/vm/vm.targets delete mode 100644 src/vm/wks/wks.nativeproj delete mode 100644 src/vm/wks/wks.targets delete mode 100644 src/zap/crossgen/zap_crossgen.nativeproj delete mode 100644 src/zap/dirs.proj delete mode 100644 src/zap/wks/zap.nativeproj delete mode 100644 src/zap/zap.settings.targets create mode 100644 tests/helixprep.proj create mode 100644 tests/helixpublish.proj create mode 100644 tests/scripts/run-corefx-tests.py delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeCompare.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeCompareTo1.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeCtor1.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeCtor3.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeCtor4.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeCtor6.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeCtor7.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeDate.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeGetHashCode.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeHour.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeKind.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeMaxValue.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeMillisecond.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeMinValue.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeMinute.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeNow.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeParse1.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeParse2.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeParse3.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeParseExact1.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeParseExact2.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeParseExact3.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeSecond.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeSubtract1.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeSubtract2.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeTicks.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeTimeOfDay.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeToFileTime.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeToFileTimeUtc.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeToLocalTime.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeToString1.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeToString2.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeToString3.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimeUtcNow.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/DateTimetoday.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/cfdatetimetools.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimecompare.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimecompareto1.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimector1.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimector3.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimector4.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimector6.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimector7.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimedate.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimegethashcode.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimehour.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimekind.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimemaxvalue.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimemillisecond.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimeminute.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimeminvalue.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimenow.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimeparse1.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimeparse2.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimeparse3.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimeparseexact1.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimeparseexact2.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimeparseexact3.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimesecond.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimesubtract1.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimesubtract2.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimeticks.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimetimeofday.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimetoday.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimetofiletime.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimetofiletimeutc.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimetolocaltime.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimetostring1.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimetostring2.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimetostring3.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetime/datetimeutcnow.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetimekind/DateTimeKindLocal.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetimekind/DateTimeKindUnspecified.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetimekind/DateTimeKindUtc.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/datetimekind/datetimekindlocal.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetimekind/datetimekindunspecified.cs delete mode 100644 tests/src/CoreMangLib/cti/system/datetimekind/datetimekindutc.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/calendarweekrule/CalendarWeekRuleFirstDay.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/calendarweekrule/CalendarWeekRuleFirstFourDayWeek.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/calendarweekrule/CalendarWeekRuleFirstFullWeek.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/calendarweekrule/calendarweekrulefirstday.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/calendarweekrule/calendarweekrulefirstfourdayweek.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/calendarweekrule/calendarweekrulefirstfullweek.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/charunicodeinfo/CharUnicodeInfoGetNumericValue1.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/charunicodeinfo/CharUnicodeInfoGetNumericValue2.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/charunicodeinfo/CharUnicodeInfoGetUnicodeCategory1.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/charunicodeinfo/CharUnicodeInfoGetUnicodeCategory2.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/charunicodeinfo/charunicodeinfogetnumericvalue1.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/charunicodeinfo/charunicodeinfogetnumericvalue2.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/charunicodeinfo/charunicodeinfogetunicodecategory1.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/charunicodeinfo/charunicodeinfogetunicodecategory2.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareinfo/CompareInfoCompare2.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareinfo/CompareInfoIndexOf2.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareinfo/compareinfocompare2.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareinfo/compareinfoindexof2.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareoptions/CompareOptionsIgnoreCase.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareoptions/CompareOptionsIgnoreKanaType.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareoptions/CompareOptionsIgnoreNonSpace.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareoptions/CompareOptionsIgnoreSymbols.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareoptions/CompareOptionsIgnoreWidth.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareoptions/CompareOptionsNone.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareoptions/CompareOptionsOrdinal.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareoptions/CompareOptionsOrdinalIgoreCase.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareoptions/CompareOptionsStringSort.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareoptions/compareoptionsignorecase.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareoptions/compareoptionsignorekanatype.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareoptions/compareoptionsignorenonspace.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareoptions/compareoptionsignoresymbols.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareoptions/compareoptionsignorewidth.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareoptions/compareoptionsnone.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareoptions/compareoptionsordinal.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareoptions/compareoptionsordinaligorecase.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/compareoptions/compareoptionsstringsort.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/CultureInfoClone.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/CultureInfoEnglishName.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/CultureInfoEquals.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/CultureInfoGetCultureInfo2.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/CultureInfoGetHashCode.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/CultureInfoInvariantCulture.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/CultureInfoIsNeutralCulture.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/CultureInfoName.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/CultureInfoNativeName.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/CultureInfoParent.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/CultureInfoReadOnly.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/CultureInfoTextInfo.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/CultureInfoToString.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/CultureInfoTwoLetterISOLanguageName.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/cultureinfoclone.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/cultureinfoenglishname.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/cultureinfoequals.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/cultureinfogetcultureinfo2.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/cultureinfogethashcode.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/cultureinfoinvariantculture.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/cultureinfoisneutralculture.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/cultureinfoname.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/cultureinfonativename.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/cultureinfoparent.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/cultureinforeadonly.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/cultureinfotextinfo.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/cultureinfotostring.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/cultureinfo/cultureinfotwoletterisolanguagename.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/DateTimeFormatInfoClone.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/DateTimeFormatInfoCurrentInfo.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/DateTimeFormatInfoGetAbbreviatedMonthName.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/DateTimeFormatInfoGetFormat.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/DateTimeFormatInfoGetInstance.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/DateTimeFormatInfoGetMonthName.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/DateTimeFormatInfoInvariantInfo.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/DateTimeFormatInfoIsReadOnly.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/DateTimeFormatInfoRFC1123Pattern.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/DateTimeFormatInfoReadOnly.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/DateTimeFormatInfoSortableDateTimePattern.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/UniversalSortableDateTimePattern.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/datetimeformatinfoclone.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/datetimeformatinfocurrentinfo.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/datetimeformatinfogetabbreviatedmonthname.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/datetimeformatinfogetformat.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/datetimeformatinfogetinstance.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/datetimeformatinfogetmonthname.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/datetimeformatinfoinvariantinfo.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/datetimeformatinfoisreadonly.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/datetimeformatinforeadonly.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/datetimeformatinforfc1123pattern.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/datetimeformatinfosortabledatetimepattern.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimeformatinfo/datetimeformatinfouniversalsortabledatetimepattern.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimestyles/DateTimeStyleAllowInnerWhite.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimestyles/DateTimeStylesAdjustToUniversal.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimestyles/DateTimeStylesAllowLeadingWhite.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimestyles/DateTimeStylesAllowTrailingWhite.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimestyles/DateTimeStylesAllowWhiteSpaces.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimestyles/DateTimeStylesAssumeLocal.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimestyles/DateTimeStylesAssumeUniversal.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimestyles/DateTimeStylesNoCurrentDateDefault.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimestyles/DateTimeStylesNone.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimestyles/DateTimeStylesRoundTripKind.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimestyles/datetimestyleallowinnerwhite.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimestyles/datetimestylesadjusttouniversal.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimestyles/datetimestylesallowleadingwhite.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimestyles/datetimestylesallowtrailingwhite.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimestyles/datetimestylesallowwhitespaces.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimestyles/datetimestylesassumelocal.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimestyles/datetimestylesassumeuniversal.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimestyles/datetimestylesnocurrentdatedefault.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimestyles/datetimestylesnone.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/datetimestyles/datetimestylesroundtripkind.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberformatinfo/NumberFormatInfoClone.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberformatinfo/NumberFormatInfoCtor.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberformatinfo/NumberFormatInfoCurrencyDecimalSeparator.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberformatinfo/NumberFormatInfoCurrencyGroupSeparator.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberformatinfo/NumberFormatInfoGetFormat.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberformatinfo/NumberFormatInfoGetInstance.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberformatinfo/NumberFormatInfoReadOnly.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberformatinfo/numberformatinfoclone.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberformatinfo/numberformatinfoctor.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberformatinfo/numberformatinfocurrencydecimalseparator.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberformatinfo/numberformatinfocurrencygroupseparator.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberformatinfo/numberformatinfogetformat.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberformatinfo/numberformatinfogetinstance.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberformatinfo/numberformatinforeadonly.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/NumberStylesAllowCurrencySymbol.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/NumberStylesAllowDecimalPoint.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/NumberStylesAllowExponent.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/NumberStylesAllowHexSpecifier.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/NumberStylesAllowLeadingSign.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/NumberStylesAllowLeadingWhite.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/NumberStylesAllowParentheses.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/NumberStylesAllowThousands.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/NumberStylesAllowTrailingSign.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/NumberStylesAllowTrailingWhite.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/NumberStylesAny.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/NumberStylesCurrency.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/NumberStylesFloat.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/NumberStylesHexNumber.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/NumberStylesInteger.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/NumberStylesNone.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/NumberStylesNumber.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/numberstylesallowcurrencysymbol.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/numberstylesallowdecimalpoint.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/numberstylesallowexponent.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/numberstylesallowhexspecifier.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/numberstylesallowleadingsign.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/numberstylesallowleadingwhite.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/numberstylesallowparentheses.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/numberstylesallowthousands.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/numberstylesallowtrailingsign.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/numberstylesallowtrailingwhite.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/numberstylesany.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/numberstylescurrency.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/numberstylesfloat.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/numberstyleshexnumber.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/numberstylesinteger.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/numberstylesnone.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/numberstyles/numberstylesnumber.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/regioninfo/RegionInfoEquals.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/regioninfo/RegionInfoGetHashCode.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/regioninfo/RegionInfoISOCurrencySymbol.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/regioninfo/RegionInfoIsMetric.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/regioninfo/RegionInfoName.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/regioninfo/RegionInfoToString.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/regioninfo/RegionInfoTwoLetterISORegionName.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/regioninfo/regioninfoequals.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/regioninfo/regioninfogethashcode.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/regioninfo/regioninfoismetric.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/regioninfo/regioninfoisocurrencysymbol.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/regioninfo/regioninfoname.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/regioninfo/regioninfotostring.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/regioninfo/regioninfotwoletterisoregionname.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/stringinfo/StringInfoCtor1.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/stringinfo/StringInfoCtor2.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/stringinfo/StringInfoEquals.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/stringinfo/StringInfoGetHashCode.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/stringinfo/StringInfoGetNextTextElement2.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/stringinfo/StringInfoGetTextElementEnumerator1.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/stringinfo/StringInfoGetTextElementEnumerator2.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/stringinfo/StringInfoLengthInTextElements.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/stringinfo/StringInfoParseCombiningCharacters.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/stringinfo/StringInfoString.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/stringinfo/stringinfoctor1.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/stringinfo/stringinfoctor2.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/stringinfo/stringinfoequals.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/stringinfo/stringinfogethashcode.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/stringinfo/stringinfogetnexttextelement2.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/stringinfo/stringinfogettextelementenumerator1.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/stringinfo/stringinfogettextelementenumerator2.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/stringinfo/stringinfolengthintextelements.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/stringinfo/stringinfoparsecombiningcharacters.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/stringinfo/stringinfostring.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textelementenumerator/TextElementEnumeratorCurrent.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textelementenumerator/TextElementEnumeratorElementIndex.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textelementenumerator/TextElementEnumeratorGetTextElement.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textelementenumerator/TextElementEnumeratorMoveNext.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textelementenumerator/TextElementEnumeratorReset.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textelementenumerator/textelementenumeratorcurrent.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textelementenumerator/textelementenumeratorelementindex.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textelementenumerator/textelementenumeratorgettextelement.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textelementenumerator/textelementenumeratormovenext.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textelementenumerator/textelementenumeratorreset.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textinfo/TextInfoCultureName.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textinfo/TextInfoEquals.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textinfo/TextInfoGetHashCode.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textinfo/TextInfoIsReadOnly.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textinfo/TextInfoToString.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textinfo/TextInfoToUpper1.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textinfo/TextInfoToUpper2.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textinfo/textinfoculturename.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textinfo/textinfoequals.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textinfo/textinfogethashcode.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textinfo/textinfoisreadonly.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textinfo/textinfotostring.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textinfo/textinfotoupper1.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/textinfo/textinfotoupper2.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryClosePunctuation.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryConnectorPunctuation.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryControl.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryDashPunctuation.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryDecimalDigitNumber.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryEnclosingMark.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryFinalQuotePunctuation.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryFormat.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryInitialQuotePunctuation.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryLetterNumber.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryLineSeparator.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryLowercaseLetter.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryMathSymbol.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryModifierLetter.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryModifierSymbol.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryNonSpacingMark.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryOpenPunctuation.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryOtherLetter.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryOtherNotAssigned.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryOtherNumber.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryOtherPunctuation.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryOtherSymbol.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryParagraphSeparator.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryPrivateUse.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategorySpaceSeparator.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategorySpacingCombiningMark.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategorySurrogate.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryTitlecaseLetter.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/UnicodeCategoryUppercaseLetter.csproj delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategoryclosepunctuation.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategoryconnectorpunctuation.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategorycontrol.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategorydashpunctuation.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategorydecimaldigitnumber.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategoryenclosingmark.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategoryfinalquotepunctuation.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategoryformat.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategoryinitialquotepunctuation.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategoryletternumber.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategorylineseparator.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategorylowercaseletter.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategorymathsymbol.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategorymodifierletter.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategorymodifiersymbol.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategorynonspacingmark.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategoryopenpunctuation.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategoryotherletter.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategoryothernotassigned.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategoryothernumber.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategoryotherpunctuation.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategoryothersymbol.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategoryparagraphseparator.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategoryprivateuse.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategoryspaceseparator.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategoryspacingcombiningmark.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategorysurrogate.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategorytitlecaseletter.cs delete mode 100644 tests/src/CoreMangLib/cti/system/globalization/unicodecategory/unicodecategoryuppercaseletter.cs delete mode 100644 tests/src/CoreMangLib/system/datetime/Co7510ParseExact_formatarray.csproj delete mode 100644 tests/src/CoreMangLib/system/datetime/co7510parseexact_formatarray.cs delete mode 100644 tests/src/CoreMangLib/system/text/encoding/Shift_Jis.csproj delete mode 100644 tests/src/CoreMangLib/system/text/encoding/shift_jis.cs create mode 100644 tests/src/JIT/Directed/shift/uint64Opt.cs create mode 100644 tests/src/JIT/Directed/shift/uint64Opt_d.csproj create mode 100644 tests/src/JIT/Directed/shift/uint64Opt_do.csproj create mode 100644 tests/src/JIT/Directed/shift/uint64Opt_r.csproj create mode 100644 tests/src/JIT/Directed/shift/uint64Opt_ro.csproj create mode 100644 tests/src/JIT/Performance/CodeQuality/BenchmarksGame/binarytrees/binarytrees.csharp3.cs create mode 100644 tests/src/JIT/Performance/CodeQuality/BenchmarksGame/binarytrees/binarytrees3.csproj create mode 100644 tests/src/JIT/Performance/CodeQuality/BenchmarksGame/k-nucleotide/k-nucleotide.cs create mode 100644 tests/src/JIT/Performance/CodeQuality/BenchmarksGame/k-nucleotide/k-nucleotide.csproj create mode 100644 tests/src/JIT/Performance/CodeQuality/BenchmarksGame/k-nucleotide/knucleotide-input-big.txt create mode 100644 tests/src/JIT/Performance/CodeQuality/BenchmarksGame/k-nucleotide/knucleotide-input.txt create mode 100644 tests/src/JIT/Performance/CodeQuality/BenchmarksGame/regexdna/regexdna-input25.txt create mode 100644 tests/src/JIT/Performance/CodeQuality/BenchmarksGame/regexdna/regexdna-input25000.txt create mode 100644 tests/src/JIT/Performance/CodeQuality/BenchmarksGame/regexdna/regexdna.csharp-6.cs create mode 100644 tests/src/JIT/Performance/CodeQuality/BenchmarksGame/regexdna/regexdna.csproj create mode 100644 tests/src/JIT/Performance/CodeQuality/BenchmarksGame/revcomp/revcomp-input25.txt create mode 100644 tests/src/JIT/Performance/CodeQuality/BenchmarksGame/revcomp/revcomp-input25000.txt create mode 100644 tests/src/JIT/Performance/CodeQuality/BenchmarksGame/revcomp/revcomp.csharp-1.cs create mode 100644 tests/src/JIT/Performance/CodeQuality/BenchmarksGame/revcomp/revcomp.csproj create mode 100644 tests/src/JIT/Regression/JitBlue/DevDiv_1206929/DevDiv_1206929.cs create mode 100644 tests/src/JIT/Regression/JitBlue/DevDiv_1206929/DevDiv_1206929.csproj create mode 100644 tests/src/JIT/Regression/JitBlue/DevDiv_359733/DevDiv_359733.il create mode 100644 tests/src/JIT/Regression/JitBlue/DevDiv_359733/DevDiv_359733.ilproj create mode 100644 tests/src/JIT/Regression/JitBlue/DevDiv_359737/DevDiv_359737.il create mode 100644 tests/src/JIT/Regression/JitBlue/DevDiv_359737/DevDiv_359737.ilproj create mode 100644 tests/src/JIT/Regression/JitBlue/DevDiv_362706/DevDiv_362706.il create mode 100644 tests/src/JIT/Regression/JitBlue/DevDiv_362706/DevDiv_362706.ilproj create mode 100644 tests/src/JIT/Regression/JitBlue/DevDiv_367099/DevDiv_367099.il create mode 100644 tests/src/JIT/Regression/JitBlue/DevDiv_367099/DevDiv_367099.ilproj create mode 100644 tests/src/JIT/Regression/JitBlue/DevDiv_370233/DevDiv_370233.il create mode 100644 tests/src/JIT/Regression/JitBlue/DevDiv_370233/DevDiv_370233.ilproj create mode 100644 tests/src/JIT/Regression/JitBlue/DevDiv_377155/DevDiv_377155.il create mode 100644 tests/src/JIT/Regression/JitBlue/DevDiv_377155/DevDiv_377155.ilproj create mode 100644 tests/src/JIT/Regression/JitBlue/GitHub_7508/Vector3Test.cs create mode 100644 tests/src/JIT/Regression/JitBlue/GitHub_7508/Vector3Test.csproj create mode 100644 tests/src/jit/Performance/CodeQuality/Span/SpanBench.cs create mode 100644 tests/src/jit/Performance/CodeQuality/Span/SpanBench.csproj diff --git a/.gitattributes b/.gitattributes index ea1c23b..519ecbb 100644 --- a/.gitattributes +++ b/.gitattributes @@ -66,3 +66,11 @@ *.sh text eol=lf src/pal/tests/palsuite/paltestlist.txt text eol=lf src/pal/tests/palsuite/paltestlist_to_be_reviewed.txt text eol=lf + +tests/src/JIT/Performance/CodeQuality/BenchmarksGame/regexdna/regexdna-input25.txt text eol=lf +tests/src/JIT/Performance/CodeQuality/BenchmarksGame/regexdna/regexdna-input25000.txt text eol=lf +tests/src/JIT/Performance/CodeQuality/BenchmarksGame/revcomp/revcomp-input25.txt text eol=lf +tests/src/JIT/Performance/CodeQuality/BenchmarksGame/revcomp/revcomp-input25000.txt text eol=lf +tests/src/JIT/Performance/CodeQuality/BenchmarksGame/k-nucleotide/knucleotide-input.txt text eol=lf +tests/src/JIT/Performance/CodeQuality/BenchmarksGame/k-nucleotide/knucleotide-input-big.txt text eol=lf + diff --git a/BuildToolsVersion.txt b/BuildToolsVersion.txt index f271787..49acdc6 100644 --- a/BuildToolsVersion.txt +++ b/BuildToolsVersion.txt @@ -1 +1 @@ -1.0.27-prerelease-01008-01 \ No newline at end of file +1.0.27-prerelease-01209-01 diff --git a/CMakeLists.txt b/CMakeLists.txt index 61c689b..c9a75e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -103,7 +103,7 @@ else (WIN32) # Ensure that objcopy is present if (DEFINED ENV{CROSSCOMPILE} AND NOT DEFINED CLR_CROSS_COMPONENTS_BUILD) if (CMAKE_SYSTEM_PROCESSOR STREQUAL armv7l OR CMAKE_SYSTEM_PROCESSOR STREQUAL aarch64) - find_program(OBJCOPY ${TOOLCHAIN}-objcopy) + find_program(OBJCOPY ${TOOLCHAIN_PREFIX}objcopy) elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL i686) find_program(OBJCOPY objcopy) else() @@ -129,7 +129,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL Linux) set(CLR_CMAKE_PLATFORM_UNIX 1) if(CLR_CROSS_COMPONENTS_BUILD) # CMAKE_HOST_SYSTEM_PROCESSOR returns the value of `uname -p` on host. - if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL x86_64 OR CMAKE_SYSTEM_PROCESSOR STREQUAL amd64) + if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL x86_64 OR CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL amd64) if(CLR_CMAKE_TARGET_ARCH STREQUAL "arm") set(CLR_CMAKE_PLATFORM_UNIX_X86 1) else() @@ -544,17 +544,15 @@ include(pgosupport.cmake) # - project which require platform header not clr's # - do not depend on clr's compile definitions #----------------------------------------- -if(CLR_CMAKE_PLATFORM_UNIX) +if(CLR_CMAKE_PLATFORM_UNIX AND NOT DEFINED CLR_CROSS_COMPONENTS_BUILD) add_subdirectory(src/corefx) -endif(CLR_CMAKE_PLATFORM_UNIX) +endif() if(CLR_CMAKE_PLATFORM_UNIX) - add_subdirectory(src/ToolBox/SOS/lldbplugin) - if(NOT DEFINED CLR_CROSS_COMPONENTS_BUILD) + add_subdirectory(src/ToolBox/SOS/lldbplugin) add_subdirectory(src/pal) - endif(NOT DEFINED CLR_CROSS_COMPONENTS_BUILD) - add_subdirectory(src/coreclr/hosts) - add_subdirectory(src/ildasm/unixcoreclrloader) + add_subdirectory(src/coreclr/hosts) + add_subdirectory(src/ildasm/unixcoreclrloader) endif(CLR_CMAKE_PLATFORM_UNIX) # Add this subdir. We install the headers for the jit. @@ -581,6 +579,14 @@ endif(WIN32) include_directories("src/pal/prebuilt/inc") include_directories("bin/obj") +if(FEATURE_STANDALONE_GC) + add_definitions(-DFEATURE_STANDALONE_GC) + + if(CLR_CMAKE_PLATFORM_UNIX) + add_subdirectory(src/gc/unix) + endif(CLR_CMAKE_PLATFORM_UNIX) +endif(FEATURE_STANDALONE_GC) + if (CLR_CMAKE_PLATFORM_UNIX) include_directories("src/pal/inc") include_directories("src/pal/inc/rt") diff --git a/Documentation/botr/clr-abi.md b/Documentation/botr/clr-abi.md index caa5c7a..6719522 100644 --- a/Documentation/botr/clr-abi.md +++ b/Documentation/botr/clr-abi.md @@ -50,7 +50,7 @@ Managed varargs are not supported in .NET Core. ## Generics -*Shared generics*. In cases where the code address does not uniquely identify a generic instantiation of a method, then a 'generic instantiation parameter' is required. Often the "this" pointer can serve dual-purpose as the instantiation parameter. When the "this" pointer is not the generic parameter, the generic parameter is passed as the next argument (after the optional return buffer and the optional "this" pointer, but before any user arguments). For generic methods (where there is a type parameter directly on the method, as compared to the type), the generic parameter currently is a MethodDesc pointer (I believe an InstantiatedMethodDesc). For static methods (where there is no "this" pointer) the generic parameter is a MethodTable pointer/TypeHandle. +*Shared generics*. In cases where the code address does not uniquely identify a generic instantiation of a method, then a 'generic instantiation parameter' is required. Often the "this" pointer can serve dual-purpose as the instantiation parameter. When the "this" pointer is not the generic parameter, the generic parameter is passed as an additional argument. On ARM, ARM64 and AMD64, it is passed after the optional return buffer and the optional "this" pointer, but before any user arguments. On x86, if all arguments of the function including "this" pointer fit into argument registers (ECX and EDX) and we still have argument registers available, we store the hidden argument in the next available argument register. Otherwise it is passed as the last stack argument. For generic methods (where there is a type parameter directly on the method, as compared to the type), the generic parameter currently is a MethodDesc pointer (I believe an InstantiatedMethodDesc). For static methods (where there is no "this" pointer) the generic parameter is a MethodTable pointer/TypeHandle. Sometimes the VM asks the JIT to report and keep alive the generics parameter. In this case, it must be saved on the stack someplace and kept alive via normal GC reporting (if it was the "this" pointer, as compared to a MethodDesc or MethodTable) for the entire method except the prolog and epilog. Also note that the code to home it, must be in the range of code reported as the prolog in the GC info (which probably isn't the same as the range of code reported as the prolog in the unwind info). @@ -139,17 +139,19 @@ This section describes the conventions the JIT needs to follow when generating c ## Funclets -For non-x86 platforms, all managed EH handlers (finally, fault, filter, filter-handler, and catch) are extracted into their own 'funclets'. To the OS they are treated just like first class functions (separate PDATA and XDATA (`RUNTIME_FUNCTION` entry), etc.). The CLR currently treats them just like part of the parent function in many ways. The main function and all funclets must be allocated in a single code allocation (see hot cold splitting). They 'share' GC info. Only the main function prolog can be hot patched. +For all platforms except Windows/x86, all managed EH handlers (finally, fault, filter, filter-handler, and catch) are extracted into their own 'funclets'. To the OS they are treated just like first class functions (separate PDATA and XDATA (`RUNTIME_FUNCTION` entry), etc.). The CLR currently treats them just like part of the parent function in many ways. The main function and all funclets must be allocated in a single code allocation (see hot cold splitting). They 'share' GC info. Only the main function prolog can be hot patched. The only way to enter a handler funclet is via a call. In the case of an exception, the call is from the VM's EH subsystem as part of exception dispatch/unwind. In the non-exceptional case, this is called local unwind or a non-local exit. In C# this is accomplished by simply falling-through/out of a try body or an explicit goto. In IL this is always accomplished via a LEAVE opcode, within a try body, targeting an IL offset outside the try body. In such cases the call is from the JITed code of the parent function. -For x86, all handlers are generated within the method body, typically in lexical order. A nested try/catch is generated completely within the EH region in which it is nested. These handlers are essentially "in-line funclets", but they do not look like normal functions: they do not have a normal prolog or epilog, although they do have special entry/exit and register conventions. Also, nested handlers are not un-nested as for funclets: the code for a nested handler is generated within the handler in which it is nested. +For Windows/x86, all handlers are generated within the method body, typically in lexical order. A nested try/catch is generated completely within the EH region in which it is nested. These handlers are essentially "in-line funclets", but they do not look like normal functions: they do not have a normal prolog or epilog, although they do have special entry/exit and register conventions. Also, nested handlers are not un-nested as for funclets: the code for a nested handler is generated within the handler in which it is nested. ## Cloned finallys JIT64 attempts to speed the normal control flow by 'inlining' a called finally along the 'normal' control flow (i.e., leaving a try body in a non-exceptional manner via C# fall-through). Because the VM semantics for non-rude Thread.Abort dictate that handlers will not be aborted, the JIT must mark these 'inlined' finally bodies. These show up as special entries at the end of the EH tables and are marked with `COR_ILEXCEPTION_CLAUSE_FINALLY | COR_ILEXCEPTION_CLAUSE_DUPLICATED`, and the try_start, try_end, and handler_start are all the same: the start of the cloned finally. -JIT32 and RyuJIT currently do not implement finally cloning. +RyuJit also implements finally cloning, for all supported architectures. However, the implementation does not yet handle the thread abort case; cloned finally bodies are not guaranteed to remain intact and are not reported to the runtime. Because of this, finally cloning is disabled for VMs that support thread abort (desktop clr). + +JIT32 does not implement finally cloning. ## Invoking Finallys/Non-local exits @@ -283,7 +285,7 @@ The PSPSym is a pointer-sized local variable in the frame of the main function a The VM uses the PSPSym to find other locals it cares about (such as the generics context in a funclet frame). The JIT uses it to re-establish the frame pointer register, so that the frame pointer is the same value in a funclet as it is in the main function body. -When a funclet is called, it is passed the *Establisher Frame Pointer*. For AMD64 this is true for all funclets and it is passed as the first argument in RCX, but for ARM and ARM64 this is only true for first pass funclets (currently just filters) and it is passed as the second argument in R1. The Establisher Frame Pointer is a stack pointer of an interesting "parent" frame in the exception processing system. For the CLR, it points either to the main function frame or a dynamically enclosing funclet frame from the same function, for the funclet being invoked. The value of the Establisher Frame Pointer is Initial-SP on AMD64, Caller-SP on ARM and ARM64. +When a funclet is called, it is passed the *Establisher Frame Pointer*. For AMD64 this is true for all funclets and it is passed as the first argument in RCX, but for ARM and ARM64 this is only true for first pass funclets (currently just filters) and it is passed as the second argument in R1. The Establisher Frame Pointer is a stack pointer of an interesting "parent" frame in the exception processing system. For the CLR, it points either to the main function frame or a dynamically enclosing funclet frame from the same function, for the funclet being invoked. The value of the Establisher Frame Pointer is Initial-SP on AMD64, Caller-SP on x86, ARM, and ARM64. Using the establisher frame, the funclet wants to load the value of the PSPSym. Since we don't know if the Establisher Frame is from the main function or a funclet, we design the main function and funclet frame layouts to place the PSPSym at an identical, small, constant offset from the Establisher Frame in each case. (This is also required because we only report a single offset to the PSPSym in the GC information, and that offset must be valid for the main function and all of its funclets). Then, the funclet uses this known offset to compute the PSPSym address and read its value. From this, it can compute the value of the frame pointer (which is a constant offset from the PSPSym value) and set the frame register to be the same as the parent function. Also, the funclet writes the value of the PSPSym to its own frame's PSPSym. This "copying" of the PSPSym happens for every funclet invocation, in particular, for every nested funclet invocation. @@ -331,9 +333,9 @@ When a funclet finishes execution, and the VM returns execution to the function Any register value changes made in the funclet are lost. If a funclet wants to make a variable change known to the main function (or the funclet that contains the "try" region), that variable change needs to be made to the shared main function stack frame. -## x86 EH considerations +## Windows/x86 EH considerations -The x86 model is somewhat different than the non-x86 model. X86-specific concerns are mentioned here. +The Windows/x86 model is somewhat different than non-Windows/x86 model. Windows/X86-specific concerns are mentioned here. ### catch / filter-handler regions diff --git a/Documentation/building/android.md b/Documentation/building/android.md new file mode 100644 index 0000000..cfb509d --- /dev/null +++ b/Documentation/building/android.md @@ -0,0 +1,102 @@ +Cross Compilation for Android on Linux +====================================== + +Through cross compilation, on Linux it is possible to build CoreCLR for arm64 Android. + +Requirements +------------ + +You'll need to generate a toolchain and a sysroot for Android. There's a script which takes care of the required steps. + +Generating the rootfs +--------------------- + +To generate the rootfs, run the following command in the `coreclr` folder: + +``` +cross/init-android-rootfs.sh +``` + +This will download the NDK and any packages required to compile Android on your system. It's over 1 GB of data, so it may take a while. + + +Cross compiling CoreCLR +----------------------- +Once the rootfs has been generated, it will be possible to cross compile CoreCLR. + +When cross compiling, you need to set both the `CONFIG_DIR` and `ROOTFS_DIR` variables. + +To compile for arm64, run: + +``` +CONFIG_DIR=`realpath cross/android/arm64` ROOTFS_DIR=`realpath cross/android-rootfs/toolchain/arm64/sysroot` ./build.sh cross arm64 skipgenerateversion skipmscorlib cmakeargs -DENABLE_LLDBPLUGIN=0 +``` + +The resulting binaries will be found in `bin/Product/Linux.BuildArch.BuildType/` + +Running the PAL tests on Android +-------------------------------- + +You can run the PAL tests on an Android device. To run the tests, you first copy the PAL tests to your Android phone using +`adb`, and then run them in an interactive Android shell using `adb shell`: + +To copy the PAL tests over to an Android phone: +``` +adb push bin/obj/Linux.arm64.Debug/src/pal/tests/palsuite/ /data/local/tmp/coreclr/src/pal/tests/palsuite +adb push cross/android/toolchain/arm64/sysroot/usr/lib/libuuid.so.1 /data/local/tmp/coreclr/lib +adb push cross/android/toolchain/arm64/sysroot/usr/lib/libintl.so /data/local/tmp/coreclr/lib +adb push cross/android/toolchain/arm64/sysroot/usr/lib/libandroid-support.so /data/local/tmp/coreclr/lib/ +adb push cross/android/toolchain/arm64/sysroot/usr/lib/libandroid-glob.so /data/local/tmp/coreclr/lib/ +adb push src/pal/tests/palsuite/paltestlist.txt /data/local/tmp/coreclr +adb push src/pal/tests/palsuite/runpaltests.sh /data/local/tmp/coreclr/ +``` + +Then, use `adb shell` to launch a shell on Android. Inside that shell, you can launch the PAL tests: +``` +LD_LIBRARY_PATH=/data/local/tmp/coreclr/lib ./runpaltests.sh /data/local/tmp/coreclr/ +``` + +Debugging coreclr on Android +---------------------------- + +You can debug coreclr on Android using a remote lldb server which you run on your Android device. + +First, push the lldb server to Android: + +``` +adb push cross/android/lldb/2.2/android/arm64-v8a/lldb-server /data/local/tmp/ +``` + +Then, launch the lldb server on the Android device. Open a shell using `adb shell` and run: + +``` +adb shell +cd /data/local/tmp +./lldb-server platform --listen *:1234 +``` + +After that, you'll need to forward port 1234 from your Android device to your PC: +``` +adb forward tcp:1234 tcp:1234 +``` + +Finally, install lldb on your PC and connect to the debug server running on your Android device: + +``` +lldb-3.9 +(lldb) platform select remote-android + Platform: remote-android + Connected: no +(lldb) platform connect connect://localhost:1234 + Platform: remote-android + Triple: aarch64-*-linux-android +OS Version: 23.0.0 (3.10.84-perf-gf38969a) + Kernel: #1 SMP PREEMPT Fri Sep 16 11:29:29 2016 + Hostname: localhost + Connected: yes +WorkingDir: /data/local/tmp + +(lldb) target create coreclr/pal/tests/palsuite/file_io/CopyFileA/test4/paltest_copyfilea_test4 +(lldb) env LD_LIBRARY_PATH=/data/local/tmp/coreclr/lib +(lldb) run +``` diff --git a/Documentation/building/cross-building.md b/Documentation/building/cross-building.md index ab5897a..30c7aca 100644 --- a/Documentation/building/cross-building.md +++ b/Documentation/building/cross-building.md @@ -21,11 +21,12 @@ and conversely for arm64: Generating the rootfs --------------------- -The `cross\build-rootfs.sh` script can be used to download the files needed for cross compilation. It will generate an Ubuntu 14.04 rootfs as this is what CoreCLR targets. +The `cross\build-rootfs.sh` script can be used to download the files needed for cross compilation. It will generate an rootfs as this is what CoreCLR targets. - Usage: build-rootfs.sh [BuildArch] [UbuntuCodeName] - BuildArch can be: arm, arm-softfp, arm64 - UbuntuCodeName - optional, Code name for Ubuntu, can be: trusty(default), vivid, wily + Usage: ./cross/build-rootfs.sh [BuildArch] [LinuxCodeName] [lldbx.y] [--skipunmount] + BuildArch can be: arm(default), armel, arm64, x86 + LinuxCodeName - optional, Code name for Linux, can be: trusty(default), vivid, wily, xenial. If BuildArch is armel, LinuxCodeName is jessie(default) or tizen. + lldbx.y - optional, LLDB version, can be: lldb3.6(default), lldb3.8 The `build-rootfs.sh` script must be run as root as it has to make some symlinks to the system, it will by default generate the rootfs in `cross\rootfs\` however this can be changed by setting the `ROOTFS_DIR` environment variable. @@ -33,7 +34,7 @@ For example, to generate an arm rootfs: ben@ubuntu ~/git/coreclr/ $ sudo ./cross/build-rootfs.sh arm -You can choose Ubuntu code name to match your target, give `vivid` for `15.04`, `wily` for `15.10`. Default is `trusty`, version `14.04`. +You can choose Linux code name to match your target, give `vivid` for `Ubuntu 15.04`, `wily` for `Ubuntu 15.10`. Default is `trusty`, version `Ubuntu 14.04`. ben@ubuntu ~/git/coreclr/ $ sudo ./cross/build-rootfs.sh arm wily @@ -41,6 +42,18 @@ and if you wanted to generate the rootfs elsewhere: ben@ubuntu ~/git/coreclr/ $ sudo ROOTFS_DIR=/home/ben/coreclr-cross/arm ./cross/build-rootfs.sh arm +For example, to generate an armel rootfs: + + hqu@ubuntu ~/git/coreclr/ $ sudo ./cross/build-rootfs.sh armel + +You can choose code name to match your target, give `jessie` for `Debian`, `tizen` for `Tizen`. Default is `jessie`. + + hque@ubuntu ~/git/coreclr/ $ sudo ./cross/build-rootfs.sh armel tizen + +and if you wanted to generate the rootfs elsewhere: + + hque@ubuntu ~/git/coreclr/ $ sudo ROOTFS_DIR=/home/ben/coreclr-cross/armel ./cross/build-rootfs.sh armel tizen + Cross compiling CoreCLR ----------------------- @@ -117,7 +130,7 @@ prajwal@ubuntu ~/coreclr $ ./tests/scripts/arm32_ci_script.sh \ --skipTests ``` -The Linux ARM Emulator is based on soft floating point and thus the native binaries in coreclr are built for the arm-softfp architecture. The coreclr binaries generated by the above command (native and mscorlib) can be found at `~/coreclr/bin/Product/Linux.arm-softfp.Release`. +The Linux ARM Emulator is based on soft floating point and thus the native binaries in coreclr are built for the armel architecture. The coreclr binaries generated by the above command (native and mscorlib) can be found at `~/coreclr/bin/Product/Linux.armel.Release`. To build libcoreclr and mscorlib, and run selected coreclr unit tests on the emulator, do the following: * Download the latest Coreclr unit test binaries (or build on Windows) from here: [Debug](http://dotnet-ci.cloudapp.net/job/dotnet_coreclr/job/master/job/debug_windows_nt_bld/lastSuccessfulBuild/artifact/bin/tests/tests.zip) and [Release](http://dotnet-ci.cloudapp.net/job/dotnet_coreclr/job/master/job/release_windows_nt_bld/lastSuccessfulBuild/artifact/bin/tests/tests.zip). diff --git a/Documentation/building/testing-with-corefx.md b/Documentation/building/testing-with-corefx.md index 4f9886f..defc8f8 100644 --- a/Documentation/building/testing-with-corefx.md +++ b/Documentation/building/testing-with-corefx.md @@ -3,18 +3,23 @@ Testing with CoreFX It may be valuable to use CoreFX tests to validate your changes to CoreCLR or mscorlib. -**Windows** +**NOTE:** The `BUILDTOOLS_OVERRIDE_RUNTIME` property no longer works. -As part of building tests, CoreFX restores a copy of the runtime from myget, in order to update the runtime that is deployed, a special build property `BUILDTOOLS_OVERRIDE_RUNTIME` can be used. If this is set, the CoreFX testing targets will copy all the files in the folder it points to into the test folder, overwriting any files that exist. +**Replace runtime between build.[cmd|sh] and build-tests.[cmd|sh]** -To run tests, follow the procedure for [running tests in CoreFX](https://github.com/dotnet/corefx/blob/master/Documentation/building/windows-instructions.md). You can pass `/p:BUILDTOOLS_OVERRIDE_RUNTIME=\bin\Product\Windows_NT.x64.Release` to build.cmd to set this property, e.g. (note the space between the "--" and the "/p" option): +Use the following instructions to test a change to the dotnet/coreclr repo using dotnet/corefx tests. Refer to the [CoreFx Developer Guide](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/developer-guide.md) for information about CoreFx build scripts. -``` -build.cmd -Release -- /p:BUILDTOOLS_OVERRIDE_RUNTIME=\bin\Product\Windows_NT.x64.Checked -``` +1. Build the CoreClr runtime you wish to test under `` +2. Build the CoreFx repo (`build.[cmd|sh]`) under ``, but don't build tests yet +3. Copy the contents of the CoreCLR binary root you wish to test into the CoreFx runtime folder (`` below) created in step #2. For example: -**FreeBSD, Linux, NetBSD, OS X** + `copy \bin\Product\Windows_NT..\* \bin\runtime\` + -or- + `cp /bin/Product/../* /bin/runtime/` + +4. Run the CoreFx `build-tests.[cmd|sh]` script as described in the Developer Guide. + +**CI Script** + +[run-corefx-tests.py](https://github.com/dotnet/coreclr/blob/master/tests/scripts/run-corefx-tests.py) will clone dotnet/corefx and run steps 2-4 above automatically. It is primarily intended to be run by the dotnet/coreclr CI system, but it might provide a useful reference or shortcut for individuals running the tests locally. -Refer to the procedure for [running tests in CoreFX](https://github.com/dotnet/corefx/blob/master/Documentation/building/cross-platform-testing.md) -- Note the --coreclr-bins and --mscorlib-bins arguments to [run-test.sh](https://github.com/dotnet/corefx/blob/master/run-test.sh) -- Pass in paths to your private build of CoreCLR diff --git a/Documentation/building/unix-test-instructions.md b/Documentation/building/unix-test-instructions.md index 9cf7507..563c3e8 100644 --- a/Documentation/building/unix-test-instructions.md +++ b/Documentation/building/unix-test-instructions.md @@ -36,8 +36,7 @@ Run tests (`Debug` may be replaced with `Release` or `Checked`, depending on whi > --testNativeBinDir=~/coreclr/bin/obj/Linux.x64.Debug/tests > --coreClrBinDir=~/coreclr/bin/Product/Linux.x64.Debug > --mscorlibDir=/media/coreclr/bin/Product/Linux.x64.Debug -> --coreFxBinDir="~/corefx/bin/Linux.AnyCPU.Debug;~/corefx/bin/Unix.AnyCPU.Debug;~/corefx/bin/AnyOS.AnyCPU.Debug" -> --coreFxNativeBinDir=~/corefx/bin/Linux.x64.Debug +> --coreFxBinDir=~/corefx/bin/runtime/netcoreapp-Linux-Debug-x64 > ``` The method above will copy dependencies from the set of directories provided to create an 'overlay' directory. diff --git a/Documentation/design-docs/finally-optimizations.md b/Documentation/design-docs/finally-optimizations.md new file mode 100644 index 0000000..d35d5a4 --- /dev/null +++ b/Documentation/design-docs/finally-optimizations.md @@ -0,0 +1,487 @@ +Finally Optimizations +===================== + +In MSIL, a try-finally is a construct where a block of code +(the finally) is guaranteed to be executed after control leaves a +protected region of code (the try) either normally or via an +exception. + +In RyuJit a try-finally is currently implemented by transforming the +finally into a local function that is invoked via jitted code at normal +exits from the try block and is invoked via the runtime for exceptional +exits from the try block. + +For x86 the local function is simply a part of the method and shares +the same stack frame with the method. For other architectures the +local function is promoted to a potentially separable "funclet" +which is almost like a regular function with a prolog and epilog. A +custom calling convention gives the funclet access to the parent stack +frame. + +In this proposal we outline three optimizations for finallys: removing +empty trys, removing empty finallys and finally cloning. + +Empty Finally Removal +--------------------- + +An empty finally is one that has no observable effect. These often +arise from `foreach` or `using` constructs (which induce a +try-finally) where the cleanup method called in the finally does +nothing. Often, after inlining, the empty finally is readily apparent. + +For example, this snippet of C# code +```C# +static int Sum(List x) { + int sum = 0; + foreach(int i in x) { + sum += i; + } + return sum; +} +``` +produces the following jitted code: +```asm +; Successfully inlined Enumerator[Int32][System.Int32]:Dispose():this +; (1 IL bytes) (depth 1) [below ALWAYS_INLINE size] +G_M60484_IG01: + 55 push rbp + 57 push rdi + 56 push rsi + 4883EC50 sub rsp, 80 + 488D6C2460 lea rbp, [rsp+60H] + 488BF1 mov rsi, rcx + 488D7DD0 lea rdi, [rbp-30H] + B906000000 mov ecx, 6 + 33C0 xor rax, rax + F3AB rep stosd + 488BCE mov rcx, rsi + 488965C0 mov qword ptr [rbp-40H], rsp + +G_M60484_IG02: + 33C0 xor eax, eax + 8945EC mov dword ptr [rbp-14H], eax + 8B01 mov eax, dword ptr [rcx] + 8B411C mov eax, dword ptr [rcx+28] + 33D2 xor edx, edx + 48894DD0 mov gword ptr [rbp-30H], rcx + 8955D8 mov dword ptr [rbp-28H], edx + 8945DC mov dword ptr [rbp-24H], eax + 8955E0 mov dword ptr [rbp-20H], edx + +G_M60484_IG03: + 488D4DD0 lea rcx, bword ptr [rbp-30H] + E89B35665B call Enumerator[Int32][System.Int32]:MoveNext():bool:this + 85C0 test eax, eax + 7418 je SHORT G_M60484_IG05 + +; Body of foreach loop + +G_M60484_IG04: + 8B4DE0 mov ecx, dword ptr [rbp-20H] + 8B45EC mov eax, dword ptr [rbp-14H] + 03C1 add eax, ecx + 8945EC mov dword ptr [rbp-14H], eax + 488D4DD0 lea rcx, bword ptr [rbp-30H] + E88335665B call Enumerator[Int32][System.Int32]:MoveNext():bool:this + 85C0 test eax, eax + 75E8 jne SHORT G_M60484_IG04 + +; Normal exit from the implicit try region created by `foreach` +; Calls the finally to dispose of the iterator + +G_M60484_IG05: + 488BCC mov rcx, rsp + E80C000000 call G_M60484_IG09 // call to finally + +G_M60484_IG06: + 90 nop + +G_M60484_IG07: + 8B45EC mov eax, dword ptr [rbp-14H] + +G_M60484_IG08: + 488D65F0 lea rsp, [rbp-10H] + 5E pop rsi + 5F pop rdi + 5D pop rbp + C3 ret + +; Finally funclet. Note it simply sets up and then tears down a stack +; frame. The dispose method was inlined and is empty. + +G_M60484_IG09: + 55 push rbp + 57 push rdi + 56 push rsi + 4883EC30 sub rsp, 48 + 488B6920 mov rbp, qword ptr [rcx+32] + 48896C2420 mov qword ptr [rsp+20H], rbp + 488D6D60 lea rbp, [rbp+60H] + +G_M60484_IG10: + 4883C430 add rsp, 48 + 5E pop rsi + 5F pop rdi + 5D pop rbp + C3 ret +``` + +In such cases the try-finally can be removed, leading to code like the following: +```asm +G_M60484_IG01: + 57 push rdi + 56 push rsi + 4883EC38 sub rsp, 56 + 488BF1 mov rsi, rcx + 488D7C2420 lea rdi, [rsp+20H] + B906000000 mov ecx, 6 + 33C0 xor rax, rax + F3AB rep stosd + 488BCE mov rcx, rsi + +G_M60484_IG02: + 33F6 xor esi, esi + 8B01 mov eax, dword ptr [rcx] + 8B411C mov eax, dword ptr [rcx+28] + 48894C2420 mov gword ptr [rsp+20H], rcx + 89742428 mov dword ptr [rsp+28H], esi + 8944242C mov dword ptr [rsp+2CH], eax + 89742430 mov dword ptr [rsp+30H], esi + +G_M60484_IG03: + 488D4C2420 lea rcx, bword ptr [rsp+20H] + E8A435685B call Enumerator[Int32][System.Int32]:MoveNext():bool:this + 85C0 test eax, eax + 7414 je SHORT G_M60484_IG05 + +G_M60484_IG04: + 8B4C2430 mov ecx, dword ptr [rsp+30H] + 03F1 add esi, ecx + 488D4C2420 lea rcx, bword ptr [rsp+20H] + E89035685B call Enumerator[Int32][System.Int32]:MoveNext():bool:this + 85C0 test eax, eax + 75EC jne SHORT G_M60484_IG04 + +G_M60484_IG05: + 8BC6 mov eax, esi + +G_M60484_IG06: + 4883C438 add rsp, 56 + 5E pop rsi + 5F pop rdi + C3 ret +``` + +Empty finally removal is unconditionally profitable: it should always +reduce code size and improve code speed. + +Empty Try Removal +--------------------- + +If the try region of a try-finally is empty, and the jitted code will +execute on a runtime that does not protect finally execution from +thread abort, then the try-finally can be replaced with just the +content of the finally. + +Empty trys with non-empty finallys often exist in code that must run +under both thread-abort aware and non-thread-abort aware runtimes. In +the former case the placement of cleanup code in the finally ensures +that the cleanup code will execute fully. But if thread abort is not +possible, the extra protection offered by the finally is not needed. + +Empty try removal looks for try-finallys where the try region does +nothing except invoke the finally. There are currently two different +EH implementation models, so the try screening has two cases: + +* callfinally thunks (x64/arm64): the try must be a single empty +basic block that always jumps to a callfinally that is the first +half of a callfinally/always pair; +* non-callfinally thunks (x86/arm32): the try must be a +callfinally/always pair where the first block is an empty callfinally. + +The screening then verifies that the callfinally identified above is +the only callfinally for the try. No other callfinallys are expected +because this try cannot have multiple leaves and its handler cannot be +reached by nested exit paths. + +When the empty try is identified, the jit modifies the +callfinally/always pair to branch to the handler, modifies the +handler's return to branch directly to the continuation (the +branch target of the second half of the callfinally/always pair), +updates various status flags on the blocks, and then removes the +try-finally region. + +Finally Cloning +--------------- + +Finally cloning is an optimization where the jit duplicates the code +in the finally for one or more of the normal exit paths from the try, +and has those exit points branch to the duplicated code directly, +rather than calling the finally. This transformation allows for +improved performance and optimization of the common case where the try +completes without an exception. + +Finally cloning also allows hot/cold splitting of finally bodies: the +cloned finally code covers the normal try exit paths (the hot cases) +and can be placed in the main method region, and the original finally, +now used largely or exclusively for exceptional cases (the cold cases) +spilt off into the cold code region. Without cloning, RyuJit +would always treat the finally as cold code. + +Finally cloning will increase code size, though often the size +increase is mitigated somewhat by more compact code generation in the +try body and streamlined invocation of the cloned finallys. + +Try-finally regions may have multiple normal exit points. For example +the following `try` has two: one at the `return 3` and one at the try +region end: + +```C# +try { + if (p) return 3; + ... +} +finally { + ... +} +return 4; +``` + +Here the finally must be executed no matter how the try exits. So +there are to two normal exit paths from the try, both of which pass +through the finally but which then diverge. The fact that some try +regions can have multiple exits opens the potential for substantial +code growth from finally cloning, and so leads to a choice point in +the implementation: + +* Share the clone along all exit paths +* Share the clone along some exit paths +* Clone along all exit paths +* Clone along some exit paths +* Only clone along one exit path +* Only clone when there is one exit path + +The shared clone option must essentially recreate or simulate the +local call mechanism for the finally, though likely somewhat more +efficiently. Each exit point must designate where control should +resume once the shared finally has finished. For instance the jit +could introduce a new local per try-finally to determine where the +cloned finally should resume, and enumerate the possibilities using a +small integer. The end of the cloned finally would then use a switch +to determine what code to execute next. This has the downside of +introducing unrealizable paths into the control flow graph. + +Cloning along all exit paths can potentially lead to large amounts of +code growth. + +Cloning along some paths or only one path implies that some normal +exit paths won't be as well optimized. Nonetheless cloning along one +path was the choice made by JIT64 and the one we recommend for +implementation. In particular we suggest only cloning along the end of +try region exit path, so that any early exit will continue to invoke +the funclet for finally cleanup (unless that exit happens to have the +same post-finally continuation as the end try region exit, in which +case it can simply jump to the cloned finally). + +One can imagine adaptive strategies. The size of the finally can +be roughly estimated and the number of clones needed for full cloning +readily computed. Selective cloning can be based on profile +feedback or other similar mechanisms for choosing the profitable +cases. + +The current implementation will clone the finally and retarget the +last (largest IL offset) leave in the try region to the clone. Any +other leave that ultimately transfers control to the same post-finally +offset will also be modified to jump to the clone. + +Empirical studies have shown that most finallys are small. Thus to +avoid excessive code growth, a crude size estimate is formed by +counting the number of statements in the blocks that make up the +finally. Any finally larger that 15 statements is not cloned. In our +study this disqualifed about 0.5% of all finallys from cloning. + +### EH Nesting Considerations + +Finally cloning is also more complicated when the finally encloses +other EH regions, since the clone will introduce copies of all these +regions. While it is possible to implement cloning in such cases we +propose to defer for now. + +Finally cloning is also a bit more complicated if the finally is +enclosed by another finally region, so we likewise propose deferring +support for this. (Seems like a rare enough thing but maybe not too +hard to handle -- though possibly not worth it if we're not going to +support the enclosing case). + +### Control-Flow and Other Considerations + +If the try never exits normally, then the finally can only be invoked +in exceptional cases. There is no benefit to cloning since the cloned +finally would be unreachable. We can detect a subset of such cases +because there will be no call finally blocks. + +JIT64 does not clone finallys that contained switch. We propose to +do likewise. (Initially I did not include this restriction but +hit a failing test case where the finally contained a switch. Might be +worth a deeper look, though such cases are presumably rare.) + +If the finally never exits normally, then we presume it is cold code, +and so will not clone. + +If the finally is marked as run rarely, we will not clone. + +Implementation Proposal +----------------------- + +We propose that empty finally removal and finally cloning be run back +to back, spliced into the phase list just after fgInline and +fgAddInternal, and just before implicit by-ref and struct +promotion. We want to run these early before a lot of structural +invariants regarding EH are put in place, and before most +other optimization, but run them after inlining +(so empty finallys can be more readily identified) and after the +addition of implicit try-finallys created by the jit. Empty finallys +may arise later because of optimization, but this seems relatively +uncommon. + +We will remove empty finallys first, then clone. + +Neither optimization will run when the jit is generating debuggable +code or operating in min opts mode. + +### Empty Finally Removal (Sketch) + +Skip over methods that have no EH, are compiled with min opts, or +where the jit is generating debuggable code. + +Walk the handler table, looking for try-finally (we could also look +for and remove try-faults with empty faults, but those are presumably +rare). + +If the finally is a single block and contains only a `retfilter` +statement, then: + +* Retarget the callfinally(s) to jump always to the continuation blocks. +* Remove the paired jump always block(s) (note we expect all finally +calls to be paired since the empty finally returns). +* For funclet EH models with finally target bits, clear the finally +target from the continuations. +* For non-funclet EH models only, clear out the GT_END_LFIN statement +in the finally continuations. +* Remove the handler block. +* Reparent all directly contained try blocks to the enclosing try region +or to the method region if there is no enclosing try. +* Remove the try-finally from the EH table via `fgRemoveEHTableEntry`. + +After the walk, if any empty finallys were removed, revalidate the +integrity of the handler table. + +### Finally Cloning (Sketch) + +Skip over all methods, if the runtime suports thread abort. More on +this below. + +Skip over methods that have no EH, are compiled with min opts, or +where the jit is generating debuggable code. + +Walk the handler table, looking for try-finally. If the finally is +enclosed in a handler or encloses another handler, skip. + +Walk the finally body blocks. If any is BBJ_SWITCH, or if none +is BBJ_EHFINALLYRET, skip cloning. If all blocks are RunRarely +skip cloning. If the finally has more that 15 statements, skip +cloning. + +Walk the try region from back to front (from largest to smallest IL +offset). Find the last block in the try that invokes the finally. That +will be the path that will invoke the clone. + +If the EH model requires callfinally thunks, and there are multiple +thunks that invoke the finally, and the callfinally thunk along the +clone path is not the first, move it to the front (this helps avoid +extra jumps). + +Set the insertion point to just after the callfinally in the path (for +thunk models) or the end of the try (for non-thunk models). Set up a +block map. Clone the finally body using `fgNewBBinRegion` and +`fgNewBBafter` to make the first and subsequent blocks, and +`CloneBlockState` to fill in the block contents. Clear the handler +region on the cloned blocks. Bail out if cloning fails. Mark the first +and last cloned blocks with appropriate BBF flags. Patch up inter-clone +branches and convert the returns into jumps to the continuation. + +Walk the callfinallys, retargeting the ones that return to the +continuation so that they invoke the clone. Remove the paired always +blocks. Clear the finally target bit and any GT_END_LFIN from the +continuation. + +If all call finallys are converted, modify the region to be try/fault +(interally EH_HANDLER_FAULT_WAS_FINALLY, so we can distinguish it +later from "organic" try/faults). Otherwise leave it as a +try/finally. + +Clear the catch type on the clone entry. + +### Thread Abort + +For runtimes that support thread abort (desktop), more work is +required: + +* The cloned finally must be reported to the runtime. Likely this +can trigger off of the BBF_CLONED_FINALLY_BEGIN/END flags. +* The jit must maintain the integrity of the clone by not losing +track of the blocks involved, and not allowing code to move in our +out of the cloned region + +Code Size Impact +---------------- + +Code size impact from finally cloning was measured for CoreCLR on +Windows x64. + +``` +Total bytes of diff: 16158 (0.12 % of base) + diff is a regression. +Total byte diff includes 0 bytes from reconciling methods + Base had 0 unique methods, 0 unique bytes + Diff had 0 unique methods, 0 unique bytes +Top file regressions by size (bytes): + 3518 : Microsoft.CodeAnalysis.CSharp.dasm (0.16 % of base) + 1895 : System.Linq.Expressions.dasm (0.32 % of base) + 1626 : Microsoft.CodeAnalysis.VisualBasic.dasm (0.07 % of base) + 1428 : System.Threading.Tasks.Parallel.dasm (4.66 % of base) + 1248 : System.Linq.Parallel.dasm (0.20 % of base) +Top file improvements by size (bytes): + -4529 : System.Private.CoreLib.dasm (-0.14 % of base) + -975 : System.Reflection.Metadata.dasm (-0.28 % of base) + -239 : System.Private.Uri.dasm (-0.27 % of base) + -104 : System.Runtime.InteropServices.RuntimeInformation.dasm (-3.36 % of base) + -99 : System.Security.Cryptography.Encoding.dasm (-0.61 % of base) +57 total files with size differences. +Top method regessions by size (bytes): + 645 : System.Diagnostics.Process.dasm - System.Diagnostics.Process:StartCore(ref):bool:this + 454 : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:AdjustCallArgumentsForParams(ref,ref,ref,ref,ref,byref):this + 447 : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1[__Canon][System.__Canon]:ProcessMessagesLoopCore():this + 421 : Microsoft.CodeAnalysis.VisualBasic.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.ImplementsHelper:FindExplicitlyImplementedMember(ref,ref,ref,ref,ref,ref,byref):ref + 358 : System.Private.CoreLib.dasm - System.Threading.TimerQueueTimer:Change(int,int):bool:this +Top method improvements by size (bytes): + -2512 : System.Private.CoreLib.dasm - DomainNeutralILStubClass:IL_STUB_CLRtoWinRT():ref:this (68 methods) + -824 : Microsoft.CodeAnalysis.dasm - Microsoft.Cci.PeWriter:WriteHeaders(ref,ref,ref,ref,byref):this + -663 : System.Private.CoreLib.dasm - DomainNeutralILStubClass:IL_STUB_CLRtoWinRT(ref):int:this (17 methods) + -627 : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.ManifestBuilder:CreateManifestString():ref:this + -546 : System.Private.CoreLib.dasm - DomainNeutralILStubClass:IL_STUB_WinRTtoCLR(long):int:this (67 methods) +3014 total methods with size differences. +``` + +The largest growth is seen in `Process:StartCore`, which has 4 +try-finally constructs. + +Diffs generally show improved codegen in the try bodies with cloned +finallys. However some of this improvement comes from more aggressive +use of callee save registers, and this causes size inflation in the +funclets (note finally cloning does not alter the number of +funclets). So if funclet save/restore could be contained to registers +used in the funclet, the size impact would be slightly smaller. + +There are also some instances where cloning relatively small finallys +leads to large code size increases. xxx is one example. diff --git a/Documentation/design-docs/tailcalls-with-helpers.md b/Documentation/design-docs/tailcalls-with-helpers.md new file mode 100644 index 0000000..e23b51e --- /dev/null +++ b/Documentation/design-docs/tailcalls-with-helpers.md @@ -0,0 +1,460 @@ +# The current way of handling tail-calls +## Fast tail calls +These are tail calls that are handled directly by the jitter and no runtime cooperation is needed. They are limited to cases where: +* Return value and call target arguments are all either primitive types, reference types, or valuetypes with a single primitive type or reference type fields +* The aligned size of call target arguments is less or equal to aligned size of caller arguments + +## Tail calls using a helper +Tail calls in cases where we cannot perform the call in a simple way are implemented using a tail call helper. Here is a rough description of how it works: +* For each tail call target, the jitter asks runtime to generate an assembler argument copying routine. This routine reads vararg list of arguments and places the arguments in their proper slots in the CONTEXT or on the stack. Together with the argument copying routine, the runtime also builds a list of offsets of references and byrefs for return value of reference type or structs returned in a hidden return buffer and for structs passed by ref. The gc layout data block is stored at the end of the argument copying thunk. +* At the time of the tail call, the caller generates a vararg list of all arguments of the tail called function and then calls JIT_TailCall runtime function. It passes it the copying routine address, the target address and the vararg list of the arguments. +* The JIT_TailCall then performs the following: + * It calls RtlVirtualUnwind twice to get the context of the caller of the caller of the tail call to simulate the effect of running epilog of the caller of the tail call and also its return. + * It prepares stack space for the callee stack arguments, a helper explicit TailCallFrame and also a CONTEXT structure where the argument registers of the callee, stack pointer and the target function address are set. In case the tail call caller has enough space for the callee arguments and the TailCallFrame in its stack frame, that space is used directly for the callee arguments. Otherwise the stack arguments area is allocated at the top of the stack. This slightly differs in the case the tail call was called from another tail called function - the TailCallFrame already exists and so it is not recreated. The TailCallFrame also keeps a pointer to the list of gc reference offsets of the arguments and structure return buffer members. The stack walker during GC then uses that to ensure proper GC liveness of those references. + * It calls the copying routine to translate the arguments from the vararg list to the just reserved stack area and the context. + * If the stack arguments and TailCaillFrame didn't fit into the caller's stack frame, these data are now moved to the final location + * RtlRestoreContext is used to start executing the callee. + +There are several issues with this approach: +* It is expensive to port to new platforms + * Parsing the vararg list is not possible to do in a portable way on Unix. Unlike on Windows, the list is not stored a linear sequence of the parameter data bytes in memory. va_list on Unix is an opaque data type, some of the parameters can be in registers and some in the memory. + * Generating the copying asm routine needs to be done for each target architecture / platform differently. And it is also very complex, error prone and impossible to do on platforms where code generation at runtime is not allowed. +* It is slower than it has to be + * The parameters are copied possibly twice - once from the vararg list to the stack and then one more time if there was not enough space in the caller's stack frame. + * RtlRestoreContext restores all registers from the CONTEXT structure, not just a subset of them that is really necessary for the functionality, so it results in another unnecessary memory accesses. +* Stack walking over the stack frames of the tail calls requires runtime assistance. + +# The new approach to tail calls using helpers +## Objectives +The new way of handling tail calls using helpers was designed with the following objectives: +* It should be cheap to port to new platforms, architectures and code generators +* It needs to work in both jitted and AOT compiled scenarios +* It should support platforms where runtime code generation is not possible +* The tail calls should be reasonably fast compared to regular calls with the same arguments +* The tail calls should not be slower than existing mechanism on Windows +* No runtime assistance should be necessary for unwinding stack with tail call frames on it +* The stack should be unwindable at any spot during the tail calls to properly support sampling profilers and similar tools. +* Stack walk during GC must be able to always correctly report GC references. +* It should work in all cases except those where a tail call is not allowed as described in the ECMA 335 standard section III.2.4 + +## Requirements +* The code generator needs to be able to compile a tail call to a target as a call to a thunk with the same parameters as the target, but void return, followed by a jump to an assembler helper. + +## Implementation +This section describes the helper functions and data structures that the tail calls use and also describes the tail call sequence step by step. +### Helper functions +The tail calls use the following thunks and helpers: +* StoreArguments - this thunk stores the arguments into a thread local storage together with the address of the corresponding CallTarget thunk and a descriptor of locations and types of managed references in the stored arguments data. This thunk is generated as IL and compiled by the jitter or AOT compiler. There is one such thunk per tail call target. +It has a signature that is compatible with the tailcall target function except for the return type which is void. But it is not the same. It gets the same arguments as the tail call target function, but it would also get "this" pointer and the generic context as explicit arguments if the tail call target requires them. Arguments of generic reference types are passed as "object" so that the StoreArguments doesn't have to be generic. +* CallTarget - this thunk gets the arguments buffer that was filled by the StoreArguments thunk, loads the arguments from the buffer, releases the buffer and calls the target function using calli. The signature used for the calli would ensure that all arguments including the optional hidden return buffer and the generic context are passed in the right registers / stack slots. Generic reference arguments will be specified as "object" in the signature so that the CallTarget doesn't have to be generic. +The CallTarget is also generated as IL and compiled by the jitter or AOT compiler. There is one such thunk per tail call target. This thunk has the same return type as the tailcall target or return "object" if the return type of the tail call target is a generic reference type. +* TailCallHelper - this is an assembler helper that is responsible for restoring stack pointer to the location where it was when the first function in a tail call chain was entered and then jumping to the CallTarget thunk. This helper is common for all tail call targets. +In a context of each tailcall invocation, the TailCallHelper will be handled by the jitter as if it had the same return type as the tail call target. That means that if the tail call target needs a hidden return buffer for returning structs, the pointer to this buffer will be passed to the TailCallHelper the same way as it would be passed to the tail call target. The TailCallHelper would then pass this hidden argument to the CallTarget helper. +There will be two flavors of this helper, based on whether the tail call target needs a hidden return buffer or not: + * TailCallHelper + * TailCallHelper_RetBuf + +### Helper data structures +The tail calls use the following data structures: +* Thread local storage for arguments. It stores the arguments of a tail call for a short period of time between the StoreArguments and CallTarget calls. +* Arguments GC descriptor - descriptor of locations and types of managed references in the arguments. +* TailCallHelperStack - a per thread stack of helper entries that is used to determine whether a tail call is chained or not. Its entries are allocated as local variables in CallTarget thunks. Each entry contains: + * Stack pointer captured right before a call to a tail call target + * ChainCall flag indicating whether the CallTarget thunk should return after the call to the tail call target or whether it should execute its epilog and jump to TailCallHelper instead. The latter is used by the TailCallHelper to remove the stack frame of the CallTarget before making a tail call from a tail called function. + * Pointer to the next entry on the stack. + +### Tail call sequence +* The caller calls the StoreArguments thunk corresponding to the callee to store the pointer to the tail call target function, its arguments, their GC descriptors, optional "this" and generic context arguments and the corresponding CallTarget thunk address in a thread local storage. +* The caller executes its epilog, restoring stack pointer and callee saved registers to their values when the caller was entered. +* The caller jumps to the TailCallHelper. This function performs the following operations: + * Get the topmost TailCallHelperStack entry for the current thread. + * Check if the previous stack frame is a CallTarget thunk frame by comparing the stack pointer value stored in the TailCallHelperStack entry to the current CFA (call frame address). If it matches, it means that the previous stack frame belongs to a CallTarget thunk and so the tail call caller was also tail called. + * If the previous frame was a CallTarget thunk, its stack frame needs to be removed to ensure that the stack will not grow when tail calls are chained. Set ChainCall flag in the TailCallHelperStack entry and return. That returns control to the CallTarget thunk. It checks the ChainCall flag and since it set, it executes its epilog and jumps to the TailCallHelper again. + * If the previous frame was not a CallTarget thunk, get the address of the CallTarget thunk of the tailcall target from the arguments buffer and jump to it. +* The CallTarget thunk function then does the following operation: + * Create local instance of TailCallHelperStack entry and store the current stack pointer value in it. + * Push the entry to the TailCallHelperStack of the current thread. + * Get the arguments buffer from the thread local storage, extract the regular arguments and the optional "this" and generic context arguments and the target function pointer. Release the buffer and call the target function. The frame of the CallTarget thunk ensures that the arguments of the target are GC protected until the target function returns or tail calls to another function. + * Pop the TailCallHelperStack entry from the TailCallHelperStack of the current thread. + * Check the ChainCall flag in the TailCallHelperStack entry. If it is set, run epilog and jump to the TailCallHelper. + * If the ChainCall flag is clear, it means that the last function in the tail call chain has returned. So return the return value of the target function. + +## Work that needs to be done to implement the new tail calls mechanism +### JIT (compiler in the AOT scenario) +* Modify compilation of tail calls with helper so that a tail call is compiled as a call to the StoreArguments thunk followed by the jump to the assembler TailCallHelper. In other words, the +``` +tail. call/callvirt +ret +``` +becomes +``` +call/callvirt +tail. call +ret +``` +### Runtime (compiler in the AOT scenario) +* Add generation of the StoreArguments and CallTarget IL thunks to the runtime (compiler tool chain in at AOT scenario). As a possible optimization, In the AOT scenario, the thunks can be generated by the compiler as native code directly without the intermediate IL. +* For the JIT scenario, add a new method to the JIT to EE interface to get the StoreArguments thunk method handle for a given target method and the TailCallHelper address. + +### Runtime in both scenarios +* Add support for the arguments buffer, which means: + * Add functions to create, release and get the buffer for a thread + * Add support for GC scanning the arguments buffers. +* Implement the TailCallHelper asm helper for all architectures +### Debugging in both scenarios +Ensure that the stepping in a debugger works correctly. In CoreCLR, the TailCallStubManager needs to be updated accordingly. + +## Example code + +```C# +struct S +{ + public S(long p1, long p2, long p3) + { + s1 = p1; s2 = p2; s3 = p3; + } + + public long s1, s2, s3; +} + +struct T +{ + public T(S s) + { + t1 = s.s1; t2 = s.s2; t3 = s.s3 t4 = 4; + } + public long t1, t2, t3, t4; +} + +struct U +{ + public U(T t) + { + u1 = t.t1; u2 = t.t2; u3 = t.t3 u4 = t.t4; u5 = 5; + } + public long u1, u2, u3, u4, u5; +} + +int D(U u) +{ + int local; + Console.WriteLine("In C, U = [{0}, {1}, {2}, {3}, {4}", u.u1, u.u2, u.u3, u.u4, u.u5); + return 1; +} + +int C(T t) +{ + int local; + Console.WriteLine("In C"); + U args = new U(t); + return tailcall D(args); +} + +int B(S s) +{ + int local; + Console.WriteLine("In B"); + T args = new T(S); + return tailcall C(args); +} + +int A() +{ + S args = new S(1, 2, 3); + int result = B(args); + Console.WriteLine("Done, result = {0}\n", result); +} +``` + +## Example code execution +This section shows how stack evolves during the execution of the example code above. Execution starts at function A, but the details below start at the interesting point where the first tail call is about to be called. +### B is about to tail call C +``` +* Return address of A +* Callee saved registers and locals of A +* Stack arguments of B +* Return address of B +* Callee saved registers and locals of B +``` +### Arguments of C are stored in the thread local buffer, now we are in the TailCallHelper +The callee saved registers and locals of B are not on the stack anymore +``` +* Return address of A +* Callee saved registers and locals of A +* Stack arguments of B +* Return address of B +``` + +### In CallTarget thunk for C, about to call C +The thunk will now extract parameters for C from the thread local storage and call C. +``` +* Return address of A +* Callee saved registers and locals of A +* Stack arguments of B +* Return address of B +* Callee saved registers and locals of CallTarget thunk for C +``` +### C is about to tail call D +``` +* Return address of A +* Callee saved registers and locals of A +* Stack arguments of B +* Return address of B +* Callee saved registers and locals of CallTarget thunk for C +* Stack arguments of C +* Return address of C +* Callee saved registers and locals of C +``` +### Arguments of D are stored in the thread local buffer, now we are in the TailCallHelper +The callee saved registers and locals of C are not on the stack anymore. +But we still have the return address of C, stack arguments of C and callee saved registers and locals of CallTarget thunk for C on the stack. +We need to remove them as well to prevent stack growing. +The TailCallHelper detects that the previous stack frame was the frame of the CallTarget thunk for C and so it sets the ChainCall flag in the topmost TailCallHelperStackEntry and returns to CallTarget thunk for C in order to let it cleanup its stack frame. +``` +* Return address of A +* Callee saved registers and locals of A +* Stack arguments of B +* Return address of B +* Callee saved registers and locals of CallTarget thunk for C +* Stack arguments of C +* Return address of C +``` +### Returned to CallTarget thunk for C with ChainCall flag in the TailCallHelperStackEntry **set** +The thunk checks the ChainCall flag and since it is set, it runs its epilog and then jumps to the TailCallHelper. +``` +* Return address of A +* Callee saved registers and locals of A +* Stack arguments of B +* Return address of B +* Callee saved registers and locals of CallTarget thunk for C +``` +### Back in TailCallHelper +Now the stack is back in the state where we have made the previous tail call. Since the previous stack frame was not a CallTarget thunk frame, we just jump to the CallTarget thunk for D. +``` +* Return address of A +* Callee saved registers and locals of A +* Stack arguments of B +* Return address of B +``` +### In CallTarget thunk for D, about to call D +The thunk will now extract parameters for D from the thread local storage and call D. +``` +* Return address of A +* Callee saved registers and locals of A +* Stack arguments of B +* Return address of B +* Callee saved registers and locals of CallTarget thunk for D +``` +### In D +We are in the last function of the chain, so after it does its work, it returns to its CallTarget thunk. +``` +* Return address of A +* Callee saved registers and locals of A +* Stack arguments of B +* Return address of B +* Callee saved registers and locals of CallTarget thunk for D +* Stack arguments of D +* Return address of D +* Callee saved registers and locals of D +``` +### Returned to CallTarget thunk for D with ChainCall flag in the TailCallHelperStackEntry **clear** +The thunk checks the ChainCall flag and since it is clear, it recognizes we are now returning from the call chain and so it returns the result of the D. +``` +* Return address of A +* Callee saved registers and locals of A +* Stack arguments of B +* Return address of B +* Callee saved registers and locals of CallTarget thunk for D +``` +### Returned to A +We are back in A and we have the return value of the call chain. +``` +* Return address of A +* Callee saved registers and locals of A +``` + +## Example of thunks generated for a simple generic method + +```C# +struct Point +{ + public int x; + public int y; + public int z; +} + +class Foo +{ + public Point Test(int x, T t) where T : class + { + Console.WriteLine("T: {0}", typeof(t)); + return new Point(x, x, x); + } +} +``` + +For tail calling the Test function, the IL helpers could look e.g. as follows: + +```IL +.method public static void StoreArgumentsTest(native int target, object thisObj, native int genericContext, int x, object t) cil managed +{ + .maxstack 4 + .locals init ( + [0] native int buffer, + ) + + call native int AllocateArgumentBuffer(56) + stloc.0 + + ldloc.0 + ldc.i8 0x12345678 // pointer to the GC descriptor of the arguments buffer + stind.i + ldloc.0 + sizeof native int + add + stloc.0 + + ldloc.0 + ldftn Point CallTargetTest() + stind.i + ldloc.0 + sizeof native int + add + stloc.0 + + ldloc.0 + ldarg.1 // "thisObj" + stobj object + ldloc.0 + sizeof object + add + stloc.0 + + ldloc.0 + ldarg.2 // "genericContext" + stind.i + ldloc.0 + sizeof native int + add + stloc.0 + + ldloc.0 + ldarg.3 // "x" + stind.i4 + ldloc.0 + sizeof native int + add + stloc.0 + + ldloc.0 + ldarg.4 // "t" + stobj object + ldloc.0 + sizeof object + add + stloc.0 + + ldloc.0 + ldarg.0 // "target" + stind.i + + ret +} + +``` + +```IL +.method public static Point CallTargetTest() cil managed +{ + .maxstack 4 + .locals init ( + [0] native int buffer, + [1] valuetype TailCallHelperStackEntry entry, + [2] Point result + ) + + // Initialize the TailCallHelperStackEntry + // chainCall = false + // sp = current sp + + ldloca.s 1 + ldc.i4.0 + stfld bool TailCallHelperStackEntry::chainCall + ldloca.s 1 + call native int GetCurrentSp() + stfld native int TailCallHelperStackEntry::sp + + ldloca.s 1 // TailCallHelperStackEntry + call void PushHelperStackEntry(native int) + + // Prepare arguments for the tail call target + + call native int FetchArgumentBuffer() + sizeof native int + add // skip the pointer to the GC descriptor of the arguments buffer + sizeof native int + add // skip the address of the CallTargetTest in the buffer, it is used by the TailCallHelper only + stloc.0 + + ldloc.0 + ldobj object // this + ldloc.0 + sizeof object + add + stloc.0 + + ldloc.0 + ldind.i // generic context + ldloc.0 + sizeof native int + add + stloc.0 + + ldloc.0 + ldind.i4 // int x + ldloc.0 + sizeof native int + add + stloc.0 + + ldloc.0 + ldobj object // T t + ldloc.0 + sizeof object + add + + ldobj native int // tailcall target + + // The arguments buffer is not needed anymore + call void ReleaseArgumentBuffer() + + .try + { + calli Point (object, native int, int32, object) // this, generic context, x, t + stloc.2 + leave.s Done + } + finally + { + ldloca.s 1 // TailCallHelperStackEntry + call void PopHelperStackEntry(native int) + endfinally + } + +Done: + ldloc.1 // TailCallHelperStackEntry + ldfld bool TailCallHelperStackEntry::chainCall + brfalse.s NotChained + + // Jump to the TailCallHelper that will call to the next tail call in the chain. + // The stack frame of the current CallTargetTest is reclaimed and epilog executed + // before the TailCallHelper is entered. + tail.call int32 TailCallHelper() + ret + +NotChained: + // Now we are returning from a chain of tail calls to the caller of this chain + ldloc.2 + ret +} +``` \ No newline at end of file diff --git a/Documentation/project-docs/contributing-workflow.md b/Documentation/project-docs/contributing-workflow.md index 5c91a49..70423e5 100644 --- a/Documentation/project-docs/contributing-workflow.md +++ b/Documentation/project-docs/contributing-workflow.md @@ -85,7 +85,7 @@ We use and recommend the following workflow: 1. Create an issue for your work. - You can skip this step for trivial changes. - Reuse an existing issue on the topic, if there is one. - - Use [CODE_OWNERS.TXT](https://github.com/dotnet/coreclr/blob/CODE_OWNERS.TXT) to find relevant maintainers and @ mention them to ask for feedback on your issue. + - Use [CODE_OWNERS.TXT](https://github.com/dotnet/coreclr/blob/master/CODE_OWNERS.TXT) to find relevant maintainers and @ mention them to ask for feedback on your issue. - Get agreement from the team and the community that your proposed change is a good one. - If your change adds a new API, follow the [API Review Process](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/api-review-process.md). - Clearly state that you are going to take on implementing it, if that's the case. You can request that the issue be assigned to you. Note: The issue filer and the implementer don't have to be the same person. diff --git a/Documentation/project-docs/glossary.md b/Documentation/project-docs/glossary.md index 670254d..f4ae1c5 100644 --- a/Documentation/project-docs/glossary.md +++ b/Documentation/project-docs/glossary.md @@ -5,6 +5,7 @@ This glossary defines terms, both common and more niche, that are important to u As much as possible, we should link to the most authoritative and recent source of information for a term. That approach should be the most helpful for people who want to learn more about a topic. +* BBT: Microsoft internal early version of C/C++ PGO. See https://www.microsoft.com/windows/cse/bit_projects.mspx. * BOTR: Book Of The Runtime. * CLR: Common Language Runtime. * COMPlus: An early name for the .NET platform, back when it was envisioned as a successor to the COM platform (hence, "COM+"). Used in various places in the CLR infrastructure, most prominently as a common prefix for the names of internal configuration settings. Note that this is different from the product that eventually ended up being named [COM+](https://msdn.microsoft.com/en-us/library/windows/desktop/ms685978.aspx). @@ -12,19 +13,25 @@ As much as possible, we should link to the most authoritative and recent source * DAC: Data Access Component. An abstraction layer over the internal structures in the runtime. * EE: Execution Engine. * GC: [Garbage Collector](https://github.com/dotnet/coreclr/blob/master/Documentation/botr/garbage-collection.md). +* IPC: Inter-Process Communicaton * JIT: [Just-in-Time](https://github.com/dotnet/coreclr/blob/master/Documentation/botr/ryujit-overview.md) compiler. RyuJIT is the code name for the next generation Just-in-Time(aka "JIT") for the .NET runtime. * LCG: Lightweight Code Generation. An early name for [dynamic methods](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Reflection/Emit/DynamicMethod.cs). +* MD: MetaData * NGen: Native Image Generator. * NYI: Not Yet Implemented * PAL: [Platform Adaptation Layer](http://archive.oreilly.com/pub/a/dotnet/2002/03/04/rotor.html). Provides an abstraction layer between the runtime and the operating system * PE: Portable Executable. +* PGO: Profile Guided Optimization - see [details](https://blogs.msdn.microsoft.com/vcblog/2008/11/12/pogo/) +* POGO: Profile Guided Optimization - see [details](https://blogs.msdn.microsoft.com/vcblog/2008/11/12/pogo/) * ProjectN: Codename for the first version of [.NET Native for UWP](https://msdn.microsoft.com/en-us/vstudio/dotnetnative.aspx). * ReadyToRun: A flavor of native images - command line switch of [crossgen](../building/crossgen.md). * Redhawk: Codename for experimental minimal managed code runtime that evolved into [CoreRT](https://github.com/dotnet/corert/). * SOS: [Son of Strike](http://blogs.msdn.com/b/jasonz/archive/2003/10/21/53581.aspx). The debugging extension for DbgEng based debuggers. Uses the DAC as an abstraction layer for its operation. +* SuperPMI: JIT component test framework (super fast JIT testing - it mocks/replays EE in EE-JIT interface) - see [SuperPMI details](https://github.com/dotnet/coreclr/blob/master/src/ToolBox/superpmi/readme.txt). * SVR: The CLR used to be built as two variants, with one called "mscorsvr.dll", to mean the "server" version. In particular, it contained the server GC implementation, which was intended for multi-threaded apps capable of taking advantage of multiple processors. In the .NET Framework 2 release, the two variants were merged into "mscorwks.dll". The WKS version was the default, however the SVR version remained available. * TPA: Trusted Platform Assemblies used to be a special set of assemblies that comprised the platform assemblies, when it was originally designed. As of today, it is simply the set of assemblies known to constitute the application. * URT: Universal Runtime. Ancient name for what ended up being .NET, is used in the WinError facility name FACILITY_URT. * VSD: [Virtual Stub Dispatch](../botr/virtual-stub-dispatch.md). Technique of using stubs for virtual method invocations instead of the traditional virtual method table. * VM: Virtual machine. * WKS: The CLR used to be built as two variants, with one called "mscorwks.dll", to mean the "workstation" version. In particular, it contained the client GC implementation, which was intended for single-threaded apps, independent of how many processors were on the machine. In the .NET Framework 2 release, the two variants were merged into "mscorwks.dll". The WKS version was the default, however the SVR version remained available. +* ZAP: Original code name for NGen diff --git a/Documentation/workflow/IssuesFeedbackEngagement.md b/Documentation/workflow/IssuesFeedbackEngagement.md index a6c0550..f83b2b6 100644 --- a/Documentation/workflow/IssuesFeedbackEngagement.md +++ b/Documentation/workflow/IssuesFeedbackEngagement.md @@ -3,10 +3,14 @@ ## Reporting Problems (Bugs) -We track bugs, feature requests and other issues [in this repo](https://github.com/dotnet/coreclr/issues). -If you have a problem and believe that the issue is in the native runtime you should log it there. If in the managed code log it in the [CoreFX repo](https://github.com/dotnet/corefx/issues) _even if the code is in this CoreCLR repo_ (ie., in mscorlib/System.Private.Corelib). The reason for this is we sometimes move managed types between the two and it makes sense to keep all the issues together. - -Before you log a new issue, you should try using the search tool on the issue page on a few keywords to see if the issue was already logged. +We track bugs, feature requests and other issues in repository where they will get ultimately fixed. If you have a problem and +believe that the issue is in CoreCLR itself (native runtime or System.Private.CoreLib base level class library) you should +log it on the [CoreCLR Issues Page](https://github.com/dotnet/coreclr/issues). If in the upper levels of the class library +use the [CoreFX Issues Page](https://github.com/dotnet/corefx/issues). For all managed API addition proposals use +the [CoreFX Issues Page](https://github.com/dotnet/corefx/issues) and follow +the [API Review Process](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/api-review-process.md). + +Before you log a new issue, you should try using the search tool on the issue page on a few keywords to see if the issue was already logged. ### NET Forums If you want to ask a question, or want wider discussion (to see if others share you issue), we encourage you to start a thread diff --git a/Documentation/workflow/OfficalAndDailyBuilds.md b/Documentation/workflow/OfficalAndDailyBuilds.md index 5a36af6..d5efb93 100644 --- a/Documentation/workflow/OfficalAndDailyBuilds.md +++ b/Documentation/workflow/OfficalAndDailyBuilds.md @@ -1,7 +1,7 @@ # Official Releases and Daily Builds of CoreCLR and CoreFX components If you are not planning on actually making bug fixes or experimenting with new features, then you probably -don't need to don't need build CoreCLR yourself, as the .NET Runtime team routinely does this for you. +don't need to build CoreCLR yourself, as the .NET Runtime team routinely does this for you. Roughly every three months, the .NET Runtime team publishes a new version of .NET Core to Nuget. .NET Core's official home on NuGet is diff --git a/DotnetCLIVersion.txt b/DotnetCLIVersion.txt index b0f8213..e42fc5f 100644 --- a/DotnetCLIVersion.txt +++ b/DotnetCLIVersion.txt @@ -1 +1 @@ -1.0.0-preview3-003223 \ No newline at end of file +1.0.0-preview2-1-003182 \ No newline at end of file diff --git a/binclash.log b/binclash.log deleted file mode 100755 index e69de29..0000000 diff --git a/build-test.cmd b/build-test.cmd index 215fb53..85753ab 100644 --- a/build-test.cmd +++ b/build-test.cmd @@ -23,6 +23,9 @@ set "__PackagesDir=%__ProjectDir%\packages" set "__RootBinDir=%__ProjectDir%\bin" set "__LogsDir=%__RootBinDir%\Logs" +:: Default __Exclude to issues.targets +set __Exclude=%__TestDir%\issues.targets + REM __unprocessedBuildArgs are args that we pass to msbuild (e.g. /p:__BuildArch=x64) set "__args= %*" set processedArgs= @@ -51,8 +54,9 @@ if /i "%1" == "checked" (set __BuildType=Checked&set processedArgs if /i "%1" == "skipmanaged" (set __SkipManaged=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "updateinvalidpackages" (set __UpdateInvalidPackagesArg=1&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "toolset_dir" (set __ToolsetDir=%2&set __PassThroughArgs=%__PassThroughArgs% %2&set processedArgs=!processedArgs! %1 %2&shift&shift&goto Arg_Loop) -if /i "%1" == "buildagainstpackages" (set __BuildAgainstPackages=1&set __BuildAgainstPackagesArg=-BuildTestsAgainstPackages&shift&goto Arg_Loop) +if /i "%1" == "buildagainstpackages" (set __BuildAgainstPackages=1&set __BuildAgainstPackagesArg=-BuildTestsAgainstPackages&set processedArgs=!processedArgs! %1&shift&goto Arg_Loop) if /i "%1" == "runtimeid" (set __RuntimeId=%2&set processedArgs=!processedArgs! %1 %2&shift&shift&goto Arg_Loop) +if /i "%1" == "Exclude" (set __Exclude=%2&set processedArgs=!processedArgs! %1 %2&shift&shift&goto Arg_Loop) if [!processedArgs!]==[] ( call set __UnprocessedBuildArgs=!__args! @@ -105,14 +109,14 @@ REM === REM === Restore Build Tools REM === REM ========================================================================================= -call %__ProjectDir%\init-tools.cmd +call "%__ProjectDir%\init-tools.cmd" REM ========================================================================================= REM === REM === Resolve runtime dependences REM === REM ========================================================================================= -call %__TestDir%\setup-runtime-dependencies.cmd /arch %__BuildArch% /outputdir %__BinDir% +call "%__TestDir%\setup-runtime-dependencies.cmd" /arch %__BuildArch% /outputdir %__BinDir% if defined __UpdateInvalidPackagesArg ( goto skipnative @@ -170,7 +174,7 @@ set __msbuildLog=/flp:Verbosity=normal;LogFile="%__BuildLog%" set __msbuildWrn=/flp1:WarningsOnly;LogFile="%__BuildWrn%" set __msbuildErr=/flp2:ErrorsOnly;LogFile="%__BuildErr%" -call %__ProjectDir%\run.cmd build -Project="%__NativeTestIntermediatesDir%\install.vcxproj" -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__msbuildNativeArgs% %__RunArgs% %__unprocessedBuildArgs% +call "%__ProjectDir%\run.cmd" build -Project="%__NativeTestIntermediatesDir%\install.vcxproj" -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__msbuildNativeArgs% %__RunArgs% %__unprocessedBuildArgs% if errorlevel 1 ( echo %__MsgPrefix%Error: build failed. Refer to the build log files for details: echo %__BuildLog% @@ -189,6 +193,8 @@ set __msbuildLog=/flp:Verbosity=normal;LogFile="%__BuildLog%" set __msbuildWrn=/flp1:WarningsOnly;LogFile="%__BuildWrn%" set __msbuildErr=/flp2:ErrorsOnly;LogFile="%__BuildErr%" +set "__TestWorkingDir=%__RootBinDir%\tests\%__BuildOS%.%__BuildArch%.%__BuildType%" + if not defined __BuildAgainstPackages goto SkipRestoreProduct REM ========================================================================================= REM === @@ -196,16 +202,15 @@ REM === Restore product binaries from packages REM === REM ========================================================================================= -set "__TestWorkingDir=%__RootBinDir%\tests\%__BuildOS%.%__BuildArch%.%__BuildType%" if not defined XunitTestBinBase set XunitTestBinBase=%__TestWorkingDir% set "CORE_ROOT=%XunitTestBinBase%\Tests\Core_Root" -set "CORE_OVERLAY=%XunitTestBinBase%\Tests\coreoverlay" +set "CORE_OVERLAY=%XunitTestBinBase%\Tests\Core_Root_%__RuntimeId%" -call %__ProjectDir%\run.cmd build -Project=%__ProjectDir%\tests\build.proj -UpdateDependencies -BatchRestorePackages -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__RunArgs% %__BuildAgainstPackagesArg% %__unprocessedBuildArgs% +call "%__ProjectDir%\run.cmd" build -Project=%__ProjectDir%\tests\build.proj -UpdateDependencies -BatchRestorePackages -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__RunArgs% %__BuildAgainstPackagesArg% %__unprocessedBuildArgs% set __BuildLogRootName=Tests_GenerateRuntimeLayout -call %__ProjectDir%\run.cmd build -Project=%__ProjectDir%\tests\runtest.proj -BinPlaceRef -BinPlaceProduct -CopyCrossgenToProduct -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__RunArgs% %__BuildAgainstPackagesArg% %__unprocessedBuildArgs% +call "%__ProjectDir%\run.cmd" build -Project=%__ProjectDir%\tests\runtest.proj -BinPlaceRef -BinPlaceProduct -CopyCrossgenToProduct -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__RunArgs% %__BuildAgainstPackagesArg% %__unprocessedBuildArgs% if errorlevel 1 ( echo BinPlace of mscorlib.dll failed exit /b 1 @@ -218,14 +223,14 @@ if defined __RuntimeId ( exit /b 1 ) - call %__ProjectDir%\run.cmd build -Project=%__ProjectDir%\tests\runtest.proj -CreateNonWindowsTestOverlay -RuntimeId="%__RuntimeId%" -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__RunArgs% %__BuildAgainstPackagesArg% %__unprocessedBuildArgs% - for /R %__PackagesDir%\TestNativeBins\%__RuntimeId% %%f in (*.so) do copy %%f %Core_Overlay% - for /R %__PackagesDir%\TestNativeBins\%__RuntimeId% %%f in (*.dylib) do copy %%f %Core_Overlay% + call "%__ProjectDir%\run.cmd" build -Project=%__ProjectDir%\tests\runtest.proj -CreateNonWindowsTestOverlay -RuntimeId="%__RuntimeId%" -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__RunArgs% %__BuildAgainstPackagesArg% %__unprocessedBuildArgs% + for /R %__PackagesDir%\TestNativeBins\%__RuntimeId%\%__BuildType% %%f in (*.so) do copy %%f %Core_Overlay% + for /R %__PackagesDir%\TestNativeBins\%__RuntimeId%\%__BuildType% %%f in (*.dylib) do copy %%f %Core_Overlay% echo %__MsgPrefix% Created the runtime layout for %__RuntimeId% in %CORE_OVERLAY% ) -echo %__MsgPrefix% Created the runtime layout with all dependencies in %CORE_ROOT% +echo %__MsgPrefix% Restored CoreCLR product from packages :SkipRestoreProduct @@ -256,7 +261,7 @@ if defined __UpdateInvalidPackagesArg ( set __up=-updateinvalidpackageversions ) -call %__ProjectDir%\run.cmd build -Project=%__ProjectDir%\tests\build.proj -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__up% %__RunArgs% %__unprocessedBuildArgs% +call "%__ProjectDir%\run.cmd" build -Project=%__ProjectDir%\tests\build.proj -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__up% %__RunArgs% %__unprocessedBuildArgs% if errorlevel 1 ( echo %__MsgPrefix%Error: build failed. Refer to the build log files for details: echo %__BuildLog% @@ -265,7 +270,38 @@ if errorlevel 1 ( exit /b 1 ) +REM Prepare the Test Drop +REM Cleans any NI from the last run +powershell "Get-ChildItem -path %__TestWorkingDir% -Include '*.ni.*' -Recurse -Force | Remove-Item -force" +REM Cleans up any lock folder used for synchronization from last run +powershell "Get-ChildItem -path %__TestWorkingDir% -Include 'lock' -Recurse -Force | where {$_.Attributes -eq 'Directory'}| Remove-Item -force -Recurse" + set CORE_ROOT=%__TestBinDir%\Tests\Core_Root +if exist "%CORE_ROOT%" rd /s /q "%CORE_ROOT%" +md "%CORE_ROOT%" +xcopy /s "%__BinDir%" "%CORE_ROOT%" + +echo %__MsgPrefix%Creating test wrappers... + +set RuntimeIdArg= + +if defined __RuntimeId ( + set RuntimeIdArg=-RuntimeID="%__RuntimeId%" +) + +set __BuildLogRootName=Tests_XunitWrapper +set __BuildLog=%__LogsDir%\%__BuildLogRootName%_%__BuildOS%__%__BuildArch%__%__BuildType%.log +set __BuildWrn=%__LogsDir%\%__BuildLogRootName%_%__BuildOS%__%__BuildArch%__%__BuildType%.wrn +set __BuildErr=%__LogsDir%\%__BuildLogRootName%_%__BuildOS%__%__BuildArch%__%__BuildType%.err +set __msbuildLog=/flp:Verbosity=diag;LogFile="%__BuildLog%" +set __msbuildWrn=/flp1:WarningsOnly;LogFile="%__BuildWrn%" +set __msbuildErr=/flp2:ErrorsOnly;LogFile="%__BuildErr%" + +call %__ProjectDir%\run.cmd build -Project=%__ProjectDir%\tests\runtest.proj -BuildWrappers -MsBuildEventLogging=" " -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__RunArgs% %__BuildAgainstPackagesArg% %__unprocessedBuildArgs% %RuntimeIdArg% +if errorlevel 1 ( + echo Xunit Wrapper build failed + exit /b 1 +) echo %__MsgPrefix%Creating test overlay... @@ -286,6 +322,28 @@ if errorlevel 1 ( exit /b 1 ) +if not defined __BuildAgainstPackages goto SkipPrepForPublish + +set __BuildLogRootName=Helix_Prep +set __BuildLog=%__LogsDir%\%__BuildLogRootName%_%__BuildOS%__%__BuildArch%__%__BuildType%.log +set __BuildWrn=%__LogsDir%\%__BuildLogRootName%_%__BuildOS%__%__BuildArch%__%__BuildType%.wrn +set __BuildErr=%__LogsDir%\%__BuildLogRootName%_%__BuildOS%__%__BuildArch%__%__BuildType%.err +set __msbuildLog=/flp:Verbosity=normal;LogFile="%__BuildLog%" +set __msbuildWrn=/flp1:WarningsOnly;LogFile="%__BuildWrn%" +set __msbuildErr=/flp2:ErrorsOnly;LogFile="%__BuildErr%" + +REM ========================================================================================= +REM === +REM === Prep test binaries for Helix publishing +REM === +REM ========================================================================================= + +call %__ProjectDir%\run.cmd build -Project=%__ProjectDir%\tests\helixprep.proj -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__RunArgs% %__BuildAgainstPackagesArg% %__unprocessedBuildArgs% %RuntimeIdArg% + +echo %__MsgPrefix% Prepped test binaries for publishing + +:SkipPrepForPublish + REM ========================================================================================= REM === REM === All builds complete! @@ -308,8 +366,10 @@ echo Build type: -buildType: one of Debug, Checked, Release ^(default: Debug^). echo updateinvalidpackageversions: Runs the target to update package versions. echo buildagainstpackages: builds tests against restored packages, instead of against a built product. echo runtimeid ^: Builds a test overlay for the specified OS (Only supported when building against packages). Supported IDs are: +echo alpine.3.4.3-x64: Builds overlay for Alpine 3.4.3 echo debian.8-x64: Builds overlay for Debian 8 echo fedora.23-x64: Builds overlay for Fedora 23 +echo fedora.24-x64: Builds overlay for Fedora 23 echo opensuse.13.2-x64: Builds overlay for OpenSUSE 13.2 echo opensuse.42.1-x64: Builds overlay for OpenSUSE 42.1 echo osx.10.10-x64: Builds overlay for OSX 10.10 @@ -317,6 +377,8 @@ echo rhel.7-x64: Builds overlay for RHEL 7 or CentOS echo ubuntu.14.04-x64: Builds overlay for Ubuntu 14.04 echo ubuntu.16.04-x64: Builds overlay for Ubuntu 16.04 echo ubuntu.16.10-x64: Builds overlay for Ubuntu 16.10 +echo Exclude- Optional parameter - specify location of default exclusion file (defaults to tests\issues.targets if not specified) +echo Set to "" to disable default exclusion file. echo -- ... : all arguments following this tag will be passed directly to msbuild. echo -priority=^ : specify a set of test that will be built and run, with priority N. echo 0: Build only priority 0 cases as essential testcases (default) diff --git a/build.cmd b/build.cmd index f8c49e3..a37428c 100644 --- a/build.cmd +++ b/build.cmd @@ -388,13 +388,15 @@ if %__BuildNativeCoreLib% EQU 1 ( "%__CrossgenExe%" /Platform_Assemblies_Paths "%__BinDir%" /out "%__BinDir%\System.Private.CoreLib.ni.dll" "%__BinDir%\System.Private.CoreLib.dll" > "%__CrossGenCoreLibLog%" 2>&1 if NOT !errorlevel! == 0 ( echo %__MsgPrefix%Error: CrossGen System.Private.CoreLib build failed. Refer to %__CrossGenCoreLibLog% - echo %__CrossGenCoreLibLog% + :: Put it in the same log, helpful for Jenkins + type %__CrossGenCoreLibLog% exit /b 1 ) "%__CrossgenExe%" /Platform_Assemblies_Paths "%__BinDir%" /CreatePdb "%__BinDir%\PDB" "%__BinDir%\System.Private.CoreLib.ni.dll" >> "%__CrossGenCoreLibLog%" 2>&1 if NOT !errorlevel! == 0 ( echo %__MsgPrefix%Error: CrossGen /CreatePdb System.Private.CoreLib build failed. Refer to %__CrossGenCoreLibLog% - echo %__CrossGenCoreLibLog% + :: Put it in the same log, helpful for Jenkins + type %__CrossGenCoreLibLog% exit /b 1 ) @@ -417,8 +419,9 @@ if %__BuildNativeCoreLib% EQU 1 ( ) if NOT !err! == 0 ( - echo %__MsgPrefix%Error: CrossGen mscorlib facade build failed. Refer to the build log file for details: - echo !__CrossGenCoreLibLog! + echo %__MsgPrefix%Error: CrossGen mscorlib facade build failed. Refer to !__CrossGenCoreLibLog! + :: Put it in the same log, helpful for Jenkins + type %__CrossGenCoreLibLog% exit /b 1 ) ) @@ -587,6 +590,7 @@ echo skipmscorlib: skip building System.Private.CoreLib ^(default: System.Privat echo skipnative: skip building native components ^(default: native components are built^). echo skiptests: skip building tests ^(default: tests are built^). echo skipbuildpackages: skip building nuget packages ^(default: packages are built^). +echo buildstandalonegc: builds the GC in a standalone mode. echo -skiprestore: skip restoring packages ^(default: packages are restored during build^). echo -disableoss: Disable Open Source Signing for System.Private.CoreLib. echo -priority=^ : specify a set of test that will be built and run, with priority N. diff --git a/build.sh b/build.sh index ca27844..8d03121 100755 --- a/build.sh +++ b/build.sh @@ -2,16 +2,8 @@ # resolve python-version to use if [ "$PYTHON" == "" ] ; then - if which python >/dev/null 2>&1 + if ! PYTHON=$(command -v python || command -v python2 || command -v python 2.7) then - PYTHON=python - elif which python2 >/dev/null 2>&1 - then - PYTHON=python2 - elif which python2.7 >/dev/null 2>&1 - then - PYTHON=python2.7 - else echo "Unable to locate build-dependency python2.x!" 1>&2 exit 1 fi @@ -19,7 +11,7 @@ fi # validate python-dependency # useful in case of explicitly set option. -if ! which $PYTHON > /dev/null 2>&1 +if ! command -v $PYTHON > /dev/null then echo "Unable to locate build-dependency python2.x ($PYTHON)!" 1>&2 exit 1 @@ -28,13 +20,15 @@ fi usage() { echo "Usage: $0 [BuildArch] [BuildType] [verbose] [coverage] [cross] [clangx.y] [ninja] [configureonly] [skipconfigure] [skipnative] [skipmscorlib] [skiptests] [cmakeargs] [bindir]" - echo "BuildArch can be: x64, x86, arm, arm-softfp, arm64" + echo "BuildArch can be: x64, x86, arm, armel, arm64" echo "BuildType can be: debug, checked, release" echo "coverage - optional argument to enable code coverage build (currently supported only for Linux and OSX)." echo "ninja - target ninja instead of GNU make" echo "clangx.y - optional argument to build using clang version x.y." echo "cross - optional argument to signify cross compilation," echo " - will use ROOTFS_DIR environment variable if set." + echo "crosscomponent - optional argument to build cross-architecture component," + echo " - will use CAC_ROOTFS_DIR environment variable if set." echo "pgoinstrument - generate instrumented code for profile guided optimization enabled binaries." echo "configureonly - do not perform any builds; just configure the build." echo "skipconfigure - skip build configuration." @@ -53,6 +47,7 @@ usage() echo "skipgenerateversion - disable version generation even if MSBuild is supported." echo "cmakeargs - user-settable additional arguments passed to CMake." echo "bindir - output directory (defaults to $__ProjectRoot/bin)" + echo "buildstandalonegc - builds the GC in a standalone mode. Can't be used with \"cmakeargs\"." exit 1 } @@ -194,11 +189,7 @@ build_native() if [ $__UseNinja == 1 ]; then generator="ninja" buildFile="build.ninja" - if which ninja >/dev/null 2>&1; then - buildTool="ninja" - elif which ninja-build >/dev/null 2>&1; then - buildTool="ninja-build" - else + if ! buildTool=$(command -v ninja || command -v ninja-build); then echo "Unable to locate ninja!" 1>&2 exit 1 fi @@ -266,6 +257,46 @@ build_native() popd } +build_cross_arch_component() +{ + __SkipCrossArchBuild=1 + TARGET_ROOTFS="" + # check supported cross-architecture components host(__HostArch)/target(__BuildArch) pair + if [[ "$__BuildArch" == "arm" && "$__CrossArch" == "x86" ]]; then + export CROSSCOMPILE=0 + __SkipCrossArchBuild=0 + + # building x64-host/arm-target cross-architecture component need to use cross toolchain of x86 + if [ "$__HostArch" == "x64" ]; then + export CROSSCOMPILE=1 + fi + else + # not supported + return + fi + + export __CMakeBinDir="$__CrossComponentBinDir" + export CROSSCOMPONENT=1 + if [ $CROSSCOMPILE == 1 ]; then + TARGET_ROOTFS="$ROOTFS_DIR" + if [ -n "$CAC_ROOTFS_DIR" ]; then + export ROOTFS_DIR="$CAC_ROOTFS_DIR" + else + export ROOTFS_DIR="$__ProjectRoot/cross/rootfs/$__CrossArch" + fi + fi + + __ExtraCmakeArgs="-DCLR_CMAKE_TARGET_ARCH=$__BuildArch -DCLR_CMAKE_TARGET_OS=$__BuildOS -DCLR_CMAKE_PACKAGES_DIR=$__PackagesDir -DCLR_CMAKE_PGO_INSTRUMENT=$__PgoInstrument" + build_native $__SkipCrossArchBuild "$__CrossArch" "$__CrossCompIntermediatesDir" "$__ExtraCmakeArgs" "cross-architecture component" + + # restore ROOTFS_DIR, CROSSCOMPONENT, and CROSSCOMPILE + if [ -n "$TARGET_ROOTFS" ]; then + export ROOTFS_DIR="$TARGET_ROOTFS" + fi + export CROSSCOMPONENT= + export CROSSCOMPILE=1 +} + isMSBuildOnNETCoreSupported() { # This needs to be updated alongwith corresponding changes to netci.groovy. @@ -292,7 +323,7 @@ isMSBuildOnNETCoreSupported() "opensuse.42.1-x64") __isMSBuildOnNETCoreSupported=1 ;; - "rhel.7.2-x64") + "rhel.7"*"-x64") __isMSBuildOnNETCoreSupported=1 ;; "ubuntu.14.04-x64") @@ -552,8 +583,8 @@ while :; do __BuildArch=arm ;; - arm-softfp) - __BuildArch=arm-softfp + armel) + __BuildArch=armel ;; arm64) @@ -694,7 +725,9 @@ while :; do exit 1 fi ;; - + buildstandalonegc) + __cmakeargs="-DFEATURE_STANDALONE_GC=1" + ;; *) __UnprocessedBuildArgs="$__UnprocessedBuildArgs $1" ;; @@ -791,19 +824,8 @@ __ExtraCmakeArgs="-DCLR_CMAKE_TARGET_OS=$__BuildOS -DCLR_CMAKE_PACKAGES_DIR=$__P build_native $__SkipCoreCLR "$__BuildArch" "$__IntermediatesDir" "$__ExtraCmakeArgs" "CoreCLR component" # Build cross-architecture components -if [ $__CrossBuild == 1 ]; then - __SkipCrossArchBuild=1 - if [ $__DoCrossArchBuild == 1 ]; then - # build cross-architecture components for x86-host/arm-target - if [[ "$__BuildArch" == "arm" && "$__CrossArch" == "x86" ]]; then - __SkipCrossArchBuild=0 - fi - fi - - export __CMakeBinDir="$__CrossComponentBinDir" - export CROSSCOMPONENT=1 - __ExtraCmakeArgs="-DCLR_CMAKE_TARGET_ARCH=$__BuildArch -DCLR_CMAKE_TARGET_OS=$__BuildOS -DCLR_CMAKE_PACKAGES_DIR=$__PackagesDir -DCLR_CMAKE_PGO_INSTRUMENT=$__PgoInstrument" - build_native $__SkipCrossArchBuild "$__CrossArch" "$__CrossCompIntermediatesDir" "$__ExtraCmakeArgs" "cross-architecture component" +if [[ $__CrossBuild == 1 && $__DoCrossArchBuild == 1 ]]; then + build_cross_arch_component fi # Build System.Private.CoreLib. diff --git a/clr.coreclr.props b/clr.coreclr.props index 447b302..9211976 100644 --- a/clr.coreclr.props +++ b/clr.coreclr.props @@ -5,14 +5,9 @@ true true true - true true true - true - true true - true - true true false true @@ -20,27 +15,19 @@ true true true - true - true true true true true true - true - true true true - true true - true true true - true true true - true true true true @@ -51,22 +38,17 @@ true true - true true - - true true true true true true - true true true true true - true true true true diff --git a/clr.defines.targets b/clr.defines.targets index a45d0dd..f09ff97 100644 --- a/clr.defines.targets +++ b/clr.defines.targets @@ -4,46 +4,29 @@ $(CDefines);DEBUGGING_SUPPORTED $(CDefines);EnC_SUPPORTED $(CDefines);ENABLE_DOWNLEVEL_FOR_NLS - $(CDefines);FEATURE_APPDOMAIN_RESOURCE_MONITORING - $(CDefines);FEATURE_APPDOMAINMANAGER_INITOPTIONS $(CDefines);FEATURE_APPX - $(CDefines);FEATURE_APPX_BINDER - $(CDefines);FEATURE_APTCA $(CDefines);FEATURE_ARRAYSTUB_AS_IL $(CDefines);FEATURE_STUBS_AS_IL - $(CDefines);FEATURE_BCL_FORMATTING - $(CDefines);FEATURE_CAS_POLICY $(CDefines);FEATURE_CLASSIC_COMINTEROP $(CDefines);FEATURE_CLICKONCE $(CDefines);FEATURE_TRACELOGGING - $(CDefines);FEATURE_CODEPAGES_FILE $(CDefines);FEATURE_COLLECTIBLE_TYPES $(CDefines);FEATURE_COMINTEROP $(CDefines);FEATURE_ICASTABLE $(CDefines);FEATURE_COMINTEROP_APARTMENT_SUPPORT - $(CDefines);FEATURE_COMINTEROP_MANAGED_ACTIVATION $(CDefines);FEATURE_COMINTEROP_REGISTRATION $(CDefines);FEATURE_COMINTEROP_TLB_SUPPORT $(CDefines);FEATURE_COMINTEROP_UNMANAGED_ACTIVATION $(CDefines);FEATURE_COMINTEROP_WINRT_MANAGED_ACTIVATION - $(CDefines);FEATURE_COMINTEROP_WINRT_DESKTOP_HOST - $(CDefines);FEATURE_COMPRESSEDSTACK - $(CDefines);FEATURE_CORECLR $(CDefines);FEATURE_COREFX_GLOBALIZATION - $(CDefines);FEATURE_CORESYSTEM - $(CDefines);FEATURE_CORRUPTING_EXCEPTIONS - $(CDefines);FEATURE_CRYPTO $(CDefines);FEATURE_DBGIPC_TRANSPORT_DI $(CDefines);FEATURE_DBGIPC_TRANSPORT_VM $(CDefines);FEATURE_DBG_PUBLISH $(CDefines);FEATURE_EVENT_TRACE $(CDefines);FEATURE_EVENTSOURCE_XPLAT - $(CDefines);FEATURE_EXCEPTIONDISPATCHINFO - $(CDefines);FEATURE_EXCEPTION_NOTIFICATIONS $(CDefines);FEATURE_FULL_NGEN $(CDefines);FEATURE_FUSION $(CDefines);FEATURE_HIJACK - $(CDefines);FEATURE_HOST_ASSEMBLY_RESOLVER $(CDefines);FEATURE_IMPERSONATION $(CDefines);FEATURE_INCLUDE_ALL_INTERFACES $(CDefines);FEATURE_INTEROP_DEBUGGING @@ -53,14 +36,10 @@ $(CDefines);FEATURE_ISOSTORE_LIGHT $(CDefines);FEATURE_ISYM_READER $(CDefines);FEATURE_LAZY_COW_PAGES - $(CDefines);FEATURE_LEAK_CULTURE_INFO $(CDefines);FEATURE_LEGACYNETCF_DBG_HOST_CONTROL - $(CDefines);FEATURE_LEGACYSURFACE - $(CDefines);FEATURE_LOADER_OPTIMIZATION $(CDefines);FEATURE_MACL $(CDefines);FEATURE_MANAGED_ETW $(CDefines);FEATURE_MANAGED_ETW_CHANNELS - $(CDefines);FEATURE_MAIN_CLR_MODULE_USES_CORE_NAME $(CDefines);MDA_SUPPORTED $(CDefines);FEATURE_MERGE_CULTURE_SUPPORT_AND_ENGINE $(CDefines);FEATURE_MERGE_JIT_AND_ENGINE @@ -75,50 +54,36 @@ $(CDefines);FEATURE_METADATA_CUSTOM_DATA_SOURCE $(CDefines);FEATURE_METADATA_DEBUGGEE_DATA_SOURCE $(CDefines);FEATURE_METADATA_VERIFY_LAYOUTS - $(CDefines);FEATURE_METHOD_RENTAL $(CDefines);FEATURE_MIXEDMODE $(CDefines);FEATURE_MULTIMODULE_ASSEMBLIES $(CDefines);FEATURE_NATIVE_IMAGE_GENERATION $(CDefines);FEATURE_NONGENERIC_COLLECTIONS - $(CDefines);FEATURE_NORM_IDNA_ONLY $(CDefines);FEATURE_PAL $(CDefines);FEATURE_PERFMON - $(CDefines);FEATURE_PLS $(CDefines);FEATURE_PREJIT $(CDefines);FEATURE_RANDOMIZED_STRING_HASHING $(CDefines);FEATURE_REFLECTION_ONLY_LOAD $(CDefines);FEATURE_REJIT $(CDefines);FEATURE_REMOTING - $(CDefines);FEATURE_RWLOCK - $(CDefines);FEATURE_SERIALIZATION $(CDefines);FEATURE_SORT_TABLES - $(CDefines);FEATURE_SPAN_OF_T $(CDefines);FEATURE_STACK_PROBE $(CDefines);FEATURE_STANDALONE_SN $(CDefines);FEATURE_STRONGNAME_DELAY_SIGNING_ALLOWED - $(CDefines);FEATURE_STRONGNAME_MIGRATION $(CDefines);FEATURE_SVR_GC - $(CDefines);FEATURE_SYNCHRONIZATIONCONTEXT_WAIT $(CDefines);FEATURE_PERFMAP - $(CDefines);FEATURE_SYNCHRONIZATIONCONTEXT_WAIT $(CDefines);FEATURE_SYNTHETIC_CULTURES $(CDefines);FEATURE_TYPEEQUIVALENCE $(CDefines);FEATURE_UEF_CHAINMANAGER $(CDefines);FEATURE_USE_LCID $(CDefines);FEATURE_UTILCODE_NO_DEPENDENCIES $(CDefines);FEATURE_VALIDATOR - $(CDefines);FEATURE_VERSIONING $(CDefines);FEATURE_VERSIONING_LOG $(CDefines);FEATURE_WATSON $(CDefines);FEATURE_WIN32_REGISTRY - $(CDefines);FEATURE_WINDOWSPHONE $(CDefines);FEATURE_WINMD_RESILIENT - $(CDefines);FEATURE_X509 - $(CDefines);FEATURE_X509_SECURESTRINGS $(CDefines);PROFILING_SUPPORTED $(CDefines);UEF_CHAINING_SUPPORTED $(CDefines);USE_STL - $(CDefines);FEATURE_MULTICOREJIT $(CDefines);FEATURE_USE_ASM_GC_WRITE_BARRIERS $(CDefines);BINDER_DEBUG_LOG $(CDefines);FEATURE_SYMDIFF @@ -128,37 +93,19 @@ $(CDefines);FEATURE_READYTORUN_COMPILER $(DefineConstants);BUILDTYPE_RET - $(DefineConstants);FEATURE_APPDOMAINMANAGER_INITOPTIONS - $(DefineConstants);FEATURE_APPDOMAIN_RESOURCE_MONITORING $(DefineConstants);FEATURE_APPX - $(DefineConstants);FEATURE_APPX_BINDER - $(DefineConstants);FEATURE_APTCA $(DefineConstants);FEATURE_ARRAYSTUB_AS_IL $(DefineConstants);FEATURE_STUBS_AS_IL - $(DefineConstants);FEATURE_BCL_FORMATTING - $(DefineConstants);FEATURE_CAS_POLICY $(DefineConstants);FEATURE_CLASSIC_COMINTEROP $(DefineConstants);FEATURE_CLICKONCE - $(DefineConstants);FEATURE_CODEPAGES_FILE - $(DefineConstants);FEATURE_COLLECTIBLE_TYPES $(DefineConstants);FEATURE_COMINTEROP $(DefineConstants);FEATURE_COMINTEROP_APARTMENT_SUPPORT - $(DefineConstants);FEATURE_COMINTEROP_MANAGED_ACTIVATION $(DefineConstants);FEATURE_COMINTEROP_UNMANAGED_ACTIVATION $(DefineConstants);FEATURE_COMINTEROP_WINRT_MANAGED_ACTIVATION - $(DefineConstants);FEATURE_COMINTEROP_WINRT_DESKTOP_HOST - $(DefineConstants);FEATURE_COMPRESSEDSTACK - $(DefineConstants);FEATURE_CORECLR $(DefineConstants);FEATURE_COREFX_GLOBALIZATION - $(DefineConstants);FEATURE_CORESYSTEM - $(DefineConstants);FEATURE_CORRUPTING_EXCEPTIONS - $(DefineConstants);FEATURE_CRYPTO $(DefineConstants);FEATURE_DISPLAY_CULTURE_INFO $(DefineConstants);FEATURE_DISPLAY_REGION_INFO - $(DefineConstants);FEATURE_EXCEPTIONDISPATCHINFO - $(DefineConstants);FEATURE_EXCEPTION_NOTIFICATIONS $(DefineConstants);FEATURE_FUSION - $(DefineConstants);FEATURE_HOST_ASSEMBLY_RESOLVER $(DefineConstants);FEATURE_HOSTING $(DefineConstants);FEATURE_IDENTITY_REFERENCE $(DefineConstants);FEATURE_IMPERSONATION @@ -167,43 +114,26 @@ $(DefineConstants);FEATURE_ISOLATED_STORAGE_QUOTA_ENFORCEMENT $(DefineConstants);FEATURE_ISOSTORE $(DefineConstants);FEATURE_ISOSTORE_LIGHT - $(DefineConstants);FEATURE_LEAK_CULTURE_INFO - $(DefineConstants);FEATURE_LEGACYSURFACE - $(DefineConstants);FEATURE_LOADER_OPTIMIZATION $(DefineConstants);FEATURE_MACL $(DefineConstants);FEATURE_MANAGED_ETW $(DefineConstants);FEATURE_MANAGED_ETW_CHANNELS - $(DefineConstants);FEATURE_MAIN_CLR_MODULE_USES_CORE_NAME - $(DefineConstants);FEATURE_METHOD_RENTAL $(DefineConstants);FEATURE_MULTIMODULE_ASSEMBLIES $(DefineConstants);FEATURE_NONGENERIC_COLLECTIONS - $(DefineConstants);FEATURE_NORM_IDNA_ONLY $(DefineConstants);FEATURE_PAL $(DefineConstants);FEATURE_PATHCOMPAT $(DefineConstants);FEATURE_EVENTSOURCE_XPLAT $(DefineConstants);FEATURE_PERFMON - $(DefineConstants);FEATURE_PLS $(DefineConstants);FEATURE_RANDOMIZED_STRING_HASHING $(DefineConstants);FEATURE_REFLECTION_ONLY_LOAD $(DefineConstants);FEATURE_REMOTING - $(DefineConstants);FEATURE_RWLOCK - $(DefineConstants);FEATURE_SERIALIZATION $(DefineConstants);FEATURE_SORT_TABLES - $(DefineConstants);FEATURE_SPAN_OF_T - $(DefineConstants);FEATURE_STRONGNAME_MIGRATION - $(DefineConstants);FEATURE_SYNCHRONIZATIONCONTEXT_WAIT $(DefineConstants);FEATURE_SYNTHETIC_CULTURES $(DefineConstants);FEATURE_TYPEEQUIVALENCE $(DefineConstants);FEATURE_USE_LCID $(DefineConstants);FEATURE_VALIDATOR - $(DefineConstants);FEATURE_VERSIONING $(DefineConstants);FEATURE_WIN32_REGISTRY - $(DefineConstants);FEATURE_WINDOWSPHONE $(DefineConstants);FEATURE_WINMD_RESILIENT - $(DefineConstants);FEATURE_X509 - $(DefineConstants);FEATURE_X509_SECURESTRINGS $(DefineConstants);PROFILING_SUPPORTED - $(DefineConstants);FEATURE_MULTICOREJIT $(DefineConstants);FEATURE_REJIT $(DefineConstants);FEATURE_USE_ASM_GC_WRITE_BARRIERS $(DefineConstants);BINDER_DEBUG_LOG diff --git a/clr.desktop.props b/clr.desktop.props deleted file mode 100644 index 6d5951e..0000000 --- a/clr.desktop.props +++ /dev/null @@ -1,104 +0,0 @@ - - - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - false - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - true - - true - true - true - - \ No newline at end of file diff --git a/clr.props b/clr.props index 7a3b3bd..b1d3618 100644 --- a/clr.props +++ b/clr.props @@ -93,7 +93,6 @@ core_clr - desktop_clr $(ClAdditionalOptions) /Zm200 $(BuildArchitecture);_X86_ @@ -120,7 +119,6 @@ - @@ -128,20 +126,15 @@ false false - false - false false false false - false false true - false false false false false - false false true true @@ -162,14 +155,7 @@ true --> - - - coreclr - clr - mscordaccore - mscordacwks - - + false true @@ -253,12 +239,9 @@ 1 $(ResgenDefines) /define:FEATURE_IMPERSONATION - $(ResgenDefines) /define:FEATURE_CRYPTO $(ResgenDefines) /define:FEATURE_ISOSTORE $(ResgenDefines) /define:FEATURE_MACL - $(ResgenDefines) /define:FEATURE_CAS_POLICY $(ResgenDefines) /define:FEATURE_REMOTING - $(ResgenDefines) /define:FEATURE_SERIALIZATION $(ResgenDefines) /define:FEATURE_IDENTITY_REFERENCE $(ResgenDefines) /define:FEATURE_DISPLAY_CULTURE_INFO $(ResgenDefines) /define:FEATURE_DISPLAY_REGION_INFO diff --git a/clrdefinitions.cmake b/clrdefinitions.cmake index 91346ec..7f5686a 100644 --- a/clrdefinitions.cmake +++ b/clrdefinitions.cmake @@ -53,10 +53,12 @@ if (CLR_CMAKE_PLATFORM_UNIX) add_definitions(-D_XOPEN_SOURCE) endif(CLR_CMAKE_PLATFORM_DARWIN) - if (CLR_CMAKE_PLATFORM_UNIX_AMD64) + if (CLR_CMAKE_TARGET_ARCH_AMD64) add_definitions(-DUNIX_AMD64_ABI) - elseif (CLR_CMAKE_PLATFORM_UNIX_ARM) + elseif (CLR_CMAKE_TARGET_ARCH_ARM) add_definitions(-DUNIX_ARM_ABI) + elseif (CLR_CMAKE_TARGET_ARCH_I386) + add_definitions(-DUNIX_X86_ABI) endif() endif(CLR_CMAKE_PLATFORM_UNIX) @@ -96,7 +98,6 @@ if(CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_ARM OR CLR_CMAKE_TARGET_ endif() add_definitions(-DFEATURE_ASYNC_IO) -add_definitions(-DFEATURE_BCL_FORMATTING) add_definitions(-DFEATURE_COLLECTIBLE_TYPES) if(WIN32) @@ -167,10 +168,6 @@ add_definitions(-DFEATURE_RANDOMIZED_STRING_HASHING) add_definitions(-DFEATURE_READYTORUN) set(FEATURE_READYTORUN 1) -if (FEATURE_STANDALONE_GC) - add_definitions(-DFEATURE_STANDALONE_GC) -endif(FEATURE_STANDALONE_GC) - if (CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_I386) add_definitions(-DFEATURE_REJIT) endif(CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_I386) diff --git a/config.json b/config.json index 1849272..be0b4bd 100644 --- a/config.json +++ b/config.json @@ -294,6 +294,12 @@ "values": [ true, false ], "defaultValue": true }, + "BuildWrappers": { + "description": "Builds test Xunit wrappers", + "valueType": "property", + "values": [ true, false ], + "defaultValue": true + }, "RuntimeId": { "description": "Specifies the OS to build Core_Root for", "valueType": "property", @@ -435,6 +441,13 @@ "Project": "./src/syncAzure.proj" } }, + "n": { + "description": "Downloads test native binaries. The values for '-AzureAccount', '-AzureToken', and '-Container' are required", + "settings": { + "Project": "./src/syncAzure.proj", + "PublishTestNativeBins": "true" + } + }, "azureToken": { "description": "Account token to connect to Azure Blob storage.", "settings": { @@ -453,6 +466,12 @@ "__Container": "default" } }, + "runtimeId": { + "description": "Runtime ID of the binaries in the specified container.", + "settings": { + "RuntimeId": "default" + } + }, "verbose": { "description": "Passes /flp:v=diag to the msbuild command or the value passed by the user.", "settings": { @@ -470,12 +489,6 @@ "settings": { "BuildNumberMinor": "default" } - }, - "PublishTestNativeBins": { - "description": "Downloads Published test native binaries.", - "settings": { - "PublishTestNativeBins": "default" - } } }, "defaultValues": { @@ -602,4 +615,4 @@ "valueTypes": {} } } -} +} \ No newline at end of file diff --git a/cross/arm-softfp/sources.list.jessie b/cross/arm-softfp/sources.list.jessie deleted file mode 100644 index 4d142ac..0000000 --- a/cross/arm-softfp/sources.list.jessie +++ /dev/null @@ -1,3 +0,0 @@ -# Debian (sid) # UNSTABLE -deb http://ftp.debian.org/debian/ sid main contrib non-free -deb-src http://ftp.debian.org/debian/ sid main contrib non-free diff --git a/cross/arm-softfp/toolchain.cmake b/cross/arm-softfp/toolchain.cmake deleted file mode 100644 index 407ab53..0000000 --- a/cross/arm-softfp/toolchain.cmake +++ /dev/null @@ -1,46 +0,0 @@ -set(CROSS_ROOTFS $ENV{ROOTFS_DIR}) - -set(CMAKE_SYSTEM_NAME Linux) -set(CMAKE_SYSTEM_VERSION 1) -set(CMAKE_SYSTEM_PROCESSOR armv7l) - -## Specify the toolchain -set(TOOLCHAIN "arm-linux-gnueabi") -set(TOOLCHAIN_PREFIX ${TOOLCHAIN}-) -#set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc) -#set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++) -#set(CMAKE_ASM_COMPILER ${TOOLCHAIN_PREFIX}as) -#set(CMAKE_AR ${TOOLCHAIN_PREFIX}ar) -#set(CMAKE_OBJCOPY ${TOOLCHAIN_PREFIX}objcopy) -#set(CMAKE_OBJDUMP ${TOOLCHAIN_PREFIX}objdump) - -add_compile_options(-target armv7-linux-gnueabi) -add_compile_options(-mthumb) -add_compile_options(-mfpu=vfpv3) -add_compile_options(--sysroot=${CROSS_ROOTFS}) - -set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -target ${TOOLCHAIN}") -set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -B${CROSS_ROOTFS}/usr/lib/gcc/${TOOLCHAIN}") -set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -L${CROSS_ROOTFS}/lib/${TOOLCHAIN}") -set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} --sysroot=${CROSS_ROOTFS}") - -set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE) -set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE) -set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE) - -set(CMAKE_FIND_ROOT_PATH "${CROSS_ROOTFS}") -set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) -set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) -set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) -set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) - -set(LLVM_ARM_DIR "$ENV{LLVM_ARM_HOME}") -if(LLVM_ARM_DIR) - set(WITH_LLDB_LIBS "${LLVM_ARM_DIR}/lib/" CACHE STRING "") - set(WITH_LLDB_INCLUDES "${LLVM_ARM_DIR}/include" CACHE STRING "") - set(LLDB_H "${WITH_LLDB_INCLUDES}" CACHE STRING "") - set(LLDB "${LLVM_ARM_DIR}/lib/liblldb.so" CACHE STRING "") -else() - set(WITH_LLDB_LIBS "${CROSS_ROOTFS}/usr/lib/${TOOLCHAIN}" CACHE STRING "") - set(WITH_LLDB_INCLUDES "${CROSS_ROOTFS}/usr/lib/llvm-3.6/include" CACHE STRING "") -endif() diff --git a/cross/arm-softfp/tryrun.cmake b/cross/arm-softfp/tryrun.cmake deleted file mode 100644 index 26a30e5..0000000 --- a/cross/arm-softfp/tryrun.cmake +++ /dev/null @@ -1,123 +0,0 @@ -SET( REALPATH_SUPPORTS_NONEXISTENT_FILES_EXITCODE - 1 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( SSCANF_SUPPORT_ll_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( SSCANF_CANNOT_HANDLE_MISSING_EXPONENT_EXITCODE - 1 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_LARGE_SNPRINTF_SUPPORT_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_SCHED_GET_PRIORITY_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_WORKING_GETTIMEOFDAY_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_WORKING_CLOCK_GETTIME_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_CLOCK_MONOTONIC_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_MMAP_DEV_ZERO_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( ONE_SHARED_MAPPING_PER_FILEREGION_PER_PROCESS_EXITCODE - 1 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( PTHREAD_CREATE_MODIFIES_ERRNO_EXITCODE - 1 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( SEM_INIT_MODIFIES_ERRNO_EXITCODE - 1 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_COMPATIBLE_ACOS_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_COMPATIBLE_ASIN_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_COMPATIBLE_POW_EXITCODE - 1 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_VALID_NEGATIVE_INF_POW_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_VALID_POSITIVE_INF_POW_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_COMPATIBLE_ATAN2_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_COMPATIBLE_LOG_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_COMPATIBLE_LOG10_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( UNGETC_NOT_RETURN_EOF_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAS_POSIX_SEMAPHORES_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( GETPWUID_R_SETS_ERRNO_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( FILE_OPS_CHECK_FERROR_OF_PREVIOUS_CALL_EXITCODE - 1 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_CLOCK_THREAD_CPUTIME_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_SCHED_GETCPU_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_CLOCK_MONOTONIC_COARSE_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_PROCFS_CTL_EXITCODE - 1 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_PROCFS_MAPS_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_PROCFS_STAT_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) - -SET( HAVE_PROCFS_STATUS_EXITCODE - 0 - CACHE STRING "Result from TRY_RUN" FORCE) diff --git a/cross/armel/sources.list.jessie b/cross/armel/sources.list.jessie new file mode 100644 index 0000000..3d9c305 --- /dev/null +++ b/cross/armel/sources.list.jessie @@ -0,0 +1,3 @@ +# Debian (jessie) # Stable +deb http://ftp.debian.org/debian/ jessie main contrib non-free +deb-src http://ftp.debian.org/debian/ jessie main contrib non-free diff --git a/cross/armel/tizen-build-rootfs.sh b/cross/armel/tizen-build-rootfs.sh new file mode 100755 index 0000000..87c48e7 --- /dev/null +++ b/cross/armel/tizen-build-rootfs.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +set -e + +__ARM_SOFTFP_CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) +__TIZEN_CROSSDIR="$__ARM_SOFTFP_CrossDir/tizen" + +if [[ -z "$ROOTFS_DIR" ]]; then + echo "ROOTFS_DIR is not defined." + exit 1; +fi + +# Clean-up (TODO-Cleanup: We may already delete $ROOTFS_DIR at ./cross/build-rootfs.sh.) +# hk0110 +if [ -d "$ROOTFS_DIR" ]; then + umount $ROOTFS_DIR/* + rm -rf $ROOTFS_DIR +fi + +TIZEN_TMP_DIR=$ROOTFS_DIR/tizen_tmp +mkdir -p $TIZEN_TMP_DIR + +# Download files +echo ">>Start downloading files" +VERBOSE=1 $__ARM_SOFTFP_CrossDir/tizen-fetch.sh $TIZEN_TMP_DIR +echo "<>Start constructing Tizen rootfs" +TIZEN_RPM_FILES=`ls $TIZEN_TMP_DIR/*.rpm` +cd $ROOTFS_DIR +for f in $TIZEN_RPM_FILES; do + rpm2cpio $f | cpio -idm --quiet +done +echo "<>Start configuring Tizen rootfs" +rm ./usr/lib/libunwind.so +ln -s libunwind.so.8 ./usr/lib/libunwind.so +ln -sfn asm-arm ./usr/include/asm +patch -p1 < $__TIZEN_CROSSDIR/tizen.patch +echo "</dev/null; then + VERBOSE=0 +fi + +Log() +{ + if [ $VERBOSE -ge $1 ]; then + echo ${@:2} + fi +} + +Inform() +{ + Log 1 -e "\x1B[0;34m$@\x1B[m" +} + +Debug() +{ + Log 2 -e "\x1B[0;32m$@\x1B[m" +} + +Error() +{ + >&2 Log 0 -e "\x1B[0;31m$@\x1B[m" +} + +Fetch() +{ + URL=$1 + FILE=$2 + PROGRESS=$3 + if [ $VERBOSE -ge 1 ] && [ $PROGRESS ]; then + CURL_OPT="--progress-bar" + else + CURL_OPT="--silent" + fi + curl $CURL_OPT $URL > $FILE +} + +hash curl 2> /dev/null || { Error "Require 'curl' Aborting."; exit 1; } +hash xmllint 2> /dev/null || { Error "Require 'xmllint' Aborting."; exit 1; } +hash sha256sum 2> /dev/null || { Error "Require 'sha256sum' Aborting."; exit 1; } + +TMPDIR=$1 +if [ ! -d $TMPDIR ]; then + TMPDIR=./tizen_tmp + Debug "Create temporary directory : $TMPDIR" + mkdir -p $TMPDIR +fi + +TIZEN_URL=http://download.tizen.org/releases/weekly/tizen +BUILD_XML=build.xml +REPOMD_XML=repomd.xml +PRIMARY_XML=primary.xml +TARGET_URL="http://__not_initialized" + +Xpath_get() +{ + XPATH_RESULT='' + XPATH=$1 + XML_FILE=$2 + RESULT=$(xmllint --xpath $XPATH $XML_FILE) + if [[ -z ${RESULT// } ]]; then + Error "Can not find target from $XML_FILE" + Debug "Xpath = $XPATH" + exit 1 + fi + XPATH_RESULT=$RESULT +} + +fetch_tizen_pkgs_init() +{ + TARGET=$1 + PROFILE=$2 + Debug "Initialize TARGET=$TARGET, PROFILE=$PROFILE" + + TMP_PKG_DIR=$TMPDIR/tizen_${PROFILE}_pkgs + if [ -d $TMP_PKG_DIR ]; then rm -rf $TMP_PKG_DIR; fi + mkdir -p $TMP_PKG_DIR + + PKG_URL=$TIZEN_URL/$PROFILE/latest + + BUILD_XML_URL=$PKG_URL/$BUILD_XML + TMP_BUILD=$TMP_PKG_DIR/$BUILD_XML + TMP_REPOMD=$TMP_PKG_DIR/$REPOMD_XML + TMP_PRIMARY=$TMP_PKG_DIR/$PRIMARY_XML + TMP_PRIMARYGZ=${TMP_PRIMARY}.gz + + Fetch $BUILD_XML_URL $TMP_BUILD + + Debug "fetch $BUILD_XML_URL to $TMP_BUILD" + + TARGET_XPATH="//build/buildtargets/buildtarget[@name=\"$TARGET\"]/repo[@type=\"binary\"]/text()" + Xpath_get $TARGET_XPATH $TMP_BUILD + TARGET_PATH=$XPATH_RESULT + TARGET_URL=$PKG_URL/$TARGET_PATH + + REPOMD_URL=$TARGET_URL/repodata/repomd.xml + PRIMARY_XPATH='string(//*[local-name()="data"][@type="primary"]/*[local-name()="location"]/@href)' + + Fetch $REPOMD_URL $TMP_REPOMD + + Debug "fetch $REPOMD_URL to $TMP_REPOMD" + + Xpath_get $PRIMARY_XPATH $TMP_REPOMD + PRIMARY_XML_PATH=$XPATH_RESULT + PRIMARY_URL=$TARGET_URL/$PRIMARY_XML_PATH + + Fetch $PRIMARY_URL $TMP_PRIMARYGZ + + Debug "fetch $PRIMARY_URL to $TMP_PRIMARYGZ" + + gunzip $TMP_PRIMARYGZ + + Debug "unzip $TMP_PRIMARYGZ to $TMP_PRIMARY" +} + +fetch_tizen_pkgs() +{ + PROFILE=$1 + PACKAGE_XPATH_TPL='string(//*[local-name()="metadata"]/*[local-name()="package"][*[local-name()="name"][text()="_PKG_"]]/*[local-name()="location"]/@href)' + + PACKAGE_CHECKSUM_XPATH_TPL='string(//*[local-name()="metadata"]/*[local-name()="package"][*[local-name()="name"][text()="_PKG_"]]/*[local-name()="checksum"]/text())' + + for pkg in ${@:2} + do + Inform "Fetching... $pkg" + XPATH=${PACKAGE_XPATH_TPL/_PKG_/$pkg} + Xpath_get $XPATH $TMP_PRIMARY + PKG_PATH=$XPATH_RESULT + + XPATH=${PACKAGE_CHECKSUM_XPATH_TPL/_PKG_/$pkg} + Xpath_get $XPATH $TMP_PRIMARY + CHECKSUM=$XPATH_RESULT + + PKG_URL=$TARGET_URL/$PKG_PATH + PKG_FILE=$(basename $PKG_PATH) + PKG_PATH=$TMPDIR/$PKG_FILE + + Debug "Download $PKG_URL to $PKG_PATH" + Fetch $PKG_URL $PKG_PATH true + + echo "$CHECKSUM $PKG_PATH" | sha256sum -c - > /dev/null + if [ $? -ne 0 ]; then + Error "Fail to fetch $PKG_URL to $PKG_PATH" + Debug "Checksum = $CHECKSUM" + exit 1 + fi + + done +} + +Inform "Initialize arm base" +fetch_tizen_pkgs_init arm base +Inform "fetch base common packages" +fetch_tizen_pkgs base gcc glibc glibc-devel linux-glibc-devel +Inform "fetch base coreclr packages" +fetch_tizen_pkgs base lldb lldb-devel libuuid libuuid-devel libgcc libstdc++ libstdc++-devel +Inform "fetch base corefx packages" +fetch_tizen_pkgs base libcom_err libcom_err-devel zlib zlib-devel libopenssl libopenssl-devel + +Inform "initialize arm mobile" +fetch_tizen_pkgs_init arm-wayland mobile +Inform "fetch mobile common packages" +fetch_tizen_pkgs mobile libicu-devel +Inform "fetch mobile coreclr packages" +fetch_tizen_pkgs mobile libunwind libunwind-devel tizen-release +Inform "fetch mobile corefx packages" +fetch_tizen_pkgs mobile gssdp gssdp-devel krb5 krb5-devel libcurl libcurl-devel + + diff --git a/cross/armel/tizen/tizen.patch b/cross/armel/tizen/tizen.patch new file mode 100644 index 0000000..c92dc02 --- /dev/null +++ b/cross/armel/tizen/tizen.patch @@ -0,0 +1,33 @@ +diff -u -r a/usr/lib/libc.so b/usr/lib/libc.so +--- a/usr/lib/libc.so 2016-12-30 23:00:08.284951863 +0900 ++++ b/usr/lib/libc.so 2016-12-30 23:00:32.140951815 +0900 +@@ -2,4 +2,4 @@ + Use the shared library, but some functions are only in + the static library, so try that secondarily. */ + OUTPUT_FORMAT(elf32-littlearm) +-GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a AS_NEEDED ( /lib/ld-linux.so.3 ) ) ++GROUP ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld-linux.so.3 ) ) +diff -u -r a/usr/lib/libpthread.so b/usr/lib/libpthread.so +--- a/usr/lib/libpthread.so 2016-12-30 23:00:19.408951841 +0900 ++++ b/usr/lib/libpthread.so 2016-12-30 23:00:39.068951801 +0900 +@@ -2,4 +2,4 @@ + Use the shared library, but some functions are only in + the static library, so try that secondarily. */ + OUTPUT_FORMAT(elf32-littlearm) +-GROUP ( /lib/libpthread.so.0 /usr/lib/libpthread_nonshared.a ) ++GROUP ( libpthread.so.0 libpthread_nonshared.a ) +diff -u -r a/usr/lib/libpthread.so b/usr/lib/libpthread.so +--- a/etc/os-release 2016-10-17 23:39:36.000000000 +0900 ++++ b/etc/os-release 2017-01-05 14:34:39.099867682 +0900 +@@ -1,7 +1,7 @@ + NAME=Tizen +-VERSION="3.0.0 (Tizen3/Mobile)" ++VERSION="4.0.0 (Tizen4/Mobile)" + ID=tizen +-VERSION_ID=3.0.0 +-PRETTY_NAME="Tizen 3.0.0 (Tizen3/Mobile)" ++VERSION_ID=4.0.0 ++PRETTY_NAME="Tizen 4.0.0 (Tizen4/Mobile)" + ANSI_COLOR="0;36" +-CPE_NAME="cpe:/o:tizen:tizen:3.0.0" ++CPE_NAME="cpe:/o:tizen:tizen:4.0.0" diff --git a/cross/armel/toolchain.cmake b/cross/armel/toolchain.cmake new file mode 100644 index 0000000..95bff08 --- /dev/null +++ b/cross/armel/toolchain.cmake @@ -0,0 +1,59 @@ +set(CROSS_ROOTFS $ENV{ROOTFS_DIR}) + +set(CMAKE_SYSTEM_NAME Linux) +set(CMAKE_SYSTEM_VERSION 1) +set(CMAKE_SYSTEM_PROCESSOR armv7l) + +## Specify the toolchain +set(TOOLCHAIN "arm-linux-gnueabi") +set(TOOLCHAIN_PREFIX ${TOOLCHAIN}-) +#set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc) +#set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++) +#set(CMAKE_ASM_COMPILER ${TOOLCHAIN_PREFIX}as) +#set(CMAKE_AR ${TOOLCHAIN_PREFIX}ar) +#set(CMAKE_OBJCOPY ${TOOLCHAIN_PREFIX}objcopy) +#set(CMAKE_OBJDUMP ${TOOLCHAIN_PREFIX}objdump) + +add_compile_options(-target armv7-linux-gnueabi) +add_compile_options(-mthumb) +add_compile_options(-mfpu=vfpv3) +add_compile_options(--sysroot=${CROSS_ROOTFS}) + +set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -target ${TOOLCHAIN}") +set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} --sysroot=${CROSS_ROOTFS}") + +if("$ENV{__DistroRid}" MATCHES "tizen.*") + add_compile_options(-I$ENV{ROOTFS_DIR}/usr/lib/gcc/armv7l-tizen-linux-gnueabi/4.9.2/include/c++/) + add_compile_options(-I$ENV{ROOTFS_DIR}/usr/lib/gcc/armv7l-tizen-linux-gnueabi/4.9.2/include/c++/armv7l-tizen-linux-gnueabi) + add_compile_options(-Wno-deprecated-declarations) # compile-time option + add_compile_options(-D__extern_always_inline=inline) + set(TIZEN_TOOLCHAIN "armv7l-tizen-linux-gnueabi/4.9.2") + set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -B${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}") + set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -L${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}") +else() + # TODO: this setting assumes debian armel rootfs + include_directories(SYSTEM ${CROSS_ROOTFS}/usr/include/c++/4.9 ${CROSS_ROOTFS}/usr/include/${TOOLCHAIN}/c++/4.9 ) + set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -B${CROSS_ROOTFS}/usr/lib/gcc/${TOOLCHAIN}/4.9") + set(CROSS_LINK_FLAGS "${CROSS_LINK_FLAGS} -L${CROSS_ROOTFS}/usr/lib/gcc/${TOOLCHAIN}/4.9") +endif() + +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE) +set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE) +set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${CROSS_LINK_FLAGS}" CACHE STRING "" FORCE) + +set(CMAKE_FIND_ROOT_PATH "${CROSS_ROOTFS}") +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + +set(LLVM_ARM_DIR "$ENV{LLVM_ARM_HOME}") +if(LLVM_ARM_DIR) + set(WITH_LLDB_LIBS "${LLVM_ARM_DIR}/lib/" CACHE STRING "") + set(WITH_LLDB_INCLUDES "${LLVM_ARM_DIR}/include" CACHE STRING "") + set(LLDB_H "${WITH_LLDB_INCLUDES}" CACHE STRING "") + set(LLDB "${LLVM_ARM_DIR}/lib/liblldb.so" CACHE STRING "") +else() + set(WITH_LLDB_LIBS "${CROSS_ROOTFS}/usr/lib/${TOOLCHAIN}" CACHE STRING "") + set(WITH_LLDB_INCLUDES "${CROSS_ROOTFS}/usr/lib/llvm-3.6/include" CACHE STRING "") +endif() diff --git a/cross/armel/tryrun.cmake b/cross/armel/tryrun.cmake new file mode 100644 index 0000000..26a30e5 --- /dev/null +++ b/cross/armel/tryrun.cmake @@ -0,0 +1,123 @@ +SET( REALPATH_SUPPORTS_NONEXISTENT_FILES_EXITCODE + 1 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( SSCANF_SUPPORT_ll_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( SSCANF_CANNOT_HANDLE_MISSING_EXPONENT_EXITCODE + 1 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_LARGE_SNPRINTF_SUPPORT_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_SCHED_GET_PRIORITY_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_WORKING_GETTIMEOFDAY_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_WORKING_CLOCK_GETTIME_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_CLOCK_MONOTONIC_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_MMAP_DEV_ZERO_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( ONE_SHARED_MAPPING_PER_FILEREGION_PER_PROCESS_EXITCODE + 1 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( PTHREAD_CREATE_MODIFIES_ERRNO_EXITCODE + 1 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( SEM_INIT_MODIFIES_ERRNO_EXITCODE + 1 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_COMPATIBLE_ACOS_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_COMPATIBLE_ASIN_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_COMPATIBLE_POW_EXITCODE + 1 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_VALID_NEGATIVE_INF_POW_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_VALID_POSITIVE_INF_POW_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_COMPATIBLE_ATAN2_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_COMPATIBLE_LOG_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_COMPATIBLE_LOG10_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( UNGETC_NOT_RETURN_EOF_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAS_POSIX_SEMAPHORES_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( GETPWUID_R_SETS_ERRNO_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( FILE_OPS_CHECK_FERROR_OF_PREVIOUS_CALL_EXITCODE + 1 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_CLOCK_THREAD_CPUTIME_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_SCHED_GETCPU_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_CLOCK_MONOTONIC_COARSE_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_PROCFS_CTL_EXITCODE + 1 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_PROCFS_MAPS_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_PROCFS_STAT_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) + +SET( HAVE_PROCFS_STATUS_EXITCODE + 0 + CACHE STRING "Result from TRY_RUN" FORCE) diff --git a/cross/build-android-rootfs.sh b/cross/build-android-rootfs.sh new file mode 100755 index 0000000..7627294 --- /dev/null +++ b/cross/build-android-rootfs.sh @@ -0,0 +1,145 @@ +#!/usr/bin/env bash + +usage() +{ + echo "Creates a toolchain and sysroot used for cross-compiling for Android." + echo. + echo "Usage: $0 [BuildArch] [ApiLevel]" + echo. + echo "BuildArch is the target architecture of Android. Currently only arm64 is supported." + echo "ApiLevel is the target Android API level. API levels usually match to Android releases. See https://source.android.com/source/build-numbers.html" + echo. + echo "By default, the toolchain and sysroot will be generated in cross/android-rootfs/toolchain/[BuildArch]. You can change this behavior" + echo "by setting the TOOLCHAIN_DIR environment variable" + echo. + echo "By default, the NDK will be downloaded into the cross/android-rootfs/android-ndk-r13b directory. If you already have an NDK installation," + echo "you can set the NDK_DIR environment variable to have this script use that installation of the NDK." + exit 1 +} + +__ApiLevel=21 # The minimum platform for arm64 is API level 21 +__BuildArch=arm64 +__AndroidArch=aarch64 + +for i in "$@" + do + lowerI="$(echo $i | awk '{print tolower($0)}')" + case $lowerI in + -?|-h|--help) + usage + exit 1 + ;; + arm64) + __BuildArch=arm64 + __AndroidArch=aarch64 + ;; + *[0-9]) + __ApiLevel=$i + ;; + *) + __UnprocessedBuildArgs="$__UnprocessedBuildArgs $i" + ;; + esac +done + +# Obtain the location of the bash script to figure out where the root of the repo is. +__CrossDir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +__Android_Cross_Dir="$__CrossDir/android-rootfs" +__NDK_Dir="$__Android_Cross_Dir/android-ndk-r13b" +__libunwind_Dir="$__Android_Cross_Dir/libunwind" +__lldb_Dir="$__Android_Cross_Dir/lldb" +__ToolchainDir="$__Android_Cross_Dir/toolchain/$__BuildArch" + +if [[ -n "$TOOLCHAIN_DIR" ]]; then + __ToolchainDir=$TOOLCHAIN_DIR +fi + +if [[ -n "$NDK_DIR" ]]; then + __NDK_Dir=$NDK_DIR +fi + +echo "Target API level: $__ApiLevel" +echo "Target architecture: $__BuildArch" +echo "NDK location: $__NDK_Dir" +echo "Target Toolchain location: $__ToolchainDir" + +# Download the NDK if required +if [ ! -d $__NDK_Dir ]; then + echo Downloading the NDK into $__NDK_Dir + mkdir -p $__NDK_Dir + wget -nv -nc --show-progress https://dl.google.com/android/repository/android-ndk-r13b-linux-x86_64.zip -O $__Android_Cross_Dir/android-ndk-r13b-linux-x86_64.zip + unzip -q $__Android_Cross_Dir/android-ndk-r13b-linux-x86_64.zip -d $__Android_Cross_Dir +fi + +if [ ! -d $__lldb_Dir ]; then + mkdir -p $__lldb_Dir + echo Downloading LLDB into $__lldb_Dir + wget -nv -nc --show-progress https://dl.google.com/android/repository/lldb-2.3.3614996-linux-x86_64.zip -O $__Android_Cross_Dir/lldb-2.3.3614996-linux-x86_64.zip + unzip -q $__Android_Cross_Dir/lldb-2.3.3614996-linux-x86_64.zip -d $__lldb_Dir +fi + +# Create the RootFS for both arm64 as well as aarch +rm -rf $__Android_Cross_Dir/toolchain + +echo Generating the $__BuildArch toolchain +$__NDK_Dir/build/tools/make_standalone_toolchain.py --arch $__BuildArch --api $__ApiLevel --install-dir $__ToolchainDir + +# Install the required packages into the toolchain +rm -rf $__Android_Cross_Dir/deb/ +rm -rf $__Android_Cross_Dir/tmp + +mkdir -p $__Android_Cross_Dir/deb/ +mkdir -p $__Android_Cross_Dir/tmp/$arch/ +wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libicu_58.2_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libicu_58.2_$__AndroidArch.deb +wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libicu-dev_58.2_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libicu-dev_58.2_$__AndroidArch.deb +wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libuuid-dev_1.0.3_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libuuid-dev_1.0.3_$__AndroidArch.deb +wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libuuid_1.0.3_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libuuid_1.0.3_$__AndroidArch.deb +wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libandroid-glob-dev_0.3_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libandroid-glob-dev_0.3_$__AndroidArch.deb +wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libandroid-glob_0.3_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libandroid-glob_0.3_$__AndroidArch.deb +wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libandroid-support-dev_13.10_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libandroid-support-dev_13.10_$__AndroidArch.deb +wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libandroid-support_13.10_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libandroid-support_13.10_$__AndroidArch.deb +wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/liblzma-dev_5.2.3_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/liblzma-dev_5.2.3_$__AndroidArch.deb +wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/liblzma_5.2.3_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/liblzma_5.2.3_$__AndroidArch.deb +wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libcurl-dev_7.52.1_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libcurl-dev_7.52.1_$__AndroidArch.deb +wget -nv -nc http://termux.net/dists/stable/main/binary-$__AndroidArch/libcurl_7.52.1_$__AndroidArch.deb -O $__Android_Cross_Dir/deb/libcurl_7.52.1_$__AndroidArch.deb + +echo Unpacking Termux packages +dpkg -x $__Android_Cross_Dir/deb/libicu_58.2_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/ +dpkg -x $__Android_Cross_Dir/deb/libicu-dev_58.2_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/ +dpkg -x $__Android_Cross_Dir/deb/libuuid-dev_1.0.3_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/ +dpkg -x $__Android_Cross_Dir/deb/libuuid_1.0.3_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/ +dpkg -x $__Android_Cross_Dir/deb/libandroid-glob-dev_0.3_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/ +dpkg -x $__Android_Cross_Dir/deb/libandroid-glob_0.3_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/ +dpkg -x $__Android_Cross_Dir/deb/libandroid-support-dev_13.10_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/ +dpkg -x $__Android_Cross_Dir/deb/libandroid-support_13.10_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/ +dpkg -x $__Android_Cross_Dir/deb/liblzma-dev_5.2.3_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/ +dpkg -x $__Android_Cross_Dir/deb/liblzma_5.2.3_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/ +dpkg -x $__Android_Cross_Dir/deb/libcurl-dev_7.52.1_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/ +dpkg -x $__Android_Cross_Dir/deb/libcurl_7.52.1_$__AndroidArch.deb $__Android_Cross_Dir/tmp/$__AndroidArch/ + +cp -R $__Android_Cross_Dir/tmp/$__AndroidArch/data/data/com.termux/files/usr/* $__ToolchainDir/sysroot/usr/ + +# Prepare libunwind +if [ ! -d $__libunwind_Dir ]; then + git clone https://android.googlesource.com/platform/external/libunwind/ $__libunwind_Dir +fi + +cd $__libunwind_Dir +git checkout android-6.0.0_r26 +git checkout -- . +git clean -xfd + +# libunwind is available on Android, but not included in the NDK. +echo Building libunwind +autoreconf --force -v --install 2> /dev/null +./configure CC=$__ToolchainDir/bin/$__AndroidArch-linux-android-clang --with-sysroot=$__ToolchainDir/sysroot --host=x86_64 --target=$__AndroidArch-eabi --disable-coredump --prefix=$__ToolchainDir/sysroot/usr 2> /dev/null +make > /dev/null +make install > /dev/null + +# This header file is missing +cp include/libunwind.h $__ToolchainDir/sysroot/usr/include/ + +echo Now run: +echo CONFIG_DIR=\`realpath cross/android/arm64\` ROOTFS_DIR=\`realpath $__ToolchainDir/sysroot\` ./build.sh cross arm64 skipgenerateversion skipmscorlib cmakeargs -DENABLE_LLDBPLUGIN=0 + diff --git a/cross/build-rootfs.sh b/cross/build-rootfs.sh index cfa1a66..72ccc56 100755 --- a/cross/build-rootfs.sh +++ b/cross/build-rootfs.sh @@ -2,15 +2,16 @@ usage() { - echo "Usage: $0 [BuildArch] [UbuntuCodeName] [lldbx.y]" - echo "BuildArch can be: arm(default), arm-softfp, arm64, x86" - echo "UbuntuCodeName - optional, Code name for Ubuntu, can be: trusty(default), vivid, wily, xenial. If BuildArch is arm-softfp, UbuntuCodeName is ignored." + echo "Usage: $0 [BuildArch] [LinuxCodeName] [lldbx.y] [--skipunmount]" + echo "BuildArch can be: arm(default), armel, arm64, x86" + echo "LinuxCodeName - optional, Code name for Linux, can be: trusty(default), vivid, wily, xenial. If BuildArch is armel, LinuxCodeName is jessie(default) or tizen." echo "lldbx.y - optional, LLDB version, can be: lldb3.6(default), lldb3.8" + echo "--skipunmount - optional, will skip the unmount of rootfs folder." exit 1 } -__UbuntuCodeName=trusty +__LinuxCodeName=trusty __CrossDir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) __InitialDir=$PWD @@ -20,6 +21,7 @@ __UbuntuRepo="http://ports.ubuntu.com/" __UbuntuPackagesBase="build-essential libunwind8-dev gettext symlinks liblttng-ust-dev libicu-dev" __LLDB_Package="lldb-3.6-dev" __UnprocessedBuildArgs= +__SkipUnmount=0 for i in "$@" do @@ -37,11 +39,11 @@ for i in "$@" __BuildArch=arm64 __UbuntuArch=arm64 ;; - arm-softfp) - __BuildArch=arm-softfp + armel) + __BuildArch=armel __UbuntuArch=armel __UbuntuRepo="http://ftp.debian.org/debian/" - __UbuntuCodeName=jessie + __LinuxCodeName=jessie ;; x86) __BuildArch=x86 @@ -55,30 +57,47 @@ for i in "$@" __LLDB_Package="lldb-3.8-dev" ;; vivid) - if [ "$__UbuntuCodeName" != "jessie" ]; then - __UbuntuCodeName=vivid + if [ "$__LinuxCodeName" != "jessie" ]; then + __LinuxCodeName=vivid fi ;; wily) - if [ "$__UbuntuCodeName" != "jessie" ]; then - __UbuntuCodeName=wily + if [ "$__LinuxCodeName" != "jessie" ]; then + __LinuxCodeName=wily fi ;; xenial) - if [ "$__UbuntuCodeName" != "jessie" ]; then - __UbuntuCodeName=xenial + if [ "$__LinuxCodeName" != "jessie" ]; then + __LinuxCodeName=xenial fi ;; jessie) - __UbuntuCodeName=jessie + __LinuxCodeName=jessie __UbuntuRepo="http://ftp.debian.org/debian/" ;; + tizen) + if [ "$__BuildArch" != "armel" ]; then + echo "Tizen is available only for armel." + usage; + exit 1; + fi + __LinuxCodeName= + __UbuntuRepo= + __Tizen=tizen + ;; + --skipunmount) + __SkipUnmount=1 + ;; *) __UnprocessedBuildArgs="$__UnprocessedBuildArgs $i" ;; esac done +if [ "$__BuildArch" == "armel" ]; then + __LLDB_Package="lldb-3.5-dev" +fi + __RootfsDir="$__CrossDir/rootfs/$__BuildArch" __UbuntuPackages="$__UbuntuPackagesBase $__LLDB_Package" @@ -87,14 +106,27 @@ if [[ -n "$ROOTFS_DIR" ]]; then fi if [ -d "$__RootfsDir" ]; then - umount $__RootfsDir/* + if [ $__SkipUnmount == 0 ]; then + umount $__RootfsDir/* + fi rm -rf $__RootfsDir fi -qemu-debootstrap --arch $__UbuntuArch $__UbuntuCodeName $__RootfsDir $__UbuntuRepo -cp $__CrossDir/$__BuildArch/sources.list.$__UbuntuCodeName $__RootfsDir/etc/apt/sources.list -chroot $__RootfsDir apt-get update -chroot $__RootfsDir apt-get -f -y install -chroot $__RootfsDir apt-get -y install $__UbuntuPackages -chroot $__RootfsDir symlinks -cr /usr -umount $__RootfsDir/* +if [[ -n $__LinuxCodeName ]]; then + qemu-debootstrap --arch $__UbuntuArch $__LinuxCodeName $__RootfsDir $__UbuntuRepo + cp $__CrossDir/$__BuildArch/sources.list.$__LinuxCodeName $__RootfsDir/etc/apt/sources.list + chroot $__RootfsDir apt-get update + chroot $__RootfsDir apt-get -f -y install + chroot $__RootfsDir apt-get -y install $__UbuntuPackages + chroot $__RootfsDir symlinks -cr /usr + + if [ $__SkipUnmount == 0 ]; then + umount $__RootfsDir/* + fi +elif [ "$__Tizen" == "tizen" ]; then + ROOTFS_DIR=$__RootfsDir $__CrossDir/$__BuildArch/tizen-build-rootfs.sh +else + echo "Unsupported target platform." + usage; + exit 1 +fi diff --git a/crosscomponents.cmake b/crosscomponents.cmake index 7575570..96c477e 100644 --- a/crosscomponents.cmake +++ b/crosscomponents.cmake @@ -1,10 +1,15 @@ add_definitions(-DCROSS_COMPILE) -set (CLR_CROSS_COMPONENTS_LIST - crossgen - mscordaccore - mscordbi - sos - clrjit - protojit -) +set (CLR_CROSS_COMPONENTS_LIST + crossgen + clrjit + protojit +) + +if(NOT CLR_CMAKE_PLATFORM_LINUX) + list (APPEND CLR_CROSS_COMPONENTS_LIST + mscordaccore + mscordbi + sos + ) +endif() diff --git a/dependencies.props b/dependencies.props index 3094a3d..36e16b0 100644 --- a/dependencies.props +++ b/dependencies.props @@ -1,18 +1,18 @@ - 014ac653f680703f5b9a7bf3ebc99b1a5b912c7b - 014ac653f680703f5b9a7bf3ebc99b1a5b912c7b + 9bdceed2f3a12a62e66c5202a13f3220ccc10f89 + 9bdceed2f3a12a62e66c5202a13f3220ccc10f89 - beta-24820-02 + beta-25007-01 - 1.2.0-beta-24820-02 + 2.0.0-beta-25007-01 2.2.0-beta2-build3300 diff --git a/dir.props b/dir.props index b9bf081..f2983e4 100644 --- a/dir.props +++ b/dir.props @@ -83,9 +83,8 @@ $(RootBinDir)obj\ - $(BaseIntermediateOutputPath)\$(BuildOS).$(BuildArch).$(BuildType) - $(BaseIntermediateOutputPath)\$(BuildOS).$(BuildArch).$(BuildType) - $(BinDir) + $(BaseIntermediateOutputPath)$(BuildOS).$(BuildArch).$(BuildType)\ + $(BinDir) @@ -153,7 +152,7 @@ https://dot.net - 1.2.0 + 2.0.0 false @@ -170,6 +169,8 @@ win7 win8 win10 + + true true diff --git a/dirs.proj b/dirs.proj deleted file mode 100644 index 1e64e43..0000000 --- a/dirs.proj +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - FX;PK - - - - - true - true - true - true - - - - - - - - - - diff --git a/functions.cmake b/functions.cmake index e1a9abb..7d69dcb 100644 --- a/functions.cmake +++ b/functions.cmake @@ -2,7 +2,7 @@ function(clr_unknown_arch) if (WIN32) message(FATAL_ERROR "Only AMD64, ARM64, ARM and I386 are supported") elseif(CLR_CROSS_COMPONENTS_BUILD) - message(FATAL_ERROR "Only AMD64, I386 are supported for cross-architecture component") + message(FATAL_ERROR "Only AMD64, I386 host are supported for linux cross-architecture component") else() message(FATAL_ERROR "Only AMD64, ARM64 and ARM are supported") endif() @@ -222,7 +222,7 @@ endfunction() function(verify_dependencies targetName errorMessage) # We don't need to verify dependencies on OSX, since missing dependencies # result in link error over there. - if (NOT CLR_CMAKE_PLATFORM_DARWIN) + if (NOT CLR_CMAKE_PLATFORM_DARWIN AND NOT CLR_CMAKE_PLATFORM_ANDROID) add_custom_command( TARGET ${targetName} POST_BUILD diff --git a/init-tools.cmd b/init-tools.cmd index cb1aad4..9e41480 100644 --- a/init-tools.cmd +++ b/init-tools.cmd @@ -45,7 +45,7 @@ if exist "%DOTNET_CMD%" goto :afterdotnetrestore echo Installing dotnet cli... if NOT exist "%DOTNET_PATH%" mkdir "%DOTNET_PATH%" if [%PROCESSOR_ARCHITECTURE%]==[x86] (set DOTNET_ZIP_NAME=dotnet-dev-win-x86.%DOTNET_VERSION%.zip) else (set DOTNET_ZIP_NAME=dotnet-dev-win-x64.%DOTNET_VERSION%.zip) -set DOTNET_REMOTE_PATH=https://dotnetcli.blob.core.windows.net/dotnet/Sdk/%DOTNET_VERSION%/%DOTNET_ZIP_NAME% +set DOTNET_REMOTE_PATH=https://dotnetcli.blob.core.windows.net/dotnet/preview/Binaries/%DOTNET_VERSION%/%DOTNET_ZIP_NAME% set DOTNET_LOCAL_PATH=%DOTNET_PATH%%DOTNET_ZIP_NAME% echo Installing '%DOTNET_REMOTE_PATH%' to '%DOTNET_LOCAL_PATH%' >> "%INIT_TOOLS_LOG%" powershell -NoProfile -ExecutionPolicy unrestricted -Command "$retryCount = 0; $success = $false; do { try { (New-Object Net.WebClient).DownloadFile('%DOTNET_REMOTE_PATH%', '%DOTNET_LOCAL_PATH%'); $success = $true; } catch { if ($retryCount -ge 6) { throw; } else { $retryCount++; Start-Sleep -Seconds (5 * $retryCount); } } } while ($success -eq $false); Add-Type -Assembly 'System.IO.Compression.FileSystem' -ErrorVariable AddTypeErrors; if ($AddTypeErrors.Count -eq 0) { [System.IO.Compression.ZipFile]::ExtractToDirectory('%DOTNET_LOCAL_PATH%', '%DOTNET_PATH%') } else { (New-Object -com shell.application).namespace('%DOTNET_PATH%').CopyHere((new-object -com shell.application).namespace('%DOTNET_LOCAL_PATH%').Items(),16) }" >> "%INIT_TOOLS_LOG%" diff --git a/init-tools.log b/init-tools.log deleted file mode 100644 index 7a96daa..0000000 --- a/init-tools.log +++ /dev/null @@ -1,539 +0,0 @@ -Running: /home/jyoung/git/dotnet/coreclr-1.0.0/init-tools.sh -Installing 'https://dotnetcli.blob.core.windows.net/dotnet/Sdk/1.0.0-preview3-003223/dotnet-dev-ubuntu-x64.1.0.0-preview3-003223.tar.gz' to '/home/jyoung/git/dotnet/coreclr-1.0.0/Tools/dotnetcli/dotnet.tar' -Running: /home/jyoung/git/dotnet/coreclr-1.0.0/Tools/dotnetcli/dotnet restore "/home/jyoung/git/dotnet/coreclr-1.0.0/Tools/1.0.27-prerelease-01008-01/project.json" --no-cache --packages /home/jyoung/git/dotnet/coreclr-1.0.0/packages --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json -log : Restoring packages for /home/jyoung/git/dotnet/coreclr-1.0.0/Tools/1.0.27-prerelease-01008-01/project.json... -log : Installing Microsoft.DotNet.BuildTools 1.0.27-prerelease-01008-01. -log : Writing lock file to disk. Path: /home/jyoung/git/dotnet/coreclr-1.0.0/Tools/1.0.27-prerelease-01008-01/project.lock.json -log : /home/jyoung/git/dotnet/coreclr-1.0.0/Tools/1.0.27-prerelease-01008-01/project.json -log : Restore completed in 4349ms. -Running: /home/jyoung/git/dotnet/coreclr-1.0.0/packages/Microsoft.DotNet.BuildTools/1.0.27-prerelease-01008-01/lib/init-tools.sh /home/jyoung/git/dotnet/coreclr-1.0.0 /home/jyoung/git/dotnet/coreclr-1.0.0/Tools/dotnetcli/dotnet /home/jyoung/git/dotnet/coreclr-1.0.0/Tools -Running: /home/jyoung/git/dotnet/coreclr-1.0.0/Tools/dotnetcli/dotnet restore "/home/jyoung/git/dotnet/coreclr-1.0.0/packages/Microsoft.DotNet.BuildTools/1.0.27-prerelease-01008-01/lib/tool-runtime/project.json" --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://api.nuget.org/v3/index.json -log : Restoring packages for /home/jyoung/git/dotnet/coreclr-1.0.0/packages/Microsoft.DotNet.BuildTools/1.0.27-prerelease-01008-01/lib/tool-runtime/project.json... -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: MSBuild from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> MSBuild -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: MSBuild from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> MSBuild -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: MSBuild from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> MSBuild -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: MSBuild from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> MSBuild -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: MSBuild from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> MSBuild -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: MSBuild from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> MSBuild -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: MSBuild from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> MSBuild -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: MSBuild from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> MSBuild -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: MSBuild from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> MSBuild -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: MSBuild from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> MSBuild -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: MSBuild from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> MSBuild -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: MSBuild from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> MSBuild -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: MSBuild from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> MSBuild -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Utilities.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Utilities.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Utilities.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Tasks.Core from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Tasks.Core -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Tasks.Core (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: MSBuild from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Targets (>= 0.1.0-preview-00024-160610) -> MSBuild -warn : tool-runtime (>= 1.0.0) -> MSBuild (>= 0.1.0-preview-00024-160610) -warn : Detected package downgrade: Microsoft.Build.Framework from 0.0.0 to 0.1.0-preview-00024-160610 -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build (>= 0.1.0-preview-00024-160610) -> Microsoft.Build.Framework -warn : tool-runtime (>= 1.0.0) -> Microsoft.Build.Framework (>= 0.1.0-preview-00024-160610) -log : Writing lock file to disk. Path: /home/jyoung/git/dotnet/coreclr-1.0.0/packages/Microsoft.DotNet.BuildTools/1.0.27-prerelease-01008-01/lib/tool-runtime/project.lock.json -log : /home/jyoung/git/dotnet/coreclr-1.0.0/packages/Microsoft.DotNet.BuildTools/1.0.27-prerelease-01008-01/lib/tool-runtime/project.json -log : Restore completed in 3868ms. -Running: /home/jyoung/git/dotnet/coreclr-1.0.0/Tools/dotnetcli/dotnet publish "/home/jyoung/git/dotnet/coreclr-1.0.0/packages/Microsoft.DotNet.BuildTools/1.0.27-prerelease-01008-01/lib/tool-runtime/project.json" -f netcoreapp1.0 -r ubuntu.14.04-x64 -o /home/jyoung/git/dotnet/coreclr-1.0.0/Tools -Publishing tool-runtime for .NETCoreApp,Version=v1.0/ubuntu.14.04-x64 -Project tool-runtime (.NETCoreApp,Version=v1.0) will be compiled because expected outputs are missing -Compiling tool-runtime for .NETCoreApp,Version=v1.0 - -Compilation succeeded. - 0 Warning(s) - 0 Error(s) - -Time elapsed 00:00:00.8157822 - - -publish: Published to /home/jyoung/git/dotnet/coreclr-1.0.0/Tools -Published 1/1 projects successfully -Running: "/home/jyoung/git/dotnet/coreclr-1.0.0/Tools/dotnetcli/dotnet" restore "/home/jyoung/git/dotnet/coreclr-1.0.0/Tools/generated/project.json" --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://api.nuget.org/v3/index.json --packages "/home/jyoung/git/dotnet/coreclr-1.0.0/Tools/." -log : Restoring packages for /home/jyoung/git/dotnet/coreclr-1.0.0/Tools/generated/project.json... -log : Installing Microsoft.Portable.Targets 0.1.1-dev. -log : Installing MicroBuild.Core 0.2.0. -log : Writing lock file to disk. Path: /home/jyoung/git/dotnet/coreclr-1.0.0/Tools/generated/project.lock.json -log : /home/jyoung/git/dotnet/coreclr-1.0.0/Tools/generated/project.json -log : Restore completed in 1274ms. diff --git a/init-tools.sh b/init-tools.sh index cc8a5d8..9a83bda 100755 --- a/init-tools.sh +++ b/init-tools.sh @@ -107,14 +107,13 @@ if [ ! -e $__INIT_TOOLS_DONE_MARKER ]; then cp -r $DOTNET_TOOL_DIR/* $__DOTNET_PATH else echo "Installing dotnet cli..." - __DOTNET_LOCATION="https://dotnetcli.blob.core.windows.net/dotnet/Sdk/${__DOTNET_TOOLS_VERSION}/${__DOTNET_PKG}.${__DOTNET_TOOLS_VERSION}.tar.gz" + __DOTNET_LOCATION="https://dotnetcli.blob.core.windows.net/dotnet/preview/Binaries/${__DOTNET_TOOLS_VERSION}/${__DOTNET_PKG}.${__DOTNET_TOOLS_VERSION}.tar.gz" # curl has HTTPS CA trust-issues less often than wget, so lets try that first. echo "Installing '${__DOTNET_LOCATION}' to '$__DOTNET_PATH/dotnet.tar'" >> $__init_tools_log - which curl > /dev/null 2> /dev/null - if [ $? -ne 0 ]; then - wget -q -O $__DOTNET_PATH/dotnet.tar ${__DOTNET_LOCATION} - else + if command -v curl > /dev/null; then curl --retry 10 -sSL --create-dirs -o $__DOTNET_PATH/dotnet.tar ${__DOTNET_LOCATION} + else + wget -q -O $__DOTNET_PATH/dotnet.tar ${__DOTNET_LOCATION} fi cd $__DOTNET_PATH tar -xf $__DOTNET_PATH/dotnet.tar diff --git a/netci.groovy b/netci.groovy index b1ffaf8..176c436 100755 --- a/netci.groovy +++ b/netci.groovy @@ -22,7 +22,6 @@ def static getOSGroup(def os) { 'Windows_NT':'Windows_NT', 'FreeBSD':'FreeBSD', 'CentOS7.1': 'Linux', - 'OpenSUSE13.2': 'Linux', 'OpenSUSE42.1': 'Linux', 'LinuxARMEmulator': 'Linux'] def osGroup = osGroupMap.get(os, null) @@ -45,7 +44,6 @@ class Constants { 'Windows_NT_BuildOnly', 'FreeBSD', 'CentOS7.1', - 'OpenSUSE13.2', 'OpenSUSE42.1', 'RHEL7.2', 'LinuxARMEmulator', @@ -53,7 +51,7 @@ class Constants { 'Ubuntu16.10', 'Fedora23'] - def static crossList = ['Ubuntu', 'OSX', 'CentOS7.1', 'RHEL7.2', 'Debian8.4', 'OpenSUSE13.2'] + def static crossList = ['Ubuntu', 'OSX', 'CentOS7.1', 'RHEL7.2', 'Debian8.4'] // This is a set of JIT stress modes combined with the set of variables that // need to be set to actually enable that stress mode. The key of the map is the stress mode and @@ -234,8 +232,8 @@ def static getStressModeDisplayName(def scenario) { } // Generates the string for creating a file that sets environment variables -// that makes it possible to run stress modes. Writes the script to a file called -// SetStressModes.[sh/cmd] +// that makes it possible to run stress modes. Writes the script to the file +// specified by the stepScriptLocation parameter. def static genStressModeScriptStep(def os, def stressModeName, def stressModeVars, def stepScriptLocation) { def stepScript = '' if (os == 'Windows_NT') { @@ -248,6 +246,7 @@ def static genStressModeScriptStep(def os, def stressModeName, def stressModeVar // Set the Timeout stepScript += "set __TestTimeout=${timeout}\r\n" + stepScript += "echo. > ${stepScriptLocation}\r\n" stressModeVars.each{ k, v -> // Write out what we are writing to the script file stepScript += "echo Setting ${k}=${v}\r\n" @@ -269,28 +268,6 @@ def static genStressModeScriptStep(def os, def stressModeName, def stressModeVar return stepScript } -// Corefx doesn't have a support to pass stress mode environment variables. This function -// generates commands to set or export environment variables -def static getStressModeEnvSetCmd(def os, def stressModeName) { - def envVars = Constants.jitStressModeScenarios[stressModeName] - def setEnvVars = '' - if (os == 'Windows_NT') { - envVars.each{ VarName, Value -> - if (VarName != '') { - setEnvVars += "set ${VarName}=${Value}\n" - } - } - } - else { - envVars.each{ VarName, Value -> - if (VarName != '') { - setEnvVars += "export ${VarName}=${Value}\n" - } - } - } - return setEnvVars -} - // Calculates the name of the build job based on some typical parameters. // def static getJobName(def configuration, def architecture, def os, def scenario, def isBuildOnly, def isLinuxEmulatorBuild = false) { @@ -345,271 +322,276 @@ def static getJobName(def configuration, def architecture, def os, def scenario, return baseName + suffix } -// ************************** -// Define the basic inner loop builds for PR and commit. This is basically just the set -// of coreclr builds over linux/osx/freebsd/windows and debug/release/checked. In addition, the windows -// builds will do a couple extra steps. -// ************************** - -// Adds a trigger for the PR build if one is needed. If isFlowJob is true, then this is the -// flow job that rolls up the build and test for non-windows OS's. // If the job is a windows build only job, -// it's just used for internal builds -// If you add a job with a trigger phrase, please add that phrase to coreclr/Documentation/project-docs/ci-trigger-phrases.md -def static addTriggers(def job, def branch, def isPR, def architecture, def os, def configuration, def scenario, def isFlowJob, def isWindowsBuildOnlyJob, def isLinuxEmulatorBuild) { - if (isWindowsBuildOnlyJob) { - return - } - - def bidailyCrossList = ['RHEL7.2', 'Debian8.4', 'OpenSUSE13.2'] - // Non pull request builds. - if (!isPR) { - // Check scenario. - switch (scenario) { - case 'default': - switch (architecture) { - case 'x64': - case 'x86': - case 'x86compatjit': - case 'x86lb': - if (isFlowJob || os == 'Windows_NT' || !(os in Constants.crossList)) { - Utilities.addGithubPushTrigger(job) - } - break - case 'arm': +def static addNonPRTriggers(def job, def branch, def isPR, def architecture, def os, def configuration, def scenario, def isFlowJob, def isWindowsBuildOnlyJob, def isLinuxEmulatorBuild, def bidailyCrossList) { + // Check scenario. + switch (scenario) { + case 'default': + switch (architecture) { + case 'x64': + case 'x86': + case 'x86compatjit': + case 'x86lb': + if (isFlowJob || os == 'Windows_NT' || !(os in Constants.crossList)) { Utilities.addGithubPushTrigger(job) - break - case 'arm64': - if (os == 'Windows_NT') { - Utilities.addGithubPushTrigger(job) - // TODO: Add once external email sending is available again - // addEmailPublisher(job, 'dotnetonarm64@microsoft.com') - } - break - default: - println("Unknown architecture: ${architecture}"); - assert false - break - } - break - case 'pri1': - // Pri one gets a push trigger, and only for release - if (architecture == 'x64') { - if (configuration == 'Release') { - // We expect release jobs to be Windows, or in the cross list - assert (os == 'Windows_NT') || (os in Constants.crossList) - if (!os in bidailyCrossList) { - if (isFlowJob || os == 'Windows_NT') { - Utilities.addGithubPushTrigger(job) - } - } - else { - if (isFlowJob) { - Utilities.addPeriodicTrigger(job, 'H H/12 * * *') - } - } } - } - break - case 'r2r': - //r2r jobs that aren't pri1 can only be triggered by phrase - break - case 'pri1r2r': - assert !(os in bidailyCrossList) - //pri1 r2r gets a push trigger for checked/release - if (configuration == 'Checked' || configuration == 'Release') { + break + case 'arm': + Utilities.addGithubPushTrigger(job) + break + case 'arm64': + if (os == 'Windows_NT') { + Utilities.addGithubPushTrigger(job) + // TODO: Add once external email sending is available again + // addEmailPublisher(job, 'dotnetonarm64@microsoft.com') + } + break + default: + println("Unknown architecture: ${architecture}"); + assert false + break + } + break + case 'pri1': + // Pri one gets a push trigger, and only for release + if (architecture == 'x64') { + if (configuration == 'Release') { + // We expect release jobs to be Windows, or in the cross list assert (os == 'Windows_NT') || (os in Constants.crossList) - if (architecture == 'x64' && os != 'OSX') { - //Flow jobs should be Windows, Ubuntu, OSX, or CentOS + if (!os in bidailyCrossList) { if (isFlowJob || os == 'Windows_NT') { Utilities.addGithubPushTrigger(job) } - // OSX pri1r2r jobs should only run every 12 hours, not daily. - } else if (architecture == 'x64' && os == 'OSX'){ + } + else { if (isFlowJob) { Utilities.addPeriodicTrigger(job, 'H H/12 * * *') } } - // For x86, only add per-commit jobs for Windows - else if (architecture == 'x86' || architecture == 'x86compatjit' || architecture == 'x86lb') { - if (os == 'Windows_NT') { - Utilities.addGithubPushTrigger(job) - } - } - // arm64 pri1r2r jobs should only run every 12 hours. - else if (architecture == 'arm64') { - if (os == 'Windows_NT') { - Utilities.addPeriodicTrigger(job, 'H H/12 * * *') - // TODO: Add once external email sending is available again - // addEmailPublisher(job, 'dotnetonarm64@microsoft.com') - } - } } - break - case 'r2r_jitstress1': - case 'r2r_jitstress2': - case 'r2r_jitstressregs1': - case 'r2r_jitstressregs2': - case 'r2r_jitstressregs3': - case 'r2r_jitstressregs4': - case 'r2r_jitstressregs8': - case 'r2r_jitstressregsx10': - case 'r2r_jitstressregsx80': - case 'r2r_jitminopts': - case 'r2r_jitforcerelocs': - case 'gcstress15_pri1r2r': - assert !(os in bidailyCrossList) - - // GCStress=C is currently not supported on OS X - if (os == 'OSX' && isGCStressRelatedTesting(scenario)) { - break - } - - //GC Stress 15 pri1 r2r gets a push trigger for checked/release - if (configuration == 'Checked' || configuration == 'Release') { - assert (os == 'Windows_NT') || (os in Constants.crossList) - if (architecture == 'x64') { - //Flow jobs should be Windows, Ubuntu, OSX, or CentOS - if (isFlowJob || os == 'Windows_NT') { - // Add a weekly periodic trigger - Utilities.addPeriodicTrigger(job, 'H H * * 3,6') // some time every Wednesday and Saturday - } + } + break + case 'r2r': + //r2r jobs that aren't pri1 can only be triggered by phrase + break + case 'pri1r2r': + assert !(os in bidailyCrossList) + //pri1 r2r gets a push trigger for checked/release + if (configuration == 'Checked' || configuration == 'Release') { + assert (os == 'Windows_NT') || (os in Constants.crossList) + if (architecture == 'x64' && os != 'OSX') { + //Flow jobs should be Windows, Ubuntu, OSX, or CentOS + if (isFlowJob || os == 'Windows_NT') { + Utilities.addGithubPushTrigger(job) } - // For x86, only add per-commit jobs for Windows - else if (architecture == 'x86' || architecture == 'x86compatjit' || architecture == 'x86lb') { - if (os == 'Windows_NT') { - Utilities.addPeriodicTrigger(job, 'H H * * 3,6') // some time every Wednesday and Saturday - } + // OSX pri1r2r jobs should only run every 12 hours, not daily. + } else if (architecture == 'x64' && os == 'OSX'){ + if (isFlowJob) { + Utilities.addPeriodicTrigger(job, 'H H/12 * * *') } } - break - case 'longgc': - assert (os == 'Ubuntu' || os == 'Windows_NT' || os == 'OSX') - assert configuration == 'Release' - assert architecture == 'x64' - Utilities.addPeriodicTrigger(job, '@daily') - // TODO: Add once external email sending is available again - // addEmailPublisher(job, 'dotnetgctests@microsoft.com') - break - case 'gcsimulator': - assert (os == 'Ubuntu' || os == 'Windows_NT' || os == 'OSX') - assert configuration == 'Release' - assert architecture == 'x64' - Utilities.addPeriodicTrigger(job, 'H H * * 3,6') // some time every Wednesday and Saturday - // TODO: Add once external email sending is available again - // addEmailPublisher(job, 'dotnetgctests@microsoft.com') - break - case 'standalone_gc': - assert (os == 'Windows_NT') - assert (configuration == 'Release' || configuration == 'Checked') - // TODO: Add once external email sending is available again - // addEmailPublisher(job, 'dotnetgctests@microsoft.com') - Utilities.addPeriodicTrigger(job, '@weekly') - break - case 'ilrt': - assert !(os in bidailyCrossList) - // ILASM/ILDASM roundtrip one gets a daily build, and only for release - if (architecture == 'x64' && configuration == 'Release') { - // We don't expect to see a job generated except in these scenarios - assert (os == 'Windows_NT') || (os in Constants.crossList) - if (isFlowJob || os == 'Windows_NT') { - Utilities.addPeriodicTrigger(job, '@daily') + // For x86, only add per-commit jobs for Windows + else if (architecture == 'x86' || architecture == 'x86compatjit' || architecture == 'x86lb') { + if (os == 'Windows_NT') { + Utilities.addGithubPushTrigger(job) } } - break - case 'jitdiff': - assert (os == 'Ubuntu' || os == 'Windows_NT' || os == 'OSX') - assert configuration == 'Checked' - assert (architecture == 'x64' || architecture == 'x86') - Utilities.addGithubPushTrigger(job) - break - case 'coverage': - assert (os == 'Ubuntu' || os == 'Windows_NT') - assert configuration == 'Release' - assert architecture == 'x64' - Utilities.addPeriodicTrigger(job, '@weekly') - break - case 'formatting': - assert (os == 'Windows_NT' || os == "Ubuntu") - assert architecture == 'x64' - Utilities.addGithubPushTrigger(job) - break - case 'jitstressregs1': - case 'jitstressregs2': - case 'jitstressregs3': - case 'jitstressregs4': - case 'jitstressregs8': - case 'jitstressregs0x10': - case 'jitstressregs0x80': - case 'minopts': - case 'forcerelocs': - case 'jitstress1': - case 'jitstress2': - case 'jitstress2_jitstressregs1': - case 'jitstress2_jitstressregs2': - case 'jitstress2_jitstressregs3': - case 'jitstress2_jitstressregs4': - case 'jitstress2_jitstressregs8': - case 'jitstress2_jitstressregs0x10': - case 'jitstress2_jitstressregs0x80': - case 'corefx_baseline': - case 'corefx_minopts': - case 'corefx_jitstress1': - case 'corefx_jitstress2': - case 'corefx_jitstressregs1': - case 'corefx_jitstressregs2': - case 'corefx_jitstressregs3': - case 'corefx_jitstressregs4': - case 'corefx_jitstressregs8': - case 'corefx_jitstressregs0x10': - case 'corefx_jitstressregs0x80': - case 'zapdisable': - if (os != 'CentOS7.1' && !(os in bidailyCrossList)) { - assert (os == 'Windows_NT') || (os in Constants.crossList) - Utilities.addPeriodicTrigger(job, '@daily') - } - break - case 'heapverify1': - case 'gcstress0x3': - if (os != 'CentOS7.1' && !(os in bidailyCrossList)) { - assert (os == 'Windows_NT') || (os in Constants.crossList) - if (architecture == 'arm64') { - assert (os == 'Windows_NT') - Utilities.addPeriodicTrigger(job, '@daily') + // arm64 pri1r2r jobs should only run every 12 hours. + else if (architecture == 'arm64') { + if (os == 'Windows_NT') { + Utilities.addPeriodicTrigger(job, 'H H/12 * * *') // TODO: Add once external email sending is available again // addEmailPublisher(job, 'dotnetonarm64@microsoft.com') } - else { - Utilities.addPeriodicTrigger(job, '@weekly') - } } + } + break + case 'r2r_jitstress1': + case 'r2r_jitstress2': + case 'r2r_jitstressregs1': + case 'r2r_jitstressregs2': + case 'r2r_jitstressregs3': + case 'r2r_jitstressregs4': + case 'r2r_jitstressregs8': + case 'r2r_jitstressregsx10': + case 'r2r_jitstressregsx80': + case 'r2r_jitminopts': + case 'r2r_jitforcerelocs': + case 'gcstress15_pri1r2r': + assert !(os in bidailyCrossList) + + // GCStress=C is currently not supported on OS X + if (os == 'OSX' && isGCStressRelatedTesting(scenario)) { break - case 'gcstress0xc': - case 'gcstress0xc_zapdisable': - case 'gcstress0xc_zapdisable_jitstress2': - case 'gcstress0xc_zapdisable_heapverify1': - case 'gcstress0xc_jitstress1': - case 'gcstress0xc_jitstress2': - case 'gcstress0xc_minopts_heapverify1': - // GCStress=C is currently not supported on OS X - if (os != 'CentOS7.1' && os != 'OSX' && !(os in bidailyCrossList)) { - assert (os == 'Windows_NT') || (os in Constants.crossList) - if (architecture == 'arm64') { - assert (os == 'Windows_NT') - // TODO: Enable a periodic trigger after tests are updated. - // Utilities.addPeriodicTrigger(job, '@daily') - // TODO: Add once external email sending is available again - // addEmailPublisher(job, 'dotnetonarm64@microsoft.com') + } + + //GC Stress 15 pri1 r2r gets a push trigger for checked/release + if (configuration == 'Checked' || configuration == 'Release') { + assert (os == 'Windows_NT') || (os in Constants.crossList) + if (architecture == 'x64') { + //Flow jobs should be Windows, Ubuntu, OSX, or CentOS + if (isFlowJob || os == 'Windows_NT') { + // Add a weekly periodic trigger + Utilities.addPeriodicTrigger(job, 'H H * * 3,6') // some time every Wednesday and Saturday } - else { - Utilities.addPeriodicTrigger(job, '@weekly') + } + // For x86, only add per-commit jobs for Windows + else if (architecture == 'x86' || architecture == 'x86compatjit' || architecture == 'x86lb') { + if (os == 'Windows_NT') { + Utilities.addPeriodicTrigger(job, 'H H * * 3,6') // some time every Wednesday and Saturday } } - break - default: - println("Unknown scenario: ${scenario}"); - assert false - break + } + break + case 'longgc': + assert (os == 'Ubuntu' || os == 'Windows_NT' || os == 'OSX') + assert configuration == 'Release' + assert architecture == 'x64' + Utilities.addPeriodicTrigger(job, '@daily') + // TODO: Add once external email sending is available again + // addEmailPublisher(job, 'dotnetgctests@microsoft.com') + break + case 'gcsimulator': + assert (os == 'Ubuntu' || os == 'Windows_NT' || os == 'OSX') + assert configuration == 'Release' + assert architecture == 'x64' + Utilities.addPeriodicTrigger(job, 'H H * * 3,6') // some time every Wednesday and Saturday + // TODO: Add once external email sending is available again + // addEmailPublisher(job, 'dotnetgctests@microsoft.com') + break + case 'standalone_gc': + assert (os == 'Ubuntu' || os == 'Windows_NT' || os == 'OSX') + assert (configuration == 'Release' || configuration == 'Checked') + // TODO: Add once external email sending is available again + // addEmailPublisher(job, 'dotnetgctests@microsoft.com') + Utilities.addPeriodicTrigger(job, '@weekly') + break + case 'ilrt': + assert !(os in bidailyCrossList) + // ILASM/ILDASM roundtrip one gets a daily build, and only for release + if (architecture == 'x64' && configuration == 'Release') { + // We don't expect to see a job generated except in these scenarios + assert (os == 'Windows_NT') || (os in Constants.crossList) + if (isFlowJob || os == 'Windows_NT') { + Utilities.addPeriodicTrigger(job, '@daily') + } + } + break + case 'jitdiff': + assert (os == 'Ubuntu' || os == 'Windows_NT' || os == 'OSX') + assert configuration == 'Checked' + assert (architecture == 'x64' || architecture == 'x86') + Utilities.addGithubPushTrigger(job) + break + case 'coverage': + assert (os == 'Ubuntu' || os == 'Windows_NT') + assert configuration == 'Release' + assert architecture == 'x64' + Utilities.addPeriodicTrigger(job, '@weekly') + break + case 'formatting': + assert (os == 'Windows_NT' || os == "Ubuntu") + assert architecture == 'x64' + Utilities.addGithubPushTrigger(job) + break + case 'jitstressregs1': + case 'jitstressregs2': + case 'jitstressregs3': + case 'jitstressregs4': + case 'jitstressregs8': + case 'jitstressregs0x10': + case 'jitstressregs0x80': + case 'minopts': + case 'forcerelocs': + case 'jitstress1': + case 'jitstress2': + case 'jitstress2_jitstressregs1': + case 'jitstress2_jitstressregs2': + case 'jitstress2_jitstressregs3': + case 'jitstress2_jitstressregs4': + case 'jitstress2_jitstressregs8': + case 'jitstress2_jitstressregs0x10': + case 'jitstress2_jitstressregs0x80': + case 'corefx_baseline': + case 'corefx_minopts': + case 'corefx_jitstress1': + case 'corefx_jitstress2': + case 'corefx_jitstressregs1': + case 'corefx_jitstressregs2': + case 'corefx_jitstressregs3': + case 'corefx_jitstressregs4': + case 'corefx_jitstressregs8': + case 'corefx_jitstressregs0x10': + case 'corefx_jitstressregs0x80': + case 'zapdisable': + if (os != 'CentOS7.1' && !(os in bidailyCrossList)) { + assert (os == 'Windows_NT') || (os in Constants.crossList) + Utilities.addPeriodicTrigger(job, '@daily') } + break + case 'heapverify1': + case 'gcstress0x3': + if (os != 'CentOS7.1' && !(os in bidailyCrossList)) { + assert (os == 'Windows_NT') || (os in Constants.crossList) + if (architecture == 'arm64') { + assert (os == 'Windows_NT') + Utilities.addPeriodicTrigger(job, '@daily') + // TODO: Add once external email sending is available again + // addEmailPublisher(job, 'dotnetonarm64@microsoft.com') + } + else { + Utilities.addPeriodicTrigger(job, '@weekly') + } + } + break + case 'gcstress0xc': + case 'gcstress0xc_zapdisable': + case 'gcstress0xc_zapdisable_jitstress2': + case 'gcstress0xc_zapdisable_heapverify1': + case 'gcstress0xc_jitstress1': + case 'gcstress0xc_jitstress2': + case 'gcstress0xc_minopts_heapverify1': + // GCStress=C is currently not supported on OS X + if (os != 'CentOS7.1' && os != 'OSX' && !(os in bidailyCrossList)) { + assert (os == 'Windows_NT') || (os in Constants.crossList) + if (architecture == 'arm64') { + assert (os == 'Windows_NT') + // TODO: Enable a periodic trigger after tests are updated. + // Utilities.addPeriodicTrigger(job, '@daily') + // TODO: Add once external email sending is available again + // addEmailPublisher(job, 'dotnetonarm64@microsoft.com') + } + else { + Utilities.addPeriodicTrigger(job, '@weekly') + } + } + break + default: + println("Unknown scenario: ${scenario}"); + assert false + break + } + return +} + +// ************************** +// Define the basic inner loop builds for PR and commit. This is basically just the set +// of coreclr builds over linux/osx/freebsd/windows and debug/release/checked. In addition, the windows +// builds will do a couple extra steps. +// ************************** + +// Adds a trigger for the PR build if one is needed. If isFlowJob is true, then this is the +// flow job that rolls up the build and test for non-windows OS's. // If the job is a windows build only job, +// it's just used for internal builds +// If you add a job with a trigger phrase, please add that phrase to coreclr/Documentation/project-docs/ci-trigger-phrases.md +def static addTriggers(def job, def branch, def isPR, def architecture, def os, def configuration, def scenario, def isFlowJob, def isWindowsBuildOnlyJob, def isLinuxEmulatorBuild) { + if (isWindowsBuildOnlyJob) { + return + } + + def bidailyCrossList = ['RHEL7.2', 'Debian8.4'] + // Non pull request builds. + if (!isPR) { + addNonPRTriggers(job, branch, isPR, architecture, os, configuration, scenario, isFlowJob, isWindowsBuildOnlyJob, isLinuxEmulatorBuild, bidailyCrossList) return } // Pull request builds. Generally these fall into two categories: default triggers and on-demand triggers @@ -635,7 +617,6 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, switch (os) { // OpenSUSE, Debian & RedHat get trigger phrases for pri 0 build, and pri 1 build & test - case 'OpenSUSE13.2': case 'Debian8.4': case 'RHEL7.2': if (scenario == 'default') { @@ -852,7 +833,7 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, case 'corefx_jitstressregs8': case 'corefx_jitstressregs0x10': case 'corefx_jitstressregs0x80': - def displayName = 'CoreFx' + getStressModeDisplayName(scenario) + def displayName = 'CoreFx ' + getStressModeDisplayName(scenario) assert (os == 'Windows_NT') || (os in Constants.crossList) Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Build and Test (Jit - ${displayName})", "(?i).*test\\W+${os}\\W+${scenario}.*") @@ -1128,7 +1109,7 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, assert (os == 'Windows_NT') || (os in Constants.crossList) Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Build and Test (Jit - ${displayStr})", "(?i).*test\\W+${os}\\W+${scenario}.*") - break + break case 'corefx_baseline': case 'corefx_minopts': case 'corefx_jitstress1': @@ -1202,13 +1183,46 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, contextString += " and Test" } - def arm64Users = ['erozenfeld', 'kyulee1', 'pgavlin', 'russellhadley', 'swaroop-sridhar', 'JosephTremoulet', 'jashook', 'RussKeldorph', 'gkhanna79', 'briansull', 'cmckinsey', 'jkotas', 'ramarag', 'markwilkie', 'rahku', 'tzwlai', 'weshaggard'] + def arm64Users = [ + 'adiaaida', + 'AndyAyersMS', + 'briansull', + 'BruceForstall', + 'CarolEidt', + 'cmckinsey', + 'erozenfeld', + 'jashook', + 'JosephTremoulet', + 'pgavlin', + 'pkukol', + 'russellhadley', + 'RussKeldorph', + 'sandreenko', + 'sivarv', + 'swaroop-sridhar', + 'gkhanna79', + 'jkotas', + 'markwilkie', + 'rahku', + 'ramarag', + 'tzwlai', + 'weshaggard' + ] + switch (os) { case 'Windows_NT': switch (scenario) { case 'default': - Utilities.addPrivateGithubPRTriggerForBranch(job, branch, contextString, - "(?i).*test\\W+${os}\\W+${architecture}\\W+${configuration}.*", null, arm64Users) + // For now only run Debug jobs on PR Trigger. + if (configuration != 'Debug') { + Utilities.addPrivateGithubPRTriggerForBranch(job, branch, contextString, + "(?i).*test\\W+${os}\\W+${architecture}\\W+${configuration}.*", null, arm64Users) + } + else { + // Add "Checked Build And Test" and "Debug Build" to the above users' PRs since many of them + // are at higher risk of ARM64-breaking changes. + Utilities.addDefaultPrivateGithubPRTriggerForBranch(job, branch, contextString, null, arm64Users) + } break case 'pri1r2r': case 'gcstress0x3': @@ -1232,6 +1246,10 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, if (configuration == 'Checked') { Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Build and Test") } + else if (configuration == 'Release') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Build and Test", + "(?i).*test\\W+${os}\\W+${architecture}\\W+${configuration}.*") + } break case 'pri1': if (configuration == 'Release') { @@ -1411,6 +1429,22 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Build and Test (Jit - ${displayStr})", "(?i).*test\\W+${os}\\W+${architecture}\\W+${configuration}\\W+${scenario}.*") break + case 'corefx_baseline': + case 'corefx_minopts': + case 'corefx_jitstress1': + case 'corefx_jitstress2': + case 'corefx_jitstressregs1': + case 'corefx_jitstressregs2': + case 'corefx_jitstressregs3': + case 'corefx_jitstressregs4': + case 'corefx_jitstressregs8': + case 'corefx_jitstressregs0x10': + case 'corefx_jitstressregs0x80': + def displayName = 'CoreFx ' + getStressModeDisplayName(scenario) + assert (os == 'Windows_NT') || (os in Constants.crossList) + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Build and Test (Jit - ${displayName})", + "(?i).*test\\W+${os}\\W+${scenario}.*") + break default: println("Unknown scenario: ${os} ${architecture} ${scenario}"); assert false @@ -1537,6 +1571,11 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") } break + case 'standalone_gc': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Standalone GC", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break case 'minopts': Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build and Test (Jit - MinOpts)", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") @@ -1602,6 +1641,22 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build and Test (Jit - ${displayStr})", "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") break + case 'corefx_baseline': + case 'corefx_minopts': + case 'corefx_jitstress1': + case 'corefx_jitstress2': + case 'corefx_jitstressregs1': + case 'corefx_jitstressregs2': + case 'corefx_jitstressregs3': + case 'corefx_jitstressregs4': + case 'corefx_jitstressregs8': + case 'corefx_jitstressregs0x10': + case 'corefx_jitstressregs0x80': + def displayName = 'CoreFx ' + getStressModeDisplayName(scenario) + assert (os == 'Windows_NT') + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${arch} ${jit} ${configuration} Build and Test (Jit - ${displayName})", + "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") + break default: println("Unknown scenario: ${os} ${arch} ${jit} ${scenario}"); assert false @@ -1724,6 +1779,11 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, "(?i).*test\\W+${os}\\W+${arch}\\W+${jit}\\W+${configuration}\\W+${scenario}.*") } break + case 'standalone_gc': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Standalone GC", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break default: println("Unknown scenario: ${os} ${arch} ${jit} ${scenario}"); assert false @@ -1738,6 +1798,402 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, } } +def static calculateBuildCommands(def newJob, def scenario, def branch, def isPR, def architecture, def configuration, def os, def enableCorefxTesting, def isBuildOnly, def isLinuxEmulatorBuild) { + def buildCommands = []; + def osGroup = getOSGroup(os) + def lowerConfiguration = configuration.toLowerCase() + + // Calculate the build steps, archival, and xunit results + switch (os) { + case 'Windows_NT': // editor brace matching: { + switch (architecture) { + case 'x64': + case 'x86': + case 'x86compatjit': + case 'x86lb': + def arch = architecture + def buildOpts = '' + + // We need to explicitly run build-test.cmd with Exclude for x86compatjit and x86lb, so skip tests. + if (architecture == 'x86compatjit') { + arch = 'x86' + buildOpts = 'compatjitcrossgen skiptests' + } + else if (architecture == 'x86lb') { + arch = 'x86' + buildOpts = 'legacyjitcrossgen skiptests' + } + + if (Constants.jitStressModeScenarios.containsKey(scenario) || + scenario == 'default' || + scenario == 'r2r' || + scenario == 'jitdiff' || + Constants.r2rJitStressScenarios.indexOf(scenario) != -1) { + buildOpts += enableCorefxTesting ? ' skiptests' : '' + buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${arch} ${buildOpts}" + } + + // For Pri 1 tests, we must shorten the output test binary path names. + // if __TestIntermediateDir is already set, build-test.cmd will + // output test binaries to that directory. If it is not set, the + // binaries are sent to a default directory whose name is about + // 35 characters long. + + else if (scenario == 'pri1' || scenario == 'pri1r2r' || scenario == 'gcstress15_pri1r2r'|| scenario == 'coverage') { + buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${arch} ${buildOpts} -priority=1" + } + else if (scenario == 'ilrt') { + // First do the build with skiptests and then build the tests with ilasm roundtrip + buildCommands += "build.cmd ${lowerConfiguration} ${arch} ${buildOpts} skiptests" + buildCommands += "set __TestIntermediateDir=int&&build-test.cmd ${lowerConfiguration} ${arch} -ilasmroundtrip" + } + else if (isLongGc(scenario)) { + buildCommands += "build.cmd ${lowerConfiguration} ${arch} ${buildOpts} skiptests" + buildCommands += "set __TestIntermediateDir=int&&build-test.cmd ${lowerConfiguration} ${arch}" + } + else if (scenario == 'standalone_gc') { + buildCommands += "build.cmd ${lowerConfiguration} ${arch} ${buildOpts} buildstandalonegc" + } + else if (scenario == 'formatting') { + buildCommands += "python -u tests\\scripts\\format.py -c %WORKSPACE% -o Windows_NT -a ${arch}" + Utilities.addArchival(newJob, "format.patch", "", true, false) + break + } + else { + println("Unknown scenario: ${scenario}") + assert false + } + + // If we are running a stress mode, we should write out the set of key + // value env pairs to a file at this point and then we'll pass that to runtest.cmd + + if (!isBuildOnly) { + //If this is a crossgen build, pass 'crossgen' to runtest.cmd + def crossgenStr = '' + def runcrossgentestsStr = '' + def runjitstressStr = '' + def runjitstressregsStr = '' + def runjitmioptsStr = '' + def runjitforcerelocsStr = '' + def runjitdisasmStr = '' + def gcstressStr = '' + def runtestArguments = '' + def gcTestArguments = '' + + if (scenario == 'r2r' || + scenario == 'pri1r2r' || + scenario == 'gcstress15_pri1r2r' || + Constants.r2rJitStressScenarios.indexOf(scenario) != -1) { + crossgenStr = 'crossgen' + runcrossgentestsStr = 'runcrossgentests' + + if (scenario == 'r2r_jitstress1'){ + runjitstressStr = 'jitstress 1' + } + else if (scenario == 'r2r_jitstress2') { + runjitstressStr = 'jitstress 2' + } + else if (scenario == 'r2r_jitstressregs1'){ + runjitstressregsStr = 'jitstressregs 1' + } + else if (scenario == 'r2r_jitstressregs2') { + runjitstressregsStr = 'jitstressregs 2' + } + else if (scenario == 'r2r_jitstressregs3') { + runjitstressregsStr = 'jitstressregs 3' + } + else if (scenario == 'r2r_jitstressregs4') { + runjitstressregsStr = 'jitstressregs 4' + } + else if (scenario == 'r2r_jitstressregs8') { + runjitstressregsStr = 'jitstressregs 8' + } + else if (scenario == 'r2r_jitstressregsx10') { + runjitstressregsStr = 'jitstressregs x10' + } + else if (scenario == 'r2r_jitstressregsx80') { + runjitstressregsStr = 'jitstressregs x80' + } + else if (scenario == 'r2r_jitminopts') { + runjitmioptsStr = 'jitminopts' + } + else if (scenario == 'r2r_jitforcerelocs') { + runjitforcerelocsStr = 'jitforcerelocs' + } + } + if (scenario == 'gcstress15_pri1r2r') + { + gcstressStr = 'gcstresslevel 0xF' + } + + if (scenario == 'jitdiff') + { + runjitdisasmStr = 'jitdisasm crossgen' + } + + if (isLongGc(scenario)) { + gcTestArguments = "${scenario} sequential" + } + + runtestArguments = "${lowerConfiguration} ${arch} ${gcstressStr} ${crossgenStr} ${runcrossgentestsStr} ${runjitstressStr} ${runjitstressregsStr} ${runjitmioptsStr} ${runjitforcerelocsStr} ${runjitdisasmStr} ${gcTestArguments}" + + if (Constants.jitStressModeScenarios.containsKey(scenario)) { + def stepScriptLocation = "%WORKSPACE%\\SetStressModes.bat" + buildCommands += genStressModeScriptStep(os, scenario, Constants.jitStressModeScenarios[scenario], stepScriptLocation) + + if (enableCorefxTesting) { + def workspaceRelativeFxRoot = "_/fx" + def absoluteFxRoot = "%WORKSPACE%\\_\\fx" + + buildCommands += "python %WORKSPACE%\\tests\\scripts\\run-corefx-tests.py -arch ${arch} -build_type ${configuration} -fx_root ${absoluteFxRoot} -fx_branch ${branch} -env_script ${stepScriptLocation}" + + setTestJobTimeOut(newJob, scenario) + + // Archive and process (only) the test results + Utilities.addArchival(newJob, "${workspaceRelativeFxRoot}/bin/**/testResults.xml") + Utilities.addXUnitDotNETResults(newJob, "${workspaceRelativeFxRoot}/bin/**/testResults.xml") + } + else { + buildCommands += "%WORKSPACE%\\tests\\runtest.cmd ${runtestArguments} TestEnv ${stepScriptLocation}" + } + } + else if (architecture == 'x64' || architecture == 'x86') { + buildCommands += "tests\\runtest.cmd ${runtestArguments}" + } + else if (architecture == 'x86compatjit') { + def testEnvLocation = "%WORKSPACE%\\tests\\x86\\compatjit_x86_testenv.cmd" + def excludeLocation = "%WORKSPACE%\\tests\\x86_legacy_backend_issues.targets" + buildCommands += "build-test.cmd ${runtestArguments} Exclude ${excludeLocation}" + buildCommands += "tests\\runtest.cmd ${runtestArguments} TestEnv ${testEnvLocation}" + } + else if (architecture == 'x86lb') { + def testEnvLocation = "%WORKSPACE%\\tests\\x86\\legacyjit_x86_testenv.cmd" + def excludeLocation = "%WORKSPACE%\\tests\\x86_legacy_backend_issues.targets" + buildCommands += "build-test.cmd ${runtestArguments} Exclude ${excludeLocation}" + buildCommands += "tests\\runtest.cmd ${runtestArguments} TestEnv ${testEnvLocation}" + } + } + + if (!enableCorefxTesting) { + // Run the rest of the build + // Build the mscorlib for the other OS's + buildCommands += "build.cmd ${lowerConfiguration} ${arch} linuxmscorlib" + buildCommands += "build.cmd ${lowerConfiguration} ${arch} freebsdmscorlib" + buildCommands += "build.cmd ${lowerConfiguration} ${arch} osxmscorlib" + + // Zip up the tests directory so that we don't use so much space/time copying + // 10s of thousands of files around. + buildCommands += "powershell -Command \"Add-Type -Assembly 'System.IO.Compression.FileSystem'; [System.IO.Compression.ZipFile]::CreateFromDirectory('.\\bin\\tests\\${osGroup}.${arch}.${configuration}', '.\\bin\\tests\\tests.zip')\""; + + if (!Constants.jitStressModeScenarios.containsKey(scenario)) { + // For windows, pull full test results and test drops for x86/x64. + // No need to pull for stress mode scenarios (downstream builds use the default scenario) + Utilities.addArchival(newJob, "bin/Product/**,bin/tests/tests.zip") + } + + if (scenario == 'jitdiff') { + // retrive jit-dasm output for base commit, and run jit-diff + if (!isBuildOnly) { + // if this is a build only job, we want to keep the default (build) artifacts for the flow job + Utilities.addArchival(newJob, "bin/tests/${osGroup}.${arch}.${configuration}/dasm/**") + } + } + + if (!isBuildOnly) { + if (architecture == 'x64' || !isPR) { + Utilities.addXUnitDotNETResults(newJob, 'bin/**/TestRun*.xml') + } + setTestJobTimeOut(newJob, scenario) + } + } + break + case 'arm': + assert (scenario == 'default') + + // Set time out + setTestJobTimeOut(newJob, scenario) + + if ( lowerConfiguration == "debug" ) { + // For Debug builds, we will do a P1 test build + buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${architecture} -priority=1" + } + else { + buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${architecture}" + } + // Add archival. + Utilities.addArchival(newJob, "bin/Product/**") + break + case 'arm64': + assert (scenario == 'default') || (scenario == 'pri1r2r') || (scenario == 'gcstress0x3') || (scenario == 'gcstress0xc') + // Set time out + setTestJobTimeOut(newJob, scenario) + + // Debug runs take too long to run. So build job only. + if (lowerConfiguration == "debug") { + buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${architecture} toolset_dir C:\\ats2" + } + else { + buildCommands += "set __TestIntermediateDir=int&&build.cmd skiptests ${lowerConfiguration} ${architecture} toolset_dir C:\\ats2" + // Test build and run are launched together. + buildCommands += "python tests\\scripts\\arm64_post_build.py -repo_root %WORKSPACE% -arch ${architecture} -build_type ${lowerConfiguration} -scenario ${scenario} -key_location C:\\tools\\key.txt" + //Utilities.addXUnitDotNETResults(newJob, 'bin/tests/testResults.xml') + } + + // Add archival. + Utilities.addArchival(newJob, "bin/Product/**") + break + default: + println("Unknown architecture: ${architecture}"); + assert false + break + } + break + // editor brace matching: } + case 'Ubuntu': + case 'Ubuntu16.04': + case 'Ubuntu16.10': + case 'Debian8.4': + case 'OSX': + case 'FreeBSD': + case 'CentOS7.1': + case 'RHEL7.2': + case 'OpenSUSE42.1': + case 'Fedora23': // editor brace matching: { + switch (architecture) { + case 'x64': + case 'x86': + case 'x86compatjit': + case 'x86lb': + def arch = architecture + if (architecture == 'x86compatjit' || architecture == 'x86lb') { + arch = 'x86' + } + + if (scenario == 'formatting') { + buildCommands += "python tests/scripts/format.py -c \${WORKSPACE} -o Linux -a ${arch}" + Utilities.addArchival(newJob, "format.patch", "", true, false) + break + } + + def standaloneGc = '' + if (scenario == 'standalone_gc') { + standaloneGc = 'buildstandalonegc' + } + + if (!enableCorefxTesting) { + // We run pal tests on all OS but generate mscorlib (and thus, nuget packages) + // only on supported OS platforms. + if (os == 'FreeBSD') + { + buildCommands += "./build.sh skipmscorlib verbose ${lowerConfiguration} ${arch} ${standaloneGc}" + } + else + { + def bootstrapRid = Utilities.getBoostrapPublishRid(os) + def bootstrapRidEnv = bootstrapRid != null ? "__PUBLISH_RID=${bootstrapRid} " : '' + buildCommands += "${bootstrapRidEnv}./build.sh verbose ${lowerConfiguration} ${arch} ${standaloneGc}" + } + buildCommands += "src/pal/tests/palsuite/runpaltests.sh \${WORKSPACE}/bin/obj/${osGroup}.${arch}.${configuration} \${WORKSPACE}/bin/paltestout" + + // Set time out + setTestJobTimeOut(newJob, scenario) + // Basic archiving of the build + Utilities.addArchival(newJob, "bin/Product/**,bin/obj/*/tests/**/*.dylib,bin/obj/*/tests/**/*.so") + // And pal tests + Utilities.addXUnitDotNETResults(newJob, '**/pal_tests.xml') + } + else { + // Corefx stress testing + assert os == 'Ubuntu' + assert architecture == 'x64' + assert lowerConfiguration == 'checked' + assert Constants.jitStressModeScenarios.containsKey(scenario) + + // Build coreclr + buildCommands += "./build.sh verbose ${lowerConfiguration} ${architecture}" + + def scriptFileName = "\$WORKSPACE/set_stress_test_env.sh" + buildCommands += genStressModeScriptStep(os, scenario, Constants.jitStressModeScenarios[scenario], scriptFileName) + + // Build and text corefx + def workspaceRelativeFxRoot = "_/fx" + def absoluteFxRoot = "\$WORKSPACE/${workspaceRelativeFxRoot}" + + buildCommands += "python \$WORKSPACE/tests/scripts/run-corefx-tests.py -arch ${arch} -build_type ${configuration} -fx_root ${absoluteFxRoot} -fx_branch ${branch} -env_script ${scriptFileName}" + + setTestJobTimeOut(newJob, scenario) + + // Archive and process (only) the test results + Utilities.addArchival(newJob, "${workspaceRelativeFxRoot}/bin/**/testResults.xml") + Utilities.addXUnitDotNETResults(newJob, "${workspaceRelativeFxRoot}/bin/**/testResults.xml") + } + break + case 'arm64': + // We don't run the cross build except on Ubuntu + assert os == 'Ubuntu' + + buildCommands += """echo \"Using rootfs in /opt/aarch64-linux-gnu-root\" + ROOTFS_DIR=/opt/aarch64-linux-gnu-root ./build.sh skipmscorlib arm64 cross verbose ${lowerConfiguration}""" + + // Basic archiving of the build, no pal tests + Utilities.addArchival(newJob, "bin/Product/**") + break + case 'arm': + // All builds for ARM architecture are run on Ubuntu currently + assert os == 'Ubuntu' + if (isLinuxEmulatorBuild == false) { + buildCommands += """echo \"Using rootfs in /opt/arm-liux-genueabihf-root\" + ROOTFS_DIR=/opt/arm-linux-genueabihf-root ./build.sh skipmscorlib arm cross verbose ${lowerConfiguration}""" + + // Basic archiving of the build, no pal tests + Utilities.addArchival(newJob, "bin/Product/**") + break + } + else { + // Make sure the build configuration is either of debug or release + assert ( lowerConfiguration == 'debug' ) || ( lowerConfiguration == 'release' ) + + // Setup variables to hold emulator folder path and the rootfs mount path + def armemul_path = '/opt/linux-arm-emulator' + def armrootfs_mountpath = '/opt/linux-arm-emulator-root' + + // Unzip the Windows test binaries first. Exit with 0 + buildCommands += "unzip -q -o ./bin/tests/tests.zip -d ./bin/tests/Windows_NT.x64.${configuration} || exit 0" + + // Unpack the corefx binaries + buildCommands += "tar -xf ./bin/build.tar.gz" + + // Call the ARM emulator build script to cross build and test using the ARM emulator rootfs + buildCommands += """./tests/scripts/arm32_ci_script.sh \\ + --emulatorPath=${armemul_path} \\ + --mountPath=${armrootfs_mountpath} \\ + --buildConfig=${lowerConfiguration} \\ + --testRootDir=./bin/tests/Windows_NT.x64.${configuration} \\ + --coreFxNativeBinDir=./bin/Linux.armel.${configuration} \\ + --coreFxBinDir=\"./bin/Linux.AnyCPU.${configuration};./bin/Unix.AnyCPU.${configuration};./bin/AnyOS.AnyCPU.${configuration}\" \\ + --testDirFile=./tests/testsRunningInsideARM.txt""" + + + // Basic archiving of the build + Utilities.addArchival(newJob, "bin/Product/**") + break + } + default: + println("Unknown architecture: ${architecture}"); + assert false + break + } + break + // editor brace matching: } + default: + println("Unknown os: ${os}"); + assert false + break + } // os + + return buildCommands +} + // Additional scenario which can alter behavior def combinedScenarios = Constants.basicScenarios + Constants.jitStressModeScenarios.keySet() @@ -1834,12 +2290,8 @@ combinedScenarios.each { scenario -> } break case 'x64': - // Everything implemented - break case 'x86': - if (enableCorefxTesting) { - return - } + // Everything implemented break case 'x86compatjit': case 'x86lb': @@ -1952,7 +2404,7 @@ combinedScenarios.each { scenario -> } break case 'standalone_gc': - if (os != 'Windows_NT') { + if (os != 'Windows_NT' && os != 'Ubuntu' && os != 'OSX') { return } @@ -2015,401 +2467,8 @@ combinedScenarios.each { scenario -> Utilities.standardJobSetup(newJob, project, isPR, "*/${branch}") addTriggers(newJob, branch, isPR, architecture, os, configuration, scenario, false, isBuildOnly, isLinuxEmulatorBuild) - def buildCommands = []; + def buildCommands = calculateBuildCommands(newJob, scenario, branch, isPR, architecture, configuration, os, enableCorefxTesting, isBuildOnly, isLinuxEmulatorBuild) def osGroup = getOSGroup(os) - - // Calculate the build steps, archival, and xunit results - switch (os) { - case 'Windows_NT': // editor brace matching: { - switch (architecture) { - case 'x64': - case 'x86': - case 'x86compatjit': - case 'x86lb': - def arch = architecture - def buildOpts = '' - if (architecture == 'x86compatjit') { - arch = 'x86' - buildOpts = 'compatjitcrossgen' - } - else if (architecture == 'x86lb') { - arch = 'x86' - buildOpts = 'legacyjitcrossgen' - } - - if (Constants.jitStressModeScenarios.containsKey(scenario) || - scenario == 'default' || - scenario == 'r2r' || - scenario == 'jitdiff' || - Constants.r2rJitStressScenarios.indexOf(scenario) != -1) { - buildOpts += enableCorefxTesting ? ' skiptests' : '' - buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${arch} ${buildOpts}" - } - - // For Pri 1 tests, we must shorten the output test binary path names. - // if __TestIntermediateDir is already set, build-test.cmd will - // output test binaries to that directory. If it is not set, the - // binaries are sent to a default directory whose name is about - // 35 characters long. - - else if (scenario == 'pri1' || scenario == 'pri1r2r' || scenario == 'gcstress15_pri1r2r'|| scenario == 'coverage') { - buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${arch} ${buildOpts} -priority=1" - } - else if (scenario == 'ilrt') { - // First do the build with skiptests and then build the tests with ilasm roundtrip - buildCommands += "build.cmd ${lowerConfiguration} ${arch} ${buildOpts} skiptests" - buildCommands += "set __TestIntermediateDir=int&&build-test.cmd ${lowerConfiguration} ${arch} -ilasmroundtrip" - } - else if (isLongGc(scenario)) { - buildCommands += "build.cmd ${lowerConfiguration} ${arch} ${buildOpts} skiptests" - buildCommands += "set __TestIntermediateDir=int&&build-test.cmd ${lowerConfiguration} ${arch}" - } - else if (scenario == 'standalone_gc') { - buildCommands += "build.cmd ${lowerConfiguration} ${arch} ${buildOpts} buildstandalonegc" - } - else if (scenario == 'formatting') { - buildCommands += "python -u tests\\scripts\\format.py -c %WORKSPACE% -o Windows_NT -a ${arch}" - Utilities.addArchival(newJob, "format.patch", "", true, false) - break - } - else { - println("Unknown scenario: ${scenario}") - assert false - } - - // If we are running a stress mode, we should write out the set of key - // value env pairs to a file at this point and then we'll pass that to runtest.cmd - - if (!isBuildOnly) { - //If this is a crossgen build, pass 'crossgen' to runtest.cmd - def crossgenStr = '' - def runcrossgentestsStr = '' - def runjitstressStr = '' - def runjitstressregsStr = '' - def runjitmioptsStr = '' - def runjitforcerelocsStr = '' - def runjitdisasmStr = '' - def gcstressStr = '' - def runtestArguments = '' - def gcTestArguments = '' - - if (scenario == 'r2r' || - scenario == 'pri1r2r' || - scenario == 'gcstress15_pri1r2r' || - Constants.r2rJitStressScenarios.indexOf(scenario) != -1) { - crossgenStr = 'crossgen' - runcrossgentestsStr = 'runcrossgentests' - - if (scenario == 'r2r_jitstress1'){ - runjitstressStr = 'jitstress 1' - } - else if (scenario == 'r2r_jitstress2') { - runjitstressStr = 'jitstress 2' - } - else if (scenario == 'r2r_jitstressregs1'){ - runjitstressregsStr = 'jitstressregs 1' - } - else if (scenario == 'r2r_jitstressregs2') { - runjitstressregsStr = 'jitstressregs 2' - } - else if (scenario == 'r2r_jitstressregs3') { - runjitstressregsStr = 'jitstressregs 3' - } - else if (scenario == 'r2r_jitstressregs4') { - runjitstressregsStr = 'jitstressregs 4' - } - else if (scenario == 'r2r_jitstressregs8') { - runjitstressregsStr = 'jitstressregs 8' - } - else if (scenario == 'r2r_jitstressregsx10') { - runjitstressregsStr = 'jitstressregs x10' - } - else if (scenario == 'r2r_jitstressregsx80') { - runjitstressregsStr = 'jitstressregs x80' - } - else if (scenario == 'r2r_jitminopts') { - runjitmioptsStr = 'jitminopts' - } - else if (scenario == 'r2r_jitforcerelocs') { - runjitforcerelocsStr = 'jitforcerelocs' - } - } - if (scenario == 'gcstress15_pri1r2r') - { - gcstressStr = 'gcstresslevel 0xF' - } - - if (scenario == 'jitdiff') - { - runjitdisasmStr = 'jitdisasm crossgen' - } - - if (isLongGc(scenario)) { - gcTestArguments = "${scenario} sequential" - } - - runtestArguments = "${lowerConfiguration} ${arch} ${gcstressStr} ${crossgenStr} ${runcrossgentestsStr} ${runjitstressStr} ${runjitstressregsStr} ${runjitmioptsStr} ${runjitforcerelocsStr} ${runjitdisasmStr} ${gcTestArguments}" - - if (Constants.jitStressModeScenarios.containsKey(scenario)) { - if (enableCorefxTesting) { - // Sync to corefx repo - // Move coreclr files to a subdirectory, %workspace%/clr. Otherwise, corefx build - // thinks that %workspace% is the project base directory. - buildCommands += "powershell new-item clr -type directory -force" - buildCommands += 'powershell foreach ($x in get-childitem -force) { if (\$x.name -ne \'clr\') { move-item $x clr }}' - buildCommands += "git clone -b $branch --single-branch https://github.com/dotnet/corefx fx" - - buildCommands += getStressModeEnvSetCmd(os, scenario); - - // Run corefx build and testing - buildCommands += "cd fx && call \"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\vcvarsall.bat\" x86 && Build.cmd -Release -- /p:BUILDTOOLS_OVERRIDE_RUNTIME=%WORKSPACE%\\clr\\bin\\Product\\Windows_NT.x64.Checked " - } - else { - def stepScriptLocation = "%WORKSPACE%\\bin\\tests\\SetStressModes.bat" - buildCommands += genStressModeScriptStep(os, scenario, Constants.jitStressModeScenarios[scenario], stepScriptLocation) - // Run tests with the - buildCommands += "tests\\runtest.cmd ${runtestArguments} TestEnv ${stepScriptLocation}" - } - } - else if (architecture == 'x64' || architecture == 'x86') { - buildCommands += "tests\\runtest.cmd ${runtestArguments}" - } - else if (architecture == 'x86compatjit') { - def testEnvLocation = "%WORKSPACE%\\tests\\x86\\compatjit_x86_testenv.cmd" - buildCommands += "tests\\runtest.cmd ${runtestArguments} Exclude0 x86_legacy_backend_issues.targets TestEnv ${testEnvLocation}" - } - else if (architecture == 'x86lb') { - def testEnvLocation = "%WORKSPACE%\\tests\\x86\\legacyjit_x86_testenv.cmd" - buildCommands += "tests\\runtest.cmd ${runtestArguments} Exclude0 x86_legacy_backend_issues.targets TestEnv ${testEnvLocation}" - } - } - - if (!enableCorefxTesting) { - // Run the rest of the build - // Build the mscorlib for the other OS's - buildCommands += "build.cmd ${lowerConfiguration} ${arch} linuxmscorlib" - buildCommands += "build.cmd ${lowerConfiguration} ${arch} freebsdmscorlib" - buildCommands += "build.cmd ${lowerConfiguration} ${arch} osxmscorlib" - - // Zip up the tests directory so that we don't use so much space/time copying - // 10s of thousands of files around. - buildCommands += "powershell -Command \"Add-Type -Assembly 'System.IO.Compression.FileSystem'; [System.IO.Compression.ZipFile]::CreateFromDirectory('.\\bin\\tests\\${osGroup}.${arch}.${configuration}', '.\\bin\\tests\\tests.zip')\""; - - if (!Constants.jitStressModeScenarios.containsKey(scenario) && scenario != 'jitdiff') { - // For windows, pull full test results and test drops for x86/x64. - // No need to pull for stress mode scenarios (downstream builds use the default scenario) - Utilities.addArchival(newJob, "bin/Product/**,bin/tests/tests.zip") - } - - if (scenario == 'jitdiff') { - // retrive jit-dasm output for base commit, and run jit-diff - if (!isBuildOnly) { - // if this is a build only job, we want to keep the default (build) artifacts for the flow job - Utilities.addArchival(newJob, "bin/tests/${osGroup}.${arch}.${configuration}/dasm/**") - } - } - - if (!isBuildOnly) { - if (architecture == 'x64' || !isPR) { - Utilities.addXUnitDotNETResults(newJob, 'bin/**/TestRun*.xml') - } - setTestJobTimeOut(newJob, scenario) - } - } - else { - // Archive only result xml files since corefx/bin/tests is very large around 10 GB. - // For windows, pull full test results and test drops for x86/x64 - Utilities.addArchival(newJob, "fx/bin/tests/**/testResults.xml") - - // Set timeout - setTestJobTimeOut(newJob, scenario) - - if (architecture == 'x64' || !isPR) { - Utilities.addXUnitDotNETResults(newJob, 'fx/bin/tests/**/testResults.xml') - } - } - - break - case 'arm': - assert (scenario == 'default') - - // Set time out - setTestJobTimeOut(newJob, scenario) - - if ( lowerConfiguration == "debug" ) { - // For Debug builds, we will do a P1 test build - buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${architecture} -priority=1" - } - else { - buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${architecture}" - } - // Add archival. - Utilities.addArchival(newJob, "bin/Product/**") - break - case 'arm64': - assert (scenario == 'default') || (scenario == 'pri1r2r') || (scenario == 'gcstress0x3') || (scenario == 'gcstress0xc') - // Set time out - setTestJobTimeOut(newJob, scenario) - - // Debug runs take too long to run. So build job only. - if (lowerConfiguration == "debug") { - buildCommands += "set __TestIntermediateDir=int&&build.cmd ${lowerConfiguration} ${architecture} toolset_dir C:\\ats2" - } - else { - buildCommands += "set __TestIntermediateDir=int&&build.cmd skiptests ${lowerConfiguration} ${architecture} toolset_dir C:\\ats2" - // Test build and run are launched together. - buildCommands += "python tests\\scripts\\arm64_post_build.py -repo_root %WORKSPACE% -arch ${architecture} -build_type ${lowerConfiguration} -scenario ${scenario} -key_location C:\\tools\\key.txt" - //Utilities.addXUnitDotNETResults(newJob, 'bin/tests/testResults.xml') - } - - // Add archival. - Utilities.addArchival(newJob, "bin/Product/**") - break - default: - println("Unknown architecture: ${architecture}"); - assert false - break - } - break - // editor brace matching: } - case 'Ubuntu': - case 'Ubuntu16.04': - case 'Ubuntu16.10': - case 'Debian8.4': - case 'OSX': - case 'FreeBSD': - case 'CentOS7.1': - case 'RHEL7.2': - case 'OpenSUSE13.2': - case 'OpenSUSE42.1': - case 'Fedora23': // editor brace matching: { - switch (architecture) { - case 'x64': - case 'x86': - case 'x86compatjit': - case 'x86lb': - def arch = architecture - if (architecture == 'x86compatjit' || architecture == 'x86lb') { - arch = 'x86' - } - - if (scenario == 'formatting') { - buildCommands += "python tests/scripts/format.py -c \${WORKSPACE} -o Linux -a ${arch}" - Utilities.addArchival(newJob, "format.patch", "", true, false) - break - } - - if (!enableCorefxTesting) { - // We run pal tests on all OS but generate mscorlib (and thus, nuget packages) - // only on supported OS platforms. - if ((os == 'FreeBSD') || (os == 'OpenSUSE13.2')) - { - buildCommands += "./build.sh skipmscorlib verbose ${lowerConfiguration} ${arch}" - } - else - { - def bootstrapRid = Utilities.getBoostrapPublishRid(os) - def bootstrapRidEnv = bootstrapRid != null ? "__PUBLISH_RID=${bootstrapRid} " : '' - buildCommands += "${bootstrapRidEnv}./build.sh verbose ${lowerConfiguration} ${arch}" - } - buildCommands += "src/pal/tests/palsuite/runpaltests.sh \${WORKSPACE}/bin/obj/${osGroup}.${arch}.${configuration} \${WORKSPACE}/bin/paltestout" - - // Set time out - setTestJobTimeOut(newJob, scenario) - // Basic archiving of the build - Utilities.addArchival(newJob, "bin/Product/**,bin/obj/*/tests/**/*.dylib,bin/obj/*/tests/**/*.so") - // And pal tests - Utilities.addXUnitDotNETResults(newJob, '**/pal_tests.xml') - } - else { - // Corefx stress testing - assert os == 'Ubuntu' - assert architecture == 'x64' - assert lowerConfiguration == 'checked' - - // Build coreclr and move it to clr directory - buildCommands += "./build.sh verbose ${lowerConfiguration} ${architecture}" - buildCommands += "rm -rf .clr; mkdir .clr; mv * .clr; mv .git .clr; mv .clr clr" - - // Get corefx - buildCommands += "git clone -b $branch --single-branch https://github.com/dotnet/corefx fx" - - // Set environment variable - def setEnvVar = getStressModeEnvSetCmd(os, scenario) - - // Build and text corefx - buildCommands += "rm -rf \$WORKSPACE/fx_home; mkdir \$WORKSPACE/fx_home" - buildCommands += setEnvVar - buildCommands += "cd fx; export HOME=\$WORKSPACE/fx_home; ./build.sh -Release -Outerloop -TestWithLocalLibraries -- /p:BUILDTOOLS_OVERRIDE_RUNTIME=\$WORKSPACE/clr/bin/Product/Linux.x64.Checked" - - // Archive and process test result - Utilities.addArchival(newJob, "fx/bin/tests/**/testResults.xml") - setTestJobTimeOut(newJob, scenario) - Utilities.addXUnitDotNETResults(newJob, 'fx/bin/tests/**/testResults.xml') - } - break - case 'arm64': - // We don't run the cross build except on Ubuntu - assert os == 'Ubuntu' - - buildCommands += """echo \"Using rootfs in /opt/aarch64-linux-gnu-root\" - ROOTFS_DIR=/opt/aarch64-linux-gnu-root ./build.sh skipmscorlib arm64 cross verbose ${lowerConfiguration}""" - - // Basic archiving of the build, no pal tests - Utilities.addArchival(newJob, "bin/Product/**") - break - case 'arm': - // All builds for ARM architecture are run on Ubuntu currently - assert os == 'Ubuntu' - if (isLinuxEmulatorBuild == false) { - buildCommands += """echo \"Using rootfs in /opt/arm-liux-genueabihf-root\" - ROOTFS_DIR=/opt/arm-linux-genueabihf-root ./build.sh skipmscorlib arm cross verbose ${lowerConfiguration}""" - - // Basic archiving of the build, no pal tests - Utilities.addArchival(newJob, "bin/Product/**") - break - } - else { - // Make sure the build configuration is either of debug or release - assert ( lowerConfiguration == 'debug' ) || ( lowerConfiguration == 'release' ) - - // Setup variables to hold emulator folder path and the rootfs mount path - def armemul_path = '/opt/linux-arm-emulator' - def armrootfs_mountpath = '/opt/linux-arm-emulator-root' - - // Unzip the Windows test binaries first. Exit with 0 - buildCommands += "unzip -q -o ./bin/tests/tests.zip -d ./bin/tests/Windows_NT.x64.${configuration} || exit 0" - - // Unpack the corefx binaries - buildCommands += "tar -xf ./bin/build.tar.gz" - - // Call the ARM emulator build script to cross build and test using the ARM emulator rootfs - buildCommands += """./tests/scripts/arm32_ci_script.sh \\ - --emulatorPath=${armemul_path} \\ - --mountPath=${armrootfs_mountpath} \\ - --buildConfig=${lowerConfiguration} \\ - --testRootDir=./bin/tests/Windows_NT.x64.${configuration} \\ - --coreFxNativeBinDir=./bin/Linux.arm-softfp.${configuration} \\ - --coreFxBinDir=\"./bin/Linux.AnyCPU.${configuration};./bin/Unix.AnyCPU.${configuration};./bin/AnyOS.AnyCPU.${configuration}\" \\ - --testDirFile=./tests/testsRunningInsideARM.txt""" - - - // Basic archiving of the build - Utilities.addArchival(newJob, "bin/Product/**") - break - } - default: - println("Unknown architecture: ${architecture}"); - assert false - break - } - break - // editor brace matching: } - default: - println("Unknown os: ${os}"); - assert false - break - } // os newJob.with { steps { @@ -2479,7 +2538,7 @@ combinedScenarios.each { scenario -> return } //Skip stress modes for these scenarios - if (os == 'RHEL7.2' || os == 'Debian8.4' || os == 'OpenSUSE13.2') { + if (os == 'RHEL7.2' || os == 'Debian8.4') { return } } @@ -2501,8 +2560,8 @@ combinedScenarios.each { scenario -> return } } - // For RedHat, Debian, and OpenSUSE, we only do Release pri1 builds. - else if (os == 'RHEL7.2' || os == 'Debian8.4' || os == 'OpenSUSE13.2') { + // For RedHat and Debian, we only do Release pri1 builds. + else if (os == 'RHEL7.2' || os == 'Debian8.4') { if (scenario != 'pri1') { return } @@ -2788,8 +2847,7 @@ combinedScenarios.each { scenario -> --testNativeBinDir=\"\$(pwd)/clr/bin/obj/${osGroup}.${architecture}.${configuration}/tests\" \\ --coreClrBinDir=\"\$(pwd)/clr/bin/Product/${osGroup}.${architecture}.${configuration}\" \\ --mscorlibDir=\"\$(pwd)/clr/bin/Product/${osGroup}.${architecture}.${configuration}\" \\ - --coreFxBinDir=\"\$(pwd)/fx/bin/${osGroup}.AnyCPU.Release;\$(pwd)/fx/bin/Unix.AnyCPU.Release;\$(pwd)/fx/bin/AnyOS.AnyCPU.Release\" \\ - --coreFxNativeBinDir=\"\$(pwd)/fx/bin/${osGroup}.${architecture}.Release\" \\ + --coreFxBinDir=\"\$(pwd)/fx/bin/runtime/netcoreapp-${osGroup}-Release-${architecture}\" \\ --crossgen --runcrossgentests""") // Run coreclr tests w/ server GC & HeapVerify enabled @@ -2832,8 +2890,9 @@ combinedScenarios.each { scenario -> } } + shell ("mkdir ./bin/CoreFxBinDir") // Unpack the corefx binaries - shell("tar -xf ./bin/build.tar.gz") + shell("tar -xf ./bin/build.tar.gz -C ./bin/CoreFxBinDir") // Unzip the tests first. Exit with 0 shell("unzip -q -o ./bin/tests/tests.zip -d ./bin/tests/Windows_NT.${architecture}.${configuration} || exit 0") @@ -2844,10 +2903,8 @@ combinedScenarios.each { scenario -> if (Constants.jitStressModeScenarios.containsKey(scenario)) { def scriptFileName = "\$WORKSPACE/set_stress_test_env.sh" def createScriptCmds = genStressModeScriptStep(os, scenario, Constants.jitStressModeScenarios[scenario], scriptFileName) - if (createScriptCmds != "") { - shell("${createScriptCmds}") - testEnvOpt = "--test-env=" + scriptFileName - } + shell("${createScriptCmds}") + testEnvOpt = "--test-env=" + scriptFileName } if (isGCStressRelatedTesting(scenario)) { @@ -2859,8 +2916,7 @@ combinedScenarios.each { scenario -> --testNativeBinDir=\"\${WORKSPACE}/bin/obj/${osGroup}.${architecture}.${configuration}/tests\" \\ --coreClrBinDir=\"\${WORKSPACE}/bin/Product/${osGroup}.${architecture}.${configuration}\" \\ --mscorlibDir=\"\${WORKSPACE}/bin/Product/${osGroup}.${architecture}.${configuration}\" \\ - --coreFxBinDir=\"\${WORKSPACE}/bin/${osGroup}.AnyCPU.Release;\${WORKSPACE}/bin/Unix.AnyCPU.Release;\${WORKSPACE}/bin/AnyOS.AnyCPU.Release\" \\ - --coreFxNativeBinDir=\"\${WORKSPACE}/bin/${osGroup}.${architecture}.Release\" \\ + --coreFxBinDir=\"\${WORKSPACE}/bin/CoreFxBinDir\" \\ --limitedDumpGeneration \\ ${testEnvOpt} ${serverGCString} ${gcstressStr} ${crossgenStr} ${runcrossgentestsStr} ${runjitstressStr} ${runjitstressregsStr} ${runjitmioptsStr} ${runjitforcerelocsStr} ${runjitdisasmStr} ${sequentialString} ${playlistString}""") } diff --git a/perf.groovy b/perf.groovy index d7eb783..1eb9f19 100644 --- a/perf.groovy +++ b/perf.groovy @@ -27,8 +27,8 @@ def static getOSGroup(def os) { // Setup perflab tests runs [true, false].each { isPR -> ['Windows_NT'].each { os -> - ['x64'].each { architecture -> - def newJob = job(Utilities.getFullJobName(project, "perf_perflab_${os}", isPR)) { + ['x64', 'x86'].each { architecture -> + def newJob = job(Utilities.getFullJobName(project, "perf_perflab_${os}_${architecture}", isPR)) { // Set the label. label('windows_clr_perf') wrappers { @@ -41,7 +41,7 @@ def static getOSGroup(def os) { { parameters { - stringParam('BenchviewCommitName', '%ghprbPullTitle%', 'The name that you will be used to build the full title of a run in Benchview. The final name will be of the form private BenchviewCommitName') + stringParam('BenchviewCommitName', '\${ghprbPullTitle}', 'The name that you will be used to build the full title of a run in Benchview. The final name will be of the form private BenchviewCommitName') } } def configuration = 'Release' @@ -76,9 +76,9 @@ def static getOSGroup(def os) { if (isPR) { TriggerBuilder builder = TriggerBuilder.triggerOnPullRequest() - builder.setGithubContext("${os} CoreCLR Perf Tests") + builder.setGithubContext("${os} ${architecture} CoreCLR Perf Tests") builder.triggerOnlyOnComment() - builder.setCustomTriggerPhrase("(?i).*test\\W+${os}\\W+perf.*") + builder.setCustomTriggerPhrase("(?i).*test\\W+${os}_${architecture}\\W+perf.*") builder.triggerForBranch(branch) builder.emitTrigger(newJob) } @@ -107,7 +107,7 @@ def static getOSGroup(def os) { { parameters { - stringParam('BenchviewCommitName', '\$ghprbPullTitle', 'The name that you will be used to build the full title of a run in Benchview. The final name will be of the form private BenchviewCommitName') + stringParam('BenchviewCommitName', '\${ghprbPullTitle}', 'The name that you will be used to build the full title of a run in Benchview. The final name will be of the form private BenchviewCommitName') } } def osGroup = getOSGroup(os) @@ -128,8 +128,7 @@ def static getOSGroup(def os) { --testNativeBinDir=\"\${WORKSPACE}/bin/obj/${osGroup}.${architecture}.${configuration}/tests\" \\ --coreClrBinDir=\"\${WORKSPACE}/bin/Product/${osGroup}.${architecture}.${configuration}\" \\ --mscorlibDir=\"\${WORKSPACE}/bin/Product/${osGroup}.${architecture}.${configuration}\" \\ - --coreFxBinDir=\"\${WORKSPACE}/corefx/bin/${osGroup}.AnyCPU.${configuration};\${WORKSPACE}/corefx/bin/Unix.AnyCPU.${configuration};\${WORKSPACE}/corefx/bin/AnyOS.AnyCPU.${configuration}\" \\ - --coreFxNativeBinDir=\"\${WORKSPACE}/corefx/bin/${osGroup}.${architecture}.${configuration}\" \\ + --coreFxBinDir=\"\${WORKSPACE}/corefx\" \\ --runType=\"${runType}\" \\ --benchViewOS=\"${os}\" \\ --uploadToBenchview""") diff --git a/src/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.builds b/src/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.builds index e568ca5..f84ccd0 100644 --- a/src/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.builds +++ b/src/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.builds @@ -35,6 +35,10 @@ Linux amd64 + + Linux + armel + Linux amd64 @@ -79,6 +83,10 @@ Linux amd64 + + Linux + armel + OSX amd64 diff --git a/src/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.pkgproj b/src/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.pkgproj index c0b2134..4a5b1ad 100644 --- a/src/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.pkgproj +++ b/src/.nuget/Microsoft.NETCore.ILAsm/Microsoft.NETCore.ILAsm.pkgproj @@ -4,7 +4,7 @@ true true - x64;x86;arm64;arm; + x64;x86;arm64;arm;armel; $(PackagesOutputPath) true @@ -28,6 +28,9 @@ amd64 + + armel + amd64 @@ -61,6 +64,9 @@ amd64 + + armel + amd64 diff --git a/src/.nuget/Microsoft.NETCore.ILAsm/debian/Microsoft.NETCore.ILAsm.pkgproj b/src/.nuget/Microsoft.NETCore.ILAsm/debian/Microsoft.NETCore.ILAsm.pkgproj index f821897..99c782c 100644 --- a/src/.nuget/Microsoft.NETCore.ILAsm/debian/Microsoft.NETCore.ILAsm.pkgproj +++ b/src/.nuget/Microsoft.NETCore.ILAsm/debian/Microsoft.NETCore.ILAsm.pkgproj @@ -4,8 +4,8 @@ true debian.8-$(PackagePlatform) - - x64; + + x64;armel; @@ -26,4 +26,4 @@ - \ No newline at end of file + diff --git a/src/.nuget/Microsoft.NETCore.ILAsm/tizen/4.0.0/Microsoft.NETCore.ILAsm.pkgproj b/src/.nuget/Microsoft.NETCore.ILAsm/tizen/4.0.0/Microsoft.NETCore.ILAsm.pkgproj new file mode 100644 index 0000000..1d235b6 --- /dev/null +++ b/src/.nuget/Microsoft.NETCore.ILAsm/tizen/4.0.0/Microsoft.NETCore.ILAsm.pkgproj @@ -0,0 +1,29 @@ + + + + + true + tizen.4.0.0-$(PackagePlatform) + + armel; + + + + + + runtimes/$(PackageTargetRuntime)/native + + + + + + + + + + runtimes/$(PackageTargetRuntime)/native + true + + + + diff --git a/src/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.builds b/src/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.builds index 5939fda..b312b3b 100644 --- a/src/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.builds +++ b/src/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.builds @@ -35,6 +35,10 @@ Linux amd64 + + Linux + armel + Linux amd64 @@ -79,6 +83,10 @@ Linux amd64 + + Linux + armel + OSX amd64 diff --git a/src/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.pkgproj b/src/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.pkgproj index 47683ef..cdfee45 100644 --- a/src/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.pkgproj +++ b/src/.nuget/Microsoft.NETCore.ILDAsm/Microsoft.NETCore.ILDAsm.pkgproj @@ -4,7 +4,7 @@ true true - x64;x86;arm64;arm; + x64;x86;arm64;arm;armel; $(PackagesOutputPath) true @@ -28,6 +28,9 @@ amd64 + + armel + amd64 @@ -61,6 +64,9 @@ amd64 + + armel + amd64 diff --git a/src/.nuget/Microsoft.NETCore.ILDAsm/debian/Microsoft.NETCore.ILDAsm.pkgproj b/src/.nuget/Microsoft.NETCore.ILDAsm/debian/Microsoft.NETCore.ILDAsm.pkgproj index af9d384..f73e785 100644 --- a/src/.nuget/Microsoft.NETCore.ILDAsm/debian/Microsoft.NETCore.ILDAsm.pkgproj +++ b/src/.nuget/Microsoft.NETCore.ILDAsm/debian/Microsoft.NETCore.ILDAsm.pkgproj @@ -4,8 +4,8 @@ true debian.8-$(PackagePlatform) - - x64; + + x64;armel; @@ -26,4 +26,4 @@ - \ No newline at end of file + diff --git a/src/.nuget/Microsoft.NETCore.ILDAsm/tizen/4.0.0/Microsoft.NETCore.ILDAsm.pkgproj b/src/.nuget/Microsoft.NETCore.ILDAsm/tizen/4.0.0/Microsoft.NETCore.ILDAsm.pkgproj new file mode 100644 index 0000000..9ede1eb --- /dev/null +++ b/src/.nuget/Microsoft.NETCore.ILDAsm/tizen/4.0.0/Microsoft.NETCore.ILDAsm.pkgproj @@ -0,0 +1,29 @@ + + + + + true + tizen.4.0.0-$(PackagePlatform) + + armel; + + + + + + runtimes/$(PackageTargetRuntime)/native + + + + + + + + + + runtimes/$(PackageTargetRuntime)/native + true + + + + diff --git a/src/.nuget/Microsoft.NETCore.Jit/Microsoft.NETCore.Jit.builds b/src/.nuget/Microsoft.NETCore.Jit/Microsoft.NETCore.Jit.builds index 61c690e..5f75a74 100644 --- a/src/.nuget/Microsoft.NETCore.Jit/Microsoft.NETCore.Jit.builds +++ b/src/.nuget/Microsoft.NETCore.Jit/Microsoft.NETCore.Jit.builds @@ -35,6 +35,10 @@ Linux amd64 + + Linux + armel + Linux amd64 @@ -79,6 +83,10 @@ Linux amd64 + + Linux + armel + OSX amd64 diff --git a/src/.nuget/Microsoft.NETCore.Jit/Microsoft.NETCore.Jit.pkgproj b/src/.nuget/Microsoft.NETCore.Jit/Microsoft.NETCore.Jit.pkgproj index bcd4e42..dd39f77 100644 --- a/src/.nuget/Microsoft.NETCore.Jit/Microsoft.NETCore.Jit.pkgproj +++ b/src/.nuget/Microsoft.NETCore.Jit/Microsoft.NETCore.Jit.pkgproj @@ -4,7 +4,7 @@ true true - x64;x86;arm64;arm; + x64;x86;arm64;arm;armel; $(PackagesOutputPath) true @@ -27,6 +27,9 @@ amd64 + + armel + amd64 @@ -60,6 +63,9 @@ amd64 + + armel + amd64 diff --git a/src/.nuget/Microsoft.NETCore.Jit/debian/Microsoft.NETCore.Jit.pkgproj b/src/.nuget/Microsoft.NETCore.Jit/debian/Microsoft.NETCore.Jit.pkgproj index 9d6043e..db2a57c 100644 --- a/src/.nuget/Microsoft.NETCore.Jit/debian/Microsoft.NETCore.Jit.pkgproj +++ b/src/.nuget/Microsoft.NETCore.Jit/debian/Microsoft.NETCore.Jit.pkgproj @@ -4,8 +4,8 @@ true debian.8-$(PackagePlatform) - - x64; + + x64;armel; @@ -26,4 +26,4 @@ - \ No newline at end of file + diff --git a/src/.nuget/Microsoft.NETCore.Jit/tizen/4.0.0/Microsoft.NETCore.Jit.pkgproj b/src/.nuget/Microsoft.NETCore.Jit/tizen/4.0.0/Microsoft.NETCore.Jit.pkgproj new file mode 100644 index 0000000..f2eaa55 --- /dev/null +++ b/src/.nuget/Microsoft.NETCore.Jit/tizen/4.0.0/Microsoft.NETCore.Jit.pkgproj @@ -0,0 +1,29 @@ + + + + + true + tizen.4.0.0-$(PackagePlatform) + + armel; + + + + + + runtimes/$(PackageTargetRuntime)/native + + + + + + + + + + runtimes/$(PackageTargetRuntime)/native + true + + + + diff --git a/src/.nuget/Microsoft.NETCore.Native/Microsoft.NETCore.Native.builds b/src/.nuget/Microsoft.NETCore.Native/Microsoft.NETCore.Native.builds new file mode 100644 index 0000000..a178ddb --- /dev/null +++ b/src/.nuget/Microsoft.NETCore.Native/Microsoft.NETCore.Native.builds @@ -0,0 +1,65 @@ + + + + + + + $(PackageOutputPath) + + + + + + + + Linux + amd64 + + + Linux + amd64 + + + Linux + amd64 + + + Linux + amd64 + + + Linux + amd64 + + + Linux + amd64 + + + Linux + amd64 + + + Linux + amd64 + + + Linux + amd64 + + + Linux + amd64 + + + Linux + amd64 + + + OSX + amd64 + + + + + diff --git a/src/.nuget/Microsoft.NETCore.Native/Microsoft.NETCore.Native.pkgproj b/src/.nuget/Microsoft.NETCore.Native/Microsoft.NETCore.Native.pkgproj new file mode 100644 index 0000000..51b524a --- /dev/null +++ b/src/.nuget/Microsoft.NETCore.Native/Microsoft.NETCore.Native.pkgproj @@ -0,0 +1,50 @@ + + + + + true + true + x64;x86;arm64;arm; + $(PackagesOutputPath) + true + + + + amd64 + + + amd64 + + + amd64 + + + amd64 + + + amd64 + + + amd64 + + + amd64 + + + amd64 + + + amd64 + + + amd64 + + + amd64 + + + amd64 + + + + diff --git a/src/.nuget/Microsoft.NETCore.Native/alpine/3.4.3/Microsoft.NETCore.Native.pkgproj b/src/.nuget/Microsoft.NETCore.Native/alpine/3.4.3/Microsoft.NETCore.Native.pkgproj new file mode 100644 index 0000000..90545a9 --- /dev/null +++ b/src/.nuget/Microsoft.NETCore.Native/alpine/3.4.3/Microsoft.NETCore.Native.pkgproj @@ -0,0 +1,30 @@ + + + + + true + alpine.3.4.3-$(PackagePlatform) + + x64; + + + + + + + runtimes/$(PackageTargetRuntime)/native + + + + + + + + + + runtimes/$(PackageTargetRuntime)/native + true + + + + diff --git a/src/.nuget/Microsoft.NETCore.Native/debian/Microsoft.NETCore.Native.pkgproj b/src/.nuget/Microsoft.NETCore.Native/debian/Microsoft.NETCore.Native.pkgproj new file mode 100644 index 0000000..c136a2c --- /dev/null +++ b/src/.nuget/Microsoft.NETCore.Native/debian/Microsoft.NETCore.Native.pkgproj @@ -0,0 +1,30 @@ + + + + + true + debian.8-$(PackagePlatform) + + x64; + + + + + + + runtimes/$(PackageTargetRuntime)/native + + + + + + + + + + runtimes/$(PackageTargetRuntime)/native + true + + + + diff --git a/src/.nuget/Microsoft.NETCore.Native/fedora/23/Microsoft.NETCore.Native.pkgproj b/src/.nuget/Microsoft.NETCore.Native/fedora/23/Microsoft.NETCore.Native.pkgproj new file mode 100644 index 0000000..8547114 --- /dev/null +++ b/src/.nuget/Microsoft.NETCore.Native/fedora/23/Microsoft.NETCore.Native.pkgproj @@ -0,0 +1,30 @@ + + + + + true + fedora.23-$(PackagePlatform) + + x64; + + + + + + + runtimes/$(PackageTargetRuntime)/native + + + + + + + + + + runtimes/$(PackageTargetRuntime)/native + true + + + + diff --git a/src/.nuget/Microsoft.NETCore.Native/fedora/24/Microsoft.NETCore.Native.pkgproj b/src/.nuget/Microsoft.NETCore.Native/fedora/24/Microsoft.NETCore.Native.pkgproj new file mode 100644 index 0000000..f4987de --- /dev/null +++ b/src/.nuget/Microsoft.NETCore.Native/fedora/24/Microsoft.NETCore.Native.pkgproj @@ -0,0 +1,30 @@ + + + + + true + fedora.24-$(PackagePlatform) + + x64; + + + + + + + runtimes/$(PackageTargetRuntime)/native + + + + + + + + + + runtimes/$(PackageTargetRuntime)/native + true + + + + diff --git a/src/.nuget/Microsoft.NETCore.Native/linux/Microsoft.NETCore.Native.pkgproj b/src/.nuget/Microsoft.NETCore.Native/linux/Microsoft.NETCore.Native.pkgproj new file mode 100644 index 0000000..8b1064f --- /dev/null +++ b/src/.nuget/Microsoft.NETCore.Native/linux/Microsoft.NETCore.Native.pkgproj @@ -0,0 +1,30 @@ + + + + + true + linux-$(PackagePlatform) + + x64; + + + + + + + runtimes/$(PackageTargetRuntime)/native + + + + + + + + + + runtimes/$(PackageTargetRuntime)/native + true + + + + diff --git a/src/.nuget/Microsoft.NETCore.Native/opensuse/13.2/Microsoft.NETCore.Native.pkgproj b/src/.nuget/Microsoft.NETCore.Native/opensuse/13.2/Microsoft.NETCore.Native.pkgproj new file mode 100644 index 0000000..bf8307a --- /dev/null +++ b/src/.nuget/Microsoft.NETCore.Native/opensuse/13.2/Microsoft.NETCore.Native.pkgproj @@ -0,0 +1,30 @@ + + + + + true + opensuse.13.2-$(PackagePlatform) + + x64; + + + + + + + runtimes/$(PackageTargetRuntime)/native + + + + + + + + + + runtimes/$(PackageTargetRuntime)/native + true + + + + diff --git a/src/.nuget/Microsoft.NETCore.Native/opensuse/42.1/Microsoft.NETCore.Native.pkgproj b/src/.nuget/Microsoft.NETCore.Native/opensuse/42.1/Microsoft.NETCore.Native.pkgproj new file mode 100644 index 0000000..19ac91c --- /dev/null +++ b/src/.nuget/Microsoft.NETCore.Native/opensuse/42.1/Microsoft.NETCore.Native.pkgproj @@ -0,0 +1,30 @@ + + + + + true + opensuse.42.1-$(PackagePlatform) + + x64; + + + + + + + runtimes/$(PackageTargetRuntime)/native + + + + + + + + + + runtimes/$(PackageTargetRuntime)/native + true + + + + diff --git a/src/.nuget/Microsoft.NETCore.Native/osx/Microsoft.NETCore.Native.pkgproj b/src/.nuget/Microsoft.NETCore.Native/osx/Microsoft.NETCore.Native.pkgproj new file mode 100644 index 0000000..b358c86 --- /dev/null +++ b/src/.nuget/Microsoft.NETCore.Native/osx/Microsoft.NETCore.Native.pkgproj @@ -0,0 +1,30 @@ + + + + + true + osx.10.10-$(PackagePlatform) + + x64; + + + + + + + runtimes/$(PackageTargetRuntime)/native + + + + + + + + + + runtimes/$(PackageTargetRuntime)/native + true + + + + diff --git a/src/.nuget/Microsoft.NETCore.Native/rhel/Microsoft.NETCore.Native.pkgproj b/src/.nuget/Microsoft.NETCore.Native/rhel/Microsoft.NETCore.Native.pkgproj new file mode 100644 index 0000000..f9dc309 --- /dev/null +++ b/src/.nuget/Microsoft.NETCore.Native/rhel/Microsoft.NETCore.Native.pkgproj @@ -0,0 +1,30 @@ + + + + + true + rhel.7-$(PackagePlatform) + + x64; + + + + + + + runtimes/$(PackageTargetRuntime)/native + + + + + + + + + + runtimes/$(PackageTargetRuntime)/native + true + + + + diff --git a/src/.nuget/Microsoft.NETCore.Native/ubuntu/14.04/Microsoft.NETCore.Native.pkgproj b/src/.nuget/Microsoft.NETCore.Native/ubuntu/14.04/Microsoft.NETCore.Native.pkgproj new file mode 100644 index 0000000..d1c5be7 --- /dev/null +++ b/src/.nuget/Microsoft.NETCore.Native/ubuntu/14.04/Microsoft.NETCore.Native.pkgproj @@ -0,0 +1,30 @@ + + + + + true + ubuntu.14.04-$(PackagePlatform) + + x64; + + + + + + + runtimes/$(PackageTargetRuntime)/native + + + + + + + + + + runtimes/$(PackageTargetRuntime)/native + true + + + + diff --git a/src/.nuget/Microsoft.NETCore.Native/ubuntu/16.04/Microsoft.NETCore.Native.pkgproj b/src/.nuget/Microsoft.NETCore.Native/ubuntu/16.04/Microsoft.NETCore.Native.pkgproj new file mode 100644 index 0000000..b2b0f96 --- /dev/null +++ b/src/.nuget/Microsoft.NETCore.Native/ubuntu/16.04/Microsoft.NETCore.Native.pkgproj @@ -0,0 +1,30 @@ + + + + + true + ubuntu.16.04-$(PackagePlatform) + + x64; + + + + + + + runtimes/$(PackageTargetRuntime)/native + + + + + + + + + + runtimes/$(PackageTargetRuntime)/native + true + + + + diff --git a/src/.nuget/Microsoft.NETCore.Native/ubuntu/16.10/Microsoft.NETCore.Native.pkgproj b/src/.nuget/Microsoft.NETCore.Native/ubuntu/16.10/Microsoft.NETCore.Native.pkgproj new file mode 100644 index 0000000..da4a03d --- /dev/null +++ b/src/.nuget/Microsoft.NETCore.Native/ubuntu/16.10/Microsoft.NETCore.Native.pkgproj @@ -0,0 +1,30 @@ + + + + + true + ubuntu.16.10-$(PackagePlatform) + + x64; + + + + + + + runtimes/$(PackageTargetRuntime)/native + + + + + + + + + + runtimes/$(PackageTargetRuntime)/native + true + + + + diff --git a/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/Microsoft.NETCore.Runtime.CoreCLR.builds b/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/Microsoft.NETCore.Runtime.CoreCLR.builds index c7bfdc3..99bbbef 100644 --- a/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/Microsoft.NETCore.Runtime.CoreCLR.builds +++ b/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/Microsoft.NETCore.Runtime.CoreCLR.builds @@ -34,6 +34,10 @@ Linux amd64 + + Linux + armel + Linux amd64 @@ -78,6 +82,10 @@ Linux amd64 + + Linux + armel + OSX amd64 diff --git a/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/Microsoft.NETCore.Runtime.CoreCLR.pkgproj b/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/Microsoft.NETCore.Runtime.CoreCLR.pkgproj index a1405d5..bc4b862 100644 --- a/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/Microsoft.NETCore.Runtime.CoreCLR.pkgproj +++ b/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/Microsoft.NETCore.Runtime.CoreCLR.pkgproj @@ -4,7 +4,7 @@ true true - x64;x86;arm64;arm; + x64;x86;arm64;arm;armel; $(PackagesOutputPath) true @@ -28,6 +28,9 @@ amd64 + + armel + amd64 @@ -61,6 +64,9 @@ amd64 + + armel + amd64 diff --git a/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/debian/Microsoft.NETCore.Runtime.CoreCLR.pkgproj b/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/debian/Microsoft.NETCore.Runtime.CoreCLR.pkgproj index 4f95c25..f982188 100644 --- a/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/debian/Microsoft.NETCore.Runtime.CoreCLR.pkgproj +++ b/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/debian/Microsoft.NETCore.Runtime.CoreCLR.pkgproj @@ -4,12 +4,12 @@ true debian.8-$(PackagePlatform) - - x64; + + x64;armel; - + @@ -17,8 +17,8 @@ - - + + diff --git a/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/tizen/4.0.0/Microsoft.NETCore.Runtime.CoreCLR.pkgproj b/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/tizen/4.0.0/Microsoft.NETCore.Runtime.CoreCLR.pkgproj new file mode 100644 index 0000000..dd2c46b --- /dev/null +++ b/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/tizen/4.0.0/Microsoft.NETCore.Runtime.CoreCLR.pkgproj @@ -0,0 +1,57 @@ + + + + + true + tizen.4.0.0-$(PackagePlatform) + + armel; + + + + + + + + + + + + + + + + + + runtimes/$(PackageTargetRuntime)/native + + + + runtimes/$(PackageTargetRuntime)/lib/netstandard1.0 + + + + ref/netstandard1.0 + + + tools + + + + + + + + + + + + runtimes/$(PackageTargetRuntime)/native + true + + + + diff --git a/src/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.builds b/src/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.builds index c1d076f..67b105b 100644 --- a/src/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.builds +++ b/src/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.builds @@ -35,6 +35,10 @@ Linux amd64 + + Linux + armel + Linux amd64 @@ -79,6 +83,10 @@ Linux amd64 + + Linux + armel + OSX amd64 diff --git a/src/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.pkgproj b/src/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.pkgproj index 325461d..ee8f6a9 100644 --- a/src/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.pkgproj +++ b/src/.nuget/Microsoft.NETCore.TestHost/Microsoft.NETCore.TestHost.pkgproj @@ -4,7 +4,7 @@ true true - x64;x86;arm64;arm; + x64;x86;arm64;arm;armel; $(PackagesOutputPath) true @@ -27,6 +27,9 @@ amd64 + + armel + amd64 @@ -60,6 +63,9 @@ amd64 + + armel + amd64 diff --git a/src/.nuget/Microsoft.NETCore.TestHost/debian/Microsoft.NETCore.TestHost.pkgproj b/src/.nuget/Microsoft.NETCore.TestHost/debian/Microsoft.NETCore.TestHost.pkgproj index 045b2e7..5d739bd 100644 --- a/src/.nuget/Microsoft.NETCore.TestHost/debian/Microsoft.NETCore.TestHost.pkgproj +++ b/src/.nuget/Microsoft.NETCore.TestHost/debian/Microsoft.NETCore.TestHost.pkgproj @@ -4,8 +4,8 @@ true debian.8-$(PackagePlatform) - - x64; + + x64;armel; @@ -26,4 +26,4 @@ - \ No newline at end of file + diff --git a/src/.nuget/Microsoft.NETCore.TestHost/tizen/4.0.0/Microsoft.NETCore.TestHost.pkgproj b/src/.nuget/Microsoft.NETCore.TestHost/tizen/4.0.0/Microsoft.NETCore.TestHost.pkgproj new file mode 100644 index 0000000..b7620b9 --- /dev/null +++ b/src/.nuget/Microsoft.NETCore.TestHost/tizen/4.0.0/Microsoft.NETCore.TestHost.pkgproj @@ -0,0 +1,29 @@ + + + + + true + tizen.4.0.0-$(PackagePlatform) + + armel; + + + + + + runtimes/$(PackageTargetRuntime)/native + + + + + + + + + + runtimes/$(PackageTargetRuntime)/native + true + + + + diff --git a/src/.nuget/descriptions.json b/src/.nuget/descriptions.json index 640ff02..a9038c0 100644 --- a/src/.nuget/descriptions.json +++ b/src/.nuget/descriptions.json @@ -11,12 +11,12 @@ }, { "Name": "Microsoft.NETCore.Runtime.CoreCLR", - "Description": "The .NET Core runtime, called CoreCLR, and the base library, called mscorlib. It includes the garbage collector, JIT compiler, base .NET data types and many low-level classes.", + "Description": "The .NET Core runtime, called CoreCLR, and the base library, called System.Private.CoreLib. It includes the garbage collector, JIT compiler, base .NET data types and many low-level classes.", "CommonTypes": [ ] }, { "Name": "Microsoft.TargetingPack.Private.CoreCLR", - "Description": "Contains a private targeting pack which contains only the CoreCLR mscorlib reference assembly. Used for producing platform specific libraries such as facades.", + "Description": "Contains a private targeting pack which contains only the CoreCLR System.Private.CoreLib reference assembly. Used for producing platform specific libraries such as facades.", "CommonTypes": [ ] }, { @@ -38,5 +38,10 @@ "Name": "Microsoft.NETCore.TestHost", "Description": "CoreCLR application host for test applications", "CommonTypes": [ ] + }, + { + "Name": "Microsoft.NETCore.Native", + "Description": "Native shims for .NET Core runtime", + "CommonTypes": [ ] } ] diff --git a/src/.nuget/packages.builds b/src/.nuget/packages.builds index 7458c8e..5d1d025 100644 --- a/src/.nuget/packages.builds +++ b/src/.nuget/packages.builds @@ -18,6 +18,7 @@ + diff --git a/src/ToolBox/PdbTypeMatch/PdbTypeMatch.nativeproj b/src/ToolBox/PdbTypeMatch/PdbTypeMatch.nativeproj deleted file mode 100644 index fb2f71b..0000000 --- a/src/ToolBox/PdbTypeMatch/PdbTypeMatch.nativeproj +++ /dev/null @@ -1,59 +0,0 @@ - - - - cdecl - pdbtypematch - $(IntermediateOutputPath) - PROGRAM - console - wmain - true - stdafx.h - true - stdafx.cpp - pdbtypematch.pch - $(LinkAdditionalOptions) /DYNAMICBASE /NXCOMPAT /ALLOWISOLATION - MultiByte - WIN32;%(PreprocessorDefinitions) - $(IntermediateOutputPath) - - .; - .\include; - $(UserIncludes); - - true - false - true - - - - - - - - - - - - - $(ClrSrcDirectory)toolbox\sos\diasdk\diasdk.nativeproj - $(ClrIntraLibPath)\DiaLib.dll - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/ToolBox/SOS/Strike/SOS.nativeproj b/src/ToolBox/SOS/Strike/SOS.nativeproj deleted file mode 100644 index 4c0fc76..0000000 --- a/src/ToolBox/SOS/Strike/SOS.nativeproj +++ /dev/null @@ -1,7 +0,0 @@ - - - - - true - - diff --git a/src/ToolBox/SOS/Strike/SOS.sln b/src/ToolBox/SOS/Strike/SOS.sln deleted file mode 100644 index 08f4a64..0000000 --- a/src/ToolBox/SOS/Strike/SOS.sln +++ /dev/null @@ -1,76 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.31101.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SOS", "SOS.vcxproj", "{3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mscordacwks", "..\..\..\mscordacwks.vcproj", "{C5716445-C233-4491-85A4-31B75731DD95}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mscordbi", "..\..\..\mscordbi.vcproj", "{95A6AE03-EC45-4450-93DB-9B21890F79E7}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - amd64chk|Win32 = amd64chk|Win32 - amd64dbg|Win32 = amd64dbg|Win32 - amd64ret|Win32 = amd64ret|Win32 - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - x86chk|Win32 = x86chk|Win32 - x86dbg|Win32 = x86dbg|Win32 - x86ret|Win32 = x86ret|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.amd64chk|Win32.ActiveCfg = amd64chk|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.amd64chk|Win32.Build.0 = amd64chk|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.amd64dbg|Win32.ActiveCfg = amd64dbg|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.amd64dbg|Win32.Build.0 = amd64dbg|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.amd64ret|Win32.ActiveCfg = amd64ret|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.amd64ret|Win32.Build.0 = amd64ret|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.Debug|Win32.ActiveCfg = x86chk|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.Debug|Win32.Build.0 = x86chk|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.Release|Win32.ActiveCfg = x86chk|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.Release|Win32.Build.0 = x86chk|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.x86chk|Win32.ActiveCfg = x86chk|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.x86chk|Win32.Build.0 = x86chk|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.x86dbg|Win32.ActiveCfg = x86dbg|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.x86dbg|Win32.Build.0 = x86dbg|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.x86ret|Win32.ActiveCfg = x86ret|Win32 - {3941DEDB-8183-4F82-9193-5EC0D5B6D4A6}.x86ret|Win32.Build.0 = x86ret|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.amd64chk|Win32.ActiveCfg = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.amd64chk|Win32.Build.0 = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.amd64dbg|Win32.ActiveCfg = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.amd64dbg|Win32.Build.0 = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.amd64ret|Win32.ActiveCfg = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.amd64ret|Win32.Build.0 = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.Debug|Win32.ActiveCfg = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.Debug|Win32.Build.0 = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.Release|Win32.ActiveCfg = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.Release|Win32.Build.0 = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.x86chk|Win32.ActiveCfg = x86chk|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.x86chk|Win32.Build.0 = x86chk|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.x86dbg|Win32.ActiveCfg = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.x86dbg|Win32.Build.0 = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.x86ret|Win32.ActiveCfg = Debug|Win32 - {C5716445-C233-4491-85A4-31B75731DD95}.x86ret|Win32.Build.0 = Debug|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.amd64chk|Win32.ActiveCfg = amd64chk|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.amd64chk|Win32.Build.0 = amd64chk|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.amd64dbg|Win32.ActiveCfg = amd64dbg|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.amd64dbg|Win32.Build.0 = amd64dbg|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.amd64ret|Win32.ActiveCfg = amd64ret|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.amd64ret|Win32.Build.0 = amd64ret|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.Debug|Win32.ActiveCfg = x86chk|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.Debug|Win32.Build.0 = x86chk|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.Release|Win32.ActiveCfg = amd64ret|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.Release|Win32.Build.0 = amd64ret|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.x86chk|Win32.ActiveCfg = x86chk|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.x86chk|Win32.Build.0 = x86chk|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.x86dbg|Win32.ActiveCfg = x86dbg|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.x86dbg|Win32.Build.0 = x86dbg|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.x86ret|Win32.ActiveCfg = x86ret|Win32 - {95A6AE03-EC45-4450-93DB-9B21890F79E7}.x86ret|Win32.Build.0 = x86ret|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/src/ToolBox/SOS/Strike/SOS.vcproj b/src/ToolBox/SOS/Strike/SOS.vcproj deleted file mode 100644 index aff5e7c..0000000 --- a/src/ToolBox/SOS/Strike/SOS.vcproj +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/ToolBox/SOS/Strike/dirs.proj b/src/ToolBox/SOS/Strike/dirs.proj deleted file mode 100644 index 1e39130..0000000 --- a/src/ToolBox/SOS/Strike/dirs.proj +++ /dev/null @@ -1,20 +0,0 @@ - - - - - true - false - true - true - - - - - - - - - - - - diff --git a/src/ToolBox/SOS/Strike/disasmARM.cpp b/src/ToolBox/SOS/Strike/disasmARM.cpp index 8217355..cc80d77 100644 --- a/src/ToolBox/SOS/Strike/disasmARM.cpp +++ b/src/ToolBox/SOS/Strike/disasmARM.cpp @@ -28,6 +28,7 @@ namespace ARMGCDump { #undef _TARGET_X86_ +#define WIN64EXCEPTIONS #undef LIMITED_METHOD_CONTRACT #define LIMITED_METHOD_DAC_CONTRACT #define SUPPORTS_DAC diff --git a/src/ToolBox/SOS/Strike/eeheap.cpp b/src/ToolBox/SOS/Strike/eeheap.cpp index ac41e2d..5a5680f 100644 --- a/src/ToolBox/SOS/Strike/eeheap.cpp +++ b/src/ToolBox/SOS/Strike/eeheap.cpp @@ -1614,9 +1614,9 @@ void LoaderHeapTraverse(CLRDATA_ADDRESS blockData,size_t blockSize,BOOL blockIsC \**********************************************************************/ void PrintHeapSize(DWORD_PTR total, DWORD_PTR wasted) { - ExtOut("Size: 0x%" POINTERSIZE_TYPE "x (%" POINTERSIZE_TYPE "lu) bytes", total, total); + ExtOut("Size: 0x%" POINTERSIZE_TYPE "x (%" POINTERSIZE_TYPE "u) bytes", total, total); if (wasted) - ExtOut(" total, 0x%" POINTERSIZE_TYPE "x (%" POINTERSIZE_TYPE "lu) bytes wasted", wasted, wasted); + ExtOut(" total, 0x%" POINTERSIZE_TYPE "x (%" POINTERSIZE_TYPE "u) bytes wasted", wasted, wasted); ExtOut(".\n"); } diff --git a/src/ToolBox/SOS/Strike/exts.cpp b/src/ToolBox/SOS/Strike/exts.cpp index 0b1f976..566ba35 100644 --- a/src/ToolBox/SOS/Strike/exts.cpp +++ b/src/ToolBox/SOS/Strike/exts.cpp @@ -111,30 +111,29 @@ ArchQuery(void) { targetMachine = AMD64Machine::GetInstance(); } -#endif // SOS_TARGET_AMD64 -#ifdef SOS_TARGET_X86 +#elif defined(SOS_TARGET_X86) if (targetArchitecture == IMAGE_FILE_MACHINE_I386) { targetMachine = X86Machine::GetInstance(); } -#endif // SOS_TARGET_X86 -#ifdef SOS_TARGET_ARM +#elif defined(SOS_TARGET_ARM) if (targetArchitecture == IMAGE_FILE_MACHINE_ARMNT) { targetMachine = ARMMachine::GetInstance(); } -#endif // SOS_TARGET_ARM -#ifdef SOS_TARGET_ARM64 +#elif defined(SOS_TARGET_ARM64) if (targetArchitecture == IMAGE_FILE_MACHINE_ARM64) { targetMachine = ARM64Machine::GetInstance(); } -#endif // SOS_TARGET_ARM64 +#else +#error "Undefined target architecture" +#endif if (targetMachine == NULL) { g_targetMachine = NULL; - ExtErr("SOS does not support the current target architecture.\n"); + ExtErr("SOS does not support the current target architecture 0x%llx.\n", targetArchitecture); return E_FAIL; } diff --git a/src/ToolBox/SOS/Strike/inc/dbgeng.h b/src/ToolBox/SOS/Strike/inc/dbgeng.h index 73e4d19..cf04574 100644 --- a/src/ToolBox/SOS/Strike/inc/dbgeng.h +++ b/src/ToolBox/SOS/Strike/inc/dbgeng.h @@ -42,7 +42,11 @@ typedef struct _MEMORY_BASIC_INFORMATION64* PMEMORY_BASIC_INFORMATION64; #define __out_xcount(x) #define __inout #define __inout_opt -#define __reserved +// Android defines various fields on struct which are named __reserved[x]; for example, in wchar.h, +// so we must prefix __reserved with __clr_ +#define __clr_reserved +#else +#define __clr_reserved __reserved #endif #ifdef __cplusplus @@ -1509,7 +1513,7 @@ DECLARE_INTERFACE_(IDebugClient, IUnknown) THIS_ __in ULONG Flags, __in PCSTR Options, - __in_opt __reserved PVOID Reserved + __in_opt __clr_reserved PVOID Reserved ) PURE; STDMETHOD(ConnectProcessServer)( THIS_ @@ -1937,7 +1941,7 @@ DECLARE_INTERFACE_(IDebugClient2, IUnknown) THIS_ __in ULONG Flags, __in PCSTR Options, - __in_opt __reserved PVOID Reserved + __in_opt __clr_reserved PVOID Reserved ) PURE; STDMETHOD(ConnectProcessServer)( THIS_ @@ -2394,7 +2398,7 @@ DECLARE_INTERFACE_(IDebugClient3, IUnknown) THIS_ __in ULONG Flags, __in PCSTR Options, - __in_opt __reserved PVOID Reserved + __in_opt __clr_reserved PVOID Reserved ) PURE; STDMETHOD(ConnectProcessServer)( THIS_ @@ -2902,7 +2906,7 @@ DECLARE_INTERFACE_(IDebugClient4, IUnknown) THIS_ __in ULONG Flags, __in PCSTR Options, - __in_opt __reserved PVOID Reserved + __in_opt __clr_reserved PVOID Reserved ) PURE; STDMETHOD(ConnectProcessServer)( THIS_ @@ -3449,7 +3453,7 @@ DECLARE_INTERFACE_(IDebugClient5, IUnknown) THIS_ __in ULONG Flags, __in PCSTR Options, - __in_opt __reserved PVOID Reserved + __in_opt __clr_reserved PVOID Reserved ) PURE; STDMETHOD(ConnectProcessServer)( THIS_ @@ -3961,7 +3965,7 @@ DECLARE_INTERFACE_(IDebugClient5, IUnknown) THIS_ __in ULONG Flags, __in PCWSTR Options, - __in_opt __reserved PVOID Reserved + __in_opt __clr_reserved PVOID Reserved ) PURE; STDMETHOD(ConnectProcessServerWide)( THIS_ diff --git a/src/ToolBox/SOS/Strike/sos.targets b/src/ToolBox/SOS/Strike/sos.targets deleted file mode 100644 index 3a8185c..0000000 --- a/src/ToolBox/SOS/Strike/sos.targets +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - - - - - - - - - - $(CDefines);SOS_TARGET_X86=1 - $(CDefines);SOS_TARGET_ARM=1 - $(CDefines);SOS_TARGET_AMD64=1 - $(CDefines);SOS_TARGET_ARM64=1 - - $(CDefines);_TARGET_WIN64_=1 - - - - - $(ClrBase)\src\toolbox\sos\strike - - - - $(SosSourceDir)\inc; - $(UserIncludes); - $(Clrbase)\src\vm; - $(Clrbase)\src\inc; - $(Clrbase)\src\gcdump; - $(Clrbase)\src\Debug\shim; - $(Clrbase)\src\coreclr\hosts\inc - - SOS - $(BinariesDirectory)\$(OutputName).dll - DYNLINK - windows - true - true - $(IntermediateOutputDirectory)\SOS.def - _DllMainCRTStartup - true - false - false - true - true - $(ClAdditionalOptions) -DDEBUG -D_DEBUG - $(ClAdditionalOptions) -DFAST=1 - MaxSpeed - $(ClAdditionalOptions) -DFEATURE_CORESYSTEM - - - $(ClAdditionalOptions) -DSTRIKE -D_MT=1 -DORCAS=0 -DMDA_SUPPORTED -DDEBUGGING_SUPPORTED -DEnC_SUPPORTED -DPROFILING_SUPPORTED -DFEATURE_COMINTEROP -DFEATURE_COMINTEROP_UNMANAGED_ACTIVATION -DFEATURE_COMINTEROP_MANAGED_ACTIVATION -DFEATURE_COMINTEROP_APARTMENT_SUPPORT -DFEATURE_RWLOCK -DFEATURE_PREJIT -DFEATURE_STACK_PROBE -DFEATURE_SVR_GC -DFEATURE_CAS_POLICY -DFEATURE_CLICKONCE -DFEATURE_CRYPTO -DFEATURE_IMPERSONATION -DFEATURE_ISOSTORE -DFEATURE_MACL -DFEATURE_WATSON -DFEATURE_X509 -DFEATURE_X509_SECURESTRINGS -DFEATURE_COMINTEROP_REGISTRATION -DFEATURE_MIXEDMODE -DFEATURE_PERFMON -DFEATURE_REFLECTION_ONLY_LOAD -DFEATURE_FUSION -DFEATURE_SYNTHETIC_CULTURES -DFEATURE_SORT_TABLES -DFEATURE_CODEPAGES_FILE -DFEATURE_VALIDATOR -DFEATURE_WIN32_REGISTRY -DFEATURE_REMOTING -DFEATURE_SERIALIZATION -DFEATURE_ISYM_READER -DFEATURE_LOADER_OPTIMIZATION -DFEATURE_IPCMAN -DFEATURE_STRONGNAME_DELAY_SIGNING_ALLOWED -DFEATURE_MULTIMODULE_ASSEMBLIES -DFEATURE_METHOD_RENTAL -DFEATURE_APTCA -DFEATURE_USE_LCID -DFEATURE_BCL_FORMATTING -DENABLE_DOWNLEVEL_FOR_NLS -DFEATURE_INCLUDE_ALL_INTERFACES -DFEATURE_NONGENERIC_COLLECTIONS -DFEATURE_APPDOMAINMANAGER_INITOPTIONS -DFEATURE_COMPRESSEDSTACK -DFEATURE_PLS -DFEATURE_SYNCHRONIZATIONCONTEXT -DFEATURE_SYNCHRONIZATIONCONTEXT_WAIT -DUEF_CHAINING_SUPPORTED -DFEATURE_LEAK_CULTURE_INFO -DFEATURE_UEF_CHAINMANAGER -DFEATURE_CORRUPTING_EXCEPTIONS -DFEATURE_APPDOMAIN_RESOURCE_MONITORING -DFEATURE_EXCEPTION_NOTIFICATIONS -DFEATURE_LEGACY_THREADPOOL -DFEATURE_INTEROP_DEBUGGING - $(Fullcxxeh) - - $(BinariesDirectory)\x86 - $(BinariesDirectory)\x64 - - false - $(InternalPath)\NDP\inc - $(BinariesDirectory) - - - - - - - - - - - - - - - - - - - $(ClrSrcDirectory)inc\corguids.nativeproj - - - $(ClrSrcDirectory)incx86\corguids.nativeproj - - - $(ClrSrcDirectory)incamd64\corguids.nativeproj - - - - $(ClrSrcDirectory)\Debug\shim\$(XPlatHostLibBuildDir)\debugshim.nativeproj - - - $(ClrSrcDirectory)\Debug\dbgutil\$(XPlatHostLibBuildDir)\dbgutil.nativeproj - - - - - - - - - - - - - - - - - - - - - - - - - - - - $(IntermediateOutputDirectory)\SOS.def - $(ClAdditionalOptions) /TC - - - - - - - - - - - - - - - Intra - Include - - - - - - - $(BuildLinkedDependsOn);GenLongNameSOS - - - - - - - - - - - - - diff --git a/src/ToolBox/SOS/Strike/strike.h b/src/ToolBox/SOS/Strike/strike.h index e070898..dfc0dcf 100644 --- a/src/ToolBox/SOS/Strike/strike.h +++ b/src/ToolBox/SOS/Strike/strike.h @@ -44,10 +44,6 @@ #define _wcsstr wcsstr #endif // !PAL_STDCPP_COMPAT -#ifdef PLATFORM_UNIX -#define _vsnprintf vsnprintf -#endif - #define ___in _SAL1_Source_(__in, (), _In_) #define ___out _SAL1_Source_(__out, (), _Out_) diff --git a/src/ToolBox/SOS/Strike/xplat/dbgeng.h b/src/ToolBox/SOS/Strike/xplat/dbgeng.h index b456227..5dcf957 100644 --- a/src/ToolBox/SOS/Strike/xplat/dbgeng.h +++ b/src/ToolBox/SOS/Strike/xplat/dbgeng.h @@ -84,7 +84,7 @@ public: va_list args) { char str[4096]; - int length = PAL__vsnprintf(str, sizeof(str), format, args); + int length = _vsnprintf_s(str, sizeof(str), _TRUNCATE, format, args); if (length > 0) { return Output(mask, "%s", str); diff --git a/src/ToolBox/SOS/diasdk/diasdk.nativeproj b/src/ToolBox/SOS/diasdk/diasdk.nativeproj deleted file mode 100644 index 230e2d9..0000000 --- a/src/ToolBox/SOS/diasdk/diasdk.nativeproj +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - true - DIALib - DLLFROMIDL - true - $(UserIncludes); - $(VCToolsIncPath) - $(IntermediateOutputDirectory) - /namespace:Dia /unsafe - - - - - - Intra - Binary - - - - - - - - - - - - - - $(BuildLinkedDependsOn) - PlaceSymbols - - - - diff --git a/src/ToolBox/SOS/dirs.proj b/src/ToolBox/SOS/dirs.proj deleted file mode 100644 index 85bea0d..0000000 --- a/src/ToolBox/SOS/dirs.proj +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - true - false - true - true - - - - - FX - - - - - - - - - - FX;PK - - - FX;PK - - - - - diff --git a/src/ToolBox/SOS/lldbplugin/CMakeLists.txt b/src/ToolBox/SOS/lldbplugin/CMakeLists.txt index 7f1fa77..29b36e8 100644 --- a/src/ToolBox/SOS/lldbplugin/CMakeLists.txt +++ b/src/ToolBox/SOS/lldbplugin/CMakeLists.txt @@ -30,8 +30,11 @@ elseif(CLR_CMAKE_PLATFORM_ARCH_ARM) add_definitions(-DDBG_TARGET_32BIT=1) add_definitions(-DDBG_TARGET_ARM=1) elseif(CLR_CMAKE_PLATFORM_ARCH_ARM64) - message(WARNING "lldb is not supported on linux/aarch64 yet") - return() + add_definitions(-D_TARGET_ARM64_=1) + add_definitions(-DDBG_TARGET_64BIT=1) + add_definitions(-DDBG_TARGET_ARM64=1) + add_definitions(-DDBG_TARGET_WIN64=1) + add_definitions(-DBIT64) endif() set(ENABLE_LLDBPLUGIN ${CLR_CMAKE_PLATFORM_UNIX} CACHE BOOL "Enable building the SOS plugin for LLDB.") @@ -49,13 +52,13 @@ if(NOT ENABLE_LLDBPLUGIN) endif() # Check for LLDB library -find_library(LLDB NAMES LLDB lldb lldb-3.8 lldb-3.6 lldb-3.5 PATHS "${WITH_LLDB_LIBS}" PATH_SUFFIXES llvm NO_DEFAULT_PATH) -find_library(LLDB NAMES LLDB lldb lldb-3.8 lldb-3.6 lldb-3.5 PATH_SUFFIXES llvm) +find_library(LLDB NAMES LLDB lldb lldb-3.9 lldb-3.8 lldb-3.7 lldb-3.6 lldb-3.5 PATHS "${WITH_LLDB_LIBS}" PATH_SUFFIXES llvm NO_DEFAULT_PATH) +find_library(LLDB NAMES LLDB lldb lldb-3.9 lldb-3.8 lldb-3.7 lldb-3.6 lldb-3.5 PATH_SUFFIXES llvm) if(LLDB STREQUAL LLDB-NOTFOUND) if(REQUIRE_LLDBPLUGIN) - message(FATAL_ERROR "Cannot find lldb-3.5, lldb-3.6 or lldb-3.8. Try installing lldb-3.6-dev (or the appropriate package for your platform)") + message(FATAL_ERROR "Cannot find lldb-3.5, lldb-3.6, lldb-3.8 or lldb-3.9. Try installing lldb-3.6-dev (or the appropriate package for your platform)") else() - message(WARNING "Cannot find lldb-3.5,lldb-3.6 or lldb-3.8. Try installing lldb-3.6-dev (or the appropriate package for your platform)") + message(WARNING "Cannot find lldb-3.5,lldb-3.6, lldb-3.8 or lldb-3.9. Try installing lldb-3.6-dev (or the appropriate package for your platform)") endif() return() endif() @@ -63,25 +66,24 @@ endif() message(STATUS "LLDB: ${LLDB}") # Check for LLDB headers - +# Multiple versions of LLDB can install side-by-side, so we need to check for lldb in various locations. +# If the file in a directory is found the result is stored in the variable and the search will not be repeated unless the variable is cleared. find_path(LLDB_H "lldb/API/LLDB.h" PATHS "${WITH_LLDB_INCLUDES}" NO_DEFAULT_PATH) find_path(LLDB_H "lldb/API/LLDB.h") + +find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-3.9/include") +find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-3.8/include") +find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-3.7/include") +find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-3.6/include") +find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-3.5/include") + if(LLDB_H STREQUAL LLDB_H-NOTFOUND) - find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-3.8/include") - if(LLDB_H STREQUAL LLDB_H-NOTFOUND) - find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-3.6/include") - if(LLDB_H STREQUAL LLDB_H-NOTFOUND) - find_path(LLDB_H "lldb/API/LLDB.h" PATHS "/usr/lib/llvm-3.5/include") - if(LLDB_H STREQUAL LLDB_H-NOTFOUND) - if(REQUIRE_LLDBPLUGIN) - message(FATAL_ERROR "Cannot find LLDB.h. Try installing lldb-3.6-dev (or the appropriate package for your platform)") - else() - message(WARNING "Cannot find LLDB.h Try installing lldb-3.6-dev (or the appropriate package for your platform)") - endif() - return() - endif() - endif() + if(REQUIRE_LLDBPLUGIN) + message(FATAL_ERROR "Cannot find LLDB.h. Try installing lldb-3.6-dev (or the appropriate package for your platform)") + else() + message(WARNING "Cannot find LLDB.h Try installing lldb-3.6-dev (or the appropriate package for your platform)") endif() + return() endif() message(STATUS "LLDB_H: ${LLDB_H}") diff --git a/src/ToolBox/SOS/lldbplugin/inc/lldbservices.h b/src/ToolBox/SOS/lldbplugin/inc/lldbservices.h index 16702b1..4817e81 100644 --- a/src/ToolBox/SOS/lldbplugin/inc/lldbservices.h +++ b/src/ToolBox/SOS/lldbplugin/inc/lldbservices.h @@ -81,6 +81,7 @@ extern "C" { #define IMAGE_FILE_MACHINE_I386 0x014c // Intel 386. #define IMAGE_FILE_MACHINE_ARMNT 0x01c4 // ARM Thumb-2 Little-Endian #define IMAGE_FILE_MACHINE_AMD64 0x8664 // AMD64 (K8) +#define IMAGE_FILE_MACHINE_ARM64 0xAA64 // ARM64 Little-Endian // Execution status codes used for waiting, // for returning current status and for diff --git a/src/ToolBox/SOS/lldbplugin/services.cpp b/src/ToolBox/SOS/lldbplugin/services.cpp index d2d2cf9..e3eee4f 100644 --- a/src/ToolBox/SOS/lldbplugin/services.cpp +++ b/src/ToolBox/SOS/lldbplugin/services.cpp @@ -171,6 +171,10 @@ LLDBServices::VirtualUnwind( DWORD spToFind = dtcontext->Esp; #elif DBG_TARGET_ARM DWORD spToFind = dtcontext->Sp; +#elif DBG_TARGET_ARM64 + DWORD64 spToFind = dtcontext->Sp; +#else +#error "spToFind undefined for this platform" #endif int numFrames = thread.GetNumFrames(); @@ -407,6 +411,12 @@ LLDBServices::GetExecutingProcessorType( *type = IMAGE_FILE_MACHINE_AMD64; #elif DBG_TARGET_ARM *type = IMAGE_FILE_MACHINE_ARMNT; +#elif DBG_TARGET_ARM64 + *type = IMAGE_FILE_MACHINE_ARM64; +#elif DBG_TARGET_X86 + *type = IMAGE_FILE_MACHINE_I386; +#else +#error "Unsupported target" #endif return S_OK; } diff --git a/src/ToolBox/dirs.proj b/src/ToolBox/dirs.proj deleted file mode 100644 index e16ddd1..0000000 --- a/src/ToolBox/dirs.proj +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - FX - - - - - true - false - true - true - - - - - - - - - - - FX;PK - - - - - - - - - - - - - - - FX;PK - - - - - - - - - - VS;FX - - - VS;FX - - - - - - - - - - - - - - - - FX;PK - - - - - - - - VS;FX - - - - - - - PK - - - - - - - - - - - - - - - diff --git a/src/binder/binder.targets b/src/binder/binder.targets deleted file mode 100644 index 01b35e2..0000000 --- a/src/binder/binder.targets +++ /dev/null @@ -1,50 +0,0 @@ - - - - SAK - SAK - SAK - SAK - - - - LIBRARY - $(ClrLibDest) - $(ClAdditionalOptions) -DUNICODE -D_UNICODE - $(LinkAdditionalOptions) /VERBOSE - $(Clrbase)\src\binder - - $(UserIncludes); - $(BinderPath); - $(BinderPath)\inc; - $(Clrbase)\src\inc; - $(Clrbase)\src\vm; - $(Clrbase)\src\vm\$(TargetCpu); - $(Clrbase)\src\strongname\inc; - $(SdkIncPath); - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/binder/dirs.proj b/src/binder/dirs.proj deleted file mode 100644 index cb7c0b4..0000000 --- a/src/binder/dirs.proj +++ /dev/null @@ -1,20 +0,0 @@ - - - - true - false - true - true - - - - - - - - - - - - - diff --git a/src/binder/v3binder/v3binder.nativeproj b/src/binder/v3binder/v3binder.nativeproj deleted file mode 100644 index 5412d69..0000000 --- a/src/binder/v3binder/v3binder.nativeproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - true - true - v3binder - - - - - diff --git a/src/binder/v3binder_crossgen/v3binder_crossgen.nativeproj b/src/binder/v3binder_crossgen/v3binder_crossgen.nativeproj deleted file mode 100644 index 61348e3..0000000 --- a/src/binder/v3binder_crossgen/v3binder_crossgen.nativeproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - v3binder_crossgen - - - - - diff --git a/src/classlibnative/Dirs.proj b/src/classlibnative/Dirs.proj deleted file mode 100644 index 0007a40..0000000 --- a/src/classlibnative/Dirs.proj +++ /dev/null @@ -1,29 +0,0 @@ - - - - - true - false - true - true - - - - - - - - - - - - - - - - - - - - - diff --git a/src/classlibnative/bcltype/BCLType.nativeproj b/src/classlibnative/bcltype/BCLType.nativeproj deleted file mode 100644 index 719a420..0000000 --- a/src/classlibnative/bcltype/BCLType.nativeproj +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - SAK - SAK - SAK - SAK - - - - true - true - ..\..\inc;$(Clrbase)\src\vm;$(Clrbase)\src\vm\$(TargetCpu);..\..\debug\inc\$(TargetCpu);..\..\debug\inc\dump;$(UserIncludes);$(VCToolsIncPath) - bcltype - $(ClrLibDest) - LIBRARY - $(CDefines);UNICODE;_UNICODE - $(ClAdditionalOptions) -DENABLE_PERF_COUNTERS - 4 - - - - - - - - - - - - - - - - - - - - - diff --git a/src/classlibnative/bcltype/CMakeLists.txt b/src/classlibnative/bcltype/CMakeLists.txt index 4df909a..7999c0c 100644 --- a/src/classlibnative/bcltype/CMakeLists.txt +++ b/src/classlibnative/bcltype/CMakeLists.txt @@ -7,7 +7,6 @@ endif(PerfCountersSupportedBuild) set(BCLTYPE_SOURCES arraynative.cpp arrayhelpers.cpp - console.cpp currency.cpp decimal.cpp windowsruntimebufferhelper.cpp diff --git a/src/classlibnative/bcltype/arraynative.cpp b/src/classlibnative/bcltype/arraynative.cpp index 58fa4dd..0eae8b2 100644 --- a/src/classlibnative/bcltype/arraynative.cpp +++ b/src/classlibnative/bcltype/arraynative.cpp @@ -961,7 +961,7 @@ void memmoveGCRefs(void *dest, const void *src, size_t len) } } - GCHeapUtilities::GetGCHeap()->SetCardsAfterBulkCopy((Object**)dest, len); + SetCardsAfterBulkCopy((Object**)dest, len); } void ArrayNative::ArrayCopyNoTypeCheck(BASEARRAYREF pSrc, unsigned int srcIndex, BASEARRAYREF pDest, unsigned int destIndex, unsigned int length) @@ -1021,7 +1021,7 @@ FCIMPL6(void, ArrayNative::ArrayCopy, ArrayBase* m_pSrc, INT32 m_iSrcIndex, Arra // cannot pass null for source or destination if (gc.pSrc == NULL || gc.pDst == NULL) { - FCThrowArgumentNullVoid(gc.pSrc==NULL ? W("source") : W("dest")); + FCThrowArgumentNullVoid(gc.pSrc==NULL ? W("sourceArray") : W("destinationArray")); } // source and destination must be arrays @@ -1048,16 +1048,16 @@ FCIMPL6(void, ArrayNative::ArrayCopy, ArrayBase* m_pSrc, INT32 m_iSrcIndex, Arra FCThrowArgumentOutOfRangeVoid(W("length"), W("ArgumentOutOfRange_NeedNonNegNum")); if (m_iSrcIndex < srcLB || (m_iSrcIndex - srcLB < 0)) - FCThrowArgumentOutOfRangeVoid(W("srcIndex"), W("ArgumentOutOfRange_ArrayLB")); + FCThrowArgumentOutOfRangeVoid(W("sourceIndex"), W("ArgumentOutOfRange_ArrayLB")); if (m_iDstIndex < destLB || (m_iDstIndex - destLB < 0)) - FCThrowArgumentOutOfRangeVoid(W("dstIndex"), W("ArgumentOutOfRange_ArrayLB")); + FCThrowArgumentOutOfRangeVoid(W("destinationIndex"), W("ArgumentOutOfRange_ArrayLB")); if ((DWORD)(m_iSrcIndex - srcLB + m_iLength) > srcLen) - FCThrowResVoid(kArgumentException, W("Arg_LongerThanSrcArray")); + FCThrowArgumentVoid(W("sourceArray"), W("Arg_LongerThanSrcArray")); if ((DWORD)(m_iDstIndex - destLB + m_iLength) > destLen) - FCThrowResVoid(kArgumentException, W("Arg_LongerThanDestArray")); + FCThrowArgumentVoid(W("destinationArray"), W("Arg_LongerThanDestArray")); int r = 0; diff --git a/src/classlibnative/bcltype/console.cpp b/src/classlibnative/bcltype/console.cpp deleted file mode 100644 index 7dfb30a..0000000 --- a/src/classlibnative/bcltype/console.cpp +++ /dev/null @@ -1,152 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// -// File: Console.cpp -// - -// -// Purpose: Native methods on System.Console -// -// - -#ifndef FEATURE_CORECLR - -#include "common.h" -#include "sbuffer.h" -#include -#include "console.h" - -// GetConsoleTitle sometimes interprets the second parameter (nSize) as number of bytes and sometimes as the number of chars. -// Instead of doing complicated and dangerous logic to determine if this may or may not occur, -// we simply assume the worst and reserve a bigger buffer. This way we may use a bit more memory, -// but we will always be safe. This macro helps us doing that: -#define ADJUST_NUM_CHARS(numChars) ((numChars) * 2) - -#define BUFF_SIZE(numChars) ( ((numChars) + 1) * sizeof(TCHAR) ) - -// A buffer of size ConsoleNative::MaxConsoleTitleLength is quite big. -// First, we try allocating a smaller buffer because most often, the console title is short. -// If it turns out that the short buffer size is insufficient, we try again using a larger buffer. -INT32 QCALLTYPE ConsoleNative::GetTitle(QCall::StringHandleOnStack outTitle, INT32& outTitleLen) { - - QCALL_CONTRACT; - - INT32 result = 0; - - BEGIN_QCALL; - - // Reserve buffer: - InlineSBuffer< ADJUST_NUM_CHARS(BUFF_SIZE(ShortConsoleTitleLength)) > titleBuff; - - // Hold last error: - DWORD lastError; - - // Read console title, get length of the title: - - BYTE *buffPtr = titleBuff.OpenRawBuffer( ADJUST_NUM_CHARS(BUFF_SIZE(ShortConsoleTitleLength)) ); - - SetLastError(0); - DWORD len = GetConsoleTitle((TCHAR *) buffPtr, ADJUST_NUM_CHARS(ShortConsoleTitleLength + 1)); - lastError = GetLastError(); - - titleBuff.CloseRawBuffer(); - - // If the title length is larger than supported maximum, do not bother reading it, just return the length: - if (len > MaxConsoleTitleLength) { - - outTitleLen = len; - outTitle.Set(W("")); - result = 0; - - // If title length is within valid range: - } else { - - // If the title is longer than the short buffer, but can fit in the max supported length, - // read it again with the long buffer: - if (len > ShortConsoleTitleLength) { - - COUNT_T buffSize = ADJUST_NUM_CHARS(BUFF_SIZE(len)); - titleBuff.SetSize(buffSize); - - BYTE *buffPtr = titleBuff.OpenRawBuffer(buffSize); - - SetLastError(0); - len = GetConsoleTitle((TCHAR *) buffPtr, ADJUST_NUM_CHARS(len + 1)); - lastError = GetLastError(); - - titleBuff.CloseRawBuffer(); - } - - // Zero may indicate error or empty title. Check for error: - result = (INT32) (0 == len ? lastError : 0); - - // If no error, set title and length: - if (0 == result) { - const BYTE *cBuffPtr = (const BYTE *) titleBuff; - outTitle.Set((TCHAR *) cBuffPtr); - outTitleLen = (INT32) len; - - // If error, set to empty: - } else { - outTitleLen = (INT32) -1; - // No need to set the title string if we have an error anyway. - } - } // if title length is within valid range. - - END_QCALL; - - return result; -} - -// Block waiting for data to become available on the console stream indicated by the safe file handle passed. -// Ensure that the thread remains abortable in the process. -FCIMPL2(void, ConsoleStreamHelper::WaitForAvailableConsoleInput, SafeHandle* refThisUNSAFE, CLR_BOOL bIsPipe) -{ - FCALL_CONTRACT; - - SAFEHANDLEREF refConsoleHandle(refThisUNSAFE); - - HELPER_METHOD_FRAME_BEGIN_1(refConsoleHandle); - - // Prevent the console handle being closed under our feet. - SafeHandleHolder shh(&refConsoleHandle); - - // Don't pass the address of the native handle within the safe handle to DoAppropriateWait since the safe - // handle is on the GC heap and could be moved. Instead copy the native handle out into a stack location - // (this is safe because we've ref-counted the safe handle to prevent it being disposed on us). - HANDLE hNativeConsoleHandle = refConsoleHandle->GetHandle(); - - bool skipWait = false; - - // If we are reading from a pipe and the other end of the pipe was closed, then do not block. No one can write to it. - // Also we can skip blocking if we do have data available. We should block if nothing is available, with the assumption - // that Windows is smart enough to handle pipes where the other end is closed. - if (bIsPipe) - { - DWORD cBytesRead, cTotalBytesAvailable, cBytesLeftThisMessage; - int r = PeekNamedPipe(hNativeConsoleHandle, NULL, 0, &cBytesRead, &cTotalBytesAvailable, &cBytesLeftThisMessage); - if (r != 0) - { - skipWait = cTotalBytesAvailable > 0; - } - else - { - // Windows returns ERROR_BROKEN_PIPE if the other side of a pipe is closed. However, we've seen - // pipes return ERROR_NO_DATA and ERROR_PIPE_NOT_CONNECTED. Check for those too. - int errorCode = GetLastError(); - skipWait = errorCode == ERROR_BROKEN_PIPE || errorCode == ERROR_NO_DATA || errorCode == ERROR_PIPE_NOT_CONNECTED; - } - } - - // Perform the wait (DoAppropriateWait automatically handles thread aborts). - if (!skipWait) - { - GetThread()->DoAppropriateWait(1, &hNativeConsoleHandle, TRUE, INFINITE, WaitMode_Alertable); - } - - HELPER_METHOD_FRAME_END(); -} -FCIMPLEND - -#endif // ifndef FEATURE_CORECLR diff --git a/src/classlibnative/bcltype/console.h b/src/classlibnative/bcltype/console.h deleted file mode 100644 index b3772f2..0000000 --- a/src/classlibnative/bcltype/console.h +++ /dev/null @@ -1,45 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// -// File: Console.h -// - -// -// Purpose: Native methods on System.Console -// - -// -#ifndef _CONSOLE_H_ -#define _CONSOLE_H_ - -#ifndef FEATURE_CORECLR - -#include "qcall.h" - -class ConsoleNative { - -private: - - // Short buffer len to try using first: - static const INT32 ShortConsoleTitleLength = 200; - -public: - - // This value is copied from Console.cs. There is said: - // MSDN says console titles can be up to 64KB in length. - // But there is an exception if the buffer lengths longer than - // ~24500 Unicode characters are used. Oh well. - static const INT32 MaxConsoleTitleLength = 24500; - - static INT32 QCALLTYPE GetTitle(QCall::StringHandleOnStack outTitle, INT32& outTitleLen); -}; - -class ConsoleStreamHelper { -public: - static FCDECL2(void, WaitForAvailableConsoleInput, SafeHandle* refThisUNSAFE, CLR_BOOL bIsPipe); -}; - -#endif // ifndef FEATURE_CORECLR - -#endif // _CONSOLE_H_ diff --git a/src/classlibnative/bcltype/number.cpp b/src/classlibnative/bcltype/number.cpp index 6ca24d8..3f2d63c 100644 --- a/src/classlibnative/bcltype/number.cpp +++ b/src/classlibnative/bcltype/number.cpp @@ -142,12 +142,6 @@ void DoubleToNumber(double value, int precision, NUMBER* number) WRAPPER_NO_CONTRACT _ASSERTE(number != NULL); -#ifndef FEATURE_BCL_FORMATTING - number->palNumber=PAL_DoubleToNumber(value); - IfNullThrow(number->palNumber); - number->palNumberType=PALNUMBERTYPE_DOUBLE; -#endif - number->precision = precision; if (((FPDOUBLE*)&value)->exp == 0x7FF) { number->scale = (((FPDOUBLE*)&value)->mantLo || ((FPDOUBLE*)&value)->mantHi) ? SCALE_NAN: SCALE_INF; @@ -736,13 +730,6 @@ void Int32ToNumber(int value, NUMBER* number) WRAPPER_NO_CONTRACT _ASSERTE(number != NULL); -#ifndef FEATURE_BCL_FORMATTING - number->palNumber=PAL_IntToNumber(value); - IfNullThrow(number->palNumber); - number->palNumberType=PALNUMBERTYPE_INT; -#endif - - wchar buffer[INT32_PRECISION+1]; number->precision = INT32_PRECISION; if (value >= 0) { @@ -769,12 +756,6 @@ void UInt32ToNumber(unsigned int value, NUMBER* number) WRAPPER_NO_CONTRACT _ASSERTE(number != NULL); -#ifndef FEATURE_BCL_FORMATTING - number->palNumber=PAL_UIntToNumber(value); - IfNullThrow(number->palNumber); - number->palNumberType=PALNUMBERTYPE_UINT; -#endif - wchar buffer[UINT32_PRECISION+1]; number->precision = UINT32_PRECISION; number->sign = 0; @@ -880,12 +861,6 @@ void Int64ToNumber(__int64 value, NUMBER* number) { WRAPPER_NO_CONTRACT -#ifndef FEATURE_BCL_FORMATTING - number->palNumber=PAL_Int64ToNumber(value); - IfNullThrow(number->palNumber); - number->palNumberType=PALNUMBERTYPE_INT64; -#endif - wchar buffer[INT64_PRECISION+1]; number->precision = INT64_PRECISION; if (value >= 0) { @@ -934,29 +909,6 @@ void UInt64ToNumber(unsigned __int64 value, NUMBER* number) } -#ifndef FEATURE_BCL_FORMATTING -void NumberToUInt64(NUMBER * number, unsigned __int64* value) -{ - _ASSERTE(NULL != number); - _ASSERTE(NULL != value); - - if (NULL != number && NULL != value) { - (*value) = 0; - int i = 0; - while (i < NUMBER_MAXDIGITS && i < number->precision && number->digits[i] != NULL) { - _ASSERTE((number->digits[i] - '0') >= 0 && (number->digits[i] - '0') <= 9); - *value = (10 * (*value)) + (number->digits[i] - '0'); - i++; - } - while (i < number->scale) { - *value = (10 * (*value)); - i++; - } - } -} -#endif - - void RoundNumber(NUMBER* number, int pos) { LIMITED_METHOD_CONTRACT @@ -985,50 +937,6 @@ void RoundNumber(NUMBER* number, int pos) } digits[i] = 0; -#ifndef FEATURE_BCL_FORMATTING -// -// The PAL stores PALNUMBER as the actual numeric type where as NUMBER is in string form; -// Convert NUMBER back into its original type and pass it to the PAL for later use -// - if (0 != number->palNumber) { - if (PALNUMBERTYPE_DOUBLE == number->palNumberType) { - // no need to round NaN or infinity double values - if (SCALE_NAN != ((unsigned int)number->scale) && SCALE_INF != ((unsigned int)number->scale)) { - double value = 0.0; - NumberToDouble(number, &value); - // make sure the rounding didn't accidently cause the good value - // to be turned into NaN or infinity - if (((FPDOUBLE*)&value)->exp != 0x7FF) { - number->palNumber=PAL_DoubleToNumber(value); - } - } - } - else { - unsigned __int64 value = 0; - NumberToUInt64(number, &value); - switch(number->palNumberType) { - case PALNUMBERTYPE_INT: - _ASSERTE((value >> 32) == 0); - number->palNumber=PAL_IntToNumber(((unsigned int)value) * (number->sign ? -1 : 1)); - break; - case PALNUMBERTYPE_UINT: - _ASSERTE((value >> 32) == 0); - number->palNumber=PAL_UIntToNumber((unsigned int)value); - break; - case PALNUMBERTYPE_INT64: - _ASSERTE((value >> 63) == 0); - number->palNumber=PAL_Int64ToNumber(((__int64)value) * (number->sign ? -1 : 1)); - break; - case PALNUMBERTYPE_UINT64: - number->palNumber=PAL_UInt64ToNumber(value); - break; - default: - CONSISTENCY_CHECK_MSGF(0, ("This palNumberType is not understood '(%d)''\n", number->palNumberType)); - break; - } - } - } -#endif } #if defined(_MSC_VER) && defined(_TARGET_X86_) @@ -1112,29 +1020,6 @@ wchar* FormatGeneral(__in_ecount(cchBuffer) wchar* buffer, SIZE_T cchBuffer, NUM } } -#ifndef FEATURE_BCL_FORMATTING - if (number->palNumber) - { - WCHAR sExp[2]={expChar}; - LPCWSTR strNumberDecimal(sNumberDecimal!=NULL?sNumberDecimal->GetBuffer():NULL); - LPCWSTR strPositive(sPositive!=NULL?sPositive->GetBuffer():NULL); - LPCWSTR strNegative(sNegative!=NULL?sNegative->GetBuffer():NULL); - LPCWSTR strZero(sZero!=NULL?sZero->GetBuffer():NULL); - - int nChars; - - // nMaxDigits for Scientific are 1 more than needed - if (scientific) - nChars=PAL_FormatScientific(NULL, buffer, cchBuffer, number->palNumber,-1,nMaxDigits-1,sExp,strNumberDecimal,strPositive,strNegative,strZero); - else - nChars=PAL_FormatDecimal(NULL, buffer, cchBuffer, number->palNumber,-1,nMaxDigits,-1, -1,-1,strNumberDecimal,NULL,strNegative,strZero); - - if(nChars<0) - return NULL; - return buffer+nChars; - } -#endif - wchar* dig = GetDigitsBuffer(number); _ASSERT(dig != NULL); if (digPos > 0) { @@ -1162,26 +1047,9 @@ wchar* FormatGeneral(__in_ecount(cchBuffer) wchar* buffer, SIZE_T cchBuffer, NUM wchar* FormatScientific(__in_ecount(cchBuffer) wchar* buffer, SIZE_T cchBuffer, NUMBER* number, int nMinDigits, int nMaxDigits, wchar expChar, STRINGREF sNumberDecimal, STRINGREF sPositive, STRINGREF sNegative, STRINGREF sZero) { - WRAPPER_NO_CONTRACT - _ASSERTE(number != NULL); - _ASSERTE(buffer != NULL); -#ifndef FEATURE_BCL_FORMATTING - if (number->palNumber) - { - WCHAR sExp[2]={expChar}; - LPCWSTR strNumberDecimal(sNumberDecimal!=NULL?sNumberDecimal->GetBuffer():NULL); - LPCWSTR strPositive(sPositive!=NULL?sPositive->GetBuffer():NULL); - LPCWSTR strNegative(sNegative!=NULL?sNegative->GetBuffer():NULL); - LPCWSTR strZero(sZero!=NULL?sZero->GetBuffer():NULL); - - // nMaxDigits passed into FormatScientific are 1 more than requested - int nChars=PAL_FormatScientific(NULL, buffer, cchBuffer, number->palNumber,nMinDigits, nMaxDigits-1,sExp,strNumberDecimal,strPositive,strNegative,strZero); - if(nChars<0) - ThrowLastError(); - return buffer+nChars; - } -#endif - + WRAPPER_NO_CONTRACT + _ASSERTE(number != NULL); + _ASSERTE(buffer != NULL); wchar* dig = GetDigitsBuffer(number); _ASSERTE(dig != NULL); @@ -1207,21 +1075,6 @@ wchar* FormatFixed(__in_ecount(cchBuffer) wchar* buffer, SIZE_T cchBuffer, NUMBE PRECONDITION(CheckPointer(number)); } CONTRACTL_END; -#ifndef FEATURE_BCL_FORMATTING - if (number->palNumber) - { - LPCWSTR strDecimal(sDecimal!=NULL?sDecimal->GetBuffer():NULL); - LPCWSTR strNegative(sNegative!=NULL?sNegative->GetBuffer():NULL); - LPCWSTR strZero(sZero!=NULL?sZero->GetBuffer():NULL); - - int nChars=PAL_FormatDecimal(NULL, buffer, cchBuffer, number->palNumber,nMinDigits,nMaxDigits,-1, -1,-1,strDecimal,W(""),strNegative,strZero); - if(nChars<0) - return NULL; - return buffer+nChars; - } -#endif - - int digPos = number->scale; wchar* dig = GetDigitsBuffer(number); const I4* groupDigits = NULL; @@ -1328,33 +1181,6 @@ wchar* FormatNumber(__in_ecount(cchBuffer) wchar* buffer, SIZE_T cchBuffer, NUMB PRECONDITION(CheckPointer(buffer)); PRECONDITION(CheckPointer(number)); } CONTRACTL_END; -#ifndef FEATURE_BCL_FORMATTING - if (number->palNumber) - { - LPCWSTR strDecimal(sNumberDecimal!=NULL?sNumberDecimal->GetBuffer():NULL); - LPCWSTR strGroup(sNumberGroup!=NULL?sNumberGroup->GetBuffer():NULL); - LPCWSTR strNegative(sNegative!=NULL?sNegative->GetBuffer():NULL); - LPCWSTR strZero(sZero!=NULL?sZero->GetBuffer():NULL); - int iPrimaryGroup=0; - int iSecondaryGroup=0; - if(cNumberGroup!=NULL) - { - int nGroups = cNumberGroup->GetNumComponents(); - I4* pGroups=(I4*)cNumberGroup->GetDataPtr(); - - if(nGroups>0) - iPrimaryGroup=pGroups[0]; - if(nGroups>1) - iSecondaryGroup=pGroups[1]; - } - - int nChars=PAL_FormatDecimal(NULL, buffer, cchBuffer, number->palNumber,nMinDigits,nMaxDigits, cNegativeNumberFormat, - iPrimaryGroup,iSecondaryGroup,strDecimal,strGroup,strNegative,strZero); - if(nChars<0) - return NULL; - return buffer+nChars; - } -#endif char ch; const char* fmt; @@ -1391,36 +1217,6 @@ wchar* FormatCurrency(__in_ecount(cchBuffer) wchar* buffer, SIZE_T cchBuffer, NU PRECONDITION(CheckPointer(number)); } CONTRACTL_END; -#ifndef FEATURE_BCL_FORMATTING - if (number->palNumber) - { - LPCWSTR strCurrencyDecimal(sCurrencyDecimal!=NULL?sCurrencyDecimal->GetBuffer():NULL); - LPCWSTR strCurrencyGroup(sCurrencyGroup!=NULL?sCurrencyGroup->GetBuffer():NULL); - LPCWSTR strNegative(sNegative!=NULL?sNegative->GetBuffer():NULL); - LPCWSTR strCurrency(sCurrency!=NULL?sCurrency->GetBuffer():NULL); - LPCWSTR strZero(sZero!=NULL?sZero->GetBuffer():NULL); - int iPrimaryGroup=0; - int iSecondaryGroup=0; - - if(cCurrencyGroup!=NULL) - { - int nGroups = cCurrencyGroup->GetNumComponents(); - I4* pGroups=(I4*)cCurrencyGroup->GetDataPtr(); - - if(nGroups>0) - iPrimaryGroup=pGroups[0]; - if(nGroups>1) - iSecondaryGroup=pGroups[1]; - } - - int nChars=PAL_FormatCurrency(NULL, buffer, cchBuffer, number->palNumber,nMinDigits,nMaxDigits,cNegCurrencyFormat, cPosCurrencyFormat, - iPrimaryGroup, iSecondaryGroup, strCurrencyDecimal,strCurrencyGroup,strNegative, strCurrency,strZero); - if (nChars<0) - return NULL; - - return buffer+nChars; - } -#endif char ch; const char* fmt; fmt = number->sign? @@ -1458,39 +1254,6 @@ wchar* FormatPercent(__in_ecount(cchBuffer) wchar* buffer, SIZE_T cchBuffer, NUM PRECONDITION(CheckPointer(number)); } CONTRACTL_END; - -#ifndef FEATURE_BCL_FORMATTING - if (number->palNumber) - { - LPCWSTR strPercentDecimal(sPercentDecimal!=NULL?sPercentDecimal->GetBuffer():NULL); - LPCWSTR strPercentGroup(sPercentGroup!=NULL?sPercentGroup->GetBuffer():NULL); - LPCWSTR strNegative(sNegative!=NULL?sNegative->GetBuffer():NULL); - LPCWSTR strPercent(sPercent!=NULL?sPercent->GetBuffer():NULL); - LPCWSTR strZero(sZero!=NULL?sZero->GetBuffer():NULL); - - int iPrimaryGroup=0; - int iSecondaryGroup=0; - - if(cPercentGroup!=NULL) - { - int nGroups = cPercentGroup->GetNumComponents(); - I4* pGroups=(I4*)cPercentGroup->GetDataPtr(); - - if(nGroups>0) - iPrimaryGroup=pGroups[0]; - if(nGroups>1) - iSecondaryGroup=pGroups[1]; - } - - int nChars=PAL_FormatPercent(NULL, buffer, cchBuffer, number->palNumber,nMinDigits,nMaxDigits,cNegativePercentFormat, cPositivePercentFormat, - iPrimaryGroup, iSecondaryGroup,strPercentDecimal,strPercentGroup,strNegative, strPercent,strZero); - if(nChars<0) - return NULL; - - return buffer+nChars; - } -#endif - char ch; const char* fmt; fmt = number->sign? @@ -1612,12 +1375,6 @@ STRINGREF NumberToString(NUMBER* number, wchar format, int nMaxDigits, NUMFMTREF STRINGREF sCurrencyGroup = numfmt->sCurrencyGroup; STRINGREF sNegative = numfmt->sNegative; STRINGREF sCurrency = numfmt->sCurrency; -#ifndef FEATURE_BCL_FORMATTING - if (numfmt->bIsInvariant || 0 == number->palNumber) - { - // So that FormatCurrency uses BCL format - number->palNumber = 0; -#endif // Prefix: bogus warning 22011: newBufferLen+=digCount may be smaller than MIN_BUFFER_SIZE PREFIX_ASSUME(digCount >=0 && digCount <= INT32_MAX); newBufferLen += digCount; @@ -1637,22 +1394,6 @@ STRINGREF NumberToString(NUMBER* number, wchar format, int nMaxDigits, NUMFMTREF RoundNumber(number, number->scale + nMaxDigits); // Don't change this line to use digPos since digCount could have its sign changed. dst = FormatCurrency(dst, static_cast(newBufferLen/sizeof(WCHAR)), number, nMinDigits,nMaxDigits, cNegCurrencyFormat, cPosCurrencyFormat, cCurrencyGroup, sCurrencyDecimal, sCurrencyGroup, sNegative, sCurrency,sZero); -#ifndef FEATURE_BCL_FORMATTING - } - else - { - for ( SIZE_T nChars=128;;nChars*=2) - { - dst = buffer = (WCHAR*)buf.AllocThrows(nChars * sizeof(WCHAR)); - dst = FormatCurrency(dst, nChars, number, nMinDigits, nMaxDigits, cNegCurrencyFormat, cPosCurrencyFormat, cCurrencyGroup, sCurrencyDecimal, sCurrencyGroup, sNegative, sCurrency,sZero); - if (dst) - break; - if (GetLastError()!=ERROR_INSUFFICIENT_BUFFER) - ThrowLastError(); - } - } -#endif - break; } case 'F': @@ -1672,49 +1413,25 @@ STRINGREF NumberToString(NUMBER* number, wchar format, int nMaxDigits, NUMFMTREF // It is critical to format with the same values that we use to calculate buffer size. STRINGREF sNumberDecimal = numfmt->sNumberDecimal; STRINGREF sNegative = numfmt->sNegative; -#ifndef FEATURE_BCL_FORMATTING - if (numfmt->bIsInvariant || 0 == number->palNumber) - { - // So that FormatFixed uses BCL format - number->palNumber = 0; -#endif - - newBufferLen += digCount; - newBufferLen += sNegative->GetStringLength(); // For number and exponent - newBufferLen += sNumberDecimal->GetStringLength(); - - _ASSERTE(newBufferLen >= MIN_BUFFER_SIZE); - if (newBufferLen > INT32_MAX) { - COMPlusThrowOM(); - } - newBufferLen = newBufferLen * sizeof(WCHAR); - dst = buffer = (WCHAR*)buf.AllocThrows(static_cast(newBufferLen)); - - RoundNumber(number, number->scale + nMaxDigits); + + newBufferLen += digCount; + newBufferLen += sNegative->GetStringLength(); // For number and exponent + newBufferLen += sNumberDecimal->GetStringLength(); + + _ASSERTE(newBufferLen >= MIN_BUFFER_SIZE); + if (newBufferLen > INT32_MAX) { + COMPlusThrowOM(); + } + newBufferLen = newBufferLen * sizeof(WCHAR); + dst = buffer = (WCHAR*)buf.AllocThrows(static_cast(newBufferLen)); + + RoundNumber(number, number->scale + nMaxDigits); if (number->sign) { AddStringRef(&dst, sNegative); } dst = FormatFixed(dst, static_cast(newBufferLen/sizeof(WCHAR)-(dst-buffer)), number, nMinDigits,nMaxDigits, NULL, sNumberDecimal, NULL, sNegative, sZero); -#ifndef FEATURE_BCL_FORMATTING - } - else - { - for( SIZE_T nChars=128;;nChars*=2) - { - dst = buffer = (WCHAR*)buf.AllocThrows(nChars * sizeof(WCHAR)); - dst = FormatFixed(dst, nChars, number, nMinDigits,nMaxDigits, - NULL, - sNumberDecimal, NULL,sNegative,sZero); - - if (dst) - break; - if (GetLastError()!=ERROR_INSUFFICIENT_BUFFER) - ThrowLastError(); - } - } -#endif break; } @@ -1737,44 +1454,21 @@ STRINGREF NumberToString(NUMBER* number, wchar format, int nMaxDigits, NUMFMTREF STRINGREF sNumberDecimal = numfmt->sNumberDecimal; STRINGREF sNumberGroup = numfmt->sNumberGroup; int cNegativeNumberFormat = numfmt->cNegativeNumberFormat; -#ifndef FEATURE_BCL_FORMATTING - if (numfmt->bIsInvariant || 0 == number->palNumber) - { - // So that FormatNumber uses BCL format - number->palNumber = 0; -#endif - - newBufferLen += digCount; - newBufferLen += sNegative->GetStringLength(); // For number and exponent - if (!ClrSafeInt::addition((UINT64)sNumberGroup->GetStringLength() * digCount, newBufferLen, newBufferLen)) - COMPlusThrowOM(); - newBufferLen += sNumberDecimal->GetStringLength(); - - _ASSERTE(newBufferLen >= MIN_BUFFER_SIZE); - if (newBufferLen > INT32_MAX) { - COMPlusThrowOM(); - } - newBufferLen = newBufferLen * sizeof(WCHAR); - dst = buffer = (WCHAR*)buf.AllocThrows(static_cast(newBufferLen)); - - RoundNumber(number, number->scale + nMaxDigits); - dst = FormatNumber(dst, static_cast(newBufferLen/sizeof(WCHAR)),number, nMinDigits, nMaxDigits, cNegativeNumberFormat, cNumberGroup, sNumberDecimal, sNumberGroup, sNegative, sZero); -#ifndef FEATURE_BCL_FORMATTING - } - else - { - for( SIZE_T nChars=128;;nChars*=2) - { - dst = buffer = (WCHAR*)buf.AllocThrows(nChars * sizeof(WCHAR)); - dst = FormatNumber(dst, nChars, number, nMinDigits,nMaxDigits, cNegativeNumberFormat, cNumberGroup, sNumberDecimal, sNumberGroup, sNegative,sZero); - - if (dst) - break; - if (GetLastError()!=ERROR_INSUFFICIENT_BUFFER) - ThrowLastError(); - } + newBufferLen += digCount; + newBufferLen += sNegative->GetStringLength(); // For number and exponent + if (!ClrSafeInt::addition((UINT64)sNumberGroup->GetStringLength() * digCount, newBufferLen, newBufferLen)) + COMPlusThrowOM(); + newBufferLen += sNumberDecimal->GetStringLength(); + + _ASSERTE(newBufferLen >= MIN_BUFFER_SIZE); + if (newBufferLen > INT32_MAX) { + COMPlusThrowOM(); } -#endif + newBufferLen = newBufferLen * sizeof(WCHAR); + dst = buffer = (WCHAR*)buf.AllocThrows(static_cast(newBufferLen)); + + RoundNumber(number, number->scale + nMaxDigits); + dst = FormatNumber(dst, static_cast(newBufferLen/sizeof(WCHAR)),number, nMinDigits, nMaxDigits, cNegativeNumberFormat, cNumberGroup, sNumberDecimal, sNumberGroup, sNegative, sZero); break; } @@ -1792,45 +1486,22 @@ STRINGREF NumberToString(NUMBER* number, wchar format, int nMaxDigits, NUMFMTREF nMinDigits=nMaxDigits; nMaxDigits++; -#ifndef FEATURE_BCL_FORMATTING - if (numfmt->bIsInvariant || 0 == number->palNumber) - { - // So that FormatScientific uses BCL format - number->palNumber = 0; -#endif - - newBufferLen += nMaxDigits; - newBufferLen += (((INT64)sNegative->GetStringLength() + sPositive->GetStringLength()) *2); // For number and exponent - newBufferLen += sNumberDecimal->GetStringLength(); - - _ASSERTE(newBufferLen >= MIN_BUFFER_SIZE); - if (newBufferLen > INT32_MAX) { - COMPlusThrowOM(); - } - newBufferLen = newBufferLen * sizeof(WCHAR); - dst = buffer = (WCHAR*)buf.AllocThrows(static_cast(newBufferLen)); + newBufferLen += nMaxDigits; + newBufferLen += (((INT64)sNegative->GetStringLength() + sPositive->GetStringLength()) *2); // For number and exponent + newBufferLen += sNumberDecimal->GetStringLength(); - RoundNumber(number, nMaxDigits); - if (number->sign) { - AddStringRef(&dst, sNegative); - } - dst = FormatScientific(dst, static_cast(newBufferLen * sizeof(WCHAR)-(dst-buffer)),number, nMinDigits,nMaxDigits, format, sNumberDecimal, sPositive, sNegative,sZero); -#ifndef FEATURE_BCL_FORMATTING + _ASSERTE(newBufferLen >= MIN_BUFFER_SIZE); + if (newBufferLen > INT32_MAX) { + COMPlusThrowOM(); } - else - { - for( SIZE_T nChars=128;;nChars*=2) - { - dst = buffer = (WCHAR*)buf.AllocThrows(nChars * sizeof(WCHAR)); - dst = FormatScientific(dst, nChars, number, nMinDigits, nMaxDigits, format, sNumberDecimal, sPositive, sNegative,sZero); + newBufferLen = newBufferLen * sizeof(WCHAR); + dst = buffer = (WCHAR*)buf.AllocThrows(static_cast(newBufferLen)); - if (dst) - break; - if (GetLastError()!=ERROR_INSUFFICIENT_BUFFER) - ThrowLastError(); - } + RoundNumber(number, nMaxDigits); + if (number->sign) { + AddStringRef(&dst, sNegative); } -#endif + dst = FormatScientific(dst, static_cast(newBufferLen * sizeof(WCHAR)-(dst-buffer)),number, nMinDigits,nMaxDigits, format, sNumberDecimal, sPositive, sNegative,sZero); break; } @@ -1878,30 +1549,7 @@ STRINGREF NumberToString(NUMBER* number, wchar format, int nMaxDigits, NUMFMTREF } -#ifndef FEATURE_BCL_FORMATTING - if (numfmt->bIsInvariant || 0 == number->palNumber) - { - // So that FormatScientific uses BCL format - number->palNumber = 0; -#endif - - dst = FormatGeneral(dst, static_cast(newBufferLen/sizeof(WCHAR)), number, nMinDigits,nMaxDigits, format - ('G' - 'E'), sNumberDecimal, sPositive, sNegative, sZero, !enableRounding); -#ifndef FEATURE_BCL_FORMATTING - } - else - { - for( SIZE_T nChars=128;;nChars*=2) - { - dst = buffer = (WCHAR*)buf.AllocThrows(nChars * sizeof(WCHAR)); - dst = FormatGeneral(dst, nChars, number, nMinDigits,nMaxDigits, format - ('G' - 'E'), sNumberDecimal, sPositive, sNegative, sZero, !enableRounding); - - if (dst) - break; - if (GetLastError()!=ERROR_INSUFFICIENT_BUFFER) - ThrowLastError(); - } - } -#endif + dst = FormatGeneral(dst, static_cast(newBufferLen/sizeof(WCHAR)), number, nMinDigits,nMaxDigits, format - ('G' - 'E'), sNumberDecimal, sPositive, sNegative, sZero, !enableRounding); } break; @@ -1930,10 +1578,6 @@ STRINGREF NumberToString(NUMBER* number, wchar format, int nMaxDigits, NUMFMTREF STRINGREF sNegative = numfmt->sNegative; STRINGREF sPercent = numfmt->sPercent; -#ifndef FEATURE_BCL_FORMATTING - // So that FormatPercent uses BCL format - number->palNumber = 0; -#endif newBufferLen += digCount; newBufferLen += sNegative->GetStringLength(); // For number and exponent if (!ClrSafeInt::addition((UINT64)sPercentGroup->GetStringLength() * digCount, newBufferLen, newBufferLen)) @@ -1957,7 +1601,6 @@ STRINGREF NumberToString(NUMBER* number, wchar format, int nMaxDigits, NUMFMTREF COMPlusThrow(kFormatException, W("Argument_BadFormatSpecifier")); } // check for overflow of the preallocated buffer -#ifdef FEATURE_BCL_FORMATTING // when not defined the buffer could be resized, so skip the check // Review signed/unsigned mismatch in '<=' comparison. #pragma warning(push) #pragma warning(disable:4018) @@ -1965,7 +1608,6 @@ STRINGREF NumberToString(NUMBER* number, wchar format, int nMaxDigits, NUMFMTREF #pragma warning(pop) DoJITFailFast(); } -#endif return StringObject::NewString(buffer, (int) (dst - buffer)); } @@ -2047,12 +1689,6 @@ STRINGREF NumberToStringFormat(NUMBER* number, STRINGREF str, NUMFMTREF numfmt) section = FindSection(format, (GetDigitsBuffer(number))[0] == 0 ? 2 : number->sign ? 1 : 0); -#ifndef FEATURE_BCL_FORMATTING - // custom formatting is all done in the VM without the PAL. Blanking - // the palNumber field avoids unnecessary RoundNumber calculations - number->palNumber = 0; -#endif - ParseSection: digitCount = 0; decimalPos = -1; @@ -2607,11 +2243,6 @@ FCIMPL3_VII(Object*, COMNumber::FormatSingle, float value, StringObject* formatU //and display that. DoubleToNumber(argsValue, FLOAT_PRECISION, &number); -#ifndef FEATURE_BCL_FORMATTING - // Make sure that BCL formatting is used for Single to avoid lossy conversion to Double - number.palNumber = 0; -#endif - if (number.scale == (int) SCALE_NAN) { gc.refRetVal = gc.numfmt->sNaN; goto lExit; @@ -2654,10 +2285,6 @@ FCIMPL3_VII(Object*, COMNumber::FormatSingle, float value, StringObject* formatU } DoubleToNumber(value, precision, &number); -#ifndef FEATURE_BCL_FORMATTING - // Make sure that BCL formatting is used for Single to avoid lossy conversion to Double - number.palNumber = 0; -#endif if (number.scale == (int) SCALE_NAN) { gc.refRetVal = gc.numfmt->sNaN; diff --git a/src/classlibnative/bcltype/number.h b/src/classlibnative/bcltype/number.h index 3b72781..87bab3b 100644 --- a/src/classlibnative/bcltype/number.h +++ b/src/classlibnative/bcltype/number.h @@ -14,26 +14,12 @@ #define NUMBER_MAXDIGITS 50 -#ifndef FEATURE_BCL_FORMATTING -enum PAL_NUMBERType { - PALNUMBERTYPE_INT = 1, // PAL_IntToNumber - PALNUMBERTYPE_INT64 = 2, // PAL_Int64ToNumber - PALNUMBERTYPE_UINT = 3, // PAL_UIntToNumber - PALNUMBERTYPE_UINT64 = 4, // PAL_UInt64ToNumber - PALNUMBERTYPE_DOUBLE = 5, // PAL_DoubleToNumber -}; -#endif - struct NUMBER { int precision; int scale; int sign; wchar_t digits[NUMBER_MAXDIGITS + 1]; wchar_t* allDigits; -#ifndef FEATURE_BCL_FORMATTING - PAL_NUMBERHolder palNumber; - PAL_NUMBERType palNumberType; -#endif NUMBER() : precision(0), scale(0), sign(0), allDigits(NULL) {} }; diff --git a/src/classlibnative/float/Float.nativeproj b/src/classlibnative/float/Float.nativeproj deleted file mode 100644 index ef7f818..0000000 --- a/src/classlibnative/float/Float.nativeproj +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - SAK - SAK - SAK - SAK - - - - true - true - - Full - ..\inc;$(UserIncludes);$(Clrbase)\src\vm;$(Clrbase)\src\vm\$(TargetCpu);$(VCToolsIncPath);$(Clrbase)\src\strongname\inc - comfloat_wks - $(ClrLibDest) - LIBRARY - $(CDefines);UNICODE;_UNICODE - 4 - - - - - - - - - diff --git a/src/classlibnative/nls/NLS.nativeproj b/src/classlibnative/nls/NLS.nativeproj deleted file mode 100644 index 8a08bc8..0000000 --- a/src/classlibnative/nls/NLS.nativeproj +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - SAK - SAK - SAK - SAK - - - - true - true - - - $(UserIncludes);..\inc;$(Clrbase)\src\vm;$(Clrbase)\src\vm\$(TargetCpu);$(VCToolsIncPath);$(Clrbase)\src\strongname\inc;..\bcltype - comnls_wks - $(ClrLibDest) - LIBRARY - $(CDefines);UNICODE;_UNICODE - - - - - - - - - - - diff --git a/src/coreclr/dirs.proj b/src/coreclr/dirs.proj deleted file mode 100644 index 6b14c1a..0000000 --- a/src/coreclr/dirs.proj +++ /dev/null @@ -1,25 +0,0 @@ - - - - - true - false - true - true - - - - - - - - - - - - - - - - - diff --git a/src/coreclr/hosts/coreconsole/CoreConsole.nativeproj b/src/coreclr/hosts/coreconsole/CoreConsole.nativeproj deleted file mode 100644 index bdb190f..0000000 --- a/src/coreclr/hosts/coreconsole/CoreConsole.nativeproj +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - true - true - CoreConsole - PROGRAM - console - wmain - $(ClAdditionalOptions) -DUNICODE -D_UNICODE - true - - - - - - - - - - - - - - - - - - diff --git a/src/coreclr/hosts/corerun/coreRun.nativeproj b/src/coreclr/hosts/corerun/coreRun.nativeproj deleted file mode 100644 index 87b64a5..0000000 --- a/src/coreclr/hosts/corerun/coreRun.nativeproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - true - true - CoreRun - PROGRAM - console - wmain - $(ClAdditionalOptions) -DUNICODE -D_UNICODE - true - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/coreclr/hosts/dirs.proj b/src/coreclr/hosts/dirs.proj deleted file mode 100644 index 1138295..0000000 --- a/src/coreclr/hosts/dirs.proj +++ /dev/null @@ -1,19 +0,0 @@ - - - - - true - false - true - true - - - - - - - - - - - diff --git a/src/coreclr/hosts/unixcoreconsole/CMakeLists.txt b/src/coreclr/hosts/unixcoreconsole/CMakeLists.txt index 8988e60..94587b5 100644 --- a/src/coreclr/hosts/unixcoreconsole/CMakeLists.txt +++ b/src/coreclr/hosts/unixcoreconsole/CMakeLists.txt @@ -23,11 +23,16 @@ endif(NOT CMAKE_SYSTEM_NAME STREQUAL FreeBSD AND NOT CMAKE_SYSTEM_NAME STREQUAL # pthread by the process executable ensures that all locks are initialized properly. target_link_libraries(coreconsole unixcoreruncommon - pthread ) +if(NOT CLR_CMAKE_PLATFORM_ANDROID) + target_link_libraries(coreconsole + pthread + ) +endif() + add_dependencies(coreconsole coreclr ) -install_clr(coreconsole) \ No newline at end of file +install_clr(coreconsole) diff --git a/src/coreclr/hosts/unixcorerun/CMakeLists.txt b/src/coreclr/hosts/unixcorerun/CMakeLists.txt index b32c983..b5dc730 100644 --- a/src/coreclr/hosts/unixcorerun/CMakeLists.txt +++ b/src/coreclr/hosts/unixcorerun/CMakeLists.txt @@ -23,11 +23,17 @@ endif(NOT CMAKE_SYSTEM_NAME STREQUAL FreeBSD AND NOT CMAKE_SYSTEM_NAME STREQUAL # pthread by the process executable ensures that all locks are initialized properly. target_link_libraries(corerun unixcoreruncommon - pthread ) +# Android implements pthread natively +if(NOT CLR_CMAKE_PLATFORM_ANDROID) + target_link_libraries(corerun + pthread + ) +endif() + add_dependencies(corerun coreclr ) -install_clr(corerun) \ No newline at end of file +install_clr(corerun) diff --git a/src/coreclr/hosts/unixcoreruncommon/coreruncommon.cpp b/src/coreclr/hosts/unixcoreruncommon/coreruncommon.cpp index d7186d7..5ac7654 100644 --- a/src/coreclr/hosts/unixcoreruncommon/coreruncommon.cpp +++ b/src/coreclr/hosts/unixcoreruncommon/coreruncommon.cpp @@ -313,6 +313,7 @@ int ExecuteManagedAssembly( std::string appPath; GetDirectory(managedAssemblyAbsolutePath, appPath); + std::string tpaList; // Construct native search directory paths std::string nativeDllSearchDirs(appPath); char *coreLibraries = getenv("CORE_LIBRARIES"); @@ -320,11 +321,14 @@ int ExecuteManagedAssembly( { nativeDllSearchDirs.append(":"); nativeDllSearchDirs.append(coreLibraries); + if (std::strcmp(coreLibraries, clrFilesAbsolutePath) != 0) + { + AddFilesFromDirectoryToTpaList(coreLibraries, tpaList); + } } nativeDllSearchDirs.append(":"); nativeDllSearchDirs.append(clrFilesAbsolutePath); - std::string tpaList; AddFilesFromDirectoryToTpaList(clrFilesAbsolutePath, tpaList); void* coreclrLib = dlopen(coreClrDllPath.c_str(), RTLD_NOW | RTLD_LOCAL); @@ -443,7 +447,7 @@ int ExecuteManagedAssembly( } else { - char* error = dlerror(); + const char* error = dlerror(); fprintf(stderr, "dlopen failed to open the libcoreclr.so with error %s\n", error); } diff --git a/src/corefx/System.Globalization.Native/CMakeLists.txt b/src/corefx/System.Globalization.Native/CMakeLists.txt index 90f5067..9ecb0e0 100644 --- a/src/corefx/System.Globalization.Native/CMakeLists.txt +++ b/src/corefx/System.Globalization.Native/CMakeLists.txt @@ -67,6 +67,14 @@ _add_library(System.Globalization.Native ${NATIVEGLOBALIZATION_SOURCES} ) +_add_library(System.Globalization.Native_Static + STATIC + ${NATIVEGLOBALIZATION_SOURCES} +) + +# Remove the _Static postfix from the static library name +set_target_properties(System.Globalization.Native_Static PROPERTIES OUTPUT_NAME System.Globalization.Native) + # Disable the "lib" prefix. set_target_properties(System.Globalization.Native PROPERTIES PREFIX "") @@ -80,10 +88,17 @@ if(NOT CLR_CMAKE_PLATFORM_DARWIN) ${ICUUC} ${ICUI18N} ) + target_link_libraries(System.Globalization.Native_Static + ${ICUUC} + ${ICUI18N} + ) elseif(NOT CMAKE_SYSTEM_NAME STREQUAL FreeBSD AND NOT CMAKE_SYSTEM_NAME STREQUAL NetBSD) target_link_libraries(System.Globalization.Native dl ) + target_link_libraries(System.Globalization.Native_Static + dl + ) endif() else() target_link_libraries(System.Globalization.Native @@ -100,4 +115,5 @@ verify_dependencies( # add the install targets install_clr(System.Globalization.Native) +install(TARGETS System.Globalization.Native_Static DESTINATION .) diff --git a/src/corefx/format-code.sh b/src/corefx/format-code.sh index 3d0cfcc..c0898f2 100755 --- a/src/corefx/format-code.sh +++ b/src/corefx/format-code.sh @@ -2,10 +2,10 @@ # OS X names clang-format as clang-format; Ubuntu uses # clang-format-version so check for the right one -if which "clang-format-3.6" > /dev/null 2>&1 ; then - export CF="$(which clang-format-3.6)" -elif which "clang-format" > /dev/null 2>&1 ; then - export CF="$(which clang-format)" +if command -v "clang-format-3.6" > /dev/null; then + export CF="$(command -v clang-format-3.6)" +elif command -v "clang-format" > /dev/null; then + export CF="$(command -v clang-format)" else echo "Unable to find clang-format" exit 1 diff --git a/src/debug/daccess/daccess.targets b/src/debug/daccess/daccess.targets deleted file mode 100644 index 43da554..0000000 --- a/src/debug/daccess/daccess.targets +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - true - - - - - - - true - $(ClrSrcDirectory)\debug\daccess - $(UserIncludes); - $(DaccessSrcDirectory); - $(ClrSrcDirectory)\vm; - $(ClrSrcDirectory)\vm\$(TargetCpu); - $(ClrSrcDirectory)\debug\inc; - $(ClrSrcDirectory)\debug\inc\$(TargetCpu); - $(ClrSrcDirectory)\debug\inc\dump; - $(ClrSrcDirectory)\debug\ee; - $(ClrSrcDirectory)\inc; - $(ClrSrcDirectory)\inc\$(IntermediateOutputDirectory); - $(VCToolsIncPath); - $(ClrSrcDirectory)\gcdump; - $(ClrSrcDirectory)\md\inc; - $(ClrSrcDirectory)\gc; - $(ClrSrcDirectory)\strongname\inc - $(CDefines);UNICODE;_UNICODE;$(USER_SPECIFIC_C_DEFINES);FEATURE_NO_HOST - dac_wks - $(ClrLibDest) - LIBRARY - stdafx.h - true - $(DaccessSrcDirectory)\stdafx.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/debug/daccess/dacdbiimplstackwalk.cpp b/src/debug/daccess/dacdbiimplstackwalk.cpp index d3a2a63..29c9626 100644 --- a/src/debug/daccess/dacdbiimplstackwalk.cpp +++ b/src/debug/daccess/dacdbiimplstackwalk.cpp @@ -1156,14 +1156,14 @@ void DacDbiInterfaceImpl::UpdateContextFromRegDisp(REGDISPLAY * pRegDisp, // Do a partial copy first. pContext->ContextFlags = (CONTEXT_INTEGER | CONTEXT_CONTROL); - pContext->Edi = *pRegDisp->pEdi; - pContext->Esi = *pRegDisp->pEsi; - pContext->Ebx = *pRegDisp->pEbx; - pContext->Ebp = *pRegDisp->pEbp; - pContext->Eax = *pRegDisp->pEax; - pContext->Ecx = *pRegDisp->pEcx; - pContext->Edx = *pRegDisp->pEdx; - pContext->Esp = pRegDisp->Esp; + pContext->Edi = *pRegDisp->GetEdiLocation(); + pContext->Esi = *pRegDisp->GetEsiLocation(); + pContext->Ebx = *pRegDisp->GetEbxLocation(); + pContext->Ebp = *pRegDisp->GetEbpLocation(); + pContext->Eax = *pRegDisp->GetEaxLocation(); + pContext->Ecx = *pRegDisp->GetEcxLocation(); + pContext->Edx = *pRegDisp->GetEdxLocation(); + pContext->Esp = pRegDisp->SP; pContext->Eip = pRegDisp->ControlPC; // If we still have the pointer to the leaf CONTEXT, and the leaf CONTEXT is the same as the CONTEXT for diff --git a/src/debug/daccess/dacfn.cpp b/src/debug/daccess/dacfn.cpp index d8bae77..33dfa10 100644 --- a/src/debug/daccess/dacfn.cpp +++ b/src/debug/daccess/dacfn.cpp @@ -219,7 +219,7 @@ DacWriteAll(TADDR addr, PVOID buffer, ULONG32 size, bool throwEx) #ifdef FEATURE_PAL HRESULT -DacVirtualUnwind(DWORD threadId, PCONTEXT context, PT_KNONVOLATILE_CONTEXT_POINTERS contextPointers) +DacVirtualUnwind(DWORD threadId, PT_CONTEXT context, PT_KNONVOLATILE_CONTEXT_POINTERS contextPointers) { if (!g_dacImpl) { diff --git a/src/debug/daccess/datatargetadapter.cpp b/src/debug/daccess/datatargetadapter.cpp index f2a1cc6..4d4031d 100644 --- a/src/debug/daccess/datatargetadapter.cpp +++ b/src/debug/daccess/datatargetadapter.cpp @@ -127,8 +127,12 @@ DataTargetAdapter::GetPlatform( platform = CORDB_PLATFORM_POSIX_ARM; break; - case IMAGE_FILE_MACHINE_IA64: case IMAGE_FILE_MACHINE_ARM64: + ulExpectedPointerSize = 8; + platform = CORDB_PLATFORM_POSIX_ARM64; + break; + + case IMAGE_FILE_MACHINE_IA64: _ASSERTE_MSG(false, "Not supported platform."); return E_NOTIMPL; diff --git a/src/debug/daccess/dirs.proj b/src/debug/daccess/dirs.proj deleted file mode 100644 index 795d462..0000000 --- a/src/debug/daccess/dirs.proj +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - true - false - true - true - - - - - - - - - - diff --git a/src/debug/daccess/enummem.cpp b/src/debug/daccess/enummem.cpp index d66af05..0f38aa5 100644 --- a/src/debug/daccess/enummem.cpp +++ b/src/debug/daccess/enummem.cpp @@ -970,7 +970,7 @@ HRESULT ClrDataAccess::EnumMemWalkStackHelper(CLRDataEnumMemoryFlags flags, // Pulls in sequence points and local variable info DebugInfoManager::EnumMemoryRegionsForMethodDebugInfo(flags, pMethodDesc); -#ifdef WIN64EXCEPTIONS +#if defined(WIN64EXCEPTIONS) && defined(USE_GC_INFO_DECODER) if (addr != NULL) { @@ -988,7 +988,7 @@ HRESULT ClrDataAccess::EnumMemWalkStackHelper(CLRDataEnumMemoryFlags flags, DacEnumMemoryRegion(dac_cast(pGCInfo), gcDecoder.GetNumBytesRead(), true); } } -#endif // WIN64EXCEPTIONS +#endif // WIN64EXCEPTIONS && USE_GC_INFO_DECODER } pMethodDefinition.Clear(); } diff --git a/src/debug/dbgutil/dbgutil.props b/src/debug/dbgutil/dbgutil.props deleted file mode 100644 index 520b2c6..0000000 --- a/src/debug/dbgutil/dbgutil.props +++ /dev/null @@ -1,14 +0,0 @@ - - - LIBRARY - $(ClrLibDest) - windows - - $(Sehonly) - $(UserIncludes);$(Clrbase)\src\Debug\inc; - $(CDefines);UNICODE;_UNICODE - - - - - diff --git a/src/debug/dbgutil/dirs.proj b/src/debug/dbgutil/dirs.proj deleted file mode 100644 index f4c41b9..0000000 --- a/src/debug/dbgutil/dirs.proj +++ /dev/null @@ -1,16 +0,0 @@ - - - - - true - false - true - true - - - - - - - - diff --git a/src/debug/di/DI.props b/src/debug/di/DI.props deleted file mode 100644 index 1d7336d..0000000 --- a/src/debug/di/DI.props +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - true - true - - - - - - - - $(UserIncludes); - ..; - ..\..\inc; - ..\..\inc\dump; - ..\..\..\vm; - $(VCToolsIncPath); - - $(ClAdditionalOptions) -DUNICODE -D_UNICODE -DFEATURE_NO_HOST -DFEATURE_METADATA_LOAD_TRUSTED_IMAGES - $(ClrLibDest) - LIBRARY - stdafx.h - true - - ..\stdafx.cpp - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/debug/di/dbi.sln b/src/debug/di/dbi.sln deleted file mode 100644 index 33cbec1..0000000 --- a/src/debug/di/dbi.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2012 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dbi", "dbi.vcxproj", "{D8445C62-03DC-4D6A-A2F2-1AAF31577151}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D8445C62-03DC-4D6A-A2F2-1AAF31577151}.Debug|Win32.ActiveCfg = Debug|Win32 - {D8445C62-03DC-4D6A-A2F2-1AAF31577151}.Debug|Win32.Build.0 = Debug|Win32 - {D8445C62-03DC-4D6A-A2F2-1AAF31577151}.Release|Win32.ActiveCfg = Release|Win32 - {D8445C62-03DC-4D6A-A2F2-1AAF31577151}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/src/debug/di/dbi.vcxproj b/src/debug/di/dbi.vcxproj deleted file mode 100644 index 08533b7..0000000 --- a/src/debug/di/dbi.vcxproj +++ /dev/null @@ -1,143 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {D8445C62-03DC-4D6A-A2F2-1AAF31577151} - Win32Proj - dbi - - - - DynamicLibrary - true - v110 - Unicode - - - DynamicLibrary - false - v110 - true - Unicode - - - - - - - - - - - - - true - - - false - - - - - - Level3 - Disabled - WIN32;_DEBUG;_WINDOWS;_USRDLL;DBI_EXPORTS;DBG_TARGET_X86;_TARGET_X86_;VS_COMPILE;%(PreprocessorDefinitions) - ..\inc;..\..\inc;C:\clr_next\src\InternalApis\Sys_clr\inc;C:\CLR_Next\binaries\amd64chk\IntraPartitionAPIs\clr\inc;C:\CLR_Next\src\ndp\Common\Inc\version;C:\CLR_Next\binaries\amd64chk\SysBuild\Version;..\inc\i386;..\inc\dump - - - Windows - true - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_WINDOWS;_USRDLL;DBI_EXPORTS;DBG_TARGET_X86;_TARGET_X86_;VS_COMPILE;%(PreprocessorDefinitions) - ..\inc;..\..\inc;C:\clr_next\src\InternalApis\Sys_clr\inc;C:\CLR_Next\binaries\amd64chk\IntraPartitionAPIs\clr\inc;C:\CLR_Next\src\ndp\Common\Inc\version;C:\CLR_Next\binaries\amd64chk\SysBuild\Version;;..\inc\i386 - - - Windows - true - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/debug/di/dirs.proj b/src/debug/di/dirs.proj deleted file mode 100644 index c5a9894..0000000 --- a/src/debug/di/dirs.proj +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - true - false - true - - - - - - - - - - diff --git a/src/debug/di/rspriv.h b/src/debug/di/rspriv.h index 18920ad..8f369b7 100644 --- a/src/debug/di/rspriv.h +++ b/src/debug/di/rspriv.h @@ -6929,11 +6929,11 @@ public: // new-style constructor CordbMiscFrame(DebuggerIPCE_JITFuncData * pJITFuncData); -#if defined(DBG_TARGET_WIN64) || defined(DBG_TARGET_ARM) +#ifdef WIN64EXCEPTIONS SIZE_T parentIP; FramePointer fpParentOrSelf; bool fIsFilterFunclet; -#endif // DBG_TARGET_WIN64 || DBG_TARGET_ARM +#endif // WIN64EXCEPTIONS }; diff --git a/src/debug/di/rsthread.cpp b/src/debug/di/rsthread.cpp index a4660be..02fae00 100644 --- a/src/debug/di/rsthread.cpp +++ b/src/debug/di/rsthread.cpp @@ -5849,11 +5849,11 @@ CordbMiscFrame::CordbMiscFrame() // the real constructor which stores the funclet-related information in the CordbMiscFrame CordbMiscFrame::CordbMiscFrame(DebuggerIPCE_JITFuncData * pJITFuncData) { -#if defined(DBG_TARGET_WIN64) || defined(DBG_TARGET_ARM) +#ifdef WIN64EXCEPTIONS this->parentIP = pJITFuncData->parentNativeOffset; this->fpParentOrSelf = pJITFuncData->fpParentOrSelf; this->fIsFilterFunclet = (pJITFuncData->fIsFilterFrame == TRUE); -#endif // DBG_TARGET_WIN64 || DBG_TARGET_ARM +#endif // WIN64EXCEPTIONS } /* ------------------------------------------------------------------------- * diff --git a/src/debug/dirs.proj b/src/debug/dirs.proj deleted file mode 100644 index 43aa2dd..0000000 --- a/src/debug/dirs.proj +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - true - false - true - true - - - - - - - - - - - - - - diff --git a/src/debug/ee/DIRS.proj b/src/debug/ee/DIRS.proj deleted file mode 100644 index 63dd0c8..0000000 --- a/src/debug/ee/DIRS.proj +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - true - false - true - true - - - - - - - - - - diff --git a/src/debug/ee/DebuggerEE.vcproj b/src/debug/ee/DebuggerEE.vcproj deleted file mode 100644 index 6df51a0..0000000 --- a/src/debug/ee/DebuggerEE.vcproj +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/debug/ee/EE.props b/src/debug/ee/EE.props deleted file mode 100644 index 90b9f81..0000000 --- a/src/debug/ee/EE.props +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - $(UserIncludes); - $(Clrbase)\src\Debug\EE; - $(Clrbase)\src\vm; - $(Clrbase)\src\vm\$(TargetCpu); - $(Clrbase)\src\Debug\inc; - $(Clrbase)\src\Debug\inc\$(TargetCpu); - $(Clrbase)\src\Debug\inc\dump; - $(VCToolsIncPath); - $(Clrbase)\src\strongname\inc - $(ClAdditionalOptions) -DUNICODE -D_UNICODE -DFEATURE_NO_HOST - stdafx.h - true - - $(Clrbase)\src\Debug\EE\stdafx.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/debug/ee/amd64/amd64walker.cpp b/src/debug/ee/amd64/amd64walker.cpp index 836d214..39e9784 100644 --- a/src/debug/ee/amd64/amd64walker.cpp +++ b/src/debug/ee/amd64/amd64walker.cpp @@ -131,10 +131,11 @@ void NativeWalker::Decode() { case 0xff: { - BYTE modrm = *ip++; - _ASSERT(modrm != NULL); + // Ignore "inc dword ptr [reg]" instructions + if (modrm == 0) + break; BYTE mod = (modrm & 0xC0) >> 6; BYTE reg = (modrm & 0x38) >> 3; diff --git a/src/debug/ee/arm64/dbghelpers.S b/src/debug/ee/arm64/dbghelpers.S new file mode 100644 index 0000000..07ed04a --- /dev/null +++ b/src/debug/ee/arm64/dbghelpers.S @@ -0,0 +1,25 @@ +//Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +#include "unixasmmacros.inc" + +NESTED_ENTRY FuncEvalHijack, _TEXT, FuncEvalHijackPersonalityRoutine + +// NOTE: FuncEvalHijackPersonalityRoutine is dependent on the stack layout so if +// you change the prolog you will also need to update the personality routine. + +// push arg to the stack so our personality routine can find it +// push lr to get good stacktrace in debugger + +PROLOG_SAVE_REG_PAIR fp, lr, #-32 + + str x0, [sp, #16] + // FuncEvalHijackWorker returns the address we should jump to. + bl FuncEvalHijackWorker + + EPILOG_STACK_FREE 32 + EPILOG_BRANCH_REG x0 +NESTED_END FuncEvalHijack, _TEXT + +//NESTED_ENTRY ExceptionHijack,,ExceptionHijackPersonalityRoutine \ No newline at end of file diff --git a/src/debug/ee/dac/dirs.proj b/src/debug/ee/dac/dirs.proj deleted file mode 100644 index 8b76656..0000000 --- a/src/debug/ee/dac/dirs.proj +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - true - false - true - true - - - - - - - - - diff --git a/src/debug/ee/debugger.cpp b/src/debug/ee/debugger.cpp index 2aed8bd..1f2126b 100644 --- a/src/debug/ee/debugger.cpp +++ b/src/debug/ee/debugger.cpp @@ -1898,7 +1898,7 @@ void Debugger::SendCreateProcess(DebuggerLockHolder * pDbgLockHolder) #if defined(FEATURE_CORECLR) && !defined(FEATURE_PAL) -HANDLE g_hContinueStartupEvent = NULL; +HANDLE g_hContinueStartupEvent = INVALID_HANDLE_VALUE; CLR_ENGINE_METRICS g_CLREngineMetrics = { sizeof(CLR_ENGINE_METRICS), @@ -1945,7 +1945,7 @@ void NotifyDebuggerOfTelestoStartup() // enumeration of this process will get back a valid continue event // the instant we signal the startup notification event. - CONSISTENCY_CHECK(NULL == g_hContinueStartupEvent); + CONSISTENCY_CHECK(INVALID_HANDLE_VALUE == g_hContinueStartupEvent); g_hContinueStartupEvent = WszCreateEvent(NULL, TRUE, FALSE, NULL); CONSISTENCY_CHECK(INVALID_HANDLE_VALUE != g_hContinueStartupEvent); // we reserve this value for error conditions in EnumerateCLRs @@ -2173,7 +2173,14 @@ HRESULT Debugger::Startup(void) // Signal the debugger (via dbgshim) and wait until it is ready for us to // continue. This needs to be outside the lock and after the transport is // initialized. - PAL_NotifyRuntimeStarted(); + if (PAL_NotifyRuntimeStarted()) + { + // The runtime was successfully launched and attached so mark it now + // so no notifications are missed especially the initial module load + // which would cause debuggers problems with reliable setting breakpoints + // in startup code or Main. + MarkDebuggerAttachedInternal(); + } #endif // FEATURE_PAL // We don't bother changing this process's permission. diff --git a/src/debug/ee/debugger.inl b/src/debug/ee/debugger.inl index dbd5479..5737286 100644 --- a/src/debug/ee/debugger.inl +++ b/src/debug/ee/debugger.inl @@ -235,14 +235,14 @@ inline void FuncEvalFrame::UpdateRegDisplay(const PREGDISPLAY pRD) // Update all registers in the reg display from the CONTEXT we stored when the thread was hijacked for this func // eval. We have to update all registers, not just the callee saved registers, because we can hijack a thread at any // point for a func eval, not just at a call site. - pRD->pEdi = &(pDE->m_context.Edi); - pRD->pEsi = &(pDE->m_context.Esi); - pRD->pEbx = &(pDE->m_context.Ebx); - pRD->pEdx = &(pDE->m_context.Edx); - pRD->pEcx = &(pDE->m_context.Ecx); - pRD->pEax = &(pDE->m_context.Eax); - pRD->pEbp = &(pDE->m_context.Ebp); - pRD->Esp = (DWORD)GetSP(&pDE->m_context); + pRD->SetEdiLocation(&(pDE->m_context.Edi)); + pRD->SetEsiLocation(&(pDE->m_context.Esi)); + pRD->SetEbxLocation(&(pDE->m_context.Ebx)); + pRD->SetEdxLocation(&(pDE->m_context.Edx)); + pRD->SetEcxLocation(&(pDE->m_context.Ecx)); + pRD->SetEaxLocation(&(pDE->m_context.Eax)); + pRD->SetEbpLocation(&(pDE->m_context.Ebp)); + pRD->SP = (DWORD)GetSP(&pDE->m_context); pRD->PCTAddr = GetReturnAddressPtr(); pRD->ControlPC = *PTR_PCODE(pRD->PCTAddr); diff --git a/src/debug/ee/i386/x86walker.cpp b/src/debug/ee/i386/x86walker.cpp index dd03468..8b62797 100644 --- a/src/debug/ee/i386/x86walker.cpp +++ b/src/debug/ee/i386/x86walker.cpp @@ -292,28 +292,28 @@ DWORD NativeWalker::GetRegisterValue(int registerNumber) switch (registerNumber) { case 0: - return *m_registers->pEax; + return *m_registers->GetEaxLocation(); break; case 1: - return *m_registers->pEcx; + return *m_registers->GetEcxLocation(); break; case 2: - return *m_registers->pEdx; + return *m_registers->GetEdxLocation(); break; case 3: - return *m_registers->pEbx; + return *m_registers->GetEbxLocation(); break; case 4: - return m_registers->Esp; + return m_registers->SP; break; case 5: - return *m_registers->pEbp; + return *m_registers->GetEbpLocation(); break; case 6: - return *m_registers->pEsi; + return *m_registers->GetEsiLocation(); break; case 7: - return *m_registers->pEdi; + return *m_registers->GetEdiLocation(); break; default: _ASSERTE(!"Invalid register number!"); diff --git a/src/debug/ee/wks/CMakeLists.txt b/src/debug/ee/wks/CMakeLists.txt index 2b1aff5..1088355 100644 --- a/src/debug/ee/wks/CMakeLists.txt +++ b/src/debug/ee/wks/CMakeLists.txt @@ -55,7 +55,7 @@ else () add_compile_options(-fPIC) -if(CLR_CMAKE_PLATFORM_ARCH_AMD64 OR CLR_CMAKE_PLATFORM_ARCH_ARM OR CLR_CMAKE_PLATFORM_ARCH_I386) +if(CLR_CMAKE_PLATFORM_ARCH_AMD64 OR CLR_CMAKE_PLATFORM_ARCH_ARM OR CLR_CMAKE_PLATFORM_ARCH_ARM64 OR CLR_CMAKE_PLATFORM_ARCH_I386) add_library_clr(cordbee_wks ${CORDBEE_SOURCES_WKS} ../${ARCH_SOURCES_DIR}/dbghelpers.S) elseif(CLR_CMAKE_PLATFORM_ARCH_ARM64) add_library_clr(cordbee_wks ${CORDBEE_SOURCES_WKS}) diff --git a/src/debug/ee/wks/wks.nativeproj b/src/debug/ee/wks/wks.nativeproj deleted file mode 100644 index 304c591..0000000 --- a/src/debug/ee/wks/wks.nativeproj +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - - - SAK - SAK - SAK - SAK - - - true - true - $(ClrLibDest) - cordbee_wks - LIBRARY - - $(UserAssembleAmd64IncludePath); - ..\..\..\vm\AMD64; - - - - - - - - - - - - - - - - - - - - diff --git a/src/debug/ildbsymlib/dirs.proj b/src/debug/ildbsymlib/dirs.proj deleted file mode 100644 index b171f7b..0000000 --- a/src/debug/ildbsymlib/dirs.proj +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - true - false - true - true - - - - - - - - - - diff --git a/src/debug/ildbsymlib/ildbsymlib.props b/src/debug/ildbsymlib/ildbsymlib.props deleted file mode 100644 index 2a64f2e..0000000 --- a/src/debug/ildbsymlib/ildbsymlib.props +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - LIBRARY - $(ClrLibDest) - windows - - $(Sehonly) - $(UserIncludes); - ..\; - ..\..\..\inc; - - $(CDefines);UNICODE;_UNICODE - - - - - - - - - - diff --git a/src/debug/ildbsymlib/ildbsymlib.vcproj b/src/debug/ildbsymlib/ildbsymlib.vcproj deleted file mode 100644 index 0720212..0000000 --- a/src/debug/ildbsymlib/ildbsymlib.vcproj +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/debug/inc/dbgipcevents.h b/src/debug/inc/dbgipcevents.h index 6ace36e..1b4dec7 100644 --- a/src/debug/inc/dbgipcevents.h +++ b/src/debug/inc/dbgipcevents.h @@ -1355,11 +1355,11 @@ struct MSLAYOUT DebuggerIPCE_JITFuncData LSPTR_DJI nativeCodeJITInfoToken; VMPTR_MethodDesc vmNativeCodeMethodDescToken; -#if defined(DBG_TARGET_WIN64) || defined(DBG_TARGET_ARM) +#ifdef WIN64EXCEPTIONS BOOL fIsFilterFrame; SIZE_T parentNativeOffset; FramePointer fpParentOrSelf; -#endif // DBG_TARGET_WIN64 || DBG_TARGET_ARM +#endif // WIN64EXCEPTIONS // indicates if the MethodDesc is a generic function or a method inside a generic class (or // both!). diff --git a/src/debug/inc/dbgtargetcontext.h b/src/debug/inc/dbgtargetcontext.h index 22b1c84..c2b45ee 100644 --- a/src/debug/inc/dbgtargetcontext.h +++ b/src/debug/inc/dbgtargetcontext.h @@ -371,6 +371,14 @@ typedef DECLSPEC_ALIGN(8) struct { #define DT_CONTEXT_FULL (DT_CONTEXT_CONTROL | DT_CONTEXT_INTEGER | DT_CONTEXT_FLOATING_POINT) #define DT_CONTEXT_ALL (DT_CONTEXT_CONTROL | DT_CONTEXT_INTEGER | DT_CONTEXT_FLOATING_POINT | DT_CONTEXT_DEBUG_REGISTERS) +#define DT_ARM64_MAX_BREAKPOINTS 8 +#define DT_ARM64_MAX_WATCHPOINTS 2 + +typedef struct { + ULONGLONG Low; + LONGLONG High; +} DT_NEON128; + typedef DECLSPEC_ALIGN(16) struct { // // Control flags. @@ -426,7 +434,7 @@ typedef DECLSPEC_ALIGN(16) struct { // Floating Point/NEON Registers // - /* +0x110 */ NEON128 V[32]; + /* +0x110 */ DT_NEON128 V[32]; /* +0x310 */ DWORD Fpcr; /* +0x314 */ DWORD Fpsr; @@ -434,10 +442,10 @@ typedef DECLSPEC_ALIGN(16) struct { // Debug registers // - /* +0x318 */ DWORD Bcr[ARM64_MAX_BREAKPOINTS]; - /* +0x338 */ DWORD64 Bvr[ARM64_MAX_BREAKPOINTS]; - /* +0x378 */ DWORD Wcr[ARM64_MAX_WATCHPOINTS]; - /* +0x380 */ DWORD64 Wvr[ARM64_MAX_WATCHPOINTS]; + /* +0x318 */ DWORD Bcr[DT_ARM64_MAX_BREAKPOINTS]; + /* +0x338 */ DWORD64 Bvr[DT_ARM64_MAX_BREAKPOINTS]; + /* +0x378 */ DWORD Wcr[DT_ARM64_MAX_WATCHPOINTS]; + /* +0x380 */ DWORD64 Wvr[DT_ARM64_MAX_WATCHPOINTS]; /* +0x390 */ } DT_CONTEXT; diff --git a/src/debug/shared/i386/primitives.cpp b/src/debug/shared/i386/primitives.cpp index e47f3e7..ab22a5d 100644 --- a/src/debug/shared/i386/primitives.cpp +++ b/src/debug/shared/i386/primitives.cpp @@ -88,12 +88,12 @@ void SetDebuggerREGDISPLAYFromREGDISPLAY(DebuggerREGDISPLAY* pDRD, REGDISPLAY* p // Frame pointer LPVOID FPAddress = GetRegdisplayFPAddress(pRD); pDRD->FP = (FPAddress == NULL ? 0 : *((SIZE_T *)FPAddress)); - pDRD->Edi = (pRD->pEdi == NULL ? 0 : *(pRD->pEdi)); - pDRD->Esi = (pRD->pEsi == NULL ? 0 : *(pRD->pEsi)); - pDRD->Ebx = (pRD->pEbx == NULL ? 0 : *(pRD->pEbx)); - pDRD->Edx = (pRD->pEdx == NULL ? 0 : *(pRD->pEdx)); - pDRD->Ecx = (pRD->pEcx == NULL ? 0 : *(pRD->pEcx)); - pDRD->Eax = (pRD->pEax == NULL ? 0 : *(pRD->pEax)); + pDRD->Edi = (pRD->GetEdiLocation() == NULL ? 0 : *pRD->GetEdiLocation()); + pDRD->Esi = (pRD->GetEsiLocation() == NULL ? 0 : *pRD->GetEsiLocation()); + pDRD->Ebx = (pRD->GetEbxLocation() == NULL ? 0 : *pRD->GetEbxLocation()); + pDRD->Edx = (pRD->GetEdxLocation() == NULL ? 0 : *pRD->GetEdxLocation()); + pDRD->Ecx = (pRD->GetEcxLocation() == NULL ? 0 : *pRD->GetEcxLocation()); + pDRD->Eax = (pRD->GetEsiLocation() == NULL ? 0 : *pRD->GetEaxLocation()); #if defined(USE_REMOTE_REGISTER_ADDRESS) pDRD->pFP = PushedRegAddr(pRD, FPAddress); @@ -113,7 +113,7 @@ void SetDebuggerREGDISPLAYFromREGDISPLAY(DebuggerREGDISPLAY* pDRD, REGDISPLAY* p pDRD->pEax = NULL; #endif // !USE_REMOTE_REGISTER_ADDRESS - pDRD->SP = pRD->Esp; + pDRD->SP = pRD->SP; pDRD->PC = pRD->ControlPC; // Please leave EBP, ESP, EIP at the front so I don't have to scroll diff --git a/src/debug/shim/debugshim.props b/src/debug/shim/debugshim.props deleted file mode 100644 index 8d3bb3f..0000000 --- a/src/debug/shim/debugshim.props +++ /dev/null @@ -1,19 +0,0 @@ - - - LIBRARY - $(ClrLibDest) - windows - - $(Sehonly) - $(UserIncludes); - ..\; - ..\..\inc; - ..\..\..\inc; - - $(CDefines);UNICODE;_UNICODE - $(CDefines);HOST_IS_WINDOWS_OS - - - - - diff --git a/src/debug/shim/dirs.proj b/src/debug/shim/dirs.proj deleted file mode 100644 index 45798d6..0000000 --- a/src/debug/shim/dirs.proj +++ /dev/null @@ -1,16 +0,0 @@ - - - - - true - false - true - true - - - - - - - - diff --git a/src/dirs.proj b/src/dirs.proj deleted file mode 100644 index 9442381..0000000 --- a/src/dirs.proj +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - FX - - - - - true - true - true - true - true - - - - - - - - - - - FX;PK - - - - - - - - - FX - - - - - - - - - - - - - - - - FX;PK - - - FX;PK - - - - - - - - - - - - - - - - - FX - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/dlls/clretwrc/clretwrc.nativeproj b/src/dlls/clretwrc/clretwrc.nativeproj deleted file mode 100644 index 6a9b227..0000000 --- a/src/dlls/clretwrc/clretwrc.nativeproj +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - true - true - clretwrc - $(OutputName).def - DYNLINK - windows - true - true - true - true - - - - - - - - diff --git a/src/dlls/dbgshim/dbgshim.cpp b/src/dlls/dbgshim/dbgshim.cpp index aeee778..5f15cab 100644 --- a/src/dlls/dbgshim/dbgshim.cpp +++ b/src/dlls/dbgshim/dbgshim.cpp @@ -387,6 +387,19 @@ public: return hr; } + bool AreAllHandlesValid(HANDLE *handleArray, DWORD arrayLength) + { + for (int i = 0; i < (int)arrayLength; i++) + { + HANDLE h = handleArray[i]; + if (h == INVALID_HANDLE_VALUE) + { + return false; + } + } + return true; + } + HRESULT InternalEnumerateCLRs(HANDLE** ppHandleArray, _In_reads_(*pdwArrayLength) LPWSTR** ppStringArray, DWORD* pdwArrayLength) { int numTries = 0; @@ -394,18 +407,46 @@ public: while (numTries < 25) { + hr = EnumerateCLRs(m_processId, ppHandleArray, ppStringArray, pdwArrayLength); + // EnumerateCLRs uses the OS API CreateToolhelp32Snapshot which can return ERROR_BAD_LENGTH or // ERROR_PARTIAL_COPY. If we get either of those, we try wait 1/10th of a second try again (that - // is the recommendation of the OS API owners) - hr = EnumerateCLRs(m_processId, ppHandleArray, ppStringArray, pdwArrayLength); + // is the recommendation of the OS API owners). if ((hr != HRESULT_FROM_WIN32(ERROR_PARTIAL_COPY)) && (hr != HRESULT_FROM_WIN32(ERROR_BAD_LENGTH))) { - break; + // Just return any other error or if no handles were found (which means the coreclr module wasn't found yet). + if (FAILED(hr) || *ppHandleArray == NULL || *pdwArrayLength <= 0) + { + return hr; + } + // If EnumerateCLRs succeeded but any of the handles are INVALID_HANDLE_VALUE, then sleep and retry + // also. This fixes a race condition where dbgshim catches the coreclr module just being loaded but + // before g_hContinueStartupEvent has been initialized. + if (AreAllHandlesValid(*ppHandleArray, *pdwArrayLength)) + { + return hr; + } + // Clean up memory allocated in EnumerateCLRs since this path it succeeded + CloseCLREnumeration(*ppHandleArray, *ppStringArray, *pdwArrayLength); + + *ppHandleArray = NULL; + *ppStringArray = NULL; + *pdwArrayLength = 0; } + + // Sleep and retry enumerating the runtimes Sleep(100); numTries++; + + if (m_canceled) + { + break; + } } + // Indicate a timeout + hr = HRESULT_FROM_WIN32(ERROR_TIMEOUT); + return hr; } @@ -517,9 +558,8 @@ public: bool coreclrExists = false; HRESULT hr = InvokeStartupCallback(&coreclrExists); - // Because the target process is suspended on create, the toolhelp apis fail with the below errors even - // with the retry logic in InternalEnumerateCLRs. - if (SUCCEEDED(hr) || (hr == HRESULT_FROM_WIN32(ERROR_PARTIAL_COPY)) || (hr == HRESULT_FROM_WIN32(ERROR_BAD_LENGTH))) + // The retry logic in InternalEnumerateCLRs failed if ERROR_TIMEOUT was returned. + if (SUCCEEDED(hr) || (hr == HRESULT_FROM_WIN32(ERROR_TIMEOUT))) { if (!coreclrExists && !m_canceled) { @@ -531,8 +571,11 @@ public: hr = InvokeStartupCallback(&coreclrExists); if (SUCCEEDED(hr)) { - // We should always find a coreclr module - _ASSERTE(coreclrExists); + // We should always find a coreclr module so fail if we don't + if (!coreclrExists) + { + hr = E_FAIL; + } } } } @@ -1120,8 +1163,6 @@ EnumerateCLRs( HANDLE hContinueStartupEvent = INVALID_HANDLE_VALUE; HRESULT hr = GetContinueStartupEvent(debuggeePID, pStringArray[idx], &hContinueStartupEvent); - _ASSERTE(SUCCEEDED(hr) == (hContinueStartupEvent != INVALID_HANDLE_VALUE)); - pEventArray[idx] = hContinueStartupEvent; #else pEventArray[idx] = NULL; @@ -1729,7 +1770,7 @@ GetContinueStartupEvent( ThrowHR(E_FAIL); } - if (NULL != continueEvent) + if (NULL != continueEvent && INVALID_HANDLE_VALUE != continueEvent) { if (!DuplicateHandle(hProcess, continueEvent, GetCurrentProcess(), &continueEvent, EVENT_MODIFY_STATE, FALSE, 0)) diff --git a/src/dlls/dbgshim/dbgshim.targets b/src/dlls/dbgshim/dbgshim.targets deleted file mode 100644 index 8332bef..0000000 --- a/src/dlls/dbgshim/dbgshim.targets +++ /dev/null @@ -1,94 +0,0 @@ - - - - - true - - $(UserIncludes); - ..\; - $(VCToolsIncPath); - $(Clrbase)\src\Debug\shim; - - dbgshim - DYNLINK - windows - $(CDefines);UNICODE;_UNICODE;FEATURE_NO_HOST;SELF_NO_HOST - ..\dbgshim.ntdef - _DllMainCRTStartup - false - false - true - - - - $(LinkDelayLoad); - $(LinkDelayLoad)user32.dll;advapi32.dll;oleaut32.dll - - - - - - $(ClrSrcDirectory)utilcode\staticnohost\staticnohost.nativeproj - $(ClrSrcDirectory)utilcode\staticnohostx86\staticnohost.nativeproj - $(ClrSrcDirectory)utilcode\staticnohostamd64\staticnohost.nativeproj - - - - - - - - - - - - - - $(ClrSrcDirectory)inc\corguids.nativeproj - $(ClrSrcDirectory)incx86\corguids.nativeproj - $(ClrSrcDirectory)incamd64\corguids.nativeproj - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/dlls/dbgshim/dirs.proj b/src/dlls/dbgshim/dirs.proj deleted file mode 100644 index dc91ac2..0000000 --- a/src/dlls/dbgshim/dirs.proj +++ /dev/null @@ -1,19 +0,0 @@ - - - - - true - true - - - - - - - - - - - - - diff --git a/src/dlls/dirs.proj b/src/dlls/dirs.proj deleted file mode 100644 index de81b7f..0000000 --- a/src/dlls/dirs.proj +++ /dev/null @@ -1,50 +0,0 @@ - - - - - true - false - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/dlls/mscordac/dirs.proj b/src/dlls/mscordac/dirs.proj deleted file mode 100644 index 46a2052..0000000 --- a/src/dlls/mscordac/dirs.proj +++ /dev/null @@ -1,21 +0,0 @@ - - - - - true - false - true - true - - - - - - - - - - - - - diff --git a/src/dlls/mscordac/mscordac.targets b/src/dlls/mscordac/mscordac.targets deleted file mode 100644 index 3e0474f..0000000 --- a/src/dlls/mscordac/mscordac.targets +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - - $(CDefines);UNICODE;_UNICODE;$(USER_SPECIFIC_C_DEFINES);FEATURE_NO_HOST - mscordacwks$(XPlatHostSuffix) - mscordaccore - DYNLINK - windows - $(IntermediateOutputDirectory)\mscordac.def - _DllMainCRTStartup - false - $(CDefines);SPECIAL_BUILD - false - true - true - false - $(LinkLibIgnore);4198 - true - - - - $(LinkDelayLoad); - $(LinkDelayLoad)user32.dll;advapi32.dll;ole32.dll;oleaut32.dll - - - - - true - - - - - - - - - @(CommonPreprocessDefines);$(CDefines);$(TargetDefines) - $(IntermediateOutputDirectory)\mscordac.def - /TC - - - - - - $(ClrSrcDirectory)debug\daccess\$(XPlatHostLibBuildDir)\daccess.nativeproj - - - $(ClrSrcDirectory)utilcode\dac\$(XPlatHostLibBuildDir)\dac.nativeproj - - - $(ClrSrcDirectory)vm\dac\$(XPlatHostLibBuildDir)\dacwks.nativeproj - - - $(ClrSrcDirectory)debug\ee\dac\$(XPlatHostLibBuildDir)\dacwks.nativeproj - - - $(ClrSrcDirectory)md\compiler\dac\$(XPlatHostLibBuildDir)\mdcompiler_dac.nativeproj - - - $(ClrSrcDirectory)md\runtime\dac\$(XPlatHostLibBuildDir)\mdruntime_dac.nativeproj - - - $(ClrSrcDirectory)md\enc\dac\$(XPlatHostLibBuildDir)\mdruntimerw_dac.nativeproj - - - $(ClrSrcDirectory)md\winmd\dac\$(XPlatHostLibBuildDir)\mdwinmd_dac.nativeproj - - - $(ClrSrcDirectory)md\hotdata\dac\$(XPlatHostLibBuildDir)\mdhotdata_dac.nativeproj - - - $(ClrSrcDirectory)ipcman\ipcman_dac\$(XPlatHostLibBuildDir)\ipcman_dac.nativeproj - - - $(ClrSrcDirectory)StrongName\api\dac\$(XPlatHostLibBuildDir)\strongname_dac.nativeproj - - - $(ClrSrcDirectory)unwinder\dac\$(XPlatHostLibBuildDir)\unwinder_dac.nativeproj - - - $(ClrSrcDirectory)debug\dbgutil\$(XPlatHostLibBuildDir)\dbgutil.nativeproj - - - - - - $(ClrSrcDirectory)inc\corguids.nativeproj - $(ClrSrcDirectory)incx86\corguids.nativeproj - $(ClrSrcDirectory)incamd64\corguids.nativeproj - - - - - - $(ClrSrcDirectory)delayimp\delayimp.nativeproj - $(ClrSrcDirectory)delayimpx86\delayimp.nativeproj - $(ClrSrcDirectory)delayimpamd64\delayimp.nativeproj - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/dlls/mscordac/mscordac.vrg b/src/dlls/mscordac/mscordac.vrg deleted file mode 100644 index b8cb175..0000000 --- a/src/dlls/mscordac/mscordac.vrg +++ /dev/null @@ -1,10 +0,0 @@ -VSREG 7 - -[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\KnownFunctionTableDlls] -"[#FilePath]"=dword:0 - -[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\KnownManagedDebuggingDlls] -"[#FilePath]"=dword:0 - -[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Windows Error Reporting\RuntimeExceptionHelperModules] -"[#FilePath]"=dword:0 diff --git a/src/dlls/mscordac/mscordac_unixexports.src b/src/dlls/mscordac/mscordac_unixexports.src index 7d60c1e..ab73c4f 100644 --- a/src/dlls/mscordac/mscordac_unixexports.src +++ b/src/dlls/mscordac/mscordac_unixexports.src @@ -17,7 +17,6 @@ PAL_fflush PAL__flushall PAL_free PAL_fwprintf -PAL_swprintf PAL_GetPALDirectoryW PAL_GetResourceString PAL_get_stdout @@ -35,7 +34,6 @@ PAL_printf PAL_qsort PAL_Reenter PAL_fprintf -PAL__vsnprintf PAL__wcstoui64 PAL_wcstoul PAL_iswprint @@ -52,6 +50,8 @@ _wcsicmp _stricmp sprintf_s swprintf_s +vsprintf_s +_snprintf_s _snwprintf_s _vsnprintf_s _vsnwprintf_s diff --git a/src/dlls/mscordbi/DIRS.proj b/src/dlls/mscordbi/DIRS.proj deleted file mode 100644 index fb72485..0000000 --- a/src/dlls/mscordbi/DIRS.proj +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - true - false - true - true - - - - - - - - - - - - - - diff --git a/src/dlls/mscordbi/mscordbi.settings.targets b/src/dlls/mscordbi/mscordbi.settings.targets deleted file mode 100644 index c9fa97c..0000000 --- a/src/dlls/mscordbi/mscordbi.settings.targets +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - $(BinariesDirectory)\$(OutputName).dll - $(UserIncludes); - .. - $(ClAdditionalOptions) -DUNICODE -D_UNICODE - stdafx.h - true - - ..\stdafx.cpp - - - true - false - true - false - true - - DYNLINK - windows - true - - _DllMainCRTStartup - $(IntermediateOutputDirectory)\mscordbi.def - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $(DbiProject) - - - - $(ClrSrcDirectory)utilcode\staticnohost\staticnohost.nativeproj - $(ClrSrcDirectory)utilcode\staticnohostx86\staticnohost.nativeproj - $(ClrSrcDirectory)utilcode\staticnohostamd64\staticnohost.nativeproj - - - $(ClrSrcDirectory)ipcman\ipcman-staticcrt\$(XPlatHostLibBuildDir)\ipcman-staticcrt.nativeproj - - - $(ClrSrcDirectory)debug\ildbsymlib\$(XPlatHostLibBuildDir)\ildbsymlib.nativeproj - - - $(ClrSrcDirectory)md\compiler\dbi\$(XPlatHostLibBuildDir)\mdcompiler-dbi.nativeproj - - - $(ClrSrcDirectory)md\winmd\dbi\$(XPlatHostLibBuildDir)\MDWinMD-dbi.nativeproj - - - $(ClrSrcDirectory)md\runtime\dbi\$(XPlatHostLibBuildDir)\mdruntime-dbi.nativeproj - - - $(ClrSrcDirectory)md\enc\dbi\$(XPlatHostLibBuildDir)\mdruntimerw-dbi.nativeproj - - - $(ClrSrcDirectory)md\hotdata\full-staticcrt\$(XPlatHostLibBuildDir)\mdhotdata-staticcrt.nativeproj - - - $(ClrSrcDirectory)md\DataSource\dbi\$(XPlatHostLibBuildDir)\DataSource-dbi.nativeproj - - - - $(ClrSrcDirectory)inc\corguids.nativeproj - $(ClrSrcDirectory)incx86\corguids.nativeproj - $(ClrSrcDirectory)incamd64\corguids.nativeproj - - - - - - - - - - - - - - - @(CommonPreprocessDefines);$(CDefines);$(TargetDefines) - $(IntermediateOutputDirectory)\mscordbi.def - /TC - - - - - - - - - - - - - - - - - - - - diff --git a/src/dlls/mscordbi/mscordbi.vrg b/src/dlls/mscordbi/mscordbi.vrg deleted file mode 100644 index 2c72896..0000000 --- a/src/dlls/mscordbi/mscordbi.vrg +++ /dev/null @@ -1,78 +0,0 @@ -VSREG 7 - -[HKEY_CLASSES_ROOT\ComPlusDebug.CorDebug.1] -@="Microsoft Common Language Runtime Debugger" - -[HKEY_CLASSES_ROOT\ComPlusDebug.CorDebug.1\CLSID] -@="{6FEF44D0-39E7-4C77-BE8E-C9F8CF988630}" - - -[HKEY_CLASSES_ROOT\ComPlusDebug.CorDebug] -@="Microsoft Common Language Runtime Debugger" - -[HKEY_CLASSES_ROOT\ComPlusDebug.CorDebug\CurVer] -@="ComPlusDebug.CorDebug.1" - -[HKEY_CLASSES_ROOT\ComPlusDebug.CorDebug\CLSID] -@="{6FEF44D0-39E7-4C77-BE8E-C9F8CF988630}" - - -[HKEY_CLASSES_ROOT\CLSID\{6FEF44D0-39E7-4C77-BE8E-C9F8CF988630}] -@="Microsoft Common Language Runtime Debugger" - -[HKEY_CLASSES_ROOT\CLSID\{6FEF44D0-39E7-4C77-BE8E-C9F8CF988630}\ProgID] -@="ComPlusDebug.CorDebug.1" - -[HKEY_CLASSES_ROOT\CLSID\{6FEF44D0-39E7-4C77-BE8E-C9F8CF988630}\VersionIndependentProgID] -@="ComPlusDebug.CorDebug" - -[HKEY_CLASSES_ROOT\CLSID\{6FEF44D0-39E7-4C77-BE8E-C9F8CF988630}\NotInsertable] - - -[HKEY_CLASSES_ROOT\CLSID\{6FEF44D0-39E7-4C77-BE8E-C9F8CF988630}\InprocServer32] -@="[SystemFolder.3643236F_FC70_11D3_A536_0090278A1BB8]mscoree.dll" - -[HKEY_CLASSES_ROOT\CLSID\{6FEF44D0-39E7-4C77-BE8E-C9F8CF988630}\Server] -@="mscordbi.dll" - - -[HKEY_CLASSES_ROOT\CLSID\{6FEF44D0-39E7-4C77-BE8E-C9F8CF988630}\InprocServer32] -"ThreadingModel"="Both" - -[HKEY_CLASSES_ROOT\ComPlusDebug.CorpubPublish.1] -@="Microsoft Common Language Runtime Debugger Publisher" - -[HKEY_CLASSES_ROOT\ComPlusDebug.CorpubPublish.1\CLSID] -@="{047A9A40-657E-11D3-8D5B-00104B35E7EF}" - - -[HKEY_CLASSES_ROOT\ComPlusDebug.CorpubPublish] -@="Microsoft Common Language Runtime Debugger Publisher" - -[HKEY_CLASSES_ROOT\ComPlusDebug.CorpubPublish\CurVer] -@="ComPlusDebug.CorpubPublish.1" - -[HKEY_CLASSES_ROOT\ComPlusDebug.CorpubPublish\CLSID] -@="{047A9A40-657E-11D3-8D5B-00104B35E7EF}" - - -[HKEY_CLASSES_ROOT\CLSID\{047A9A40-657E-11D3-8D5B-00104B35E7EF}] -@="Microsoft Common Language Runtime Debugger Publisher" - -[HKEY_CLASSES_ROOT\CLSID\{047A9A40-657E-11D3-8D5B-00104B35E7EF}\ProgID] -@="ComPlusDebug.CorpubPublish.1" - -[HKEY_CLASSES_ROOT\CLSID\{047A9A40-657E-11D3-8D5B-00104B35E7EF}\VersionIndependentProgID] -@="ComPlusDebug.CorpubPublish" - -[HKEY_CLASSES_ROOT\CLSID\{047A9A40-657E-11D3-8D5B-00104B35E7EF}\NotInsertable] - - -[HKEY_CLASSES_ROOT\CLSID\{047A9A40-657E-11D3-8D5B-00104B35E7EF}\InprocServer32] -@="[SystemFolder.3643236F_FC70_11D3_A536_0090278A1BB8]mscoree.dll" - -[HKEY_CLASSES_ROOT\CLSID\{047A9A40-657E-11D3-8D5B-00104B35E7EF}\Server] -@="mscordbi.dll" - -[HKEY_CLASSES_ROOT\CLSID\{047A9A40-657E-11D3-8D5B-00104B35E7EF}\InprocServer32] -"ThreadingModel"="Both" diff --git a/src/dlls/mscordbi/mscordbiv.vrg b/src/dlls/mscordbi/mscordbiv.vrg deleted file mode 100644 index 5cb0386..0000000 --- a/src/dlls/mscordbi/mscordbiv.vrg +++ /dev/null @@ -1,4 +0,0 @@ -VSREG 7 - -[HKEY_CLASSES_ROOT\CLSID\{047a9a40-657e-11d3-8d5b-00104b35e7ef}\InprocServer32\[RTM_ProductVersion]] -"ImplementedInThisVersion"="" diff --git a/src/dlls/mscoree/CMakeLists.txt b/src/dlls/mscoree/CMakeLists.txt index 6a157e4..b9c129d 100644 --- a/src/dlls/mscoree/CMakeLists.txt +++ b/src/dlls/mscoree/CMakeLists.txt @@ -12,7 +12,6 @@ set(CLR_SOURCES if(WIN32) list(APPEND CLR_SOURCES comcallunmarshal.cpp - delayload.cpp Native.rc ) diff --git a/src/dlls/mscoree/coreclr/CMakeLists.txt b/src/dlls/mscoree/coreclr/CMakeLists.txt index aa7bb0d..afd18d6 100644 --- a/src/dlls/mscoree/coreclr/CMakeLists.txt +++ b/src/dlls/mscoree/coreclr/CMakeLists.txt @@ -125,6 +125,12 @@ else() ) endif(WIN32) +if(CLR_CMAKE_PLATFORM_UNIX AND FEATURE_STANDALONE_GC) + list(APPEND CORECLR_LIBRARIES + gc_unix + ) +endif(CLR_CMAKE_PLATFORM_UNIX AND FEATURE_STANDALONE_GC) + if(CLR_CMAKE_PLATFORM_UNIX AND FEATURE_EVENT_TRACE) list(APPEND CORECLR_LIBRARIES eventprovider diff --git a/src/dlls/mscoree/coreclr/coreclr.nativeproj b/src/dlls/mscoree/coreclr/coreclr.nativeproj deleted file mode 100644 index 484790e..0000000 --- a/src/dlls/mscoree/coreclr/coreclr.nativeproj +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - true - - - - - SAK - SAK - SAK - SAK - - - true - true - coreclr - $(LinkAdditionalOptions) /filealign:4096 - true - true - true - true - true - - - - ProjectK - Runtime - - - - - - - - - - - - - false - true - true - CoreSys.$(_BuildArch)\CLR\Base - - - - - - - - - - - - diff --git a/src/dlls/mscoree/delayload.cpp b/src/dlls/mscoree/delayload.cpp deleted file mode 100644 index d74f58b..0000000 --- a/src/dlls/mscoree/delayload.cpp +++ /dev/null @@ -1,455 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -//***************************************************************************** -// DelayLoad.cpp -// -// This code defines the dealy load helper notification routines that will be -// invoked when a dll marked for delay load is processed. A DLL is marked as -// delay load by using the DELAYLOAD=foo.dll directive in your sources file. -// This tells the linker to generate helpers for the imports of this dll instead -// of loading it directly. If your application never touches those functions, -// the the dll is never loaded. This improves (a) startup time each time the -// app runs, and (b) overall working set size in the case you never use the -// functionality. -// -// -// -// This module provides a hook helper and exception handler. The hook helper -// is used primarily in debug mode right now to determine what call stacks -// force a delay load of a dll. If these call stacks are very common, then -// you should reconsider using a delay load. -// -// The exception handler is used to catch fatal errors like library not found -// or entry point missing. If this happens you are dead and need to fail -// gracefully. -// -//***************************************************************************** -#include "stdafx.h" // Standard header. - -#if !defined(FEATURE_CORESYSTEM) - -#include "delayimp.h" // Delay load header file. -#include "winwrap.h" // Wrappers for Win32 api's. -#include "utilcode.h" // Debug helpers. -#include "corerror.h" // Error codes from this EE. -#include "shimload.h" -#include "ex.h" -#include "strsafe.h" - -//********** Locals. ********************************************************** -static DWORD _FormatMessage(__out_ecount(chMsg) __out_z LPWSTR szMsg, DWORD chMsg, DWORD dwLastError, ...); -static void _FailLoadLib(unsigned dliNotify, DelayLoadInfo *pdli); -static void _FailGetProc(unsigned dliNotify, DelayLoadInfo *pdli); - -#if defined (_DEBUG) || defined (__delay_load_trace__) -static void _DbgPreLoadLibrary(int bBreak, DelayLoadInfo *pdli); -#endif - - -//********** Globals. ********************************************************* - -// Override __pfnDllFailureHook. This will give the delay code a callback -// for when a load failure occurs. This failure hook is implemented below. -FARPROC __stdcall CorDelayErrorHook(unsigned dliNotify, DelayLoadInfo *pdli); -ExternC extern PfnDliHook __pfnDliFailureHook = CorDelayErrorHook; - -// In trace mode, override the delay load hook. Our hook does nothing but -// provide some diagnostic information for debugging. -FARPROC __stdcall CorDelayLoadHook(unsigned dliNotify, DelayLoadInfo *pdli); -ExternC extern PfnDliHook __pfnDliNotifyHook = CorDelayLoadHook; - - -//********** Code. ************************************************************ - -#undef ExitProcess - -extern void DECLSPEC_NORETURN ThrowOutOfMemory(); - -//***************************************************************************** -// Called for errors that might have occurred. -//***************************************************************************** -FARPROC __stdcall CorDelayErrorHook( // Always 0. - unsigned dliNotify, // What event has occurred, dli* flag. - DelayLoadInfo *pdli) // Description of the event. -{ - - STATIC_CONTRACT_THROWS; - STATIC_CONTRACT_FORBID_FAULT; - STATIC_CONTRACT_SO_TOLERANT; - - // Chose operation to perform based on operation. - switch (dliNotify) - { - // Failed to load the library. Need to fail gracefully. - case dliFailLoadLib: - //_FailLoadLib(dliNotify, pdli); - break; - - // Failed to get the address of the given function, fail gracefully. - case dliFailGetProc: -#ifndef FEATURE_CORECLR - _FailGetProc(dliNotify, pdli); -#endif // !FEATURE_CORECLR - break; - - // Unknown failure code. - default: - _ASSERTE(!"Unknown delay load failure code."); - break; - } - -#ifndef FEATURE_CORECLR - if (_stricmp(pdli->szDll, "ole32.dll") == 0) - { - // TODO: after interop team fixes delayload related to ole32.dll, we can throw OOM instead. - // For now, SQL preloads ole32.dll before starting CLR, so OOM for ole32 is not a concern. - ExitProcess(pdli->dwLastError); - } - else -#endif // !FEATURE_CORECLR -#ifdef MSDIS_DLL - // MSDIS_DLL is a macro defined in SOURCES.INC - if (_stricmp(pdli->szDll, MSDIS_DLL) == 0) - { - // msdisxxx.dll is used in GCStress 4 on chk/dbg builds, if it fails to load then the - // process will stack-overflow or terminate with no obvious reason of the root cause. - _ASSERTE(!"Failed to delay load " MSDIS_DLL); - } - else -#endif // MSDIS_DLL - { -#ifndef FEATURE_CORECLR - // We do not own the process. ExitProcess is bad. - // We will try to recover next time. - ThrowWin32 (pdli->dwLastError); -#endif // !FEATURE_CORECLR - } - - return (0); -} - - -//***************************************************************************** -// Format an error message using a system error (supplied through GetLastError) -// and any subtitution values required. -//***************************************************************************** -DWORD _FormatMessage( // How many characters written. - __out_ecount(chMsg) __out_z LPWSTR szMsg, // Buffer for formatted data. - DWORD chMsg, // How big is the buffer. - DWORD dwLastError, // The last error code we got. - ...) // Substitution values. -{ - WRAPPER_NO_CONTRACT; - - DWORD iRtn; - va_list marker; - - va_start(marker, dwLastError); - iRtn = WszFormatMessage( - FORMAT_MESSAGE_FROM_SYSTEM, // Flags. - 0, // No source, use system. - dwLastError, // Error code. - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Use default langauge. - szMsg, // Output buffer. - dwLastError, // Size of buffer. - &marker); // Substitution text. - va_end(marker); - return (iRtn); -} - - -//***************************************************************************** -// A library failed to load. This is always a bad thing. -//***************************************************************************** -void _FailLoadLib( - unsigned dliNotify, // What event has occurred, dli* flag. - DelayLoadInfo *pdli) // Description of the event. -{ - STATIC_CONTRACT_NOTHROW; - STATIC_CONTRACT_FORBID_FAULT; - - // We're allocating strings for the purposes of putting up a critical error box. - // Obviously, OOM's aren't going to be passed up to the caller. - FAULT_NOT_FATAL(); - - - WCHAR rcMessage[_MAX_PATH+500]; // Message for display. - WCHAR rcFmt[500]; // 500 is the number used by excep.cpp for mscorrc resources. - HRESULT hr; - - // Load a detailed error message from the resource file. - if (SUCCEEDED(hr = UtilLoadStringRC(MSEE_E_LOADLIBFAILED, rcFmt, NumItems(rcFmt)))) - { - StringCchPrintf(rcMessage, COUNTOF(rcMessage), rcFmt, pdli->szDll, pdli->dwLastError); - } - else - { - // Foramt the Windows error first. - if (!_FormatMessage(rcMessage, NumItems(rcMessage), pdli->dwLastError, pdli->szDll)) - { - // Default to a hard coded error otherwise. - StringCchPrintf(rcMessage, COUNTOF(rcMessage), W("ERROR! Failed to delay load library %hs, Win32 error %d, Delay error: %d\n"), - pdli->szDll, pdli->dwLastError, dliNotify); - } - } - -#ifndef _ALPHA_ - // for some bizarre reason, calling OutputDebugString during delay load in non-debug mode on Alpha - // kills program, so only do it when in debug mode () -#if defined (_DEBUG) || defined (__delay_load_trace__) - // Give some feedback to the developer. - wprintf(W("%s\n"), rcMessage); - WszOutputDebugString(rcMessage); -#endif -#endif - - // Inform the user that we cannot continue execution anymore. - UtilMessageBoxCatastrophicNonLocalized(rcMessage, W("MSCOREE.DLL"), MB_ICONERROR | MB_OK, TRUE); - _ASSERTE(!"Failed to delay load library"); -} - - -//***************************************************************************** -// A library failed to load. This is always a bad thing. -//***************************************************************************** -void _FailGetProc( - unsigned dliNotify, // What event has occurred, dli* flag. - DelayLoadInfo *pdli) // Description of the event. -{ - STATIC_CONTRACT_NOTHROW; - STATIC_CONTRACT_FORBID_FAULT; - STATIC_CONTRACT_SO_TOLERANT; - - // We're allocating strings for the purposes of putting up a critical error box. - // Obviously, OOM's aren't going to be passed up to the caller. - FAULT_NOT_FATAL(); - - WCHAR rcMessage[_MAX_PATH+756]; // Message for display. - WCHAR rcProc[257] = {0}; // Name of procedure with error. - WCHAR rcFmt[500]; // 500 is the number used by excep.cpp for mscorrc resources. - HRESULT hr; - - // Get a display name for debugging information. - if (pdli->dlp.fImportByName) - Wsz_mbstowcs(rcProc, pdli->dlp.szProcName, sizeof(rcProc)/sizeof(rcProc[0])-1); - else - StringCchPrintf(rcProc, COUNTOF(rcProc), W("Ordinal: %d"), pdli->dlp.dwOrdinal); - - // Load a detailed error message from the resource file. - if (SUCCEEDED(hr = UtilLoadStringRC(MSEE_E_GETPROCFAILED, rcFmt, NumItems(rcFmt)))) - { - StringCchPrintf(rcMessage, COUNTOF(rcMessage), rcFmt, rcProc, pdli->szDll, pdli->dwLastError); - } - else - { - if (!_FormatMessage(rcMessage, NumItems(rcMessage), pdli->dwLastError, pdli->szDll)) - { - // Default to a hard coded error otherwise. - StringCchPrintf(rcMessage, COUNTOF(rcMessage), W("ERROR! Failed GetProcAddress() for %s, Win32 error %d, Delay error %d\n"), - rcProc, pdli->dwLastError, dliNotify); - } - } - -#ifndef ALPHA - // for some bizarre reason, calling OutputDebugString during delay load in non-debug mode on Alpha - // kills program, so only do it when in debug mode () -#if defined (_DEBUG) || defined (__delay_load_trace__) - // Give some feedback to the developer. - wprintf(W("%s"),rcMessage); - WszOutputDebugString(rcMessage); -#endif -#endif - - { - // We are already in a catastrophic situation so we can tolerate faults as well as SO & GC mode violations to keep going. - CONTRACT_VIOLATION(FaultNotFatal | GCViolation | ModeViolation | SOToleranceViolation); - - // Inform the user that we cannot continue execution anymore. - UtilMessageBoxCatastrophicNonLocalized(rcMessage, W("MSCOREE.DLL"), MB_ICONERROR | MB_OK, TRUE); - } - _ASSERTE(!"Failed to delay load GetProcAddress()"); -} - - - -HMODULE DoPreloadLibraryThrowing(LPCSTR szLibrary) -{ - STATIC_CONTRACT_THROWS; - STATIC_CONTRACT_SO_TOLERANT; - - HMODULE result=NULL; - BEGIN_SO_INTOLERANT_CODE_NO_THROW_CHECK_THREAD(ThrowHR(COR_E_STACKOVERFLOW)); - DWORD dwLength = _MAX_PATH; - WCHAR pName[_MAX_PATH]; - IfFailThrow(GetInternalSystemDirectory(pName, &dwLength)); - - MAKE_WIDEPTR_FROMANSI_NOTHROW(pwLibrary, szLibrary); - if ((pwLibrary == NULL) || ovadd_ge(dwLength, __lpwLibrary, _MAX_PATH-1)) - ThrowHR(E_INVALIDARG); - - wcscpy_s(pName+dwLength-1, COUNTOF(pName) - dwLength + 1, pwLibrary); - result = CLRLoadLibraryEx(pName, NULL, GetLoadWithAlteredSearchPathFlag()); - END_SO_INTOLERANT_CODE; - return result; -} - -// -//********** Tracing code. **************************************************** -// - -//***************************************************************************** -// This routine is our Delay Load Helper. It will get called for every delay -// load event that occurs while the application is running. -//***************************************************************************** -FARPROC __stdcall CorDelayLoadHook( // Always 0. - unsigned dliNotify, // What event has occurred, dli* flag. - DelayLoadInfo *pdli) // Description of the event. -{ -#ifdef _DEBUG - if (dliNotify == dliStartProcessing) - { - BOOL fThrows = TRUE; - if (_stricmp(pdli->szDll, "ole32.dll") == 0) - { - // SQL loads ole32.dll before starting CLR. For Whidbey release, - // we do not have time to get ole32.dll delay load cleaned. - fThrows = FALSE; - } - else if (_stricmp(pdli->szDll, "oleaut32.dll") == 0) - { - extern BOOL DelayLoadOleaut32CheckDisabled(); - if (DelayLoadOleaut32CheckDisabled()) - { - fThrows = FALSE; - } - else if ((!pdli->dlp.fImportByName && pdli->dlp.dwOrdinal == 6) || - (pdli->dlp.fImportByName && strcmp(pdli->dlp.szProcName, "SysFreeString") == 0)) - { - // BSTR has been created, which means oleaut32 should have been loaded. - // Delay load will not fail. - _ASSERTE (GetModuleHandleA("oleaut32.dll") != NULL); - fThrows = FALSE; - } - } - else if (_stricmp(pdli->szDll, "mscoree.dll") == 0) // If we are attempting to delay load mscoree.dll - { - if (GetModuleHandleA("mscoree.dll") != NULL) // and mscoree.dll has already been loaded - fThrows = FALSE; // then the delay load will not fail (and hence will not throw). - } - if (fThrows) - { - CONTRACTL - { - SO_TOLERANT; - THROWS; - } - CONTRACTL_END; - } - } -#endif - - //STATIC_CONTRACT_NOTHROW; - STATIC_CONTRACT_FAULT; - STATIC_CONTRACT_SO_TOLERANT; - - // We're allocating strings for the purposes of putting up a critical error box. - // Obviously, OOM's aren't going to be passed up to the caller. - HMODULE result = NULL; - CONTRACT_VIOLATION(FaultNotFatal); - - - switch(dliNotify) { - case dliNotePreLoadLibrary: - if(pdli->szDll) { - result=DoPreloadLibraryThrowing(pdli->szDll); - } - break; - default: - break; - } - -#if defined (_DEBUG) || defined (__delay_load_trace__) - SO_NOT_MAINLINE_FUNCTION; - static int bBreak = false; // true to break on events. - static int bInit = false; // true after we've checked environment. - // If we've not yet looked at our environment, then do so. - if (!bInit) - { - PathString rcBreak; - - // set DelayLoadBreak=[0|1] - if (WszGetEnvironmentVariable(W("DelayLoadBreak"), rcBreak)) - { - // "1" means to break hard and display errors. - if (rcBreak[0] == '1') - bBreak = 1; - // "2" means no break, but display errors. - else if (rcBreak[0] == '2') - bBreak = 2; - else - bBreak = false; - } - bInit = true; - } - - // Chose operation to perform based on operation. - switch (dliNotify) - { - // Called just before a load library takes place. Use this opportunity - // to display a debug trace message, and possible break if desired. - case dliNotePreLoadLibrary: - _DbgPreLoadLibrary(bBreak, pdli); - break; - } -#endif - return (FARPROC) result; -} - - -#if defined (_DEBUG) || defined (__delay_load_trace__) - -//***************************************************************************** -// Display a debug message so we know what's going on. Offer to break in -// debugger if you want to see what call stack forced this library to load. -//***************************************************************************** -void _DbgPreLoadLibrary( - int bBreak, // true to break in debugger. - DelayLoadInfo *pdli) // Description of the event. -{ - STATIC_CONTRACT_NOTHROW; - STATIC_CONTRACT_FORBID_FAULT; - - // We're allocating strings for the purposes of putting up a critical error box. - // Obviously, OOM's aren't going to be passed up to the caller. - FAULT_NOT_FATAL(); - - -#ifdef _ALPHA_ - // for some bizarre reason, calling OutputDebugString during delay load in non-debug mode on Alpha - // kills program, so only do it when in debug mode () - if (! IsDebuggerPresent()) - return; -#endif - - WCHAR rcMessage[_MAX_PATH*2]; // Message for display. - - // Give some feedback to the developer. - StringCchPrintf(rcMessage, COUNTOF(rcMessage), W("Delay loading %hs\n"), pdli->szDll); - WszOutputDebugString(rcMessage); - - if (bBreak) - { - wprintf(W("%s"), rcMessage); - - if (bBreak == 1) - { - _ASSERTE(!"fyi - Delay loading library. Set DelayLoadBreak=0 to disable this assert."); - } - } -} - - -#endif // _DEBUG - -#endif // !FEATURE_CORESYSTEM diff --git a/src/dlls/mscoree/dirs.proj b/src/dlls/mscoree/dirs.proj deleted file mode 100644 index 8059846..0000000 --- a/src/dlls/mscoree/dirs.proj +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - true - false - true - true - - - - - - - - - - - - - - diff --git a/src/dlls/mscoree/dw20.msi b/src/dlls/mscoree/dw20.msi deleted file mode 100644 index f8d0752..0000000 Binary files a/src/dlls/mscoree/dw20.msi and /dev/null differ diff --git a/src/dlls/mscoree/dw20_amd64.msi b/src/dlls/mscoree/dw20_amd64.msi deleted file mode 100644 index 53233ac..0000000 Binary files a/src/dlls/mscoree/dw20_amd64.msi and /dev/null differ diff --git a/src/dlls/mscoree/mscoree.cpp b/src/dlls/mscoree/mscoree.cpp index 4c613ff..8ec460e 100644 --- a/src/dlls/mscoree/mscoree.cpp +++ b/src/dlls/mscoree/mscoree.cpp @@ -15,37 +15,20 @@ #include "shimload.h" #include "metadataexports.h" #include "ex.h" -#if !defined(FEATURE_CORECLR) -#include "corsym.h" -#endif -#if defined(FEATURE_CORECLR) #include "product_version.h" -#endif // FEATURE_CORECLR #ifdef FEATURE_COMINTEROP #include "ComCallUnmarshal.h" #endif // FEATURE_COMINTEROP -#if !defined(FEATURE_CORECLR) && !defined(CROSSGEN_COMPILE) -#include -extern ICLRRuntimeInfo *g_pCLRRuntime; -#endif // !FEATURE_CORECLR && !CROSSGEN_COMPILE - #include "clrprivhosting.h" -#ifndef FEATURE_CORECLR -#include "clr/win32.h" -#endif // FEATURE_CORECLR - #ifdef FEATURE_PROFAPI_ATTACH_DETACH #include "../../vm/profattach.h" #endif // FEATURE_PROFAPI_ATTACH_DETACH - -#if defined(FEATURE_CORECLR) #include -#endif // FEATURE_CORECLR // Locals. BOOL STDMETHODCALLTYPE EEDllMain( // TRUE on success, FALSE on error. @@ -53,14 +36,6 @@ BOOL STDMETHODCALLTYPE EEDllMain( // TRUE on success, FALSE on error. DWORD dwReason, // Reason for loading. LPVOID lpReserved); // Unused. -#ifdef FEATURE_COMINTEROP_MANAGED_ACTIVATION -// try to load a com+ class and give out an IClassFactory -HRESULT STDMETHODCALLTYPE EEDllGetClassObject( - REFCLSID rclsid, - REFIID riid, - LPVOID FAR *ppv); -#endif // FEATURE_COMINTEROP_MANAGED_ACTIVATION - // Globals. HINSTANCE g_hThisInst; // This library. @@ -69,8 +44,6 @@ HINSTANCE g_hThisInst; // This library. // Handle lifetime of loaded library. //***************************************************************************** -#ifdef FEATURE_CORECLR - #include #include // for __security_init_cookie() @@ -141,7 +114,6 @@ extern "C" BOOL WINAPI CoreDllMain(HANDLE hInstance, DWORD dwReason, LPVOID lpRe } return result; } -#endif //FEATURE_CORECLR extern "C" BOOL WINAPI DllMain(HANDLE hInstance, DWORD dwReason, LPVOID lpReserved) @@ -155,16 +127,6 @@ BOOL WINAPI DllMain(HANDLE hInstance, DWORD dwReason, LPVOID lpReserved) // Save the module handle. g_hThisInst = (HINSTANCE)hInstance; -#ifndef FEATURE_CORECLR - // clr.dll cannot be unloaded - // Normally the shim prevents it from ever being unloaded, but we now support fusion loading - // us directly, so we need to take an extra ref on our handle to ensure we don't get unloaded. - if (FAILED(clr::win32::PreventModuleUnload(g_hThisInst))) - { - return FALSE; - } -#endif // FEATURE_CORECLR - // Prevent buffer-overruns // If buffer is overrun, it is possible the saved callback has been trashed. // The callback is unsafe. @@ -192,129 +154,6 @@ BOOL WINAPI DllMain(HANDLE hInstance, DWORD dwReason, LPVOID lpReserved) return TRUE; } -#ifndef FEATURE_CORECLR // coreclr does not export this -// --------------------------------------------------------------------------- -// %%Function: DllGetClassObjectInternal %%Owner: NatBro %%Reviewed: 00/00/00 -// -// Parameters: -// rclsid - reference to the CLSID of the object whose -// ClassObject is being requested -// iid - reference to the IID of the interface on the -// ClassObject that the caller wants to communicate -// with -// ppv - location to return reference to the interface -// specified by iid -// -// Returns: -// S_OK - if successful, valid interface returned in *ppv, -// otherwise *ppv is set to NULL and one of the -// following errors is returned: -// E_NOINTERFACE - ClassObject doesn't support requested interface -// CLASS_E_CLASSNOTAVAILABLE - clsid does not correspond to a supported class -// -// Description: -// Returns a reference to the iid interface on the main COR ClassObject. -// This function is one of the required by-name entry points for COM -// DLL's. Its purpose is to provide a ClassObject which by definition -// supports at least IClassFactory and can therefore create instances of -// objects of the given class. -// --------------------------------------------------------------------------- - -#ifdef FEATURE_COMINTEROP -// This could be merged with Metadata's class factories! -static CComCallUnmarshalFactory g_COMCallUnmarshal; -#endif // FEATURE_COMINTEROP - -STDAPI InternalDllGetClassObject( - REFCLSID rclsid, - REFIID riid, - LPVOID FAR *ppv) -{ - // @todo: this is called before the runtime is really started, so the contract's don't work. - STATIC_CONTRACT_NOTHROW; - STATIC_CONTRACT_SO_TOLERANT; - - HRESULT hr = CLASS_E_CLASSNOTAVAILABLE; - BEGIN_SO_INTOLERANT_CODE_NO_THROW_CHECK_THREAD(return COR_E_STACKOVERFLOW); - - - if (rclsid == CLSID_CorMetaDataDispenser || rclsid == CLSID_CorMetaDataDispenserRuntime || - rclsid == CLSID_CorRuntimeHost || rclsid == CLSID_CLRRuntimeHost || - rclsid == CLSID_TypeNameFactory - || rclsid == __uuidof(CLRPrivRuntime) - ) - { - hr = MetaDataDllGetClassObject(rclsid, riid, ppv); - } -#ifdef FEATURE_PROFAPI_ATTACH_DETACH - else if (rclsid == CLSID_CLRProfiling) - { - hr = ICLRProfilingGetClassObject(rclsid, riid, ppv); - } -#endif // FEATURE_PROFAPI_ATTACH_DETACH -#ifdef FEATURE_COMINTEROP - else if (rclsid == CLSID_ComCallUnmarshal || rclsid == CLSID_ComCallUnmarshalV4) - { - // We still respond to the 1.0/1.1/2.0 CLSID so we don't break anyone who is instantiating - // this (we could be called for CLSID_ComCallUnmarshal if the process is rollForward=true) - hr = g_COMCallUnmarshal.QueryInterface(riid, ppv); - } - else if (rclsid == CLSID_CorSymBinder_SxS) - { - EX_TRY - { - - // PDB format - use diasymreader.dll with COM activation - InlineSString<_MAX_PATH> ssBuf; - if (SUCCEEDED(GetHModuleDirectory(GetModuleInst(), ssBuf))) - { - hr = FakeCoCallDllGetClassObject(rclsid, - ssBuf, - riid, - ppv, - NULL - ); - } - } - EX_CATCH_HRESULT(hr); - } - else - { -#ifdef FEATURE_COMINTEROP_MANAGED_ACTIVATION - // Returns a managed object imported into COM-classic. - hr = EEDllGetClassObject(rclsid,riid,ppv); -#endif // FEATURE_COMINTEROP_MANAGED_ACTIVATION - } -#endif // FEATURE_COMINTEROP - - END_SO_INTOLERANT_CODE; - return hr; -} // InternalDllGetClassObject - - -STDAPI DllGetClassObjectInternal( - REFCLSID rclsid, - REFIID riid, - LPVOID FAR *ppv) -{ - STATIC_CONTRACT_NOTHROW; - STATIC_CONTRACT_ENTRY_POINT; - - HRESULT hr = S_OK; - BEGIN_ENTRYPOINT_NOTHROW; - - // InternalDllGetClassObject exists to resolve an issue - // on FreeBSD, where libsscoree.so's DllGetClassObject's - // call to DllGetClassObjectInternal() was being bound to - // the implementation in libmscordbi.so, not the one in - // libsscoree.so. The fix is to disambiguate the name. - hr = InternalDllGetClassObject(rclsid, riid, ppv); - END_ENTRYPOINT_NOTHROW; - - return hr; -} -#endif // FEATURE_CORECLR - #ifdef FEATURE_COMINTEROP // --------------------------------------------------------------------------- // %%Function: DllCanUnloadNowInternal @@ -767,128 +606,13 @@ CLRRuntimeHostInternal_GetImageVersionString( // Simply forward the call to the ICLRRuntimeHostInternal implementation. STATIC_CONTRACT_WRAPPER; -#if defined(FEATURE_CORECLR) || defined(CROSSGEN_COMPILE) HRESULT hr = GetCORVersionInternal(wszBuffer, *pcchBuffer, pcchBuffer); -#else - ReleaseHolder pRuntimeHostInternal; - HRESULT hr = g_pCLRRuntime->GetInterface(CLSID_CLRRuntimeHostInternal, - IID_ICLRRuntimeHostInternal, - &pRuntimeHostInternal); - if (SUCCEEDED(hr)) - { - hr = pRuntimeHostInternal->GetImageVersionString(wszBuffer, pcchBuffer); - } -#endif return hr; } // CLRRuntimeHostInternal_GetImageVersionString - //LONGPATH:TODO: Remove this once Desktop usage has been removed -#if !defined(FEATURE_CORECLR) -STDAPI GetCORSystemDirectoryInternal(__out_ecount_part_opt(cchBuffer, *pdwLength) LPWSTR pBuffer, - DWORD cchBuffer, - __out_opt DWORD* pdwLength) -{ -#if defined(CROSSGEN_COMPILE) - - CONTRACTL{ - NOTHROW; - GC_NOTRIGGER; - ENTRY_POINT; - PRECONDITION(CheckPointer(pBuffer, NULL_OK)); - PRECONDITION(CheckPointer(pdwLength, NULL_OK)); - } CONTRACTL_END; - - HRESULT hr = S_OK; - BEGIN_ENTRYPOINT_NOTHROW; - - if (pdwLength == NULL) - IfFailGo(E_POINTER); - - if (pBuffer == NULL) - IfFailGo(E_POINTER); - - if (WszGetModuleFileName(NULL, pBuffer, cchBuffer) == 0) - { - IfFailGo(HRESULT_FROM_GetLastError()); - } - WCHAR *pSeparator; - pSeparator = wcsrchr(pBuffer, DIRECTORY_SEPARATOR_CHAR_W); - if (pSeparator == NULL) - { - IfFailGo(HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND)); - } - *pSeparator = W('\0'); - - // Include the null terminator in the length - *pdwLength = (DWORD)wcslen(pBuffer) + 1; - -ErrExit: - END_ENTRYPOINT_NOTHROW; - return hr; - -#else // CROSSGEN_COMPILE - - // Simply forward the call to the ICLRRuntimeInfo implementation. - STATIC_CONTRACT_WRAPPER; - HRESULT hr = S_OK; - if (g_pCLRRuntime) - { - hr = g_pCLRRuntime->GetRuntimeDirectory(pBuffer, &cchBuffer); - *pdwLength = cchBuffer; - } - else - { - // not invoked via shim (most probably loaded by Fusion) - WCHAR wszPath[_MAX_PATH]; - DWORD dwLength = WszGetModuleFileName(g_hThisInst, wszPath, NumItems(wszPath)); - - - if (dwLength == 0 || (dwLength == NumItems(wszPath) && GetLastError() == ERROR_INSUFFICIENT_BUFFER)) - { - return E_UNEXPECTED; - } - - LPWSTR pwzSeparator = wcsrchr(wszPath, W('\\')); - if (pwzSeparator == NULL) - { - return E_UNEXPECTED; - } - pwzSeparator[1] = W('\0'); // after '\' - - LPWSTR pwzDirectoryName = wszPath; - - size_t cchLength = wcslen(pwzDirectoryName) + 1; - - if (cchBuffer < cchLength) - { - hr = HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER); - } - else - { - if (pBuffer != NULL) - { - // all look good, copy the string over - wcscpy_s(pBuffer, - cchLength, - pwzDirectoryName - ); - } - } - - // hand out the length regardless of success/failure - *pdwLength = (DWORD)cchLength; - } - return hr; - -#endif // CROSSGEN_COMPILE -} -#endif // !FEATURE_CORECLR - STDAPI GetCORSystemDirectoryInternaL(SString& pBuffer) { -#if defined(FEATURE_CORECLR) || defined(CROSSGEN_COMPILE) - CONTRACTL { NOTHROW; GC_NOTRIGGER; @@ -918,34 +642,6 @@ STDAPI GetCORSystemDirectoryInternaL(SString& pBuffer) END_ENTRYPOINT_NOTHROW; return hr; - -#else // FEATURE_CORECLR || CROSSGEN_COMPILE - DWORD cchBuffer = MAX_PATH - 1; - // Simply forward the call to the ICLRRuntimeInfo implementation. - STATIC_CONTRACT_WRAPPER; - HRESULT hr = S_OK; - if (g_pCLRRuntime) - { - WCHAR* temp = pBuffer.OpenUnicodeBuffer(cchBuffer); - hr = g_pCLRRuntime->GetRuntimeDirectory(temp, &cchBuffer); - pBuffer.CloseBuffer(cchBuffer - 1); - } - else - { - // not invoked via shim (most probably loaded by Fusion) - DWORD dwLength = WszGetModuleFileName(g_hThisInst, pBuffer); - - - if (dwLength == 0 || ((dwLength == pBuffer.GetCount() + 1) && GetLastError() == ERROR_INSUFFICIENT_BUFFER)) - { - return E_UNEXPECTED; - } - - CopySystemDirectory(pBuffer, pBuffer); - } - return hr; - -#endif // FEATURE_CORECLR || CROSSGEN_COMPILE } // @@ -967,8 +663,6 @@ __out_ecount_z_opt(cchBuffer) LPWSTR pBuffer, DWORD cchBuffer, __out DWORD *pdwLength) { -#if defined(FEATURE_CORECLR) || defined(CROSSGEN_COMPILE) - CONTRACTL { NOTHROW; GC_NOTRIGGER; @@ -1009,113 +703,8 @@ __out_ecount_z_opt(cchBuffer) LPWSTR pBuffer, END_ENTRYPOINT_NOTHROW; return hr; -#else // FEATURE_CORECLR || CROSSGEN_COMPILE - - // Simply forward the call to the ICLRRuntimeInfo implementation. - STATIC_CONTRACT_WRAPPER; - HRESULT hr = S_OK; - if (g_pCLRRuntime) - { - hr = g_pCLRRuntime->GetVersionString(pBuffer, &cchBuffer); - *pdwLength = cchBuffer; - } - else - { - // not invoked via shim (most probably loaded by Fusion) - WCHAR wszPath[_MAX_PATH]; - DWORD dwLength = WszGetModuleFileName(g_hThisInst, wszPath,NumItems(wszPath)); - - - if (dwLength == 0 || (dwLength == NumItems(wszPath) && GetLastError() == ERROR_INSUFFICIENT_BUFFER)) - { - return E_UNEXPECTED; - } - - LPWSTR pwzSeparator = wcsrchr(wszPath, W('\\')); - if (pwzSeparator == NULL) - { - return E_UNEXPECTED; - } - *pwzSeparator = W('\0'); - - LPWSTR pwzDirectoryName = wcsrchr(wszPath, W('\\')); - if (pwzDirectoryName == NULL) - { - return E_UNEXPECTED; - } - pwzDirectoryName++; // skip '\' - - size_t cchLength = wcslen(pwzDirectoryName) + 1; - - if (cchBuffer < cchLength) - { - hr = HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER); - } - else - { - if (pBuffer != NULL) - { - // all look good, copy the string over - wcscpy_s(pBuffer, - cchLength, - pwzDirectoryName - ); - } - } - - // hand out the length regardless of success/failure - *pdwLength = (DWORD)cchLength; - - } - return hr; - -#endif // FEATURE_CORECLR || CROSSGEN_COMPILE - } -#ifndef CROSSGEN_COMPILE -#ifndef FEATURE_CORECLR -STDAPI LoadLibraryShimInternal(LPCWSTR szDllName, LPCWSTR szVersion, LPVOID pvReserved, HMODULE *phModDll) -{ - // Simply forward the call to the ICLRRuntimeInfo implementation. - STATIC_CONTRACT_WRAPPER; - if (g_pCLRRuntime) - { - return g_pCLRRuntime->LoadLibrary(szDllName, phModDll); - } - else - { - // no runtime info, probably loaded directly (e.g. from Fusion) - // just look next to ourselves. - WCHAR wszPath[MAX_PATH]; - DWORD dwLength = WszGetModuleFileName(g_hThisInst, wszPath,NumItems(wszPath)); - - - if (dwLength == 0 || (dwLength == NumItems(wszPath) && GetLastError() == ERROR_INSUFFICIENT_BUFFER)) - { - return E_UNEXPECTED; - } - - LPWSTR pwzSeparator = wcsrchr(wszPath, W('\\')); - if (pwzSeparator == NULL) - { - return E_UNEXPECTED; - } - pwzSeparator[1]=W('\0'); - - wcscat_s(wszPath,NumItems(wszPath),szDllName); - *phModDll= WszLoadLibraryEx(wszPath,NULL,GetLoadWithAlteredSearchPathFlag()); - - if (*phModDll == NULL) - { - return HRESULT_FROM_GetLastError(); - } - return S_OK; - } -} -#endif -#endif - static DWORD g_dwSystemDirectory = 0; static WCHAR * g_pSystemDirectory = NULL; @@ -1213,7 +802,7 @@ HRESULT SetInternalSystemDirectory() return hr; } -#if defined(CROSSGEN_COMPILE) && defined(FEATURE_CORECLR) +#if defined(CROSSGEN_COMPILE) void SetMscorlibPath(LPCWSTR wzSystemDirectory) { DWORD len = (DWORD)wcslen(wzSystemDirectory); diff --git a/src/dlls/mscoree/mscoree.settings.targets b/src/dlls/mscoree/mscoree.settings.targets deleted file mode 100644 index 6aa31b9..0000000 --- a/src/dlls/mscoree/mscoree.settings.targets +++ /dev/null @@ -1,268 +0,0 @@ - - - - - - $(UserIncludes); - .; - ..; - ..\..\inc; - ..\..\..\inc; - ..\..\..\fusion\inc - - - CoreDllMain - _DllMainCRTStartup - DYNLINK - windows - - true - $(LinkAdditionalOptions) /NXCOMPAT - - $(LinkAdditionalOptions) /NOVCFEATURE - false - $(CDefines);UNICODE;_UNICODE - stdafx.h - true - ..\stdafx.cpp - false - - $(CDefines);SPECIAL_BUILD - $(IntermediateOutputDirectory)\$(MainClrModuleName).def - - true - true - false - - - - $(LinkDelayLoad); - $(LinkDelayLoad)ole32.dll;OLEAUT32.dll;mpr.dll - $(LinkDelayLoad);urlmon.dll;mscoree.dll;wintrust.dll - $(LinkDelayLoad);wtsapi32.dll - $(LinkDelayLoad);crypt32.dll - $(LinkDelayLoad);wininet.dll;cabinet.dll - $(LinkDelayLoad);version.dll - $(LinkDelayLoad);api-ms-win-core-winrt-l1-1-0.dll - $(LinkDelayLoad);api-ms-win-core-winrt-string-l1-1-0.dll - $(LinkDelayLoad);api-ms-win-ro-typeresolution-l1-1-0.dll - $(LinkDelayLoad);api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll - $(LinkDelayLoad);bcrypt.dll - $(LinkDelayLoad);Rstrtmgr.dll - $(LinkDelayLoad);msi.dll - - - - msvcdis$(VC_NONCRT_ProdVerX).dll - $(CDefines);MSDIS_DLL="\"$(MsdisDll)\"" - $(LinkDelayLoad);$(MsdisDll) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $(ClrSrcDirectory)vm\wks\wks.nativeproj - - - - - $(ClrSrcDirectory)utilcode\dyncrt\dyncrt.nativeproj - - - - - $(ClrSrcDirectory)debug\ildbsymlib\HostLocal\ildbsymlib.nativeproj - - - $(ClrSrcDirectory)fusion\asmcache\asmcache.nativeproj - - - $(ClrSrcDirectory)fusion\binder\binder.nativeproj - - - $(ClrSrcDirectory)fusion\download\download.nativeproj - - - $(ClrSrcDirectory)fusion\mparse\mparse.nativeproj - - - $(ClrSrcDirectory)fusion\utils\utils.nativeproj - - - $(ClrSrcDirectory)fusion\interface\interface.nativeproj - - - $(ClrSrcDirectory)strongname\api\wks\strongname_wks.nativeproj - - - $(ClrSrcDirectory)usagelog\usagelog.nativeproj - - - $(ClrSrcDirectory)nativebinder\nativebinder.nativeproj - - - $(ClrSrcDirectory)xmlparser\xmlparser.nativeproj - - - $(ClrSrcDirectory)zap\wks\zap.nativeproj - - - $(ClrSrcDirectory)profile\counters\counters.nativeproj - - - $(ClrSrcDirectory)debug\ee\wks\wks.nativeproj - - - $(ClrSrcDirectory)debug\dbgrawconn\dbgrawconn.nativeproj - - - - - - - $(ClrSrcDirectory)gcinfo\lib\gcinfo.nativeproj - - - $(ClrSrcDirectory)ipcman\ipcman\ipcman.nativeproj - - - $(ClrSrcDirectory)md\compiler\wks\mdcompiler_wks.nativeproj - - - $(ClrSrcDirectory)md\runtime\wks\mdruntime.nativeproj - - - $(ClrSrcDirectory)md\enc\wks\mdruntimerw.nativeproj - - - $(ClrSrcDirectory)md\winmd\wks\MDWinMD_wks.nativeproj - - - $(ClrSrcDirectory)md\hotdata\full\mdhotdata.nativeproj - - - $(ClrSrcDirectory)classlibnative\float\float.nativeproj - - - $(ClrSrcDirectory)classlibnative\nls\nls.nativeproj - - - $(ClrSrcDirectory)classlibnative\cryptography\cryptography.nativeproj - - - $(ClrSrcDirectory)classlibnative\bcltype\bcltype.nativeproj - - - $(ClrSrcDirectory)classlibnative\remoting\remoting.nativeproj - - - $(ClrSrcDirectory)md\ceefilegen\ceefgen.nativeproj - - - $(ClrSrcDirectory)binder\v3binder\v3binder.nativeproj - - - $(ClrSrcDirectory)shimload\shimload.nativeproj - - - $(ClrSrcDirectory)delayimp\delayimp.nativeproj - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @(CommonPreprocessDefines);$(CDefines);$(TargetDefines) - $(DllDef) - /TC - - - - - - - - - - - - - - - - diff --git a/src/dlls/mscoree/mscoree.targets b/src/dlls/mscoree/mscoree.targets deleted file mode 100644 index 9f4bd67..0000000 --- a/src/dlls/mscoree/mscoree.targets +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - - - - - $(DaccessTargetDefines);DBG_TARGET_X86=1 - 1 - $(DaccessTargetDefines);DBG_TARGET_AMD64=1 - $(DaccessTargetDefines);DBG_TARGET_ARM=1; - 1 - $(DaccessTargetDefines);DBG_TARGET_ARM64=1; - 1 - $(DaccessTargetDefines);DBG_TARGET_WIN64=1 - 1 - $(DaccessTargetDefines);DBG_TARGET_64BIT=1 - - - clr - onecoreclr - - - - - @(CommonPreprocessDefines);$(CDefines);$(DaccessTargetDefines);DACCESS_COMPILE - $(IntermediateOutputDirectory)\daccess.i - - $(UserIncludes); - $(ClrSrcDirectory)\debug\daccess; - $(ClrSrcDirectory)\vm; - $(ClrSrcDirectory)\gc; - $(ClrSrcDirectory)\vm\$(TargetCpu); - $(ClrSrcDirectory)\debug\inc; - $(ClrSrcDirectory)\debug\inc\$(TargetCpu); - $(ClrSrcDirectory)\debug\inc\dump; - $(ClrSrcDirectory)\debug\ee; - $(ClrSrcDirectory)\inc; - $(ClrSrcDirectory)\inc\$(IntermediateOutputDirectory); - $(VCToolsIncPath); - $(ClrSrcDirectory)\gcdump; - $(ClrSrcDirectory)\md\inc; - $(ClrSrcDirectory)\strongname\inc; - $(CrtIncPath); - $(AtlIncPath); - $(SdkIncPath); - $(SdkIncInternalPath); - $(DevDivSdkIncPath); - $(DdkIncPath); - $(VSCommonIncPath); - $(ConfigIncPath); - $(IntermediateOutputDirectory); - $(OakIncPath) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/dlls/mscoree/mscoree.vrg b/src/dlls/mscoree/mscoree.vrg deleted file mode 100644 index 465bfc1..0000000 --- a/src/dlls/mscoree/mscoree.vrg +++ /dev/null @@ -1,177 +0,0 @@ -VSREG 7 - -[HKEY_CLASSES_ROOT\CCWU.ComCallWrapper.1] -@="Com Call Wrapper Unmarshal Class" - -[HKEY_CLASSES_ROOT\CCWU.ComCallWrapper.1\CLSID] -@="{3F281000-E95A-11d2-886B-00C04F869F04}" - - -[HKEY_CLASSES_ROOT\CCWU.ComCallWrapper] -@="Com Call Wrapper Unmarshal Class" - -[HKEY_CLASSES_ROOT\CCWU.ComCallWrapper\CurVer] -@="CCWU.ComCallWrapper.1" - -[HKEY_CLASSES_ROOT\CCWU.ComCallWrapper\CLSID] -@="{3F281000-E95A-11d2-886B-00C04F869F04}" - - -[HKEY_CLASSES_ROOT\CLSID\{3F281000-E95A-11d2-886B-00C04F869F04}] -@="Com Call Wrapper Unmarshal Class" - -[HKEY_CLASSES_ROOT\CLSID\{3F281000-E95A-11d2-886B-00C04F869F04}\ProgID] -@="CCWU.ComCallWrapper.1" - -[HKEY_CLASSES_ROOT\CLSID\{3F281000-E95A-11d2-886B-00C04F869F04}\VersionIndependentProgID] -@="CCWU.ComCallWrapper" - -[HKEY_CLASSES_ROOT\CLSID\{3F281000-E95A-11d2-886B-00C04F869F04}\NotInsertable] - - -[HKEY_CLASSES_ROOT\CLSID\{3F281000-E95A-11d2-886B-00C04F869F04}\InprocServer32] -@="[#FilePath]" - - -[HKEY_CLASSES_ROOT\CLSID\{3F281000-E95A-11d2-886B-00C04F869F04}\InprocServer32] -"ThreadingModel"="Both" - - -[HKEY_CLASSES_ROOT\CLSID\{45FB4600-E6E8-4928-B25E-50476FF79425}] -@="Com Call Wrapper Unmarshal Class 4.0" - -[HKEY_CLASSES_ROOT\CLSID\{45FB4600-E6E8-4928-B25E-50476FF79425}\NotInsertable] - -[HKEY_CLASSES_ROOT\CLSID\{45FB4600-E6E8-4928-B25E-50476FF79425}\InprocServer32] -@="[#FilePath]" - -[HKEY_CLASSES_ROOT\CLSID\{45FB4600-E6E8-4928-B25E-50476FF79425}\InprocServer32] -"ThreadingModel"="Both" - -[HKEY_CLASSES_ROOT\CLSID\{45FB4600-E6E8-4928-B25E-50476FF79425}\InprocServer32\[RTM_ProductVersion]] -"ImplementedInThisVersion"="" - - -[HKEY_CLASSES_ROOT\CLRMetaData.CorMetaDataDispenser.2] -@="Microsoft Common Language Runtime Meta Data" - -[HKEY_CLASSES_ROOT\CLRMetaData.CorMetaDataDispenser.2\CLSID] -@="{E5CB7A31-7512-11D2-89CE-0080C792E5D8}" - - -[HKEY_CLASSES_ROOT\CLRMetaData.CorMetaDataDispenser] -@="Microsoft Common Language Runtime Meta Data" - -[HKEY_CLASSES_ROOT\CLRMetaData.CorMetaDataDispenser\CurVer] -@="CLRMetaData.CorMetaDataDispenser.2" - - -[HKEY_CLASSES_ROOT\CLSID\{E5CB7A31-7512-11D2-89CE-0080C792E5D8}] -@="Microsoft Common Language Runtime Meta Data" - -[HKEY_CLASSES_ROOT\CLSID\{E5CB7A31-7512-11D2-89CE-0080C792E5D8}\ProgID] -@="CLRMetaData.CorMetaDataDispenser.2" - -[HKEY_CLASSES_ROOT\CLSID\{E5CB7A31-7512-11D2-89CE-0080C792E5D8}\VersionIndependentProgID] -@="CLRMetaData.CorMetaDataDispenser" - -[HKEY_CLASSES_ROOT\CLSID\{E5CB7A31-7512-11D2-89CE-0080C792E5D8}\NotInsertable] - - -[HKEY_CLASSES_ROOT\CLSID\{E5CB7A31-7512-11D2-89CE-0080C792E5D8}\InprocServer32] -@="[#FilePath]" - - -[HKEY_CLASSES_ROOT\CLSID\{E5CB7A31-7512-11D2-89CE-0080C792E5D8}\InprocServer32] -"ThreadingModel"="Both" - - -[HKEY_CLASSES_ROOT\CLSID\{E5CB7A31-7512-11D2-89CE-0080C792E5D8}] -"MasterVersion"=dword:2 - - - - - - -[HKEY_CLASSES_ROOT\CLRMetaData.CorMetaDataDispenserRuntime.2] -@="Microsoft Common Language Runtime Meta Data" - -[HKEY_CLASSES_ROOT\CLRMetaData.CorMetaDataDispenserRuntime.2\CLSID] -@="{1EC2DE53-75CC-11d2-9775-00A0C9B4D50C}" - - -[HKEY_CLASSES_ROOT\CLRMetaData.CorMetaDataDispenserRuntime] -@="Microsoft Common Language Runtime Meta Data" - -[HKEY_CLASSES_ROOT\CLRMetaData.CorMetaDataDispenserRuntime\CurVer] -@="CLRMetaData.CorMetaDataDispenserRuntime.2" - - -[HKEY_CLASSES_ROOT\CLSID\{1EC2DE53-75CC-11d2-9775-00A0C9B4D50C}] -@="Microsoft Common Language Runtime Meta Data" - -[HKEY_CLASSES_ROOT\CLSID\{1EC2DE53-75CC-11d2-9775-00A0C9B4D50C}\ProgID] -@="CLRMetaData.CorMetaDataDispenserRuntime.2" - -[HKEY_CLASSES_ROOT\CLSID\{1EC2DE53-75CC-11d2-9775-00A0C9B4D50C}\VersionIndependentProgID] -@="CLRMetaData.CorMetaDataDispenserRuntime" - -[HKEY_CLASSES_ROOT\CLSID\{1EC2DE53-75CC-11d2-9775-00A0C9B4D50C}\NotInsertable] - - -[HKEY_CLASSES_ROOT\CLSID\{1EC2DE53-75CC-11d2-9775-00A0C9B4D50C}\InprocServer32] -@="[#FilePath]" - - -[HKEY_CLASSES_ROOT\CLSID\{1EC2DE53-75CC-11d2-9775-00A0C9B4D50C}\InprocServer32] -"ThreadingModel"="Both" - - - - -[HKEY_CLASSES_ROOT\CLRMetaData.CorRuntimeHost.2] -@="Microsoft Common Language Runtime Host" - -[HKEY_CLASSES_ROOT\CLRMetaData.CorRuntimeHost.2\CLSID] -@="{CB2F6723-AB3A-11d2-9C40-00C04FA30A3E}" - - -[HKEY_CLASSES_ROOT\CLRMetaData.CorRuntimeHost] -@="Microsoft Common Language Runtime Host" - -[HKEY_CLASSES_ROOT\CLRMetaData.CorRuntimeHost\CurVer] -@="CLRMetaData.CorRuntimeHost.2" - - -[HKEY_CLASSES_ROOT\CLSID\{CB2F6723-AB3A-11d2-9C40-00C04FA30A3E}] -@="Microsoft Common Language Runtime Meta Data" - -[HKEY_CLASSES_ROOT\CLSID\{CB2F6723-AB3A-11d2-9C40-00C04FA30A3E}\ProgID] -@="CLRMetaData.CorRuntimeHost.2" - -[HKEY_CLASSES_ROOT\CLSID\{CB2F6723-AB3A-11d2-9C40-00C04FA30A3E}\VersionIndependentProgID] -@="CLRMetaData.CorRuntimeHost" - -[HKEY_CLASSES_ROOT\CLSID\{CB2F6723-AB3A-11d2-9C40-00C04FA30A3E}\NotInsertable] - - -[HKEY_CLASSES_ROOT\CLSID\{CB2F6723-AB3A-11d2-9C40-00C04FA30A3E}\InprocServer32] -@="[#FilePath]" - -[HKEY_CLASSES_ROOT\CLSID\{CB2F6723-AB3A-11d2-9C40-00C04FA30A3E}\InprocServer32] -"ThreadingModel"="Both" - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\.NET Runtime] -"TypesSupported"=dword:00000007 -"EventMessageFile"="[#FilePath]" - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework] -"InstallRoot"="[Framework.3643236F_FC70_11D3_A536_0090278A1BB8]" - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management] -"WriteWatch"=dword:1 - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel] -"obcaseinsensitive"=dword:00000001 -"ObUnsecureGlobalNames"="netfxcustomperfcounters.1.0[~]SharedPerfIPCBlock[~]Cor_Private_IPCBlock[~]Cor_Public_IPCBlock_" diff --git a/src/dlls/mscoree/mscoree20_shared_neutral.vrg b/src/dlls/mscoree/mscoree20_shared_neutral.vrg deleted file mode 100644 index b138cd8..0000000 --- a/src/dlls/mscoree/mscoree20_shared_neutral.vrg +++ /dev/null @@ -1,286 +0,0 @@ -VSREG 7 - -[HKEY_CLASSES_ROOT\CLSID\{B81FF171-20F3-11d2-8DCC-00A0C9B00525}] -@="Type name parser and builder" - -[HKEY_CLASSES_ROOT\CLSID\{B81FF171-20F3-11d2-8DCC-00A0C9B00525}\NotInsertable] - -[HKEY_CLASSES_ROOT\CLSID\{B81FF171-20F3-11d2-8DCC-00A0C9B00525}\InprocServer32] -@="[SystemFolder.3643236F_FC70_11D3_A536_0090278A1BB8]mscoree.dll" - -[HKEY_CLASSES_ROOT\CLSID\{B81FF171-20F3-11d2-8DCC-00A0C9B00525}\InprocServer32] -"ThreadingModel"="Both" - - -[HKEY_CLASSES_ROOT\CLRMetaData.CLRRuntimeHost] -@="Microsoft Common Language Runtime Host V2" - -[HKEY_CLASSES_ROOT\CLRMetaData.CLRRuntimeHost\CurVer] -@="CLRMetaData.CLRRuntimeHost.2" - -[HKEY_CLASSES_ROOT\CLRMetaData.CLRRuntimeHost.2] -@="Microsoft Common Language Runtime Host V2" - -[HKEY_CLASSES_ROOT\CLRMetaData.CLRRuntimeHost.2\CLSID] -@="{90F1A06E-7712-4762-86B5-7A5EBA6BDB02}" - - -[HKEY_CLASSES_ROOT\CLSID\{90F1A06E-7712-4762-86B5-7A5EBA6BDB02}] -@="Microsoft Common Language Runtime Meta Data V2" - -[HKEY_CLASSES_ROOT\CLSID\{90F1A06E-7712-4762-86B5-7A5EBA6BDB02}\ProgID] -@="CLRMetaData.CLRRuntimeHost.2" - -[HKEY_CLASSES_ROOT\CLSID\{90F1A06E-7712-4762-86B5-7A5EBA6BDB02}\VersionIndependentProgID] -@="CLRMetaData.CLRRuntimeHost" - -[HKEY_CLASSES_ROOT\CLSID\{90F1A06E-7712-4762-86B5-7A5EBA6BDB02}\NotInsertable] - -[HKEY_CLASSES_ROOT\CLSID\{90F1A06E-7712-4762-86B5-7A5EBA6BDB02}\InprocServer32] -@="[SystemFolder.3643236F_FC70_11D3_A536_0090278A1BB8]mscoree.dll" - -[HKEY_CLASSES_ROOT\CLSID\{90F1A06E-7712-4762-86B5-7A5EBA6BDB02}\InprocServer32] -"ThreadingModel"="Both" - -[HKEY_CLASSES_ROOT\CLRMetaData.CLRRuntimeHost.1] -@="Microsoft Common Language Runtime Host V2" - -[HKEY_CLASSES_ROOT\CLRMetaData.CLRRuntimeHost.1\CLSID] -@="{90F1A06E-7712-4762-86B5-7A5EBA6BDB01}" - - -[HKEY_CLASSES_ROOT\CLSID\{90F1A06E-7712-4762-86B5-7A5EBA6BDB01}] -@="Microsoft Common Language Runtime Meta Data V2" - -[HKEY_CLASSES_ROOT\CLSID\{90F1A06E-7712-4762-86B5-7A5EBA6BDB01}\ProgID] -@="CLRMetaData.CLRRuntimeHost.1" - -[HKEY_CLASSES_ROOT\CLSID\{90F1A06E-7712-4762-86B5-7A5EBA6BDB01}\VersionIndependentProgID] -@="CLRMetaData.CLRRuntimeHost" - -[HKEY_CLASSES_ROOT\CLSID\{90F1A06E-7712-4762-86B5-7A5EBA6BDB01}\NotInsertable] - -[HKEY_CLASSES_ROOT\CLSID\{90F1A06E-7712-4762-86B5-7A5EBA6BDB01}\InprocServer32] -@="[SystemFolder.3643236F_FC70_11D3_A536_0090278A1BB8]mscoree.dll" - -[HKEY_CLASSES_ROOT\CLSID\{90F1A06E-7712-4762-86B5-7A5EBA6BDB01}\InprocServer32] -"ThreadingModel"="Both" - -[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\MiniDumpAuxiliaryDlls] -"[URTInstallPath.3643236F_FC70_11D3_A536_0090278A1BB8]clr.dll"="[URTInstallPath.3643236F_FC70_11D3_A536_0090278A1BB8]mscordacwks.dll" - -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\.NET Runtime Optimization Service] -"TypesSupported"=dword:00000007 -"EventMessageFile"="[SystemFolder.3643236F_FC70_11D3_A536_0090278A1BB8]mscoree.dll" - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\winword.exe] - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\winword.exe\{2CCAA9FE-6884-4AF2-99DD-5217B94115DF}] -"Target Version"="v1.1.4322" -"Maximum File Version Number"="11.0.9999.9999" -"Minimum File Version Number"="11.0.0.0" - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\winword.exe\{2CCAA9FE-6884-4AF2-99DD-5217B94115DF}\Registry Keys] - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\winword.exe\{2CCAA9FE-6884-4AF2-99DD-5217B94115DF}\Registry Keys\{2CCAA9FE-6884-4AF2-99DD-5217B94115DF}] -"Key Name"="HKEY_CLASSES_ROOT\\Interface\\{000C0601-0000-0000-C000-000000000046}" -"Key Presence"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\excel.exe] - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\excel.exe\{2CCAA9FE-6884-4AF2-99DD-5217B94115DF}] -"Target Version"="v1.1.4322" -"Maximum File Version Number"="11.0.9999.9999" -"Minimum File Version Number"="11.0.0.0" - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\excel.exe\{2CCAA9FE-6884-4AF2-99DD-5217B94115DF}\Registry Keys] - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\excel.exe\{2CCAA9FE-6884-4AF2-99DD-5217B94115DF}\Registry Keys\{2CCAA9FE-6884-4AF2-99DD-5217B94115DF}] -"Key Name"="HKEY_CLASSES_ROOT\\Interface\\{000C0601-0000-0000-C000-000000000046}" -"Key Presence"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch] - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000] - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\ehmsas.exe] - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\ehmsas.exe\{04A93A93-ABBA-44AF-948F-50B7182C631A}] -"Company"="Microsoft Corporation" -"Product Name"="Microsoft® Windows® Operating System" -"Internal Name"="eHMSAS" -"Maximum File Version"="5.1.2600.9999" -"Minimum File Version"="5.1.2600.0000" -"Target Version"="v1.0.3705" - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\ehrec.exe] - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\ehrec.exe\{44D9F380-9050-4365-AA06-DA121F6F2B7D}] -"Company"="Microsoft Corporation" -"Product Name"="Microsoft® Windows® Operating System" -"Internal Name"="eHRec" -"Maximum File Version"="5.1.2600.9999" -"Minimum File Version"="5.1.2600.0000" -"Target Version"="v1.0.3705" - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\ehSched.exe] - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\ehSched.exe\{EE19C1D5-4D4B-4D19-874A-FD6633C9293E}] -"Company"="Microsoft Corporation" -"Product Name"="Microsoft® Windows® Operating System" -"Internal Name"="ehSched" -"Maximum File Version"="5.1.2600.9999" -"Minimum File Version"="5.1.2600.0000" -"Target Version"="v1.0.3705" - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\ehShell.exe] - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\ehShell.exe\{95736FC3-FC2F-4ED5-9632-0216DF1B8019}] -"Company"="Microsoft Corporation" -"Product Name"="Microsoft® Windows® Operating System" -"Internal Name"="ehshell.exe" -"Maximum File Version"="5.1.2600.9999" -"Minimum File Version"="5.1.2600.0000" -"Target Version"="v1.0.3705" - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\ehtray.exe] - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\ehtray.exe\{FECCD425-B48B-4062-A580-642302E20A30}] -"Company"="Microsoft Corporation" -"Product Name"="Microsoft® Windows® Operating System" -"Internal Name"="ehtray" -"Maximum File Version"="5.1.2600.9999" -"Minimum File Version"="5.1.2600.0000" -"Target Version"="v1.0.3705" - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\medctrro.exe] - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\medctrro.exe\{DA93B8AF-F88E-438D-A5A3-CB78BB4E6BF9}] -"Company"="Microsoft Corporation" -"Product Name"="Microsoft® Windows® Operating System" -"Internal Name"="MedCtrRO.exe" -"Maximum File Version"="5.1.2600.9999" -"Minimum File Version"="5.1.2600.0000" -"Target Version"="v1.0.3705" - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\snchk.exe] - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\AppPatch\v[RTM_ProductVersion].00000\snchk.exe\{1CF3A71C-18F9-41EF-8BAD-EA355F4DB250}] -"Company"="Microsoft Corporation" -"Product Name"="Microsoft® Windows® Operating System" -"Internal Name"="SnChk.exe" -"Maximum File Version"="5.1.2600.9999" -"Minimum File Version"="5.1.2600.0000" -"Target Version"="v1.0.3705" - -[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\Policy\AppPatch\v[RTM_ProductVersion].00000\BTSNTSvc.exe\{CA109828-7CE7-40F4-AD73-C7575455A7D5}] -"Company"="Microsoft Corporation" -"Product Name"="Microsoft® BizTalk® Server 2004" -"Internal Name"="BTSNTSvc" -"Maximum File Version"="3.0.9999.9999" -"Minimum File Version"="3.0.0.0" -"Target Version"="v1.1.4322" - - - -[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\Policy\AppPatch\v[RTM_ProductVersion].00000\compeif.exe\{6AA1435F-1473-4A6D-B82A-1DD4E3A20E34}] -"Company"="Microsoft Corporation" -"Product Name"="Microsoft® BizTalk® Server" -"Internal Name"="compeif.exe" -"Maximum File Version"="4.0.9999.9999" -"Minimum File Version"="4.0.0.0" -"Target Version"="v1.1.4322" - - - -[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\Policy\AppPatch\v[RTM_ProductVersion].00000\ConfigFramework.exe\{CF59770F-C96E-472D-B532-2F9AE8D895DC}] -"Company"="Microsoft Corporation" -"Product Name"="Microsoft® BizTalk® Server 2004" -"Internal Name"="ConfigFramework" -"Maximum File Version"="3.0.9999.9999" -"Minimum File Version"="3.0.0.0" -"Target Version"="v1.1.4322" - - -[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\Policy\AppPatch\v[RTM_ProductVersion].00000\DW15.exe\{18B0BD4E-298B-4CB1-98E4-F49CFCE6CFB4}] -"File Size"=dword:2da48 -"Target Version"="v1.1.4322" - - -[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\Policy\AppPatch\v[RTM_ProductVersion].00000\esp_srv.exe\{D044DE85-EC81-4A04-BA4B-DF316E80DF61}] -"Company"="Microsoft Corporation" -"Product Name"="Microsoft® BizTalk® Server" -"Internal Name"="esp_srv.exe" -"Maximum File Version"="4.0.9999.9999" -"Minimum File Version"="4.0.0.0" -"Target Version"="v1.1.4322" - - -[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\Policy\AppPatch\v[RTM_ProductVersion].00000\Setup.exe\{83E0F69E-84FA-4961-9FD4-3025FCEE92EA}] -"Company"="Microsoft Corporation" -"Product Name"="Microsoft® BizTalk® Server 2004" -"Internal Name"="Setup" -"Maximum File Version"="3.0.9999.9999" -"Minimum File Version"="3.0.0.0" -"Target Version"="v1.1.4322" - - -[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\Policy\AppPatch\v[RTM_ProductVersion].00000\testmess.exe\{11856902-6A4D-4AFB-AF94-E1FCA58C8BAF}] -"Company"="Microsoft Corporation" -"Product Name"="Microsoft® BizTalk® Server" -"Internal Name"="testmess.exe" -"Maximum File Version"="4.0.9999.9999" -"Minimum File Version"="4.0.0.0" -"Target Version"="v1.1.4322" - - -[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\Policy\AppPatch\v[RTM_ProductVersion].00000\TrackingDbHelper.exe\{162E7914-3267-46E2-82C8-8E72484BD554}] -"Company"="Microsoft Corporation" -"Product Name"="Microsoft® BizTalk® Server 2004" -"Internal Name"="TrackingDbHelper" -"Maximum File Version"="3.0.9999.9999" -"Minimum File Version"="3.0.0.0" -"Target Version"="v1.1.4322" - -[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\Policy\AppPatch\v[RTM_ProductVersion].00000\Trigcon.exe\{3C010CA2-7989-4C96-91C3-1564E33F9A42}] -"Company"="Microsoft Corporation" -"Product Name"="Microsoft® BizTalk® Server" -"Internal Name"="trigcon.exe" -"Maximum File Version"="4.0.9999.9999" -"Minimum File Version"="4.0.0.0" -"Target Version"="v1.1.4322" - - -[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\Policy\AppPatch\v[RTM_ProductVersion].00000\validins.exe\{00BBFD35-5011-4117-9DA1-2D3BFAAF9561}] -"Company"="Microsoft Corporation" -"Product Name"="Microsoft® BizTalk® Server" -"Internal Name"="validins.exe" -"Maximum File Version"="4.0.9999.9999" -"Minimum File Version"="4.0.0.0" -"Target Version"="v1.1.4322" - - -[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\Policy\AppPatch\v[RTM_ProductVersion].00000\xsd2edi.exe\{B469F89A-19A5-44B2-A12F-E93394003755}] -"Company"="Microsoft Corporation" -"Product Name"="Microsoft® BizTalk® Server" -"Internal Name"="XSD2EDI.EXE" -"Maximum File Version"="4.0.9999.9999" -"Minimum File Version"="4.0.0.0" -"Target Version"="v1.1.4322" - - -[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\Policy\AppPatch\v[RTM_ProductVersion].00000\XSharpP.EXE\{BDC69590-00EE-408A-B21F-58D9EF182CF6}] -"Company"="Microsoft Corporation" -"Product Name"="Microsoft® BizTalk® Server 2004" -"Internal Name"="XSharpP" -"Maximum File Version"="3.0.9999.9999" -"Minimum File Version"="3.0.0.0" -"Target Version"="v1.1.4322" - - -[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\Policy\AppPatch\v[RTM_ProductVersion].00000\msi.dll\{462EF42B-ABA4-4eac-9843-9EED260F54D0}] -"Company"="Microsoft Corporation" -"Maximum File Version"="5.0.9999.99999" -"Minimum File Version"="2.0.0000.00000" -"Target Version"="v[RTM_ProductVersion]" - diff --git a/src/dlls/mscoree/mscoreeBBT.bat b/src/dlls/mscoree/mscoreeBBT.bat deleted file mode 100644 index e8a3bb3..0000000 --- a/src/dlls/mscoree/mscoreeBBT.bat +++ /dev/null @@ -1,83 +0,0 @@ -@rem Licensed to the .NET Foundation under one or more agreements. -@rem The .NET Foundation licenses this file to you under the MIT license. -@rem See the LICENSE file in the project root for more information. - -setlocal -rem @echo off -REM Args are 1) full path to here 2) compile output dir 3) target platform 4) resulting binary -REM The script gets called for lib's too, so skip them. -if /i "%~x3" EQU ".lib" goto :EOF - -REM Clean up from any previous runs. -del /s /f /q %1\bbt\%4 - -REM Set up the BBT environment. -if not exist %1\bbt\%4 md %1\bbt\%4 -cd %1\bbt\%4 -xcopy %3 -xcopy %~dpn3.pdb -xcopy %1\bbt\*.* - -REM Do the actual BBT run. -call :BBTize %~nx3 - -endlocal -goto :EOF - - - -:BBTize -setlocal -@echo BBTizing %1 - -REM Build the instrumented executable. -call :bbtstart %1 - -REM Call the perf script. -@echo calling performance script -setlocal -call BBTScript -endlocal - -REM Build the optimized executable. -call :bbtend %1 - -endlocal -goto :EOF - - - -:bbtstart -@echo bbflow, bbinstr, bblink -bbflow /odb %~n1.bbcfg %~nx1 -bbinstr /odb %~n1.ins.bbcfg /idfmax 4096 /idf %~n1.bbidf %~n1.bbcfg -bblink /o %~n1.ins.%~x1 %~n1.ins.bbcfg -if exist %~n1.sav del /f %~n1.sav -ren %~nx1 %~n1.sav -copy %~n1.ins.%~x1 %~nx1 -if /i "%~x1" EQU ".dll" echo Registering DLL %1 & regsvr32 /s %1 -goto :EOF - - - -:bbtend -copy %~n1.sav %~nx1 - -@echo Building an Optimized Program. -bbmerge /idf %~n1.bbidf %~n1.bbcfg -if %ERRORLEVEL% NEQ 0 goto :EOF -bbopt /odb %~n1.opt.bbcfg %~n1.bbcfg -if %ERRORLEVEL% NEQ 0 goto :EOF -bblink /map %~n1.map /o %~n1.opt.%~x1 %~n1.opt.bbcfg -if %ERRORLEVEL% NEQ 0 goto :EOF - -@echo Writing reports. -bbrpt /funcov %~n1.bbcfg > %~n1.fcv -if %ERRORLEVEL% NEQ 0 goto :EOF -bbrpt /deadsym %~n1.bbcfg > %~n1.ded -if %ERRORLEVEL% NEQ 0 goto :EOF -copy %~n1.opt.%~x1 %~nx1 - -splitsym %~nx1 -goto :EOF - diff --git a/src/dlls/mscoree/mscoreeDoNotEverRemove.vrg b/src/dlls/mscoree/mscoreeDoNotEverRemove.vrg deleted file mode 100644 index 0f7bf07..0000000 --- a/src/dlls/mscoree/mscoreeDoNotEverRemove.vrg +++ /dev/null @@ -1,4 +0,0 @@ -VSREG 7 - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Secure Mime Handlers] -"CorTransientLoader.CorLoad.1"="" diff --git a/src/dlls/mscoree/mscoreeVersioned.vrg b/src/dlls/mscoree/mscoreeVersioned.vrg deleted file mode 100644 index 39aa5a8..0000000 --- a/src/dlls/mscoree/mscoreeVersioned.vrg +++ /dev/null @@ -1,22 +0,0 @@ -VSREG 7 - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Policy\Standards\Standard CLI 2002] -"v[RTM_ProductVersion]"=dword:fff - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Policy\Standards\Standard CLI 2005] -"v[RTM_ProductVersion]"=dword:fff - -[HKEY_CLASSES_ROOT\CLSID\{3F281000-E95A-11d2-886B-00C04F869F04}\InprocServer32\[RTM_ProductVersion]] -"ImplementedInThisVersion"="" - -[HKEY_CLASSES_ROOT\CLSID\{E5CB7A31-7512-11D2-89CE-0080C792E5D8}\InProcServer32\[RTM_ProductVersion]] -"ImplementedInThisVersion"="" - -[HKEY_CLASSES_ROOT\CLSID\{1EC2DE53-75CC-11d2-9775-00A0C9B4D50C}\InprocServer32\[RTM_ProductVersion]] -"ImplementedInThisVersion"="" - -[HKEY_CLASSES_ROOT\CLSID\{CB2F6723-AB3A-11d2-9C40-00C04FA30A3E}\InprocServer32\[RTM_ProductVersion]] -"ImplementedInThisVersion"="" - -[HKEY_CLASSES_ROOT\CLSID\{B81FF171-20F3-11d2-8DCC-00A0C9B00525}\InprocServer32\[RTM_ProductVersion]] -"ImplementedInThisVersion"="" diff --git a/src/dlls/mscoree/shim.reg b/src/dlls/mscoree/shim.reg deleted file mode 100644 index bddf047..0000000 --- a/src/dlls/mscoree/shim.reg +++ /dev/null @@ -1,9 +0,0 @@ -REGEDIT4 - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy] - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\v4.0] -"[URTBuildNum]"="[URTBuildNum]-[URTBuildNum]" - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\standards\v1.0.0] -"v4.0.[URTBuildNum]"=DWORD:[URTBuildNum] diff --git a/src/dlls/mscoree/type_exclusion_list.txt b/src/dlls/mscoree/type_exclusion_list.txt deleted file mode 100644 index b93bfee..0000000 --- a/src/dlls/mscoree/type_exclusion_list.txt +++ /dev/null @@ -1,142 +0,0 @@ -# Add types names to this exclusion list by adding it on a separate line. -# If types from clr.pdb and mscordacwks_x86_arm.pdb don't match you have 3 options: -# 1. If the type is not used by the DAC simply remove it. -# 2. Fix the layout mismatch taking care of #defines used in declaration. -# 3. Add it to this file (type_exclusion_list.txt) as a final option. If you choose this option make sure you are -# not leaking a silent bug into the DAC. (if the type is not used in the DAC is better to use option 1). -# For any question regarding PdbTypeMatch tool and build validation process please contact clrdbgpriv. -CLiteWeightStgdb -CLiteWeightStgdbRW -CMiniMdRW -DoFullyLoadLocals -Generics::RecursionGraph -SyncBlock -_ACTIVATION_CONTEXT_STACK -_CONTEXT -_DISPATCHER_CONTEXT -_PEB -_RTL_CRITICAL_SECTION_DEBUG -_TEB -_XSTATE_CONTEXT -_JUMP_BUFFER -$_s__RTTIBaseClassArray$_extraBytes_4 -$_s__RTTIBaseClassArray$_extraBytes_8 -CVirtualThunks::tagThunkCode -CrossDomainOptimizationInfo -DebuggerController -EHExceptionRecord -EHExceptionRecord::EHParameters -FastTable -IBCLogger -IBCLoggingDisabler -RegMeta -ScanContext -StubManagerIterator -ThreadLocalIBCInfo -_PEB_LDR_DATA -_RTL_USER_PROCESS_PARAMETERS -_s__RTTIBaseClassArray -_s_ESTypeList -_s_FuncInfo -_s_HandlerType -_s_TryBlockMapEntry -_tiddata -FieldDesc -TypeHandle -SecurityUtil -UMEntryThunk -FrameInfo -SPLIT64 -#Remove all Holder based types as DAC Holder base class includes two extra fields -*Holder -SYSTEM_POWER_CAPABILITIES -*_CERT_ -*_CMSG_ -_CRYPT_RETRIEVE_AUX_INFO -_CRYPT_KEY_SIGN_MESSAGE_PARA -*_EVENT_ -_FULL_PTR_XLAT_TABLES -*_IMAGE_AUX_SYMBOL -*_MIDL_STUB_ -_QUOTA_LIMITS_EX -_RDR_CALLOUT_STATE -_TOKEN_AUDIT_POLICY -tagI_RpcProxyCallbackInterface -tagRID_DEVICE_INFO_MOUSE -_GCStress::CoopGcModePolicy -_KUSER_SHARED_DATA -_TP_TASK -CsFrame -stat -#Added for new changes in the CRT structs -tagLC_ID -threadlocaleinfostruct -WINTRUST_CATALOG_INFO_ -_CRYPT_PROVIDER_DATA -_WINTRUST_DATA -__lc_time_data -setloc_struct -tagLC_STRINGS -tagLOCALETAB -threadmbcinfostruct -BINDER_SPACE::Variables -_SYMCRYPT_MARVIN32_EXPANDED_SEED -_SYMCRYPT_CCM_STATE -_SYMCRYPT_GCM_EXPANDED_KEY -_SYMCRYPT_GHASH_EXPANDED_KEY -_SYMCRYPT_HMAC_SHA1_EXPANDED_KEY -_SYMCRYPT_MD2_STATE -_SYMCRYPT_RC4_STATE -_SYMCRYPT_SHA1_CHAINING_STATE -_SYMCRYPT_3DES_EXPANDED_KEY -_SYMCRYPT_AES_CMAC_EXPANDED_KEY -_SYMCRYPT_AES_CMAC_STATE -_SYMCRYPT_AES_EXPANDED_KEY -_SYMCRYPT_DESX_EXPANDED_KEY -_SYMCRYPT_DES_EXPANDED_KEY -_SYMCRYPT_GCM_STATE -_SYMCRYPT_GCM_SUPPORTED_BLOCKCIPHER_KEYS -_SYMCRYPT_HMAC_MD5_EXPANDED_KEY -_SYMCRYPT_HMAC_SHA256_EXPANDED_KEY -_SYMCRYPT_MARVIN32_STATE -_SYMCRYPT_RC2_EXPANDED_KEY -_SYMCRYPT_GF128_ELEMENT -_nlsversioninfo -_XSTATE_CONFIGURATION -MARK_HANDLE_INFO -_STORAGE_ADAPTER_DESCRIPTOR -_STORAGE_MINIPORT_DESCRIPTOR -FILE_ID_DESCRIPTOR -# Added to workaround mismatch of _UNWIND_INFO in x64 CoreSys chk build. The ret build is clean. -_UNWIND_INFO -# DevDiv2:672407 Workaround a build sequencing hole that resulted in a mismatch between -# coreclr.pdb and mscoredaccore_x86.pdb around the WinRTExceptionInfo type, which is -# part of the VCTools CRT. The type (which mirrors the WinRT Platform.Exception type) -# was out-of-date and the update exposed this hole. Bug#672407 is tracking the investigation -# of the build hole. -WinRTExceptionInfo -# Build issue 452821 (http://ddweb/buildstatus/issues/issues.aspx?iid=452821) -# The vctools partition is now building against the WinBlue SDK instead of the Win8 SDK. -# The struct _FLOATING_SAVE_AREA is defined in both winnt.h and vdmctxt.h. In the WinBlue -# SDK, these definitions differ in the name of the last field ('Cr0NpxState' in vdmctxt.h, -# 'Spare0' in winnt.h). In Win8, both definitions used 'Cr0NpxState'. This is causing a -# PdbTypeMismatch build error because the vctools component pulled into clr.dll causes clr.pdb -# to contain a version of _FLOATING_SAVE_AREA that uses 'Spare0' while mscordacwks does not. -_FLOATING_SAVE_AREA -# Added due to mismatch for arm64 coresys build -_SLIST_HEADER -_KNONVOLATILE_CONTEXT_POINTERS -_IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY -_TOKEN_ACCESS_INFORMATION -# These types added because we are statically linking the OS CRT -_GDI_TEB_BATCH -DNameNode -DNameStatusNode -Replicator -UnDecorator -__type_info_node -charNode -ioinfo -pDNameNode -pcharNode -DispLocals diff --git a/src/dlls/mscorpe/CMakeLists.txt b/src/dlls/mscorpe/CMakeLists.txt index e8f22f2..fd884b1 100644 --- a/src/dlls/mscorpe/CMakeLists.txt +++ b/src/dlls/mscorpe/CMakeLists.txt @@ -7,13 +7,9 @@ set(MSCORPE_SOURCES ceefilegenwriter.cpp pewriter.cpp ceefilegenwritertokens.cpp - utilcodeinit.cpp ) if(WIN32) - list(APPEND MSCORPE_SOURCES - Native.rc - ) else() add_compile_options(-Wno-delete-non-virtual-dtor) endif(WIN32) diff --git a/src/dlls/mscorpe/Native.rc b/src/dlls/mscorpe/Native.rc deleted file mode 100644 index e652bf3..0000000 --- a/src/dlls/mscorpe/Native.rc +++ /dev/null @@ -1,8 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -#define FX_VER_FILEDESCRIPTION_STR "Microsoft .NET Runtime PE File Generator\0" - -#include -#include diff --git a/src/dlls/mscorpe/ceefilegenwritertokens.cpp b/src/dlls/mscorpe/ceefilegenwritertokens.cpp index e2d4485..3503eaf 100644 --- a/src/dlls/mscorpe/ceefilegenwritertokens.cpp +++ b/src/dlls/mscorpe/ceefilegenwritertokens.cpp @@ -10,9 +10,6 @@ //***************************************************************************** #include "stdafx.h" #include "ceegen.h" -#ifndef FEATURE_CORECLR -#define DECLARE_DATA -#endif #include "../../ildasm/dasmenum.hpp" #define MAX_CLASSNAME_LENGTH 1024 diff --git a/src/dlls/mscorpe/dirs.proj b/src/dlls/mscorpe/dirs.proj deleted file mode 100644 index 46bb0ce..0000000 --- a/src/dlls/mscorpe/dirs.proj +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - false - true - - - - - - - - diff --git a/src/dlls/mscorpe/mscorpe/mscorpe.def b/src/dlls/mscorpe/mscorpe/mscorpe.def deleted file mode 100644 index 875abc4..0000000 --- a/src/dlls/mscorpe/mscorpe/mscorpe.def +++ /dev/null @@ -1,11 +0,0 @@ -; Licensed to the .NET Foundation under one or more agreements. -; The .NET Foundation licenses this file to you under the MIT license. -; See the LICENSE file in the project root for more information. -; -; mscorpe.def for mscorpe.dll (a simple wrapper around real implementation mscorpehost.dll - see -; file:wrapper.cpp for more details) -; PE file generator in EE - -EXPORTS - CreateICeeFileGen - DestroyICeeFileGen diff --git a/src/dlls/mscorpe/mscorpe/mscorpe.nativeproj b/src/dlls/mscorpe/mscorpe/mscorpe.nativeproj deleted file mode 100644 index 526cf60..0000000 --- a/src/dlls/mscorpe/mscorpe/mscorpe.nativeproj +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - true - true - - $(UserIncludes); - . - - $(CDefines);__TODO_PORT_TO_WRAPPERS__;UNICODE - mscorpe - $(BinariesDirectory)\$(OutputName).dll - $(IntermediateOutputDirectory) - $(OutputName).def - DYNLINK - windows - true - _DllMainCRTStartup - $(ClrLibPath)\utilcodestaticnohost.lib - false - true - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/dlls/mscorpe/mscorpe/wrapper.cpp b/src/dlls/mscorpe/mscorpe/wrapper.cpp deleted file mode 100644 index d2f1701..0000000 --- a/src/dlls/mscorpe/mscorpe/wrapper.cpp +++ /dev/null @@ -1,149 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// -// File: wrapper.cpp -// - -// -// This file implements a simple wrapper DLL (mscorpe.dll) which calls properly into mscorpehost.dll. -// It exists because of compatibility with 1.x/2.0 apps running on CLR 4.0+. Such older apps could pass -// full path to LoadLibrary() Windows API and get this DLL. -// -// Noone in CLR should ever try to load this DLL directly (using LoadLibrary API). Note that hosting APIs -// and PInvoke redirect mscorpe.dll to mscorpehost.dll automatically. -// - -#include - -#include -#include - -// Globals -HINSTANCE g_hThisInst; // This library. - -//***************************************************************************** -// Handle lifetime of loaded library. -//***************************************************************************** -extern "C" -BOOL WINAPI -DllMain( - HINSTANCE hInstance, - DWORD dwReason, - LPVOID lpReserved) -{ - switch (dwReason) - { - case DLL_PROCESS_ATTACH: - { // Save the module handle. - g_hThisInst = hInstance; - DisableThreadLibraryCalls((HMODULE)hInstance); - } - break; - case DLL_PROCESS_DETACH: - break; - } - - return TRUE; -} // DllMain - -// Implementation for utilcode -HINSTANCE -GetModuleInst() -{ - return g_hThisInst; -} // GetModuleInst - -// Load correct SxS version of mscorpe.dll and initialize it (uses shim). -HRESULT -LoadMscorpe(HMODULE * phModule) -{ - HRESULT hr = S_OK; - ICLRMetaHost * pMetaHost = NULL; - ICLRRuntimeInfo * pCLRRuntimeInfo = NULL; - - // Get full DLL path - WCHAR wszPath[_MAX_PATH]; - DWORD dwLength = GetModuleFileName((HMODULE)g_hThisInst, wszPath, NumItems(wszPath)); - - if ((dwLength == 0) || - ((dwLength == NumItems(wszPath)) && - (GetLastError() == ERROR_INSUFFICIENT_BUFFER))) - { - IfFailGo(CLR_E_SHIM_RUNTIMELOAD); - } - - // Find start of '\mscorpe.dll' - LPWSTR wszSeparator = wcsrchr(wszPath, L'\\'); - if (wszSeparator == NULL) - { - IfFailGo(CLR_E_SHIM_RUNTIMELOAD); - } - // Check the name of this DLL - _ASSERTE(_wcsicmp(wszSeparator, L"\\mscorpe.dll") == 0); - // Remove the DLL name - *wszSeparator = 0; - - // Find start of last directory name (\), - // C:\Windows\Microsoft.NET\Framework\[[v4.0.12345]]\mscorpe.dll - LPWSTR wszLastDirectoryName = wcsrchr(wszPath, L'\\'); - if (wszLastDirectoryName == NULL) - { - IfFailGo(CLR_E_SHIM_RUNTIMELOAD); - } - LPWSTR wszVersion = wszLastDirectoryName + 1; - - IfFailGo(CLRCreateInstance( - CLSID_CLRMetaHost, - IID_ICLRMetaHost, - reinterpret_cast(&pMetaHost))); - - IfFailGo(pMetaHost->GetRuntime( - wszVersion, - IID_ICLRRuntimeInfo, - reinterpret_cast(&pCLRRuntimeInfo))); - - // Shim will load correct SxS version of mscorpe.dll and will initialize it - IfFailGo(pCLRRuntimeInfo->LoadLibrary( - L"mscorpe.dll", - phModule)); - -ErrExit: - if (pMetaHost != NULL) - { - pMetaHost->Release(); - pMetaHost = NULL; - } - if (pCLRRuntimeInfo != NULL) - { - pCLRRuntimeInfo->Release(); - pCLRRuntimeInfo = NULL; - } - - if (FAILED(hr)) - { - *phModule = NULL; - } - - return hr; -} // LoadMscorpe - -// SxS wrapper of mscorpe.dll entrypoints -typedef MscorpeSxSWrapper MscorpeSxS; - -// Export of 'original' 1.x/2.0 mscorpe.dll -EXTERN_C -HRESULT __stdcall -CreateICeeFileGen( - ICeeFileGen ** ppCeeFileGen) -{ - return MscorpeSxS::CreateICeeFileGen(ppCeeFileGen); -} - -// Export of 'original' 1.x/2.0 mscorpe.dll -EXTERN_C -HRESULT __stdcall -DestroyICeeFileGen(ICeeFileGen ** ppCeeFileGen) -{ - return MscorpeSxS::DestroyICeeFileGen(ppCeeFileGen); -} diff --git a/src/dlls/mscorpe/mscorpehost/mscorpehost.def b/src/dlls/mscorpe/mscorpehost/mscorpehost.def deleted file mode 100644 index 0cf870b..0000000 --- a/src/dlls/mscorpe/mscorpehost/mscorpehost.def +++ /dev/null @@ -1,12 +0,0 @@ -; Licensed to the .NET Foundation under one or more agreements. -; The .NET Foundation licenses this file to you under the MIT license. -; See the LICENSE file in the project root for more information. -; -; PeWriter.def for PeWriter.dll -; PE file generator in EE - -EXPORTS - CreateICeeFileGen - DestroyICeeFileGen - InitializeSxS - diff --git a/src/dlls/mscorpe/mscorpehost/mscorpehost.nativeproj b/src/dlls/mscorpe/mscorpehost/mscorpehost.nativeproj deleted file mode 100644 index 45af39f..0000000 --- a/src/dlls/mscorpe/mscorpehost/mscorpehost.nativeproj +++ /dev/null @@ -1,68 +0,0 @@ - - - - - $(ClrCrtLib) - mscorpehost - $(BinariesDirectory)\$(OutputName).dll - $(IntermediateOutputDirectory) - $(OutputName).def - DYNLINK - stdafx.h - true - ..\stdafx.cpp - - $(UserIncludes); - .; - ../../vm - - $(CDefines);__TODO_PORT_TO_WRAPPERS__;UNICODE - windows - true - _DllMainCRTStartup - false - - - - $(LinkDelayLoad); - $(LinkDelayLoad)ole32.dll - - - - - - - - - $(ClrSrcDirectory)utilcode\dyncrt\dyncrt.nativeproj - - - - - $(ClrSrcDirectory)md\ceefilegen\ceefgen.nativeproj - - - $(ClrSrcDirectory)delayimp\delayimp.nativeproj - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/dlls/mscorpe/utilcodeinit.cpp b/src/dlls/mscorpe/utilcodeinit.cpp deleted file mode 100644 index 0e9fab9..0000000 --- a/src/dlls/mscorpe/utilcodeinit.cpp +++ /dev/null @@ -1,11 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -#include "stdafx.h" -#include - -EXTERN_C void __stdcall InitializeSxS(CoreClrCallbacks const & callbacks) -{ - InitUtilcode(callbacks); -} diff --git a/src/dlls/mscorrc/dirs.proj b/src/dlls/mscorrc/dirs.proj deleted file mode 100644 index 1792a6e..0000000 --- a/src/dlls/mscorrc/dirs.proj +++ /dev/null @@ -1,18 +0,0 @@ - - - - - true - false - true - true - - - - - - - - - - diff --git a/src/dlls/mscorrc/full/mscorrc.nativeproj b/src/dlls/mscorrc/full/mscorrc.nativeproj deleted file mode 100644 index 6626260..0000000 --- a/src/dlls/mscorrc/full/mscorrc.nativeproj +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - true - true - mscorrc.debug - mscorrc - DYNLINK - windows - true - true - true - true - true - - - - - - - - - diff --git a/src/dlls/mscorrc/mscorrc.rc b/src/dlls/mscorrc/mscorrc.rc index be9fb1c..138db55 100644 --- a/src/dlls/mscorrc/mscorrc.rc +++ b/src/dlls/mscorrc/mscorrc.rc @@ -1230,6 +1230,9 @@ BEGIN IDS_CLASSLOAD_NOTINTERFACE "Could not load type '%1' from assembly '%2' because it attempts to implement a class as an interface." IDS_CLASSLOAD_VALUEINSTANCEFIELD "Could not load the value type '%1' from assembly '%2' because it has an instance field of itself." + IDS_CLASSLOAD_BYREFLIKE_STATICFIELD "A value type containing a by-ref instance field, such as Span, cannot be used as the type for a static field." + IDS_CLASSLOAD_BYREFLIKE_NOTVALUECLASSFIELD "A value type containing a by-ref instance field, such as Span, cannot be used as the type for a class instance field." + IDS_CLASSLOAD_BAD_NAME "Type name '%1' from assembly '%2' is invalid." IDS_CLASSLOAD_RANK_TOOLARGE "'%1' from assembly '%2' has too many dimensions." IDS_CLASSLOAD_BAD_MANAGED_RVA "Managed method '%3' on type '%1' from assembly '%2' is not supported." diff --git a/src/dlls/mscorrc/mscorrc.rc2 b/src/dlls/mscorrc/mscorrc.rc2 deleted file mode 100644 index 3e08368..0000000 --- a/src/dlls/mscorrc/mscorrc.rc2 +++ /dev/null @@ -1,52 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -//***************************************************************************** -// CompRC.rc2 -// -// Holds version stamp for this program. -// -//***************************************************************************** -#ifdef APSTUDIO_INVOKED - #error this file is not editable by App Studio -#endif //APSTUDIO_INVOKED - -#include -#include <__file__.ver> //file version info - variable, but same for all files -#include <__product__.ver> //product version info - variable -#include //product version info - fixed -#include "__file__.h" // file version info - fixed per file - -VS_VERSION_INFO VERSIONINFO - FILEVERSION VER_FILEVERSION - PRODUCTVERSION VER_PRODUCTVERSION - FILEFLAGSMASK VER_FILEFLAGSMASK - FILEFLAGS VER_FILEFLAGS - FILEOS VER_FILEOS - FILETYPE VER_FILETYPE -BEGIN - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1252 - // English language (0x409) and the Windows ANSI codepage (1252) - END - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904E4" // Lang=US English, CharSet=Windows Multilingual - BEGIN - // Note: Non-standard value strings must be first as FileManager has a bug - // that leaves garbage in its name buffer otherwise. - VALUE "CompanyName", VER_COMPANYNAME_STR - VALUE "FileDescription", VER_FILEDESCRIPTION_STR - VALUE "FileVersion", VER_FILEVERSION_STR - VALUE "InternalName", VER_INTERNALNAME_STR - VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR - VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR - VALUE "OriginalFilename",VER_ORIGFILENAME_STR - VALUE "ProductName", VER_PRODUCTNAME_STR - VALUE "ProductVersion", VER_PRODUCTVERSION_STR - VALUE "Comments", VER_FILEDESCRIPTION_STR - END - END -END diff --git a/src/dlls/mscorrc/resource.h b/src/dlls/mscorrc/resource.h index 1391a21..77e937a 100644 --- a/src/dlls/mscorrc/resource.h +++ b/src/dlls/mscorrc/resource.h @@ -947,4 +947,5 @@ #define IDS_NATIVE_IMAGE_CANNOT_BE_LOADED_MULTIPLE_TIMES 0x263a - +#define IDS_CLASSLOAD_BYREFLIKE_STATICFIELD 0x263b +#define IDS_CLASSLOAD_BYREFLIKE_NOTVALUECLASSFIELD 0x263c diff --git a/src/dlls/mscorrc/small/mscorrc.nativeproj b/src/dlls/mscorrc/small/mscorrc.nativeproj deleted file mode 100644 index 994589a..0000000 --- a/src/dlls/mscorrc/small/mscorrc.nativeproj +++ /dev/null @@ -1,22 +0,0 @@ - - - - - true - true - mscorrc - DYNLINK - windows - true - true - true - true - - - - - - - - - diff --git a/src/gc/CMakeLists.txt b/src/gc/CMakeLists.txt index d32d1c2..cba1aa9 100644 --- a/src/gc/CMakeLists.txt +++ b/src/gc/CMakeLists.txt @@ -39,15 +39,11 @@ set( GC_SOURCES_DAC ${GC_SOURCES_DAC_AND_WKS_COMMON}) if(FEATURE_STANDALONE_GC) - if(CLR_CMAKE_PLATFORM_UNIX) + if(NOT CLR_CMAKE_PLATFORM_UNIX) set ( GC_SOURCES_WKS ${GC_SOURCES_WKS} - gcenv.unix.cpp) - else() - set ( GC_SOURCES_WKS - ${GC_SOURCES_WKS} - gcenv.windows.cpp) - endif(CLR_CMAKE_PLATFORM_UNIX) + windows/gcenv.windows.cpp) + endif(NOT CLR_CMAKE_PLATFORM_UNIX) endif(FEATURE_STANDALONE_GC) convert_to_absolute_path(GC_SOURCES_WKS ${GC_SOURCES_WKS}) diff --git a/src/gc/env/gcenv.base.h b/src/gc/env/gcenv.base.h index 94f7376..9fe583f 100644 --- a/src/gc/env/gcenv.base.h +++ b/src/gc/env/gcenv.base.h @@ -96,7 +96,7 @@ inline HRESULT HRESULT_FROM_WIN32(unsigned long x) #define UNREFERENCED_PARAMETER(P) (void)(P) #ifdef PLATFORM_UNIX -#define _vsnprintf vsnprintf +#define _vsnprintf_s(string, sizeInBytes, count, format, args) vsnprintf(string, sizeInBytes, format, args) #define sprintf_s snprintf #define swprintf_s swprintf #endif @@ -441,8 +441,6 @@ extern MethodTable * g_pFreeObjectMethodTable; extern int32_t g_TrapReturningThreads; -extern bool g_fFinalizerRunOnShutDown; - // // Locks // @@ -454,21 +452,6 @@ Thread * GetThread(); typedef void (CALLBACK *HANDLESCANPROC)(PTR_UNCHECKED_OBJECTREF pref, uintptr_t *pExtraInfo, uintptr_t param1, uintptr_t param2); -class FinalizerThread -{ -public: - static bool Initialize(); - static void EnableFinalization(); - - static bool HaveExtraWorkForFinalizer(); - - static bool IsCurrentThreadFinalizer(); - static void Wait(DWORD timeout, bool allowReentrantWait = false); - static void SignalFinalizationDone(bool fFinalizer); - static void SetFinalizerThread(Thread * pThread); - static HANDLE GetFinalizerEvent(); -}; - bool IsGCSpecialThread(); inline bool dbgOnly_IsSpecialEEThread() @@ -509,8 +492,6 @@ void LogSpewAlways(const char *fmt, ...); // ----------------------------------------------------------------------------------------------------------- -void StompWriteBarrierEphemeral(bool isRuntimeSuspended); -void StompWriteBarrierResize(bool isRuntimeSuspended, bool bReqUpperBoundsCheck); bool IsGCThread(); class CLRConfig diff --git a/src/gc/env/gcenv.ee.h b/src/gc/env/gcenv.ee.h index beb0c1a..9f7f266 100644 --- a/src/gc/env/gcenv.ee.h +++ b/src/gc/env/gcenv.ee.h @@ -66,6 +66,8 @@ public: static void DiagWalkLOHSurvivors(void* gcContext); static void DiagWalkBGCSurvivors(void* gcContext); static void StompWriteBarrier(WriteBarrierParameters* args); + + static void EnableFinalization(bool foundFinalizers); }; #endif // __GCENV_EE_H__ diff --git a/src/gc/gc.cpp b/src/gc/gc.cpp index 6187938..66c8b6a 100644 --- a/src/gc/gc.cpp +++ b/src/gc/gc.cpp @@ -389,7 +389,7 @@ void log_va_msg(const char *fmt, va_list args) int pid_len = sprintf_s (&pBuffer[buffer_start], BUFFERSIZE - buffer_start, "[%5d]", (uint32_t)GCToOSInterface::GetCurrentThreadIdForLogging()); buffer_start += pid_len; memset(&pBuffer[buffer_start], '-', BUFFERSIZE - buffer_start); - int msg_len = _vsnprintf(&pBuffer[buffer_start], BUFFERSIZE - buffer_start, fmt, args ); + int msg_len = _vsnprintf_s(&pBuffer[buffer_start], BUFFERSIZE - buffer_start, _TRUNCATE, fmt, args ); if (msg_len == -1) { msg_len = BUFFERSIZE - buffer_start; @@ -1402,9 +1402,6 @@ int mark_time, plan_time, sweep_time, reloc_time, compact_time; #ifndef MULTIPLE_HEAPS -#define ephemeral_low g_gc_ephemeral_low -#define ephemeral_high g_gc_ephemeral_high - #endif // MULTIPLE_HEAPS #ifdef TRACE_GC @@ -2187,27 +2184,22 @@ void stomp_write_barrier_resize(bool is_runtime_suspended, bool requires_upper_b args.card_table = g_gc_card_table; args.lowest_address = g_gc_lowest_address; args.highest_address = g_gc_highest_address; +#ifdef FEATURE_USE_SOFTWARE_WRITE_WATCH_FOR_GC_HEAP + if (SoftwareWriteWatch::IsEnabledForGCHeap()) + { + args.write_watch_table = g_gc_sw_ww_table; + } +#endif // FEATURE_USE_SOFTWARE_WRITE_WATCH_FOR_GC_HEAP GCToEEInterface::StompWriteBarrier(&args); } -void stomp_write_barrier_ephemeral(bool is_runtime_suspended, uint8_t* ephemeral_lo, uint8_t* ephemeral_hi) +void stomp_write_barrier_ephemeral(uint8_t* ephemeral_low, uint8_t* ephemeral_high) { WriteBarrierParameters args = {}; args.operation = WriteBarrierOp::StompEphemeral; - args.is_runtime_suspended = is_runtime_suspended; - args.ephemeral_lo = g_gc_ephemeral_low; - args.ephemeral_hi = g_gc_ephemeral_high; -#ifdef MULTIPLE_HEAPS - // It is not correct to update the EE's g_ephemeral_low and g_ephemeral_high - // to anything other than their default values when using Server GC, since - // there is no single ephemeral generation across all of the heaps. - // Server GC write barriers do not reference these two globals, but ErectWriteBarrier does. - // - // When MULTIPLE_HEAPS is defined, g_gc_ephemeral_low and g_gc_ephemeral_high should - // always have their default values. - assert(args.ephemeral_lo == (uint8_t*)1); - assert(args.ephemeral_hi == (uint8_t*)~0); -#endif // MULTIPLE_HEAPS + args.is_runtime_suspended = true; + args.ephemeral_low = ephemeral_low; + args.ephemeral_high = ephemeral_high; GCToEEInterface::StompWriteBarrier(&args); } @@ -2220,6 +2212,8 @@ void stomp_write_barrier_initialize() args.card_table = g_gc_card_table; args.lowest_address = g_gc_lowest_address; args.highest_address = g_gc_highest_address; + args.ephemeral_low = reinterpret_cast(1); + args.ephemeral_high = reinterpret_cast(~0); GCToEEInterface::StompWriteBarrier(&args); } @@ -2430,6 +2424,10 @@ BOOL gc_heap::ro_segments_in_range; size_t gc_heap::gen0_big_free_spaces = 0; +uint8_t* gc_heap::ephemeral_low; + +uint8_t* gc_heap::ephemeral_high; + uint8_t* gc_heap::lowest_address; uint8_t* gc_heap::highest_address; @@ -7044,6 +7042,7 @@ int gc_heap::grow_brick_card_tables (uint8_t* start, uint8_t* ha = g_gc_highest_address; uint8_t* saved_g_lowest_address = min (start, g_gc_lowest_address); uint8_t* saved_g_highest_address = max (end, g_gc_highest_address); + seg_mapping* new_seg_mapping_table = nullptr; #ifdef BACKGROUND_GC // This value is only for logging purpose - it's not necessarily exactly what we // would commit for mark array but close enough for diagnostics purpose. @@ -7204,14 +7203,18 @@ int gc_heap::grow_brick_card_tables (uint8_t* start, #ifdef GROWABLE_SEG_MAPPING_TABLE { - seg_mapping* new_seg_mapping_table = (seg_mapping*)(mem + st_table_offset_aligned); + new_seg_mapping_table = (seg_mapping*)(mem + st_table_offset_aligned); new_seg_mapping_table = (seg_mapping*)((uint8_t*)new_seg_mapping_table - size_seg_mapping_table_of (0, (align_lower_segment (saved_g_lowest_address)))); memcpy(&new_seg_mapping_table[seg_mapping_word_of(g_gc_lowest_address)], &seg_mapping_table[seg_mapping_word_of(g_gc_lowest_address)], size_seg_mapping_table_of(g_gc_lowest_address, g_gc_highest_address)); - seg_mapping_table = new_seg_mapping_table; + // new_seg_mapping_table gets assigned to seg_mapping_table at the bottom of this function, + // not here. The reason for this is that, if we fail at mark array committing (OOM) and we've + // already switched seg_mapping_table to point to the new mapping table, we'll decommit it and + // run into trouble. By not assigning here, we're making sure that we will not change seg_mapping_table + // if an OOM occurs. } #endif //GROWABLE_SEG_MAPPING_TABLE @@ -7225,7 +7228,7 @@ int gc_heap::grow_brick_card_tables (uint8_t* start, translated_ct = translate_card_table (ct); dprintf (GC_TABLE_LOG, ("card table: %Ix(translated: %Ix), seg map: %Ix, mark array: %Ix", - (size_t)ct, (size_t)translated_ct, (size_t)seg_mapping_table, (size_t)card_table_mark_array (ct))); + (size_t)ct, (size_t)translated_ct, (size_t)new_seg_mapping_table, (size_t)card_table_mark_array (ct))); #ifdef BACKGROUND_GC if (hp->should_commit_mark_array()) @@ -7277,9 +7280,6 @@ int gc_heap::grow_brick_card_tables (uint8_t* start, } g_gc_card_table = translated_ct; - g_gc_lowest_address = saved_g_lowest_address; - g_gc_highest_address = saved_g_highest_address; - SoftwareWriteWatch::SetResizedUntranslatedTable( mem + sw_ww_table_offset, saved_g_lowest_address, @@ -7290,6 +7290,8 @@ int gc_heap::grow_brick_card_tables (uint8_t* start, // grow version of the write barrier. This test tells us if the new // segment was allocated at a lower address than the old, requiring // that we start doing an upper bounds check in the write barrier. + g_gc_lowest_address = saved_g_lowest_address; + g_gc_highest_address = saved_g_highest_address; stomp_write_barrier_resize(true, la != saved_g_lowest_address); write_barrier_updated = true; @@ -7304,6 +7306,9 @@ int gc_heap::grow_brick_card_tables (uint8_t* start, g_gc_card_table = translated_ct; } + seg_mapping_table = new_seg_mapping_table; + + GCToOSInterface::FlushProcessWriteBuffers(); g_gc_lowest_address = saved_g_lowest_address; g_gc_highest_address = saved_g_highest_address; @@ -9662,7 +9667,7 @@ void gc_heap::make_generation (generation& gen, heap_segment* seg, uint8_t* star #endif //FREE_USAGE_STATS } -void gc_heap::adjust_ephemeral_limits (bool is_runtime_suspended) +void gc_heap::adjust_ephemeral_limits () { ephemeral_low = generation_allocation_start (generation_of (max_generation - 1)); ephemeral_high = heap_segment_reserved (ephemeral_heap_segment); @@ -9670,8 +9675,10 @@ void gc_heap::adjust_ephemeral_limits (bool is_runtime_suspended) dprintf (3, ("new ephemeral low: %Ix new ephemeral high: %Ix", (size_t)ephemeral_low, (size_t)ephemeral_high)) +#ifndef MULTIPLE_HEAPS // This updates the write barrier helpers with the new info. - stomp_write_barrier_ephemeral(is_runtime_suspended, ephemeral_low, ephemeral_high); + stomp_write_barrier_ephemeral(ephemeral_low, ephemeral_high); +#endif // MULTIPLE_HEAPS } #if defined(TRACE_GC) || defined(GC_CONFIG_DRIVEN) @@ -10466,7 +10473,7 @@ gc_heap::init_gc_heap (int h_number) make_background_mark_stack (b_arr); #endif //BACKGROUND_GC - adjust_ephemeral_limits(true); + adjust_ephemeral_limits(); #ifdef MARK_ARRAY // why would we clear the mark array for this page? it should be cleared.. @@ -15364,7 +15371,11 @@ void gc_heap::gc1() if (!settings.concurrent) #endif //BACKGROUND_GC { - adjust_ephemeral_limits(!!IsGCThread()); +#ifndef FEATURE_REDHAWK + // IsGCThread() always returns false on CoreRT, but this assert is useful in CoreCLR. + assert(!!IsGCThread()); +#endif // FEATURE_REDHAWK + adjust_ephemeral_limits(); } #ifdef BACKGROUND_GC @@ -16204,7 +16215,11 @@ BOOL gc_heap::expand_soh_with_minimal_gc() dd_gc_new_allocation (dynamic_data_of (max_generation)) -= ephemeral_size; dd_new_allocation (dynamic_data_of (max_generation)) = dd_gc_new_allocation (dynamic_data_of (max_generation)); - adjust_ephemeral_limits(!!IsGCThread()); +#ifndef FEATURE_REDHAWK + // IsGCThread() always returns false on CoreRT, but this assert is useful in CoreCLR. + assert(!!IsGCThread()); +#endif // FEATURE_REDHAWK + adjust_ephemeral_limits(); return TRUE; } else @@ -32778,8 +32793,8 @@ gc_heap::verify_heap (BOOL begin_gc_p) #endif //BACKGROUND_GC #ifndef MULTIPLE_HEAPS - if ((g_gc_ephemeral_low != generation_allocation_start (generation_of (max_generation - 1))) || - (g_gc_ephemeral_high != heap_segment_reserved (ephemeral_heap_segment))) + if ((ephemeral_low != generation_allocation_start (generation_of (max_generation - 1))) || + (ephemeral_high != heap_segment_reserved (ephemeral_heap_segment))) { FATAL_GC_ERROR(); } @@ -35140,11 +35155,7 @@ GCHeap::GarbageCollectGeneration (unsigned int gen, gc_reason reason) #endif //!MULTIPLE_HEAPS #ifdef FEATURE_PREMORTEM_FINALIZATION - if ((!pGenGCHeap->settings.concurrent && pGenGCHeap->settings.found_finalizers) || - FinalizerThread::HaveExtraWorkForFinalizer()) - { - FinalizerThread::EnableFinalization(); - } + GCToEEInterface::EnableFinalization(!pGenGCHeap->settings.concurrent && pGenGCHeap->settings.found_finalizers); #endif // FEATURE_PREMORTEM_FINALIZATION return dd_collection_count (dd); @@ -35681,85 +35692,6 @@ void GCHeap::SetFinalizationRun (Object* obj) #endif // FEATURE_PREMORTEM_FINALIZATION -//---------------------------------------------------------------------------- -// -// Write Barrier Support for bulk copy ("Clone") operations -// -// StartPoint is the target bulk copy start point -// len is the length of the bulk copy (in bytes) -// -// -// Performance Note: -// -// This is implemented somewhat "conservatively", that is we -// assume that all the contents of the bulk copy are object -// references. If they are not, and the value lies in the -// ephemeral range, we will set false positives in the card table. -// -// We could use the pointer maps and do this more accurately if necessary - -#if defined(_MSC_VER) && defined(_TARGET_X86_) -#pragma optimize("y", on) // Small critical routines, don't put in EBP frame -#endif //_MSC_VER && _TARGET_X86_ - -void -GCHeap::SetCardsAfterBulkCopy( Object **StartPoint, size_t len ) -{ - Object **rover; - Object **end; - - // Target should aligned - assert(Aligned ((size_t)StartPoint)); - - - // Don't optimize the Generation 0 case if we are checking for write barrier voilations - // since we need to update the shadow heap even in the generation 0 case. -#if defined (WRITE_BARRIER_CHECK) && !defined (SERVER_GC) - if (g_pConfig->GetHeapVerifyLevel() & EEConfig::HEAPVERIFY_BARRIERCHECK) - for(unsigned i=0; i < len / sizeof(Object*); i++) - updateGCShadow(&StartPoint[i], StartPoint[i]); -#endif //WRITE_BARRIER_CHECK && !SERVER_GC - -#ifdef FEATURE_USE_SOFTWARE_WRITE_WATCH_FOR_GC_HEAP - if (SoftwareWriteWatch::IsEnabledForGCHeap()) - { - SoftwareWriteWatch::SetDirtyRegion(StartPoint, len); - } -#endif // FEATURE_USE_SOFTWARE_WRITE_WATCH_FOR_GC_HEAP - - // If destination is in Gen 0 don't bother - if ( -#ifdef BACKGROUND_GC - (!gc_heap::settings.concurrent) && -#endif //BACKGROUND_GC - (g_theGCHeap->WhichGeneration( (Object*) StartPoint ) == 0)) - return; - - rover = StartPoint; - end = StartPoint + (len/sizeof(Object*)); - while (rover < end) - { - if ( (((uint8_t*)*rover) >= g_gc_ephemeral_low) && (((uint8_t*)*rover) < g_gc_ephemeral_high) ) - { - // Set Bit For Card and advance to next card - size_t card = gcard_of ((uint8_t*)rover); - - Interlocked::Or (&g_gc_card_table[card/card_word_width], (1U << (card % card_word_width))); - // Skip to next card for the object - rover = (Object**)align_on_card ((uint8_t*)(rover+1)); - } - else - { - rover++; - } - } -} - -#if defined(_MSC_VER) && defined(_TARGET_X86_) -#pragma optimize("", on) // Go back to command line default optimizations -#endif //_MSC_VER && _TARGET_X86_ - - #ifdef FEATURE_PREMORTEM_FINALIZATION //-------------------------------------------------------------------- @@ -36304,7 +36236,7 @@ CFinalize::ScanForFinalization (promote_func* pfn, int gen, BOOL mark_only_p, if (hp->settings.concurrent && hp->settings.found_finalizers) { if (!mark_only_p) - FinalizerThread::EnableFinalization(); + GCToEEInterface::EnableFinalization(true); } } @@ -36560,11 +36492,13 @@ void GCHeap::DiagScanFinalizeQueue (fq_scan_fn fn, ScanContext* sc) void GCHeap::DiagScanHandles (handle_scan_fn fn, int gen_number, ScanContext* context) { + UNREFERENCED_PARAMETER(gen_number); GCScan::GcScanHandlesForProfilerAndETW (max_generation, context, fn); } void GCHeap::DiagScanDependentHandles (handle_scan_fn fn, int gen_number, ScanContext* context) { + UNREFERENCED_PARAMETER(gen_number); GCScan::GcScanDependentHandlesForProfilerAndETW (max_generation, context, fn); } diff --git a/src/gc/gc.h b/src/gc/gc.h index b7f1e95..7332e42 100644 --- a/src/gc/gc.h +++ b/src/gc/gc.h @@ -140,8 +140,7 @@ class DacHeapWalker; extern "C" uint32_t* g_gc_card_table; extern "C" uint8_t* g_gc_lowest_address; extern "C" uint8_t* g_gc_highest_address; -extern "C" uint8_t* g_gc_ephemeral_low; -extern "C" uint8_t* g_gc_ephemeral_high; +extern "C" bool g_fFinalizerRunOnShutDown; namespace WKS { ::IGCHeapInternal* CreateGCHeap(); @@ -270,6 +269,11 @@ public: return mt->GetBaseSize() >= LARGE_OBJECT_SIZE; } + void SetFinalizeRunOnShutdown(bool value) + { + g_fFinalizerRunOnShutDown = value; + } + protected: public: #if defined(FEATURE_BASICFREEZE) && defined(VERIFY_HEAP) diff --git a/src/gc/gccommon.cpp b/src/gc/gccommon.cpp index d1ccddd..133f05e 100644 --- a/src/gc/gccommon.cpp +++ b/src/gc/gccommon.cpp @@ -41,8 +41,7 @@ uint8_t* g_shadow_lowest_address = NULL; uint32_t* g_gc_card_table; uint8_t* g_gc_lowest_address = 0; uint8_t* g_gc_highest_address = 0; -uint8_t* g_gc_ephemeral_low = (uint8_t*)1; -uint8_t* g_gc_ephemeral_high = (uint8_t*)~0; +bool g_fFinalizerRunOnShutDown = false; VOLATILE(int32_t) m_GCLock = -1; diff --git a/src/gc/gcenv.ee.standalone.inl b/src/gc/gcenv.ee.standalone.inl index 3b64586..31f3d1d 100644 --- a/src/gc/gcenv.ee.standalone.inl +++ b/src/gc/gcenv.ee.standalone.inl @@ -11,166 +11,202 @@ // will be fowarded to this interface instance. extern IGCToCLR* g_theGCToCLR; +// A note about this: +// In general, we don't want to pretend to be smarter than the compiler +// and force it to inline things. However, inlining is here is required +// for correctness as it stands today (though it will not always be required). +// +// The reason for this is because: +// 1) This file (and the GCToEEInterface class) define symbols that are inline +// and static, so the symbol GCToEEInterface::XYZ defines a symbol with weak +// linkage when the function is not inlined, +// 2) src/vm/gcenv.ee.cpp all define symbols that are not inline and instance methods +// of GCToEEInterface, with external linkage. +// 3) When it comes time to link the GC and the VM, the linker observes the duplicate +// symbols and discards the one with weak linkage. +// 4) All of the calls within the GC to the functions in this file are replaced by +// the linker to calls to the implementation of a pure virtual IGCToCLR. The +// functions implementing IGCToCLR have an extra argument (this). +// 5) Now, all calls to these functions from within the GC are doomed because of the +// functions that actually get called expect this to be in rdi, where the compiler +// has placed the first argument instead. +// +// For now, by forcing the compiler to inline these functions, the compiler won't actually +// emit symbols for them and we'll avoid the linker havoc. +#ifdef _MSC_VER + #define ALWAYS_INLINE __forceinline +#else + #define ALWAYS_INLINE __attribute__((always_inline)) inline +#endif + // When we are building the GC in a standalone environment, we // will be dispatching virtually against g_theGCToCLR to call // into the EE. This class provides an identical API to the existing // GCToEEInterface, but only forwards the call onto the global // g_theGCToCLR instance. -inline void GCToEEInterface::SuspendEE(SUSPEND_REASON reason) +ALWAYS_INLINE void GCToEEInterface::SuspendEE(SUSPEND_REASON reason) { assert(g_theGCToCLR != nullptr); g_theGCToCLR->SuspendEE(reason); } -inline void GCToEEInterface::RestartEE(bool bFinishedGC) +ALWAYS_INLINE void GCToEEInterface::RestartEE(bool bFinishedGC) { assert(g_theGCToCLR != nullptr); g_theGCToCLR->RestartEE(bFinishedGC); } -inline void GCToEEInterface::GcScanRoots(promote_func* fn, int condemned, int max_gen, ScanContext* sc) +ALWAYS_INLINE void GCToEEInterface::GcScanRoots(promote_func* fn, int condemned, int max_gen, ScanContext* sc) { assert(g_theGCToCLR != nullptr); g_theGCToCLR->GcScanRoots(fn, condemned, max_gen, sc); } -inline void GCToEEInterface::GcStartWork(int condemned, int max_gen) +ALWAYS_INLINE void GCToEEInterface::GcStartWork(int condemned, int max_gen) { assert(g_theGCToCLR != nullptr); g_theGCToCLR->GcStartWork(condemned, max_gen); } -inline void GCToEEInterface::AfterGcScanRoots(int condemned, int max_gen, ScanContext* sc) +ALWAYS_INLINE void GCToEEInterface::AfterGcScanRoots(int condemned,