aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README3
-rw-r--r--include/stdarg.h12
2 files changed, 12 insertions, 3 deletions
diff --git a/README b/README
index ed8861d..3271f6a 100644
--- a/README
+++ b/README
@@ -16,7 +16,8 @@ Macro definitions:
_BSD_SOURCE -- Enable BSD extensions.
_SLIBC_SUPPRESS_WARNINGS -- Suppress all #warning and other warnings, this is
primarily intended to be used when compiling slibc.
- _PORTABLE_SOURCE -- Unconditionally disable all extensions.
+ _PORTABLE_SOURCE -- Unconditionally disable all extensions, and otherwise
+ help ensure that the source is portable.
_LIBRARY_HEADER -- Alternative to _PORTABLE_SOURCE that should
be used in header files for libraryes. This
allows you to be sure that your library is
diff --git a/include/stdarg.h b/include/stdarg.h
index 801e5e8..bc07813 100644
--- a/include/stdarg.h
+++ b/include/stdarg.h
@@ -52,7 +52,11 @@ typedef __builtin_va_list va_list;
* @param last:identifier The the last non-variadic argument.
*/
#ifndef va_start
-# define va_start(state, last) __builtin_va_start(state, last)
+# ifndef __PORTABLE
+# define va_start(state, last) __builtin_va_start(state, last)
+# else
+# define va_start(state, last) { __builtin_va_start(state, last)
+# endif
#endif
/**
@@ -61,7 +65,11 @@ typedef __builtin_va_list va_list;
* @param state:va_list The state of the variadic argument-reading.
*/
#ifndef va_end
-# define va_end(state) __builtin_va_end(state)
+# ifndef __PORTABLE
+# define va_end(state) __builtin_va_end(state)
+# else
+# define va_end(state) } __builtin_va_end(state)
+# endif
#endif
/**