GrammaTech / gtirb

Intermediate Representation for Binary analysis and transformation
https://grammatech.github.io/gtirb/
Other
305 stars 36 forks source link

Failed to compile gtirb_pprinter because of gtirb::SymStackConst #42

Closed Vancir closed 3 years ago

Vancir commented 3 years ago

I compiled the latest code(1ded8bd3e62b216d237c1df02b0e9f60470dc062) of gtirb and then encountered the following error. I checked out the tag v1.10.4 and it works well.


error: ‘SymStackConst’ is not a member of ‘gtirb’; did you mean ‘gtirb::proto::SymStackConst’? 210 | std::is_same_v<T, gtirb::SymStackConst>) {

❯ sudo cmake --build ./gtirb-pprinter/build -j --target all install
Scanning dependencies of target gtirb_layout
Scanning dependencies of target gtest
Scanning dependencies of target gtirb_pprinter
[  4%] Building CXX object src/gtirb_layout/CMakeFiles/gtirb_layout.dir/gtirb_layout.cpp.o
[  8%] Building CXX object src/gtirb_pprinter/CMakeFiles/gtirb_pprinter.dir/AttPrettyPrinter.cpp.o
[ 16%] Building CXX object src/gtirb_pprinter/CMakeFiles/gtirb_pprinter.dir/PrettyPrinter.cpp.o
[ 16%] Building CXX object src/gtirb_pprinter/CMakeFiles/gtirb_pprinter.dir/ElfBinaryPrinter.cpp.o
[ 20%] Building CXX object src/gtirb_pprinter/CMakeFiles/gtirb_pprinter.dir/Arm64PrettyPrinter.cpp.o
[ 24%] Building CXX object src/gtirb_pprinter/CMakeFiles/gtirb_pprinter.dir/BinaryPrinter.cpp.o
[ 28%] Building CXX object src/gtirb_pprinter/CMakeFiles/gtirb_pprinter.dir/ElfPrettyPrinter.cpp.o
[ 32%] Building CXX object src/gtirb_pprinter/CMakeFiles/gtirb_pprinter.dir/file_utils.cpp.o
[ 40%] Building CXX object src/gtirb_pprinter/CMakeFiles/gtirb_pprinter.dir/Registration.cpp.o
[ 40%] Building CXX object src/gtirb_pprinter/CMakeFiles/gtirb_pprinter.dir/IntelPrettyPrinter.cpp.o
[ 44%] Building CXX object src/gtirb_pprinter/CMakeFiles/gtirb_pprinter.dir/string_utils.cpp.o
[ 48%] Building CXX object src/gtirb_pprinter/CMakeFiles/gtirb_pprinter.dir/Syntax.cpp.o
[ 52%] Building CXX object src/gtirb_pprinter/CMakeFiles/gtirb_pprinter.dir/PePrettyPrinter.cpp.o
[ 64%] Building CXX object src/gtirb_pprinter/CMakeFiles/gtirb_pprinter.dir/MasmPrettyPrinter.cpp.o
[ 64%] Building CXX object src/gtirb_pprinter/CMakeFiles/gtirb_pprinter.dir/PeBinaryPrinter.cpp.o
[ 64%] Building CXX object googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
[ 68%] Linking CXX shared library ../../lib/libgtest.so
[ 68%] Built target gtest
/data/username/ddisasm/deps/gtirb-pprinter/src/gtirb_pprinter/ElfPrettyPrinter.cpp: In lambda function:
/data/username/ddisasm/deps/gtirb-pprinter/src/gtirb_pprinter/ElfPrettyPrinter.cpp:135:61: error: ‘SymStackConst’ is not a member of ‘gtirb’; did you mean ‘gtirb::proto::SymStackConst’?
  135 |                                    std::is_same_v<T, gtirb::SymStackConst>) {
      |                                                             ^~~~~~~~~~~~~
In file included from /usr/local/include/gtirb/SymbolicExpression.hpp:19,
                 from /usr/local/include/gtirb/ByteInterval.hpp:22,
                 from /usr/local/include/gtirb/gtirb.hpp:27,
                 from /data/username/ddisasm/deps/gtirb-pprinter/include/gtirb_pprinter/PrettyPrinter.hpp:21,
                 from /data/username/ddisasm/deps/gtirb-pprinter/include/gtirb_pprinter/ElfPrettyPrinter.hpp:18,
                 from /data/username/ddisasm/deps/gtirb-pprinter/src/gtirb_pprinter/ElfPrettyPrinter.cpp:15:
/usr/local/include/gtirb/proto/SymbolicExpression.pb.h:110:7: note: ‘gtirb::proto::SymStackConst’ declared here
  110 | class SymStackConst : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:gtirb.proto.SymStackConst) */ {
      |       ^~~~~~~~~~~~~
/data/username/ddisasm/deps/gtirb-pprinter/src/gtirb_pprinter/ElfPrettyPrinter.cpp: In lambda function:
/data/username/ddisasm/deps/gtirb-pprinter/src/gtirb_pprinter/ElfPrettyPrinter.cpp:210:59: error: ‘SymStackConst’ is not a member of ‘gtirb’; did you mean ‘gtirb::proto::SymStackConst’?
  210 |                                  std::is_same_v<T, gtirb::SymStackConst>) {
      |                                                           ^~~~~~~~~~~~~
In file included from /usr/local/include/gtirb/SymbolicExpression.hpp:19,
                 from /usr/local/include/gtirb/ByteInterval.hpp:22,
                 from /usr/local/include/gtirb/gtirb.hpp:27,
                 from /data/username/ddisasm/deps/gtirb-pprinter/include/gtirb_pprinter/PrettyPrinter.hpp:21,
                 from /data/username/ddisasm/deps/gtirb-pprinter/include/gtirb_pprinter/ElfPrettyPrinter.hpp:18,
                 from /data/username/ddisasm/deps/gtirb-pprinter/src/gtirb_pprinter/ElfPrettyPrinter.cpp:15:
/usr/local/include/gtirb/proto/SymbolicExpression.pb.h:110:7: note: ‘gtirb::proto::SymStackConst’ declared here
  110 | class SymStackConst : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:gtirb.proto.SymStackConst) */ {
      |       ^~~~~~~~~~~~~
/data/username/ddisasm/deps/gtirb-pprinter/src/gtirb_pprinter/ElfPrettyPrinter.cpp: In lambda function:
/data/username/ddisasm/deps/gtirb-pprinter/src/gtirb_pprinter/ElfPrettyPrinter.cpp:236:59: error: ‘SymStackConst’ is not a member of ‘gtirb’; did you mean ‘gtirb::proto::SymStackConst’?
  236 |                                  std::is_same_v<T, gtirb::SymStackConst>) {
      |                                                           ^~~~~~~~~~~~~
In file included from /usr/local/include/gtirb/SymbolicExpression.hpp:19,
                 from /usr/local/include/gtirb/ByteInterval.hpp:22,
                 from /usr/local/include/gtirb/gtirb.hpp:27,
                 from /data/username/ddisasm/deps/gtirb-pprinter/include/gtirb_pprinter/PrettyPrinter.hpp:21,
                 from /data/username/ddisasm/deps/gtirb-pprinter/include/gtirb_pprinter/ElfPrettyPrinter.hpp:18,
                 from /data/username/ddisasm/deps/gtirb-pprinter/src/gtirb_pprinter/ElfPrettyPrinter.cpp:15:
/usr/local/include/gtirb/proto/SymbolicExpression.pb.h:110:7: note: ‘gtirb::proto::SymStackConst’ declared here
  110 | class SymStackConst : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:gtirb.proto.SymStackConst) */ {
      |       ^~~~~~~~~~~~~
/data/username/ddisasm/deps/gtirb-pprinter/src/gtirb_pprinter/ElfPrettyPrinter.cpp: In lambda function:
/data/username/ddisasm/deps/gtirb-pprinter/src/gtirb_pprinter/ElfPrettyPrinter.cpp:138:13: error: control reaches end of non-void function [-Werror=return-type]
  138 |             },
      |             ^
cc1plus: all warnings being treated as errors
make[2]: *** [src/gtirb_pprinter/CMakeFiles/gtirb_pprinter.dir/build.make:115: src/gtirb_pprinter/CMakeFiles/gtirb_pprinter.dir/ElfPrettyPrinter.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 72%] Linking CXX shared library ../../lib/libgtirb_layout.so
[ 72%] Built target gtirb_layout
Scanning dependencies of target gtirb-layout
Scanning dependencies of target TestGtirbLayout
[ 76%] Building CXX object src/gtirb_layout/driver/CMakeFiles/gtirb-layout.dir/gtirb_layout.cpp.o
[ 80%] Building CXX object src/gtirb_layout/test/CMakeFiles/TestGtirbLayout.dir/layout_test.cpp.o
make[1]: *** [CMakeFiles/Makefile2:467: src/gtirb_pprinter/CMakeFiles/gtirb_pprinter.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 84%] Linking CXX executable ../../../bin/gtirb-layout
[ 84%] Built target gtirb-layout
[ 88%] Linking CXX executable ../../../bin/TestGtirbLayout
[ 88%] Built target TestGtirbLayout
make: *** [Makefile:163: all] Error 2
tjohnson-gt commented 3 years ago

Yes, a commit landed on gtirb master just yesterday dropping support for gtirb::SymStackConst. gtirb_pprinter has not yet been updated to reflect this change. Our apologies.

tjohnson-gt commented 3 years ago

The latest master branch on gtirb-pprinter should now be fixed.

https://github.com/GrammaTech/gtirb-pprinter/commit/2f8d4779492082543f86f3bf3ae4a177058cc5b7