summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: b6accbb)
raw | patch | inline | side by side (parent: b6accbb)
author | Florian Forster <octo@noris.net> | |
Mon, 14 Jul 2008 13:47:02 +0000 (15:47 +0200) | ||
committer | Florian Forster <octo@noris.net> | |
Mon, 14 Jul 2008 13:47:02 +0000 (15:47 +0200) |
src/collectd.h | patch | blob | history | |
src/perl.c | patch | blob | history |
diff --git a/src/collectd.h b/src/collectd.h
index d316e5f978fba38fc98e183bcbe8a96af70bd474..eece4203894b1a51786446b6787fba77f152d944 100644 (file)
--- a/src/collectd.h
+++ b/src/collectd.h
#endif
#if __GNUC__
-# pragma GCC poison strcpy strcat sprintf strtok
+# pragma GCC poison strcpy strcat strtok
+#endif
+
+/*
+ * Special hack for the perl plugin: Because the later included perl.h defines
+ * a macro which is never used, but contains `sprintf', we cannot poison that
+ * identifies just yet. The parl plugin will do that itself once perl.h is
+ * included.
+ */
+#ifndef DONT_POISON_SPRINTF_YET
+# if __GNUC__
+# pragma GCC poison sprintf
+# endif
#endif
extern char hostname_g[];
diff --git a/src/perl.c b/src/perl.c
index 22a13cee6cabe524a4b08185f1e68a9c2be93221..9cbd5937574fd453d3c2634ce1e796005d8a8368 100644 (file)
--- a/src/perl.c
+++ b/src/perl.c
/* do not automatically get the thread specific perl interpreter */
#define PERL_NO_GET_CONTEXT
+#define DONT_POISON_SPRINTF_YET 1
#include "collectd.h"
+#undef DONT_POISON_SPRINTF_YET
#include "configfile.h"
#include <EXTERN.h>
#include <perl.h>
+#if __GNUC__
+# pragma GCC poison sprintf
+#endif
+
#include <XSUB.h>
/* Some versions of Perl define their own version of DEBUG... :-/ */