[Buildroot] [PATCH v1 1/2] package/sane-backends: fix uclibc compile (missing stdarg.h include for va_list/va_start/va_end)

Thomas Petazzoni thomas.petazzoni at bootlin.com
Sun Jul 18 11:50:57 UTC 2021


On Fri, 18 Jun 2021 20:31:49 +0200
Peter Seiderer <ps.report at gmx.net> wrote:

> Add missing stdarg.h include for va_list/va_start/va_end.
> 
> Fixes:
> 
>   - http://autobuild.buildroot.net/results/88f4ea971875b1a5eb88662326d9343341eaaea2
> 
>   microtek.c: In function ‘MDBG_INIT’:
>   microtek.c:163:3: error: unknown type name ‘va_list’
>     163 |   va_list ap;
>         |   ^~~~~~~
>   microtek.c:78:1: note: ‘va_list’ is defined in header ‘<stdarg.h>’; did you forget to ‘#include <stdarg.h>’?
>      77 | #include "microtek.h"
>     +++ |+#include <stdarg.h>
>      78 |
>   microtek.c:164:3: warning: implicit declaration of function ‘va_start’; did you mean ‘sane_start’? [-Wimplicit-function-declaration]
>     164 |   va_start(ap, format);
>         |   ^~~~~~~~
>         |   sane_start
>   microtek.c:165:54: warning: passing argument 4 of ‘vsnprintf’ makes pointer from integer without a cast [-Wint-conversion]
>     165 |   vsnprintf(_mdebug_string, MAX_MDBG_LENGTH, format, ap);
>         |                                                      ^~
>         |                                                      |
>         |                                                      int
>   In file included from ../include/sane/sanei_config.h:50,
>                    from microtek.c:70:
>   .../host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/stdio.h:359:57: note: expected ‘__va_list_tag *’ but argument is of type ‘int’
>     359 |         const char *__restrict __format, __gnuc_va_list __arg)
>         |                                          ~~~~~~~~~~~~~~~^~~~~
>   microtek.c:166:3: warning: implicit declaration of function ‘va_end’ [-Wimplicit-function-declaration]
>     166 |   va_end(ap);
>         |   ^~~~~~
> 
> and
> 
>   sm3600-scanutil.c: In function ‘debug_printf’:
>   sm3600-scanutil.c:69:3: error: unknown type name ‘va_list’
>      69 |   va_list ap;
>         |   ^~~~~~~
>   sm3600-scanutil.c:48:1: note: ‘va_list’ is defined in header ‘<stdarg.h>’; did you forget to ‘#include <stdarg.h>’?
>      47 | #include "sm3600-scantool.h"
>     +++ |+#include <stdarg.h>
>      48 |
>   sm3600-scanutil.c:75:3: warning: implicit declaration of function ‘va_start’; did you mean ‘sane_start’? [-Wimplicit-function-decla
> ration]
>      75 |   va_start(ap,szFormat);
>         |   ^~~~~~~~
>         |   sane_start
>   sm3600-scanutil.c:76:28: warning: passing argument 3 of ‘vfprintf’ makes pointer from integer without a cast [-Wint-conversion]
>      76 |   vfprintf(stderr,szFormat,ap);
>         |                            ^~
>         |                            |
>         |                            int
>   In file included from ../include/sane/sanei_config.h:50,
>                    from sm3600.c:70:
>   .../host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/stdio.h:339:23: note: expected ‘__va_list_tag *’ but argument is of type
>  ‘int’
>     339 |        __gnuc_va_list __arg);
>         |        ~~~~~~~~~~~~~~~^~~~~
>   In file included from sm3600.c:94:
>   sm3600-scanutil.c:77:3: warning: implicit declaration of function ‘va_end’ [-Wimplicit-function-declaration]
>      77 |   va_end(ap);
>         |   ^~~~~~
> 
> Signed-off-by: Peter Seiderer <ps.report at gmx.net>
> ---
>  ...-fix-uclibc-compile-include-stdarg.h.patch | 58 ++++++++++++++++++
>  ...canutil-fix-uclibc-compile-include-s.patch | 59 +++++++++++++++++++
>  2 files changed, 117 insertions(+)
>  create mode 100644 package/sane-backends/0004-backend-microtek-fix-uclibc-compile-include-stdarg.h.patch
>  create mode 100644 package/sane-backends/0005-backend-sm3600-scanutil-fix-uclibc-compile-include-s.patch

Applied to master, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



More information about the buildroot mailing list