Neither pthreads nor a dynamic linker are required for libc. pthreads is part of the POSIX standard, not the C standard, and many libc implementations over the years have not supported dynamic linking.
To give you an idea, here's a chip used by at least one of the products developed by the author:
To give you an idea, here's a chip used by at least one of the products developed by the author:
https://www.st.com/en/microcontrollers-microprocessors/stm32...
16KB of ram. You're not going to see any linking on this because you're probably running everything in a single address space anyways.