Skip to content

Building "tools" is broken #266

Description

@slymas

I tried to build the tools on v1.0.0 by adding -DCPPTRACE_BUILD_TOOLS=On to cmake. Both on Linux and Windows (MSYS MINGW64) this fails with:

In file included from In file included from C:/Devenv/Repo/regangman/libs/cpptrace/build/_deps/lyra-src/include/lyra/parser.hpp:16C:/Devenv/Repo/regangman/libs/cpptrace/build/_deps/lyra-src/include/lyra/parser.hpp:16,
                 from ,
                 from C:/Devenv/Repo/regangman/libs/cpptrace/build/_deps/lyra-src/include/lyra/arg.hpp:11C:/Devenv/Repo/regangman/libs/cpptrace/build/_deps/lyra-src/include/lyra/arg.hpp:11,
                 from ,
                 from C:/Devenv/Repo/regangman/libs/cpptrace/build/_deps/lyra-src/include/lyra/lyra.hpp:12C:/Devenv/Repo/regangman/libs/cpptrace/build/_deps/lyra-src/include/lyra/lyra.hpp:12,
                 from ,
                 from C:\Devenv\Repo\regangman\libs\cpptrace\tools\dwarfdump\main.cpp:1C:\Devenv\Repo\regangman\libs\cpptrace\tools\symbol_tables\main.cpp:1:
:
C:/Devenv/Repo/regangman/libs/cpptrace/build/_deps/lyra-src/include/lyra/detail/tokens.hpp:C:/Devenv/Repo/regangman/libs/cpptrace/build/_deps/lyra-src/include/lyra/detail/tokens.hpp: In member function ' In member function 'std::string lyra::detail::token_iterator::prefix_value(const std::string&, std::size_t) conststd::string lyra::detail::token_it
erator::prefix_value(const std::string&, std::size_t) const':
':
C:/Devenv/Repo/regangman/libs/cpptrace/build/_deps/lyra-src/include/lyra/detail/tokens.hpp:289:25:C:/Devenv/Repo/regangman/libs/cpptrace/build/_deps/lyra-src/include/lyra/detail/tokens.hpp:289:25:  warning: warning: useless cast to type 'useless cast to type 'std::__cxx11::basic_string<char>::size_typestd::__cxx11::basic_string<char>::size_type' {ak
a '' {aka 'long long unsigned intlong long unsigned int'} ['} [-Wuseless-cast-Wuseless-cast]
  289 |                         ]
  289 |                         static_cast<typename std::string::size_type>(size)static_cast<typename std::string::size_type>(size), prefix[0]);
      |                         , prefix[0]);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In file included from C:/Devenv/Repo/regangman/libs/cpptrace/build/_deps/lyra-src/include/lyra/lyra.hpp:13:
In file included from                                                                                                                                                                                                 :

 In member function '                                                                                                                                                                                                                  ':
                                                                                                                                                                  useless cast to type '
  217 |                                                         error_result = ' [
      |                                                                        ]
  217 |                                                         error_result =
;
      |                                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:/Devenv/Repo/regangman/libs/cpptrace/build/_deps/lyra-src/include/lyra/arguments.hpp:226:60: warning: useless cast to type 'C:/Devenv/Repo/regangman/libs/cpptrace/build/_deps/lyra-src/include/lyra/arguments.hpp:226:60:class lyra::parse_result ' [warning: -Wuseless-castuseless cast to type ']
  226 |                                                 p_result = class lyra::parse_resultparse_result(subparse_result)' [;
      |                                                            -Wuseless-cast^~~~~~~~~~~~~~~~~~~~~~~~~~~~~]
  226 |                                                 p_result =
parse_result(subparse_result);
      |                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Devenv\Repo\regangman\libs\cpptrace\tools\symbol_tables\main.cpp: In function 'int symbol_tables(int, char**)':
C:\Devenv\Repo\regangman\libs\cpptrace\tools\symbol_tables\main.cpp:122:23: error: invalid initialization of reference of type 'const std::filesystem::__cxx11::path&' from expression of type 'options'
  122 |         lookup_symbol(options, address);
      |                       ^~~~~~~
C:\Devenv\Repo\regangman\libs\cpptrace\tools\symbol_tables\main.cpp:87:20: note: in passing argument 1 of 'void lookup_symbol(const std::filesystem::__cxx11::path&, cpptrace::v1::frame_ptr)'
   87 | void lookup_symbol(const std::filesystem::path&, cpptrace::frame_ptr) {
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Devenv\Repo\regangman\libs\cpptrace\tools\symbol_tables\main.cpp:125:18: error: invalid initialization of reference of type 'const std::filesystem::__cxx11::path&' from expression of type 'options'
  125 |     dump_symbols(options);
      |                  ^~~~~~~
C:\Devenv\Repo\regangman\libs\cpptrace\tools\symbol_tables\main.cpp:84:19: note: in passing argument 1 of 'void dump_symbols(const std::filesystem::__cxx11::path&)'
   84 | void dump_symbols(const std::filesystem::path&) {
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Devenv\Repo\regangman\libs\cpptrace\tools\dwarfdump\main.cpp: In member function 'void DwarfDumper::dump(std::filesystem::__cxx11::path)':
C:\Devenv\Repo\regangman\libs\cpptrace\tools\dwarfdump\main.cpp:123:23: error: no match for 'operator=' (operand types are 'std::string' {aka 'std::__cxx11::basic_string<char>'} and 'std::filesystem::__cxx11::path')
  123 |         object_path = path;
      |                       ^~~~
In file included from C:/Devenv/msys64/mingw64/include/c++/12.2.0/string:53,
                 from C:/Devenv/msys64/mingw64/include/c++/12.2.0/bits/locale_classes.h:40,
                 from C:/Devenv/msys64/mingw64/include/c++/12.2.0/bits/ios_base.h:41,
                 from C:/Devenv/msys64/mingw64/include/c++/12.2.0/ios:42,
                 from C:/Devenv/msys64/mingw64/include/c++/12.2.0/ostream:38,
                 from C:/Devenv/msys64/mingw64/include/c++/12.2.0/iostream:39,
                 from C:/Devenv/Repo/regangman/libs/cpptrace/build/_deps/lyra-src/include/lyra/detail/print.hpp:9,
                 from C:/Devenv/Repo/regangman/libs/cpptrace/build/_deps/lyra-src/include/lyra/arg.hpp:10:
C:/Devenv/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:928:8: note: candidate: 'template<class _Tp> constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_If_sv<_Tp, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&> std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator=(const _Tp&) [with _CharT = char; _Traits = std::ch
ar_traits<char>; _Alloc = std::allocator<char>]'
  928 |        operator=(const _Tp& __svt)
      |        ^~~~~~~~
C:/Devenv/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:928:8: note:   template argument deduction/substitution failed:
In file included from C:/Devenv/msys64/mingw64/include/c++/12.2.0/bits/move.h:57,
                 from C:/Devenv/msys64/mingw64/include/c++/12.2.0/bits/exception_ptr.h:43,
                 from C:/Devenv/msys64/mingw64/include/c++/12.2.0/exception:168,
                 from C:/Devenv/msys64/mingw64/include/c++/12.2.0/ios:39:
C:/Devenv/msys64/mingw64/include/c++/12.2.0/type_traits: In substitution of 'template<bool _Cond, class _Tp> using enable_if_t = typename std::enable_if::type [with bool _Cond = false; _Tp = std::__cxx11::basic_string<char>&]':
C:/Devenv/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:155: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*, co
nst std::__cxx11::basic_string<_CharT, _Traits, _Alloc>*> >, std::__not_<std::is_convertible<const _Tp&, const _CharT*> > >::value, _Res> [with _Tp = std::filesystem::__cxx11::path; _Res = std::__cxx11::basic_string<char>&; _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
C:/Devenv/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:928:8:   required by substitution of 'template<class _Tp> constexpr std::__cxx11::basic_string<char>::_If_sv<_Tp, std::__cxx11::basic_string<char>&> std::__cxx11::basic_string<char>::operator=(const _Tp&) [with _Tp = std::filesystem::__cxx11::path]'
C:\Devenv\Repo\regangman\libs\cpptrace\tools\dwarfdump\main.cpp:123:23:   required from here
C:/Devenv/msys64/mingw64/include/c++/12.2.0/type_traits:2614:11: error: no type named 'type' in 'struct std::enable_if<false, std::__cxx11::basic_string<char>&>'
 2614 |     using enable_if_t = typename enable_if<_Cond, _Tp>::type;
      |           ^~~~~~~~~~~
C:/Devenv/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:803:7: note: candidate: 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator=(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocat
or<char>]'
  803 |       operator=(const basic_string& __str)
      |       ^~~~~~~~
C:/Devenv/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:803:37: note:   no known conversion for argument 1 from 'std::filesystem::__cxx11::path' to 'const std::__cxx11::basic_string<char>&'
  803 |       operator=(const basic_string& __str)
      |                 ~~~~~~~~~~~~~~~~~~~~^~~~~
C:/Devenv/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:814:7: note: candidate: 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator=(const _CharT*) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  814 |       operator=(const _CharT* __s)
      |       ^~~~~~~~
C:/Devenv/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:814:31: note:   no known conversion for argument 1 from 'std::filesystem::__cxx11::path' to 'const char*'
  814 |       operator=(const _CharT* __s)
      |                 ~~~~~~~~~~~~~~^~~
C:/Devenv/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:826:7: note: candidate: 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator=(_CharT) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  826 |       operator=(_CharT __c)
      |       ^~~~~~~~
C:/Devenv/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:826:24: note:   no known conversion for argument 1 from 'std::filesystem::__cxx11::path' to 'char'
  826 |       operator=(_CharT __c)
      |                 ~~~~~~~^~~
C:/Devenv/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:844:7: note: candidate: 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator=(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<ch
ar>]'
  844 |       operator=(basic_string&& __str)
      |       ^~~~~~~~
C:/Devenv/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:844:32: note:   no known conversion for argument 1 from 'std::filesystem::__cxx11::path' to 'std::__cxx11::basic_string<char>&&'
  844 |       operator=(basic_string&& __str)
      |                 ~~~~~~~~~~~~~~~^~~~~
C:/Devenv/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:913:7: note: candidate: 'constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>& std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator=(std::initializer_list<_Tp>) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]'
  913 |       operator=(initializer_list<_CharT> __l)
      |       ^~~~~~~~
C:/Devenv/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:913:42: note:   no known conversion for argument 1 from 'std::filesystem::__cxx11::path' to 'std::initializer_list<char>'
  913 |       operator=(initializer_list<_CharT> __l)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
mingw32-make[2]: *** [tools\symbol_tables\CMakeFiles\symbol_tables.dir\build.make:76: tools/symbol_tables/CMakeFiles/symbol_tables.dir/main.cpp.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:459: tools/symbol_tables/CMakeFiles/symbol_tables.dir/all] Error 2
mingw32-make[2]: *** [tools\dwarfdump\CMakeFiles\dwarfdump.dir\build.make:76: tools/dwarfdump/CMakeFiles/dwarfdump.dir/main.cpp.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2:432: tools/dwarfdump/CMakeFiles/dwarfdump.dir/all] Error 2
mingw32-make: *** [Makefile:155: all] Error 2

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions