They are used by libRSDriver and libRS_internal which are VNDK-SP
libraries. Therefore, the EGL/GLES libs must be LLNDK or VNDK-SP. We
choose to make them as LLNDK since they already have stable ABIs (as
they are NDK).
In addition, two more functions of libEGL are exposed to vendors
eglQueryStringImplementationANDROID and eglDupNativeFenceFDANDROID are
non-NDK symbols but are being used by libgui, which is a library marked
with vendor_available:true. In order to provide the symbols to the
library, they are added to the map.txt file and tagged as "# vndk" so
that they are exposed only when built for vendor libs (and hidden when
built for NDK).
Furthermore, eglQueryStringImplementationANDROID is changed to C-symbol
in order to be mentioned in the map.txt file, where C++ mangled symbol
name can't be used.
Bug: 64425518
Test: BOARD_VNDK_VERSION=current m -j libRSDriver.vendor
Test: BOARD_VNDK_VERSION=current m -j libRS_internal.vendor
Change-Id: I4d5bcd5f72fb05a7908887f5192de70fd1d8c8f1
EGL/GLES libs are marked as vendor_available, otherwise vendors are not
able to use OpenGL. The libs were not simply declared as LL-NDK because
doing so causes the dual loading of libui.so in vendor processes;
platform version of libui.so is loaded since it is depended by libEGL.so
whereas there also is vendor version of libui.so in /system/lib/vndk.
When libEGL.so is built for vendors, 1) libgraphicsenv is removed from
its dependency list as the lib must not be available to vendors and 2)
eglGetNativeClientBufferANDROID is unusable since the function relies on
AHardwareBuffer_to_ANativeWindowBuffer which isn't available to vendor.
Bug: 37731063
Test: BOARD_VNDK_VERSION=current m -j libEGL.vendor
Test: BOARD_VNDK_VERSION=current m -j libGLESv2.vendor
Change-Id: I83a128b14a5d852bb0f2cd821a8e3f82c66a313f