Re: [PATCH] Makefile: do not compile git with debugging symbols by default
- From
Alexander Kuleshov <kuleshovmail@gmail.com>
- Date
- Jan 22, 2015, 16:51 UTC
- Message-ID
- <CANCZXo7ocgG27Y48NjYxurVMWOvHkvGqDrLuntkSTxHUK6hcNw@mail.gmail.com>
- In-Reply-To
- <20150122130036.GC19681@peff.net>
Hello Jeff,
Yes, main point is size of executable. I'm sorry, didn't see 'strip' target.
What if we will strip git and other executable files by default and add -g option and don't strip it if DEBUG=1 passed to make. Something like this:
git$X: git.o GIT-LDFLAGS $(BUILTIN_OBJS) $(GITLIBS)
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) git.o \
$(BUILTIN_OBJS) $(LIBS)
ifneq ($(DEBUG),1)
$(MAKE) strip
endif
Thank you.
2015-01-22 19:00 GMT+06:00 Jeff King <peff@peff.net>:
Show 28 quoted lines
> On Thu, Jan 22, 2015 at 06:50:37PM +0600, Alexander Kuleshov wrote: > >> Standard user has no need in debugging information. This patch adds >> DEBUG=1 option to compile git with debugging symbols and compile without >> it by default. > > This explanation is missing why it is beneficial _not_ to have the > debugging information. > > I expect the answer is "it makes the executable smaller". And that is > true, but it gets smaller still if you run "strip" on the result: > > $ make CFLAGS= >/dev/null 2>&1 && wc -c <git > 2424248 > > $ make CFLAGS=-g >/dev/null 2>&1 && wc -c <git > 4500816 > > $ strip git && wc -c <git > 2109200 > > So I am not sure who this is helping. If you are size-conscious, you > should use strip, in which case the "-g" flag does not matter (and we > even have "make strip" to help you). > > Is there some other reason to avoid the debugging information? > > -Peff
-- _________________________ 0xAX