DynamoRIO / dynamorio

Dynamic Instrumentation Tool Platform
Other
2.58k stars 552 forks source link

Support building with MinGW(-w64) #638

Open derekbruening opened 9 years ago

derekbruening commented 9 years ago

From VanBoxem...@gmail.com on December 15, 2011 14:45:07

What version of DynamoRIO are you using? trunk ( r1149 ) What operating system version are you running on? Windows 7 x64 SP1 What steps will reproduce the problem? cmake ../../Source/dynamorio -G"MinGW Makefiles"

CMake error: -- The C compiler identification is GNU -- Check for working C compiler: M:/Development/mingw64/bin/gcc.exe -- Check for working C compiler: M:/Development/mingw64/bin/gcc.exe -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- The CXX compiler identification is GNU -- Check for working CXX compiler: M:/Development/mingw64/bin/g++.exe -- Check for working CXX compiler: M:/Development/mingw64/bin/g++.exe -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Version number: 3.0.1194 CMake Error at CMakeLists.txt:479 (message): assembler not found: required to build

-- Configuring incomplete, errors occurred!

I was under the impression CMake could detect the assembler by itself, it looks like you're manually doing all that. I could be wrong though.

Original issue: http://code.google.com/p/dynamorio/issues/detail?id=638

derekbruening commented 9 years ago

From bruen...@google.com on December 15, 2011 11:54:30

today we only support building with the Visual Studio compiler on Windows (see https://code.google.com/p/dynamorio/wiki/HowToBuild ). the sources have cl-specific intrinsics and pragmas, the assembly uses ml syntax on windows, etc. the linux code could be used in some cases, requiring a split of the OS and compiler identification. it would be a non-trivial change. if you're interested in contributing support for building with mingw gcc, let us know.

Labels: Component-Build OpSys-Windows

ofry commented 4 years ago

@derekbruening

Current state:

ofry@games MINGW64 ~/dynamorio
$ cmake -G"MSYS Makefiles" .
CMake Deprecation Warning at make/policies.cmake:34 (cmake_policy):
  The OLD behavior for policy CMP0058 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  CMakeLists.txt:50 (include)

CMake Deprecation Warning at make/policies.cmake:38 (cmake_policy):
  The OLD behavior for policy CMP0054 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  CMakeLists.txt:50 (include)

CMake Deprecation Warning at make/policies.cmake:42 (cmake_policy):
  The OLD behavior for policy CMP0042 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  CMakeLists.txt:50 (include)

-- The C compiler identification is GNU 9.1.0
-- Check for working C compiler: C:/msys64/mingw64/bin/gcc.exe
-- Check for working C compiler: C:/msys64/mingw64/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- The CXX compiler identification is GNU 9.1.0
-- Check for working CXX compiler: C:/msys64/mingw64/bin/g++.exe
-- Check for working CXX compiler: C:/msys64/mingw64/bin/g++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Version number: 7.91.18099
-- The ASM compiler identification is GNU
-- Found assembler: C:/msys64/mingw64/bin/gcc.exe
-- Found assembler: C:/msys64/mingw64/bin/gcc.exe
CMake Error at CMakeLists.txt:617 (message):
  message compiler not found: required to build

-- Configuring incomplete, errors occurred!
See also "C:/msys64/home/ofry/dynamorio/CMakeFiles/CMakeOutput.log".

Can you explain bit more what prevent to port it to MinGW?

derekbruening commented 4 years ago

I think the comment above explains it: the code uses many Visual Studio compiler-specific features: intrinsics, pragmas, message files (the error you hit), .def files, specific linker flags, etc.

ofry commented 4 years ago

So could it be fixed and how (what should be contributed)? This is prevent to include DrMemory package to MinGW repository.

Carrotman42 commented 4 years ago

I imagine that it could be fixed and MinGW could be supported in addition, but as Derek mentioned there are a few different ways in which the codebase is assuming that Visual Studio is being used for compilation and I am not sure how much effort it will be to discover all of them and to make all differences more compiler-agnostic. Further, in order to prevent regressions, if MinGW were to be supported we would prefer to have continuous integration set up for it as well, which is another chunk of upfront work (and of course small amounts of work to keep it up and running, depending on how it was achieved).

Derek may have more thoughts on the feasibility of this in the long term.

derekbruening commented 4 years ago

@ofry, I assume your goal is to build entirely with MinGW and not require Visual Studio or Windows SDK headers or libraries? So we then have two issues:

1) Compiler/linker-specific code/flags 2) Visual Studio/SDK header/library reliance

I don't know whether the MinGW headers and libraries can be dropped in and are complete enough for 2. (E.g., what about dbghelp.dll, which we rely on and distribute with DR and Dr. Memory?) If they are complete enough, that could be very useful to us, opening up CI cross-compilation testing opportunities. I would say that if we could solve both 1 and 2 that would be a good step forward and give us more flexibility around Windows build testing. We would be happy to accept pull requests in that direction, and to consult on such a project.

ofry commented 4 years ago

About dbghelp.dll - I read it's included on Windows distributives... https://docs.microsoft.com/en-us/windows/win32/debug/dbghelp-versions

ofry commented 4 years ago

@derekbruening

ofry commented 4 years ago

@ofry, I assume your goal is to build entirely with MinGW and not require Visual Studio or Windows SDK headers or libraries? So we then have two issues:

Compiler/linker-specific code/flags
Visual Studio/SDK header/library reliance

So could you describe it bit more?

derekbruening commented 4 years ago

I would suggest trying to build with the target non-Visual Studio compiler. You will quickly run into those types of errors. There's no external list of them: trying to build is the simplest way to start to enumerate them. There's no magic solution: it will take the effort of going through each of them one by one and resolving.

ofry commented 4 years ago

OK. I will put PR with "quick fix" to avoid this error, but compiling still fails.

ofry commented 4 years ago

@derekbruening Could you merge this PR?

ofry commented 4 years ago

After merging #3838:

ofry@games MINGW64 ~/dynamorio
$ cmake -G"MSYS Makefiles" .
CMake Deprecation Warning at make/policies.cmake:34 (cmake_policy):
  The OLD behavior for policy CMP0058 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  CMakeLists.txt:50 (include)

CMake Deprecation Warning at make/policies.cmake:38 (cmake_policy):
  The OLD behavior for policy CMP0054 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  CMakeLists.txt:50 (include)

CMake Deprecation Warning at make/policies.cmake:42 (cmake_policy):
  The OLD behavior for policy CMP0042 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  CMakeLists.txt:50 (include)

-- The C compiler identification is GNU 9.2.0
-- Check for working C compiler: C:/msys64/mingw64/bin/gcc.exe
-- Check for working C compiler: C:/msys64/mingw64/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- The CXX compiler identification is GNU 9.2.0
-- Check for working CXX compiler: C:/msys64/mingw64/bin/g++.exe
-- Check for working CXX compiler: C:/msys64/mingw64/bin/g++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Version number: 7.91.18157
-- The ASM compiler identification is GNU
-- Found assembler: C:/msys64/mingw64/bin/gcc.exe
-- Found assembler: C:/msys64/mingw64/bin/gcc.exe
-- Found Perl: C:/msys64/usr/bin/perl.exe (found version "5.30.0")
-- Targeting subsystem 5.02
CMake Error at CMakeLists.txt:1283 (message):
  *** C:/msys64/mingw64/bin/gcc.exe failed: ***

  gcc.exe: error: /nologo: No such file or directory

  gcc.exe: error: /EP: No such file or directory

-- Configuring incomplete, errors occurred!
See also "C:/msys64/home/ofry/dynamorio/CMakeFiles/CMakeOutput.log".
ofry commented 4 years ago

@derekbruening I made second PR which resolves this error (but compiling still fails)

https://github.com/DynamoRIO/dynamorio/pull/3845

Please merge this too.

derekbruening commented 4 years ago

I made second PR which resolves this error (but compiling still fails)

I expect it will take hundreds of PR's of this size (one-line fixes) before it compiles. Incremental is good, and small is certainly better than too-large, but there is also a balance with reviewer time and CI resources. I would suggest fixing more than one line at a time for a large undertaking such as this.

ofry commented 4 years ago

@derekbruening

I have near zero experience in C++ system programming, and I don't know, can I solve it (full porting) at all. But such one-line fixes shall not to harm any other existing targets/platforms.

ofry commented 4 years ago

@derekbruening And I trying to minimize merge conflicts.

ofry commented 4 years ago

Current state:

ofry@games MINGW64 ~/dynamorio
$ cmake -G"MSYS Makefiles" .
CMake Deprecation Warning at make/policies.cmake:34 (cmake_policy):
  The OLD behavior for policy CMP0058 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  CMakeLists.txt:50 (include)

CMake Deprecation Warning at make/policies.cmake:38 (cmake_policy):
  The OLD behavior for policy CMP0054 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  CMakeLists.txt:50 (include)

CMake Deprecation Warning at make/policies.cmake:42 (cmake_policy):
  The OLD behavior for policy CMP0042 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  CMakeLists.txt:50 (include)

-- The C compiler identification is GNU 9.2.0
-- Check for working C compiler: C:/msys64/mingw64/bin/gcc.exe
-- Check for working C compiler: C:/msys64/mingw64/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- The CXX compiler identification is GNU 9.2.0
-- Check for working CXX compiler: C:/msys64/mingw64/bin/g++.exe
-- Check for working CXX compiler: C:/msys64/mingw64/bin/g++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Version number: 7.91.18164
-- The ASM compiler identification is GNU
-- Found assembler: C:/msys64/mingw64/bin/gcc.exe
-- Found assembler: C:/msys64/mingw64/bin/gcc.exe
-- Found Perl: C:/msys64/usr/bin/perl.exe (found version "5.30.0")
-- Targeting subsystem 5.02
CMake Deprecation Warning at make/policies.cmake:34 (cmake_policy):
  The OLD behavior for policy CMP0058 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  core/CMakeLists.txt:32 (include)

CMake Deprecation Warning at make/policies.cmake:38 (cmake_policy):
  The OLD behavior for policy CMP0054 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  core/CMakeLists.txt:32 (include)

CMake Deprecation Warning at make/policies.cmake:42 (cmake_policy):
  The OLD behavior for policy CMP0042 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  core/CMakeLists.txt:32 (include)

-- Cannot find dumpbin so not performing dependence check
CMake Deprecation Warning at make/policies.cmake:34 (cmake_policy):
  The OLD behavior for policy CMP0058 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  tools/CMakeLists.txt:32 (include)

CMake Deprecation Warning at make/policies.cmake:38 (cmake_policy):
  The OLD behavior for policy CMP0054 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  tools/CMakeLists.txt:32 (include)

CMake Deprecation Warning at make/policies.cmake:42 (cmake_policy):
  The OLD behavior for policy CMP0042 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  tools/CMakeLists.txt:32 (include)

-- MFC not found: disabling DRstats
-- Found ZLIB: C:/msys64/mingw64/lib/libz.dll.a (found version "1.2.11")
CMake Deprecation Warning at make/policies.cmake:34 (cmake_policy):
  The OLD behavior for policy CMP0058 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  clients/drcachesim/CMakeLists.txt:33 (include)

CMake Deprecation Warning at make/policies.cmake:38 (cmake_policy):
  The OLD behavior for policy CMP0054 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  clients/drcachesim/CMakeLists.txt:33 (include)

CMake Deprecation Warning at make/policies.cmake:42 (cmake_policy):
  The OLD behavior for policy CMP0042 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  clients/drcachesim/CMakeLists.txt:33 (include)

-- Performing Test implicit_fallthrough_avail
-- Performing Test implicit_fallthrough_avail - Failed
CMake Deprecation Warning at make/policies.cmake:34 (cmake_policy):
  The OLD behavior for policy CMP0058 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  clients/drcov/CMakeLists.txt:34 (include)

CMake Deprecation Warning at make/policies.cmake:38 (cmake_policy):
  The OLD behavior for policy CMP0054 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  clients/drcov/CMakeLists.txt:34 (include)

CMake Deprecation Warning at make/policies.cmake:42 (cmake_policy):
  The OLD behavior for policy CMP0042 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  clients/drcov/CMakeLists.txt:34 (include)

CMake Deprecation Warning at make/policies.cmake:34 (cmake_policy):
  The OLD behavior for policy CMP0058 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  clients/drcpusim/CMakeLists.txt:33 (include)

CMake Deprecation Warning at make/policies.cmake:38 (cmake_policy):
  The OLD behavior for policy CMP0054 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  clients/drcpusim/CMakeLists.txt:33 (include)

CMake Deprecation Warning at make/policies.cmake:42 (cmake_policy):
  The OLD behavior for policy CMP0042 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  clients/drcpusim/CMakeLists.txt:33 (include)

CMake Deprecation Warning at make/policies.cmake:34 (cmake_policy):
  The OLD behavior for policy CMP0058 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  clients/standalone/CMakeLists.txt:34 (include)

CMake Deprecation Warning at make/policies.cmake:38 (cmake_policy):
  The OLD behavior for policy CMP0054 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  clients/standalone/CMakeLists.txt:34 (include)

CMake Deprecation Warning at make/policies.cmake:42 (cmake_policy):
  The OLD behavior for policy CMP0042 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  clients/standalone/CMakeLists.txt:34 (include)

-- Found ImageMagick: C:/msys64/mingw64/bin/mogrify.exe (found version "7.0.8-53")
-- Found Doxygen: C:/msys64/mingw64/bin/doxygen.exe (found version "1.8.16 (b0361526242190c122841063cf152b896a540c1b*)") found components:  doxygen missing components:  dot
-- WARNING: vera++ not found: disabling code style checks
CMake Deprecation Warning at make/policies.cmake:34 (cmake_policy):
  The OLD behavior for policy CMP0058 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/CMakeLists.txt:36 (include)

CMake Deprecation Warning at make/policies.cmake:38 (cmake_policy):
  The OLD behavior for policy CMP0054 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/CMakeLists.txt:36 (include)

CMake Deprecation Warning at make/policies.cmake:42 (cmake_policy):
  The OLD behavior for policy CMP0042 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/CMakeLists.txt:36 (include)

CMake Deprecation Warning at make/policies.cmake:34 (cmake_policy):
  The OLD behavior for policy CMP0058 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drcontainers/CMakeLists.txt:34 (include)

CMake Deprecation Warning at make/policies.cmake:38 (cmake_policy):
  The OLD behavior for policy CMP0054 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drcontainers/CMakeLists.txt:34 (include)

CMake Deprecation Warning at make/policies.cmake:42 (cmake_policy):
  The OLD behavior for policy CMP0042 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drcontainers/CMakeLists.txt:34 (include)

-- Found Qt 5: DrGUI will be built
CMake Deprecation Warning at make/policies.cmake:34 (cmake_policy):
  The OLD behavior for policy CMP0058 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drgui/CMakeLists.txt:52 (include)

CMake Deprecation Warning at make/policies.cmake:38 (cmake_policy):
  The OLD behavior for policy CMP0054 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drgui/CMakeLists.txt:52 (include)

CMake Deprecation Warning at make/policies.cmake:42 (cmake_policy):
  The OLD behavior for policy CMP0042 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drgui/CMakeLists.txt:52 (include)

CMake Deprecation Warning at ext/drgui/CMakeLists.txt:54 (cmake_policy):
  The OLD behavior for policy CMP0043 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.

CMake Deprecation Warning at make/policies.cmake:34 (cmake_policy):
  The OLD behavior for policy CMP0058 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drmgr/CMakeLists.txt:33 (include)

CMake Deprecation Warning at make/policies.cmake:38 (cmake_policy):
  The OLD behavior for policy CMP0054 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drmgr/CMakeLists.txt:33 (include)

CMake Deprecation Warning at make/policies.cmake:42 (cmake_policy):
  The OLD behavior for policy CMP0042 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drmgr/CMakeLists.txt:33 (include)

CMake Deprecation Warning at make/policies.cmake:34 (cmake_policy):
  The OLD behavior for policy CMP0058 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drx/CMakeLists.txt:33 (include)

CMake Deprecation Warning at make/policies.cmake:38 (cmake_policy):
  The OLD behavior for policy CMP0054 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drx/CMakeLists.txt:33 (include)

CMake Deprecation Warning at make/policies.cmake:42 (cmake_policy):
  The OLD behavior for policy CMP0042 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drx/CMakeLists.txt:33 (include)

CMake Deprecation Warning at make/policies.cmake:34 (cmake_policy):
  The OLD behavior for policy CMP0058 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drwrap/CMakeLists.txt:24 (include)

CMake Deprecation Warning at make/policies.cmake:38 (cmake_policy):
  The OLD behavior for policy CMP0054 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drwrap/CMakeLists.txt:24 (include)

CMake Deprecation Warning at make/policies.cmake:42 (cmake_policy):
  The OLD behavior for policy CMP0042 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drwrap/CMakeLists.txt:24 (include)

CMake Deprecation Warning at make/policies.cmake:34 (cmake_policy):
  The OLD behavior for policy CMP0058 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drreg/CMakeLists.txt:33 (include)

CMake Deprecation Warning at make/policies.cmake:38 (cmake_policy):
  The OLD behavior for policy CMP0054 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drreg/CMakeLists.txt:33 (include)

CMake Deprecation Warning at make/policies.cmake:42 (cmake_policy):
  The OLD behavior for policy CMP0042 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drreg/CMakeLists.txt:33 (include)

CMake Deprecation Warning at make/policies.cmake:34 (cmake_policy):
  The OLD behavior for policy CMP0058 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drsyms/CMakeLists.txt:36 (include)

CMake Deprecation Warning at make/policies.cmake:38 (cmake_policy):
  The OLD behavior for policy CMP0054 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drsyms/CMakeLists.txt:36 (include)

CMake Deprecation Warning at make/policies.cmake:42 (cmake_policy):
  The OLD behavior for policy CMP0042 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  ext/drsyms/CMakeLists.txt:36 (include)

CMake Error at ext/drsyms/CMakeLists.txt:75 (message):
  Cannot find lib.exe

-- Configuring incomplete, errors occurred!
See also "C:/msys64/home/ofry/dynamorio/CMakeFiles/CMakeOutput.log".
See also "C:/msys64/home/ofry/dynamorio/CMakeFiles/CMakeError.log".