-
Notifications
You must be signed in to change notification settings - Fork 23
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move implementation out of interface headers (#61)
tkrzw has quite a bit of code that is implemented in header files that are supposed to be included by consuming projects. This causes some technical issues with [weak symbols](https://en.wikipedia.org/wiki/Weak_symbol) inside the consumer's translation units (or `.obj` files), that might fail to be deduplicated if the consuming project uses compiler settings different from those used by the tkrzw build system. More importantly, however, parts of the code, especially imlementations of non-virtual functions, might end up being embedded into consumer applications when an optimization phase eliminates the procedure calls, raising many concerns considering licensing. This commit moves all implementations from header files documented for inclusion into third-party projects on https://dbmx.net/tkrzw/, as well as any header that implicitly gets included by including a tkrzw interface header into source files. Further, `inline` declarations are removed as within tkrzw, the inlining happens on the discredition of the linker independed of the `inline` keyword, while cross-module inlining is what this commit is supposed to interdict. Nothing can be done about template code in tkrzw_lib_common.h , however, template code is whitelisted on GPLv3.
- Loading branch information
1 parent
160e5cb
commit c31bf75
Showing
29 changed files
with
1,516 additions
and
1,024 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.