Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 944482 - LLVM profiles: add separate libstdc++ profiles
Summary: LLVM profiles: add separate libstdc++ profiles
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Profiles (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo Quality Assurance Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: future-profile
  Show dependency tree
 
Reported: 2024-11-22 15:13 UTC by Sam James
Modified: 2025-04-15 10:48 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-11-22 15:13:11 UTC
We need to rename the existing LLVM profiles to stop people using them when they "just" want to use an LLVM toolchain, not realising they're losing ABI compatibility (see bug 944478).

Such profiles will require gcc as they will use libstdc++.

Do we want to even have such profiles? Is there a point? How do we justify having such profiles (we wouldn't have a profile for different non-ABI breaking CFLAGS, for example)?

I suppose there's value in having LLVM profiles which allow people to enable using clang, or maybe there isn't and we should just tell people to set it manually instead.

The issue being that if we're using libstdc++, people can't depclean gcc, so the value of it is questionable (not useless, but it's not definitely valuable either).

Thoughts?
Comment 1 Larry the Git Cow gentoo-dev 2025-02-11 06:24:15 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/sites/www.git/commit/?id=20f7b720b707e1c057c72c94a224ce53c7559572

commit 20f7b720b707e1c057c72c94a224ce53c7559572
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2025-02-11 06:22:45 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2025-02-11 06:22:45 +0000

    downloads: add warning for LLVM stages
    
    The "LLVM stages" right now are really "pure LLVM" stages which means
    they're not ABI compatible with the regular ones (which use libstdc++
    rather than libc++/libcxx) and you cannot use GCC as a fallback
    if something fails to build.
    
    This can be reworked if/when we have libstdc++-based LLVM stages (see
    bug #944482 and the related bug #944478).
    
    Bug: https://bugs.gentoo.org/944478
    Bug: https://bugs.gentoo.org/944482
    Closes: https://bugs.gentoo.org/944483
    Signed-off-by: Sam James <sam@gentoo.org>

 _includes/downloads/amd64-advanced.html | 10 ++++++++++
 _includes/downloads/arm64-advanced.html | 10 ++++++++++
 2 files changed, 20 insertions(+)
Comment 2 Justus Ranvier 2025-03-08 14:11:21 UTC
I see value in having explicit libc++ profiles as I've hacked them together myself for various reasons over the years.

Any use case I have for an LLVM profile is 90% about libc++ and 10% about using clang/clang++ as a system compiler.

Specifically when trying to debug applications with thread sanitizer you need an environment where everything linked to the application, including the standard library, is instrumented. In cases where I need that I will use Portage's prefix feature to build a minimal system in a directory I can chroot into which is based on libc++ and where everything is compiled with the sanitizers I want to use.