shared-librariesirix

Loading shared libraries in IRIX UNIX: failing due to ENOSPC


I am running into problems on an ancient IRIX 6.5 system. First a program did not find a shared library, because I moved the program from one machine to another.

I then fetched the library and put it in a lib folder in my user's home and adapted $LD_LIBRARY_PATH accordingly. Now rld finds the library but elfmap fails with a for me cryptic error:

138076:/s/masslib/pro/masslib: rld: Error: elfmap: couldn't map /usr/people/guest/lib/libndguisvr.so: Not enough space
138076:/s/masslib/pro/masslib: rld: Fatal Error: Cannot Successfully map soname 'libndguisvr.so' under any of the filenames /usr/people/guest/lib/libndguisvr.so:/usr/lib32/libndguisvr.so:/usr/lib32/internal/libndguisvr.so:/lib32/libndguisvr.so:/opt/lib32/libndguisvr.so:

What does the Not enough space mean? Not enough memory? Is there anything I can do about that?

Is there anybody out there on SO who still knows IRIX UNIX?


Solution

  • What does the Not enough space mean?

    It means that some system call that rld executed failed with ENOSPC error.

    For example, write system call may fail with ENOSPC if there is not enough space on the disk.

    Your first task should be to figure out which system call is failing. Probably you can use strace or par to find that out.

    I then fetched the library

    Note that if the library came from a newer machine than the one you are running on, all kinds of weird errors are somewhat expected: UNIX systems support backward compatibility (older binaries continue to work on newer systems), but not the reverse.