The scenario is this: My compilation environment is unified, using the lower-level glibc_2.18. I want to depend on a CUDA .so file compiled using the higher-level glibc_2.27.
My runtime environment uses the higher-level glibc version, and I want to compile the binary using the lower-level glibc version and then run it in the glibc 2.27 environment.
The reason for this is that the compilation environment is unified. Upgrading the glibc in the compilation environment would mean that all runtime environments would need to upgrade glibc, which would be costly.
librt.soandlibpthread.sostarted failing to find symbols with theGLIBC_PRIVATEsuffix. I'm not sure how many libraries there are like this, so I didn't do a full upgrade.