parser: extern var support
[m6w6/ext-psi] / src / module.c
index 10636f918000cea0bdcc14124f09c54f75bf5e75..20a1836140a0122c25ff83b726345e867f6dc2bc 100644 (file)
@@ -326,28 +326,39 @@ static PHP_GINIT_FUNCTION(psi)
 {
        char *tmp;
        struct psi_plist **bl_decls = &psi_globals->blacklist.decls;
+       struct psi_plist **bl_vars = &psi_globals->blacklist.vars;
 
        *bl_decls = psi_plist_init(ptr_free);
+       *bl_vars = psi_plist_init(ptr_free);
 
-#define BL_DECL_ADD(d) \
+#define BL_ADD(D, d) \
        tmp = strdup(d); \
-       *bl_decls = psi_plist_add(*bl_decls, &tmp)
+       *D = psi_plist_add(*D, &tmp)
+#define BL_DECL_ADD(d) BL_ADD(bl_decls, d)
+#define BL_VAR_ADD(d) BL_ADD(bl_vars, d)
 
        BL_DECL_ADD("dlsym");
        BL_DECL_ADD("alloca");
        BL_DECL_ADD("atexit");
        BL_DECL_ADD("at_quick_exit");
+
+       /* missing */
        BL_DECL_ADD("_IO_cookie_init");
+       BL_DECL_ADD("bindresvport6");
 
        /* va_list as arg */
        BL_DECL_ADD("*v*printf");
        BL_DECL_ADD("*v*scanf");
+       BL_DECL_ADD("vsyslog");
 
        /* LFS/LFO for 32bit */
-       BL_DECL_ADD("*stat64");
-       BL_DECL_ADD("*statat64");
+       BL_DECL_ADD("*stat*64");
+       BL_DECL_ADD("*glob*64");
        /* Hurd only */
        BL_DECL_ADD("getumask");
+
+       /* using hidden structs */
+       BL_VAR_ADD("_IO_2_*");
 }
 
 static PHP_GSHUTDOWN_FUNCTION(psi)