On Mon, Mar 07, 2011 at 02:37:38AM +0100, Denys Vlasenko wrote: > On Monday 07 March 2011 01:59, Nathan Phillip Brink wrote: > > This fixes the issue where LDFLAGS escaped with -Wl are ignored during > > compilation. It also simplifies using CFLAGS (such as -m32 on x86_64) > > which apply to both compilation and linking situations. > > "make CFLAGS=-m32" disables ALL optimizations. > You need to use EXTRA_CFLAGS (and EXTRA_LDFLAGS): > > text data bss dec hex filename > 1134371 2125 9156 1145652 117b34 busybox_CFLAGSm32 > 769631 2067 9084 780782 be9ee busybox_EXTRA_CFLAGSm32 > > make EXTRA_CFLAGS=-m32 EXTRA_LDFLAGS=-m32 works without your patch. > Do you see other reasons to apply it?
I would like to get rid of all direct calls to ld because I think it's cleaner to directly call the compiler driver instead. Also, this does fix the following TODO in Makefile.build: # TODO: LDFLAGS usually is supposed to contain gcc's flags, not ld's. # but here we feed them to ld! What I'm saying is that removing the $(filter-out -Wl$(comma)%,$(LDFLAGS) $(EXTRA_LDFLAGS)) line is a benefit :-). Also, concerning both CFLAGS and LDFLAGS, I like automake's behavior of sending CFLAGS to every invocation of $(CC) instead of GNU Make's behavior of only using LDFLAGS during linking. This way, CFLAGS rules over the compiler driver, CPPFLAGS over compilation, and LDFLAGS over linking. Sorry about my ignorance about CFLAGS versus EXTRA_CFLAGS. I did eventually notice that CFLAGS=-m32 disables optimizations and actually used the simple CFLAGS=-m32\ -O2\ -pipe during one of my compilations. It looks like I need to add EXTRA_CFLAGS to every place that I added CFLAGS now if I want to pass CFLAGS during linking. Should I throw another patch for that? -- binki Look out for missing apostrophes!
pgpduBO6X30EG.pgp
Description: PGP signature
_______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
