zoukankan      html  css  js  c++  java
  • 编译ARM版Prelink

     

    编译ARM版Prelink

     

    转载时请注明出处和作者联系方式:http://blog.csdn.net/absurd

    作者联系方式:李先静<xianjimli at hotmail dot com>

    更新时间:2007-4-10

     

    为了加快应用程序的起动过程和降低进程之间非共享内存,花好了几天时间折腾prelink,虽然效果不太明显,还是有一定的效果。这里介绍一下编译ARMprelink的方法:

     

    1.         下载elfutils-0.125.tar.gz

     

    2.         配置elfutils

    tar zxvf elfutils-0.125.tar.gz

    cd elfutils-0.125

    ./configure --host=arm-linux $PREFIX_USR_LOCAL;

     

    3.         修改 src/findtextrel.c:491

    size_t nsegments, struct segments segments[nsegments],

    -->

    size_t nsegments, struct segments* segments,

     

    4.         修改src/ranlib.c

    #include <string.h>

     

    5.         修改libelf/common.h

    #define CONVERT(Var) /

      (Var) = (sizeof (Var) == 1                              /

           ? (unsigned char) (Var)                        /

           : (sizeof (Var) == 2                           /

              ? (Elf32_Half)bswap_16 (Var)                            /

              : (sizeof (Var) == 4                        /

             ? (Elf32_Word)bswap_32 (Var)                         /

             : (Elf32_Xword)bswap_64 (Var))))

    à 

    #define CONVERT_TO(Dst, Var) /

      (Dst) = (sizeof (Var) == 1                              /

           ? (unsigned char) (Var)                        /

           : (sizeof (Var) == 2                           /

              ? (Elf32_Half)bswap_16 (Var)                            /

              : (sizeof (Var) == 4                        /

             ? (Elf32_Word)bswap_32 (Var)                         /

             : (Elf32_Xword)bswap_64 (Var))))

     

    6.         修改src/strings.c

    #include <asm/mman.h>

             

    7.         编译安装elfutils

    make;make install

     

    8.         下载prelink-20060712.tar.bz2

    tar jxf prelink-20060712.tar.bz2

     

    9.         修改src/Makefile.am

    删除 arch-ppc.c arch-ppc64.c

    prelink_LDFLAGS = -all-static $(LIBGELF)

     

    10.     配置prelink

    aclocal -I ./m4 ;automake;autoconf; libtoolize --force

    echo ac_cv_header_libelf_h=yes >arm-linux.cache

           /configure --host=arm-linux $PREFIX_USR_LOCAL --cache-file=arm-linux.cache;

     

    11.     修改 prelink.h

    #define PT_GNU_STACK    (PT_LOOS + 0x474e551)

     

    12.     编译安装prelink

    make;make install

     

    ~~end~~

     

     

  • 相关阅读:
    搭建Hadoop2.6.0+Spark1.1.0集群环境
    分别用Eclipse和IDEA搭建Scala+Spark开发环境
    poj 2586 Y2K Accounting Bug【贪心】【刷题计划】
    poj2109 Power of Cryptography【坑~泪目】【水过】【刷题计划】
    例题6.1 铁轨【算法入门经典】
    第三章 队列【数据结构】【链队列】【循环队列】
    poj 1328 Radar Installation【贪心】【刷题计划】
    hdu 2364 Escape【模拟优先队列】【bfs】
    poj 2965 The Pilots Brothers' refrigerator 【dfs+枚举】【双十一大礼包】
    6.3.3 二叉树重建【算法入门经典】【双十一大礼包】
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6167738.html
Copyright © 2011-2022 走看看