{"action":"opened","issue":{"url":"https://api.github.com/repos/CTSRD-CHERI/CheriVis/issues/3","labels_url":"https://api.github.com/repos/CTSRD-CHERI/CheriVis/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/CTSRD-CHERI/CheriVis/issues/3/comments","events_url":"https://api.github.com/repos/CTSRD-CHERI/CheriVis/issues/3/events","html_url":"https://github.com/CTSRD-CHERI/CheriVis/issues/3","id":90228488,"number":3,"title":"cherivis won't build with current llvm-cheri","user":{"login":"tmarkettos","id":12303948,"avatar_url":"https://avatars.githubusercontent.com/u/12303948?v=3","gravatar_id":"","url":"https://api.github.com/users/tmarkettos","html_url":"https://github.com/tmarkettos","followers_url":"https://api.github.com/users/tmarkettos/followers","following_url":"https://api.github.com/users/tmarkettos/following{/other_user}","gists_url":"https://api.github.com/users/tmarkettos/gists{/gist_id}","starred_url":"https://api.github.com/users/tmarkettos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tmarkettos/subscriptions","organizations_url":"https://api.github.com/users/tmarkettos/orgs","repos_url":"https://api.github.com/users/tmarkettos/repos","events_url":"https://api.github.com/users/tmarkettos/events{/privacy}","received_events_url":"https://api.github.com/users/tmarkettos/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-06-22T22:22:54Z","updated_at":"2015-06-22T22:22:54Z","closed_at":null,"body":"Ubuntu 14.04, fresh GNUstep installed from source via http://wiki.gnustep.org/index.php/GNUstep_under_Ubuntu_Linux but with CHERI llvm and clang used.\r\n\r\ncherivis build fails with:\r\n\r\natm26@ubuntu:~/cherivis$ make\r\nThis is gnustep-make 2.6.7. Type 'make print-gnustep-make-help' for help.\r\nMaking all for app CheriVis...\r\n Compiling file CVDisassembler.mm ...\r\nwarning: unknown warning option '-Wno-maybe-uninitialized'; did you mean\r\n      '-Wno-uninitialized'? [-Wunknown-warning-option]\r\nCVDisassembler.mm:5:10: fatal error: 'llvm/Support/StringRefMemoryObject.h' file\r\n      not found\r\n#include \"llvm/Support/StringRefMemoryObject.h\"\r\n         ^\r\n1 warning and 1 error generated.\r\nmake[3]: *** [obj/CheriVis.obj/CVDisassembler.mm.o] Error 1\r\nmake[2]: *** [internal-app-run-compile-submake] Error 2\r\nmake[1]: *** [CheriVis.all.app.variables] Error 2\r\nmake: *** [internal-all] Error 2\r\n\r\nStringRefMemoryObject has recently been removed from llvm.  If I [copy it](https://raw.githubusercontent.com/trailofbits/mcsema/master/llvm-3.5/include/llvm/Support/StringRefMemoryObject.h) back into the local tree I get:\r\n\r\nIn file included from CVDisassembler.mm:5:\r\n./StringRefMemoryObject.h:32:28: error: only virtual member functions can be\r\n      marked 'override'\r\n  uint64_t getBase() const override { return Base; }\r\n                           ^~~~~~~~~\r\n./StringRefMemoryObject.h:35:52: error: only virtual member functions can be\r\n      marked 'override'\r\n  int readByte(uint64_t Addr, uint8_t *Byte) const override;\r\n                                                   ^~~~~~~~\r\n./StringRefMemoryObject.h:36:67: error: non-virtual member function marked\r\n      'override' hides virtual member function\r\n  int readBytes(uint64_t Addr, uint64_t Size, uint8_t *Buf) const override;\r\n                                                                  ^\r\n/home/atm26/llvm/include/llvm/Support/MemoryObject.h:47:20: note: hidden\r\n      overloaded virtual function 'llvm::MemoryObject::readBytes' declared here:\r\n      type mismatch at 1st parameter ('uint8_t *' (aka 'unsigned char *') vs\r\n      'uint64_t' (aka 'unsigned long'))\r\n  virtual uint64_t readBytes(uint8_t *Buf, uint64_t Size,\r\n                   ^\r\nCVDisassembler.mm:78:24: error: variable type 'llvm::StringRefMemoryObject' is\r\n      an abstract class\r\n        StringRefMemoryObject memoryObject(StringRef((const char*)&anIns...\r\n                              ^\r\n/home/atm26/llvm/include/llvm/Support/MemoryObject.h:47:20: note: unimplemented\r\n      pure virtual method 'readBytes' in 'StringRefMemoryObject'\r\n  virtual uint64_t readBytes(uint8_t *Buf, uint64_t Size,\r\n                   ^\r\n/home/atm26/llvm/include/llvm/Support/MemoryObject.h:56:26: note: unimplemented\r\n      pure virtual method 'getPointer' in 'StringRefMemoryObject'\r\n  virtual const uint8_t *getPointer(uint64_t address, uint64_t size) const = 0;\r\n                         ^\r\n/home/atm26/llvm/include/llvm/Support/MemoryObject.h:63:16: note: unimplemented\r\n      pure virtual method 'isValidAddress' in 'StringRefMemoryObject'\r\n  virtual bool isValidAddress(uint64_t address) const = 0;\r\n               ^\r\n1 warning and 4 errors generated.\r\n"}}