Skip to content

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

Open
skaravos wants to merge 1 commit intoemilk:masterfrom
skaravos:fix-cmake-dladdr-error
Open

Enable LOGURU_STACKTRACES cmake variable by default on non-windows platforms using glibc#254
skaravos wants to merge 1 commit intoemilk:masterfrom
skaravos:fix-cmake-dladdr-error

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