Skip to content

Conversation

@oursland
Copy link

Checklist

  • Used a personal fork of the feedstock to propose changes
  • Bumped the build number (if the version is unchanged)
  • Reset the build number to 0 (if the version changed)
  • Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
  • Ensured the license file is being packaged.

@conda-forge-admin
Copy link
Contributor

conda-forge-admin commented Dec 17, 2024

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.

I do have some suggestions for making it better though...

For recipe/meta.yaml:

  • ℹ️ The recipe is not parsable by parser conda-souschef (grayskull). Your recipe may not receive automatic updates and/or may not be compatible with conda-forge's infrastructure. Please check the logs for more information and ensure your recipe can be parsed.
  • ℹ️ The recipe is not parsable by parser conda-recipe-manager. Your recipe may not receive automatic updates and/or may not be compatible with conda-forge's infrastructure. Please check the logs for more information and ensure your recipe can be parsed.

This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/12398584718. Examine the logs at this URL for more detail.

@oursland
Copy link
Author

Dang. I put this work in hoping to get Boost.Stacktrace with support of stacktrace_from_exceptions on macOS, but apparently it only builds on Linux and Windows as libc++-based systems result in a memory leak.

I am uncertain if this PR is worth pursuing. It brings in libbacktrace by hacking in static linking in the Jamfile.v2 on the #[unix] platforms.

@h-vetinari
Copy link
Member

but apparently it only builds on Linux and Windows as libc++-based systems result in a memory leak.

Where does this conclusion/information come from?

I am uncertain if this PR is worth pursuing. It brings in libbacktrace by hacking in static linking in the Jamfile.v2 on the #[unix] platforms.

Yeah, we don't want to do static linkage. Why couldn't it work with the regular shared approach?

@oursland
Copy link
Author

Where does this conclusion/information come from?

https://github.com/boostorg/stacktrace/blob/develop/src/from_exception.cpp#L167

Yeah, we don't want to do static linkage. Why couldn't it work with the regular shared approach?

The executables do not have a LC_RPATH set and cannot resolve the location of libbacktrace.dylib. I'm certain enough hacking of the Jamfile.v2 would resolve the issue, but unfortunately the aforementioned limitation makes this less useful than desired.

I'm looking at making a conda-forge recipe for cpptrace, which does not appear to suffer the same limitations.

@mike-jn
Copy link

mike-jn commented Jun 15, 2025

Hi,

I wasn't able to get boost-stacktrace to build in my cmake project -- does this PR mean that the conda-forge build of boost is simply missing it?

@h-vetinari
Copy link
Member

h-vetinari commented Jun 15, 2025

Hi @mike-jn; indeed we don't build with backtrace support at the moment.

This is from the logs of the most recent linux build

    - boost.stacktrace.addr2line : yes [2]
    - boost.stacktrace.backtrace : no [2]  # <--- !!!
    - boost.stacktrace.backtrace : no [4]  # <--- !!!
    - boost.stacktrace.basic   : no [2]
    - boost.stacktrace.from_exception : yes
    - boost.stacktrace.from_exception : yes
    - boost.stacktrace.windbg  : no [2]
    - boost.stacktrace.windbg  : no [4]
    - boost.stacktrace.windbg_cached : no [2]
    - boost.stacktrace.windbg_cached : no [4]
[...]
[2] gcc-13/release/x86_64/cxxstd-20-iso/python-3.10/threading-multi/visibility-hidden
[3] gcc-13/release/x86_64/cxxstd-20-iso/link-static/python-3.10/threading-multi/visibility-hidden
[4] gcc-13/release/x86_64/build-no/cxxstd-20-iso/python-3.10/threading-multi/visibility-hidden

This is not as much a conscious choice as a reflection of the fact that the build system checks for the presence of backtrace (which we simply hadn't added to the dependencies here because it's not necessary otherwise), and no-one (before @oursland) ran into the issue of needing the backtrace portion from boost.

PRs are welcome!

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.

4 participants