Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compiling error in env_linux.cpp #157

Open
NormalDev opened this issue Nov 7, 2022 · 1 comment
Open

Compiling error in env_linux.cpp #157

NormalDev opened this issue Nov 7, 2022 · 1 comment

Comments

@NormalDev
Copy link

I'm trying to build maat from source on Windows 10 64bit, I'm using MSYS2 to download z3, LIEF and GMP.
when running

cmake --build build

I encounter a couple of issues during compilation

The first one is an issue while compiling env_linux.cpp at line 45 std::string stdin = fs.get_stdin_for_pid(pinfo.pid);

In file included from /usr/lib/gcc/x86_64-pc-msys/11.3.0/include/c++/cstdio:42,
                 from /usr/lib/gcc/x86_64-pc-msys/11.3.0/include/c++/ext/string_conversions.h:43,
                 from /usr/lib/gcc/x86_64-pc-msys/11.3.0/include/c++/bits/basic_string.h:6608,
                 from /usr/lib/gcc/x86_64-pc-msys/11.3.0/include/c++/string:55,
                 from /c/Users/user/Desktop/prog/SymbolicExe/maat/src/include/maat/expression.hpp:5,
                 from /c/Users/user/Desktop/prog/SymbolicExe/maat/src/include/maat/value.hpp:4,
                 from /c/Users/user/Desktop/prog/SymbolicExe/maat/src/include/maat/env/library.hpp:4,
                 from /c/Users/user/Desktop/prog/SymbolicExe/maat/src/include/maat/env/env.hpp:4,
                 from /c/Users/user/Desktop/prog/SymbolicExe/maat/src/env/env_linux.cpp:1:
/c/Users/user/Desktop/prog/SymbolicExe/maat/src/env/env_linux.cpp: In member function ‘virtual void maat::env::LinuxEmulator::add_running_process(const maat::ProcessInfo&, const string&)’:
/c/Users/user/Desktop/prog/SymbolicExe/maat/src/env/env_linux.cpp:45:17: error: no matching function for call to ‘std::__cxx11::basic_string<char>::basic_string(__FILE*&)’
   45 |     std::string stdin = fs.get_stdin_for_pid(pinfo.pid);
      |

the second one is in /usr/lib/gcc/x86_64-pc-msys/11.3.0/include/c++/type_traits at line 2585

In file included from /usr/lib/gcc/x86_64-pc-msys/11.3.0/include/c++/bits/move.h:57,
                 from /usr/lib/gcc/x86_64-pc-msys/11.3.0/include/c++/bits/stl_pair.h:59,
                 from /usr/lib/gcc/x86_64-pc-msys/11.3.0/include/c++/bits/stl_algobase.h:64,
                 from /usr/lib/gcc/x86_64-pc-msys/11.3.0/include/c++/bits/char_traits.h:39,
                 from /usr/lib/gcc/x86_64-pc-msys/11.3.0/include/c++/string:40,
                 from /c/Users/user/Desktop/prog/SymbolicExe/maat/src/include/maat/expression.hpp:5,
                 from /c/Users/user/Desktop/prog/SymbolicExe/maat/src/include/maat/value.hpp:4,
                 from /c/Users/user/Desktop/prog/SymbolicExe/maat/src/include/maat/env/library.hpp:4,
                 from /c/Users/user/Desktop/prog/SymbolicExe/maat/src/include/maat/env/env.hpp:4,
                 from /c/Users/user/Desktop/prog/SymbolicExe/maat/src/env/env_linux.cpp:1:
/usr/lib/gcc/x86_64-pc-msys/11.3.0/include/c++/type_traits: In substitution of ‘template<bool _Cond, class _Tp> using enable_if_t = typename std::enable_if::type [with bool _Cond = false; _Tp = void]’:
/usr/lib/gcc/x86_64-pc-msys/11.3.0/include/c++/bits/basic_string.h:125:8:   required by substitution of ‘template<class _CharT, class _Traits, class _Alloc> template<class _Tp, class _Res> using _If_sv = std::enable_if_t<std::__and_<std::is_convertible<const _Tp&, std::basic_string_view<_CharT, _Traits> >, std::__not_<std::is_convertible<const _Tp*, const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>*> >, std::__not_<std::is_convertible<const _Tp&, const _CharT*> > >::value, _Res> [with _Tp = __sFILE64*; _Res = void; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]’
/usr/lib/gcc/x86_64-pc-msys/11.3.0/include/c++/bits/basic_string.h:662:30:   required from here
/usr/lib/gcc/x86_64-pc-msys/11.3.0/include/c++/type_traits:2585:11: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
 2585 |     using enable_if_t = typename enable_if<_Cond, _Tp>::type;
      |        

I think the problem may be in the first line of env_linux.hpp, the compiler could have an issue including env.hpp

#include "maat/env/env.hpp"

but i'm having trouble finding a solution.

@ekilmer
Copy link
Collaborator

ekilmer commented Jan 9, 2023

Hello @NormalDev, apologies for the delay in response. Unfortunately, Windows and/or Msys2 support is experimental right now, and I don't have much time to set up a dev environment for investigation.

Are you able to reproduce this issue on a Linux distribution (like Ubuntu) using Windows Subsystem for Linux or a virtual machine?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants