• Haryslee's avatar
    feat: 支持native动态加载组件 · d7538340
    Haryslee authored
    1.【需求描述】
    动态库开发部分:
    gcc的sample code。
    提供生成暴露接口生成机制,并允许产品新增需要暴露的接口。
    提供可以判断库允许资源大小的能力,并提供相关工具辅助开发者确定开发的库要求的资源是否可以满足。
    
    动态库运行部分:
    提供elf load的api,可以加载指定路径下的库,并完成符号重映射等运行准备。
    提供elf 暴露符号调用的api,用于调用库的api。
    elf加载&链接异常时,有明确错误记录,返回明确错误类型。
    提供elf 卸载的api。
    
    2.【方案描述】
    (1) 通过灌段的形式记录需要导出符号的地址信息,用于暴露内核对外的接口,在加载链接器中通过查询
    对应的符号信息获取符号地址。
    (2) 加载链接时,解析共享库并将共享库中可加载段通过文件系统读入内存中,并对共享库中未定义的、
    需要重定位的符号进行重定位。需要调用...
    d7538340