• Derek Bruening's avatar
    i#2924 VS2017: Switch Appveyor to VS2017 (#3999) · aab2df69
    Derek Bruening authored
    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
    aab2df69