From: Coywolf Qi Hunt Date: Thu, 12 Jan 2006 10:15:08 GMT Subject: Re: git binary size... Message-ID: <2cd57c900601120215pdb5da27l@mail.gmail.com> In-Reply-To: 2006/1/12, Linus Torvalds : > > > On Wed, 11 Jan 2006, Andreas Ericsson wrote: > > > > strip: > > strip $(PROGRAMS) > > > > install: strip > > Well, that ends up shaving some more from the binaries, but at a much > bigger cost than just removing "-g". > > With stripped binaries, you can't really do _anything_. You get a > core-file, and you're screwed. Are you sure? gemini:~> file `which mke2fs` /sbin/mke2fs: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), stripped gemini:~> file /lib/libext2fs.so.2 /lib/libext2fs.so.2: symbolic link to `libext2fs.so.2.4' gemini:~> file /lib/libext2fs.so.2.4 /lib/libext2fs.so.2.4: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), stripped In gdb: No symbol table is loaded. Use the "file" command. (gdb) bt #0 0xb7f16445 in ext2fs_mark_generic_bitmap () from /lib/libext2fs.so.2 #1 0xb7f110ed in ext2fs_reserve_super_and_bgd () from /lib/libext2fs.so.2 #2 0xb7f18353 in ext2fs_initialize () from /lib/libext2fs.so.2 #3 0x0804b461 in ?? () #4 0xbf84b9ad in ?? () #5 0x00000000 in ?? () So with stripped binary, I still get the backtrace to locate the buggy function. IMO, Debian packages are build with -g. So I suggest to let git go with `-g and striped' like all other packages do. And if we use gnu autoconf, which provides site config ability, we could easily get (1) "-g, striped" for distros, (2) "not striped" for Linus and (3) "-g3, -O0, no striped" for some git developers. To make git not tight to Linux, but cross platform, consider autoconf. > > With non-stripped binaries you can at least see the function the SIGSEGV > happened in, and you usually even get a half-way decent backtrace etc. > False, see above. > Linus If I missed something in Debian, correct me. -- Coywolf Qi Hunt