The reason that there is a conflict between libobjc and libFoundation is that libFoundation depends on its own implementation "libobjc.so.lf2" (lf = libFoundation). Why libFoundation can't use the regular libobjc, or why the special lf version don't work as a drop-in replacement, I don't know.