HomeFreeBSD

Apply libc++ fix for firefox visibility push/pop issue

Description

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: https://reviews.llvm.org/D121639

Details

Provenance
dimAuthored on Mar 15 2022, 8:32 PM
Parents
R10:d781ede639f2: Merge llvm-project release/14.x llvmorg-14.0.0-rc2-12-g09546e1b5103
Branches
Unknown
Tags
Unknown