Download the source for opencv-2.4.9 from the following location: https://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.9/opencv-2.4.9.zip/download then unzip and create the makefiles: unzip opencv-2.4.9.zip cd opencv-2.4.9 cmake . (this takes 4-5 minutes) Edit the file cmake_install.cmake and change the 5th line to be where you want to install opencv. I used 'opencv' in my root directory. Thus, I changed the line to read: set(CMAKE_INSTALL_PREFIX "/homes/gws/markro/opencv") Now make opencv: make install (this takes 30-35 minutes) Now get MEVBench: cd .. git clone https://github.com/jlclemon/mevbench MEVBench cd MEVBench Modify build.sh to point to the opencv you just made and modify Benchmarks/FeatureExtraction/makefile to use -gdwarf-2 and correct the location of a library. Here are the changes I made: diff --git a/Benchmarks/FeatureExtraction/makefile b/Benchmarks/FeatureExtraction/makefile index 66befb7..870b940 100644 --- a/Benchmarks/FeatureExtraction/makefile +++ b/Benchmarks/FeatureExtraction/makefile @@ -17,8 +17,8 @@ CCFILEXTENSION2=.cc CFILEXTENSION=.c CC=g++ C=gcc -CCDEBUG=-g -CDEBUG=-g +CCDEBUG=-gdwarf-2 +CDEBUG=-gdwarf-2 CCFLAGS=-c -Wall $(CCDEBUG) -O0 $(XTRA_PARAMS) CFLAGS=-c -Wall $(CDEBUG) -O0 $(XTRA_PARAMS) LDEBUG=$(CCDEBUG) @@ -54,7 +54,7 @@ BASEMAINOBJECT=$(basename $(MAIN)) MAINOBJECTPATH=$(addprefix $(OBJDIR)/,$(BASEMAINOBJECT)) MAINOBJECT=$(addsuffix .o,$(MAINOBJECTPATH)) -LLFLAGS=$(LIBS) $(LDEBUG) $(LIBPATH) $(LLFLAGSBASE) +LLFLAGS=$(LIBS) $(LDEBUG) $(LIBPATH) -Wl,-rpath $(LIBPATHS) $(LLFLAGSBASE) EXECUTABLE=$(BINDIR)/$(EXECUTABLEBASE) diff --git a/build.sh b/build.sh index ad28e9a..1a28711 100755 --- a/build.sh +++ b/build.sh @@ -29,6 +29,7 @@ if [ -z "$USE_EFFEX" ]; then export OpenCV_DIR="/home/jlclemon/Documents/OpenCVInstalls/OpenCV2.4.2Defaults" + export OpenCV_DIR="/homes/gws/markro/opencv" USE_EFFEX_INSTR="NONE" else export OpenCV_DIR="/home/jlclemon/Documents/OpenCV/OpenCV2.4.2NativeCustomInstall" (end of diffs) Now build the benchmark test: ./build.sh FeatureExtraction Test it without using Daikon to verify all is OK: ./Benchmarks/FeatureExtraction/bin/FeatureExtraction -configFile ./Configs/FeatureExtraction/FAST/FAST_l_1.txt The output should look like this: Feature Extraction Mechanism 1 1 Number of images: 1 Feature Extraction Beginning Main Loop Rows,Cols : 288,352 Timing Done I created a ppt-list-file to make kvasir run much quicker. Grab ppt3.txt from this issue report. Then run kvasir (assuming you have set your path to include the Daikon tools): kvasir-dtrace --no-dyncomp --ppt-list-file=ppt3.txt ./Benchmarks/FeatureExtraction/bin/FeatureExtraction -configFile ./Configs/FeatureExtraction/FAST/FAST_l_1.txt Finally, run Daikon and you should see the failure: java -ea -cp /homes/gws/markro/invariants/daikon/daikon.jar daikon.Daikon --config_option daikon.derive.Derivation.disable_derived_variables=true daikon-output/FeatureExtraction.dtrace Daikon version 5.7.1, released August 23, 2018; http://plse.cs.washington.edu/daikon. Processing trace data; reading 1 dtrace file: [2:07:02 PM]: Reading daikon-output/FeatureExtraction.dtrace (line 371363, 4.96 enclosing-var not specified for variable __first[..].Matx.val[0] at line 384253 in file daikon-output/FeatureExtraction.dtrace