git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: Elmar Pruesse <p@ucdenver.edu>
Cc: "git@vger.kernel.org" <git@vger.kernel.org>
Subject: Re: Reducing git size by building libgit.so
Date: Tue, 11 Jun 2019 23:48:19 +0000	[thread overview]
Message-ID: <20190611234815.GB8616@genre.crustytoothpaste.net> (raw)
In-Reply-To: <21f1f334-755e-3283-d0da-ec0ab9231cfc@ucdenver.edu>

[-- Attachment #1: Type: text/plain, Size: 1323 bytes --]

On 2019-06-11 at 19:52:18, Elmar Pruesse wrote:
> Hi!
> 
> The total compiled size of libexec/git-core is currently somewhere
> around 30 MB. This is largely due to a number of binaries linking
> statically against libgit.a. For some folks, every byte counts. I
> meddled with the Makefile briefly to make it build and use a libgit.so
> instead, which dropped package size down to 5MB.
> 
> Are there, beyond the ~20 ms in extra startup time and the slightly
> bigger hassle with DSO locations, reasons for the choice to link statically?

I think the reason is that libgit is not API stable and we definitely
don't want people linking against it. Before libgit2 existed, projects
like cgit built their own libgit and it required pinning to a specific
version of Git.

Also, some people install Git into their home directories, and a shared
library means that they'll have to use LD_LIBRARY_PATH (or equivalent)
to run Git.

Finally, we have support for a runtime relocatable Git which can be run
out of any path and still automatically find its dependent binaries.
That won't work with a shared library.

So if we did allow for building a shared library, it would have to be an
option that defaulted to off, I think.
-- 
brian m. carlson: Houston, Texas, US
OpenPGP: https://keybase.io/bk2204

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 868 bytes --]

  reply	other threads:[~2019-06-11 23:48 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-11 19:52 Reducing git size by building libgit.so Elmar Pruesse
2019-06-11 23:48 ` brian m. carlson [this message]
2019-06-12  9:29   ` Duy Nguyen
2019-06-12 13:57   ` Paul Smith
2019-06-12 23:31     ` brian m. carlson
2019-06-13 19:19       ` Johannes Sixt
2019-06-13  7:51     ` Johannes Schindelin
2019-06-13 17:28       ` Paul Smith
2019-06-13 18:23         ` Junio C Hamano
2019-06-12  9:41 ` Ævar Arnfjörð Bjarmason
2019-06-12  9:46   ` Duy Nguyen
2019-06-12 10:25   ` SZEDER Gábor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190611234815.GB8616@genre.crustytoothpaste.net \
    --to=sandals@crustytoothpaste.net \
    --cc=git@vger.kernel.org \
    --cc=p@ucdenver.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).