一个项目需要在Ubuntu10.04上使用LLVM 3.8,从llvm.org上下载了一个binary包下来,运行提示要求GLIBC_2.14。由于Ubuntu 10.04已经停止维护了,GLIBC最高只支持到2.12。
编译GLIBC 2.14
一开始想编译一个GLIBC2.14来用。
wgethttp://mirror.bjtu.edu.cn/gnu/libc/glibc-2.14.tar.xz
tar Jxvfglibc-2.14.tar.xz
cd glibc-2.14
mkdir build
cd build
../configure--prefix=/opt/glibc-2.14
make -j8
../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]: ***[/mnt/adm/sources/glibc-build/misc/syslog.o] Error 1
make[2]: Leaving directory`/mnt/adm/sources/glibc-src/misc'
make[1]: *** [misc/subdir_lib] Error 2
make[1]: Leaving directory`/mnt/adm/sources/glibc-src'
make: *** [all] Error 2
CFLAGS="-O2 -U_FORTIFY_SOURCE-fno-stack-protector" ../configure --prefix=/opt/glibc-2.14
make -j8
mawk: scripts/gen-sorted.awk: line 19:regular expression compile failed (bad class -- [], [^] or [)
/[^
mawk: scripts/gen-sorted.awk: line 19:syntax error at or near ]
mawk: scripts/gen-sorted.awk: line 19:runaway regular expression /, "", subd ...
rm -f/mnt/custom_linux/sources/build/stamp.o; >/mnt/custom_linux/sources/build/stamp.o
rm -f/mnt/custom_linux/sources/build/stamp.os; >/mnt/custom_linux/sources/build/stamp.os
rm -f/mnt/custom_linux/sources/build/stamp.oS; >/mnt/custom_linux/sources/build/stamp.oS
sudo apt-get installgawk
CFLAGS="-O2 -U_FORTIFY_SOURCE-fno-stack-protector" ../configure --prefix=/opt/glibc-2.14
make -j82>/dev/stdout > make.log
glibc-2.14/build/libc_pic.a(init-first.os):(.data+0x0):multiple definition of `__libc_multiple_libcs'
glibc-2.14/build/elf/dl-allobjs.os:/home/yubing/glibc-2.14/elf/rtld.c:657:first defined here
glibc-2.14/build/libc_pic.a(dl-addr.os): Infunction `_dl_addr_inside_object':
glibc-2.14/elf/dl-addr.c:158: multipledefinition of `_dl_addr_inside_object'
glibc-2.14/build/elf/dl-allobjs.os:/home/yubing/glibc-2.14/elf/dl-open.c:674:first defined here
CFLAGS="-O2 -U_FORTIFY_SO

本文档详细记录了在Ubuntu 10.04 LTS系统上,由于官方停止维护导致的GLIBC版本不兼容问题,以及如何解决这一问题的过程。首先尝试通过编译GLIBC 2.14来解决,但由于编译失败,决定转向编译GCC 4.7.2和LLVM 3.8。首先,安装了GCC所需依赖GMP、MPFR、MPC,并分别编译安装。然后编译GCC 4.7.2,解决了编译过程中遇到的依赖问题。最后,下载并编译LLVM 3.8,确保使用自编译的GCC进行配置。编译完成后,所有软件成功安装在指定目录。

419

被折叠的 条评论
为什么被折叠?



