1
Perl 5.10 (and some earlier versions) require calling some additional
2
macros around Perl interpreter setup and shutdown. Not doing these
3
calls causes problems on HPPA at least, and may affect other platforms
4
in the future. This patch adds the additional code modelled on the
5
perlembed man page and a working patch for INN.
10
--- openldap.orig/servers/slapd/back-perl/close.c
11
+++ openldap/servers/slapd/back-perl/close.c
14
perl_destruct(PERL_INTERPRETER);
15
perl_free(PERL_INTERPRETER);
19
PERL_INTERPRETER = NULL;
21
ldap_pvt_thread_mutex_destroy( &perl_interpreter_mutex );
22
--- openldap.orig/servers/slapd/back-perl/init.c
23
+++ openldap/servers/slapd/back-perl/init.c
27
char *embedding[] = { "", "-e", "0" };
34
ldap_pvt_thread_mutex_init( &perl_interpreter_mutex );
36
+#ifdef PERL_SYS_INIT3
37
+ PERL_SYS_INIT3(&argc, &embedding, (char **)NULL);
39
PERL_INTERPRETER = perl_alloc();
40
perl_construct(PERL_INTERPRETER);
41
- perl_parse(PERL_INTERPRETER, perl_back_xs_init, 3, embedding, (char **)NULL);
42
+#ifdef PERL_EXIT_DESTRUCT_END
43
+ PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
45
+ perl_parse(PERL_INTERPRETER, perl_back_xs_init, argc, embedding, (char **)NULL);
46
perl_run(PERL_INTERPRETER);