[Bug 286342] libc++: compiling with -fmodules broken when including <locale>

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 25 Apr 2025 10:26:03 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=286342

            Bug ID: 286342
           Summary: libc++: compiling with -fmodules broken when including
                    <locale>
           Product: Base System
           Version: 15.0-CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: jgopensource@proton.me

The following two-line C++ program fails to compile with -fmodules on FreeBSD
15.0-CURRENT:
#include <locale>
int main() {}

The command executed is:
clang++ -fmodules demo.cpp

The error message is:
/usr/include/c++/v1/locale:730:68: error: use of undeclared identifier
'strtoll_l'

Verified on FreeBSD/arm64 15.0-CURRENT, snapshot from 2025-04-22.

Without -fmodules the program compiles successfully.

On FreeBSD 14.2 with or without -fmodules the program compiles successfully, so
this can be considered a regression.

Other headers in libc++ (for example <vector> and <iostream>) include <locale>
so the problem affects even programs that don't include <locale> directly.

-- 
You are receiving this mail because:
You are the assignee for the bug.