Загрузка общих библиотек в 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 поддерживают обратную совместимость (более старые двоичные файлы продолжают работать на более новых системах), но не наоборот.