Opened 16 years ago

Closed 15 years ago

#16596 closed defect (duplicate)

php5: undefined symbols _executor_globals _sapi_globals _compiler_globals _core_globals

Reported by: artrigue@… Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 1.6.0
Keywords: Cc: jyrkiwahlstedt
Port: php5

Description (last modified by ryandesign (Ryan Carsten Schmidt))

sudo port -v install php5 +apache2 +fastcgi +imap +mysql5 +pcntl +pear +pspell +sockets +tidy | tee -a ./php5_install_log

produces (besides a massive log) ld errors:

/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: Undefined symbols:
_executor_globals
_sapi_globals
_compiler_globals
_core_globals

...looking through the log I see 4 places where it appears a configuration script is called with invalid parameters:

Generating files
updating cache ./config.cache
[...]
creating main/internal_functions_cli.c
+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE.  By continuing this installation |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.

Notice: Following unknown configure options were used:

--with-xml
--with-expat-dir=/opt/local
--enable-filepro
--enable-trans-sid
--enable-dbx

Check './configure --help' for available options

--->  Building php5 with target all

I have perl 5.10 and a generally fresh 10.4 install (plus updates to 10.4.11), and xcode 2.5. I only have had this hard drive installed for 2 days :)

Logfile is attached

Attachments (1)

php5_install_log.bz2 (58.3 KB) - added by artrigue@… 16 years ago.
log of the install

Download all attachments as: .zip

Change History (7)

Changed 16 years ago by artrigue@…

Attachment: php5_install_log.bz2 added

log of the install

comment:1 Changed 16 years ago by blb@…

Cc: jwa@… added; artrigue@… removed
Description: modified (diff)
Owner: changed from macports-tickets@… to ryandesign@…
Type: enhancementdefect

comment:2 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)

Summary: php5 build erroresphp5: undefined symbols _executor_globals _sapi_globals _compiler_globals _core_globals

Your install log says:

checking for safe mode exec dir... /usr/local/php/bin

Things installed in /usr/local can interfere with things installed by MacPorts. Please rename /usr/local to /usr/local-off, then clean the work area and try installing again.

sudo mv /usr/local /usr/local-off
sudo port clean --work php5
sudo port -v install php5 +apache2 +fastcgi +imap +mysql5 +pcntl +pear +pspell +sockets +tidy | tee php5_install_log

If it works, then you'll know /usr/local interfered. You should use MacPorts to install whatever it is you had in /usr/local and then not install anything in /usr/local in the future.

Regarding the error:

Notice: Following unknown configure options were used:

This is not a serious problem, and has already been reported in #14859.

comment:3 in reply to:  2 ; Changed 16 years ago by artrigue@…

I did that. Is there a way I can not do that though? the official image from mysql was the culprit. — something I'd like to revert to honestly, it supports the 64 bit version.

Still, the configuration script is called with a command out of sync with the portfile's configure tool, its no surprise to see things sneaking in the way here. And it just finished its build with the same error:

/usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: Undefined symbols:
_executor_globals
_sapi_globals
_compiler_globals
_core_globals
collect2: ld returned 1 exit status
make: *** [sapi/cgi/php-cgi] Error 1

Warning: the following items did not execute (for php5): org.macports.activate org.macports.destroot org.macports.install
Error: Status 1 encountered during processing.

Those symbols are all over almost every .o in the project.

The script log says

--->  Configuring php5 again for fastcgi

but I can't find php-cgi anywhere in the build directory.

I have:

-rwxr-xr-x  1 root  799 sep 19 19:21 pear
-rwxr-xr-x  1 root  820 sep 19 19:21 peardev
-rwxr-xr-x  1 root  736 sep 19 19:21 pecl
-rwxr-xr-x  1 root 7,9M sep 19 19:20 php
-rwxr-xr-x  1 root 4,2K sep 19 19:20 php-config
-rwxr-xr-x  1 root 4,1K sep 19 19:20 phpize

in ../destroot/opt/local/bin , but not php-cgi.

comment:4 Changed 16 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

comment:5 in reply to:  3 ; Changed 15 years ago by ryandesign (Ryan Carsten Schmidt)

If removing MySQL from /usr/local did not fix the issue, then it was not the cause of it. :) If there is nothing else in /usr/local, then my guess was incorrect and that was not related to this issue. It's just one of the first things I guess when troubleshooting, since it so often is the problem.

The unknown configure arguments have been dealt with separately and are irrelevant to the issue you are reporting here.

The reason you don't have php-cgi in your build directory is because the build failed. If the build had succeeded, php-cgi would have been created.

I apologize for the almost year-long delay in responding to you, but I have had no insights into solving the issue, until today, when someone reported the same problem on the mailing list. That user had installed a variety of ports without their required +darwin platform variants, and installed some others with improper +linux and +freebsd platform variants. Could that be the case for you as well? Could you show us the output of "port installed"?

Since it has been a long time since you reported the problem, if you were already able to resolve it, please let us know how.

comment:6 in reply to:  5 Changed 15 years ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Resolution: duplicate
Status: newclosed

Replying to ryandesign@…:

That user had installed a variety of ports without their required +darwin platform variants, and installed some others with improper +linux and +freebsd platform variants.

This analysis of that user's situation was incorrect; the "missing" +darwin variant was only an artifact of a bug in MacPorts 1.7.1 and earlier that did not properly record the +darwin variant in the registry.

I have now been able to reproduce the error in this ticket, and it is caused by simultaneously using both the +apache2 and +fastcgi variants of php5 when apache2 has been compiled with the +workermpm variant. I am marking this bug as a duplicate of #21281 because although that bug came later, it is not burdened by what we now know are irrelevant issues like this ticket is.

Note: See TracTickets for help on using tickets.