commit:     18a05d2fff4c7dd9c720930b06ca184efb1622e2
Author:     Benda Xu <heroxbd <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 13 14:30:15 2018 +0000
Commit:     Benda XU <heroxbd <AT> gentoo <DOT> org>
CommitDate: Mon Aug 13 14:37:32 2018 +0000
URL:        https://gitweb.gentoo.org/proj/android.git/commit/?id=18a05d2f

sys-libs/bionic: port bionic to gentoo toolchain.

  binutils-2.29 errors on overlapping eh-frame-hdr, so disable it.
  The ELF field is only useful for stack trace.

  Explicitly link against libgcc_s for Unwind. The android prebuilt
  toolchain has bundled libgcc_s into libgcc.

  Remove the visibility hack on libutils introduced in

    
https://android.googlesource.com/platform/system/core/+/96ccb85fa226d74b82ba0e6f69e5439f4a81adf3

  glibc-2.26 does not ship RPC anymore, symlink tirpc
  because soong pretends that it cannot access anything
  outside the work directory.

  Generate llvm-tblgen, google has rewritten it into a
  completely different program, despite the name collision
  with upstream llvm.

  Remove binary build of demangle and zlib.

  Remove all windows host builds.

Package-Manager: Portage-2.3.40, Repoman-2.3.9

 sys-libs/bionic/Manifest                           | 10 +++-
 sys-libs/bionic/bionic-8.1.0_p41.ebuild            | 39 +++++++++++--
 sys-libs/bionic/files/amd64-soong.variables        |  3 -
 sys-libs/bionic/files/bionic-binutils-port.patch   | 36 ++++++++++++
 sys-libs/bionic/files/bionic-glibc-port.patch      | 65 +++++++++++++++++++++-
 .../bionic/files/bionic-no-visibility-hack.patch   | 13 +++++
 sys-libs/bionic/files/bionic-unwind-gcc_s.patch    | 40 +++++++++++++
 7 files changed, 195 insertions(+), 11 deletions(-)

diff --git a/sys-libs/bionic/Manifest b/sys-libs/bionic/Manifest
index 79f2b9c..f7e5c6a 100644
--- a/sys-libs/bionic/Manifest
+++ b/sys-libs/bionic/Manifest
@@ -1,5 +1,8 @@
-AUX amd64-soong.variables 1816 BLAKE2B 
1e9517739ddb81abf79643dbc0dd5d9431a43dcd94d28f8cc75f1ba13961768a882379bda3b58dba3c290010e8b64a2d4e63497080561fe84fb0ccd2e80695bc
 SHA512 
97f9bddd86c228c75a53ece728b44fb890d737dc2ef422ae7c074169f657e66e084523d7efbb5f0eb37823a2a58e8bfb4aa66e09b5e2a6c6f3be1ff114dec0c5
-AUX bionic-glibc-port.patch 1103 BLAKE2B 
5459570f68469ac854735103474ff94097183dafe25d82beae968ff265be32df1c3dd8f0607ef4e44572ac5dc5ebb0e6a9dab1a7f6f7b3887cf792f59bb4916d
 SHA512 
f84f613dad932d42170247d8754fea43825a064c1f5689a0f9fd889a925606eb388e44dbd8c89132641fbfeab4d759ef48d5df7ecef42b933f8ac7477538711a
+AUX amd64-soong.variables 1720 BLAKE2B 
ecbbc9404f714b47a64a6c31f29a4ba8fe4e803182ad59bbf786af42dd0e4818812707137f6144373cc88673c1fb861266e1a7633ff3a11c712ba87e786c6985
 SHA512 
bca04367b2535184cff7bcffe3c43cb2dd1090f373aa8352c19566f7f408970e3bf80c67a692d62189c9c6411fa455bf8d4d60fb6fd41be31cffebaddb86f341
+AUX bionic-binutils-port.patch 1152 BLAKE2B 
a50612ed7aecadc117bbe1e0b5f4675431d61b368ace7a77fade9c296403efa2aa60be2ee25d3c26a7ba7b8e0f3ce091af73d8432147c0fe5219fb1b193c0d06
 SHA512 
d2a89e8fc4cb7f4cdb6abbdf2536368c8f4a4340d1197977b9626df89445ba77d233e1760c569916e5da18b76b17e84ce2d8cbac1cb03e67d05ca8b1eeed46d8
+AUX bionic-glibc-port.patch 4112 BLAKE2B 
26471da03d2471f0b3674fd26d2e7f7893631421366d7e2bb0c15f1228fa944e0195c3159d3f62e4cbc3fc0133063164eb4f72552d08728375b6c56b1d703512
 SHA512 
183eb20f64f203d7c814551d63acb351c34d91c4c1be8caa9ce88a6f5b8fad2f3ee2fcabc62e33a966cb5a082265ccb2b7cc32f44174bd644e5714c6116da2e5
+AUX bionic-no-visibility-hack.patch 456 BLAKE2B 
659b5d940d198bb2d7bb0b8464abe6dcb1339f76ea46b8f62cd376d2e55a97cdde303a3d5e1c02b7a8a0aa56f47b5172e89c4b035a256b2e52a4c126148208e4
 SHA512 
604ac7152d74725980dc19f18427a6afbceb845be9e016e4ecec0778e636fb85c7c34075550edf9cf227939fb46f82b2a1903c27b2bdb6aacc3909798948ce51
+AUX bionic-unwind-gcc_s.patch 1463 BLAKE2B 
aa2caad4b0400a48e25eb53c726d01806751d06fe06d819e16109cbe180cb7c987f545ad808cf3ee2784c743b9eafcb1234657c1c55884d7546278a79061b812
 SHA512 
23f2ad6c934cee8636a284b2010791dc4a04122b09faf3013b3e87cb0015a87083df67081ca2e6b18fd7ffb54df5929313ab4b482739f1028c6a31d7d93c8889
 DIST bionic-8.1.0_p41.tar.gz 3517518 BLAKE2B 
4c5121cda0e3562b3b65d8e7fa621c6e231973077d582b7d4abf861d03533fd4881901bd48ec971d5baaf155dc8f1a92eb62068a910199fa751fb3001d20d0ba
 SHA512 
b110b46e9f67174f8f30f3b8da0e0fa02c42f2dbb5ced6a9ba9ad948d6cd0a82c1850e8a8d4cd5f3b81ad286e9eb400236fb5320ab02b72f44a0510829cd3e6d
 DIST build-8.1.0_p41.tar.gz 2587534 BLAKE2B 
5a0eb0dab1d41c60b8eb2e14c5f6e82584ed57e63541fcfc1087f841d8206bb45302b341cff5754ca641e392ed3cccca7ab4609932620fe100aba37ff61679b1
 SHA512 
a4b0f24800055cc9e433b578c9e1ae7f511959512459cb916b63fd3ec9312fe272858117f15beea28a60464a04fd8fd17a7bfb6772b346edecfb387aad89a97d
 DIST compiler-rt-8.1.0_p41.tar.gz 2377259 BLAKE2B 
09104aba4ef1dc9ce18609cae395f3849d3df6dbb9b9759c3a1532759afd52d7af37475df21ae2db3bbea0891f9974785833405c3731d0082e749c304a86bc89
 SHA512 
9472ca3fed7a0215f6bd7506f5ba722891c65f9a88a4296c57a69bd038854ad416b7ce433d11451408c632ec23b3f19c4a3fc6373a7955c27563d7786301b6de
@@ -9,8 +12,9 @@ DIST libcxx-8.1.0_p41.tar.gz 2346631 BLAKE2B 
ba37b446d722108dba6d970e07f3ce63ed4
 DIST libcxxabi-8.1.0_p41.tar.gz 709877 BLAKE2B 
31ccf771a7397e9207bac222b9ac24bdba07103508426782f743dd0b7766702eac6db22edcfe214135b41f4bec7b12d148fae62fce27348c38fecadc3b127659
 SHA512 
7c26527f569464e93893e4fe31032b18bf9553ef1bd695a0177bdf4e6a8462040a6694f2b87eee0265f777da9ca5f4ebf2be302c6aaec86bbbfbf2f41785bd96
 DIST libunwind-8.1.0_p41.tar.gz 444441 BLAKE2B 
e02b2a5f9be17ffa61d607f4e7a0f878d77d3f26f195f9f2a5f6cdb043508aabefff2f18b1e6844700d50b984bc2331bd4f897c1bda73a9edc05f23e656b89f2
 SHA512 
e47282f05baf3accb87b8d7164790929789e84ec4c2542c1da6553ead10558529f4a15d478f43970f4c5ca0ddbd4ce86d96e2aa0c4b859fff24f398e6779ca5d
 DIST libunwind_llvm-8.1.0_p41.tar.gz 90999 BLAKE2B 
3ebd73a228513548ee9f6f84ab22190b9eed4b29b28acde5ed9e7dc8211691629a04980b04712d50fe3f1690e2e4e4df823c818ddd8e23448d4840029bb7acd2
 SHA512 
2a433a5c929b65e4738b9507a807c005aab22ba303676145806d000db9a21b04f6589282a15f36a4be725099501eccfce07349f5734871d59f09e1f732a6dae3
+DIST llvm-8.1.0_p41.tar.gz 26253027 BLAKE2B 
50687a47c6a271d0881f6a115d25a698c3fc86d9477cafe361147beaaf4b3c2dd8599391287141f20efa2db8e0be183eed2d44744269b50471c1364a2f6f7687
 SHA512 
dbc7848cbc7d48c5b4d02fcc855aea57bf1922e8c116cd4f8424826d6aa49569474298f371561360cc2af6050c175b90296eec359443a9a81f65a8cf309fd27b
 DIST lzma-8.1.0_p41.tar.gz 733693 BLAKE2B 
733b0995778adce01af50b9f22276ec4a54d3c73ff7b9709a6b3c0327dd89c0a785cb991dbd3343e4e7b9c5eb9009afaea3d78db993a48e1dcbaa9807fdaf7ff
 SHA512 
4cebceabb9096c19ccf3ab25ef27d4ce6f1655e431c6381f888345613f310509864135bc0ee7fd78dc5f1170521effea2113f149e71cca56a07254566755c0c5
 DIST safe-iop-8.1.0_p41.tar.gz 10800 BLAKE2B 
02959e9a0f02259362bfbe840eae50bdfa429b09de8f56f8beec2f99697eabb4a0a71a175a79a52f943facded257a68bff383a53acbe61249b76fe2ff95911e1
 SHA512 
8b717408601194b76a6a44fec5bd62ff2121b89f5f8fea7b3eee7ca46c122e346f8d73d92f5b34575318b1015e74186affda1e1aca7b53ac9c3c303d4e8e7710
 DIST zlib-8.1.0_p41.tar.gz 607311 BLAKE2B 
b175cf9d4548df24cfd587abea62ee4c3dcee56f6a68b4044c4b1419be148ab4542c42cb19ce0d773b247ceaf3193afca385170674c9d6d2f92a4df8f6d346ba
 SHA512 
0d587729c1210ee6efa6bb7cdac723da71a9c56252be67f6973e80c3597dbb7f2c96ea093078e580d97709de5e8d8fabf92aae0594f382b95e2d9559e43953d2
-EBUILD bionic-8.1.0_p41.ebuild 2514 BLAKE2B 
f42b461e16eb666a1c9165642f3d9e8f0e0c89fbe1245f0c4e2b85ccaebdd693566bfafec6c8477f379c59e304d3747bf1f98e43ad6a793b76e690e79671786e
 SHA512 
85879143e1e44943094737d9a4d615864fbfaa563946118c63642031d800628f71032c39bac4faddfc9f6b8c3d499635729d1e3997342661e9f795cea27530f2
+EBUILD bionic-8.1.0_p41.ebuild 3428 BLAKE2B 
6f2a309f12e200acfd42eaa5f5eab13720e15476c0015e785136ce5b06e613724e338dd3a6d210515b20c5769e33ed4d18a942065647bea0ac5444993849e119
 SHA512 
0caf25d16d3d06768578c981fed5cdc0bfecb20767f3b8bac95f130c77776613693ec84de5d74dc936e6b921937b934b3fd63d1a67f334b7cbed8c6ba8992dd3
 MISC metadata.xml 242 BLAKE2B 
08b4880748ab6d685ce28f65a9f6cc5ad62deff8f85d4e0a55a3dc12aa8bd63cf1de56b28ff89929e054a6831e223d6ef0207e8b19c6887f09ee22621bd76928
 SHA512 
ae57aaeecc094cffa640d88329a0baa6c2b0703330d84f6406f3f68d8bb9b724d2e19a8478be8708de284db9ac452f95f225a9f79cd1c5d0236aa2f9935b9b21

diff --git a/sys-libs/bionic/bionic-8.1.0_p41.ebuild 
b/sys-libs/bionic/bionic-8.1.0_p41.ebuild
index 434bff6..fcd6271 100644
--- a/sys-libs/bionic/bionic-8.1.0_p41.ebuild
+++ b/sys-libs/bionic/bionic-8.1.0_p41.ebuild
@@ -9,7 +9,8 @@ DESCRIPTION="Lightweight libc of Android."
 HOMEPAGE="https://android.googlesource.com/platform/bionic";
 KEYWORDS="~amd64"
 
-SM=( ${PN} build 
external/{safe-iop,libcxx{,abi},compiler-rt,libunwind{,_llvm},lzma,zlib,jemalloc}
 system/core )
+SM=( ${PN} build 
external/{llvm,safe-iop,libcxx{,abi},compiler-rt,libunwind{,_llvm},lzma,zlib,jemalloc}
+        system/core )
 
 for m in ${SM[@]}; do
        
SRC_URI+="http://aosp.airelinux.org/platform/${m}/+archive/android-${PV/p/r}.tar.gz
 -> ${m##*/}-${PV}.tar.gz"$'\n'
@@ -18,9 +19,15 @@ SLOT=0
 
 LICENSE="Apache-2.0"
 
-DEPEND="dev-util/soong"
+DEPEND="dev-util/soong
+       dev-libs/libpcre2
+       net-libs/libtirpc"
 
-PATCHES=( "${FILESDIR}"/bionic-glibc-port.patch )
+PATCHES=( "${FILESDIR}"/bionic-glibc-port.patch
+                 "${FILESDIR}"/bionic-binutils-port.patch
+                 "${FILESDIR}"/bionic-unwind-gcc_s.patch
+                 "${FILESDIR}"/bionic-no-visibility-hack.patch
+               )
 
 src_unpack() {
        for m in ${SM[@]}; do
@@ -39,10 +46,19 @@ src_prepare() {
 
        cp "${EPREFIX}"/usr/share/soong/root.bp Android.bp || die
        ln -s "${EPREFIX}"/usr/share/soong build || die
+       ln -s "${EPREFIX}"/usr/include/tirpc external/ || die
 
        # Remove ndk libraries. But keep ndk headers, because they are the
        # headers of the GNU/Linux sense.
        sed -e '/ndk_library/,/subdir/{/subdir/p;d}' -i bionic/libc/Android.bp 
|| die
+       # only llvm headers and llvm_tblgen are needed.
+       sed -e '/^force_build_llvm/,$d' -i external/llvm/Android.bp || die
+       cat >> external/llvm/Android.bp <<EOF
+subdirs = [ "utils/TableGen", "lib/TableGen", "lib/Support" ]
+EOF
+
+       # -O0 is not compatible with -DFORTIFY_SOURCE
+       sed -e '/cflags.*O0/d' -i system/core/libbacktrace/Android.bp || die
 
        local core_keep=( base liblog debuggerd libziparchive libbacktrace 
libcutils demangle \
                                                   Android.bp include libutils 
libsystem libvndksupport )
@@ -53,12 +69,22 @@ src_prepare() {
        done
        rm -r system/core_delete || die
 
+       # do not need binaries for a libc.
+       sed -e '/cc_binary {/,$d' -i system/core/demangle/Android.bp \
+               -i external/zlib/Android.bp || die
+
        find "${WORKDIR}" -name Android.bp -exec sed -e '/cc_test.*{/,$d' \
                 -e "/\ssdk_version/d" \
                 -e '/ndk_library/,$d' \
                 -i {} \; || die
+
+       # remove windows recipes.
+       for f in $(find "${WORKDIR}" -name Android.bp); do
+               pcre2grep -M -v '\swindows: (\{(?>[^{}]|(?1))*\})' < "${f}" > 
"${f}".tmp || die
+               mv "${f}".tmp "${f}" || die
+       done
+
        sed -e '/ANDROIDMK TRANSLATION ERROR/,$d' -i 
external/compiler-rt/lib/asan/Android.bp || die
-       sed -e '/llvm-headers/d' -i system/core/libbacktrace/Android.bp || die
        mkdir out || die
        echo "{}" >> out/soong.config || die
        cp "${FILESDIR}"/${ARCH}-soong.variables out/soong.variables || die
@@ -75,3 +101,8 @@ src_configure() {
 src_compile() {
        eninja -f out/build.ninja -v
 }
+
+src_install() {
+       insinto /
+       doins -r out/target/product/*/system
+}

diff --git a/sys-libs/bionic/files/amd64-soong.variables 
b/sys-libs/bionic/files/amd64-soong.variables
index 9b1aebd..0f112ec 100644
--- a/sys-libs/bionic/files/amd64-soong.variables
+++ b/sys-libs/bionic/files/amd64-soong.variables
@@ -53,9 +53,6 @@
     "HostArch": "x86_64",
     "HostSecondaryArch": "x86",
 
-    "CrossHost": "windows",
-    "CrossHostArch": "x86",
-    "CrossHostSecondaryArch": "x86_64",
     "Safestack": false,
     "EnableCFI": true,
     "IntegerOverflowExcludePaths": ["",""],

diff --git a/sys-libs/bionic/files/bionic-binutils-port.patch 
b/sys-libs/bionic/files/bionic-binutils-port.patch
new file mode 100644
index 0000000..09f98ab
--- /dev/null
+++ b/sys-libs/bionic/files/bionic-binutils-port.patch
@@ -0,0 +1,36 @@
+Index: bionic-8.1.0_p41/bionic/libc/Android.bp
+===================================================================
+--- bionic-8.1.0_p41.orig/bionic/libc/Android.bp
++++ bionic-8.1.0_p41/bionic/libc/Android.bp
+@@ -1800,6 +1800,7 @@ cc_library {
+     shared_libs: ["libdl"],
+     whole_static_libs: ["libc_common", "libjemalloc"],
+ 
++    ldflags: ["-Wl,--no-eh-frame-hdr"],
+     nocrt: true,
+ 
+     arch: {
+Index: bionic-8.1.0_p41/bionic/libm/Android.bp
+===================================================================
+--- bionic-8.1.0_p41.orig/bionic/libm/Android.bp
++++ bionic-8.1.0_p41/bionic/libm/Android.bp
+@@ -277,6 +277,7 @@ cc_library {
+         },
+     },
+ 
++    ldflags: ["-Wl,--no-eh-frame-hdr"],
+     // arch-specific settings
+     arch: {
+         arm: {
+Index: bionic-8.1.0_p41/bionic/linker/Android.bp
+===================================================================
+--- bionic-8.1.0_p41.orig/bionic/linker/Android.bp
++++ bionic-8.1.0_p41/bionic/linker/Android.bp
+@@ -78,6 +78,7 @@ cc_binary {
+         "-shared",
+         "-Wl,-Bsymbolic",
+         "-Wl,--exclude-libs,ALL",
++        "-Wl,--no-eh-frame-hdr"
+     ],
+ 
+     cflags: [

diff --git a/sys-libs/bionic/files/bionic-glibc-port.patch 
b/sys-libs/bionic/files/bionic-glibc-port.patch
index c1baaed..0edab91 100644
--- a/sys-libs/bionic/files/bionic-glibc-port.patch
+++ b/sys-libs/bionic/files/bionic-glibc-port.patch
@@ -2,7 +2,15 @@ Index: 
bionic-8.1.0_p41/system/core/libbacktrace/include/backtrace/Backtrace.h
 ===================================================================
 --- 
bionic-8.1.0_p41.orig/system/core/libbacktrace/include/backtrace/Backtrace.h
 +++ bionic-8.1.0_p41/system/core/libbacktrace/include/backtrace/Backtrace.h
-@@ -68,7 +68,6 @@ struct __darwin_ucontext;
+@@ -19,6 +19,7 @@
+ 
+ #include <inttypes.h>
+ #include <stdint.h>
++#include <ucontext.h>
+ 
+ #include <string>
+ #include <vector>
+@@ -68,7 +69,6 @@ struct __darwin_ucontext;
  typedef __darwin_ucontext ucontext_t;
  #else
  struct ucontext;
@@ -22,3 +30,58 @@ Index: bionic-8.1.0_p41/external/libcxx/include/__locale
  #elif defined(_LIBCPP_HAS_MUSL_LIBC)
  # include <support/musl/xlocale.h>
  #endif // __GLIBC__ || __APPLE__ || __FreeBSD__ || __sun__ || __EMSCRIPTEN__ 
|| __IBMCPP__
+Index: bionic-8.1.0_p41/external/compiler-rt/lib/sanitizer_common/Android.bp
+===================================================================
+--- bionic-8.1.0_p41.orig/external/compiler-rt/lib/sanitizer_common/Android.bp
++++ bionic-8.1.0_p41/external/compiler-rt/lib/sanitizer_common/Android.bp
+@@ -23,7 +23,8 @@ cc_library_static {
+     host_supported: true,
+     clang: true,
+ 
+-    include_dirs: ["external/compiler-rt/lib"],
++    include_dirs: ["external/compiler-rt/lib",
++                  "external/tirpc"],
+     cppflags: [
+         "-fvisibility=hidden",
+         "-fno-exceptions",
+Index: 
bionic-8.1.0_p41/external/compiler-rt/lib/sanitizer_common/sanitizer_linux.h
+===================================================================
+--- 
bionic-8.1.0_p41.orig/external/compiler-rt/lib/sanitizer_common/sanitizer_linux.h
++++ 
bionic-8.1.0_p41/external/compiler-rt/lib/sanitizer_common/sanitizer_linux.h
+@@ -30,8 +30,8 @@ struct linux_dirent;
+ 
+ // Syscall wrappers.
+ uptr internal_getdents(fd_t fd, struct linux_dirent *dirp, unsigned int 
count);
+-uptr internal_sigaltstack(const struct sigaltstack* ss,
+-                          struct sigaltstack* oss);
++uptr internal_sigaltstack(const void* ss,
++                          void* oss);
+ uptr internal_sigprocmask(int how, __sanitizer_sigset_t *set,
+     __sanitizer_sigset_t *oldset);
+ 
+Index: 
bionic-8.1.0_p41/external/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
+===================================================================
+--- 
bionic-8.1.0_p41.orig/external/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
++++ 
bionic-8.1.0_p41/external/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
+@@ -273,7 +273,7 @@ static int TracerThread(void* argument)
+ 
+   // Alternate stack for signal handling.
+   InternalScopedBuffer<char> handler_stack_memory(kHandlerStackSize);
+-  struct sigaltstack handler_stack;
++  stack_t handler_stack;
+   internal_memset(&handler_stack, 0, sizeof(handler_stack));
+   handler_stack.ss_sp = handler_stack_memory.data();
+   handler_stack.ss_size = kHandlerStackSize;
+Index: 
bionic-8.1.0_p41/external/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc
+===================================================================
+--- 
bionic-8.1.0_p41.orig/external/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc
++++ bionic-8.1.0_p41/external/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc
+@@ -282,7 +282,7 @@ void InitializePlatform() {
+ int ExtractResolvFDs(void *state, int *fds, int nfd) {
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+   int cnt = 0;
+-  __res_state *statp = (__res_state*)state;
++  struct __res_state *statp = (struct __res_state*)state;
+   for (int i = 0; i < MAXNS && cnt < nfd; i++) {
+     if (statp->_u._ext.nsaddrs[i] && statp->_u._ext.nssocks[i] != -1)
+       fds[cnt++] = statp->_u._ext.nssocks[i];

diff --git a/sys-libs/bionic/files/bionic-no-visibility-hack.patch 
b/sys-libs/bionic/files/bionic-no-visibility-hack.patch
new file mode 100644
index 0000000..326fffc
--- /dev/null
+++ b/sys-libs/bionic/files/bionic-no-visibility-hack.patch
@@ -0,0 +1,13 @@
+Index: bionic-8.1.0_p41/system/core/libutils/Android.bp
+===================================================================
+--- bionic-8.1.0_p41.orig/system/core/libutils/Android.bp
++++ bionic-8.1.0_p41/system/core/libutils/Android.bp
+@@ -99,8 +99,6 @@ cc_library {
+                 "Trace.cpp",
+             ],
+ 
+-            cflags: ["-fvisibility=protected"],
+-
+             shared_libs: [
+                 "libbacktrace",
+                 "libcutils",

diff --git a/sys-libs/bionic/files/bionic-unwind-gcc_s.patch 
b/sys-libs/bionic/files/bionic-unwind-gcc_s.patch
new file mode 100644
index 0000000..4df2a5c
--- /dev/null
+++ b/sys-libs/bionic/files/bionic-unwind-gcc_s.patch
@@ -0,0 +1,40 @@
+Index: bionic-8.1.0_p41/external/libcxx/Android.bp
+===================================================================
+--- bionic-8.1.0_p41.orig/external/libcxx/Android.bp
++++ bionic-8.1.0_p41/external/libcxx/Android.bp
+@@ -87,6 +87,7 @@ cc_library_shared {
+     target: {
+         android: {
+             shared_libs: ["libdl"],
++            ldflags: ["-Wl,-lgcc_s"],
+         },
+         android_arm: {
+             static_libs: ["libunwind_llvm"],
+Index: bionic-8.1.0_p41/external/libunwind/Android.bp
+===================================================================
+--- bionic-8.1.0_p41.orig/external/libunwind/Android.bp
++++ bionic-8.1.0_p41/external/libunwind/Android.bp
+@@ -404,6 +404,7 @@ cc_library {
+     target: {
+         android: {
+             shared_libs: ["libdl"],
++            ldflags: ["-Wl,-lgcc_s"],
+         },
+         linux: {
+             ldflags: ["-nostdlib"],
+Index: bionic-8.1.0_p41/bionic/linker/Android.bp
+===================================================================
+--- bionic-8.1.0_p41.orig/bionic/linker/Android.bp
++++ bionic-8.1.0_p41/bionic/linker/Android.bp
+@@ -148,9 +148,11 @@ cc_binary {
+     target: {
+         android: {
+             static_libs: ["libdebuggerd_client"],
++            ldflags: ["-Wl,-lgcc_s"],
+         },
+         android64: {
+             cflags: ["-DTARGET_IS_64_BIT"],
++            ldflags: ["-Wl,-lgcc_s"],
+         },
+         linux_bionic: {
+             cflags: ["-DTARGET_IS_64_BIT"],

Reply via email to