avast / retdec

RetDec is a retargetable machine-code decompiler based on LLVM.
https://retdec.com/
MIT License
8k stars 946 forks source link

Cannot build RetDec on Raspberry Pi (GCC error when building OpenSSL) #299

Closed greg5678 closed 6 years ago

greg5678 commented 6 years ago

It seemed to work fine so far but it doesn't seem to be installing correctly when it gets LLVM. screen shot 2018-05-16 at 11 43 26 am

s3rvac commented 6 years ago

Hi. Could you please run

make -j$(nproc) &> log.txt

and attach the log.txt file here? Also, please specify your Linux distribution (Raspbian?), CMake version (cmake --version), and GCC version (gcc --version).

greg5678 commented 6 years ago
cmake --version
cmake version 3.7.2

CMake suite maintained and supported by Kitware (kitware.com/cmake).
gcc --version
gcc (Raspbian 6.3.0-18+rpi1+deb9u1) 6.3.0 20170516
Copyright (C) 2016 Free Software Foundation, Inc.
[  0%] Built target capstone-project
[  1%] Built target llvm-project
[  1%] Performing build step for 'openssl'
[  2%] Built target jsoncpp-project
Scanning dependencies of target tinyxml2-project
Scanning dependencies of target rapidjson-project
Scanning dependencies of target elfio-project
[  2%] Creating directories for 'rapidjson-project'
[  2%] Creating directories for 'tinyxml2-project'
[  2%] Creating directories for 'elfio-project'
[  2%] Performing download step (download, verify and extract) for 'tinyxml2-project'
[  2%] Performing download step (download, verify and extract) for 'elfio-project'
[  3%] Performing download step (download, verify and extract) for 'rapidjson-project'
CMake Error at /home/pi/retdec/build/deps/openssl/openssl/src/openssl-stamp/openssl-build-Release.cmake:16 (message):
  Command failed: 2

   'make' '-j4'

  See also

    /home/pi/retdec/build/deps/openssl/openssl/src/openssl-stamp/openssl-build-*.log

deps/openssl/CMakeFiles/openssl.dir/build.make:111: recipe for target 'deps/openssl/openssl/src/openssl-stamp/openssl-build' failed
make[2]: *** [deps/openssl/openssl/src/openssl-stamp/openssl-build] Error 1
CMakeFiles/Makefile2:301: recipe for target 'deps/openssl/CMakeFiles/openssl.dir/all' failed
make[1]: *** [deps/openssl/CMakeFiles/openssl.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
-- elfio-project download command succeeded.  See also /home/pi/retdec/build/external/src/elfio-project-stamp/elfio-project-download-*.log
[  3%] No update step for 'elfio-project'
[  3%] No patch step for 'elfio-project'
[  3%] No configure step for 'elfio-project'
[  3%] No build step for 'elfio-project'
-- rapidjson-project download command succeeded.  See also /home/pi/retdec/build/external/src/rapidjson-project-stamp/rapidjson-project-download-*.log
[  3%] No patch step for 'rapidjson-project'
[  3%] No install step for 'elfio-project'
[  3%] No update step for 'rapidjson-project'
-- tinyxml2-project download command succeeded.  See also /home/pi/retdec/build/external/src/tinyxml2-project-stamp/tinyxml2-project-download-*.log
[  3%] No patch step for 'tinyxml2-project'
[  4%] Completed 'elfio-project'
[  4%] No update step for 'tinyxml2-project'
[  4%] Performing configure step for 'rapidjson-project'
[  4%] Performing configure step for 'tinyxml2-project'
[  4%] Built target elfio-project
-- rapidjson-project configure command succeeded.  See also /home/pi/retdec/build/external/src/rapidjson-project-stamp/rapidjson-project-configure-*.log
[  4%] No build step for 'rapidjson-project'
[  4%] No install step for 'rapidjson-project'
[  4%] Completed 'rapidjson-project'
[  4%] Built target rapidjson-project
-- tinyxml2-project configure command succeeded.  See also /home/pi/retdec/build/external/src/tinyxml2-project-stamp/tinyxml2-project-configure-*.log
[  4%] Performing build step for 'tinyxml2-project'
-- tinyxml2-project build command succeeded.  See also /home/pi/retdec/build/external/src/tinyxml2-project-stamp/tinyxml2-project-build-*.log
[  4%] No install step for 'tinyxml2-project'
[  5%] Completed 'tinyxml2-project'
[  5%] Built target tinyxml2-project
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
metthal commented 6 years ago

Can you also please attach all files that match this glob? /home/pi/retdec/build/deps/openssl/openssl/src/openssl-stamp/openssl-build-*.log

greg5678 commented 6 years ago
cat openssl-build-err.log
make[3]: warning: -jN forced in submake: disabling jobserver mode.
gcc: error: unrecognized command line option '-m32'
make[4]: *** [crypto/aes/aes_cbc.o] Error 1
make[4]: *** Waiting for unfinished jobs....
gcc: error: unrecognized command line option '-m32'
gcc: error: unrecognized command line option '-m32'
gcc: error: unrecognized command line option '-m32'
make[4]: *** [crypto/aes/aes_core.o] Error 1
make[4]: *** [crypto/aes/aes_cfb.o] Error 1
make[4]: *** [crypto/aes/aes_ecb.o] Error 1
make[3]: *** [all] Error 2
cat openssl-build-out.log
Makefile:602: recipe for target 'crypto/aes/aes_cbc.o' failed
Makefile:618: recipe for target 'crypto/aes/aes_core.o' failed
Makefile:610: recipe for target 'crypto/aes/aes_cfb.o' failed
Makefile:626: recipe for target 'crypto/aes/aes_ecb.o' failed
Makefile:128: recipe for target 'all' failed
metthal commented 6 years ago

I've fixed the build of OpenSSL on ARM architecture so please pull the changes and try it again, but I must warn you that we have never tried to build retdec on ARM. You may run into many other problems.

metthal commented 6 years ago

Didn't mean to close it. Close it yourself if it works for you.

greg5678 commented 6 years ago

It gave me another error after trying to build it again.

cat log.txt
[  1%] Built target llvm-project
[  2%] Built target jsoncpp-project
[  2%] Built target capstone-project
[  3%] Built target openssl
[  4%] Built target rapidjson-project
[  5%] Built target elfio-project
[  6%] Built target tinyxml2-project
[  7%] Built target libdwarf-project
Scanning dependencies of target whereami
[  8%] Built target pelib-project
[  9%] Performing build step for 'yaracpp-project'
[ 10%] Built target yaramod-project
[ 10%] Building C object deps/whereami/CMakeFiles/whereami.dir/whereami.c.o
Scanning dependencies of target retdec-pdbparser
[ 10%] Building CXX object src/pdbparser/CMakeFiles/retdec-pdbparser.dir/pdb_file.cpp.o
Scanning dependencies of target retdec-demangler
[ 10%] Building CXX object src/demangler/CMakeFiles/retdec-demangler.dir/demangler.cpp.o
[ 11%] Linking C static library libwhereami.a
[ 11%] Built target whereami
[ 12%] Building CXX object src/pdbparser/CMakeFiles/retdec-pdbparser.dir/pdb_symbols.cpp.o
/home/pi/retdec/src/pdbparser/pdb_file.cpp: In member function ‘retdec::pdbparser::PDBFileState retdec::pdbparser::PDBFile::load_pdb_file(const char*)’:
/home/pi/retdec/src/pdbparser/pdb_file.cpp:53:59: warning: cast from ‘char*’ to ‘retdec::pdbparser::PDB_HEADER* {aka retdec::pdbparser::_PDB_HEADER*}’ increases required alignment of target type [-Wcast-align]
  pdb_header = reinterpret_cast<PDB_HEADER *>(pdb_file_data);
                                                           ^
/home/pi/retdec/src/pdbparser/pdb_file.cpp: In member function ‘void retdec::pdbparser::PDBFile::initialize(int)’:
/home/pi/retdec/src/pdbparser/pdb_file.cpp:115:113: warning: cast from ‘char*’ to ‘retdec::pdbparser::PDB_SHORT* {aka short int*}’ increases required alignment of target type [-Wcast-align]
   PDB_SHORT *dbg_numbers = reinterpret_cast<PDB_SHORT *>(pdb_dbi_data + pdb_dbi_size - dbi_header_v700->cbDbgHdr);
                                                                                                                 ^
/home/pi/retdec/src/pdbparser/pdb_file.cpp: In member function ‘retdec::pdbparser::PDBFileState retdec::pdbparser::PDBFile::load_pdb_v700()’:
/home/pi/retdec/src/pdbparser/pdb_file.cpp:385:125: warning: cast from ‘char*’ to ‘retdec::pdbparser::PDB_DWORD* {aka unsigned int*}’ increases required alignment of target type [-Wcast-align]
  PDB_DWORD *root_dir_indexes = reinterpret_cast<PDB_DWORD *>(pdb_file_data + (pdb_header->V700.dRootIndexesPage) * page_size);
                                                                                                                             ^
/home/pi/retdec/src/pdbparser/pdb_file.cpp:387:94: warning: cast from ‘char*’ to ‘retdec::pdbparser::PDB_ROOT* {aka retdec::pdbparser::_PDB_ROOT*}’ increases required alignment of target type [-Wcast-align]
   pdb_root_dir = reinterpret_cast<PDB_ROOT *>(pdb_file_data + root_dir_indexes[0] * page_size);
                                                                                              ^
/home/pi/retdec/src/pdbparser/pdb_file.cpp:389:95: warning: cast from ‘char*’ to ‘retdec::pdbparser::PDB_ROOT* {aka retdec::pdbparser::_PDB_ROOT*}’ increases required alignment of target type [-Wcast-align]
   pdb_root_dir = reinterpret_cast<PDB_ROOT *>(extract_stream(root_dir_indexes, pages_per_root));
                                                                                               ^
/home/pi/retdec/src/pdbparser/pdb_file.cpp: In member function ‘void retdec::pdbparser::PDBFile::parse_sections(int)’:
/home/pi/retdec/src/pdbparser/pdb_file.cpp:506:95: warning: cast from ‘char*’ to ‘retdec::pdbparser::PDB_IMAGE_SECTION_HEADER* {aka retdec::pdbparser::PDB__IMAGE_SECTION_HEADER*}’ increases required alignment of target type [-Wcast-align]
  PDB_IMAGE_SECTION_HEADER * sects = reinterpret_cast<PDB_IMAGE_SECTION_HEADER *>(pdb_sect_data);
                                                                                               ^
/home/pi/retdec/src/pdbparser/pdb_symbols.cpp: In member function ‘void retdec::pdbparser::PDBSymbols::parse_symbols()’:
/home/pi/retdec/src/pdbparser/pdb_symbols.cpp:273:90: warning: cast from ‘char*’ to ‘retdec::pdbparser::PDBGeneralSymbol* {aka retdec::pdbparser::_PDBGeneralSymbol*}’ increases required alignment of target type [-Wcast-align]
   PDBGeneralSymbol *symbol = reinterpret_cast<PDBGeneralSymbol *>(pdb_sym_data + position);
                                                                                          ^
/home/pi/retdec/src/pdbparser/pdb_symbols.cpp:305:91: warning: cast from ‘char*’ to ‘retdec::pdbparser::PDBGeneralSymbol* {aka retdec::pdbparser::_PDBGeneralSymbol*}’ increases required alignment of target type [-Wcast-align]
    PDBGeneralSymbol *symbol = reinterpret_cast<PDBGeneralSymbol *>(stream->data + position);
                                                                                           ^
/home/pi/retdec/src/pdbparser/pdb_symbols.cpp:382:83: warning: cast from ‘char*’ to ‘retdec::pdbparser::PDBBigSymbol* {aka retdec::pdbparser::_PDBBigSymbol*}’ increases required alignment of target type [-Wcast-align]
    PDBBigSymbol *symbol = reinterpret_cast<PDBBigSymbol *>(stream->data + position);
                                                                                   ^
/home/pi/retdec/src/pdbparser/pdb_symbols.cpp: In member function ‘void retdec::pdbparser::PDBSymbols::dump_global_symbols()’:
/home/pi/retdec/src/pdbparser/pdb_symbols.cpp:414:90: warning: cast from ‘char*’ to ‘retdec::pdbparser::PDBGeneralSymbol* {aka retdec::pdbparser::_PDBGeneralSymbol*}’ increases required alignment of target type [-Wcast-align]
   PDBGeneralSymbol *symbol = reinterpret_cast<PDBGeneralSymbol *>(pdb_sym_data + position);
                                                                                          ^
/home/pi/retdec/src/pdbparser/pdb_symbols.cpp: In member function ‘void retdec::pdbparser::PDBSymbols::dump_module_symbols(int)’:
/home/pi/retdec/src/pdbparser/pdb_symbols.cpp:440:90: warning: cast from ‘char*’ to ‘retdec::pdbparser::PDBGeneralSymbol* {aka retdec::pdbparser::_PDBGeneralSymbol*}’ increases required alignment of target type [-Wcast-align]
   PDBGeneralSymbol *symbol = reinterpret_cast<PDBGeneralSymbol *>(stream->data + position);
                                                                                          ^
/home/pi/retdec/src/pdbparser/pdb_symbols.cpp:681:60: warning: cast from ‘retdec::pdbparser::PDB_BYTE* {aka unsigned char*}’ to ‘retdec::pdbparser::PDB_DWORD* {aka unsigned int*}’ increases required alignment of target type [-Wcast-align]
     print_dwords(reinterpret_cast<PDB_DWORD *>(symbol->data), symbol->size);
                                                            ^
/home/pi/retdec/src/pdbparser/pdb_symbols.cpp:688:60: warning: cast from ‘retdec::pdbparser::PDB_BYTE* {aka unsigned char*}’ to ‘retdec::pdbparser::PDB_DWORD* {aka unsigned int*}’ increases required alignment of target type [-Wcast-align]
     print_dwords(reinterpret_cast<PDB_DWORD *>(symbol->data), symbol->size);
                                                            ^
/home/pi/retdec/src/pdbparser/pdb_symbols.cpp:695:60: warning: cast from ‘retdec::pdbparser::PDB_BYTE* {aka unsigned char*}’ to ‘retdec::pdbparser::PDB_DWORD* {aka unsigned int*}’ increases required alignment of target type [-Wcast-align]
     print_dwords(reinterpret_cast<PDB_DWORD *>(symbol->data), symbol->size);
                                                            ^
/home/pi/retdec/src/pdbparser/pdb_symbols.cpp:723:82: warning: cast from ‘char*’ to ‘retdec::pdbparser::PDBBigSymbol* {aka retdec::pdbparser::_PDBBigSymbol*}’ increases required alignment of target type [-Wcast-align]
   PDBBigSymbol *symbol = reinterpret_cast<PDBBigSymbol *>(stream->data + position);
                                                                                  ^
[ 12%] Building CXX object src/demangler/CMakeFiles/retdec-demangler.dir/demtools.cpp.o
[ 12%] Building CXX object src/demangler/CMakeFiles/retdec-demangler.dir/gparser.cpp.o
[ 12%] Building CXX object src/pdbparser/CMakeFiles/retdec-pdbparser.dir/pdb_types.cpp.o
/home/pi/retdec/src/pdbparser/pdb_types.cpp: In function ‘bool retdec::pdbparser::DisplayTypes(char*, int)’:
/home/pi/retdec/src/pdbparser/pdb_types.cpp:976:48: warning: cast from ‘char*’ to ‘retdec::pdbparser::PDB_PWORD {aka short unsigned int*}’ increases required alignment of target type [-Wcast-align]
      dSize = *reinterpret_cast<PDB_PWORD>(pData);
                                                ^
/home/pi/retdec/src/pdbparser/pdb_types.cpp: In member function ‘void retdec::pdbparser::PDBTypes::parse_types()’:
/home/pi/retdec/src/pdbparser/pdb_types.cpp:1144:91: warning: cast from ‘char*’ to ‘retdec::pdbparser::PDBGeneralSymbol* {aka retdec::pdbparser::_PDBGeneralSymbol*}’ increases required alignment of target type [-Wcast-align]
   PDBGeneralSymbol * symbol = reinterpret_cast<PDBGeneralSymbol *>(pdb_tpi_data + position);
                                                                                           ^
Scanning dependencies of target retdec-utils
[ 12%] Building CXX object src/utils/CMakeFiles/retdec-utils.dir/address.cpp.o
CMake Error at /home/pi/retdec/build/external/src/yaracpp-project-stamp/yaracpp-project-build-Release.cmake:16 (message):
  Command failed: 2

   'make'

  See also

    /home/pi/retdec/build/external/src/yaracpp-project-stamp/yaracpp-project-build-*.log

deps/yaracpp/CMakeFiles/yaracpp-project.dir/build.make:111: recipe for target 'external/src/yaracpp-project-stamp/yaracpp-project-build' failed
make[2]: *** [external/src/yaracpp-project-stamp/yaracpp-project-build] Error 1
CMakeFiles/Makefile2:631: recipe for target 'deps/yaracpp/CMakeFiles/yaracpp-project.dir/all' failed
make[1]: *** [deps/yaracpp/CMakeFiles/yaracpp-project.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 12%] Building CXX object src/pdbparser/CMakeFiles/retdec-pdbparser.dir/pdb_utils.cpp.o
/home/pi/retdec/src/pdbparser/pdb_utils.cpp: In function ‘retdec::pdbparser::PDB_BYTE* retdec::pdbparser::RecordValue(retdec::pdbparser::PDB_PBYTE, retdec::pdbparser::PDB_PDWORD)’:
/home/pi/retdec/src/pdbparser/pdb_utils.cpp:24:52: warning: cast from ‘retdec::pdbparser::PDB_PBYTE {aka unsigned char*}’ to ‘retdec::pdbparser::PDB_PWORD {aka short unsigned int*}’ increases required alignment of target type [-Wcast-align]
   if ((wValue = *reinterpret_cast<PDB_PWORD>(pbData)) < LF_NUMERIC)
                                                    ^
/home/pi/retdec/src/pdbparser/pdb_utils.cpp:41:81: warning: cast from ‘retdec::pdbparser::PDB_PBYTE {aka unsigned char*}’ to ‘retdec::pdbparser::PDB_PSHORT {aka short int*}’ increases required alignment of target type [-Wcast-align]
      dValue = static_cast<PDB_LONG>(*reinterpret_cast<PDB_PSHORT>(pbData + WORD_));
                                                                                 ^
/home/pi/retdec/src/pdbparser/pdb_utils.cpp:47:82: warning: cast from ‘retdec::pdbparser::PDB_PBYTE {aka unsigned char*}’ to ‘retdec::pdbparser::PDB_PUSHORT {aka short unsigned int*}’ increases required alignment of target type [-Wcast-align]
      dValue = static_cast<PDB_LONG>(*reinterpret_cast<PDB_PUSHORT>(pbData + WORD_));
                                                                                  ^
/home/pi/retdec/src/pdbparser/pdb_utils.cpp:53:58: warning: cast from ‘retdec::pdbparser::PDB_PBYTE {aka unsigned char*}’ to ‘retdec::pdbparser::PDB_PLONG {aka int*}’ increases required alignment of target type [-Wcast-align]
      dValue = *reinterpret_cast<PDB_PLONG>(pbData + WORD_);
                                                          ^
/home/pi/retdec/src/pdbparser/pdb_utils.cpp:59:81: warning: cast from ‘retdec::pdbparser::PDB_PBYTE {aka unsigned char*}’ to ‘retdec::pdbparser::PDB_PULONG {aka unsigned int*}’ increases required alignment of target type [-Wcast-align]
      dValue = static_cast<PDB_LONG>(*reinterpret_cast<PDB_PULONG>(pbData + WORD_));
                                                                                 ^
[ 12%] Building CXX object src/utils/CMakeFiles/retdec-utils.dir/alignment.cpp.o
[ 12%] Building CXX object src/demangler/CMakeFiles/retdec-demangler.dir/igrams.cpp.o
[ 12%] Building CXX object src/utils/CMakeFiles/retdec-utils.dir/byte_value_storage.cpp.o
[ 12%] Building CXX object src/utils/CMakeFiles/retdec-utils.dir/binary_path.cpp.o
[ 12%] Linking CXX static library libretdec-pdbparser.a
[ 12%] Built target retdec-pdbparser
[ 12%] Building CXX object src/utils/CMakeFiles/retdec-utils.dir/conversion.cpp.o
[ 13%] Building CXX object src/demangler/CMakeFiles/retdec-demangler.dir/stgrammars/borlandll.cpp.o
[ 13%] Building CXX object src/demangler/CMakeFiles/retdec-demangler.dir/stgrammars/gccll.cpp.o
[ 14%] Building CXX object src/utils/CMakeFiles/retdec-utils.dir/file_io.cpp.o
[ 14%] Building CXX object src/utils/CMakeFiles/retdec-utils.dir/filesystem_path.cpp.o
[ 14%] Building CXX object src/utils/CMakeFiles/retdec-utils.dir/math.cpp.o
[ 14%] Building CXX object src/utils/CMakeFiles/retdec-utils.dir/memory.cpp.o
[ 14%] Building CXX object src/utils/CMakeFiles/retdec-utils.dir/string.cpp.o
[ 14%] Building CXX object src/utils/CMakeFiles/retdec-utils.dir/system.cpp.o
[ 14%] Building CXX object src/utils/CMakeFiles/retdec-utils.dir/time.cpp.o
[ 14%] Linking CXX static library libretdec-utils.a
[ 14%] Built target retdec-utils
[ 14%] Building CXX object src/demangler/CMakeFiles/retdec-demangler.dir/stgrammars/msll.cpp.o
[ 14%] Linking CXX static library libretdec-demangler.a
[ 14%] Built target retdec-demangler
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
s3rvac commented 6 years ago

Could you please attach the following two log files?

/home/pi/retdec/build/external/src/yaracpp-project-stamp/yaracpp-project-build-out.log
/home/pi/retdec/build/external/src/yaracpp-project-stamp/yaracpp-project-build-err.log
greg5678 commented 6 years ago
cat /home/pi/retdec/build/external/src/yaracpp-project-stamp/yaracpp-project-build-out.log
[  7%] Performing build step for 'yara'
Making all in libyara
libtool: compile:  gcc -DPACKAGE_NAME=\"yara\" -DPACKAGE_TARNAME=\"yara\" -DPACKAGE_VERSION=\"3.6.3\" "-DPACKAGE_STRING=\"yara 3.6.3\"" -DPACKAGE_BUGREPORT=\"vmalvarez@virustotal.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"yara\" -DVERSION=\"3.6.3\" -DYYTEXT_POINTER=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_LIBM=1 -DHAVE_LIBM=1 -DHAVE_MEMMEM=1 -DHAVE_TIMEGM=1 -I. -Wall -Wno-deprecated-declarations -std=gnu99 -I./include -O3 -fvisibility=hidden -pthread -MT modules/macho.lo -MD -MP -MF modules/.deps/macho.Tpo -c modules/macho.c -o modules/macho.o
libtool: compile:  gcc -DPACKAGE_NAME=\"yara\" -DPACKAGE_TARNAME=\"yara\" -DPACKAGE_VERSION=\"3.6.3\" "-DPACKAGE_STRING=\"yara 3.6.3\"" -DPACKAGE_BUGREPORT=\"vmalvarez@virustotal.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"yara\" -DVERSION=\"3.6.3\" -DYYTEXT_POINTER=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_LIBM=1 -DHAVE_LIBM=1 -DHAVE_MEMMEM=1 -DHAVE_TIMEGM=1 -I. -Wall -Wno-deprecated-declarations -std=gnu99 -I./include -O3 -fvisibility=hidden -pthread -MT modules/tests.lo -MD -MP -MF modules/.deps/tests.Tpo -c modules/tests.c -o modules/tests.o
libtool: compile:  gcc -DPACKAGE_NAME=\"yara\" -DPACKAGE_TARNAME=\"yara\" -DPACKAGE_VERSION=\"3.6.3\" "-DPACKAGE_STRING=\"yara 3.6.3\"" -DPACKAGE_BUGREPORT=\"vmalvarez@virustotal.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"yara\" -DVERSION=\"3.6.3\" -DYYTEXT_POINTER=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_LIBM=1 -DHAVE_LIBM=1 -DHAVE_MEMMEM=1 -DHAVE_TIMEGM=1 -I. -Wall -Wno-deprecated-declarations -std=gnu99 -I./include -O3 -fvisibility=hidden -pthread -MT modules/elf.lo -MD -MP -MF modules/.deps/elf.Tpo -c modules/elf.c -o modules/elf.o
libtool: compile:  gcc -DPACKAGE_NAME=\"yara\" -DPACKAGE_TARNAME=\"yara\" -DPACKAGE_VERSION=\"3.6.3\" "-DPACKAGE_STRING=\"yara 3.6.3\"" -DPACKAGE_BUGREPORT=\"vmalvarez@virustotal.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"yara\" -DVERSION=\"3.6.3\" -DYYTEXT_POINTER=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_LIBM=1 -DHAVE_LIBM=1 -DHAVE_MEMMEM=1 -DHAVE_TIMEGM=1 -I. -Wall -Wno-deprecated-declarations -std=gnu99 -I./include -O3 -fvisibility=hidden -pthread -MT modules/pe.lo -MD -MP -MF modules/.deps/pe.Tpo -c modules/pe.c -o modules/pe.o
libtool: compile:  gcc -DPACKAGE_NAME=\"yara\" -DPACKAGE_TARNAME=\"yara\" -DPACKAGE_VERSION=\"3.6.3\" "-DPACKAGE_STRING=\"yara 3.6.3\"" -DPACKAGE_BUGREPORT=\"vmalvarez@virustotal.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"yara\" -DVERSION=\"3.6.3\" -DYYTEXT_POINTER=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_LIBM=1 -DHAVE_LIBM=1 -DHAVE_MEMMEM=1 -DHAVE_TIMEGM=1 -I. -Wall -Wno-deprecated-declarations -std=gnu99 -I./include -O3 -fvisibility=hidden -pthread -MT modules/math.lo -MD -MP -MF modules/.deps/math.Tpo -c modules/math.c -o modules/math.o
libtool: compile:  gcc -DPACKAGE_NAME=\"yara\" -DPACKAGE_TARNAME=\"yara\" -DPACKAGE_VERSION=\"3.6.3\" "-DPACKAGE_STRING=\"yara 3.6.3\"" -DPACKAGE_BUGREPORT=\"vmalvarez@virustotal.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"yara\" -DVERSION=\"3.6.3\" -DYYTEXT_POINTER=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_LIBM=1 -DHAVE_LIBM=1 -DHAVE_MEMMEM=1 -DHAVE_TIMEGM=1 -I. -Wall -Wno-deprecated-declarations -std=gnu99 -I./include -O3 -fvisibility=hidden -pthread -MT modules/pe_utils.lo -MD -MP -MF modules/.deps/pe_utils.Tpo -c modules/pe_utils.c -o modules/pe_utils.o
libtool: compile:  gcc -DPACKAGE_NAME=\"yara\" -DPACKAGE_TARNAME=\"yara\" -DPACKAGE_VERSION=\"3.6.3\" "-DPACKAGE_STRING=\"yara 3.6.3\"" -DPACKAGE_BUGREPORT=\"vmalvarez@virustotal.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"yara\" -DVERSION=\"3.6.3\" -DYYTEXT_POINTER=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_LIBM=1 -DHAVE_LIBM=1 -DHAVE_MEMMEM=1 -DHAVE_TIMEGM=1 -I. -Wall -Wno-deprecated-declarations -std=gnu99 -I./include -O3 -fvisibility=hidden -pthread -MT filemap.lo -MD -MP -MF .deps/filemap.Tpo -c filemap.c -o filemap.o
Makefile:655: recipe for target 'filemap.lo' failed
libtool: compile:  gcc -DPACKAGE_NAME=\"yara\" -DPACKAGE_TARNAME=\"yara\" -DPACKAGE_VERSION=\"3.6.3\" "-DPACKAGE_STRING=\"yara 3.6.3\"" -DPACKAGE_BUGREPORT=\"vmalvarez@virustotal.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"yara\" -DVERSION=\"3.6.3\" -DYYTEXT_POINTER=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_LIBM=1 -DHAVE_LIBM=1 -DHAVE_MEMMEM=1 -DHAVE_TIMEGM=1 -I. -Wall -Wno-deprecated-declarations -std=gnu99 -I./include -O3 -fvisibility=hidden -pthread -MT hex_lexer.lo -MD -MP -MF .deps/hex_lexer.Tpo -c hex_lexer.c -o hex_lexer.o
libtool: compile:  gcc -DPACKAGE_NAME=\"yara\" -DPACKAGE_TARNAME=\"yara\" -DPACKAGE_VERSION=\"3.6.3\" "-DPACKAGE_STRING=\"yara 3.6.3\"" -DPACKAGE_BUGREPORT=\"vmalvarez@virustotal.com\" -DPACKAGE_URL=\"\" -DPACKAGE=\"yara\" -DVERSION=\"3.6.3\" -DYYTEXT_POINTER=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_LIBM=1 -DHAVE_LIBM=1 -DHAVE_MEMMEM=1 -DHAVE_TIMEGM=1 -I. -Wall -Wno-deprecated-declarations -std=gnu99 -I./include -O3 -fvisibility=hidden -pthread -MT lexer.lo -MD -MP -MF .deps/lexer.Tpo -c lexer.c -o lexer.o
Makefile:886: recipe for target 'all-recursive' failed
deps/CMakeFiles/yara.dir/build.make:115: recipe for target 'deps/yara/src/yara-stamp/yara-build' failed
CMakeFiles/Makefile2:85: recipe for target 'deps/CMakeFiles/yara.dir/all' failed
Makefile:83: recipe for target 'all' failed
cat /home/pi/retdec/build/external/src/yaracpp-project-stamp/yaracpp-project-build-err.log
make[6]: warning: -jN forced in submake: disabling jobserver mode.
filemap.c:180:12: error: conflicting types for ‘yr_filemap_map_fd’
 YR_API int yr_filemap_map_fd(
            ^~~~~~~~~~~~~~~~~
In file included from filemap.c:40:0:
./include/yara/filemap.h:69:12: note: previous declaration of ‘yr_filemap_map_fd’ was here
 YR_API int yr_filemap_map_fd(
            ^~~~~~~~~~~~~~~~~
filemap.c:294:12: error: conflicting types for ‘yr_filemap_map_ex’
 YR_API int yr_filemap_map_ex(
            ^~~~~~~~~~~~~~~~~
In file included from filemap.c:40:0:
./include/yara/filemap.h:76:12: note: previous declaration of ‘yr_filemap_map_ex’ was here
 YR_API int yr_filemap_map_ex(
            ^~~~~~~~~~~~~~~~~
make[7]: *** [filemap.lo] Error 1
make[7]: *** Waiting for unfinished jobs....
make[6]: *** [all-recursive] Error 1
make[5]: *** [deps/yara/src/yara-stamp/yara-build] Error 2
make[4]: *** [deps/CMakeFiles/yara.dir/all] Error 2
make[3]: *** [all] Error 2
s3rvac commented 6 years ago

This yaracpp build error should be fixed thanks to https://github.com/avast-tl/yara/pull/1. I have included this fix into the RetDec's master branch. @greg5678, could you please pull the current master and try the build again?

greg5678 commented 6 years ago

It seems to build fine now.

./retdec-decompiler.sh -h
Decompiles the given file into the selected target high-level language.
s3rvac commented 6 years ago

Great!