https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101448
--- Comment #6 from Richard Earnshaw <rearnsha at gcc dot gnu.org> --- (In reply to Kevin Zhao from comment #5) > Hi Richard, > > Thanks for your info. > Previously it is built without any -O parameters, so it should be -O0 by > default. > > I've tried to use the "-Og" to link, it is quite interesting that use -Og we > can link success > > Also, use -O1, -O2 and -Os, Linking works quite well. -O0 generates *very* poor (and large) code. I wouldn't recommend using at all except for basic syntax checking of your application. -Og is pretty minimal optimization and should still be suitable for debugging an application if needed. So I think this is simply a case of you exceeded the limits of the system.