Don't need to list out entrypoints one by one, we can now glob for them.
The glob is kind of a hack, libc.src.ctype.* works because we conveniently have the .. it would be intuitive if you wanted all the is* functions in ctype to write libc.src.ctype.is* but that would not work. I don't imagine this is a situation that would ever come up though.
A current issue is that string functions have many different targets like there is libc.src.string.bcmp and libc.src.string.bcmp_x86_64_opt_sse2, both define the bcmp symbol. I'm not sure how we want to deal with this. At present the targets with different compile options do not make their way to libllvmlibc.a.
I think you need to add set_property(GLOBAL APPEND PROPERTY TARGET_LLVMLIBC_USED_ENTRYPOINTS ${fq_target_name}) to this function.