Valgrind не принимает новейшую версию glibc
Valgrind не любит glibc 2.15:
checking the GLIBC_VERSION version... unsupported version 2.15
configure: error: Valgrind requires glibc version 2.2 - 2.14
Как я могу справиться с этим? мне нужно понизить glibc? Я работаю над Ubuntu 12.04, если это уместная информация.
Update:
Итак, я пытался загрузить источник и установить там вместо использования apt-get, так как я перехожу к Learn C the Hard Way. После того, как у меня возникла эта проблема, я прибегал к apt-get, чтобы посмотреть, будет ли это работать. он установил для меня этот пакет:
libc6-dbg - Embedded GNU C Library: detached debugging symbols
Ответы
Ответ 1
Как я могу справиться с этим?
Один из двух способов:
- Используйте свой дистрибутив и загрузите пакет, который они уже создали для вас, или
- Выясните проблему (это значит, что
configure
не был восстановлен после добавления 2.15
в configure.in
) и исправить его.
Мне нужно понизить glibc?
Это, скорее всего, сделает вашу систему незагруженной (поскольку большинство других двоичных файлов зависит от 2.15).
Ответ 2
Я тоже переживаю эту книгу и столкнулся с этой проблемой. Я googled это и закончил здесь после Employed Russian совет Я пошел и играл с файлами конфигурации и получил его для работы.
Перейдите в свою конфигурацию примерно к строке 6404, а затем вставьте ее в:
2.15)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.15 family" >&5
$as_echo "2.15 family" >&6; }
$as_echo "#define GLIBC_2_14 1" >>confdefs.h
DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
Затем я запустил configure
, make
, а затем sudo make install
, и все это сработало.
В файле configure.in я также добавил код около 777, но я не думаю, что это было важно для конечного результата, если это правда, но я просто скопировал предыдущий материал, который ссылался на 2.14, вставил и все изменил до 2.15
Надеюсь, что это поможет
Ответ 3
Обновление для valgrind 3.9.0 и glibc 2.19:
У меня была такая же проблема, и добавив это в configure script, перед строкой с darwin)
, исправил ее:
2.19)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.19 family" >&5
$as_echo "2.19 family" >&6; }
$as_echo "#define GLIBC_2_19 1" >>confdefs.h
DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
Протестировано на KUbuntu 14.04
Ответ 4
Обновлен для valgrind-3.8.1 (и это должно работать на любой квази-текущей Linux-упаковке на Slackware 14.0):
Добавлена опция "2.17" (приблизительно строка 6607) между концом "2.16" и началом "darwin" в файле "valgrind-3.8.1/configure".
Работал как шарм! Спасибо за помощь ребятам!
Ура!
- в
Ответ 5
Кажется, всякий раз, когда выпущена новая версия, терминал запрашивает разные версии Glibc. Поэтому, если терминал дает такую ошибку:
checking the GLIBC_VERSION version... unsupported version 2.19
configure: error: Valgrind requires glibc version 2.2 - 2.14
Затем вам нужно будет отредактировать файл конфигурации для версии 2.19, потому что эта версия не поддерживается, как указано в теме.
Итак, найдите и откройте файл configure в каталоге valgrind и через CTRL + F найдите в файле следующую часть кода:
case
"${GLIBC_VERSION}" in
2.2)
Когда вы дойдете до этой строки кода в редакторе (всегда номер строки может измениться по версии новой версии), вы найдете ниже код, начинающийся с 2.2)
.
2.2)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.15 family" >&5
$as_echo "2.15 family" >&6; }
$as_echo "#define GLIBC_2_14 1" >>confdefs.h
DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
И если вы придете, должен быть тот же код для каждой версии от 2.2
до 2.21
или больше. Скопируйте код любой версии и прошйте после последней версии, но обратите внимание, что указанный выше код предназначен только для версии 2.2
, начинающейся с 2.2)
, вам нужно будет изменить все те 2.2)
на требуемую версию от терминала, который 2.19)
в моем случае.
Итак, если версия 2.19
требуется терминалом, код, который вы будете добавлять, будет выглядеть так:
2.19)
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.19 family" >&5
$as_echo "2.19 family" >&6; }
$as_echo "#define GLIBC_2_19 1" >>confdefs.h
DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
И после вашего кода, если вы спускаете файл, на следующих строках должен быть darwin)
.