libbinder_ndk: R system users can run on Q devices

This is in response to an awareness of a requirement that we compile
client code of this library and run it on Q device and that code should
also use R APIs when the same binary is used in R. Most likely this
should result in new infrastructure, but it's not unlikely that
infrastructure will be equivalent to weak pointers.

This change makes AIBinder_markSystemStability as a weak pointer and
only uses it when it is available (on R+ devices).

Luckily, only system clients have this requirement now. Since there are
no vendor clients, we can leave AIBinder_markVendorStability strong.
These are the more important bits to set for stability purposes.

Test: boot, test mapping, readelf:
     6: 00000000     0 FUNC    WEAK   DEFAULT  UND
     AIBinder_markSystemStability@LIBBINDER_NDK30 (4)

Bug: 144465080
Change-Id: I3d76be2903433a6b180b46aea6592d446be1c076
(cherry picked from commit db685b1281e8c14df5f0a7dc0cd3b4884784164e)
1 file changed