-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build with Guix #8
Conversation
The problem very well could be in the Guix environment! |
276cefe
to
1d4abff
Compare
Rebasing on 2ef412e fixed the above! Now I get the same error I saw with GCC (i.e. without
Maybe I just need to add |
Everything now builds! But the result can't find the shaders, as I explain in more detail in a1f7315 (it might really be a linker problem). |
It works! You can build it with $(guix time-machine -C channels.scm -- build -f guix.scm)/bin/tangerine |
9ed5f01
to
aa17167
Compare
I think this is ready! I've pared down this PR to just ("just") building with Guix, but I have work in progress toward enabling Racket, too. The main caveat is that I don't have a setup to test that the Windows build still works. |
That's fine, I can fix any regressions that show up on the Windows side. |
In the process, refine the Linux build. The files `installation.h` and `installation.cpp` define a new struct `TangerineInstallation` to encapsulate paths relative to the executable. It helps with adapting to a more Unix-like directory structure, with `bin` and `share` directories. In `CMakeLists.txt`, support `cmake --install`, organize the file into more targets, and eliminate the need to manually move `tangerine` next to the `shaders` directory.
aa17167
to
c2e3caf
Compare
I just force-pushed a typo fix to the commit message:
I'm happy to use |
Remarkably this change seems to prevent this use-after-free error: ==4284==ERROR: AddressSanitizer: heap-use-after-free on address 0x60700003cf50 at pc 0x7f22b904814b bp 0x7ffda5338480 sp 0x7ffda5337c30 READ of size 79 at 0x60700003cf50 thread T0 #0 0x7f22b904814a in __interceptor_memcpy ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:827 #1 0x560430138ab6 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) [clone .constprop.0] (/home/aeva/Projects/tangerine/linux/build/Release/bin/tangerine+0x2f0ab6) #2 0x5604301421c6 in ifd::FileDialog::m_setDirectory(std::filesystem::__cxx11::path const&, bool) (/home/aeva/Projects/tangerine/linux/build/Release/bin/tangerine+0x2fa1c6) #3 0x5604301456aa in ifd::FileDialog::m_renderContent() (/home/aeva/Projects/tangerine/linux/build/Release/bin/tangerine+0x2fd6aa) #4 0x560430145e6b in ifd::FileDialog::m_renderFileDialog() (/home/aeva/Projects/tangerine/linux/build/Release/bin/tangerine+0x2fde6b) #5 0x5604301464f7 in ifd::FileDialog::IsDone(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/home/aeva/Projects/tangerine/linux/build/Release/bin/tangerine+0x2fe4f7) #6 0x5604300678b4 in RenderUI(SDL_Window*, bool&) (/home/aeva/Projects/tangerine/linux/build/Release/bin/tangerine+0x21f8b4) #7 0x56043006fa0e in MainLoop() (/home/aeva/Projects/tangerine/linux/build/Release/bin/tangerine+0x227a0e) #8 0x56042fe898fa in main (/home/aeva/Projects/tangerine/linux/build/Release/bin/tangerine+0x418fa) #9 0x7f22b8967189 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 #10 0x7f22b8967244 in __libc_start_main_impl ../csu/libc-start.c:381 #11 0x56042fe8b8c0 in _start (/home/aeva/Projects/tangerine/linux/build/Release/bin/tangerine+0x438c0) 0x60700003cf50 is located 0 bytes inside of 80-byte region [0x60700003cf50,0x60700003cfa0) freed by thread T0 here: #0 0x7f22b90ba3c8 in operator delete(void*, unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:164 #1 0x56043014210a in ifd::FileDialog::m_setDirectory(std::filesystem::__cxx11::path const&, bool) (/home/aeva/Projects/tangerine/linux/build/Release/bin/tangerine+0x2fa10a) previously allocated by thread T0 here: #0 0x7f22b90b94c8 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:95 #1 0x560430138a9b in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) [clone .constprop.0] (/home/aeva/Projects/tangerine/linux/build/Release/bin/tangerine+0x2f0a9b)
Current status: See #8 (comment) to try it out!
Original Post