Загрузка общих библиотек в IRIX UNIX: ошибка из-за ENOSPC

Я сталкиваюсь с проблемами в древней системе IRIX 6.5. Сначала программа не нашла общую библиотеку, потому что я перенес программу с одного компьютера на другой.

Затем я взял библиотеку и поместил ее в папку lib у себя дома и адаптировал $LD_LIBRARY_PATH соответственно. Сейчас rld находит библиотеку, но elfmap терпит неудачу с для меня загадочной ошибкой:

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:

Что означает " Недостаточно места"? Недостаточно памяти? Что я могу с этим поделать?

Есть ли на SO кто-нибудь, кто еще знает IRIX UNIX?

1 ответ

Решение

Что означает "Недостаточно места"?

Это означает, что некоторые системные вызовы rld выполнено не удалось с ENOSPC ошибка.

Например, write системный вызов может потерпеть неудачу с ENOSPC если на диске недостаточно места.

Ваша первая задача должна состоять в том, чтобы выяснить, какой системный вызов не работает. Вероятно, вы можете использовать strace или же par чтобы выяснить это.

Затем я взял библиотеку

Обратите внимание, что если библиотека пришла с более новой машины, чем та, на которой вы работаете, то вполне ожидаются всевозможные странные ошибки: системы UNIX поддерживают обратную совместимость (более старые двоичные файлы продолжают работать на более новых системах), но не наоборот.

Другие вопросы по тегам