PHP fails to build with macOS libraries (for example ldap)
Open
Nobody has claimed this yet.
Bug
Category: Build System
Status: Needs Triage
- Dominant language
- C
- Stars
- 40.4k
- Forks
- 8.1k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 96
Description
Description
The following code:
system "./configure", *args
system "make"
system "make", "install"
Resulted in this output:
Undefined symbols for architecture arm64:
"_ldap_create_passwordpolicy_control", referenced from:
_zif_ldap_exop_passwd in ldap.o
"_ldap_create_sort_control_value", referenced from:
__php_ldap_controls_from_array in ldap.o
Undefined symbols for architecture arm64:
"_ldap_create_passwordpolicy_control", referenced from:
_zif_ldap_exop_passwd in ldap.o
"_ldap_create_vlv_control_value", referenced from:
__php_ldap_controls_from_array in ldap.o
"_ldap_create_sort_control_value", referenced from:
__php_ldap_controls_from_array in ldap.o
"_ldap_destroy", referenced from:
_ldap_link_free_obj in ldap.o
_zif_ldap_unbind in ldap.o
"_ldap_create_vlv_control_value", referenced from:
__php_ldap_controls_from_array in ldap.o
"_ldap_destroy", referenced from:
_ldap_link_free_obj in ldap.o
_zif_ldap_unbind in ldap.o
"_ldap_parse_passwordpolicy_control", referenced from:
__php_ldap_controls_to_array in ldap.o
Undefined symbols for architecture arm64:
"_ldap_create_passwordpolicy_control", referenced from:
_zif_ldap_exop_passwd in ldap.o
"_ldap_parse_passwordpolicy_control", referenced from:
__php_ldap_controls_to_array in ldap.o
"_tidyLibraryVersion", referenced from:
_zm_info_tidy in tidy.o
"_ldap_create_sort_control_value", referenced from:
__php_ldap_controls_from_array in ldap.o
"_tidyLibraryVersion", referenced from:
_zm_info_tidy in tidy.o
"_ldap_create_vlv_control_value", referenced from:
__php_ldap_controls_from_array in ldap.o
ld: symbol(s) not found for architecture arm64
ld: symbol(s) not found for architecture arm64
"_ldap_destroy", referenced from:
_ldap_link_free_obj in ldap.o
_zif_ldap_unbind in ldap.o
But I expected this output instead:
I expected the build to succeed.
Homebrew currently carries a patch for this, which was submitted in https://github.com/php/php-src/pull/3472, but denied since PHP 7.4 used pkg config.
PHP Version
PHP 8.1.16
Operating System
macOS 13.2.1
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Homebrew Formula/php@8.1.rb configure and make invocation, then review the linked Homebrew patch and PHP pull request for the intended build change. Reproduce the PHP 8.1.16 build on macOS 13.2.1 arm64 with LDAP and tidy enabled; done means the build completes without the reported undefined symbols.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, macos, php
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100