RFR: Remove duplicate copies of libclang on Linux [v3]

Maurizio Cimadamore mcimadamore at openjdk.org
Mon May 27 15:03:23 UTC 2024


> On Linux, libclang.so is found in three forms:
> 
> * `libclang.so.13.0.0`, this is the real library
> * `libclang.so.13`, this is a symlink that points to the above library
> * `libclang.so`, this is a symlink that points to the above symlink
> 
> Because of this, and because Gradle lacks ability to distinguish between real filenames and symlinks, we end up (on Linux) with multiple versions of libclang, which significantly impact on the size of the final jextract artifact.
> 
> The solution is to add some special logic on Linux where:
> 
> * only `libclang.so.13.0.0` is copied from LLVM
> * `libclang.so.13.0.0` is later renamed to `libclang.so`
> 
> This PR implement such changes both for gradle and make build (both have been tested locally).

Maurizio Cimadamore has updated the pull request incrementally with two additional commits since the last revision:

 - Only tweak copy path for linux, not mac (gradle)
 - Tweak conditional move

-------------

Changes:
  - all: https://git.openjdk.org/jextract/pull/246/files
  - new: https://git.openjdk.org/jextract/pull/246/files/1f09fa86..516bf35f

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jextract&pr=246&range=02
 - incr: https://webrevs.openjdk.org/?repo=jextract&pr=246&range=01-02

  Stats: 2 lines in 2 files changed: 0 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jextract/pull/246.diff
  Fetch: git fetch https://git.openjdk.org/jextract.git pull/246/head:pull/246

PR: https://git.openjdk.org/jextract/pull/246


More information about the jextract-dev mailing list