1:BUILD_BY[name] student0 1:BUILD_ENVIRONMENT[operating system 32 vs 64] 1:END_BUILD_ENVIRONMENT 1:DEPENDENCIES[list of dependencies with where to get them] make g++ c compiler These should be availible via the build-essential package. 1:END_DEPENDENCIES 1:NOTES[notes on attempted build] Following error was generate while attempting to run makfile: use 'template' keyword to treat 'newNode' as a dependent template name Node[NewNode] = this->map->newNode(); ^ template 1:END_NOTES 2:BUILD_BY[name] student3 2:BUILD_ENVIRONMENT[operating system 32 vs 64] Ubuntu 13.04 2:END_BUILD_ENVIRONMENT 2:DEPENDENCIES[list of dependencies with where to get them] Dragonegg (comes with source code) 2:END_DEPENDENCIES 2:NOTES[notes on attempted build] ~Note: There is a problem with building dragonegg from source. When trying to make I get this error /home/student/repro/oopsla12/Effinger-DeanLCGB12/src/ifrit/dragonegg-3.0.src/include/unknown/dragonegg/OS.h:1:2: error: #error Unknown target operating system #error Unknown target operating system From this email thread I figure it's a bug in dragonegg, but have no way of knowing what version worked with ifrit (the program of this paper) http://osdir.com/ml/general/2011-07/msg36990.html 2:END_NOTES 3:BUILD_BY[name] student4 3:BUILD_ENVIRONMENT[operating system 32 vs 64] >>>> lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04.4 LTS Release: 12.04 Codename: precise >>>> uname -a Linux student-VPCSE13FX 3.2.0-67-generic #101-Ubuntu SMP Tue Jul 15 17:46:11 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux >>>> lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 2 Core(s) per socket: 2 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 42 Stepping: 7 CPU MHz: 800.000 BogoMIPS: 4788.91 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 3072K NUMA node0 CPU(s): 0-3 >>>> javac -version javac 1.7.0_55 >>>> gcc --version gcc (Ubuntu 4.8.1-2ubuntu1~12.04) 4.8.1 3:END_BUILD_ENVIRONMENT 3:DEPENDENCIES[list of dependencies with where to get them] Dragonegg (comes with source code) 3:END_DEPENDENCIES 3:NOTES[notes on attempted build] Using README: updated Runtime2/Makefile with correct path to glib-2.0 > cd llvm-3.0/ > mkdir obj > cd obj > ../src/configure --prefix=$PWD/../install > make ... In file included from /home/student/temp/repro/Effinger/ifrit/llvm-3.0/src/lib/Support/IntervalMap.cpp:14: /home/student/temp/repro/Effinger/ifrit/llvm-3.0/src/include/llvm/ADT/IntervalMap.h:1980:32: error: use 'template' keyword to treat 'newNode' as a dependent template name Node[NewNode] = this->map->newNode(); ^ template I was using LLVM 3.1 from googling this, apparently newer llvm is more 'pedantic' so, should work with 3.0 ref http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-May/049806.html found diff file that corrects this issue for 2.9 and just applied it by hand, 3 line changes. https://gist.github.com/MarkVillacampa/8680814 another error with missing file is fixed: sudo ln -s /usr/include/x86_64-linux-gnu/c++/4.8/bits/cxxabi_tweaks.h cxxabi_tweaks.h > make ... llvm[0]: ***** Completed Release Build > make install ... > export PATH=$PATH:$PWD/../install/bin > cd ../../dragonegg-3.0.src/ > gcc-4.6 --version gcc-4.6 (Ubuntu/Linaro 4.6.4-1ubuntu1~12.04) 4.6.4 > GCC=`which gcc-4.6` make ... Linking dragonegg.so Modified llvm/dragonegg compiles > cd ../Runtime2 Set path for glib > make g++ -O3 -fPIC -I/usr/include/glib-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/lib/x86_64-linux-gnu/glib-2.0 -Wall -c -O3 -fPIC -I/usr/include/glib-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/lib/x86_64-linux-gnu/glib-2.0 -Wall -o IFR.o IFR.c g++ -O3 -fPIC -I/usr/include/glib-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/lib/x86_64-linux-gnu/glib-2.0 -Wall -c -O3 -fPIC -I/usr/include/glib-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/lib/x86_64-linux-gnu/glib-2.0 -Wall -o IFR_Runtime.o IFR_Runtime.cpp g++ -O3 -shared -fPIC -pthread -lgthread-2.0 -lrt -lglib-2.0 IFR_Runtime.o IFR.o -o libIFR_Runtime.so Runtime compiles > cd ../test > export LD_LIBRARY_PATH=$PWD/../Runtime2 > g++-4.6 -fplugin=$PWD/../dragonegg-3.0.src/dragonegg.so -fplugin-arg-dragonegg-insert-drd-calls -L$PWD/../Runtime2 -lIFR_Runtime -pthread -g test.c -o test /tmp/cc9yBlfQ.o: In function `thread(void*)': /home/student/temp/repro/Effinger/ifrit/test/test.c:8: undefined reference to `IFRit_begin_one_write_ifr' /home/student/temp/repro/Effinger/ifrit/test/test.c:8: undefined reference to `IFRit_begin_one_read_ifr' /home/student/temp/repro/Effinger/ifrit/test/test.c:9: undefined reference to `IFRit_begin_ifrs' /tmp/cc9yBlfQ.o: In function `main': /home/student/temp/repro/Effinger/ifrit/test/test.c:14: undefined reference to `IFRit_begin_ifrs' /home/student/temp/repro/Effinger/ifrit/test/test.c:14: undefined reference to `IFRit_begin_one_read_ifr' /home/student/temp/repro/Effinger/ifrit/test/test.c:16: undefined reference to `IFRit_pthread_create' /home/student/temp/repro/Effinger/ifrit/test/test.c:16: undefined reference to `IFRit_pthread_create' /home/student/temp/repro/Effinger/ifrit/test/test.c:20: undefined reference to `IFRit_begin_ifrs' /home/student/temp/repro/Effinger/ifrit/test/test.c:21: undefined reference to `IFRit_begin_ifrs' collect2: ld returned 1 exit status Doesn't find libIFR_Runtime.so The functions are in there: > strings ../Runtime2/libIFR_Runtime.so | grep IFRit_begin_one_write_ifr IFRit_begin_one_write_ifr Not sure how to resolve this, followed directions in README. 3:END_NOTES