Что означает ошибка readelf: слишком большое значение LEB?

Что именно означает эта ошибка и что может ее вызвать?

readelf: Error: LEB value too large

Что означает ЛЕБ? Нижняя(ая) расчетная граница(граница)?

Я видел это много раз, в частности, при сборке пакетов Archlinux.


person Scrooge McDuck    schedule 02.07.2020    source источник
comment
На каком файле вы запускали readelf? Это было из пакета Arch Linux? Или вывод компилятора с некоторыми параметрами? Я не знаю, что означает эта ошибка, но с дополнительной информацией я мог бы найти больше. Google нашел github.com/golang/go/issues/39048 с той же ошибкой. сообщение от binutils, анализирующего вывод цепочки инструментов go.   -  person Peter Cordes    schedule 03.07.2020
comment
Как и в проблеме, на которую вы ссылаетесь, сообщения, кажется, исходят из вывода GNU binutils' objdump , частью которого, похоже, является readelf. Я сталкивался с этой ошибкой много раз, в частности, при сборке tdlib из AUR.   -  person Scrooge McDuck    schedule 03.07.2020
comment
Да, это сообщение об ошибке binutils, но мой вопрос был именно в том, что это за файл, включая то, как он был создан. И/или, может быть, включить остальное, что readelf сказал об этом. (Это означало бы копаться в сценариях сборки, которые запускают readelf за кулисами, чтобы выяснить, на чем они его запускают, и сохранить полный вывод.)   -  person Peter Cordes    schedule 03.07.2020
comment
Это происходит в задаче stripping unneeded symbols from binaries and libraries фазы tidying install makepkg. Вот полный журнал   -  person Scrooge McDuck    schedule 03.07.2020


Ответы (1)


в контексте формата DWARF LEB128 означает «Little Endian Base 128». LEB128 — это компактная целочисленная кодировка, если числа небольшие (см. спецификацию DWARF: http://dwarfstd.org/doc/DWARF4.pdf , Приложение 4)

Ошибка, с которой вы столкнулись, по-видимому, вызвана ошибкой binutils, поддельным сообщением об ошибке от декодера DWARF LEB128 при попытке прочитать значение LEB128 со знаком, содержащее максимально возможное отрицательное целочисленное значение со знаком.

см. https://www.mail-archive.com/[email protected]/msg35315.html

person sickleave    schedule 21.09.2020