[Date Prev][Date Next] [Chronological] [Thread] [Top]

win32 back-perl build fix - ITS#1646



This is a multi-part message in MIME format.
--------------010401050003080706060101
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit


I see that the patch was recently added.  Thanks.

2 things...

* remove unneeded XSUB.h includes

* add PERL_SET_CONTEXT at the beginning of any operation which may be 
the first in a thread. ie., bind, search, modify.  This tells the thread 
with interpreter object to use.  The perl context should be explicitly set.


--Kervin

-- 
http://linuxquestions.org/ - Ask linux questions, give linux help.
http://splint.org/ - Write safe C code. splint source-code analyzer.

--------------010401050003080706060101
Content-Type: text/plain;
 name="p1.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="p1.patch"

Index: ldap/servers/slapd/back-perl/bind.c
===================================================================
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/back-perl/bind.c,v
retrieving revision 1.13
diff -c -r1.13 bind.c
*** ldap/servers/slapd/back-perl/bind.c	2002/04/16 03:36:22	1.13
--- ldap/servers/slapd/back-perl/bind.c	2002/04/18 07:09:32
***************
*** 20,26 ****
  #endif
  
  #include <EXTERN.h>
- #include <XSUB.h>
  #include <perl.h>
  
  #include "perl_back.h"
--- 20,25 ----
Index: ldap/servers/slapd/back-perl/close.c
===================================================================
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/back-perl/close.c,v
retrieving revision 1.8
diff -c -r1.8 close.c
*** ldap/servers/slapd/back-perl/close.c	2002/04/16 03:36:22	1.8
--- ldap/servers/slapd/back-perl/close.c	2002/04/18 07:09:32
***************
*** 34,40 ****
  perl_back_close(
  	BackendInfo *bd
  )
! {
  	ldap_pvt_thread_mutex_lock( &perl_interpreter_mutex );	
  
  	perl_destruct(PERL_INTERPRETER);
--- 34,45 ----
  perl_back_close(
  	BackendInfo *bd
  )
! {
! 
! #ifdef HAVE_WIN32_ASPERL
! 	PERL_SET_CONTEXT( PERL_INTERPRETER );
! #endif
! 
  	ldap_pvt_thread_mutex_lock( &perl_interpreter_mutex );	
  
  	perl_destruct(PERL_INTERPRETER);
Index: ldap/servers/slapd/back-perl/compare.c
===================================================================
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/back-perl/compare.c,v
retrieving revision 1.14
diff -c -r1.14 compare.c
*** ldap/servers/slapd/back-perl/compare.c	2002/04/16 03:36:22	1.14
--- ldap/servers/slapd/back-perl/compare.c	2002/04/18 07:09:32
***************
*** 51,56 ****
--- 51,60 ----
  	slap_strcopy( slap_strcopy( slap_strcopy( avastr,
  		ava->aa_desc->ad_cname.bv_val ), "=" ),
  		ava->aa_value.bv_val );
+ 
+ #ifdef HAVE_WIN32_ASPERL
+ 	PERL_SET_CONTEXT( PERL_INTERPRETER );
+ #endif
  
  	ldap_pvt_thread_mutex_lock( &perl_interpreter_mutex );	
  
Index: ldap/servers/slapd/back-perl/delete.c
===================================================================
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/back-perl/delete.c,v
retrieving revision 1.11
diff -c -r1.11 delete.c
*** ldap/servers/slapd/back-perl/delete.c	2002/04/16 03:36:22	1.11
--- ldap/servers/slapd/back-perl/delete.c	2002/04/18 07:09:33
***************
*** 37,42 ****
--- 37,46 ----
  	int return_code;
  
  	PerlBackend *perl_back = (PerlBackend *) be->be_private;
+ 
+ #ifdef HAVE_WIN32_ASPERL
+ 	PERL_SET_CONTEXT( PERL_INTERPRETER );
+ #endif
  
  	ldap_pvt_thread_mutex_lock( &perl_interpreter_mutex );	
  
Index: ldap/servers/slapd/back-perl/init.c
===================================================================
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/back-perl/init.c,v
retrieving revision 1.26
diff -c -r1.26 init.c
*** ldap/servers/slapd/back-perl/init.c	2002/04/16 03:36:22	1.26
--- ldap/servers/slapd/back-perl/init.c	2002/04/18 07:09:33
***************
*** 20,26 ****
  #endif
  
  #include <EXTERN.h>
- #include <XSUB.h>
  #include <perl.h>
  
  #include "perl_back.h"
--- 20,25 ----
***************
*** 176,182 ****
  
  
  static void
! perl_back_xs_init()
  {
  	char *file = __FILE__;
  	dXSUB_SYS;
--- 175,181 ----
  
  
  static void
! perl_back_xs_init(PERL_BACK_XS_INIT_PARAMS)
  {
  	char *file = __FILE__;
  	dXSUB_SYS;
Index: ldap/servers/slapd/back-perl/modify.c
===================================================================
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/back-perl/modify.c,v
retrieving revision 1.11
diff -c -r1.11 modify.c
*** ldap/servers/slapd/back-perl/modify.c	2002/04/16 03:36:22	1.11
--- ldap/servers/slapd/back-perl/modify.c	2002/04/18 07:09:33
***************
*** 41,46 ****
--- 41,50 ----
  	char *matched = NULL, *info = NULL;
  
  	PerlBackend *perl_back = (PerlBackend *)be->be_private;
+ 
+ #ifdef HAVE_WIN32_ASPERL
+ 	PERL_SET_CONTEXT( PERL_INTERPRETER );
+ #endif
  
  	ldap_pvt_thread_mutex_lock( &perl_interpreter_mutex );	
  
Index: ldap/servers/slapd/back-perl/modrdn.c
===================================================================
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/back-perl/modrdn.c,v
retrieving revision 1.13
diff -c -r1.13 modrdn.c
*** ldap/servers/slapd/back-perl/modrdn.c	2002/04/16 03:36:22	1.13
--- ldap/servers/slapd/back-perl/modrdn.c	2002/04/18 07:09:33
***************
*** 55,60 ****
--- 55,64 ----
  	int return_code;
  
  	PerlBackend *perl_back = (PerlBackend *) be->be_private;
+ 
+ #ifdef HAVE_WIN32_ASPERL
+ 	PERL_SET_CONTEXT( PERL_INTERPRETER );
+ #endif
  
  	ldap_pvt_thread_mutex_lock( &perl_interpreter_mutex );	
  
Index: ldap/servers/slapd/back-perl/search.c
===================================================================
RCS file: /repo/OpenLDAP/pkg/ldap/servers/slapd/back-perl/search.c,v
retrieving revision 1.17
diff -c -r1.17 search.c
*** ldap/servers/slapd/back-perl/search.c	2002/04/16 03:36:22	1.17
--- ldap/servers/slapd/back-perl/search.c	2002/04/18 07:09:33
***************
*** 55,60 ****
--- 55,64 ----
  	char *buf;
  	int i;
  	int return_code;
+ 
+ #ifdef HAVE_WIN32_ASPERL
+ 	PERL_SET_CONTEXT( PERL_INTERPRETER );
+ #endif
  
  	ldap_pvt_thread_mutex_lock( &perl_interpreter_mutex );	
  

--------------010401050003080706060101--