Jakub Jelinek writes: > With the exception of Mesa stuff .a XFree86 libraries which are not > shipped as shared libs too (.so + .a) aren't performance critical > either, and using non-fpic code in them has some bad consequences:
Yes, most of these libraries aren't performance critical. They don't do much more than providing a C interface to the underlying request. > 1) it means the whole shared libs which link in even one tiny > XFree86 non-fpic .a lib are DT_TEXTREL, which means bigger > overhead when loading them and more unshareable pages. > 2) they have more relocations, meaning more time spent in the > dynamic linker on startup. > 3) if there are any symbol lookup conflicts, it means those libraries > aren't prelink(8)able, which can mean e.g. that all of KDE > cannot be prelinked [1]. Yes, that's an issue I've learned about today, too. Thank you for bringing it up here. I was told prelinking may reduce kde application startup time by about 30 to 40 percent. This is definitely an aspect to keep in mind. > > So IMHO the default XFree86 behaviour, tweakable through imake macros, > should be that .a libs which come with a corresponding .so should be > -fno-pic while .a libs which don't have a corresponding .so should be > -fpic. > (Below is a patch I wrote months ago for this). So far I only marked those libraries that were identified by toolkits groups as targets of possible encasulation to be build with -fpic. Currently it is easy enough make ia32 build with pic. Just add a: #define StaticNeedsPicForShared YES to config/cf/hosts.def. Before we decide to add PIC to more/all .a files without corresponding .so we should see if there are arguments against this. > > As for Mesa, IMHO even libGL.so should be compiled with -fpic, I have some > patches which should optimize the performance critical places in there, > will test and benchmark them in the following days (had no 3D hardware until > recently so couldn't do testing nor measurements) and post them afterwards. > > [1] ftp://people.redhat.com/jakub/prelink/ > Have you raised this issue on the MESA/DRI mailing list? Once you have your benchmarks ready you should do so. Egbert. _______________________________________________ Xpert mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/xpert