-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 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? m28evk is fitting into the first category I said (no output) but now it's not discarding things that it should be discarding. - -- Tom -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://www.enigmail.net/ iQIcBAEBAgAGBQJQWLifAAoJENk4IS6UOR1WyiIP/1h3r1OBQ8sxHCq6nuWT7cvQ 6taDBU6780uOY+YsbNgjlImp7lSM30HYxXou2j2kykPcRjUPMzLoYDRZio+8d8RW ETQcMld8I/OMz52HT6lnjIaqVBOpK42vlRW86LNcxIFOasYlK4qxO3kjKmshu5aC ct7b5xcHFaqfxLp2EjkUOgmoyPXhNTdsnDVdOTaXG7qGKAffDFCeUHTsBB3kc/S6 w5HwDNTBWZYVMWuTXKXLXh+3h4x+VL1LCxCsnu8R88cEkj7b9DkqGUsUrCDPFqc/ YAqiUqacTa0V9h9XeE/OdZUo7uS04FibPHzvho91LcnBdjOJ7jPLY7k/IJ7guhqp aRC9UrB/AAPkpLExo32Ksx+7wAJThsfWY6DL5oI76E4FYZP2WaqygBM/WDCbcOK7 6HIGItjGwFpXBCDbawKob395Kt5gK2J43qXR2E7CR4p3ic8liMqsWu5J+TCUVF6b jxjLZ22Bw5zolUkhUE5u+M+O/rxCjYG0HNTssC1ymYR/jU36p1m6oGqxVN8Voi0R 1ARQB2yY3uuQOqR1URZMzuA94d1Qffnhg3LwSm3cJRH825WNDkxEXq/hvK/4hLbH DXb79+zRqv7f80jPUEk60sKFI3YzJMvRBaaxjXqOkMFywaNMQjbsnXCmvztoqRqG A1gmJGTWixOQbrN56DjF =wRYN -----END PGP SIGNATURE----- _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot