Hi Dyninst team:
I have several issues to report, all relating to building Dyninst
on different platforms. I still have Dyninst-8.1.2 the default
because Dyninst-8.2 doesn't build on BG/Q (as issue) and I now I
see not on Ubuntu.
I have a potential user (if we can get past these build issues),
who can't get dyninst-8.1.2 to build on two different platforms.
So, I tried to build Dyninst-8.2 on my ubuntu platform (which is
one of Engelbert's platforms of choice). I ran into two
issues.
Issue 1: (I got around this by using my own binutils with
fPIC enabled.)
Linking CXX shared library libcommon.so
/usr/bin/ld:
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libiberty.a(cplus-dem.o):
relocation R_X86_64_32S against `_sch_istable' can not be used
when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libiberty.a:
error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make[2]: *** [common/libcommon.so.8.2.0] Error 1
make[1]: *** [common/CMakeFiles/common.dir/all] Error 2
make: *** [all] Error 2
error: Bad exit status from
/home/jeg/OpenSpeedShop_ROOT/INSTALL/jeg-OptiPlex-GX620/rpm-tmp.q8MdTd
(%build)
Issue 2: (haven't gotten around and could use advice)
Failure of 8.2 version to build with cmake version 2.8.11.2,
gcc-4.8.1
+ CXX=g++ CC=gcc CXXFLAGS=-std=c++0x cmake .
-DCMAKE_INSTALL_PREFIX=/home/jeg/OpenSpeedShop_ROOT/BUILDROOT/dyninst-8.2-1.x86_64/opt/krellroot_v2.1u3
-DINSTALL_LIB_DIR=/home/jeg/OpenSpeedShop_ROOT/BUILDROOT/dyninst-8.2-1.x86_64/opt/krellroot_v2.1u3/lib64
-DINSTALL_INCLUDE_DIR=/home/jeg/OpenSpeedShop_ROOT/BUILDROOT/dyninst-8.2-1.x86_64/opt/krellroot_v2.1u3/include/dyninst
-DCMAKE_PREFIX_PATH=/home/jeg/OpenSpeedShop_ROOT/BUILDROOT/dyninst-8.2-1.x86_64/opt/krellroot_v2.1u3
-DCMAKE_BUILD_TYPE=RelWithDebInfo
-DLIBDWARF_LIBRARIES=/opt/krellroot_v2.1u3/lib
-DLIBDWARF_INCLUDE_DIR=/opt/krellroot_v2.1u3/include
-DLIBELF_LIBRARIES=/opt/krellroot_v2.1u3/lib
-DLIBELF_INCLUDE_DIR=/opt/krellroot_v2.1u3/include -DPATH_BOOST=
-DIBERTY_LIBRARY=/opt/krellroot_v2.1u3/lib/libiberty.a
-- The C compiler identification is GNU 4.8.1
-- The CXX compiler identification is GNU 4.8.1
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- broken
CMake Error at
/usr/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:61
(message):
The C compiler "/usr/bin/gcc" is not able to compile a simple
test program.
It fails with the following output:
Change Dir:
/home/jeg/OpenSpeedShop_ROOT/BUILD/jeg-OptiPlex-GX620/dyninst-8.2/CMakeFiles/CMakeTmp
Run Build Command:/usr/bin/make
"cmTryCompileExec3894022312/fast"
/usr/bin/make -f
CMakeFiles/cmTryCompileExec3894022312.dir/build.make
CMakeFiles/cmTryCompileExec3894022312.dir/build
make[1]: Entering directory
`/home/jeg/OpenSpeedShop_ROOT/BUILD/jeg-OptiPlex-GX620/dyninst-8.2/CMakeFiles/CMakeTmp'
/usr/bin/cmake -E cmake_progress_report
/home/jeg/OpenSpeedShop_ROOT/BUILD/jeg-OptiPlex-GX620/dyninst-8.2/CMakeFiles/CMakeTmp/CMakeFiles
1
Building C object
CMakeFiles/cmTryCompileExec3894022312.dir/testCCompiler.c.o
/usr/bin/gcc -o
CMakeFiles/cmTryCompileExec3894022312.dir/testCCompiler.c.o
-c
/home/jeg/OpenSpeedShop_ROOT/BUILD/jeg-OptiPlex-GX620/dyninst-8.2/CMakeFiles/CMakeTmp/testCCompiler.c
Linking C executable cmTryCompileExec3894022312
/usr/bin/cmake -E cmake_link_script
CMakeFiles/cmTryCompileExec3894022312.dir/link.txt --verbose=1
/usr/bin/gcc
CMakeFiles/cmTryCompileExec3894022312.dir/testCCompiler.c.o -o
cmTryCompileExec3894022312 -rdynamic
/opt/krellroot_v2.1u3/bin/ld: this linker was not configured to
use
sysroots
collect2: error: ld returned 1 exit status
make[1]: *** [cmTryCompileExec3894022312] Error 1
make[1]: Leaving directory
`/home/jeg/OpenSpeedShop_ROOT/BUILD/jeg-OptiPlex-GX620/dyninst-8.2/CMakeFiles/CMakeTmp'
make: *** [cmTryCompileExec3894022312/fast] Error 2
Issue 3: (Engelbert's ubuntu issue):
hi jim,
another error has shown up which has to do with libdwarf.so.
I did "sudo apt-get install libdwarf-dev" but this brought me no
relief... Here' the error:
...
../../common/src/arch-x86.C: In member function 'bool
NS_x86::instruction::isNop() const':
../../common/src/arch-x86.C:5972:8: warning: variable
'displacement_location' set but not used
[-Wunused-but-set-variable]
int displacement_location = 0;
^
../../common/src/arch-x86.C:5973:8: warning: variable
'displacement_size' set but not used [-Wunused-but-set-variable]
int displacement_size = 0;
^
Compiling ../../common/src/arch-power.C
In file included from ../../common/src/arch-power.C:32:0:
../../common/h/arch-power.h: In constructor
'NS_power::instruction::instruction(const void*)':
../../common/h/arch-power.h:782:34: warning: cast from type
'const void*' to type 'NS_power::instructUnion*' casts away
qualifiers [-Wcast-qual]
insn_ = *((instructUnion *)ptr);
^
Compiling ../../common/src/debug_common.C
Compiling ../../common/src/VariableLocation.C
Compiling ../../common/src/Buffer.C
Updating build voucher information: V_libcommon
common build voucher being constructed for libcommon: BUILD#0
$common: v8.1.2-1 libcommon #0 2014/04/11 11:18
etijskens@bert-macbookpro-ubuntu $
Compiling V_libcommon.o
Linking libcommon.so.8.1.2
Making symlink libcommon.so.8.1.2 to libcommon.so.8.1
Making symlink libcommon.so.8.1 to libcommon.so
make[1]: Leaving directory
`/home/etijskens/software/openspeedshop-release-2.1/BUILD/bert-MacBookPro-ubuntu/dyninst-8.1.2/common/x86_64-unknown-linux2.4'
make[1]: Entering directory
`/home/etijskens/software/openspeedshop-release-2.1/BUILD/bert-MacBookPro-ubuntu/dyninst-8.1.2/dwarf/x86_64-unknown-linux2.4'
../../make.library.tmpl:254: DEPENDS: No such file or
directory
Building depends files
make[1]: Leaving directory
`/home/etijskens/software/openspeedshop-release-2.1/BUILD/bert-MacBookPro-ubuntu/dyninst-8.1.2/dwarf/x86_64-unknown-linux2.4'
make[1]: Entering directory
`/home/etijskens/software/openspeedshop-release-2.1/BUILD/bert-MacBookPro-ubuntu/dyninst-8.1.2/dwarf/x86_64-unknown-linux2.4'
Compiling ../src/dwarfResult.C
Compiling ../src/dwarfExprParser.C
Compiling ../src/dwarfFrameParser.C
Compiling ../src/dwarfHandle.C
Updating build voucher information: V_libdynDwarf
dynDwarf build voucher being constructed for libdynDwarf:
BUILD#0
$dynDwarf: v8.1.2-1 libdynDwarf #0 2014/04/11 11:18
etijskens@bert-macbookpro-ubuntu $
Compiling V_libdynDwarf.o
Linking libdynDwarf.so.8.1.2
/usr/bin/ld: /usr/lib/libdwarf.a(dwarf_alloc.o): relocation
R_X86_64_32S against `.rodata' can not be used when making a
shared object; recompile with -fPIC
/usr/lib/libdwarf.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make[1]: *** [libdynDwarf.so.8.1.2] Error 1
make[1]: Leaving directory
`/home/etijskens/software/openspeedshop-release-2.1/BUILD/bert-MacBookPro-ubuntu/dyninst-8.1.2/dwarf/x86_64-unknown-linux2.4'
make: *** [dwarf] Error 2
error: Bad exit status from
/home/etijskens/software/openspeedshop-release-2.1/INSTALL/bert-MacBookPro-ubuntu/rpm-tmp.Dm8RP9
(%build)
Issue 4: (Engelbert's second issue on a non-ubuntu platform):
tried installing the latest version of open speed shop
(rc-openspeedshop-release-2.1-u3.tar.gz) on a scientific linux
(using gcc 4.8.1) but get the error below
i used this command to get it going
$ ./install-tool --build-offline --openss-prefix
$VSC_DATA/oss-2.1 --with-openmpi
/apps/antwerpen/turing/harpertown/software/OpenMPI/1.6.5-GCC-4.8.1
...
Compiling ../src/emitElf.C
In file included from
/data/antwerpen/201/vsc20170/oss-2.1/include/boost/tuple/tuple.hpp:33:0,
from ../src/emitElfStatic.h:47,
from ../src/emitElf.C:40:
/data/antwerpen/201/vsc20170/oss-2.1/include/boost/tuple/detail/tuple_basic.hpp:
In function ‘typename boost::tuples::access_traits<typename
boost::tuples::element<N, boost::tuples::cons<HT, TT>
>::type>::const_type boost::tuples::get(const
boost::tuples::cons<HT, TT>&)’:
/data/antwerpen/201/vsc20170/oss-2.1/include/boost/tuple/detail/tuple_basic.hpp:228:45:
warning: typedef ‘cons_element’ locally defined but not used
[-Wunused-local-typedefs]
typedef BOOST_DEDUCED_TYPENAME impl::type cons_element;
^
../src/emitElf.C: In function ‘int
elfSymType(Dyninst::SymtabAPI::Symbol*)’:
../src/emitElf.C:171:39: error: ‘STT_GNU_IFUNC’ was not
declared in this scope
case Symbol::ST_INDIRECT: return STT_GNU_IFUNC;
^
make[1]: *** [emitElf.o] Error 1
make[1]: Leaving directory
`/data/antwerpen/201/vsc20170/openspeedshop-release-2.1/BUILD/r2e2cn03/dyninst-8.1.2/symtabAPI/x86_64-unknown-linux2.4'
make: *** [symtabAPI] Error 2
error: Bad exit status from
/user/antwerpen/201/vsc20170/data/openspeedshop-release-2.1/INSTALL/r2e2cn03/rpm-tmp.55545
(%build)
RPM build errors:
Macro %target_prefix has empty body
Macro %target_prefix has empty body
Bad exit status from
/user/antwerpen/201/vsc20170/data/openspeedshop-release-2.1/INSTALL/r2e2cn03/rpm-tmp.55545
(%build)
DYNINST FAILED TO BUILD - TERMINATING BUILD SCRIPT. Please
check for errors. sys=r2e2cn03
Any help will be greatly appreciated.
Thanks
Jim G