PHP 5.3 compile error when enale variant "fastcgi"

Ryan Schmidt ryandesign at macports.org
Sun Aug 9 15:10:30 PDT 2009


On Aug 9, 2009, at 12:10, Chang James wrote:

>   I try to compile PHP5 in MacPorts after I re-compile apr-util  
> with it's new varient "postgresql84.
>
>   I use the following command, but it will failed when add fastcgi  
> variant:

I always use +apache2 +fastcgi locally so I know this generally works  
well. I have not previously used all the other variants you're using,  
but I tried them now and it builds fine in MacPorts 1.7.1 on Mac OS X  
10.4.11 and 10.5.7.

Note that the functions provided by the +pcntl variant must not be  
used when PHP is running in a web server environment. See:

http://php.net/intro.pcntl


To begin to try to resolve this issue, I would suggest you  
reinstalling those ports that you have installed with improper  
platform variants, like Joshua said before:


> /opt/local/bin/port -f install php5 +snmp +macosx +ipc +fastcgi  
> +pear +mysql5 +pcntl +apache2
> Warning: Implicit variants should not be explicitly set or unset.  
> macosx will be ignored.
> Warning: Skipping upgrade since libiconv 1.13_0 >= libiconv 1.13_0,  
> even though installed variants "+enable_cp932fix+freebsd+linux" do  
> not match "+enable_cp932fix". Use 'upgrade --enforce-variants' to  
> switch to the requested variants.

+freebsd and +linux should not be used on Mac OS X.


> Warning: Skipping upgrade since ncurses 5.7_0 >= ncurses 5.7_0,  
> even though installed variants "+freebsd" do not match "". Use  
> 'upgrade --enforce-variants' to switch to the requested variants.

Same here.


> Warning: Skipping upgrade since tcl 8.5.6_0 >= tcl 8.5.6_0, even  
> though installed variants "+memdebug+threads" do not match "+darwin 
> +memdebug+threads". Use 'upgrade --enforce-variants' to switch to  
> the requested variants.
> Warning: Skipping upgrade since openssl 0.9.8k_0 >= openssl  
> 0.9.8k_0, even though installed variants "+rfc3779" do not match  
> "+darwin+rfc3779". Use 'upgrade --enforce-variants' to switch to  
> the requested variants.
> Warning: Skipping upgrade since bzip2 1.0.5_2 >= bzip2 1.0.5_2,  
> even though installed variants "" do not match "+darwin". Use  
> 'upgrade --enforce-variants' to switch to the requested variants.
> Warning: Skipping upgrade since readline 6.0.000_1 >= readline  
> 6.0.000_1, even though installed variants "" do not match  
> "+darwin". Use 'upgrade --enforce-variants' to switch to the  
> requested variants.
> Warning: Skipping upgrade since tk 8.5.6_1 >= tk 8.5.6_1, even  
> though installed variants "" do not match "+darwin". Use 'upgrade -- 
> enforce-variants' to switch to the requested variants.
> Warning: Skipping upgrade since apache2 2.2.11_0 >= apache2  
> 2.2.11_0, even though installed variants "+darwin_9+openbsd+openldap 
> +workermpm" do not match "+darwin+darwin_9+openldap+workermpm". Use  
> 'upgrade --enforce-variants' to switch to the requested variants.

All of the above ports are missing the +darwin platform variant,  
which for various reasons these ports require in order to build  
correctly on Mac OS X. MacPorts automatically adds the +darwin  
variant for you, so you must've done something special to remove it,  
such as by typing "sudo port install portname -darwin" or by putting  
"-darwin" into your variants.conf, neither of which you should do.

So please edit your variants.conf, remove any references to platform  
variants from it, and then for each port referenced above, uninstall  
it with

sudo port -f uninstall portname

And then reinstall it with

sudo port install portname

You can specify variants on the port install command if desired, but  
do not specify platform variants; allow MacPorts to select the right  
ones for you.


> Undefined symbols:
>   "_compiler_globals", referenced from:
>       _compiler_globals$non_lazy_ptr in cgi_main.o
>   "_core_globals", referenced from:
>       _core_globals$non_lazy_ptr in cgi_main.o
>   "_executor_globals", referenced from:
>       _executor_globals$non_lazy_ptr in info.o
>       _executor_globals$non_lazy_ptr in cgi_main.o
>   "_sapi_globals", referenced from:
>       _sapi_globals$non_lazy_ptr in info.o
>       _sapi_globals$non_lazy_ptr in cgi_main.o
> ld: symbol(s) not found
> collect2: ld returned 1 exit status
> make: *** [sapi/cgi/php-cgi] Error 1

I have seen this reported once before, and did not have a solution  
for it then either:

http://trac.macports.org/ticket/16596

Please let us know if rebuilding your ports with the proper platform  
variants resolves the issue, so that I can update the ticket with  
that solution.




More information about the macports-users mailing list