-
Notifications
You must be signed in to change notification settings - Fork 187
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
Compiling with visibility=hidden #222
Comments
Thanks for reporting. I have only tried to compile the library with the default visibility, is there a reason that the hidden visibility is needed ? My understanding is that visibility should only be applicable when building it as a shared library. I will try to do some investigation at some point over the next few days |
Thanks for considering this. I am building quill as a shared library and compile with hidden visibility to reduce binary sizes and to allow the compiler to optimize better. (https://gcc.gnu.org/wiki/Visibility) On a side note, other high performance packages (ex apache arrow) also explicitly declare which symbols to export (https://issues.apache.org/jira/browse/ARROW-233) |
A fix for this should be in master soon, I have also added a CI build to avoid having it breaking again in the future. Note that for maximum performance the recommendation is to compile Quill as a static library with LTO enabled and Thanks for reporting this and let me know if you have any other issues with the library |
Hello, thank you for developing this software.
When linking against quill built as a shared library with:
Using the example Logger.x.cpp:
The program will run without errors and output nothing. If you uncomment the pragmas then the program outputs the expected text.
Interestingly, adding
(void)quill::detail::LogManagerSingleton::instance().log_manager().thread_context_collection().local_thread_context();
before the LOG_INFO causes the output to be printed.The text was updated successfully, but these errors were encountered: