diff --git a/libs/libxx/libcxx/0001-libc-Fix-failures-with-GCC-14-92663.patch b/libs/libxx/libcxx/0001-libc-Fix-failures-with-GCC-14-92663.patch new file mode 100644 index 00000000000..9687db50221 --- /dev/null +++ b/libs/libxx/libcxx/0001-libc-Fix-failures-with-GCC-14-92663.patch @@ -0,0 +1,35 @@ +From cb7a03b41fff563c0cbb5145eed09f9b17edf9e2 Mon Sep 17 00:00:00 2001 +From: Nikolas Klauser +Date: Sat, 1 Jun 2024 12:20:41 +0200 +Subject: [PATCH] [libc++] Fix failures with GCC 14 (#92663) + +Fixes #91831 + +Signed-off-by: chao an + +--- + libcxx/include/__type_traits/remove_pointer.h | 5 +++++ + 11 files changed, 22 insertions(+), 8 deletions(-) + +diff --git libcxx/include/__type_traits/remove_pointer.h b/libcxx/include/__type_traits/remove_pointer.h +index 54390a1939f7..1048f67055a2 100644 +--- libcxx/include/__type_traits/remove_pointer.h ++++ libcxx/include/__type_traits/remove_pointer.h +@@ -23,8 +23,13 @@ struct remove_pointer { + using type _LIBCPP_NODEBUG = __remove_pointer(_Tp); + }; + ++# ifdef _LIBCPP_COMPILER_GCC ++template ++using __remove_pointer_t = typename remove_pointer<_Tp>::type; ++# else + template + using __remove_pointer_t = __remove_pointer(_Tp); ++# endif + #else + // clang-format off + template struct _LIBCPP_TEMPLATE_VIS remove_pointer {typedef _LIBCPP_NODEBUG _Tp type;}; + +-- +2.43.0 + diff --git a/libs/libxx/libcxx/CMakeLists.txt b/libs/libxx/libcxx/CMakeLists.txt index 6194abfa168..66460033764 100644 --- a/libs/libxx/libcxx/CMakeLists.txt +++ b/libs/libxx/libcxx/CMakeLists.txt @@ -52,7 +52,9 @@ if(CONFIG_LIBCXX) -p1 -d ${CMAKE_CURRENT_LIST_DIR}/libcxx < ${CMAKE_CURRENT_LIST_DIR}/0001-libcxx-fix-ld-errors.patch && patch -p1 -d ${CMAKE_CURRENT_LIST_DIR}/libcxx < - ${CMAKE_CURRENT_LIST_DIR}/0001-Fix-build-error-about-__GLIBC__.patch + ${CMAKE_CURRENT_LIST_DIR}/0001-Fix-build-error-about-__GLIBC__.patch && + patch -p1 -d ${CMAKE_CURRENT_LIST_DIR}/libcxx < + ${CMAKE_CURRENT_LIST_DIR}/0001-libc-Fix-failures-with-GCC-14-92663.patch DOWNLOAD_NO_PROGRESS true TIMEOUT 30) diff --git a/libs/libxx/libcxx/Make.defs b/libs/libxx/libcxx/Make.defs index 62f4fba8a7e..e5cc01af997 100644 --- a/libs/libxx/libcxx/Make.defs +++ b/libs/libxx/libcxx/Make.defs @@ -36,6 +36,7 @@ libcxx/libcxx: libcxx-$(LIBCXX_VERSION).src.tar.xz $(Q) patch -p0 < libcxx/0001-libcxx-remove-mach-time-h.patch -d libcxx $(Q) patch -p0 < libcxx/0001-libcxx-fix-ld-errors.patch -d libcxx $(Q) patch -p0 < libcxx/0001-Fix-build-error-about-__GLIBC__.patch -d libcxx + $(Q) patch -p0 < libcxx/0001-libc-Fix-failures-with-GCC-14-92663.patch -d libcxx endif