In file included from keymap.h:5:0,
                 from ksyms.c:6:
./keymap/common.h:65:38: error: unknown type name 'va_list'
                  const char *format, va_list args),
                                      ^
./keymap/common.h:66:3: error: expected ';', ',' or ')' before 'const'
   const void *data);
   ^

Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Index: kbd-2.0.0/src/libkeymap/contextP.h
===================================================================
--- kbd-2.0.0.orig/src/libkeymap/contextP.h	2013-08-13 06:46:23.000000000 -0700
+++ kbd-2.0.0/src/libkeymap/contextP.h	2013-11-05 22:33:49.200528226 -0800
@@ -2,7 +2,7 @@
 #define LK_CONTEXTP_H
 
 #include "keymap.h"
-
+#include <stdarg.h>
 /**
  * @brief Copy of struct kbdiacruc.
  */
Index: kbd-2.0.0/src/libkeymap/keymap/common.h
===================================================================
--- kbd-2.0.0.orig/src/libkeymap/keymap/common.h	2013-08-13 06:46:23.000000000 -0700
+++ kbd-2.0.0/src/libkeymap/keymap/common.h	2013-11-05 22:33:59.964528438 -0800
@@ -6,6 +6,7 @@
  */
 
 #include <keymap/context.h>
+#include <stdarg.h>
 
 /** Initializes the structures necessary to read and/or parse keymap.
  *
