Talin
2011-Feb-14 21:11 UTC
[LLVMdev] Introducing LLBrowse: A graphical browser for LLVM modules
OK I figured out what the problem was - I assume you are trying to compile under Snow Leopard? There is a problem with linking against wxWidgets because the prebuilt binaries for wxWidgets are compiled in 32-bit mode, and the default compilation mode in Snow Leopard is 64 bits. See this article for an explanation: http://wiki.wxwidgets.org/Development:_wxMac#Building_under_10.6_Snow_Leopard Unfortunately, I am not certain what the right solution is yet. Maybe I'll have to add a check for Snow Leopard and add a flag to compile in 32-bit mode. Apparently this problem is solved in the upcoming 2.9 release of wxWidgets, but that is still an experimental version. In the mean time, I discovered a bunch of other build problems on OS X, which I have gone ahead and checked in fixes for (Things like <memory> vs. <auto_ptr>. I've also updated the docs to explain how to tell CMake where to find llvm-config. 2011/2/14 Török Edwin <edwintorok at gmail.com>> On 2011-02-14 20:58, Török Edwin wrote: > > On 2011-02-14 20:39, Talin wrote: > >> > >> > >> On Mon, Feb 14, 2011 at 1:17 AM, Renato Golin <rengolin at systemcall.org > >> <mailto:rengolin at systemcall.org>> wrote: > >> > >> I think this deserves a blog post... > >> > >> I'd like to wait until I get some feedback - I don't know yet if anyone > >> is having trouble building or running the thing... > > > > Hi Talin, > > > > What version of wxwidgets does llbrowse require, tried 2.8.10, and 2.9.1 > > and none worked: > > /home/edwin/llbrowse/include/llbrowse/Resources.h:46: error: ISO C++ > > forbids declaration of ‘wxImageList’ with no type > > /home/edwin/llbrowse/include/llbrowse/Resources.h:46: error: expected > > ‘;’ before ‘*’ token > > /home/edwin/llbrowse/include/llbrowse/Resources.h:47: error: ISO C++ > > forbids declaration of ‘wxImageList’ with no type > > /home/edwin/llbrowse/include/llbrowse/Resources.h:47: error: expected > > ‘;’ before ‘*’ token > > Correction, 2.8.10 gets past these errors, and shows these errors instead: > > CMakeFiles/llbrowse.dir/lib/BrowserApp.cpp.o:(.rodata._ZTV10BrowserApp[vtable > for BrowserApp]+0x120): undefined reference to > `wxApp::OnAssertFailure(wchar_t const*, int, wchar_t const*, wchar_t > const*, wchar_t const*)' > > CMakeFiles/llbrowse.dir/lib/BrowserApp.cpp.o:(.rodata._ZTV10BrowserApp[vtable > for BrowserApp]+0x128): undefined reference to > `wxAppConsole::OnAssert(wchar_t const*, int, wchar_t const*, wchar_t > const*)' > CMakeFiles/llbrowse.dir/lib/TreeView.cpp.o: In function > `wxStringBase::wxStringBase(wxStringBase const&)': > > TreeView.cpp:(.text._ZN12wxStringBaseC2ERKS_[wxStringBase::wxStringBase(wxStringBase > const&)]+0x43): undefined reference to `wxOnAssert(wchar_t const*, int, > char const*, wchar_t const*, wchar_t const*)' > CMakeFiles/llbrowse.dir/lib/TreeView.cpp.o: In function > `wxArrayString::Item(unsigned long) const': > TreeView.cpp:(.text._ZNK13wxArrayString4ItemEm[wxArrayString::Item(unsigned > long) const]+0x39): undefined reference to `wxOnAssert(wchar_t const*, > int, char const*, wchar_t const*, wchar_t const*)' > > > > > > Some other minor issues: > > 1. If llvm-config is not in the path, 'cmake .' succeeds, and 'make > fails'. > > cmake-gui shows that the problem is LLVM_CONFIG_EXECUTABLE-NOTFOUND. > > > > 2. It doesn't seem to build with LLVM 2.8, maybe you should check the > > LLVM version in CMake: > > /home/edwin/llbrowse/lib/BrowserApp.cpp:9:34: error: llvm/Support > > /Signals.h: No such file or directory > > > > Best regards, > > --Edwin > >-- -- Talin -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110214/249561ab/attachment.html>
Talin
2011-Feb-14 21:13 UTC
[LLVMdev] Introducing LLBrowse: A graphical browser for LLVM modules
Oh, and I updated the MIME types on the docs, so now you can read them online here: http://llvm.org/svn/llvm-project/llbrowse/trunk/doc/LLBrowse.html 2011/2/14 Talin <viridia at gmail.com>> OK I figured out what the problem was - I assume you are trying to compile > under Snow Leopard? There is a problem with linking against wxWidgets > because the prebuilt binaries for wxWidgets are compiled in 32-bit mode, and > the default compilation mode in Snow Leopard is 64 bits. See this article > for an explanation: > > > http://wiki.wxwidgets.org/Development:_wxMac#Building_under_10.6_Snow_Leopard > > Unfortunately, I am not certain what the right solution is yet. Maybe I'll > have to add a check for Snow Leopard and add a flag to compile in 32-bit > mode. Apparently this problem is solved in the upcoming 2.9 release of > wxWidgets, but that is still an experimental version. > > In the mean time, I discovered a bunch of other build problems on OS X, > which I have gone ahead and checked in fixes for (Things like <memory> vs. > <auto_ptr>. I've also updated the docs to explain how to tell CMake where to > find llvm-config. > > 2011/2/14 Török Edwin <edwintorok at gmail.com> > >> On 2011-02-14 20:58, Török Edwin wrote: >> >> > On 2011-02-14 20:39, Talin wrote: >> >> >> >> >> >> On Mon, Feb 14, 2011 at 1:17 AM, Renato Golin <rengolin at systemcall.org >> >> <mailto:rengolin at systemcall.org>> wrote: >> >> >> >> I think this deserves a blog post... >> >> >> >> I'd like to wait until I get some feedback - I don't know yet if anyone >> >> is having trouble building or running the thing... >> > >> > Hi Talin, >> > >> > What version of wxwidgets does llbrowse require, tried 2.8.10, and 2.9.1 >> > and none worked: >> > /home/edwin/llbrowse/include/llbrowse/Resources.h:46: error: ISO C++ >> > forbids declaration of ‘wxImageList’ with no type >> > /home/edwin/llbrowse/include/llbrowse/Resources.h:46: error: expected >> > ‘;’ before ‘*’ token >> > /home/edwin/llbrowse/include/llbrowse/Resources.h:47: error: ISO C++ >> > forbids declaration of ‘wxImageList’ with no type >> > /home/edwin/llbrowse/include/llbrowse/Resources.h:47: error: expected >> > ‘;’ before ‘*’ token >> >> Correction, 2.8.10 gets past these errors, and shows these errors instead: >> >> CMakeFiles/llbrowse.dir/lib/BrowserApp.cpp.o:(.rodata._ZTV10BrowserApp[vtable >> for BrowserApp]+0x120): undefined reference to >> `wxApp::OnAssertFailure(wchar_t const*, int, wchar_t const*, wchar_t >> const*, wchar_t const*)' >> >> CMakeFiles/llbrowse.dir/lib/BrowserApp.cpp.o:(.rodata._ZTV10BrowserApp[vtable >> for BrowserApp]+0x128): undefined reference to >> `wxAppConsole::OnAssert(wchar_t const*, int, wchar_t const*, wchar_t >> const*)' >> CMakeFiles/llbrowse.dir/lib/TreeView.cpp.o: In function >> `wxStringBase::wxStringBase(wxStringBase const&)': >> >> TreeView.cpp:(.text._ZN12wxStringBaseC2ERKS_[wxStringBase::wxStringBase(wxStringBase >> const&)]+0x43): undefined reference to `wxOnAssert(wchar_t const*, int, >> char const*, wchar_t const*, wchar_t const*)' >> CMakeFiles/llbrowse.dir/lib/TreeView.cpp.o: In function >> `wxArrayString::Item(unsigned long) const': >> >> TreeView.cpp:(.text._ZNK13wxArrayString4ItemEm[wxArrayString::Item(unsigned >> long) const]+0x39): undefined reference to `wxOnAssert(wchar_t const*, >> int, char const*, wchar_t const*, wchar_t const*)' >> >> >> > >> > Some other minor issues: >> > 1. If llvm-config is not in the path, 'cmake .' succeeds, and 'make >> fails'. >> > cmake-gui shows that the problem is LLVM_CONFIG_EXECUTABLE-NOTFOUND. >> > >> > 2. It doesn't seem to build with LLVM 2.8, maybe you should check the >> > LLVM version in CMake: >> > /home/edwin/llbrowse/lib/BrowserApp.cpp:9:34: error: llvm/Support >> > /Signals.h: No such file or directory >> > >> > Best regards, >> > --Edwin >> >> > > > -- > -- Talin >-- -- Talin -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110214/cc991068/attachment.html>
Török Edwin
2011-Feb-14 21:33 UTC
[LLVMdev] Introducing LLBrowse: A graphical browser for LLVM modules
On 2011-02-14 23:11, Talin wrote:> OK I figured out what the problem was - I assume you are trying to > compile under Snow Leopard?No, I should've mentioned it: this is Debian unstable x86_64, and wxwidgets is definetely 64-bit. Maybe its just something messed up on my system (had 2.9.1 in /usr/local/). Willtry removing that and reinstalling 2.8. --Edwin
Talin
2011-Feb-14 21:36 UTC
[LLVMdev] Introducing LLBrowse: A graphical browser for LLVM modules
If that doesn't work, try changing the order of 'base' and 'core' in the FindwxWidgets CMake rule. Sometimes the order matters. 2011/2/14 Török Edwin <edwintorok at gmail.com>> On 2011-02-14 23:11, Talin wrote: > > OK I figured out what the problem was - I assume you are trying to > > compile under Snow Leopard? > > No, I should've mentioned it: this is Debian unstable x86_64, and > wxwidgets is definetely 64-bit. > Maybe its just something messed up on my system (had 2.9.1 in > /usr/local/). Willtry removing that and reinstalling 2.8. > > --Edwin > >-- -- Talin -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110214/0001d045/attachment.html>
Török Edwin
2011-Feb-14 21:44 UTC
[LLVMdev] Introducing LLBrowse: A graphical browser for LLVM modules
On 2011-02-14 23:33, Török Edwin wrote:> On 2011-02-14 23:11, Talin wrote: >> OK I figured out what the problem was - I assume you are trying to >> compile under Snow Leopard? > > No, I should've mentioned it: this is Debian unstable x86_64, and > wxwidgets is definetely 64-bit. > Maybe its just something messed up on my system (had 2.9.1 in > /usr/local/). Willtry removing that and reinstalling 2.8.OK, I figured, I have to set CMAKE_BUILD_TYPE to Release and then everything works. With an empty CMAKE_BUILD_TYPE it doesn't work, maybe because LLVM defines _DEBUG and that confuses wxwidgets into a debug mode, and fails because wxwidgets is really built in release mode? Don't know... Best regards, --Edwin
Talin
2011-Feb-15 17:47 UTC
[LLVMdev] Introducing LLBrowse: A graphical browser for LLVM modules
LLBrowse can now successfully build and run under Snow Leopard. The main problem was that wxWidgets uses the Carbon APIs, and there's apparently no 64-bit version of Carbon, so applications have to be compiled as 32-bits. Supposedly there's a new Cocoa-based version of wxWidgets that is in development, but it's still experimental. Here's the cmake command I used: cmake -G "Xcode" -D LLVM_CONFIG_EXECUTABLE="<path-to-llvm-config>" -D CMAKE_OSX_ARCHITECTURES="i386;ppc" <path-to-llbrowse-trunk> Note that you will also need a 32-bit version of the LLVM libraries as well. Defining CMAKE_OSX_ARCHITECTURES="i386;ppc" on the cmake command line works. You probably want to also set CMAKE_INSTALL_PREFIX so that you don't install the 32-bit libraries over your 64-bit ones. In any case, the program does appear to work, although it could use some OS X polish. -- Talin -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110215/6df22876/attachment.html>
Reasonably Related Threads
- [LLVMdev] Introducing LLBrowse: A graphical browser for LLVM modules
- [LLVMdev] Introducing LLBrowse: A graphical browser for LLVM modules
- [LLVMdev] Introducing LLBrowse: A graphical browser for LLVM modules
- [LLVMdev] still failed to build the llbrowse on Debian5-32b-llvm2.8
- [LLVMdev] still failed to build the llbrowse on Debian5-32b-llvm2.8