在 Ubuntu 10.10 x86_64 上编译 GLIBC-2.13
当尝试在 ubuntu 10.10、x86_64 上编译 glibc 时,出现错误:
../misc/syslog.c: In function ‘__vsyslog_chk’:
../misc/syslog.c:123: sorry, unimplemented: inlining failed in call to ‘syslog’: function body not available
../misc/syslog.c:155: sorry, unimplemented: called from here
make[2]: *** [/home/daniel/src/b.c/misc/syslog.o] Error 1
When trying to compile glibc on ubuntu 10.10, x86_64, i get the error:
../misc/syslog.c: In function ‘__vsyslog_chk’:
../misc/syslog.c:123: sorry, unimplemented: inlining failed in call to ‘syslog’: function body not available
../misc/syslog.c:155: sorry, unimplemented: called from here
make[2]: *** [/home/daniel/src/b.c/misc/syslog.o] Error 1
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试这个关于 glibc 构建问题的 wiki。
我刚刚遇到了同样的问题,但是是 32 位的。运行配置脚本时,将 CFLAGS='-U_FORTIFY_SOURCE -O2' 添加到命令行似乎有效。您可能还需要在其中添加 -mtune=i686 和 -march=i686 。但也许不适合 64 位。 i686 似乎是另一个 bug。
Try this wiki about glibc build issues.
I just ran into the same issue but with 32-bit. When running the configure script, adding CFLAGS='-U_FORTIFY_SOURCE -O2' to the command line seems to work. You may need to add -mtune=i686 and -march=i686 in there too. But maybe not for 64 bit. The i686 seems to be another bug.
每当您想在 Ubuntu 上重建 Debian 上的某些东西时,您几乎总是最好从 Debian 上的原始源代码包开始。
在这种特殊情况下,您可以从来自 Debian 实验分支的此版本开始。通过使用源包,您可以确保具有所需的构建依赖项,并应尽量减少意外情况。
此外,在 chroot 环境中构建是实现此目的的好方法,并且通过诸如 pbuilder 和 sbuild 之类的包可以轻松实现。
编辑:有构建日志,但没有包含一个针对 amd64 的,大概是因为维护者在本地构建了它。但是你可以查看 i386,看看它是否通过了你遇到的错误。
Whenever you want to rebuild something on Ubuntu that Debian already, you are almost always best of by starting with the original source package on Debian.
In this particular case you can start with this version from the Debian experimental branch. By using the source package, you ensure you have required build-dependencies and should minimize surprises.
Also, building in a chroot environment is a good way to do this and made easy by packages such as
pbuilder
andsbuild
.Edit: There are build logs but they don't contain one for amd64, presumably because the maintainers built on that locally. But you can look at i386, say, and see that it passed the error you had.