DynamoRIO / dynamorio

Dynamic Instrumentation Tool Platform
Other
2.67k stars 563 forks source link

cmake build with multiple "nasm : errors more than one input file specified" #3787

Open Zclarkwilliams opened 5 years ago

Zclarkwilliams commented 5 years ago

I have successfully configuring the build files but failed when building DynamoRIO from command like. I following the steps found on https://github.com/DynamoRIO/dynamorio/wiki/How-To-Build.

As can be seen below it seems that there are multiple errors referencing "more than one input file" to the nasm commands but when checked in DynamoRIO\build\ext\drwrap\generate_drwrap_asm_x86.asm.vcxproj, the nasm call is: C:\NASM\nasm.exe /nologo /Zi /Zd /safeseh /c /Fo C:/edk2_ws/DynamoRIO/build/ext/drwrap/drwrap_asm_x86.asm.obj C:/edk2_ws/DynamoRIO/build/ext/drwrap/drwrap_asm_x86.asm.s

C:\edk2_ws\DynamoRIO\build>cmake --build . --config RelWithDebInfo
Microsoft (R) Build Engine version 12.0.40629.0
[Microsoft .NET Framework, version 4.0.30319.42000]
Copyright (C) Microsoft Corporation. All rights reserved.

  policy_static.vcxproj -> C:\edk2_ws\DynamoRIO\build\lib32\policy_static.lib
  DRcontrol.vcxproj -> C:\edk2_ws\DynamoRIO\build\bin32\DRcontrol.exe
  DRkill.vcxproj -> C:\edk2_ws\DynamoRIO\build\bin32\DRkill.exe
  DRload.vcxproj -> C:\edk2_ws\DynamoRIO\build\bin32\DRload.exe
  DRstats.vcxproj -> C:\edk2_ws\DynamoRIO\build\bin32\DRstats.exe
  DRview.vcxproj -> C:\edk2_ws\DynamoRIO\build\bin32\DRview.exe
  balloon.vcxproj -> C:\edk2_ws\DynamoRIO\build\bin32\balloon.exe
  Generating drlibc_x86.asm.obj.stamp
  drlibc_x86.asm
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_drlibc_x86.asm.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_drlibc_x86.asm.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_drlibc_x86.asm.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_drlibc_x86.asm.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_drlibc_x86.asm.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_drlibc_x86.asm.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_drlibc_x86.asm.vcxproj]
  type `nasm -h' for help
  Generating drlibc_xarch.asm_core.obj.stamp
  drlibc_xarch.asm
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_drlibc_xarch.asm_core.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_drlibc_xarch.asm_core.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_drlibc_xarch.asm_core.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_drlibc_xarch.asm_core.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_drlibc_xarch.asm_core.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_drlibc_xarch.asm_core.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_drlibc_xarch.asm_core.vcxproj]
  type `nasm -h' for help
  Generating x86.asm_core.obj.stamp
  x86.asm
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_x86.asm_core.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_x86.asm_core.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_x86.asm_core.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_x86.asm_core.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_x86.asm_core.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_x86.asm_core.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_x86.asm_core.vcxproj]
  type `nasm -h' for help
  ntdll_imports.vcxproj -> C:\edk2_ws\DynamoRIO\build\lib32\ntdll_imports.dll
  closewnd.vcxproj -> C:\edk2_ws\DynamoRIO\build\bin32\closewnd.exe
  create_process.vcxproj -> C:\edk2_ws\DynamoRIO\build\bin32\create_process.exe
  drfrontendlib.vcxproj -> C:\edk2_ws\DynamoRIO\build\lib32\drfrontendlib.lib
  directory_iterator.vcxproj -> C:\edk2_ws\DynamoRIO\build\clients\lib32\release\directory_iterator.lib
  drmemtrace_basic_counts.vcxproj -> C:\edk2_ws\DynamoRIO\build\clients\lib32\release\drmemtrace_basic_counts.lib
  drmemtrace_histogram.vcxproj -> C:\edk2_ws\DynamoRIO\build\clients\lib32\release\drmemtrace_histogram.lib
  drmemtrace_reuse_distance.vcxproj -> C:\edk2_ws\DynamoRIO\build\clients\lib32\release\drmemtrace_reuse_distance.lib
  drmemtrace_reuse_time.vcxproj -> C:\edk2_ws\DynamoRIO\build\clients\lib32\release\drmemtrace_reuse_time.lib
  drmemtrace_simulator.vcxproj -> C:\edk2_ws\DynamoRIO\build\clients\lib32\release\drmemtrace_simulator.lib
  drcachesim_ops.vcxproj -> C:\edk2_ws\DynamoRIO\build\clients\bin32\drcachesim_ops.exe
  drcpusim_ops.vcxproj -> C:\edk2_ws\DynamoRIO\build\clients\bin32\drcpusim_ops.exe
  drearlyhelp2.vcxproj -> C:\edk2_ws\DynamoRIO\build\lib32\drearlyhelp2.dll
  drearlyhelp1.vcxproj -> C:\edk2_ws\DynamoRIO\build\lib32\drearlyhelp1.dll
  Generating drwrap_asm_x86.asm.obj.stamp
  drwrap_asm_x86.asm
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\ext\drwrap\generate_drwrap_asm_x86.asm.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\ext\drwrap\generate_drwrap_asm_x86.asm.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\ext\drwrap\generate_drwrap_asm_x86.asm.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\ext\drwrap\generate_drwrap_asm_x86.asm.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\ext\drwrap\generate_drwrap_asm_x86.asm.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\ext\drwrap\generate_drwrap_asm_x86.asm.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\ext\drwrap\generate_drwrap_asm_x86.asm.vcxproj]
  type `nasm -h' for help
  compressed_file_reader.cpp
C:\edk2_ws\DynamoRIO\clients\drcachesim\reader\compressed_file_reader.cpp(38): error C2220: warning treated as error - no 'object' file generat
ed [C:\edk2_ws\DynamoRIO\build\clients\drcachesim\drmemtrace_analyzer.vcxproj]
C:\edk2_ws\DynamoRIO\clients\drcachesim\reader\compressed_file_reader.cpp(38): warning C4812: obsolete declaration style: please use 'file_read
er_t<gzFile>::~file_reader_t' instead [C:\edk2_ws\DynamoRIO\build\clients\drcachesim\drmemtrace_analyzer.vcxproj]
  Generating pre_inject_asm.asm.obj.stamp
  pre_inject_asm.asm
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_pre_inject_asm.asm.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_pre_inject_asm.asm.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_pre_inject_asm.asm.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_pre_inject_asm.asm.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_pre_inject_asm.asm.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_pre_inject_asm.asm.vcxproj]
nasm : error : more than one input file specified [C:\edk2_ws\DynamoRIO\build\core\generate_pre_inject_asm.asm.vcxproj]
  type `nasm -h' for help
  dummy.vcxproj -> C:\edk2_ws\DynamoRIO\build\bin32\dummy.exe
  dumpevts.vcxproj -> C:\edk2_ws\DynamoRIO\build\bin32\dumpevts.exe
  ldmp.vcxproj -> C:\edk2_ws\DynamoRIO\build\bin32\ldmp.exe
  run_in_bg.vcxproj -> C:\edk2_ws\DynamoRIO\build\bin32\run_in_bg.exe
  svccntrl.vcxproj -> C:\edk2_ws\DynamoRIO\build\bin32\svccntrl.exe
  winstats.vcxproj -> C:\edk2_ws\DynamoRIO\build\bin32\winstats.exe
derekbruening commented 5 years ago

I don't know: we have never seen that. If these are the same VS, etc. versions as on Appveyor, I'm not sure why you would hit this while Appveyor works fine.

I would suggest using Ninja anyway: does it work with Ninja?