From 83da7a0ac93decce70c1a02b0739020d8e2b69fd Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 15 Apr 2024 19:54:14 +0200 Subject: Adding debian version 2.6.7+dfsg-1~exp1. Signed-off-by: Daniel Baumann --- ...-to-lt_dlopenadvise-to-get-RTLD_GLOBAL-set.diff | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 debian/patches/switch-to-lt_dlopenadvise-to-get-RTLD_GLOBAL-set.diff (limited to 'debian/patches/switch-to-lt_dlopenadvise-to-get-RTLD_GLOBAL-set.diff') diff --git a/debian/patches/switch-to-lt_dlopenadvise-to-get-RTLD_GLOBAL-set.diff b/debian/patches/switch-to-lt_dlopenadvise-to-get-RTLD_GLOBAL-set.diff new file mode 100644 index 0000000..17b448a --- /dev/null +++ b/debian/patches/switch-to-lt_dlopenadvise-to-get-RTLD_GLOBAL-set.diff @@ -0,0 +1,42 @@ +From: Jan-Marek Glogowski +Date: Tue, 18 May 2010 17:47:05 +0200 +Subject: Switch to lt_dlopenadvise() so back_perl can be opened with RTLD_GLOBAL. + Open all modules with RTLD_GLOBAL, needed so that back_perl can load + non-trivial Perl extensions that require symbols from back_perl.so itself. +Bug-Debian: http://bugs.debian.org/327585 + +--- +Index: openldap/servers/slapd/module.c +=================================================================== +--- openldap.orig/servers/slapd/module.c 2022-05-20 17:36:16.057249110 -0400 ++++ openldap/servers/slapd/module.c 2022-05-20 17:36:16.053249107 -0400 +@@ -117,6 +117,20 @@ + return -1; /* not found */ + } + ++static lt_dlhandle slapd_lt_dlopenext_global( const char *filename ) ++{ ++ lt_dlhandle handle = 0; ++ lt_dladvise advise; ++ ++ if (!lt_dladvise_init (&advise) && !lt_dladvise_ext (&advise) ++ && !lt_dladvise_global (&advise)) ++ handle = lt_dlopenadvise (filename, advise); ++ ++ lt_dladvise_destroy (&advise); ++ ++ return handle; ++} ++ + int module_load(const char* file_name, int argc, char *argv[]) + { + module_loaded_t *module; +@@ -179,7 +193,7 @@ + * to calling Debug. This is because Debug is a macro that expands + * into multiple function calls. + */ +- if ((module->lib = lt_dlopenext(file)) == NULL) { ++ if ((module->lib = slapd_lt_dlopenext_global(file)) == NULL) { + error = lt_dlerror(); + #ifdef HAVE_EBCDIC + strcpy( ebuf, error ); -- cgit v1.2.3