[patch] OpenBSD fixincludes #2

Andreas Tobler andreast-list@fgznet.ch
Tue Dec 30 23:11:00 GMT 2008


Hello all,

this patch fixes some headers which do not correctly define NULL on 
OpenBSD in case of C usage.

Ok, for 4.4?

Thanks,
Andreas

2008-12-30  Andreas Tobler  <a.tobler@schweiz.org>

	* inclhack.def (openbsd_null_definition): Redefine NULL to (void *)0
	in case of C.
	* fixincl.x: Regenerate.

Index: inclhack.def
===================================================================
--- inclhack.def	(revision 142962)
+++ inclhack.def	(working copy)
@@ -2541,7 +2541,45 @@
      test_text = "*((void **) (h)->next_free)++ = (aptr)";
  };

+/*
+ * Fix OpenBSD's NULL definition.
+ */
+fix = {
+  hackname  = openbsd_null_definition;
+  mach      = "*-*-openbsd*";
+  files     = locale.h, stddef.h, stdio.h, string.h,
+  time.h, unistd.h, wchar.h, sys/param.h;
+  select    = "__GNUG__";
+  c_fix = format;
+  c_fix_arg = "#ifndef NULL\n"
+	      "#ifdef __cplusplus\n"
+	      "#ifdef __GNUG__\n"
+	      "#define NULL\t__null\n"
+	      "#else\t /* ! __GNUG__  */\n"
+	      "#define NULL\t0L\n"
+              "#endif\t /* __GNUG__  */\n"
+	      "#else\t /* ! __cplusplus  */\n"
+	      "#define NULL\t((void *)0)\n"
+              "#endif\t /* __cplusplus  */\n"
+              "#endif\t /* !NULL  */";

+  c_fix_arg = "^#ifndef[ \t]*NULL\n"
+	      "^#ifdef[ \t]*__GNUG__\n"
+  	      "^#define[ \t]*NULL[ \t]*__null\n"
+  	      "^#else\n"
+              "^#define[ \t]*NULL[ \t]*0L\n"
+              "^#endif\n"
+              "^#endif";
+  test_text =
+	"#ifndef NULL\n"
+	"#ifdef  __GNUG__\n"
+	"#define NULL    __null\n"
+	"#else\n"
+	"#define NULL    0L\n"
+	"#endif\n"
+	"#endif\n";
+};
+
  /*
   *  sys/lc_core.h on some versions of OSF1/4.x pollutes the namespace by
   *  defining regex.h related types.  This causes libg++ build and usage



More information about the Gcc-patches mailing list