first of all, you should pull some libraries from android device.
list of it:
ld-android.so libc.so libdl.so libdl_android.so liblog.so libm.so
after that you can compile your program with this command:
arm-none-linux-gnueabihf-gcc hello.c -fPIE -pie -o hello_android_gcc2 -Wall -Wl,--dynamic-linker=/system/bin/linker -nostdlib -nodefaultlibs -L. -I. ./ld-android.so ./libdl_android.so ./libc.so ./libm.so ./libdl.so ./libdl.so
we use dynamic-linker flag to force ELF file to use /system/bin/linker as interpreter linker because in android device the ld-linux.so is not exist.
we use -nostdlib because as default of arm-none-linux-gnueabihf-gcc compiler it use libc.so.6 that is glibc standard library that not exist on android instead of that bionic is standard c library in /system/lib/libc.so
https://stackoverflow.com/questions/8610103/how-do-you-cross-compile-elf-executables-for-android