Doesn't compile
Opened this issue · 1 comments
I'm trying to compile this, but it just doesn't want to compile. gcc/g++-11 is not supported apparently. Java support doesn't work because it can't find a header file. It doesn't like the latest compiled DWARF library. It doesn't find the shared objects in the /usr/lib/x86_64-linux-gnu/
directory. So I ended up with this.
CC=/usr/bin/gcc-10 CXX=/usr/bin/g++-10 ../src/configure --enable-ssl --enable-languages=binaries,c,c++ --enable-gnu-extensions --enable-rose-openGL --with-boost=/usr --with-boost-libdir=/usr/lib/x86_64-linux-gnu --with-z3=/usr/local --with-yaml=/usr/local --with-valgrind=/usr --with-python=/usr/bin/python3 --with-magic=/usr --with-elf=/usr/local --with-libreadline=/usr --with-libreadline-include=/usr/include --with-libreadline-lib=/usr/lib/x86_64-linux-gnu --with-sqlite3=/usr --with-capstone=/usr --with-mpi=/usr --with-dlib=/usr --with-GraphViz_libs=/usr/lib/x86_64-linux-gnu --with-GraphViz_include=/usr/include
Running make core
ends up with this linker error
/usr/bin/ld: frontend/CxxFrontend/EDG/.libs/libroseEDG.a(libnewsage_la-edgRose.o): relocation R_X86_64_PC32 against undefined hidden symbol `_ZTCN5boost10wrapexceptINS_21thread_resource_errorEEE0_NS_16exception_detail10clone_implINS3_19error_info_injectorIS1_EEEE' can not be used when making a shared object
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:2346: librose.la] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/path/to/rose/build/src'
make[1]: *** [Makefile:2548: all-recursive] Error 1
make[1]: Leaving directory '/path/to/rose/build/src'
make: *** [Makefile:2370: core] Error 2
lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 22.04 LTS
Release: 22.04
Codename: jammy
libboost version 1.74
Configure output:
Configuration summary:
Compilers for ROSE source code
C++ compiler /usr/bin/g++-10
C++ vendor gnu
C++ version 10.4.0
C++ language gnu++14
Bison version 3.8.2
Languages supported for analysis
Binaries yes
C yes
C++ yes
C preprocessor yes
Cuda no
Fortran no
Java no
OpenCL no
PHP no
Python no
Boost library
location /usr
version constant 107400
asio library none
chrono library -lboost_chrono
date/time library -lboost_date_time
filesystem library -lboost_filesystem
iostreams library -lboost_iostreams
program options library -lboost_program_options
python library none
random library -lboost_random
regex library -lboost_regex
serialization library -lboost_serialization
signals library none
system library -lboost_system
test exec monitor library none
thread library -lboost_thread
unit test framework library none
wave library -lboost_wave
wserialization library none
Binary analysis support
Capstone (ARM decoding) /usr
Dlib (graph algorithms) /usr
DWARF (ELF format debugging) none
ELF (only needed by DWARF) none
i386 support no
magic (file identification) yes
readline (interactive input) /usr/lib/x86_64-linux-gnu
SQLite3 (database in a file) 3.37.2
YAML-cpp (configuration) /usr/local
yices executable (SMT solver) none
yices library none
z3 version (SMT solver) unknown
z3 executable /usr/local/bin/z3
z3 library /usr/local/lib
C/C++ analysis support
frontend C++ parser EDG-5.0
compiling EDG from source no
generating EDG binary tarball no
backend C++ compiler /usr/bin/g++-10
C++ vendor gnu
C++ version 10.4.0
backend C compiler /usr/bin/gcc-10
Doxygen documentation generator
executable doxygen
version 1.9.1
indexer /usr/bin/doxyindexer
stubs for undocumented entities NO
document private entities NO
document static entities NO
document internal entities NO
hide undocumented members NO
hide undocumented classes NO
hide friend compounds YES
z3 --version
output
Z3 version 4.12.2 - 64 bit - build hashcode 50bd6efea4baba343afffa26f742b49a47b30970
ROSE does require C++14 to compile.
The Java support was experimental and is not actively supported.
The DWARF support has not been worked on past DWARF version "2020.08.25".
The Version of Boost in the /usr directory was compiled with gcc-11 and will likely not link to a ROSE build with gcc-10. You will need to build a new version of boost with gcc-10 then use that one with ROSE.