Bug 1370133 - add workarounds for _LIBCPP_ALWAYS_INLINE bustedness; r=chmanchester

_LIBCPP_ALWAYS_INLINE and its EXCEPT_GCC49 counterpart are broken in the
same fashion as _LIBCPP_INLINE_VISIBILITY and can be fixed in exactly
the same way.
This commit is contained in:
Nathan Froyd 2017-07-05 09:32:29 -04:00
Родитель 3b6501dd91
Коммит d6bc4f9e80
1 изменённых файлов: 8 добавлений и 3 удалений

Просмотреть файл

@ -991,13 +991,18 @@ set_config('COLOR_CFLAGS', color_cflags)
# we are properly managing visibility ourselves) and avoid this whole mess. # we are properly managing visibility ourselves) and avoid this whole mess.
# Note that we don't need to do this with gcc, as libc++ detects gcc and # Note that we don't need to do this with gcc, as libc++ detects gcc and
# effectively does the same thing we are doing here. # effectively does the same thing we are doing here.
#
# _LIBCPP_ALWAYS_INLINE needs similar workarounds, since it too declares
# hidden visibility.
@depends(c_compiler, target) @depends(c_compiler, target)
def libcxx_inline_visibility(c_compiler, target): def libcxx_override_visibility(c_compiler, target):
if c_compiler.type == 'clang' and target.os == 'Android': if c_compiler.type == 'clang' and target.os == 'Android':
return '' return ''
set_define('_LIBCPP_INLINE_VISIBILITY', libcxx_inline_visibility) set_define('_LIBCPP_INLINE_VISIBILITY', libcxx_override_visibility)
set_define('_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49', libcxx_inline_visibility) set_define('_LIBCPP_INLINE_VISIBILITY_EXCEPT_GCC49', libcxx_override_visibility)
set_define('_LIBCPP_ALWAYS_INLINE', libcxx_override_visibility)
set_define('_LIBCPP_ALWAYS_INLINE_EXCEPT_GCC49', libcxx_override_visibility)
@depends(target, check_build_environment) @depends(target, check_build_environment)
def visibility_flags(target, env): def visibility_flags(target, env):