Skip to content
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

Enable LOGURU_STACKTRACES cmake variable by default on non-windows platforms using glibc #254

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

skaravos
Copy link
Contributor

@skaravos skaravos commented Nov 4, 2024

Changes:

  • Fixes issue #248
  • CMake now performs a quick try_run() to inspect whether the currently detected C++ compiler is using glibc, and if so sets the LOGURU_STACKTRACES variable to TRUE by default to match the default value of the LOGURU_STACKTRACES macro inside loguru.cpp.

Notes:

  • This is required because the cmake file is currently setup to only link loguru to the dl library if the cmake variable LOGURU_STACKTRACES is TRUE. Unfortunately, the loguru.cpp file implicitly enables the stacktraces feature under certain conditions (glibc on non-windows) and the CMake file wasn't previously written to account for that. This meant that the dl library wasn't being linked even though stacktraces were enabled (in the .cpp file), causing a linking error.
    • undefined reference to 'dladdr'

Changes:
- Fixes issue [emilk#248](emilk#248)
- CMake now performs a quick `try_run()` to inspect whether the
  currently detected C++ compiler is using glibc, and if so sets the
  LOGURU_STACKTRACES variable to TRUE by default to match the default
  value of the LOGURU_STACKTRACES macro inside `loguru.cpp`.

Notes:
- This is required because the cmake file is currently setup to only
  link loguru to the `dl` library if the cmake variable
  LOGURU_STACKTRACES is TRUE.
  Unfortunately, the `loguru.cpp` file implicitly enables the
  stacktraces feature under certain conditions (glibc on non-windows)
  and the CMake file wasn't previously written to account for that.
  This meant that the `dl` library wasn't being linked even though
  stacktraces were enabled (in the .cpp file), causing a linking error.
  - `undefined reference to `dladdr'`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant