git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Shrink the git binary a bit by avoiding unnecessary inline functions

From
Christian MICHON <christian.michon@gmail.com>
Date
Jun 23, 2008, 01:01 UTC
Message-ID
<46d6db660806221801j7207e6b0sdf91c2243fad5349@mail.gmail.com>
In-Reply-To
<46d6db660806221432m6a6e2f3egf78faa1510f8d643@mail.gmail.com>

On Sun, Jun 22, 2008 at 9:32 PM, Christian MICHON <christian.michon@gmail.com> wrote:

Show 28 quoted lines
> using gcc-3.4.6 and uclibc-0.9.29 (not exactly everyone's
> configuration of course...)
> I get different numbers with CFLAGS=-Os and NO_CURL, NO_ICONV on plain
> git-1.5.6:
>
> sh-3.2# ls -lh git
> -rwxr-xr-x    3 root     root       699.7k Jun 22 23:26 git
>
> sh-3.2# size git
>   text    data     bss     dec     hex filename
>  616544   10960  272272  899776   dbac0 git
>
> after I use your patch, it goes to:
>
> sh-3.2# ls -lh git
> -rwxr-xr-x    1 root     root       652.6k Jun 22 23:30 git
>
> sh-3.2# size git
>   text    data     bss     dec     hex filename
>  568124   10960  272272  851356   cfd9c git
>
> So your patch obviously works here too but I get quite smaller figures too.
>
> curl and iconv are not available on my distro detaolb, maybe it's a
> big difference too...
>
> Could your figures come from recent gcc/glibc versions ?
>
Linus,

I've put my hands on a usb stick with ubuntu (gcc-4.2.3 and glibc-2.7), containing all packages needed for a pristine compilation of git-1.5.6.

I only changed CFLAGS to -Os, no debug info compiled.

ubuntu@ubuntu:~/Desktop/git-1.5.6$ ls -lh git -rwxr-xr-x 1 ubuntu ubuntu 718K 2008-06-23 00:47 git

ubuntu@ubuntu:~/Desktop/git-1.5.6$ size git
   text	   data	    bss	    dec	    hex	filename
 616606	   9876	 270812	 897294	  db10e	git

There's more than 80k difference with your figures (I have not even applied your patch yet). May I ask which version of gcc you're using ? The numbers you provided were really with -Os ?

Once your patch is applied, these are the final figures:

ubuntu@ubuntu:~/Desktop/git-1.5.6$ ls -lh git -rwxr-xr-x 1 ubuntu ubuntu 692K 2008-06-23 00:59 git

ubuntu@ubuntu:~/Desktop/git-1.5.6$ size git
   text	   data	    bss	    dec	    hex	filename
 591554	   9876	 270812	 872242	  d4f32	git
-- 
Christian
--
http://detaolb.sourceforge.net/, a linux distribution for Qemu with Git inside !
Previous: Christian MICHONNext: Linus Torvalds
Message 3 of 7 in “Shrink the git binary a bit by avoiding unnecessary inline functions”
  1. Linus TorvaldsJun 22, 2008
  2. Christian MICHONJun 22, 2008
  3. Christian MICHONJun 23, 2008
  4. Linus TorvaldsJun 23, 2008
  5. Christian MICHONJun 23, 2008
  6. Matthieu MoyJun 22, 2008
  7. Linus TorvaldsJun 22, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.