zoukankan      html  css  js  c++  java
  • <未测>源码升级安装glibc和rpm升级glibc

    源码升级安装glibc和rpm升级glibc


    http://jacklin9.spaces.live.com/blog/cns!A891B52E1182AFB2!346.entry

    http://blog.sina.com.cn/s/blog_48eef8410100ap22.html



    下载glibc
    wget  http://ftp.gnu.org/gnu/glibc/glibc-2.7.tar.gz

    下载glibc-linuxthreads
    wget http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.5.tar.gz

     

    解压
    tar -zxvf glibc-2.7.tar.gz
    mkdir glibc-build
    cd glibc-2.7
    tar -zxvf ../glibc-linuxthreads-2.7.tar.gz
    cd ..
    export CFLAGS="-g -O2 -march=i486"
    cd glibc-build
    ../glibc-2.7/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --disable-sanity-checks

    #make
    #make install

     

    安装编译过程中需要注意三点:
    1、要将glibc-linuxthreads解压到glibc目录下。
    2、不能在glibc当前目录下运行configure。
    3、加上优化开关,export CFLAGS="-g -O2 -march=i486",否则会出现错误
    '#error "glibc cannot be compiled without optimization"'

     
    ###################################################################################################################################################
    #########################    rpm 升级glibc2.7    ###########################################################################################
    ###################################################################################################################################################


    因公司合作研发的游戏项目 德州扑克 要求,

    Linux需要升级 glibc库要2.7以上,所以就尝试了下升级glibc。

    由于找不到CentOS5的 glibc2.7 ,就在网上找到了fedora的rpm包来替代,试过暂时是没发现什么问题。以下是步骤。

    这里下载相应的rpm包http://archive.fedoraproject.org/pub/archive/fedora/linux/releases/8/Everything/x86_64/os/Packages/

    由于我们目前linux都是64位系统,所以我下载4个x64文件:
    glibc-common-2.7-2.x86_64.rpm
    glibc-headers-2.7-2.x86_64.rpm
    glibc-devel-2.7-2.x86_64.rpm
    glibc-2.7-2.x86_64.rpm       

    然后升级的命令为:
    rpm -Uvh --aid --nodeps glibc-common-2.7-2.x86_64.rpm
    rpm -Uvh --aid --nodeps glibc-headers-2.7-2.x86_64.rpm
    rpm -Uvh --aid --nodeps glibc-devel-2.7-2.x86_64.rpm
    rpm -Uvh --aid --nodeps glibc-2.7-2.x86_64.rpm

    直接强制更新升级。

    升级后好像glibc2.7自动生效了。

    编译一个程序测试下是否使用了64位的动态库。

    #vi hello.c

    #include
    int main(void)
    {
                  printf("Hello World! ");
    }

    保存退出,然后执行
    gcc -o test hello.c
    chmod +x test
    ./test

    运行成功!

    执行
    file test
    查看有看到x64,表示使用 64位的动态库。





    网上有些地方加优化开关 -O2  时(大写字母O),写的是 -02 (数字零),所以拷贝过来仍然出现3中的错误,所以请注意。

    安装完后,可以查看ls -l /lib/libc.so.6已升级

    lrwxrwxrwx 1 root root 11 Nov 12 09:24 /lib/libc.so.6 -> libc-2.7.so



    测试:
    32位:
    vim hello.c
     #include

     main()
     {
         printf("hello world! ");
     }

    保存退出,然后执行
    gcc -o test hello.c
    chmod +x test
    ./test

    运行成功!

    执行
    file test

    64位:
    #vi hello.c

    #include
    int main(void)
    {
                  printf("Hello World! ");
    }

    保存退出,然后执行
    gcc -o test hello.c
    chmod +x test
    ./test

    运行成功!

    执行
    file test
    查看有看到x64,表示使用 64位的动态库。
  • 相关阅读:
    dedecms list 判断 每隔3次输出内容
    dede 后台登录以后一片空白
    SSO单点登录在web上的关键点 cookie跨域
    简单批量复制百度分享链接
    PHP强大的内置filter (一)
    MySql数据备份与恢复小结
    linux命令 screen的简单使用
    xdebug初步
    本地虚拟机挂载windows共享目录搭建开发环境
    MySQL 5.6 警告信息 command line interface can be insecure 修复
  • 原文地址:https://www.cnblogs.com/timssd/p/5646099.html
Copyright © 2011-2022 走看看