Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1830837
  • 博文数量: 241
  • 博客积分: 9862
  • 博客等级: 中将
  • 技术积分: 5206
  • 用 户 组: 普通用户
  • 注册时间: 2005-02-18 23:23
文章分类
文章存档

2011年(14)

2010年(61)

2009年(48)

2008年(118)

我的朋友

分类: LINUX

2010-03-30 17:57:23

我使用的环境是ubuntu9.04,貌似这个环境对于编译glibc不是很好。因此记录下一些注意点。

glibc的编译流程为:
1、configure
2、make
3、make install

在configure之前需要另外建立一个新目录作为编译的目录,不然可能会看到类似的提示:
$ ./configure
configure: error: you must configure in a separate build directory

正确做法应该是:
$ mkdir -v ../glibc-build
mkdir: created directory `../glibc-build'
$ cd ../glibc-build
$ ../glibc-2.9/configure

如果你没有安装gawk,你可能会看到以下的错误信息:
mawk: scripts/gen-sorted.awk: line 19: syntax error at or near ]
mawk: scripts/gen-sorted.awk: line 19: runaway regular expression /, "", subd ...
make[1]: *** No rule to make target `/home/wstone/Build/glibc/glibc-build/Versions.all', needed by `/home/wstone/Build/glibc/glibc-build/abi-versions.h'.  Stop.
make[1]: Leaving directory `/home/wstone/Build/glibc/glibc-2.9'
make: *** [all] Error 2
这是因为ubuntu使用的是mawk,安装上glibc需要的gawk即可:
$ sudo apt-get install gawk

在ubuntu上编译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/wstone/Build/glibc/glibc-build/misc/syslog.o] Error 1
make[2]: Leaving directory `/home/wstone/Build/glibc/glibc-2.9/misc'
make[1]: *** [misc/subdir_lib] Error 2
make[1]: Leaving directory `/home/wstone/Build/glibc/glibc-2.9'
make: *** [all] Error 2
网上讨论这个是gcc的问题,使用以下的方式configure可以解决:
$ echo "CFLAGS +=-O2 -U_FORTIFY_SOURCE  -march=i486 -mtune=native -fno-stack-protector" >configparm
$ ../glibc-2.9/configure  --prefix=/usr  --disable-profile --enable-kernel=2.6.15

关于这个问题的内容,可以参考:
1、
2、

另外glibc的编译,可以参考lfs的内容:
1、

如果想了解一些具体的编译选项,那么应该仔细阅读glibc源码中的一些说明性文档。
阅读(9733) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~