From 53f739329484b6f08f47bf0408544864b279ba3e Mon Sep 17 00:00:00 2001 From: Yury Gribov Date: Sun, 7 Apr 2024 14:37:29 +0300 Subject: [PATCH] Move linker wrapper to dedicated file. --- .github/workflows/ci.yml | 4 ++-- README.md | 18 +----------------- doc/LinkerWrapper.md | 14 ++++++++++++++ 3 files changed, 17 insertions(+), 19 deletions(-) create mode 100644 doc/LinkerWrapper.md diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index df55a39..cd40bdd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,11 +7,11 @@ on: push: paths-ignore: - 'LICENSE.txt' - - 'README.md' + - '**.md' pull_request: paths-ignore: - 'LICENSE.txt' - - 'README.md' + - '**.md' jobs: Baseline: strategy: diff --git a/README.md b/README.md index 86b8cb1..c4e1a58 100644 --- a/README.md +++ b/README.md @@ -120,23 +120,6 @@ By default the tool does not try to wrap vtables exported from the library. This $ implib-gen.py --vtables ... ``` -# Linker wrapper - -Generation of wrappers may be automated via linker wrapper `scripts/ld`. -Adding it to `PATH` (in front of normal `ld`) would by default result -in all dynamic libs (besides system ones) to be replaced with wrappers. -Explicit list of libraries can be specified by exporting -`IMPLIBSO_LD_OPTIONS` environment variable: -``` -export IMPLIBSO_LD_OPTIONS='--wrap-libs attr,acl' -``` -For more details run with -``` -export IMPLIBSO_LD_OPTIONS=--help -``` - -Atm linker wrapper is only meant for testing. - # Overhead Implib.so overhead on a fast path boils down to @@ -164,6 +147,7 @@ The tool also lacks the following important features: * proper support for multi-threading * symbol versions are not handled at all * keep fast paths of shims together to reduce I$ pressure +* support for macOS and BSDs Finally, there are some minor TODOs in code. diff --git a/doc/LinkerWrapper.md b/doc/LinkerWrapper.md new file mode 100644 index 0000000..9373a7b --- /dev/null +++ b/doc/LinkerWrapper.md @@ -0,0 +1,14 @@ +Generation of wrappers may be automated via linker wrapper `scripts/ld`. +Adding it to `PATH` (in front of normal `ld`) would by default result +in all dynamic libs (besides system ones) to be replaced with wrappers. +Explicit list of libraries can be specified by exporting +`IMPLIBSO_LD_OPTIONS` environment variable: +``` +export IMPLIBSO_LD_OPTIONS='--wrap-libs attr,acl' +``` +For more details run with +``` +export IMPLIBSO_LD_OPTIONS=--help +``` + +Atm linker wrapper is only meant for testing.