It does search on LD_LIBRARY_PATH now, it just fails because it finds the 32-bit libcairo before the 64-bit one.
The traceback displayed inside Pharo says "Error: External module not found" which is quite misleading.�� A minimal fix would be to just provide a better error message.
There is a traceback that prints to the console if you launched pharo from it, and it does reveal the true failure, but only to someone who knows what ELFCLASS32 means:
ioLoadModule(//usr/lib/libcairo.so.2):
�� //usr/lib/libcairo.so.2: wrong ELF class: ELFCLASS32
Error: External module not found
This shows that the information for a better error message is available.
��
A better fix would be to skip the 32-bit lib and keep searching. This looks like it would be messy because CairoLibrary provides the path but ���U���
FFI has to deal with it. ��� As far as I can see, there's no way to just check whether a library is 32- or 64-bit, other than trying to call something in it.
I'm a total Pharo novice (I wrote maybe 300 lines of Squeak code several years ago) but this design seems odd to me. Why is LD_LIBRARY_PATH being handled in��� Athens-Cairo rather than UFFI itself?
Dan