Problems with dlopen and RTDL_LAZY

I develop a Python package that has multiple .so files with interdependencies. I set the dlopen RTLD_LAZY flag (as well as RTLD_GLOBAL) so that they can be imported without getting an undefined symbol error. This works fine on all other versions of Linux that I use, but fails on fedora (I get the undefined symbol error even though it is supposed to be LAZY). Does anyone have a suggestion of what might be going wrong and how to fix it?