METHODS TO ELIMINATE EXTRA MEMORY LOADS WHILE ACCESSING GLOBAL VARIABLES IN POSITION INDEPENDENT CODE
    1.
    发明申请
    METHODS TO ELIMINATE EXTRA MEMORY LOADS WHILE ACCESSING GLOBAL VARIABLES IN POSITION INDEPENDENT CODE 审中-公开
    在位置独立代码中访问全局变量时消除额外的内存负载的方法

    公开(公告)号:WO2015167763A1

    公开(公告)日:2015-11-05

    申请号:PCT/US2015/024701

    申请日:2015-04-07

    Applicant: GOOGLE INC.

    CPC classification number: G06F8/4434 G06F8/4441 G06F8/447

    Abstract: Methods for reducing memory loads for accessing global variables (globals) when creating executables for position independent (PI) code are disclosed. A first method includes compiling PI code (404), identifying globals (405), and determining whether globals are defined in the executable (407). If a global is not defined in the executable, a definition is created in the executable (409). A second method includes receiving a list of defined globals from instrumented PI code binary (601) and comparing the list with globals in the PI code (607). Memory loads are created for globals that are unlisted (609). A third method includes compiling PI code with special relocations for globals (801) and determining whether globals are defined in the executable (803). If the global is defined in the executable, the special relocation is replaced with a direct load of the global (805). If not, the special relocation is replaced with a two-instruction sequence that loads the global's address and then the global's value (805).

    Abstract translation: 披露了在创建位置无关(PI)代码的可执行文件时减少用于访问全局变量(全局变量)的内存负载的方法。 第一种方法包括编译PI代码(404),识别全局变量(405),以及确定是否在可执行文件(407)中定义全局变量。 如果在可执行文件中未定义全局,则在可执行文件(409)中创建一个定义。 第二种方法包括从仪器化PI代码二进制(601)接收定义的全局变量的列表,并将该列表与PI代码中的全局变量(607)进行比较。 为不公开的全局变量创建内存加载(609)。 第三种方法包括用全局变量的特殊重定位(801)编译PI代码,并确定是否在可执行文件中定义全局变量(803)。 如果在可执行文件中定义了全局,那么特殊重定位将被替换为全局(805)的直接加载。 如果没有,则特殊重定位将替换为加载全局地址,然后加载全局值(805)的双指令序列。

    METHODS AND SYSTEMS FOR REMOVING PLT STUBS FROM DYNAMICALLY LINKED BINARIES
    2.
    发明申请
    METHODS AND SYSTEMS FOR REMOVING PLT STUBS FROM DYNAMICALLY LINKED BINARIES 审中-公开
    从动态链接的二进制文件中移除数据库的方法和系统

    公开(公告)号:WO2016148762A1

    公开(公告)日:2016-09-22

    申请号:PCT/US2016/012936

    申请日:2016-01-12

    Applicant: GOOGLE INC.

    CPC classification number: G06F8/443 G06F8/4443 G06F8/54 G06F9/44521

    Abstract: Provided are methods and systems for removing Procedure Linkage Table (PLT) stubs from dynamically linked binaries. The methods and systems are designed to replace a call to an external function such that a global offset table entry is created for the function that will contain the address of the function and will be early bound. The call-site for the external function then performs one indirect call to the function using the global offset table entry containing the address of the external function.

    Abstract translation: 提供了从动态链接的二进制文件中删除过程链接表(PLT)存根的方法和系统。 方法和系统被设计为替换对外部函数的调用,使得为包含函数地址的函数创建全局偏移表条目,并且将是早期约束。 外部函数的调用站点使用包含外部函数地址的全局偏移表条目对函数执行一次间接调用。

Patent Agency Ranking