php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #14618 Undefined Symbol: ldap_parse_reference
Submitted: 2001-12-20 05:54 UTC Modified: 2001-12-25 09:49 UTC
From: kv at netuse dot de Assigned: venaas (profile)
Status: Closed Package: LDAP related
PHP Version: 4.1.0 OS: Solaris 2.8
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: kv at netuse dot de
New email:
PHP Version: OS:

 

 [2001-12-20 05:54 UTC] kv at netuse dot de
This is the same problem as in Bug #11873

Configure options: --enable-force-cgi-redirect --enable-trans-sid --enable-memory-limit --with-ldap

Operating system: SunOS myHost 5.8 Generic_108528-12 sun4u sparc SUNW,Ultra-250

The original Solaris LDAP library is used, no other library is installed.

-rwxr-xr-x   1 root     bin       224200 Jan  5  2000 /usr/lib/libldap.so.4*

There is no ldap_parse_reference() in this library. (Solaris 9 comes with libldap.so.5 including ldap_parse_reference() ). 

LDAP_API_VERSION is defined as 2004 (2005 on Solaris 9) in /usr/include/ldap.h

HAVE_NSLDAP is not defined in main/config_php.h

I looked for references on the web about what API function has to be present in the different API versions. It's definitely possible that Sun wrongly labeled their library in Solaris 8 with 2004 but didn't supply the needed ldap_parse_reference() method.

But it would be useful to make PHP ignore that problem and undefine ldap_parse_reference() on Solaris 8 or at least check for its existance during configure.

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-12-23 09:09 UTC] venaas@php.net
Yes, this is certainly a SUN bug. LDAP_API_VERSION 2004
should mean version 4 of the draft-ietf-ldapext-ldap-c-api
draft, and it includes ldap_parse_reference(). I have a
couple of questions for you. What are LDAP_VENDOR_NAME and
LDAP_VENDOR_VERSION defined as? Are there other macros you
think could be used to detect that we are using the Solaris
8 lib? Could you try to check what else is missing? Is
ldap_parse_reference() really the only one?

 [2001-12-23 10:00 UTC] kv at netuse dot de
/usr/include/ldap.h contains on Solaris 8

#define LDAP_VENDOR_NAME        "Sun Microsystems Inc."
#define LDAP_VENDOR_VERSION     400

In Solaris 9, LDAP_VENDOR_VERSION is defined as 500.
So this can be used to identify the correct version.

After replacing the ldap_parse_reference() call in
ext/ldap/ldap.c with RETURN_FALSE, PHP compiled. That
means that all other functions are present.

We have filed that problem to Sun as well.





 [2001-12-25 09:49 UTC] venaas@php.net
I decided to make a more generic check for ldap_parse_reference(). Could you please test with latest
CVS or snapshot? Reopen this if there still are problems.

 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sun Dec 22 11:01:30 2024 UTC