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位的动态库。
  • 相关阅读:
    redis数据结构
    django内置密码原理
    生成图片验证码
    如何封装VUE的axios请求
    杭电1717小数化分数2
    杭电2504 又见GCD
    杭电 2136 Largest prime factor(最大素数因子的位置)
    Linux终端的一些快捷键命令
    杭电 1772 cake
    杭电ACM 1713 相遇周期
  • 原文地址:https://www.cnblogs.com/timssd/p/5646099.html
Copyright © 2011-2022 走看看