Browse Source

app_perl: declare extern environ variable

- without it doesn't compile on darwin and it is recommended way to do
- provide some fake argc and argv to PERL_SYS_INIT3() to avoid compile
  warnings
Daniel-Constantin Mierla 12 years ago
parent
commit
34ad8c295b
1 changed files with 7 additions and 1 deletions
  1. 7 1
      modules/app_perl/app_perl_mod.c

+ 7 - 1
modules/app_perl/app_perl_mod.c

@@ -72,6 +72,8 @@ sl_api_t slb;
  */
 static void destroy(void);
 
+/* environment pointer needed to init perl interpreter */
+extern char **environ;
 
 /*
  * Module initialization function prototype
@@ -319,6 +321,9 @@ struct mi_root* perl_mi_reload(struct mi_root *cmd_tree, void *param)
 static int mod_init(void) {
 
 	int ret = 0;
+	int argc = 1;
+	char *argt[] = { MOD_NAME, NULL };
+	char **argv;
 
 	if(register_mi_mod(exports.name, mi_cmds)!=0)
 	{
@@ -337,7 +342,8 @@ static int mod_init(void) {
 		return -1;
 	}
 
-	PERL_SYS_INIT3(NULL, NULL, &environ);
+	argv = argt;
+	PERL_SYS_INIT3(&argc, &argv, &environ);
 
 	if ((my_perl = parser_init())) {
 		ret = 0;