]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
gen-introspect: pretend to be lint
authorRyan Lortie <desrt@desrt.ca>
Sat, 25 Jan 2014 06:57:31 +0000 (01:57 -0500)
committerRyan Lortie <desrt@desrt.ca>
Sun, 9 Feb 2014 21:24:04 +0000 (16:24 -0500)
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

gobject-introspection/scanner.c

index f691e78b887cef807951309812db3bd77b2f4039..40e4efec5ae40b6635887fbcf07c0c25a90dc5ee 100644 (file)
@@ -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;