> On Jan 5, 2016, at 1:15 PM, Henrik Austad wrote: > > On Mon, Jan 04, 2016 at 05:25:07PM +0100, Uwe Kleine-König wrote: >> On Mon, Jan 04, 2016 at 08:20:01AM -0800, Khem Raj wrote: >>> >>>> On Jan 4, 2016, at 5:39 AM, Jeff Epler wrote: >>>> >>>> I believe the patch does not have the desired effect, because make(1) >>>> always sets CC automatically: >>>> >>>> $ cat raj.mk >>>> CROSS_COMPILE=x86_64-linux-gnu- >>>> CC?=$(CROSS_COMPILE)gcc >>>> .PHONY: default >>>> default: >>>> @echo CC=$(CC) >>>> $ make -f raj.mk >>>> CC=cc >>>> >>>> With your patch, those who specify CROSS_COMPILE, or for whom gcc and cc >>>> are different, will get different (worse) behavior. >>> >>> Right. I think if CC was used as such with out constructing out of CROSS_COMPILE >>> in Makefile then my issue would be fixed too. However this would mean that cross compiling users >>> now have to pass CC = themselves instead of CROSS_COMPILE prefix. Is that >>> acceptable ? >> >> You could play with something like: >> >> ifeq($(origin CC),default) >> CC=$(CROSS_COMPILE)gcc >> endif >> >> but not sure I'd like the result. If you asked me, I'd drop all that >> CROSS_COMPILE stuff. > > Why? Isn't this the normal way of triggering cross-compile? AFIAK, that's > how the kernel does it, and that seems like a pretty sane way. except, kernel lets you override CC if you want to. > > And yes, I compile rt-tests to several architectures, so I'm quite fond of > the CROSS_COMPILE switch. In fact, I might get cross if you cross it out :) All you would need is to add CC = ${CROSS_COMPILE}gcc in one place in your Make env > > -- > Henrik Austad