[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