On Monday 10 October 2011 11:31:39 Stefano Babic wrote: > On 10/10/2011 05:19 PM, Mike Frysinger wrote: > > On Monday 10 October 2011 06:50:12 Stefano Babic wrote: > >> +int __def_i2c_set_bus_num(unsigned int bus) > >> +{ > >> + return 0; > >> +} > >> +int i2c_set_bus_num(unsigned int) > >> + __attribute__((weak, alias("__def_i2c_set_bus_num"))); > > > > any reason this can't just be: > > __weak int i2c_set_bus_num(unsigned int bus) > > { > > > > return 0; > > > > } > > > > i can understand having a default func when it actually does something, > > but i don't see much value in a stub that returns 0 > > It seems to me that this is the commonly used style in u-boot. The same > happens for the i2c_init_board, some lines before, and in a lot of other > modules: > > void __def_i2c_init_board(void) > { > return; > } > void i2c_init_board(void) > __attribute__((weak, alias("__def_i2c_init_board"))); > > Simply grepping in u-boot code, the default function is defined even if > it does nothing,
i believe we have two standards. i'm not sure which gets used more, or if it's just a wash. i think it makes sense to have an accessible default func if it does something useful, but not if it's just a stub. in the __def/weak style above, unless people use --gc-sections when linking (i think we've got many people doing this now, but not all), you end up with dead code in the binary. in the code i proposed, the func gets discarded both when using --gc-sections and when not. -mike
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot