rose-compiler/rose

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.