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,如果这是相关的信息。
更新
所以我试图从那里下载源代码并安装而不是使用apt-get,因为我正在通过Learn C the Hard Way。在我遇到这个问题后,我使用apt-get来查看它是否可行。它为我安装了这个包:
libc6-dbg - Embedded GNU C Library: detached debugging symbols
答案 0 :(得分:18)
我也经历过这本书并遇到了这个问题。我用谷歌搜索了它,然后按照雇员俄罗斯的建议结束了这里,我进入并使用配置文件并使其工作。
进入你的配置约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 < / p>
希望这有帮助
答案 1 :(得分:10)
更新valgrind 3.9.0和glibc 2.19:
我遇到了同样的问题,并在使用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上测试
答案 2 :(得分:9)
我该如何处理?
两种方式之一:
configure
添加到2.15
之后configure.in
尚未重新生成{{1}}并修复它。我必须降级glibc吗?
这可能会使您的系统无法启动(因为大多数其他二进制文件依赖于2.15)。
答案 3 :(得分:3)
为valgrind-3.8.1刷新(这应该适用于任何准当前的Linux机箱 - 在Slackware 14.0上测试):
在“2.16”和“2.16”之间增加了一个“2.17”选项(约为6607行)。 “valgrind-3.8.1 / configure”文件中“darwin”的开头。
像魅力一样工作!谢谢你们的帮助!
干杯!
- 在
答案 4 :(得分:2)
似乎每当发布新版本终端都会要求不同版本的Glibc。所以如果终端出现这样的错误:
checking the GLIBC_VERSION version... unsupported version 2.19
configure: error: Valgrind requires glibc version 2.2 - 2.14
然后您需要编辑2.19版本的配置文件,因为该版本不受支持,如终端中所述。
在某些文本编辑器中打开 - 从valgrind目录中调用configure的文件,通过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}"
;;
如果向下滚动,则会为每个其他版本from 2.2 to 2.21...
找到相同的代码。复制并粘贴上一版本之后的最新版本代码(请注意,仅在我的情况下为2.2
版本,以2.2)
开头,您需要更改所有2.2)
&#39 ; s到终端所需的版本,在我的情况下为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)
。