Build overview
The most common question is how/why files are built multiple times, and what LOCAL_ONLY and REMOTE_ONLY do.
This is the LOCAL_ONLY && !REMOTE_ONLY build file. It is built with L*.c files, which generally just set the appropriate flags and then include G*.c files. They have generic U prefix for UNW_OBJ().
This is the REMOTE version of the library. Generally you will build twice for your current platform, so !LOCAL_ONLY and !REMOTE_ONLY. If arch != your current build platform (i.e. we are compiling to cross-platform unwind), you get !LOCAL_ONLY && REMOTE_ONLY, and there is no libunwind.[so|a].
The REMOTE library of the current platform is linked to the LOCAL version of the library. The REMOTE library has prefixes like UARCH, because most platforms have many things in common, such as dwarf and elf parsing, even though there are differences like different registers, etc.