https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78444
--- Comment #11 from Iain Sandoe <iains at gcc dot gnu.org> --- (In reply to Uroš Bizjak from comment #10) > BTW: probably related to this PR, I have seen following kludge in > i386/darwin.h: > > #define STACK_BOUNDARY \ > ((profile_flag || TARGET_64BIT_MS_ABI) ? 128 : BITS_PER_WORD) > > It looks that profile_flag is there due to "call mcount" insn. However, > crtl->profile is set in this case, and the vaule of the flag could be > checked in the same place to eventually increase function alignment. > Removing profile_flag would make Darwin's STACK_BOUNDARY definition the same > as the default one, and could be removed. I think you're correct - this was a case where a non-leaf use (the profile case) caused the dynamic loader to abort exes - and this hack is a work-around. I will experiment with removing it when the proper check is in place.