[Nexus 9 Android Development] jolinnard:
I was looking into find a way to know all missing symbols, so I find https://github.com/Kostyan-nsk/symdep

If I run symdep in glgps, all this appear:

% ~/Downloads/symdep/symdep-x86_64 -i lib:lib64 bin/glgps
/DATA/android/flounder/dumps/system/bin/glgps
liblog.so: Not ELF64 class
libicuuc.so: Not ELF64 class
libssl.so: Not ELF64 class
libcrypto.so: Not ELF64 class
libutils.so: Not ELF64 class
libcutils.so: Not ELF64 class
libgui.so: Not ELF64 class
libbinder.so: Not ELF64 class
libhardware_legacy.so: Not ELF64 class
libc++.so: Not ELF64 class
libdl.so: Not ELF64 class
libc.so: Not ELF64 class
libm.so: Not ELF64 class

Cannot locate symbols:
__libc_init
__register_atfork
__cxa_atexit
__android_log_print
__stack_chk_fail
__stack_chk_guard
exit
fprintf
getopt
optind
stat
fseek
stderr
ftell
_ZdaPv
_ZdlPv
_Znam
_Znwm
__cxa_guard_acquire
__cxa_guard_release
__errno
__sprintf_chk
__strlen_chk
__strncpy_chk2
__write_chk
abort
access
atoi
chmod
chown
close
fclose
fopen
fputc
fwrite
getpid
memcpy
memset
open
property_get
strcmp
strcpy
strerror
strncmp
__snprintf_chk
__strrchr_chk
_exit
free
malloc
strncpy
strstr
gettimeofday
__cxa_pure_virtual
__read_chk
__strncpy_chk
cfsetispeed
cfsetospeed
connect
inet_addr
ioctl
socket
strtok_r
tcflush
tcgetattr
tcsetattr
usleep
closedir
opendir
readdir
localtime
__strcat_chk
acquire_wake_lock
release_wake_lock
__strncat_chk
atol
_ZN7android15elapsedRealtimeEv
__android_log_vprint
log
__fwrite_chk
__strcpy_chk
__umask_chk
fflush
mkdir
mktime
pow
unlink
__memchr_chk
memmove
memcmp
rand
srand
atof
sscanf
strtok
__strchr_chk
__vsnprintf_chk
isalnum
isprint
isspace
isxdigit
puts
strtol
strtoul
tolower
atan
cos
exp
sin
sqrt
localtime_r
pthread_equal
pthread_self
strnlen
mkfifo
fcntl
pthread_mutex_destroy
pthread_mutex_init
pthread_mutex_lock
pthread_mutex_trylock
pthread_mutex_unlock
__FD_ISSET_chk
__FD_SET_chk
select
SSL_connect
SSL_free
SSL_get_error
SSL_new
SSL_read
SSL_set_fd
SSL_shutdown
SSL_write
getsockopt
setsockopt
pthread_attr_init
pthread_attr_setdetachstate
pthread_create
pthread_join
__readlink_chk
fstat
execv
fork
fgets
pthread_getspecific
pthread_key_create
pthread_once
pthread_setspecific
toupper
sigaction
sigemptyset
waitpid
pthread_mutexattr_destroy
pthread_mutexattr_init
pthread_mutexattr_settype
pclose
popen
realloc
__fread_chk
feof
gettid
inet_aton
pipe
sleep
sigaddset
sigprocmask
fileno
fputs
fsync
readdir_r
rename
stdout
strdup
time
ASN1_STRING_data
ASN1_STRING_length
BIO_free
BIO_get_mem_ptr
BIO_new
BIO_s_mem
BIO_write
SSL_CTX_free
SSL_CTX_load_verify_locations
SSL_CTX_new
SSL_CTX_set_options
SSL_CTX_set_verify
SSLv23_client_method
SSLv3_client_method
TLSv1_1_client_method
TLSv1_2_client_method
TLSv1_client_method
X509_NAME_get_text_by_NID
X509_STORE_CTX_get_current_cert
X509_STORE_CTX_get_error
X509_STORE_CTX_get_error_depth
X509_get_ext_d2i
X509_get_subject_name
X509_print_ex
sk_free
sk_num
sk_value
strcasecmp
CRYPTO_num_locks
CRYPTO_set_id_callback
CRYPTO_set_locking_callback
ERR_error_string_n
ERR_get_error_line
SSL_library_init
SSL_load_error_strings
strndup
__android_log_buf_write
vprintf
frexp
frexpf
ldexp
ldexpf
acos
acosf
asin
asinf
atan2
atan2f
atanf
cosf
expf
fmod
fmodf
log10
log10f
logf
modf
modff
powf
sinf
sqrtf
tan
tanf
freeaddrinfo
gai_strerror
getaddrinfo
inet_ntoa
inet_ntop
pthread_attr_destroy
strcspn
strlen
putchar
fgetc

I was trying to understand why program says "Not ELF64 class"... So I listed all aarch64 executables and saw these:

% file system/bin/* | grep 64-bit
system/bin/fsck.f2fs: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, for GNU/Linux 3.7.0, BuildID[sha1]=156799a80e19348b906303ff65bd075b025b4f25, stripped
system/bin/glgps: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /system/bin/linker64, BuildID[md5/uuid]=aa50e55e9578ebb45c1bd6c9a879b94e, stripped

So, if I'm not wrong, glgps is still an arm64 executable in your last 32bit ROM. Do you managed to compile glgps for arm32?