mirror of
https://github.com/openharmony/third_party_elfutils.git
synced 2026-07-01 06:41:51 -04:00
2b01d42bd6
Signed-off-by: zhanghaibo <zhanghaibo0@huawei.com>
2.9 KiB
2.9 KiB
elfutils
仓库包含第三方开源软件elfutils,elfutils是一个用于读取、创建和修改ELF二进制文件,查找和处理GNU/Linux上进程和核心文件的DWARF调试数据、符号、线程状态和堆栈跟踪的工具和库的集合。libabigail软件依赖了elfutils。
目录结构
backends/ 不同平台的后端实现
doc/ 文档
lib/ 公共库源码
libasm/ asm相关库源码
libcpu/ cpu相关库源码
libdw/ dw相关库源码
libdwelf/ dwelf相关库源码
libdwfl/ dwfl相关库源码
libebl/ ebl相关库源码
libelf/ elf相关库源码
src/ 源文件
tests/ 测试目录
COPYING 证书文件
COPYING-GPLV2 证书文件
COPYING-LGPLV3 证书文件
README README说明
OpenHarmony如何使用elfutils
OpenHarmony上elfutils是用作libabigail的依赖软件,libabigail在生成ABI特征文件的时候,需要通过elfutils读取二进制库内的DWARF调试数据。
OpenHarmony如何集成elfutils
libabigail的编译依赖了elfutils,elfutils被集成到libabigail工具中。
1.elfutils的编译
elfutils的编译入口在其根目录下的BUILD.gn中。简单示意如下:
# Build libelf
ohos_static_library("libelf_static") {
configs = [ ":elfutils_defaults" ]
sources = sources_libelf
include_dirs = [
"//third_party/elfutils",
"//third_party/elfutils/lib",
"//third_party/elfutils/libelf",
]
deps = [ "//third_party/zlib:libz" ]
subsystem_name = "thirdparty"
part_name = "elfutils"
}
# Build libdw
ohos_static_library("libdw_static") {
configs = [ ":elfutils_defaults" ]
sources = sources_backends
sources += sources_libcpu
sources += sources_libdw
sources += sources_libdwelf
sources += sources_libdwfl
sources += sources_libebl
include_dirs = [
"//third_party/elfutils",
"//third_party/elfutils/lib",
"//third_party/elfutils/libasm",
"//third_party/elfutils/libelf",
"//third_party/elfutils/libcpu",
"//third_party/elfutils/libdw",
"//third_party/elfutils/libdwelf",
"//third_party/elfutils/libdwfl",
"//third_party/elfutils/libebl",
]
deps = [ ":libelf_static" ]
subsystem_name = "thirdparty"
part_name = "elfutils"
}
2.使用elfutils
libabigail的编译依赖了elfutils。简单示意如下:
ohos_static_library("libabigail_static") {
configs = [ "//third_party/libabigail:libabigail_defaults" ]
sources = [
......
]
include_dirs = [
......
]
external_deps = [
"//third_party/elfutils:libdw_static",
]
subsystem_name = "thirdparty"
part_name = "libabigail"
}
elfutils相关内容
License
-
LGPL V3.0 -
GPL V2.0 -
GPL V3.0
风险提示
elfutils是LGPLV3和GPLV3协议类型的三方开源软件,请谨慎使用,使用时须履行相应的开源义务。