cvs: /php4 php_modules.dsw /php4 ChangeLog main.c php.ini-dist php4ts.dsw php_ini.c php_ini.h /php4/ext/mysql mysql.c mysql.dsp /php4/ext/standard
dl.c

From: Date: Fri, 13 Aug 1999 21:03:27 +0000
Subject: cvs: /php4 php_modules.dsw /php4 ChangeLog main.c php.ini-dist php4ts.dsw php_ini.c php_ini.h /php4/ext/mysql mysql.c mysql.dsp /php4/ext/standard
dl.c
Groups: php.version4 
Request: Send a blank email to php-version4+get-3410@lists.php.net to get a copy of this message
zeev Fri Aug 13 17:03:27 1999 EDT Added files: /php4 php_modules.dsw Modified files: /php4 ChangeLog main.c php.ini-dist php4ts.dsw php_ini.c php_ini.h /php4/ext/mysql mysql.c mysql.dsp /php4/ext/standard dl.c Log: - Add PHP Modules workspace - Get the MySQL module to compile&work under thread-safe Win32 - Fix various thread safety issues with dynamic modules Index: php4/ChangeLog diff -u php4/ChangeLog:1.49 php4/ChangeLog:1.50 --- php4/ChangeLog:1.49 Thu Aug 12 20:14:15 1999 +++ php4/ChangeLog Fri Aug 13 17:03:26 1999 @@ -2,6 +2,8 @@ ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ?? 1999, Version 4.0 Beta 3 +- Fixed thread-safety issues in the MySQL module (Zeev) +- Fixed thread-safe support for dynamic modules (Zeev) - Fixed Sybase CT build process (Zeev) August 9 1999, Version 4.0 Beta 2 Index: php4/main.c diff -u php4/main.c:1.95 php4/main.c:1.96 --- php4/main.c:1.95 Thu Aug 12 07:05:43 1999 +++ php4/main.c Fri Aug 13 17:03:26 1999 @@ -19,7 +19,7 @@ */ -/* $Id: main.c,v 1.95 1999/08/12 11:05:43 verdy_p Exp $ */ +/* $Id: main.c,v 1.96 1999/08/13 21:03:26 zeev Exp $ */ #include <stdio.h> @@ -96,9 +96,6 @@ /* True globals (no need for thread safety) */ HashTable configuration_hash; PHPAPI char *php3_ini_path = NULL; -#ifdef ZTS -php_core_globals *main_core_globals=NULL; -#endif #define SAFE_FILENAME(f) ((f)?(f):"-") @@ -755,20 +752,17 @@ } -#ifdef ZTS -static void core_globals_ctor(php_core_globals *core_globals) +static int zend_body_write_wrapper(const char *str, uint str_length) { - if (main_core_globals) { - *core_globals = *main_core_globals; - } + return zend_body_write(str, str_length); } -#endif - -static int zend_body_write_wrapper(const char *str, uint str_length) +#ifdef ZTS +static void php_new_thread_end_handler(THREAD_T thread_id) { - return zend_body_write(str, str_length); + php_ini_refresh_caches(); } +#endif int php_module_startup(sapi_module_struct *sf) @@ -810,10 +804,11 @@ zuf.get_ini_entry = php_get_ini_entry_for_zend; zend_startup(&zuf, NULL); + tsrm_set_new_thread_end_handler(php_new_thread_end_handler); + #ifdef ZTS - core_globals_id = ts_allocate_id(sizeof(php_core_globals), core_globals_ctor, NULL); + core_globals_id = ts_allocate_id(sizeof(php_core_globals), NULL, NULL); core_globals = ts_resource(core_globals_id); - main_core_globals = core_globals; #endif PG(header_is_being_sent) = 0; @@ -835,11 +830,12 @@ le_index_ptr = _register_list_destructors(NULL, NULL, 0); FREE_MUTEX(gLock); + php_ini_mstartup(); + if (php3_config_ini_startup() == FAILURE) { return FAILURE; } - php_ini_mstartup(); REGISTER_INI_ENTRIES(); zuv.short_tags = (unsigned char) PG(short_tags); Index: php4/php.ini-dist diff -u php4/php.ini-dist:1.3 php4/php.ini-dist:1.4 --- php4/php.ini-dist:1.3 Sat Aug 7 14:21:35 1999 +++ php4/php.ini-dist Fri Aug 13 17:03:26 1999 @@ -51,7 +51,7 @@ ; Misc allow_builtin_links = Off ; Sets whether phpinfo() will generate built-in links that display the PHP ; and Zend logos, and tells PHP whether to honor them or not. - ; It is no securty threat in any way, but it make sit possible + ; It is no security threat in any way, but it makes it possible ; to determine whether you use PHP on your server or not. Index: php4/php4ts.dsw diff -u php4/php4ts.dsw:1.4 php4/php4ts.dsw:1.5 --- php4/php4ts.dsw:1.4 Mon Apr 26 10:00:46 1999 +++ php4/php4ts.dsw Fri Aug 13 17:03:26 1999 @@ -3,7 +3,7 @@ ############################################################################### -Project: "TSRM"=..\TSRM\TSRM.dsp - Package Owner=<4> +Project: "TSRM"=.\TSRM\TSRM.dsp - Package Owner=<4> Package=<5> {{{ @@ -15,7 +15,7 @@ ############################################################################### -Project: "libzendts"=..\libzend\libzendts.dsp - Package Owner=<4> +Project: "libzendts"=.\libzend\libzendts.dsp - Package Owner=<4> Package=<5> {{{ @@ -23,6 +23,9 @@ Package=<4> {{{ + Begin Project Dependency + Project_Dep_Name TSRM + End Project Dependency }}} ############################################################################### Index: php4/php_ini.c diff -u php4/php_ini.c:1.26 php4/php_ini.c:1.27 --- php4/php_ini.c:1.26 Mon Aug 2 15:16:34 1999 +++ php4/php_ini.c Fri Aug 13 17:03:26 1999 @@ -125,6 +125,21 @@ } +static int php_ini_refresh_cache(php_ini_entry *p) +{ + if (p->on_modify) { + p->on_modify(p, p->value, p->value_length, p->mh_arg1, p->mh_arg2, p->mh_arg3); + } + return 0; +} + + +PHPAPI void php_ini_refresh_caches() +{ + zend_hash_apply(&known_directives, (int (*)(void *)) php_ini_refresh_cache); +} + + PHPAPI int php_alter_ini_entry(char *name, uint name_length, char *new_value, uint new_value_length, int modify_type) { php_ini_entry *ini_entry; Index: php4/php_ini.h diff -u php4/php_ini.h:1.12 php4/php_ini.h:1.13 --- php4/php_ini.h:1.12 Fri Jul 16 09:12:42 1999 +++ php4/php_ini.h Fri Aug 13 17:03:26 1999 @@ -57,6 +57,7 @@ PHPAPI int php_register_ini_entries(php_ini_entry *ini_entry, int module_number); PHPAPI void php_unregister_ini_entries(int module_number); +PHPAPI void php_ini_refresh_caches(); PHPAPI int php_alter_ini_entry(char *name, uint name_length, char *new_value, uint new_value_length, int modify_type); PHPAPI int php_restore_ini_entry(char *name, uint name_length); PHPAPI void display_ini_entries(zend_module_entry *module); @@ -100,11 +101,15 @@ #ifdef ZTS #define STD_PHP_INI_ENTRY(name, default_value, modifyable, on_modify, property_name, struct_type, struct_ptr) \ PHP_INI_ENTRY2(name, default_value, modifyable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr##_id) +#define STD_PHP_INI_ENTRY_EX(name, default_value, modifyable, on_modify, property_name, struct_type, struct_ptr, displayer) \ + PHP_INI_ENTRY2_EX(name, default_value, modifyable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr##_id, displayer) #define STD_PHP_INI_BOOLEAN(name, default_value, modifyable, on_modify, property_name, struct_type, struct_ptr) \ PHP_INI_ENTRY3_EX(name, default_value, modifyable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr##_id, NULL, php_ini_boolean_displayer_cb) #else #define STD_PHP_INI_ENTRY(name, default_value, modifyable, on_modify, property_name, struct_type, struct_ptr) \ PHP_INI_ENTRY2(name, default_value, modifyable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr) +#define STD_PHP_INI_ENTRY_EX(name, default_value, modifyable, on_modify, property_name, struct_type, struct_ptr, display) \ + PHP_INI_ENTRY2_EX(name, default_value, modifyable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr, displayer) #define STD_PHP_INI_BOOLEAN(name, default_value, modifyable, on_modify, property_name, struct_type, struct_ptr) \ PHP_INI_ENTRY3_EX(name, default_value, modifyable, on_modify, (void *) XtOffsetOf(struct_type, property_name), (void *) &struct_ptr, NULL, php_ini_boolean_displayer_cb) #endif Index: php4/ext/mysql/mysql.c diff -u php4/ext/mysql/mysql.c:1.17 php4/ext/mysql/mysql.c:1.18 --- php4/ext/mysql/mysql.c:1.17 Mon Aug 2 15:16:47 1999 +++ php4/ext/mysql/mysql.c Fri Aug 13 17:03:27 1999 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mysql.c,v 1.17 1999/08/02 19:16:47 zeev Exp $ */ +/* $Id: mysql.c,v 1.18 1999/08/13 21:03:27 zeev Exp $ */ /* TODO: @@ -246,14 +246,36 @@ } +static PHP_INI_DISP(display_link_numbers) +{ + char *value; + + if (type==PHP_INI_DISPLAY_ORIG && ini_entry->modified) { + value = ini_entry->orig_value; + } else if (ini_entry->value) { + value = ini_entry->value; + } else { + value = NULL; + } + + if (value) { + if (atoi(value)==-1) { + PUTS("Unlimited"); + } else { + php_printf("%s", value); + } + } +} + + PHP_INI_BEGIN() - STD_PHP_INI_ENTRY("mysql.allow_persistent", "1", PHP_INI_SYSTEM, OnUpdateInt, allow_persistent, php_mysql_globals, mysql_globals) - STD_PHP_INI_ENTRY("mysql.max_persistent", "-1", PHP_INI_SYSTEM, OnUpdateInt, max_persistent, php_mysql_globals, mysql_globals) - STD_PHP_INI_ENTRY("mysql.max_links", "-1", PHP_INI_SYSTEM, OnUpdateInt, max_links, php_mysql_globals, mysql_globals) - STD_PHP_INI_ENTRY("mysql.default_host", NULL, PHP_INI_ALL, OnUpdateString, default_host, php_mysql_globals, mysql_globals) - STD_PHP_INI_ENTRY("mysql.default_user", NULL, PHP_INI_ALL, OnUpdateString, default_user, php_mysql_globals, mysql_globals) - STD_PHP_INI_ENTRY("mysql.default_password", NULL, PHP_INI_ALL, OnUpdateString, default_password, php_mysql_globals, mysql_globals) - PHP_INI_ENTRY("mysql.default_port", NULL, PHP_INI_ALL, OnMySQLPort) + STD_PHP_INI_BOOLEAN("mysql.allow_persistent", "1", PHP_INI_SYSTEM, OnUpdateInt, allow_persistent, php_mysql_globals, mysql_globals) + STD_PHP_INI_ENTRY_EX("mysql.max_persistent", "-1", PHP_INI_SYSTEM, OnUpdateInt, max_persistent, php_mysql_globals, mysql_globals, display_link_numbers) + STD_PHP_INI_ENTRY_EX("mysql.max_links", "-1", PHP_INI_SYSTEM, OnUpdateInt, max_links, php_mysql_globals, mysql_globals, display_link_numbers) + STD_PHP_INI_ENTRY("mysql.default_host", NULL, PHP_INI_ALL, OnUpdateString, default_host, php_mysql_globals, mysql_globals) + STD_PHP_INI_ENTRY("mysql.default_user", NULL, PHP_INI_ALL, OnUpdateString, default_user, php_mysql_globals, mysql_globals) + STD_PHP_INI_ENTRY("mysql.default_password", NULL, PHP_INI_ALL, OnUpdateString, default_password, php_mysql_globals, mysql_globals) + PHP_INI_ENTRY("mysql.default_port", NULL, PHP_INI_ALL, OnMySQLPort) PHP_INI_END() @@ -267,6 +289,8 @@ PHP_MINIT_FUNCTION(mysql) { + ELS_FETCH(); + #ifdef ZTS mysql_globals_id = ts_allocate_id(sizeof(php_mysql_globals), php_mysql_init_globals, NULL); #else @@ -306,41 +330,24 @@ PHP_MINFO_FUNCTION(mysql) { - char maxp[16],maxl[16]; + char buf[32]; MySLS_FETCH(); - - if (MySG(max_persistent)==-1) { - strcpy(maxp,"Unlimited"); - } else { - snprintf(maxp,15,"%ld",MySG(max_persistent)); - maxp[15]=0; - } - if (MySG(max_links)==-1) { - strcpy(maxl,"Unlimited"); - } else { - snprintf(maxl,15,"%ld",MySG(max_links)); - maxl[15]=0; - } - php_printf("<table cellpadding=5>" - "<tr><td>Allow persistent links:</td><td>%s</td></tr>\n" - "<tr><td>Persistent links:</td><td>%d/%s</td></tr>\n" - "<tr><td>Total links:</td><td>%d/%s</td></tr>\n" - "<tr><td>Client API version:</td><td>%s</td></tr>\n" -#if !(WIN32|WINNT) - "<tr><td valign=\"top\">Compilation definitions:</td><td>" - "<tt>MYSQL_INCLUDE=%s<br>\n" - "MYSQL_LFLAGS=%s<br>\n" - "MYSQL_LIBS=%s<br></tt></td></tr>" -#endif - "</table>\n", - (MySG(allow_persistent)?"Yes":"No"), - MySG(num_persistent),maxp, - MySG(num_links),maxl, - mysql_get_client_info() + + DISPLAY_INI_ENTRIES(); + + php_printf("<table border=5 width=\"600\">"); + php_info_print_table_header(2, "Key", "Value"); + sprintf(buf, "%d", MySG(num_persistent)); + php_info_print_table_row(2, "Active Persistent Links", buf); + sprintf(buf, "%d", MySG(num_links)); + php_info_print_table_row(2, "Active Links", buf); + php_info_print_table_row(2, "Client API version", mysql_get_client_info()); #if !(WIN32|WINNT) - ,PHP_MYSQL_INCLUDE,PHP_MYSQL_LFLAGS,PHP_MYSQL_LIBS + php_info_print_table_row(2, "MYSQL_INCLUDE", PHP_MYSQL_INCLUDE); + php_info_print_table_row(2, "MYSQL_LFLAGS", PHP_MYSQL_LFLAGS); + php_info_print_table_row(2, "MYSQL_LIBS", PHP_MYSQL_LIBS); #endif - ); + php_printf("</table>\n"); } Index: php4/ext/mysql/mysql.dsp diff -u php4/ext/mysql/mysql.dsp:1.1 php4/ext/mysql/mysql.dsp:1.2 --- php4/ext/mysql/mysql.dsp:1.1 Fri Jun 4 06:45:54 1999 +++ php4/ext/mysql/mysql.dsp Fri Aug 13 17:03:27 1999 @@ -45,7 +45,7 @@ # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\.." /I "..\..\..\libzend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\..\TSRM" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\.." /I "..\..\libzend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\TSRM" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x40d /d "NDEBUG" @@ -55,7 +55,7 @@ # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libmySQL.lib php4nts.lib /nologo /dll /machine:I386 /out:"Release/php_mysql.dll" /libpath:"..\..\..\MySQL\lib\opt" /libpath:"..\..\Release" +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libmySQL.lib php4nts.lib /nologo /dll /machine:I386 /out:"Release/php_mysql.dll" /libpath:"..\..\..\MySQL\libmysql\Release" /libpath:"..\..\Release" !ELSEIF "$(CFG)" == "mysql - Win32 Debug" @@ -70,8 +70,8 @@ # PROP Intermediate_Dir "Debug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\.." /I "..\..\..\libzend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\..\TSRM" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /D ZEND_DEBUG=1 /FR /YX /FD /GZ /c +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\.." /I "..\..\libzend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\TSRM" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /D ZEND_DEBUG=1 /FR /YX /FD /GZ /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x40d /d "_DEBUG" @@ -81,7 +81,7 @@ # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libmySQL.lib php4nts.lib /nologo /dll /debug /machine:I386 /out:"Debug/php_mysql.dll" /pdbtype:sept /libpath:"..\..\..\MySQL\lib\debug" /libpath:"..\..\Debug" +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libmySQL.lib php4nts.lib /nologo /dll /debug /machine:I386 /out:"Debug/php_mysql.dll" /pdbtype:sept /libpath:"..\..\..\MySQL\libmysql\Debug" /libpath:"..\..\Debug" !ELSEIF "$(CFG)" == "mysql - Win32 Debug_TS" @@ -96,8 +96,8 @@ # PROP Intermediate_Dir "Debug_TS" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\.." /I "..\..\..\libzend" /I "..\..\..\bindlib_w32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /FR /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\.." /I "..\..\..\libzend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\..\TSRM" /D "_DEBUG" /D ZEND_DEBUG=1 /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /D "ZTS" /FR /YX /FD /GZ /c +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\.." /I "..\..\..\libzend" /I "..\..\..\bindlib_w32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /FR /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\.." /I "..\..\libzend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\TSRM" /D "_DEBUG" /D ZEND_DEBUG=1 /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /D "ZTS" /FR /YX /FD /GZ /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x40d /d "_DEBUG" @@ -107,7 +107,7 @@ # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libmySQL.lib php4ts.lib /nologo /dll /debug /machine:I386 /out:"Debug_TS/php_mysql.dll" /pdbtype:sept /libpath:"..\..\..\MySQL\lib\debug" /libpath:"..\..\Debug_TS" +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libmySQL.lib php4ts.lib /nologo /dll /debug /machine:I386 /out:"Debug_TS/php_mysql.dll" /pdbtype:sept /libpath:"..\..\..\MySQL\libmysql\Debug" /libpath:"..\..\Debug_TS" !ELSEIF "$(CFG)" == "mysql - Win32 Release_TS" @@ -123,7 +123,7 @@ # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "..\.." /I "..\..\..\libzend" /I "..\..\..\bindlib_w32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\.." /I "..\..\..\libzend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\..\TSRM" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /D "ZTS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\.." /I "..\..\libzend" /I "..\..\..\bindlib_w32" /I "..\..\..\MySQL\include" /I "..\..\TSRM" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYSQL_EXPORTS" /D "COMPILE_DL" /D HAVE_MYSQL=1 /D "ZTS" /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x40d /d "NDEBUG" @@ -133,7 +133,7 @@ # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libmySQL.lib php4ts.lib /nologo /dll /machine:I386 /out:"Release_TS/php_mysql.dll" /libpath:"..\..\..\MySQL\lib\opt" /libpath:"..\..\Release_TS" +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib libmySQL.lib php4ts.lib /nologo /dll /machine:I386 /out:"Release_TS/php_mysql.dll" /libpath:"..\..\..\MySQL\libmysql\Release" /libpath:"..\..\Release_TS" !ENDIF Index: php4/ext/standard/dl.c diff -u php4/ext/standard/dl.c:1.8 php4/ext/standard/dl.c:1.9 --- php4/ext/standard/dl.c:1.8 Mon Aug 2 15:16:50 1999 +++ php4/ext/standard/dl.c Fri Aug 13 17:03:27 1999 @@ -87,7 +87,9 @@ php3_module_entry *(*get_module)(void); PLS_FETCH(); - if (cfg_get_string("extension_dir",&PG(extension_dir))==SUCCESS && PG(extension_dir)){ + if (cfg_get_string("extension_dir",&PG(extension_dir))==SUCCESS + && PG(extension_dir) + && PG(extension_dir)[0]){ int extension_dir_len = strlen(PG(extension_dir)); if (PG(extension_dir)[extension_dir_len-1]=='/' || PG(extension_dir)[extension_dir_len-1]=='\\') {

« previous php.version4 (#3410) next »