这是indexloc提供的服务,不要输入任何密码
Skip to content

Conversation

@h-vetinari
Copy link
Member

@h-vetinari h-vetinari commented Jul 31, 2024

This option landed in libcxx 15 (llvm/llvm-project@ba4f1e4) but I didn't notice it until now (but then, I also understood the abi part even less well than today... 😅)

See also docs.

@conda-forge-webservices
Copy link

conda-forge-webservices bot commented Jul 31, 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.

@conda-forge-admin
Copy link
Contributor

conda-forge-admin commented Dec 18, 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). This parser is not currently used by conda-forge, but may be in the future. We are collecting information to see which recipes are compatible with grayskull.
  • ℹ️ The recipe is not parsable by parser conda-recipe-manager. The recipe can only be automatically migrated to the new v1 format if it is parseable by conda-recipe-manager.

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

the only difference between clang & clangxx on osx is a dependence on libcxx-devel,
with a version matching that of clangxx; we cannot do that here because, by necessity,
we're building a newer libcxx-devel before we have a matching clangxx.
@h-vetinari
Copy link
Member Author

@mgorny, since you were involved on the upstream issue for this - any ideas what's going on here? I'm getting

dyld[29511]: Symbol not found: __ZTVN10__cxxabiv117__class_type_infoE
  Referenced from: <071C190C-8BFC-3957-84B7-1688F23DE737> /Users/runner/miniforge3/conda-bld/libcxx_and_libcxxabi_1750559514100/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/clang-20
  Expected in:     <74BCAF44-3A02-301E-8F16-B7DA6ED48C6F> /Users/runner/miniforge3/conda-bld/libcxx_and_libcxxabi_1750559514100/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/libc++.1.0.dylib
/bin/sh: line 4: 29511 Abort trap: 6           x86_64-apple-darwin13.4.0-clang++ -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fstack-protector-strong -O2 -pipe -stdlib=libc++ -fvisibility-inlines-hidden -fmessage-length=0 -isystem /Users/runner/miniforge3/conda-bld/libcxx_and_libcxxabi_1750559514100/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/include -fdebug-prefix-map=/Users/runner/miniforge3/conda-bld/libcxx_and_libcxxabi_1750559514100/test_tmp=/usr/local/src/conda/libcxx-testing-0.20.99 -fdebug-prefix-map=/Users/runner/miniforge3/conda-bld/libcxx_and_libcxxabi_1750559514100/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla=/usr/local/src/conda-prefix -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,/Users/runner/miniforge3/conda-bld/libcxx_and_libcxxabi_1750559514100/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib -L/Users/runner/miniforge3/conda-bld/libcxx_and_libcxxabi_1750559514100/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib -undefined dynamic_lookup -shared -fPIC Exception.cc -o libException.dylib

in our https://github.com/conda-forge/libcxx-testing-feedstock downstream tests. These tests are a bit weird

# test current libcxx against old clang builds;
# version correspondence is 0.{{ CLANG_MAJOR }}
# these tests are unusual in that they use -Wl,-rpath, but not -L.
- libcxx-testing 0.19 # [osx]

but a priori we should avoid breaking this.

@mgorny
Copy link

mgorny commented Jun 22, 2025

I'm afraid I don't know the issue offhand (and to be honest, I don't really want to try to figure it out, my brain is melting in this heat). Plus, I have no Darwin experience here, and everything related to libc++ is driver-specific, so Darwin driver has probably a different logic and different expectations than Linux or NetBSD drivers I've worked with.

If that's any help, here are the Gentoo ebuilds for respective libc++abi and libc++ versions:
https://gitweb.gentoo.org/repo/gentoo.git/tree/llvm-runtimes/libcxxabi/libcxxabi-20.1.7.ebuild
https://gitweb.gentoo.org/repo/gentoo.git/tree/llvm-runtimes/libcxx/libcxx-20.1.7.ebuild

In particular, our custom ldscripts may be relevant:
https://gitweb.gentoo.org/repo/gentoo.git/tree/llvm-runtimes/libcxx/libcxx-20.1.7.ebuild#n183

We need them since the Linux driver only passes -lcxx, and then the ldscript takes care of including libc++abi.so (or .a).

However, I'm afraid that's how far as my knowledge goes. Most of this hackery really predates me, and I've only been trying to keep it working the best I could.

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.

3 participants