__stack_chk_fail is only called when something is critically wrong with the process. At this point, it is important to minimize the amount of work done by the process. Calling into the dynamic linker for symbol resolution is risky. Disabling lazy binding for the call would avoid that. I expect that avoiding the PLT for the call (the noplt attribute) would take care of that for ELF.
Adding the attribute is quite simple, but I can't verify the request. Jakub?