
In message 4791E710007FEB4BBF83775D787F462F070D3E90@az33exm22.fsl.freescale.net you wrote:
Let me make sure the intention of this change. With or without this change, we can always evaluate $(CROSS_COMPILE)gcc --version, right? Or am I missing something?
Yes, we can always evaluate $(CROSS_COMPILE)gcc --version, but not $(CC)gcc --version. The changed was from $(CC) to $(CROSS_COMPILE). This
Stop! We are not talking about "$(CC)gcc"!
The change was this:
-ifeq ($(findstring 4.2,$(shell $(CC) --version)),4.2) +ifeq ($(findstring 4.2,$(shell $(CROSS_COMPILE)gcc --version)),4.2)
And ``$(CC)'' and ``$(CROSS_COMPILE)gcc'' should be really the same here.
issue does not affect if compiler version is 4.1-xx and using Fedora 3 and above, and compiler version is 4.2-xx and using only Fedora 3. But, it will show compiling error if compiler version is 4.2-xx and using Fedora 4 and above.
$(CC) is the CROSS compiler, so the version of gcc on the host system should not play any role. The host compiler would be $(HOSTCC)
The information will retrieve correctly from GCC when compiling the source code to object code. Until, when it starts linking the all the libs and objs, it retrieves the incorrect information from GCC and select the other PLATFORM_CPPFLAGS and causing linking errors.
There are several $(CC)/$(AR)/$(AS)/$(CPP) users in cpu/*/Makefile &
cpu/*/config.mk.
I'm wondering whether we need to fix all these usages or not.
No. Only in cpu/*/config.mk with ifeq (condition) PLATFORM_CPPFLAGS += ... else PLATFORM_CPPFLAGS += ...
Why should that be different?
Best regards,
Wolfgang Denk