X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-workers-bounces using -f Sender: rich AT phekda DOT freeserve DOT co DOT uk Message-ID: <3C2721D9.48915EAE@phekda.freeserve.co.uk> Date: Mon, 24 Dec 2001 12:38:49 +0000 From: Richard Dawe X-Mailer: Mozilla 4.77 [en] (X11; U; Linux 2.2.19 i586) X-Accept-Language: de,fr MIME-Version: 1.0 To: djgpp-workers AT delorie DOT com Subject: Re: Building a profiled version of libc References: <200112021239 DOT NAA08303 AT lws256 DOT lu DOT erisoft DOT se> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Reply-To: djgpp-workers AT delorie DOT com Hello. Martin Stromberg wrote: > Ok. What if we have gcc-profile.opt and gcc-noprofile.opt and let > "make" do "cp gcc-profile.opt gcc.opt; make clean; make; cp > gcc-noprofile.opt gcc.opt; make clean; make;"? Or add a target > "profile" that builds a profiling libc or something like that? It might be cleaner to add something like this to src/makefile.inc: PROFILE ?= 0 ifeq ($(PROFILE), 1) PROFILE_CFLAGS=-pg endif and then use PROFILE_GCCOPTS in the XGCC, etc. rules, e.g.: XGCC = $(CROSS_GCC) $(GCC_OPT) -I. -I- -isystem $(TOP)/../../include $(CFLAGS) $(PROFILE_CFLAGS) XLGCC = $(CROSS_GCC) $(GCCL_OPT) -I. -I- -isystem $(TOP)/../../include $(CFLAGS) $(PROFILE_CFLAGS) We can't just add -pg to CFLAGS, because we don't want the non-profiling gcc compile to use -pg: XNOPGGCC = $(CROSS_GCC) $(shell sed -f $(TOP)/../noprof.sed $(TOP)/../gcc.opt) -I. -I- -isystem $(TOP)/../../include $(CFLAGS) With this you could get a profiling library like so: cd src; make clean && make PROFILE=1 Another choice is to choose the options file depending on the setting of PROFILE. I think this approach may be better, because then all compiler options would be taken from files, rather than being modified by environment variables. E.g.: ifeq ($(PROFILE),1) GCC_OPT_FILE=gcc-pg.opt else GCC_OPT_FILE=gcc.opt endif GCCL_OPT_FILE=gcc-l.opt and replace all uses of $(TOP)/../gcc*.opt with the appropriate variable. Bye, Rich =] -- Richard Dawe [ http://www.phekda.freeserve.co.uk/richdawe/ ]