I had the undefined reference to sbrk in the past, too. In your project, it's defined in Cm0Start.c as a 'weak' function. This means that the linker will use a different function with the same name if defined by you. However, depending on the linker settings, the optimization process will remove a weak function, even if it should be use. I solved those issue by setting a different optimization level for the Cm0Start.c file.
I did some study about this error, and found that this error often happens when you use atof() or some functions related to the float.
So, I changed Build Settings > ARM GCC 5.4-2016... > Linker > General > Use newlib-nano Float Formatting to "True"
Then your project could be compiled.