https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92572
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |INVALID Status|WAITING |RESOLVED --- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Using -Wl,-E (or -Wl,--export-dynamic) fixes the problem. And here is why: If you use "dlopen" to load a dynamic object which needs to refer back to the symbols defined by the program, rather than some other dynamic object, then you will probably need to use this option when linking the program itself.