http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60830
--- Comment #37 from Bernd Edlinger <bernd.edlinger at hotmail dot de> --- (In reply to Denis Excoffier from comment #36) > (In reply to Bernd Edlinger from comment #35) >> would not using --disable-sjlj-excaptions cause any problems, >> maybe a unwanted ABI-Change? > I don't know really. Cygwin people usually build gcc using > --disable-sjlj-exceptions and the /usr/bin/cyggcc_s-1.dll is never very far. > Without --disable-sjlj-exceptions, you get a > ${prefix}/bin/cyggcc_s-sjlj-1.dll, and i believe that cyggcc_s-1.dll and > cyggcc_s-sjlj-1.dll are not supposed to live together very well. That sounds in deed like a problem. Regarding your patch: I believe the reason for the gas-bug is that more than one weak default definitions in one .o file and calling them from ths same compilation unit caused the bug. Maybe it would work, if you move all (maybe but one) default definitions from cygming-crtbegin.c to cygming-crtend.c, leaving just the forward declarations.