Hard-coded static lib
Created by: cutecutecat
What version of DynamoRIO are you using? DynamoRIO-x86_64-Linux-7.1.17976-0
Does the latest build from https://github.com/DynamoRIO/dynamorio/wiki/Latest-Build solve the problem? no
What operating system version are you running on? ubuntu 18.04
What application are you running? instrcalls in sample
Is your application 32-bit or 64-bit? 32-bit
How are you running the application under DynamoRIO? Nothing, because make failed.
What happens when you run without any client? Nothing, because make failed.
What happens when you run with debug build ("-debug" flag to drrun/drconfig/drinject)? Nothing, because make failed.
What steps will reproduce the problem? 1.cmake CMakeLists.txt 2.make
then I get
[ 61%] Building C object CMakeFiles/instrcalls.dir/instrcalls.c.o [ 63%] Building C object CMakeFiles/instrcalls.dir/utils.c.o make[2]: *** No rule to make target '/home/travis/build/DynamoRIO/dynamorio/ext/drsyms/libelftc/lib64/libdwarf.a', needed by 'bin/libinstrcalls.so'. Stop. CMakeFiles/Makefile2:733: recipe for target 'CMakeFiles/instrcalls.dir/all' failed
What is the expected output? What do you see instead? Is this an application crash, a DynamoRIO crash, a DynamoRIO assert, or a hang (see https://github.com/DynamoRIO/dynamorio/wiki/Bug-Reporting and set the title appropriately)? make failed
Please provide any additional information below.
- As I observed, when use DynamoRio extension
drsyms
, this error appeared. - When generate
build.make
file, there is serveral lines asbin/libinstrcalls.so: CMakeFiles/instrcalls.dir/instrcalls.c.o bin/libinstrcalls.so: CMakeFiles/instrcalls.dir/utils.c.o bin/libinstrcalls.so: CMakeFiles/instrcalls.dir/build.make bin/libinstrcalls.so: /home/star/Desktop/hook/Dynam/DynamoRIO-x86_64-Linux-7.1.17976-0/ext/lib64/debug/libdrsyms.so bin/libinstrcalls.so: /home/star/Desktop/hook/Dynam/DynamoRIO-x86_64-Linux-7.1.17976-0/ext/lib64/debug/libdrx.so bin/libinstrcalls.so: /home/travis/build/DynamoRIO/dynamorio/ext/drsyms/libelftc/lib64/libdwarf.a bin/libinstrcalls.so: /home/travis/build/DynamoRIO/dynamorio/ext/drsyms/libelftc/lib64/libelftc.a bin/libinstrcalls.so: /home/travis/build/DynamoRIO/dynamorio/ext/drsyms/libelftc/lib64/libelf.a bin/libinstrcalls.so: /home/star/Desktop/hook/Dynam/DynamoRIO-x86_64-Linux-7.1.17976-0/ext/lib64/debug/libdrreg.so bin/libinstrcalls.so: /home/star/Desktop/hook/Dynam/DynamoRIO-x86_64-Linux-7.1.17976-0/ext/lib64/debug/libdrmgr.so bin/libinstrcalls.so: /home/star/Desktop/hook/Dynam/DynamoRIO-x86_64-Linux-7.1.17976-0/ext/lib64/debug/libdrcontainers.a bin/libinstrcalls.so: /home/star/Desktop/hook/Dynam/DynamoRIO-x86_64-Linux-7.1.17976-0/lib64/debug/libdynamorio.so
libdwarf, libelftc and libelf which are static lib, have strange path prefix /home/travis/build
-
If I use official version
7.1.0
, the error info isNo rule to make target '/dynamorio_package/ext/drsyms/libelftc/lib64/libdwarf.a'
-
I found a similar issue , it seems cmake export something hardcoded of making machine