
On Saturday 13 June 2009 08:28:23 Jean-Christophe PLAGNIOL-VILLARD wrote:
On 04:13 Sat 13 Jun , David Brownell wrote:
On Saturday 13 June 2009, Jean-Christophe PLAGNIOL-VILLARD wrote:
The machine_is_X() macros are automatically #ifdeffed in the header; no size impact. Read <asm/mach-types.h> ...
If I use this pacth on the rm9200ek the u-boot.bin size will increase for nothing
I'm not following you. The lines are:
#ifdef CONFIG_MACH_CSB337 # ifdef machine_arch_type # undef machine_arch_type # define machine_arch_type __machine_arch_type # else # define machine_arch_type MACH_TYPE_CSB337 # endif # define machine_is_csb337() (machine_arch_type == MACH_TYPE_CSB337) #else # define machine_is_csb337() (0) #endif
... and similar for EK. The csb337 config file sets CONFIG_MACH_CSB337, and nothing else does. Result: on rm9200ek, that test becomes if(0), while on csb337 it becomes if (X == X), where X == MACH_TYPE_CSB337.
If I was able to detect dynamicly on which board I will run ok but it's not the case here so please use #ifdef CONFIG_MACH_xxx #else #endif
See above. There already *IS* such an #ifdef, but it's just not cluttering up the guts of that driver.
you adding MUST have NO size impact on other board
if we apply you code as it we will increase the size of u-boot for every rm9200 board that use the ethernet
i dont get it. the CPP expands into if(0) and unless you have a completely shitty compiler, gcc will do dead code elimination on it resulting in the same binary size. -mike