[MacPorts] #70468: php74-apache2handler @7.4.33: Undefined symbols _res_9_dn_expand, _res_9_dn_skipname, _res_9_init, _res_9_search, (was: php74-apache2handler build fails for MacOS Sonoma (Apple M3))
MacPorts
noreply at macports.org
Wed Jul 31 00:02:31 UTC 2024
#70468: php74-apache2handler @7.4.33: Undefined symbols _res_9_dn_expand,
_res_9_dn_skipname, _res_9_init, _res_9_search,
-----------------------------------+------------------------
Reporter: dLovell2001 | Owner: ryandesign
Type: defect | Status: accepted
Priority: Normal | Milestone:
Component: ports | Version: 2.9.3
Resolution: | Keywords: sonoma
Port: php74-apache2handler |
-----------------------------------+------------------------
Changes (by ryandesign):
* status: new => accepted
* cc: ryandesign@… (removed)
* keywords: sonoma arm64 => sonoma
* owner: (none) => ryandesign
Old description:
> new computer - i've installed 2.9.3 - did selfupdate - installed apache24
> and php74 successfully.
> attempting to install php74-apache2handler fails. The log it points me to
> has this at the bottom:
>
> :info:build ld: symbol(s) not found for architecture arm64
> :info:build clang: error: linker command failed with exit code 1 (use -v
> to see invocation)
> :info:build make: *** [libs/libphp7.bundle] Error 1
> :info:build make: Leaving directory
> `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_php/php74-apache2handler/work/php-7.4.33'
> :info:build Command failed: cd
> "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_php/php74-apache2handler/work/php-7.4.33"
> && /usr/bin/make -j12 -w libs/libphp7.bundle
> :info:build Exit code: 2
> :error:build Failed to build php74-apache2handler: command execution
> failed
> :debug:build Error code: CHILDSTATUS 52815 2
> :debug:build Backtrace: command execution failed
> :debug:build while executing
> :debug:build "system {*}$notty {*}$callback {*}$nice $fullcmdstring"
> :debug:build invoked from within
> :debug:build "command_exec -callback
> portprogress::target_progress_callback build"
> :debug:build (procedure "portbuild::build_main" line 10)
> :debug:build invoked from within
> :debug:build "$procedure $targetname"
> :error:build See
> /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_php/php74-apache2handler/main.log
> for details.
>
> I tried port clean but that fails:
>
> Can't map the URL 'file://.' to a port description file ("Could not find
> Portfile in
> /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_php/php74-apache2handler").
> Please verify that the directory and portfile syntax are correct.
> To use the current port, you must be in a port's directory.
>
> I have no idea what is causing this. MacPorts has worked for me for
> years. I am doing everything as root
New description:
new computer - i've installed 2.9.3 - did selfupdate - installed apache24
and php74 successfully.
attempting to install php74-apache2handler fails. The log it points me to
has this at the bottom:
{{{
:info:build ld: symbol(s) not found for architecture arm64
:info:build clang: error: linker command failed with exit code 1 (use -v
to see invocation)
:info:build make: *** [libs/libphp7.bundle] Error 1
:info:build make: Leaving directory
`/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_php/php74-apache2handler/work/php-7.4.33'
:info:build Command failed: cd
"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_php/php74-apache2handler/work/php-7.4.33"
&& /usr/bin/make -j12 -w libs/libphp7.bundle
:info:build Exit code: 2
:error:build Failed to build php74-apache2handler: command execution
failed
:debug:build Error code: CHILDSTATUS 52815 2
:debug:build Backtrace: command execution failed
:debug:build while executing
:debug:build "system {*}$notty {*}$callback {*}$nice $fullcmdstring"
:debug:build invoked from within
:debug:build "command_exec -callback
portprogress::target_progress_callback build"
:debug:build (procedure "portbuild::build_main" line 10)
:debug:build invoked from within
:debug:build "$procedure $targetname"
:error:build See
/opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_php/php74-apache2handler/main.log
for details.
}}}
I tried port clean but that fails:
{{{
Can't map the URL 'file://.' to a port description file ("Could not find
Portfile in
/opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_lang_php/php74-apache2handler").
Please verify that the directory and portfile syntax are correct.
To use the current port, you must be in a port's directory.
}}}
I have no idea what is causing this. MacPorts has worked for me for years.
I am doing everything as root
--
Comment:
The relevant error in the log is:
{{{
Undefined symbols for architecture arm64:
"_res_9_dn_expand", referenced from:
_php_parserr in dns.o
_php_parserr in dns.o
_php_parserr in dns.o
_php_parserr in dns.o
_php_parserr in dns.o
_php_parserr in dns.o
_php_parserr in dns.o
...
"_res_9_dn_skipname", referenced from:
_zif_dns_get_record in dns.o
_zif_dns_get_mx in dns.o
_zif_dns_get_mx in dns.o
"_res_9_init", referenced from:
_zif_dns_check_record in dns.o
_zif_dns_get_record in dns.o
_zif_dns_get_mx in dns.o
"_res_9_search", referenced from:
_zif_dns_check_record in dns.o
_zif_dns_get_record in dns.o
_zif_dns_get_mx in dns.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
}}}
The log also shows you are using the Xcode command line tools version
15.3. This problem is caused by using Xcode or CLT version 15.3 or later
because those versions consider implicit int to be an error. Previous
compilers allowed implicit int with just a warning. For reasons of
laziness we still use Xcode and CLT 15.2 on our macOS 14 build machines
and this is able to build PHP without problems.
PHP cleaned up its code for implicit int issues in version 8.0, for
example in [https://github.com/php/php-
src/commit/aeaab8ee3e52f74c042a861e394437d6554b36be this commit]. I need
to either backport that commit, and probably others, or downgrade the
error back to a warning to allow php74 and earlier to build again with the
latest Xcode and CLT.
If you are able to use a newer version of PHP for your project, try php80
or newer. They shouldn't have this problem.
If you require php74 or older, with the understanding that those versions
have reached end of life, you can work around the problem by running:
{{{
sudo port clean php74-apache2handler
sudo port install php74-apache2handler configure.cflags="-Os -Wno-error
=implicit-int"
}}}
--
Ticket URL: <https://trac.macports.org/ticket/70468#comment:1>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list