XCore is developed using the gcc family of compilers. Cross-compiler have the sysroot directory. This directory contains the C standard library header files and the C standard library with the startup code. It is used by the compiler to build target applications and it is used during the compiler build process. So to make a cross-toolchain you have to prepare this directly first (you need header files), then build the cross-toolchain and finally build the libraries and startup code using the built toolchain. sysroot is usually located in the compiler installation place. For example, is the compiler is installed in the /opt/BeagleBoneBlack directory, the sysroot is placed as /opt/BeagleBoneBlack/sysroot. When you build the cross-toolchain you configure sysroot to this location.
Vanilla-X contains the minimum required sysroot (but different versions of gcc may have extra requirements).
sysroot lib * obj * src crt0.s string_s.s * usr include sys types.h __std_init.h assert.h ctype.h errno.h iso646.h limits.h locale.h math.h setjmp.h signal.h stdarg.h stdbool.h stddef.h stdint.h stdio.h stdlib.h string.h time.h unistd.h
The most important parts here is string functions and std_init functions. string functions like memcpy() or strlen() are implemented using the assembler to be efficient. std_init functions is the heart of the system and implemented in the startup code crt0.s using the assembler.