<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Sep 25, 2017, at 2:47 PM, Dibyendu Majumdar <<a href="mailto:mobile@majumdar.org.uk" class="">mobile@majumdar.org.uk</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Hi Matthias,<br class=""><br class="">On 25 September 2017 at 22:43, Matthias Braun <<a href="mailto:mbraun@apple.com" class="">mbraun@apple.com</a>> wrote:<br class=""><blockquote type="cite" class="">The dump() methods are only meant to be used in debuggers and are only available in debug builds of LLVM. There are often similar print() methods available though.<br class=""><br class=""></blockquote><br class="">I am not sure how this is the case seeing that the dump() function has<br class="">been working in release builds in all the LLVM releases I have used<br class="">(from 3.5 to 4.0).<br class=""></div></div></blockquote><div>The idea behind r198456 and the whole discussion in <a href="http://lists.llvm.org/pipermail/cfe-dev/2014-January/034323.html" class="">http://lists.llvm.org/pipermail/cfe-dev/2014-January/034323.html</a> was that the dump() method are not available in release builds to safe code size. The dump methods can be included in the release builds anyway by enabling LLVM_ENABLE_DUMP.</div><div><br class=""></div><div>The actual implementation of this policy however lacked and depending on which dump() method you looked you would find a different pattern of when it is disable/enabled; I cleaned this up in r<a href="https://llvm.org/svn/llvm-project/llvm/trunk@293359" class="">293359</a> so all dump methods are enabled/disabled consistenly.</div><div><br class=""></div><div>In any case if your client code uses dump() methods then I'd recommend to change it.</div><div><br class=""></div><div>- Matthias</div><div><br class=""></div><blockquote type="cite" class=""><div class=""><div class=""><br class=""><blockquote type="cite" class=""><br class=""><blockquote type="cite" class="">On Sep 25, 2017, at 11:40 AM, Dibyendu Majumdar via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:<br class=""></blockquote></blockquote><br class=""><blockquote type="cite" class=""><blockquote type="cite" class="">I am finding that my project that previously successfully built with<br class="">versions 3.5 to 4.0 is now failing to link because of missing<br class="">implementation for dump(). Errors I get are:<br class=""><br class="">Undefined symbols for architecture x86_64:<br class=""><br class=""> "llvm::Type::dump() const", referenced from:<br class="">     ravi::LuaLLVMTypes::dump() in ravi_llvmtypes.cpp.o<br class="">     dump_content(lua_State*) in ravi_llvmluaapi.cpp.o<br class=""> "llvm::Value::dump() const", referenced from:<br class="">     dump_content(lua_State*) in ravi_llvmluaapi.cpp.o<br class=""> "llvm::Module::dump() const", referenced from:<br class=""><br class="">This appears to be a change that is not documented in the release<br class="">notes of 5.0. Please can someone describe what the change is and how I<br class="">can detect whether the dump() implementation is available or not?<br class=""><br class="">It also seems strange that dump() implementation was removed - surely<br class="">it would have been better ti stub it so that client code does not<br class="">break?<br class=""><br class="">Regards<br class="">Dibyendu<br class="">_______________________________________________<br class="">LLVM Developers mailing list<br class=""><a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a><br class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev<br class=""></blockquote><br class=""></blockquote></div></div></blockquote></div><br class=""></body></html>