diff options
author | Ryan Lortie <desrt@desrt.ca> | 2014-01-25 01:57:31 -0500 |
---|---|---|
committer | Ryan Lortie <desrt@desrt.ca> | 2014-02-09 16:24:04 -0500 |
commit | aff8625e4ec24129294b1557ec6756e0abdfa5eb (patch) | |
tree | ea25bf1d1bc00d1fe5766567779e02b9e6919dba | |
parent | 01fa2bfab504b40b01a9fb14e3ce80f790d0a949 (diff) | |
download | vala-aff8625e4ec24129294b1557ec6756e0abdfa5eb.tar.gz |
gen-introspect: pretend to be lint
Some system headers (notably <stdarg.h> on FreeBSD) get upset when they
see an unexpected compiler. We go out of our way to pass -U__GNUC__ to
cpp from the scanner code during gen-introspect and this is causing
problems.
As a workaround, we can pretend to be lint, which fixes the issue at
least for FreeBSD.
https://bugzilla.gnome.org/show_bug.cgi?id=722954
-rw-r--r-- | gobject-introspection/scanner.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gobject-introspection/scanner.c b/gobject-introspection/scanner.c index f691e78b8..40e4efec5 100644 --- a/gobject-introspection/scanner.c +++ b/gobject-introspection/scanner.c @@ -1531,13 +1531,16 @@ g_igenerator_start_preprocessor (GIGenerator *igenerator, int tmp; char *tmpname; - cpp_argv = g_new0 (char *, g_list_length (cpp_options) + 4); + cpp_argv = g_new0 (char *, g_list_length (cpp_options) + 5); cpp_argv[cpp_argc++] = "cpp"; cpp_argv[cpp_argc++] = "-C"; /* Disable GCC extensions as we cannot parse them yet */ cpp_argv[cpp_argc++] = "-U__GNUC__"; + /* Help system headers cope with the lack of __GNUC__ by pretending to be lint */ + cpp_argv[cpp_argc++] = "-Dlint"; + for (l = cpp_options; l; l = l->next) cpp_argv[cpp_argc++] = (char*)l->data; |