The way I understand it, segmented stacks are built with compiler support so that whenever a function running on the segmented stack calls another function, if first checks whether the stack has enough space for the stack frame for that new function. And if it doesn't another segmented stack is attached and code branches to that function.
But does this work if say for example I have a fiber running and I call another function from another shared (or compiled into non shared object file) library that was not compiled with the -fsplit-stack
option? How do the functions in that library know that they would have to check to see if the segmented stack has enough space in the segmented stack to continue?
Only interested in clang and gcc implementations (and in particular with boost context), thanks!