Re: [DynInst_API:] Several Dyninst build issues


Date: Fri, 11 Apr 2014 18:15:55 +0200
From: Engelbert Tijskens <engelbert.tijskens@xxxxxxxxxxxxx>
Subject: Re: [DynInst_API:] Several Dyninst build issues
Hi all,
I really appreciate your efforts.
if this helps to motivate :-) I am a member of the support team of the Flemish Supercomputer center, and if the tools is successfull we will certainly recomment it to all our users.
kindest regards,
bert
ps next week i am on hollidays so i will probably unresponsive during the week.

On 11/04/14 17:15, Jim Galarowicz wrote:
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


-- 
Dr Engelbert Tijskens
HPC Analyst/Consultant
Flemish Supercomputer Center vscentrum.be 
CalcUA Core Facility uantwerp.be/calcua
University of Antwerp www.uantwerp.be
Middelheimlaan1 G.309, B-2020 Antwerp, Belgium
engelbert.tijskens@xxxxxxxxxxxxx
+32 3 265 3879
[← Prev in Thread] Current Thread [Next in Thread→]