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~~

     

     

  • 相关阅读:
    牛客网在线编程:解救小易
    牛客网在线编程:身份证分组
    牛客网在线编程:优雅的点
    用FlexSlider制作支付宝2013版幻灯片演示插件
    Mysql Join语法解析与性能分析详解
    SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段
    jQuery 分页插件 jqPagination的使用
    Android图片异步加载之Android-Universal-Image-Loader
    C#随机函数random()典型用法集锦
    CSS自适应布局(左右固定 中间自适应或者右侧固定 左侧自适应)
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6167738.html
Copyright © 2011-2022 走看看