Patchwork [mtd-utils] fix CFLAGS handling wrt cross compilation

login
register
mail settings
Submitter Nicolas Pitre
Date Nov. 19, 2008, 6:31 p.m.
Message ID <alpine.LFD.2.00.0811191321420.27509@xanadu.home>
Download mbox | patch
Permalink /patch/9621/
State Accepted
Commit c3d328ca27b31dad62ab7ca3edf55087352d27a8
Headers show

Comments

Nicolas Pitre - Nov. 19, 2008, 6:31 p.m.
Let's have the "new ubi-utils" makefile handle CFLAGS like the other 
makefiles.  This is important when cross compiling and CFLAGS is 
externally provided. Without this, local include files are not found due 
to the various -I arguments which are then lost.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
Mike Frysinger - Nov. 20, 2008, 1:52 a.m.
On Wed, Nov 19, 2008 at 13:31, Nicolas Pitre wrote:
> Let's have the "new ubi-utils" makefile handle CFLAGS like the other
> makefiles.  This is important when cross compiling and CFLAGS is
> externally provided. Without this, local include files are not found due
> to the various -I arguments which are then lost.
>
> Signed-off-by: Nicolas Pitre <nico@marvell.com>

i dont think sticking CFLAGS into CPPFLAGS is right.  they're separate
on purpose.  you also break custom CPPFLAG injection here ... CPPFLAGS
should be treated just like CFLAGS: appended, not strictly set.
-mike
Artem Bityutskiy - Nov. 21, 2008, 10:38 a.m.
On Wed, 2008-11-19 at 13:31 -0500, Nicolas Pitre wrote:
> Let's have the "new ubi-utils" makefile handle CFLAGS like the other 
> makefiles.  This is important when cross compiling and CFLAGS is 
> externally provided. Without this, local include files are not found due 
> to the various -I arguments which are then lost.
> 
> Signed-off-by: Nicolas Pitre <nico@marvell.com>

Applied, thanks.
Artem Bityutskiy - Nov. 21, 2008, 10:41 a.m.
On Wed, 2008-11-19 at 20:52 -0500, Mike Frysinger wrote:
> On Wed, Nov 19, 2008 at 13:31, Nicolas Pitre wrote:
> > Let's have the "new ubi-utils" makefile handle CFLAGS like the other
> > makefiles.  This is important when cross compiling and CFLAGS is
> > externally provided. Without this, local include files are not found due
> > to the various -I arguments which are then lost.
> >
> > Signed-off-by: Nicolas Pitre <nico@marvell.com>
> 
> i dont think sticking CFLAGS into CPPFLAGS is right.  they're separate
> on purpose.  you also break custom CPPFLAG injection here ... CPPFLAGS
> should be treated just like CFLAGS: appended, not strictly set.

May be, I'm bad in Makefile stuff. But this is what the rest of Makefile
files in mtd-utils do, so I've applied Nicolas' patch.

Patch

diff --git a/ubi-utils/new-utils/Makefile b/ubi-utils/new-utils/Makefile
index ba4c20f..6fce7c6 100644
--- a/ubi-utils/new-utils/Makefile
+++ b/ubi-utils/new-utils/Makefile
@@ -2,7 +2,6 @@ 
 # Makefile for ubi-utils
 #
 
-OPTFLAGS := -O2 -Wall
 KERNELHDR := ../../include
 DESTDIR := /usr/local
 SBINDIR=/usr/sbin
@@ -10,7 +9,8 @@  MANDIR=/usr/man
 INCLUDEDIR=/usr/include
 
 CC := $(CROSS)gcc
-CFLAGS := -Iinclude -Isrc -I$(KERNELHDR) $(OPTFLAGS) -Werror -Wall
+CFLAGS ?= -O2 -Wall
+CPPFLAGS := -Iinclude -Isrc -I$(KERNELHDR) $(CFLAGS) -Werror -Wall
 
 LIBS = libubi libmtd libubigen libiniparser libscan
 UTILS = ubiupdatevol ubimkvol ubirmvol ubicrc32 ubinfo ubiattach \
@@ -26,7 +26,7 @@  all: $(UTILS)
 
 # The below is the rule to get an .o file from a .c file
 %.o: %.c
-	$(CC) $(CFLAGS) $< -c -o $@
+	$(CC) $(CPPFLAGS) $< -c -o $@
 
 # And the below is the rule to get final executable from its .o and common.o
 %: libubi.a %.o common.o