Re: [PATCH 1/1] do not add common-main to lib
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Aug 15, 2016, 12:20 UTC
- Message-ID
- <alpine.DEB.2.20.1608151418150.4924@virtualbox>
- In-Reply-To
- <20160815075207.31280-1-list@eworm.de>
Hi Christian,
On Mon, 15 Aug 2016, Christian Hesse wrote:
Show 10 quoted lines
> From: Christian Hesse <mail@eworm.de> > > Commit 08aade70 (mingw: declare main()'s argv as const) changed > declaration of main function. This breaks linking external projects > (e.g. cgit) to libgit.a with: > > error: Multiple definition of `main' > > So do not add common-main to lib and let projects have their own > main function.
I am opposed to this change.
For one, libgit.a is *not* a library with an API, for a good reason: nothing in Git's development guarantees any kind of stable API. For that reason, libgit.a is not installed, either, and neither are any headers.
And even more importantly: *iff* you *insist* on using libgit.a in your project *despite* having been told not to, it is your responsibility to stay up-to-date with the requirements of it.
One such requirement is that you now implement cmd_main() instead of main().
So if you want to continue to have an out-of-tree project that links against the (private) libgit.a, it is your out-of-tree project that needs changing, not libgit.a.
Ciao, Johannes