mirror of
https://github.com/DynamoRIO/dynamorio.git
synced 2026-10-12 02:02:04 +00:00
Changes Appveyor to use VS2017 instead of VS2013. We no longer officially
maintain VS2013 support.
Includes quite a few small fixes to get all builds and as many tests as possible passing on VS2017 and Win10-1607 on Appveyor:
+ Add VS2017 support to x64 LIB env var swapping
+ Add pseudo-dll mapping for Ext-MS-Win-NtUser-* and API-MS-Win-RtCore-NtUser-*
+ Increase drmarker cmd size
+ Avoid crashing in debug-only code if PEB.KernelCallbackTable is NULL
+ Expand win32.fpe allowed output to include 'inf' for DBL_MAX+DBL_MAX
+ Pass /arch:IA32 /MD to tool.cpuid.exe to keep drcpusim tests passing w/o any new opcodes
+#4056 drsyms: allow either order of args in output; allow an extra leading underscore; allow a too-long name_available_size; give up on types matching given all the weirdness in recent dbghelps
+ client.fibers fixes for VS2017:
+ Delete the main fiber on exit, since the deletion callback is not called natively
with VS2017 otherwise.
+ Increase the max FLS slot limit to match pre-Win10.
+ Allow either order of deletion callbacks.
+ client.winxfer test:
+ Allow variations in event counts
+ Remove #4053 assert on un-suspendable un-scheduled attach thread
since it happens on win10 at exit and is not fatal
+ Fix unit_tests problems:
+ Set -msgbox_mask to 0 to avoid hangs
+ Skip static TLS from #4030 since it leads to asserts in the
LoadLibrary unit tests b/c we don't support TLS in later-loaded libs
+ Fix exit-time crashes by always swapping the PEB and swapping back at
the end of the drwinapi tests.
* Add an AUTOMATED_TESTING cmake and cpp define, set it for arg_travis
in runsuite.cmake, and use it to make -msgbox_mask 0 by default, as a
failsafe to avoid hangs in CI.
+ Use a better dbghelp:
+ Update search paths: use ProgFiles(x86) instead of PROGFILES.
+ Have drsyms make a local copy in ext/lib64/debug.
+ i#4057: Copy CTest xml files manually
CMake 3.14 dropped support for copying xml results locally.
We solve that by manually copying them ourselves.
+ Fix VPS build warnings with VS2017 and from #4050 and #4053
+ Switch to regular FindMFC; fix DRstats build warnings on VS2017
+ Disable MSVC popups in drcachesim's launcher to avoid hanging Appveyor
+ Ignore the remaining VS2017 test failures, leaving fixing those to #4058
Issue: #4030, #4053, #4001, #4058
Fixes #2924
Fixes #4056
Fixes #4057
54 lines
2.5 KiB
CMake
54 lines
2.5 KiB
CMake
# **********************************************************
|
|
# Copyright (c) 2020 Google, Inc. All rights reserved.
|
|
# Copyright (c) 2009-2010 VMware, Inc. All rights reserved.
|
|
# **********************************************************
|
|
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions are met:
|
|
#
|
|
# * Redistributions of source code must retain the above copyright notice,
|
|
# this list of conditions and the following disclaimer.
|
|
#
|
|
# * Redistributions in binary form must reproduce the above copyright notice,
|
|
# this list of conditions and the following disclaimer in the documentation
|
|
# and/or other materials provided with the distribution.
|
|
#
|
|
# * Neither the name of VMware, Inc. nor the names of its contributors may be
|
|
# used to endorse or promote products derived from this software without
|
|
# specific prior written permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
# ARE DISCLAIMED. IN NO EVENT SHALL VMWARE, INC. OR CONTRIBUTORS BE LIABLE
|
|
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
|
# DAMAGE.
|
|
|
|
# Where to submit CTest results
|
|
set(CTEST_PROJECT_NAME "DynamoRIO")
|
|
|
|
if (SUBMIT_LOCAL)
|
|
# There is no longer support for "cp" or "scp methods in cmake 3.14+: there is no
|
|
# way to copy locally using ctest_submit(). We copy ourselves manually.
|
|
set(CTEST_SUBMIT_URL "none")
|
|
set(CTEST_DROP_METHOD "none")
|
|
set(CTEST_TRIGGER_SITE "")
|
|
set(CTEST_DROP_SITE_USER "")
|
|
if (NOT EXISTS "${CTEST_DROP_SITE}:${CTEST_DROP_LOCATION}")
|
|
message(FATAL_ERROR
|
|
"must set ${CTEST_DROP_SITE}:${CTEST_DROP_LOCATION} to an existing directory")
|
|
endif ()
|
|
else (SUBMIT_LOCAL)
|
|
# Nightly runs will use sources as of this time
|
|
set(CTEST_NIGHTLY_START_TIME "04:00:00 EST")
|
|
set(CTEST_DROP_METHOD "http")
|
|
set(CTEST_DROP_SITE "dynamorio.org")
|
|
set(CTEST_DROP_LOCATION "/CDash/submit.php?project=DynamoRIO")
|
|
set(CTEST_DROP_SITE_CDASH TRUE)
|
|
endif (SUBMIT_LOCAL)
|