Code

Added workaround for the "dlopen()-issue" of the perl plugin.
authorSebastian Harl <sh@tokkee.org>
Tue, 5 Feb 2008 21:48:19 +0000 (22:48 +0100)
committerSebastian Harl <sh@tokkee.org>
Tue, 5 Feb 2008 21:48:19 +0000 (22:48 +0100)
There is no way to tell lt_dlopen() to use the RTLD_GLOBAL flag which is
however required by the perl plugin (which would otherwise be unable to find
symbols defined in libperl when loading perl modules that require such
symbols).

This can be worked around by using -DLT_LAZY_OR_NOW='RTLD_LAZY|RTLD_GLOBAL'
when compiling collectd. This is rather a hack but the best solution I can
currently think of.

debian/rules

index fd65b7043d38f77bc760256946c115dd8bdf0a28..19f2aaefe385ba356bc48ebee09912505528b02e 100755 (executable)
@@ -14,6 +14,12 @@ DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
 
 CFLAGS = -Wall -g -I$(CURDIR)/debian/include
 
+# There is no way to tell lt_dlopen() to use the RTLD_GLOBAL flag which is
+# however required by the perl plugin (which would otherwise be unable to find
+# symbols defined in libperl when loading perl modules that require such
+# symbols). This is a workaround for this issue.
+CFLAGS += -DLT_LAZY_OR_NOW='RTLD_LAZY|RTLD_GLOBAL'
+
 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
        CFLAGS += -O0
 else