gecko-dev/build/moz.configure
Nathan Froyd a66584728f Bug 1579523 - fix visibility definition for future NDKs on Android; r=nalexander
A previous patch defined `_LIBCPP_HIDE_FROM_ABI` to the empty string.
This definition worked for normal (opt/debug) builds, but
PGO-instrumented builds fell over with some linker errors.  A closer
look at the definition of `_LIBCPP_HIDE_FROM_ABI`:

```
#ifndef _LIBCPP_HIDE_FROM_ABI_PER_TU
#  ifndef _LIBCPP_HIDE_FROM_ABI_PER_TU_BY_DEFAULT
#    define _LIBCPP_HIDE_FROM_ABI_PER_TU 0
#  else
#    define _LIBCPP_HIDE_FROM_ABI_PER_TU 1
#  endif
#endif

#ifndef _LIBCPP_HIDE_FROM_ABI
#  if _LIBCPP_HIDE_FROM_ABI_PER_TU
#    define _LIBCPP_HIDE_FROM_ABI _LIBCPP_HIDDEN _LIBCPP_INTERNAL_LINKAGE
#  else
#    define _LIBCPP_HIDE_FROM_ABI _LIBCPP_HIDDEN _LIBCPP_EXCLUDE_FROM_EXPLICIT_INSTANTIATION
#  endif
#endif
```

says that there are two macros involved there: one to set hidden visibility
(which we don't want), and another to exclude the function definition
from explicit instantiation.  The semantics of this are not obvious (the
clang documentation only documents this attribute in terms of C++
templates; the particular case we're interested in sets the attribute on
normal function definitions).  But roughly, what this does is that it
forces the compiler to see that an equivalent function definition is
provided external to the compilation unit, so it doesn't have to keep
the annotated function definition around.

Differential Revision: https://phabricator.services.mozilla.com/D45073

--HG--
extra : moz-landing-system : lando
2019-09-11 15:13:36 +00:00
..
android-ndk.configure Bug 1578825 - add a strict version check for the NDK version; r=nalexander 2019-09-04 19:20:39 +00:00
android-sdk.configure Bug 1515248 - Upgrade to Android-Gradle plugin 3.2.1 and build-tools 28.0.3. r=agi 2019-07-20 17:27:53 +00:00
arm.configure Bug 1556880 - Support GCC ARM preprocessor defines to detect the ARM target. r=chmanchester 2019-06-05 02:53:01 +00:00
bindgen.configure Bug 1576703 - Update cbindgen. r=boris 2019-08-26 23:18:46 +00:00
checks.configure Backed out changeset f593f5a5bfa3 (bug 1555346) for build bustages on llvm-profdata. CLOSED TREE 2019-05-29 19:14:25 +03:00
compile-checks.configure Bug 1547038 - ignore unrelated errors when checking compiler flags with ccache; r=chmanchester 2019-04-30 20:04:22 +00:00
compilers-util.configure Bug 1510897 - Separate Android C++ flags from the other Android toolchain flags. r=nalexander 2019-03-27 22:05:04 +00:00
flags.configure Bug 1560666 - turn off C++17 aligned allocation support; r=glandium 2019-08-14 01:37:34 +00:00
headers.configure Bug 1512504 - Remove support for MSVC. r=froydnj 2019-02-14 21:45:27 +00:00
init.configure Bug 1575804 - Don't decode the result from get_cmd_output. r=chmanchester 2019-08-26 22:05:51 +00:00
java.configure Bug 1528314 - Make configure find an appropriate java via /usr/libexec/java_home on macOS. r=nalexander 2019-07-02 23:25:04 +00:00
keyfiles.configure
lto-pgo.configure Bug 1580028 - Always merge PGO profile data in the run task; r=firefox-build-system-reviewers,chmanchester 2019-09-10 21:56:15 +00:00
memory.configure Bug 1574388 - Implement PHC on Mac. r=gsvelto,glandium 2019-08-25 23:16:05 +00:00
node.configure Bug 1575135 - Return an unicode path for nodejs. r=nalexander 2019-08-20 21:24:35 +00:00
old.configure Bug 844509 - Don't encode environment in get_cmd_output and old_configure. r=nalexander 2019-08-20 22:12:23 +00:00
pkg.configure Bug 1575135 - Change get_cmd_output to emit unicode strings. r=nalexander 2019-08-20 16:43:15 +00:00
rust.configure Bug 1578596 - Require rustc 1.37. r=firefox-build-system-reviewers,mshal 2019-09-04 19:08:28 +00:00
toolchain.configure Bug 1579523 - fix visibility definition for future NDKs on Android; r=nalexander 2019-09-11 15:13:36 +00:00
tup.configure
util.configure Bug 1473498 - [configure] Fix ImportError in util.configure under Python 3, r=glandium 2019-08-27 02:55:18 +00:00
warnings.configure Bug 1573501 - Disable -Wtautological-type-limit-compare r=froydnj 2019-08-21 15:32:26 +00:00
windows.configure Bug 1575135 - Use functions from util.configure instead of subprocess.*. r=nalexander 2019-08-20 16:42:16 +00:00