Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:8234 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 73332 invoked by uid 1010); 27 Feb 2004 16:48:17 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 73288 invoked from network); 27 Feb 2004 16:48:17 -0000 Received: from unknown (HELO david.home) (24.199.89.64) by pb1.pair.com with SMTP; 27 Feb 2004 16:48:17 -0000 Received: from Spooler by david.home (Mercury/32 v3.32) ID MO0000EF; 27 Feb 04 11:48:17 -0500 Received: from spooler by david.home (Mercury/32 v3.32); 27 Feb 04 11:48:12 -0500 Received: from David (127.0.0.1) by david.home (Mercury/32 v3.32) ID MG0000EE; 27 Feb 04 11:48:11 -0500 To: Date: Fri, 27 Feb 2004 11:48:11 -0500 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0) X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Importance: Normal Subject: linking with VS.NET: executor_globals_id is an unresolved external symbol From: sklar@sklar.com ("David Sklar") Using Visual Studio.NET, I can build PHP fine using the php5ts project/solution. I have a problem, however, with another project I've added to the solution which is a custom extension with no external (to PHP) library dependencies. It was working (compiling, linking, and then being loaded into PHP and run) just fine. However, when I added a call to call_user_function_ex() in the extension, it wouldn't link anymore. I get this error on linking: error LNK2001: unresolved external symbol _executor_globals_id I am calling call_user_function_ex() like this: res = call_user_function_ex(EG(function_table), NULL, callback_func, &callback_retval, 3, callback_params, 0, NULL TSRMLS_CC); so it seems that the executor_globals_id symbol comes from the use of EG(function_table). The file with the call_user_function_ex() call includes "zend_globals.h" which has the "extern int executor_globals_id" statement in the #ifdef ZTS clause. The extension compiles and links and runs just fine on Linux (presumably because ZTS isn't defined.) Is this something anyone else has run into? I can provide my .vcproj file if that's helpful. Thanks, David