Linux mobile development

欢迎到Linux mobile development(www.limodev.cn)上交流。Limodev主要致力于基于linux的嵌入式系统的学习和研究,包括内核、驱动、GUI、MMI、软件设计方法和软件优化等方面,欢迎大家加入,无论是高手还是新手,一起学习共同进步。下载BLOG示例代码请先到limodev.cn/bbs上注册,谢谢

原创 编译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~~

 

 

发表于 @ 2007年04月10日 20:10:00|评论(loading...)

新一篇: TinyMail研究—类型系统 | 旧一篇: Mozilla研究—mozilla的目录结构

用户操作
[即时聊天] [发私信] [加为好友]
李先静
订阅我的博客
XML聚合  FeedSky
李先静的公告

BLOG评论请到


下载BLOG示例代码请先到上注册,谢谢。

文章分类
收藏
1.友情链接
0华清远见-嵌入式培训专家
aimself@CSDN(RSS)
directfb中文网站(RSS)
Eric's Little Hut
eye_of_back的专栏(RSS)
Linux Mobile Research
Phoenix@上海(RSS)
segments的专栏(RSS)
study's Blog(RSS)
tracestudio
伐木丁丁鸟鸣嘤嘤(RSS)
会飞的鱼的专栏(RSS)
创系的技术博客
小四的BLOG(RSS)
小马哥的博客(RSS)
开源电信(RSS)
御风剑客
新奇的BLOG
易军军的网络家
李吉群的专栏(RSS)
2.亲情链接
凤凰的幸福蓄水池(RSS)
我的相册
3.软界高手
Donald E. Knuth (RSS)
孟岩(RSS)
透明(RSS)
4.LinuxMobile
celinuxforum(RSS)
GPE(RSS)
maemo.org(RSS)
opensource.motorola
palowireless
5.XWindow
Jserv's blog(RSS)
Keith Packard(RSS)
6.技术资源
7.开源项目
freedesktop(RSS)
GNU(RSS)
GTK+(RSS)
matchbox(RSS)
pxa27x-linux/
8.我的BLOG镜像
absurd@chinaunix
absurd@msn
My English BLOG(RSS)
存档
Csdn Blog version 3.1a
Copyright © 李先静