• Home
Name Date Size #Lines LOC

..--

.github/07-Sep-2024-337258

autoconf-archive/07-Sep-2024-596550

bash-completion/07-Sep-2024-345333

doc/07-Sep-2024-20,88418,010

docker/07-Sep-2024-12199

include/07-Sep-2024-16,1799,583

m4/07-Sep-2024-32

relicensing-scripts/07-Sep-2024-465416

scripts/07-Sep-2024-3921

src/07-Sep-2024-99,37755,832

tests/07-Sep-2024-862,797850,518

tools/07-Sep-2024-10,6457,836

.clang-formatD07-Sep-2024779 2827

.gitignoreD07-Sep-2024214 2923

.mailmapD07-Sep-2024639 87

ABIXML-FORMAT-VERSIONSD07-Sep-20242.7 KiB6854

AUTHORSD07-Sep-202435 31

BUILD.gnD07-Sep-2024891 2925

COMMIT-LOG-GUIDELINESD07-Sep-20244.9 KiB13097

COMPILINGD07-Sep-20243 KiB11571

CONTRIBUTINGD07-Sep-202412.4 KiB311231

ChangeLogD07-Sep-20241.9 MiB44,41539,472

LICENSE.txtD07-Sep-202412 KiB220182

Makefile.amD07-Sep-20242.3 KiB9757

NEWSD07-Sep-202474 KiB1,4591,388

OAT.xmlD07-Sep-20247.7 KiB10282

READMED07-Sep-2024991 2418

README-DOCKER.mdD07-Sep-20241.8 KiB6746

README.OpenSourceD07-Sep-2024312 1211

README_OpenHarmony.mdD07-Sep-20241.8 KiB5939

VISIBILITYD07-Sep-20242.5 KiB6847

abigail.m4D07-Sep-20244.5 KiB164142

bundle.jsonD07-Sep-2024875 3534

config.hD07-Sep-20245.9 KiB20464

configure.acD07-Sep-202433.7 KiB1,080920

default.abignoreD07-Sep-20246.1 KiB177149

gen-changelog.pyD07-Sep-20244.5 KiB151101

install-shD07-Sep-202412.7 KiB512351

libabigail.pc.inD07-Sep-2024298 1210

license-change-2020.txtD07-Sep-20241.4 KiB3830

ltmain.shD07-Sep-2024275.8 KiB9,6367,304

release-text-template.txtD07-Sep-20241.3 KiB3523

update-copyright.shD07-Sep-2024424 1813

README

1This is the Application Binary Interface Generic Analysis and
2Instrumentation Library.
3
4It aims at constructing, manipulating, serializing and de-serializing
5ABI-relevant artifacts.
6
7The set of artifacts that we are intersted is made of quantities like
8types, variable, functions and declarations of a given library or
9program.  For a given library or program this set of quantities is
10called an ABI corpus.
11
12This library aims at (among other things) providing a way to compare
13two ABI Corpora (apparently the plural of corpus is copora, heh,
14that's cool), provide detailed information about their differences,
15and help build tools to infer interesting conclusions about these
16differences.
17
18You are welcome to contribute to this project after reading the files
19CONTRIBUTING and COMMIT-LOG-GUIDELINES files in the source tree.
20
21Communicating with the maintainers of this project -- including
22sending patches to be include to the source code -- happens via email
23at libabigail@sourceware.org.
24

README-DOCKER.md

1# Libabigail Docker
2
3Libabigail comes with two Dockerfile in [docker](docker) to build each of:
4
5 - a Fedora base image (recommended)
6 - an Ubuntu base image.
7
8These containers are built and deployed on merges to the main branch and releases.
9
10### Usage
11
12Here is how to build the containers. Note that we build so it belongs to the same
13namespace as the repository here. "ghcr.io" means "GitHub Container Registry" and
14is the [GitHub packages](https://github.com/features/packages) registry that supports
15 Docker images and other OCI artifacts.
16
17```bash
18$ docker build -f docker/Dockerfile.fedora -t ghcr.io/woodard/libabigail-fedora .
19```
20```bash
21$ docker build -f docker/Dockerfile.ubuntu -t ghcr.io/woodard/libabigail-ubuntu-22.04 .
22```
23
24Note that currently the fedora image is deployed to `ghcr.io/woodard/libabigail:latest`.
25
26### Shell
27
28To shell into a container (here is an example with ubuntu):
29
30```bash
31$ docker run -it ghcr.io/woodard/libabigail-ubuntu-22.04 bash
32```
33
34Off the bat, you can find the abi executables:
35
36```bash
37# which abidiff
38/opt/abigail-env/.spack-env/view/bin/abidiff
39```
40
41Since the ubuntu base uses spack, you can interact with spack.
42You can go to the environment in `/opt/abigail-env` and (given you
43have the source code bound to `/src`) build and test again.
44
45```bash
46$ spack install
47```
48
49And that's it! This workflow should make it easy to install development versions of libabigail with spack.
50We will also use the "production" containers to grab libraries in:
51
52```
53$ ls /opt/abigail-env/.spack-env/view/
54bin  include  lib  share
55```
56
57Note that the fedora container does not come with spack.
58
59### Testing
60
61We provide a testing container, which will use a fedora base and add new code to
62compile, and then run `make check`. You can do this as follows on your local machine:
63
64```bash
65$ docker build -f docker/Dockerfile.test -t test .
66```
67

README.OpenSource

1[
2  {
3    "Name": "libabigail",
4    "License": "Apache License 2.0",
5    "License File": "LICENSE.txt",
6    "Version Number": "2.2",
7    "Owner": "zhanghaibo0@huawei.com",
8    "Upstream URL": "https://sourceware.org/libabigail/",
9    "Description": "ABI check for dynamic libraries of different versions."
10  }
11]
12

README_OpenHarmony.md

1# libabigail
2
3仓库包含第三方开源软件libabigail,libabigail是一个用于不同版本二进制库的ABI检查工具。开发者使用这个工具可以生成二进制库的ABI特征文件,并且可以比较两个版本之间的特征文件,从而可以看出同一个二进制库在两个版本之间是否发生了ABI变化。
4
5## 目录结构
6
7```
8doc/           文档
9include/       头文件
10scripts/       脚本
11src/           源文件
12tests/         测试目录
13tools/         工具源码
14LICENSE.txt    证书文件
15README         README说明
16```
17
18## OpenHarmony如何使用libabigail
19
20SA独立升级的特性需要对相关的二进制库进行ABI检查,以保证二进制库的前向兼容。通过libabigail提供的工具对比基线的ABI特征文件与编译时实时生成的ABI特征文件,可以看出ABI是否发生了变化,如果是则编译报错。
21
22## OpenHarmony如何集成libabigail
23
24libabigail是作为host端的工具存在,不会随镜像发布到产品中。
25
26### 1.libabigail编译入口
27
28libabigail的编译入口在其根目录下的BUILD.gn中。
29
30```makefile
31group("libabigail-tools_host_toolchain") {
32  deps = [
33    "//third_party/libabigail/tools:abidiff($host_toolchain)",
34    "//third_party/libabigail/tools:abidw($host_toolchain)",
35  ]
36}
37```
38
39可以看出使用了libabigail中的abidiff和abidw这两个工具。
40
41### 2.使用libabigail
42
43SA独立升级特性提供了新的编译模板`ohos_module_package`,其中直接指定了对libabigail的依赖。
44
45```makefile
46deps += [ "//third_party/libabigail:libabigail-tools_host_toolchain" ]
47```
48这样只要有模块使用了`ohos_module_package`模板,libabigail工具就会编译出来。
49
50## libabigail相关内容
51
52[libabigail官网](https://sourceware.org/libabigail/)
53
54## License
55
56`Apache License V2.0`
57
5859