[Bug 274706] The C++ header 'execution' is missing

[email protected]
Newsgroups gmane.os.freebsd.devel.standards
Message-ID <[email protected]/bugzilla/>
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274706

--- Comment #4 from Mark Millard <[email protected]> ---
(In reply to Mark Millard from comment #3)

The file "execution" is not missing from 13.2-STABLE as of what I just checked.
It is in an expected sort of place:

# uname -apKU
FreeBSD generic 13.2-STABLE FreeBSD 13.2-STABLE stable/13-n256634-c4dfacd0b3c3
GENERIC arm64 aarch64 1302508 1302508

# find /usr/include -name '*execution*' -print
/usr/include/c++/v1/execution

The actual "problem" looks to be that other files are missing:

# grep -r _LIBCPP_HAS_PARALLEL_ALGORITHMS /usr/include
/usr/include/c++/v1/algorithm:#if defined(_LIBCPP_HAS_PARALLEL_ALGORITHMS) &&
_LIBCPP_STD_VER >= 17
/usr/include/c++/v1/execution:#if defined(_LIBCPP_HAS_PARALLEL_ALGORITHMS) &&
_LIBCPP_STD_VER >= 17
/usr/include/c++/v1/memory:#if defined(_LIBCPP_HAS_PARALLEL_ALGORITHMS) &&
_LIBCPP_STD_VER >= 17
/usr/include/c++/v1/numeric:#if defined(_LIBCPP_HAS_PARALLEL_ALGORITHMS) &&
_LIBCPP_STD_VER >= 17
/usr/include/c++/v1/__config_site:/* #undef _LIBCPP_HAS_PARALLEL_ALGORITHMS */

and has /usr/include/c++/v1/__config_site with:

#ifndef _LIBCPP___CONFIG_SITE
#define _LIBCPP___CONFIG_SITE

#define _LIBCPP_ABI_VERSION 1
#define _LIBCPP_ABI_NAMESPACE __1
/* #undef _LIBCPP_ABI_FORCE_ITANIUM */
/* #undef _LIBCPP_ABI_FORCE_MICROSOFT */
/* #undef _LIBCPP_HAS_NO_THREADS */
/* #undef _LIBCPP_HAS_NO_MONOTONIC_CLOCK */
/* #undef _LIBCPP_HAS_MUSL_LIBC */
/* #undef _LIBCPP_HAS_THREAD_API_PTHREAD */
/* #undef _LIBCPP_HAS_THREAD_API_EXTERNAL */
/* #undef _LIBCPP_HAS_THREAD_API_WIN32 */
/* #undef _LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL */
/* #undef _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS */
#define _LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS
/* #undef _LIBCPP_NO_VCRUNTIME */
/* #undef _LIBCPP_TYPEINFO_COMPARISON_IMPLEMENTATION */
/* #undef _LIBCPP_HAS_NO_FILESYSTEM_LIBRARY */
/* #undef _LIBCPP_HAS_PARALLEL_ALGORITHMS */
/* #undef _LIBCPP_HAS_NO_RANDOM_DEVICE */
/* #undef _LIBCPP_HAS_NO_LOCALIZATION */
/* #undef _LIBCPP_HAS_NO_FSTREAM */
/* #undef _LIBCPP_HAS_NO_WIDE_CHARACTERS */
#define _LIBCPP_ENABLE_ASSERTIONS_DEFAULT 0
/* #undef _LIBCPP_ENABLE_DEBUG_MODE */

. . .

#endif // _LIBCPP___CONFIG_SITE

so _LIBCPP_HAS_PARALLEL_ALGORITHMS is not defined by default. That
in turn disables execution's content.

(That source looks to predate the -fexperimental-library
mechanism.)

# c++ -std=c++17 -D_LIBCPP_HAS_PARALLEL_ALGORITHMS execution_test.cpp 
In file included from execution_test.cpp:1:
In file included from /usr/include/c++/v1/mutex:192:
In file included from /usr/include/c++/v1/__mutex_base:20:
In file included from /usr/include/c++/v1/system_error:154:
In file included from /usr/include/c++/v1/string:576:
In file included from /usr/include/c++/v1/string_view:1025:
/usr/include/c++/v1/algorithm:1909:12: fatal error: '__pstl_algorithm' file not
found
#  include <__pstl_algorithm>
           ^~~~~~~~~~~~~~~~~~
1 error generated.

# find /usr/include -name '*pstl*' -print
# 

But:

# grep -r pstl /usr/include/c++/v1/
/usr/include/c++/v1/algorithm:#  include <__pstl_algorithm>
/usr/include/c++/v1/execution:#   include <__pstl_execution>
/usr/include/c++/v1/memory:#   include <__pstl_memory>
/usr/include/c++/v1/numeric:#   include <__pstl_numeric>

So it is the __pstl_* material that is missing, not execution itself.

I've not checked, but it may be that the c++ language was updated
to LLVM16 without updating libc++ to also be based on LLVM16's
assoicated libc++ source.

I will note that:

# uname -apKU
FreeBSD CA72-16Gp-ZFS 15.0-CURRENT FreeBSD 15.0-CURRENT #120
main-n266130-d521abdff236-dirty: Tue Oct 24 18:26:23 PDT 2023    
root@CA72-16Gp-ZFS:/usr/obj/BUILDs/main-CA72-nodbg-clang/usr/main-src/arm64.aarch64/sys/GENERIC-NODBG-CA72
arm64 aarch64 1500002 1500002

has the same basic status:

# find /usr/include -name '*pstl*' -print
#

# grep -r pstl /usr/include/c++/v1/
/usr/include/c++/v1/numeric:#   include <__pstl_numeric>
/usr/include/c++/v1/memory:#   include <__pstl_memory>
/usr/include/c++/v1/algorithm:#  include <__pstl_algorithm>
/usr/include/c++/v1/execution:#   include <__pstl_execution>

-- 
You are receiving this mail because:
You are the assignee for the bug.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.