summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetteri Aimonen <jpa@git.mail.kapsi.fi>2014-03-18 16:13:54 +0200
committerPetteri Aimonen <jpa@git.mail.kapsi.fi>2014-03-18 16:13:54 +0200
commitf4949119ada32e28959e25e46b4f3314805b5ed1 (patch)
tree6784c8b30cebe773e4ae8d140268757f231cbca4
parent607cb998b5472ef1df461995b33694e9a54bef23 (diff)
Add stdlib.h to pb_syshdr.h for dynamic allocation
-rw-r--r--extra/pb_syshdr.h10
-rw-r--r--tests/SConstruct2
2 files changed, 12 insertions, 0 deletions
diff --git a/extra/pb_syshdr.h b/extra/pb_syshdr.h
index b9a97a4f..1ff48230 100644
--- a/extra/pb_syshdr.h
+++ b/extra/pb_syshdr.h
@@ -53,6 +53,16 @@ typedef int bool;
#endif
+/* stdlib.h subset */
+#ifdef PB_ENABLE_MALLOC
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#else
+void *realloc(void *ptr, size_t size);
+void free(void *ptr);
+#endif
+#endif
+
/* string.h subset */
#ifdef HAVE_STRING_H
#include <string.h>
diff --git a/tests/SConstruct b/tests/SConstruct
index 8bf16ebe..b6b877f7 100644
--- a/tests/SConstruct
+++ b/tests/SConstruct
@@ -50,6 +50,7 @@ if not env.GetOption('clean'):
stdint = conf.CheckCHeader('stdint.h')
stddef = conf.CheckCHeader('stddef.h')
string = conf.CheckCHeader('string.h')
+ stdlib = conf.CheckCHeader('stdlib.h')
if not stdbool or not stdint or not stddef or not string:
conf.env.Append(CPPDEFINES = {'PB_SYSTEM_HEADER': '\\"pb_syshdr.h\\"'})
conf.env.Append(CPPPATH = "#../extra")
@@ -58,6 +59,7 @@ if not env.GetOption('clean'):
if stdint: conf.env.Append(CPPDEFINES = {'HAVE_STDINT_H': 1})
if stddef: conf.env.Append(CPPDEFINES = {'HAVE_STDDEF_H': 1})
if string: conf.env.Append(CPPDEFINES = {'HAVE_STRING_H': 1})
+ if stdlib: conf.env.Append(CPPDEFINES = {'HAVE_STDLIB_H': 1})
# Check if we can use pkg-config to find protobuf include path
status, output = conf.TryAction('pkg-config protobuf --variable=includedir > $TARGET')