I have Intel GPU, but I can answer one of yours questions.
I have written this script:
#!/bin/ksh
echo "" > /root/whereAreLibraries.log
echo "" > /root/whichFileAndWhatFunction.log
find . -name "*.so*" 2>&1 1>/root/whereAreLibraries.log
echo "I have ended find command Now it is time for nm and grep" ;
for LIBRAR in `cat /root/whereAreLibraries.log` ;
do
echo "StartingPointForNewLibrary" >> /root/whichFileAndWhatFunction.log
;
echo "$LIBRAR" >> /root/whichFileAndWhatFunction.log ;
echo "$LIBRAR" | xargs nm | grep drisw_create_screen -C1 >>
/root/whichFileAndWhatFunction.log ;
echo "EndingPointForNewLibrary" >> /root/whichFileAndWhatFunction.log ;
done;
and after that this command:
grep drisw_create_screen /root/whichFileAndWhatFunction.log -C5
gives in output:
StartingPointForNewLibrary
./usr/X11R6/lib/modules/dri/r300_dri.so
00000000 F dri_util.c
U drisw_create_screen
000bfdf0 t driver_RenderTexture_is_safe
EndingPointForNewLibrary
StartingPointForNewLibrary
./usr/X11R6/lib/modules/dri/r600_dri.so
00000000 F dri_util.c
U drisw_create_screen
000bfdf0 t driver_RenderTexture_is_safe
EndingPointForNewLibrary
> Are you saying that it works for you on amd64/i386? Which shared object
> provides the 'drisw_create_screen' symbol then because I cannot find it
> on my amd64 system under /usr/X11R6:
>
> $ find . -name "*.so*" |xargs nm |grep drisw_create_screen
> U drisw_create_screen
> U drisw_create_screen