I want to build audioserver(/frameworks/av/media/audioserver) to 64-bit, and refer to the instructions in Android.mk (/frameworks/av/media/audioserver/Android.mk)
I add AUDIOSERVER_MULTILIB :=64 in device.mk, but it can't startup, check the log and find the following error.
01-20 09:44:31.637 2581 2581 F linker : CANNOT LINK EXECUTABLE "/system/bin/audioserver": unsupported ELF TLS DT entry in "/system/lib64/libaudioflinger.so"
Also, use FILE command to check if it's 64 bit:
#audioserver
console:/system/bin # file audioserver audioserver: ELF shared object, 64-bit LSB arm64, dynamic (/system/bin/linker64), for Android 28, BuildID=01599, stripped
#.so
console:/system/lib64 # file libaudioflinger.so libaudioflinger.so: ELF shared object, 64-bit LSB arm64, for Android 28, BuildID=fd41f, stripped
in /frameworks/av/media/audioserver/Android.mk
# If AUDIOSERVER_MULTILIB in device.mk is non-empty then it is used to control
# the LOCAL_MULTILIB for all audioserver exclusive libraries.
# This is relevant for 64 bit architectures where either or both
# 32 and 64 bit libraries may be built.
#
# AUDIOSERVER_MULTILIB may be set as follows:
# 32 to build 32 bit audioserver libraries and 32 bit audioserver.
# 64 to build 64 bit audioserver libraries and 64 bit audioserver.
# both to build both 32 bit and 64 bit libraries,
# and use primary target architecture (32 or 64) for audioserver.
# first to build libraries and audioserver for the primary target architecture only.
# <empty> to build both 32 and 64 bit libraries and 32 bit audioserver.it should be work normally when specifying AUDIOSERVER_MULTILIB := 64