KhronosGroup / KhronosGroup/SPIRV-Tools

Support shared libs "properly"

Open
#3,214 12 comments 0 reactions 0 assignees View on GitHub
dev:building version/release
Dominant language
C++
Stars
1.4k
Forks
709
Avg merge
1d 22h
Merged PRs (30d)
28

Description

- Generate a shared library corresponding to each static library we can build. (Our team's flows normally only use static libraries.)
- Only expose entry points we deliberately want to export. (hidden visibility by default)
- use proper SONAME for Linux: #3046
- need to determine a sensible version-numbering system. Since we don't absolutely promise backward compatibility, I think it's best to use 0... E.g. if we're in the v2020.2-dev or v2020.2 releases, then SONAME would end in .0.2020.2

See also the interesting discussion over at Shaderc: https://github.com/google/shaderc/issues/381 and https://github.com/google/shaderc/pull/498

Contributor guide

Open the contributing guide

Research direction

Review the existing build configuration for static libraries and compare the referenced Shaderc discussion and pull request. Determine how each buildable static library maps to a shared library, how exports are currently controlled, and what versioning decisions are still unresolved; done means the requirements are implemented consistently with deliberate exports and a valid Linux SONAME.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.