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[];