On Tuesday 30 October 2001 02:52 pm, you wrote:
> > One possiiblity: IIRC, if you do an strace of a progrma using the dynamic
> > linker using say, libfoo, it will be checking for something like
> > i686/mmx/libfoo, i686/libfoo first..Perhaps this can be used?
>
> Sorry, too much technical for me :-(

OK, let's clarify. Here is a pasting of the strace (system call log), for a 
program:

open("/usr/lib/qt2/lib/libICE.so.6", O_RDONLY) = -1 ENOENT (No such file or 
directory)
open("i686/mmx/libICE.so.6", O_RDONLY)  = -1 ENOENT (No such file or 
directory)
open("i686/libICE.so.6", O_RDONLY)      = -1 ENOENT (No such file or 
directory)
open("mmx/libICE.so.6", O_RDONLY)       = -1 ENOENT (No such file or 
directory)
open("libICE.so.6", O_RDONLY)           = -1 ENOENT (No such file or 
directory)
open("/usr/X11R6/lib/libICE.so.6", O_RDONLY) = 3

THis is the linked trying to open a library. Notice that the linked is trying 
to load an i686/MMX optimized version of the library first, although not in 
particularly nice places (looks like a relative dir from here). 

This might be useful for packaing, if one simply includes multiples copies of 
performance-sensitive libraries, such as avifile, and let's ld.so pick the 
right one. Unfortunatel,y this probably doesn't work for dlopen()'ed 
libraries. 

Reply via email to