On Thu, Oct 16, 2008 at 01:15:11PM -0700, Rod Evans wrote: > >It seems to me that the Right Thing to do here is to use auxiliary > >filters. Or even to just fold "rpcsec.so.1" into libnsl (unless we > >think this filter approach is desirable for minimization). > > If rpcsec.so.1 is always delivered by the OS, then testing for its > existence, either with dlopen() or filtering, would seem an > unnecessary overhead.
I don't know of any option where it is not delivered, and rpcsec.so.1 and libgss.so.1 are tiny. But I think I just figured out the reason for the indirection: libgss lives in /usr/lib, and libnsl lives in /lib, so to fold rpcsec.so.1 into libnsl might mean either moving libgss into /lib or using weak symbols in rpc_gss_*() to determine if libgss is available and return NULL (or whatever) if it is not. Which do you recommend then: a) turning rpcsec_gss_if.c into auxfilters; b) folding rpcsec.so.1 into libnsl and use weak syms to determine if libgss is available b) folding rpcsec.so.1 into libnsl and moving libgss into /lib ? On x64 rpcsec and libgss 32- and 64-bit take up ~269KB, 308KB on SPARC. Removing rpcsec_gss_if.o would save about ~200KB now, though probably much less if it were turned into aux filters. Nico --