One of the problems that I have pulled from the logcat of my SlimRoms 6.0.1 build for the Samsung Galaxy S4, T-Mobile (JFLTETMO, SGH-M919) ( https://alaskalinuxuser3.ddns.net/2016/05/24/pulling-a-logcat/ ) was this error:
05-24 20:40:15.036 228 228 E libEGL : load_driver(/vendor/lib/egl/libEGL_adreno.so): dlopen failed: cannot locate symbol “RSA_verify_PKCS1_PSS” referenced by “/system/vendor/lib/egl/libEGL_adreno.so”…
After doing some research, I stumbled accross this post on XDA: http://forum.xda-developers.com/showpost.php?p=63579207&postcount=465 and decided that I should check if it was in my SlimRoms 6 build. Sure enough, it was missing. So I downloaded the files off of github and put them into the appropriate folders in my source. I decided before doing a full build, I should test that module to make sure it builds properly. One great thing about make, and the use of it in Android build environments, is that you simply change directory to that folder, and tell it to make a module. See it in action here:
[CODE]
alaskalinuxuser@alaskalinuxuser-HP-Compaq-6715b-FY288UC-ABA:~/Documents/projects/phones/compile/slimroms6$ cd external/stlport/
alaskalinuxuser@alaskalinuxuser-HP-Compaq-6715b-FY288UC-ABA:~/Documents/projects/phones/compile/slimroms6/external/stlport$ mm
|==========================================|
| ___________________________|
| / ________________ad8888ba, |
| / / 8P’ “Y8 |
| / / _ _ d8 |
| / / | (_) 88,dd888bb, |
| / / | |_ _ __ ___ 88P’ `8b |
| / / | | | ‘_ ` _ \ 88 d8 |
|________/ / | | | | | | | |88a a8P |
|_________/ |_|_|_| |_| |_| “Y88888P” |
|==========================================|
PLATFORM_VERSION_CODENAME=UNOFFICIAL
PLATFORM_VERSION=6.0.1
SLIM_VERSION=Slim-6.0.1.alpha.0.1-UNOFFICIAL-20160526-1013
TARGET_PRODUCT=slim_jfltetmo
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=krait
TARGET_2ND_ARCH=
TARGET_2ND_ARCH_VARIANT=
TARGET_2ND_CPU_VARIANT=
HOST_ARCH=x86_64
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.16.0-30-generic-x86_64-with-Ubuntu-14.04-trusty
HOST_BUILD_TYPE=release
BUILD_ID=MOB30J
OUT_DIR=/home/alaskalinuxuser/Documents/projects/phones/compile/slimroms6/out
============================================
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/lib/libidl.so:system/lib/libidl.so ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/lib/libqcci_legacy.so:system/lib/libqcci_legacy.so ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/vendor/lib/libqmi_cci.so:system/vendor/lib/libqmi_cci.so ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/lib/libqmi_client_qmux.so:system/lib/libqmi_client_qmux.so ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/vendor/lib/libqmi_common_so.so:system/vendor/lib/libqmi_common_so.so ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/vendor/lib/libqmi_csi.so:system/vendor/lib/libqmi_csi.so ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/vendor/lib/libqmi_encdec.so:system/vendor/lib/libqmi_encdec.so ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/lib/libqmiservices.so:system/lib/libqmiservices.so ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/lib/libqmi.so:system/lib/libqmi.so ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/bin/efsks:system/bin/efsks ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/bin/ks:system/bin/ks ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/bin/qcks:system/bin/qcks ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/bin/qmuxd:system/bin/qmuxd ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/bin/rild:system/bin/rild ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/bin/rmt_storage:system/bin/rmt_storage ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/lib/libatparser.so:system/lib/libatparser.so ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/lib/libfactoryutil.so:system/lib/libfactoryutil.so ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/lib/libomission_avoidance.so:system/lib/libomission_avoidance.so ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/lib/libreference-ril.so:system/lib/libreference-ril.so ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/lib/libsecril-client.so:system/lib/libsecril-client.so ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/vendor/lib/libdiag.so:system/vendor/lib/libdiag.so ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/lib/libdsutils.so:system/lib/libdsutils.so ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/lib/libnetmgr.so:system/lib/libnetmgr.so ignored.
PRODUCT_COPY_FILES vendor/samsung/jf-common/proprietary/lib/libril-qcril-hook-oem.so:system/lib/libril-qcril-hook-oem.so ignored.
No private recovery resources for TARGET_DEVICE jfltetmo
make: Entering directory `/home/alaskalinuxuser/Documents/projects/phones/compile/slimroms6’
Import includes file: /home/alaskalinuxuser/Documents/projects/phones/compile/slimroms6/out/target/product/jfltetmo/obj/SHARED_LIBRARIES/libstlport_intermediates/import_includes
target thumb C++: libstlport <= external/stlport/src/dll_main.cpp
In file included from external/stlport/src/dll_main.cpp:46:
In file included from external/stlport/stlport/deque:36:
external/stlport/stlport/stl/_deque.h:492:32: warning: unused parameter ‘__n’ [-Wunused-parameter]
void _M_initialize(size_type __n, const value_type& __val = _STLP_DEFAULT_CONSTRUCTED(_Tp)) {
^
external/stlport/stlport/stl/_deque.h:859:45: warning: unused parameter ‘__val’ [-Wunused-parameter]
void _M_fill_initialize(const value_type& __val, const __true_type& /*_TrivialInit*/)
^
2 warnings generated.
target thumb C++: libstlport <= external/stlport/src/fstream.cpp
target thumb C++: libstlport <= external/stlport/src/strstream.cpp
target thumb C++: libstlport <= external/stlport/src/sstream.cpp
target thumb C++: libstlport <= external/stlport/src/ios.cpp
target thumb C++: libstlport <= external/stlport/src/stdio_streambuf.cpp
target thumb C++: libstlport <= external/stlport/src/istream.cpp
target thumb C++: libstlport <= external/stlport/src/ostream.cpp
target thumb C++: libstlport <= external/stlport/src/iostream.cpp
target thumb C++: libstlport <= external/stlport/src/codecvt.cpp
target thumb C++: libstlport <= external/stlport/src/collate.cpp
target thumb C++: libstlport <= external/stlport/src/ctype.cpp
external/stlport/src/ctype.cpp:284:14: warning: comparison of unsigned expression >= 0 is always true [-Wtautological-compare]
return c >= 0 && size_t(c) < upperBound;
~ ^ ~
1 warning generated.
target thumb C++: libstlport <= external/stlport/src/monetary.cpp
target thumb C++: libstlport <= external/stlport/src/num_get.cpp
target thumb C++: libstlport <= external/stlport/src/num_put.cpp
target thumb C++: libstlport <= external/stlport/src/num_get_float.cpp
external/stlport/src/num_get_float.cpp:699:5: warning: ‘register’ storage class specifier is deprecated [-Wdeprecated-register]
register unsigned negate_exp = 0;
^~~~~~~~~
external/stlport/src/num_get_float.cpp:700:5: warning: ‘register’ storage class specifier is deprecated [-Wdeprecated-register]
register int e = 0;
^~~~~~~~~
external/stlport/src/num_get_float.cpp:805:5: warning: ‘register’ storage class specifier is deprecated [-Wdeprecated-register]
register int e = 0;
^~~~~~~~~
3 warnings generated.
target thumb C++: libstlport <= external/stlport/src/num_put_float.cpp
target thumb C++: libstlport <= external/stlport/src/numpunct.cpp
target thumb C++: libstlport <= external/stlport/src/time_facets.cpp
target thumb C++: libstlport <= external/stlport/src/messages.cpp
target thumb C++: libstlport <= external/stlport/src/locale.cpp
target thumb C++: libstlport <= external/stlport/src/locale_impl.cpp
target thumb C++: libstlport <= external/stlport/src/locale_catalog.cpp
target thumb C++: libstlport <= external/stlport/src/facets_byname.cpp
target thumb C++: libstlport <= external/stlport/src/complex.cpp
target thumb C++: libstlport <= external/stlport/src/complex_io.cpp
target thumb C++: libstlport <= external/stlport/src/complex_trig.cpp
target thumb C++: libstlport <= external/stlport/src/string.cpp
target thumb C++: libstlport <= external/stlport/src/bitset.cpp
target thumb C++: libstlport <= external/stlport/src/allocators.cpp
In file included from external/stlport/src/allocators.cpp:32:
In file included from external/stlport/stlport/pthread_alloc:38:
external/stlport/stlport/stl/_pthread_alloc.h:115:51: warning: unused parameter ‘a’ [-Wunused-parameter]
pthread_allocator(const pthread_allocator<_Tp>& a) _STLP_NOTHROW {}
^
external/stlport/stlport/stl/_pthread_alloc.h:206:54: warning: unused parameter ‘a2’ [-Wunused-parameter]
const pthread_allocator<_T2>& a2)
^
2 warnings generated.
target thumb C: libstlport <= external/stlport/src/c_locale.c
target thumb C: libstlport <= external/stlport/src/cxa.c
target SharedLib: libstlport (/home/alaskalinuxuser/Documents/projects/phones/compile/slimroms6/out/target/product/jfltetmo/obj/SHARED_LIBRARIES/libstlport_intermediates/LINKED/libstlport.so)
target Pack Relocations: libstlport (/home/alaskalinuxuser/Documents/projects/phones/compile/slimroms6/out/target/product/jfltetmo/obj/SHARED_LIBRARIES/libstlport_intermediates/PACKED/libstlport.so)
INFO: Compaction : 0 bytes
INFO: Too few relocations to pack after alignment
target Symbolic: libstlport (/home/alaskalinuxuser/Documents/projects/phones/compile/slimroms6/out/target/product/jfltetmo/symbols/system/lib/libstlport.so)
Export includes file: external/stlport/Android.mk — /home/alaskalinuxuser/Documents/projects/phones/compile/slimroms6/out/target/product/jfltetmo/obj/SHARED_LIBRARIES/libstlport_intermediates/export_includes
target Strip: libstlport (/home/alaskalinuxuser/Documents/projects/phones/compile/slimroms6/out/target/product/jfltetmo/obj/lib/libstlport.so)
Notice file: external/stlport/NOTICE — /home/alaskalinuxuser/Documents/projects/phones/compile/slimroms6/out/target/product/jfltetmo/obj/NOTICE_FILES/src//system/lib/libstlport.so.txt
Install: /home/alaskalinuxuser/Documents/projects/phones/compile/slimroms6/out/target/product/jfltetmo/system/lib/libstlport.so
Import includes file: /home/alaskalinuxuser/Documents/projects/phones/compile/slimroms6/out/target/product/jfltetmo/obj/STATIC_LIBRARIES/libstlport_static_intermediates/import_includes
target thumb C++: libstlport_static <= external/stlport/src/dll_main.cpp
In file included from external/stlport/src/dll_main.cpp:46:
In file included from external/stlport/stlport/deque:36:
external/stlport/stlport/stl/_deque.h:492:32: warning: unused parameter ‘__n’ [-Wunused-parameter]
void _M_initialize(size_type __n, const value_type& __val = _STLP_DEFAULT_CONSTRUCTED(_Tp)) {
^
external/stlport/stlport/stl/_deque.h:859:45: warning: unused parameter ‘__val’ [-Wunused-parameter]
void _M_fill_initialize(const value_type& __val, const __true_type& /*_TrivialInit*/)
^
2 warnings generated.
target thumb C++: libstlport_static <= external/stlport/src/fstream.cpp
target thumb C++: libstlport_static <= external/stlport/src/strstream.cpp
target thumb C++: libstlport_static <= external/stlport/src/sstream.cpp
target thumb C++: libstlport_static <= external/stlport/src/ios.cpp
target thumb C++: libstlport_static <= external/stlport/src/stdio_streambuf.cpp
target thumb C++: libstlport_static <= external/stlport/src/istream.cpp
target thumb C++: libstlport_static <= external/stlport/src/ostream.cpp
target thumb C++: libstlport_static <= external/stlport/src/iostream.cpp
target thumb C++: libstlport_static <= external/stlport/src/codecvt.cpp
target thumb C++: libstlport_static <= external/stlport/src/collate.cpp
target thumb C++: libstlport_static <= external/stlport/src/ctype.cpp
external/stlport/src/ctype.cpp:284:14: warning: comparison of unsigned expression >= 0 is always true [-Wtautological-compare]
return c >= 0 && size_t(c) < upperBound;
~ ^ ~
1 warning generated.
target thumb C++: libstlport_static <= external/stlport/src/monetary.cpp
target thumb C++: libstlport_static <= external/stlport/src/num_get.cpp
target thumb C++: libstlport_static <= external/stlport/src/num_put.cpp
target thumb C++: libstlport_static <= external/stlport/src/num_get_float.cpp
external/stlport/src/num_get_float.cpp:699:5: warning: ‘register’ storage class specifier is deprecated [-Wdeprecated-register]
register unsigned negate_exp = 0;
^~~~~~~~~
external/stlport/src/num_get_float.cpp:700:5: warning: ‘register’ storage class specifier is deprecated [-Wdeprecated-register]
register int e = 0;
^~~~~~~~~
external/stlport/src/num_get_float.cpp:805:5: warning: ‘register’ storage class specifier is deprecated [-Wdeprecated-register]
register int e = 0;
^~~~~~~~~
3 warnings generated.
target thumb C++: libstlport_static <= external/stlport/src/num_put_float.cpp
target thumb C++: libstlport_static <= external/stlport/src/numpunct.cpp
target thumb C++: libstlport_static <= external/stlport/src/time_facets.cpp
target thumb C++: libstlport_static <= external/stlport/src/messages.cpp
target thumb C++: libstlport_static <= external/stlport/src/locale.cpp
target thumb C++: libstlport_static <= external/stlport/src/locale_impl.cpp
target thumb C++: libstlport_static <= external/stlport/src/locale_catalog.cpp
target thumb C++: libstlport_static <= external/stlport/src/facets_byname.cpp
target thumb C++: libstlport_static <= external/stlport/src/complex.cpp
target thumb C++: libstlport_static <= external/stlport/src/complex_io.cpp
target thumb C++: libstlport_static <= external/stlport/src/complex_trig.cpp
target thumb C++: libstlport_static <= external/stlport/src/string.cpp
target thumb C++: libstlport_static <= external/stlport/src/bitset.cpp
target thumb C++: libstlport_static <= external/stlport/src/allocators.cpp
In file included from external/stlport/src/allocators.cpp:32:
In file included from external/stlport/stlport/pthread_alloc:38:
external/stlport/stlport/stl/_pthread_alloc.h:115:51: warning: unused parameter ‘a’ [-Wunused-parameter]
pthread_allocator(const pthread_allocator<_Tp>& a) _STLP_NOTHROW {}
^
external/stlport/stlport/stl/_pthread_alloc.h:206:54: warning: unused parameter ‘a2′ [-Wunused-parameter]
const pthread_allocator<_T2>& a2)
^
2 warnings generated.
target thumb C: libstlport_static <= external/stlport/src/c_locale.c
target thumb C: libstlport_static <= external/stlport/src/cxa.c
Export includes file: external/stlport/Android.mk — /home/alaskalinuxuser/Documents/projects/phones/compile/slimroms6/out/target/product/jfltetmo/obj/STATIC_LIBRARIES/libstlport_static_intermediates/export_includes
target StaticLib: libstlport_static (/home/alaskalinuxuser/Documents/projects/phones/compile/slimroms6/out/target/product/jfltetmo/obj/STATIC_LIBRARIES/libstlport_static_intermediates/libstlport_static.a)
make: Leaving directory `/home/alaskalinuxuser/Documents/projects/phones/compile/slimroms6’
#### make completed successfully (01:10 (mm:ss)) ####
[/CODE]
That’s a lot of mumbo-jumbo, but the cool part was that in 70 seconds I knew that it could properly build that module. So, I switched to the root folder and started another compilation:
[CODE]
alaskalinuxuser@alaskalinuxuser-HP-Compaq-6715b-FY288UC-ABA:~/Documents/projects/phones/compile/slimroms6/external/stlport$ croot
alaskalinuxuser@alaskalinuxuser-HP-Compaq-6715b-FY288UC-ABA:~/Documents/projects/phones/compile/slimroms6$ brunch jfltetmo
[/CODE]
Let’s see what that does for us.
Linux – Keep it simple.