Dear Tom Rini, > On 09/18/12 11:01, Marek Vasut wrote: > > Dear Tom Rini, > > > >> On 09/18/12 10:13, Marek Vasut wrote: > >>> Dear Tom Rini, > >>> > >>>> On Mon, Sep 17, 2012 at 01:21:27AM +0200, Marek Vasut wrote: > >>>>> Implement empty serial_* functions for SPL without serial > >>>>> support enabled. This is imperative to haave once serial > >>>>> multi is enabled unconditionally. > >>>>> > >>>>> Signed-off-by: Marek Vasut <ma...@denx.de> Cc: Marek Vasut > >>>>> <marek.va...@gmail.com> Cc: Tom Rini <tr...@ti.com> --- > >>>>> > >>>>> common/serial.c | 12 ++++++++++++ 1 file changed, 12 > >>>>> insertions(+) > >>>>> > >>>>> diff --git a/common/serial.c b/common/serial.c index > >>>>> 631af65..cef4ba8 100644 --- a/common/serial.c +++ > >>>>> b/common/serial.c @@ -27,6 +27,16 @@ > >>>>> > >>>>> #include <post.h> #include <linux/compiler.h> > >>>>> > >>>>> +/* Implement prototypes for SPL without serial support */ > >>>>> +#if defined(CONFIG_SPL_BUILD) && > >>>>> !defined(CONFIG_SPL_SERIAL_SUPPORT) +int serial_init(void) > >>>>> { return 0; } +void serial_setbrg(void) {} +int > >>>>> serial_getc(void) { return 0; } +int serial_tstc(void) { > >>>>> return 0; } +void serial_putc(const char c) {} +void > >>>>> serial_puts(const char *s) {} > >>>> > >>>> This isn't quite right. We need to allow for: - No output > >>>> SPL, strings collected (so #defined to do{} while (0)) > >>> > >>> Which is not type-checked and will drag in bugs. > >> > >> Scott has addressed this. > >> > >>>> - puts + printf SPL (CONFIG_SPL_SERIAL_SUPPORT + > >>>> CONFIG_SPL_LIBCOMMON_SUPPORT) - puts only SPL > >>>> (CONFIG_SPL_SERIAL_SUPPORT + #define puts serial_puts/putc). > >>>> > >>>> I'm not asking you to do that, but you will have to adapt to > >>>> it once Jose is done with it. What that means, off the top > >>>> of my head, is we can just drop this patch as in the first > >>>> and last case serial.o will be garbage-collected (or not > >>>> built) and in the middle case, this will be fully used. > >>> > >>> I can't drop this patch as it will break all of SPL when > >>> CONFIG_SERIAL_MULTI is unconditionally enabled. > >> > >> Why is it breaking _all_ of SPL? Have you run-tested this > >> anywhere, especially with SPL? In most cases it should be used > >> and real functions provided or garbage collected away. > > > > Yes, try compiling m28evk without this patch for example, it's > > going to break it. Because CONFIG_SPL_SERIAL_SUPPORT is disabled, > > yet it uses code that contains references to puts() etc. > > Progress! Now, why isn't this file being garbage collected?
What file? > m28evk > is fitting into the first category I said (no output) but now it's not > discarding things that it should be discarding. What is not discarding things and what things should be discarded? I believe if you're missing symbols, the compiler will error-out. Always. Best regards, Marek Vasut _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot