https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89096
--- Comment #10 from David Edelsohn <dje at gcc dot gnu.org> --- Protobufs didn't used to work on AIX. If it does, great. CMake on AIX is broken. AIX behaves differently for export of global symbols, yes, but -bexpall -- exporting all symbols -- is completely wrong. Also, I strongly doubt that Protobufs or the application requires runtime linking (-brtl). And this likely is the reason that -bbigtoc is added because rtl is pulling in all global functions for symbolic overriding which overflows the TOC. This is layer upon layer of incompetence. -bexpall likely is exporting symbols that should not be exported, causing collisions and/or forcing symbols into the a conflicting section. If one looks at libtool support for AIX (and GCC build), it explicitly builds an export file from a shell pipeline that utilizes "nm". It's not perfect, but a lot better and safer than exporting everything and hoping that nothing bad happens. Guess what? Something bad happened.