Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6b86dfb1 authored by Ryan Prichard's avatar Ryan Prichard
Browse files

Stop exporting symbols from app_process

Any symbols exported from the executable override everything else in
every linker namespace. Previously, app_process exported the
signal/sigchain API, but that interposition is now handled by
libsigchain.so.

Bug: http://b/190100879
Test: `nm -D --defined-only app_process{32,64}` shows no symbols
Change-Id: I1ab1fc700c34e91535c3e679a471debbb4eb71e3
parent 46b35eba
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -29,7 +29,16 @@ cc_binary {
        },
    },

    ldflags: ["-Wl,--export-dynamic"],
    // Symbols exported from the executable in .dynsym interpose symbols in every
    // linker namespace, including an app's classloader namespace. Provide this
    // version script to prevent unwanted interposition.
    //
    // By default, the static linker doesn't export most of an executable's symbols,
    // but it will export a symbol that appears to override a symbol in a needed DSO.
    // This commonly happens with C++ vaguely-linked entities, such as template
    // functions or type_info variables. Hence, a version script is needed even for
    // an executable.
    version_script: "version-script.txt",

    shared_libs: [
        "libandroid_runtime",
+4 −0
Original line number Diff line number Diff line
{
  local:
    *;
};