git: ba5cf9c09f93 - stable/13 - Apply libc++ fix for firefox visibility push/pop issue

From: Dimitry Andric <>
Date: Sat, 04 Jun 2022 12:01:17 UTC
The branch stable/13 has been updated by dim:


commit ba5cf9c09f933bdcdb0fd415f3f3582bdf7ca8ec
Author:     Dimitry Andric <>
AuthorDate: 2022-03-15 20:32:06 +0000
Commit:     Dimitry Andric <>
CommitDate: 2022-06-04 11:59:53 +0000

    Apply libc++ fix for firefox visibility push/pop issue
    Merge commit 7ab1ab0db401 from llvm git (by Dimitry Andric):
      [libc++] Make __dir_stream visibility declaration consistent
      The class `__dir_stream` is currently declared in two places: as a
      top-level forward declaration in `directory_iterator.h`, and as a friend
      declaration in class `directory_entry`, in `directory_entry.h`.
      The former has a `_LIBCPP_HIDDEN` attribute, but the latter does not,
      causing the Firefox build to complain about the visibility not matching
      the previous declaration. This is because Firefox plays games with
      pushing and popping visibility.
      Work around this by making both `__dir_stream` declarations consistently
      use `_LIBCPP_HIDDEN`.
      Reviewed By: ldionne, philnik, #libc
      Differential Revision:
    (cherry picked from commit a1f13cbcbb26465d8b54c18a294896add63d6536)
 contrib/llvm-project/libcxx/include/__filesystem/directory_entry.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/llvm-project/libcxx/include/__filesystem/directory_entry.h b/contrib/llvm-project/libcxx/include/__filesystem/directory_entry.h
index 91dd1a214588..95e45c02307f 100644
--- a/contrib/llvm-project/libcxx/include/__filesystem/directory_entry.h
+++ b/contrib/llvm-project/libcxx/include/__filesystem/directory_entry.h
@@ -249,7 +249,7 @@ public:
   friend class directory_iterator;
   friend class recursive_directory_iterator;
-  friend class __dir_stream;
+  friend class _LIBCPP_HIDDEN __dir_stream;
   enum _CacheType : unsigned char {