Skip to content

PHP fails to build with macOS libraries (for example ldap) #10680

@SMillerDev

Description

@SMillerDev

Description

The following code:

https://github.com/Homebrew/homebrew-core/blob/4e4535e1612ecb88c24103bdefa11fa620162327/Formula/php@8.1.rb

    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 #3472, but denied since PHP 7.4 used pkg config.

PHP Version

PHP 8.1.16

Operating System

macOS 13.2.1

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions