[发明专利]面向即时编译的基于动态库的GOT表管理方法有效

专利信息
申请号: 201910885728.X 申请日: 2019-09-19
公开(公告)号: CN112527303B 公开(公告)日: 2022-09-13
发明(设计)人: 周文浩;王飞;沈莉;肖谦;武文浩 申请(专利权)人: 无锡江南计算技术研究所
主分类号: G06F8/41 分类号: G06F8/41;G06F9/455
代理公司: 苏州创元专利商标事务所有限公司 32103 代理人: 王健
地址: 214083 江苏*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 面向 即时 编译 基于 动态 got 管理 方法
【说明书】:

发明公开一种面向即时编译的基于动态库的GOT表管理方法,包括以下步骤:S1、创建包含GOT表的动态链接库,此GOT表位于动态链接库的数据段;S2、在即时编译引擎解析重定位前,动态载入GOT表到内存空间,并获取GOT表的首地址;S3、即时编译引擎根据程序代码段的重定位类型,进行GOT表覆写和重定位回填;S4、在程序即时编译执行结束后,动态释放包含GOT表的动态链接库;S42、退出即时编译。本发明降低了LLVM即时编译引擎对新增硬件后端中GOT表的支持难度,提高了LLVM即时编译引擎的移植效率,在基于国产处理器的LLVM即时编译引擎中快速实现了基于动态库的GOT表管理。

技术领域

本发明涉及一种面向即时编译的基于动态库的GOT表管理方法,属于编译优化技术领域。

背景技术

即时编译(Just-In-Time)是一种动态编译中间代码的方式,根据需要,在程序执行时将代码翻译成机器码并且执行。Java语言,.net平台,LuaJIT等新兴语言的编译器均广泛使用即时编译技术。即时编译结合了静态编译和解释执行的优势,能够产生高效的机器码,并且具有足够的灵活性。

LLVM(Lower Level Virtual Machine)是当今非常流行的一款编译器基础框架,在设计之初就考虑了即时编译的功能。其采用自创的代码优化机制,并且有着清晰的架构层次和详细的开发文档,正逐渐被越来越多的科研机构和商业项目所使用。LLVM的即时编译作为一种新型的编译技术,结合了静态编译和解释执行的优势,被越来越多的编译平台所采用。

国产处理器由于采用了与目前已有架构完全不同的体系结构和指令集设计,因此无法直接复用LLVM的即时编译引擎。在ELF格式文件的进程空间中,全局偏移表(GOT)存放着所有全局变量地址的全局偏移值,其能够把位置无关的地址定位到绝对地址,对全局变量的引用和重定位起着举足轻重的作用。现有的LLVM的MIPS和ARM后端的即时编译引擎通过内存管理器生成程序GOT表,实现逻辑复杂并且与硬件后端紧耦合,难以快速移植到国产处理器后端。

发明内容

本发明的目的是提供一种面向即时编译的基于动态库的GOT表管理方法,该面向即时编译的基于动态库的GOT表管理方法降低了LLVM即时编译引擎对新增硬件后端中GOT表的支持难度,提高了LLVM即时编译引擎的移植效率,在基于国产处理器的LLVM即时编译引擎中快速实现了基于动态库的GOT表管理。

为达到上述目的,本发明采用的技术方案是:一种面向即时编译的基于动态库的GOT表管理方法,包括以下步骤:

S1、编译器在即时编译引擎的编译阶段创建包含GOT表的动态链接库,此GOT表位于动态链接库的数据段,具体如下:

S11、在即时编译引擎的源文件中定义无符号整数类型的GOT表数组,以数组的形式存储GOT表的数据,并且声明GOT表数组的大小为64K;

S12、使用链接器的创建共享对象选项-shared和产生地址无关代码选项–fPIC编译步骤S11中定义的包含GOT表数组的源文件,构建包含GOT表的动态链接库;

S2、在即时编译引擎对用户程序的程序代码段进行解析重定位前,即时编译引擎使用加载动态库函数dlopen动态载入步骤S1中构建的包含GOT表的动态链接库到计算机的内存空间,并获取GOT表的首地址,具体如下:

S21、即时编译引擎使用加载动态库函数dlopen载入包含GOT表的动态链接库到内存空间;

S22、即时编译引擎使用获取动态库符号地址函数dlsym从步骤S21载入的动态链接库中获取GOT表的首地址;

S3、即时编译引擎通过分析使用GOT表的程序代码段的变量访存指令获取重定位类型,并根据重定位类型对步骤S2载入的动态链接库中的GOT表进行GOT表覆写和重定位回填,具体如下:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910885728.X/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top