Bug #80926 [Nab->ReO]: Unable to compile PDO oci and LDAP

From: Date: Tue, 06 Apr 2021 16:12:08 +0000
Subject: Bug #80926 [Nab->ReO]: Unable to compile PDO oci and LDAP
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-233231@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=80926&edit=1

 ID:                 80926
 Updated by:         cmb@php.net
 Reported by:        tmp6 at turnov dot org
 Summary:            Unable to compile PDO oci and LDAP
-Status:             Not a bug
+Status:             Re-Opened
 Type:               Bug
 Package:            Compile Failure
 Operating System:   Ubuntu 18.04.5 LTS
 PHP Version:        8.0.3
-Assigned To:        cmb
+Assigned To:        mcmic
 Block user comment: N
 Private report:     N

 New Comment:

> Not possible to use current ldap libraries from Oracle

Oh!  Côme might be interested in this.

At least as workaround, you can likely build PHP without PDO_OCI
first, and then do a phpize build of PDO_OCI.


Previous Comments:
------------------------------------------------------------------------
[2021-04-06 15:25:56] tmp6 at turnov dot org

Not possible to use current ldap libraries from Oracle

/bin/bash /usr/local/src/php-8.0.3/libtool --silent --preserve-dup-deps --mode=compile cc
-Iext/ldap/ -I/usr/local/src/php-8.0.3/ext/ldap/ -I/usr/local/src/php-8.0.3/include
-I/usr/local/src/php-8.0.3/main -I/usr/local/src/php-8.0.3 -I/usr/local/src/php-8.0.3/ext/date/lib
-I/usr/include/libxml2 -I/usr/include/x86_64-linux-gnu -I/usr/local/lib/oracle/21.1/client64/include
-I/usr/local/include -I/usr/local/src/php-8.0.3/ext/mbstring/libmbfl
-I/usr/local/src/php-8.0.3/ext/mbstring/libmbfl/mbfl -I/usr/local/include/oracle/21.1/client64
-I/usr/lib/x86_64-linux-gnu/libzip/include -I/usr/local/src/php-8.0.3/TSRM
-I/usr/local/src/php-8.0.3/Zend    -Wno-clobbered -Wall -Wextra -Wno-strict-aliasing
-Wno-implicit-fallthrough -Wno-unused-parameter -Wno-sign-compare -g -O2 -fvisibility=hidden
-DZEND_SIGNALS   -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -c /usr/local/src/php-8.0.3/ext/ldap/ldap.c -o
ext/ldap/ldap.lo 
/usr/local/src/php-8.0.3/ext/ldap/ldap.c: In function ‘_close_ldap_link’:
/usr/local/src/php-8.0.3/ext/ldap/ldap.c:104:2: warning: implicit declaration of function
‘ldap_destroy’; did you mean ‘ldap_perror’? [-Wimplicit-function-declaration]
  ldap_destroy(ld->link);
  ^~~~~~~~~~~~
  ldap_perror
/usr/local/src/php-8.0.3/ext/ldap/ldap.c: In function ‘_php_ldap_control_to_array’:
/usr/local/src/php-8.0.3/ext/ldap/ldap.c:147:30: error:
‘LDAP_CONTROL_PASSWORDPOLICYRESPONSE’ undeclared (first use in this function); did you
mean ‘LDAP_CONTROL_PWDEXPIRING’?
  if (strcmp(ctrl->ldctl_oid, LDAP_CONTROL_PASSWORDPOLICYRESPONSE) == 0) {
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                              LDAP_CONTROL_PWDEXPIRING

....

------------------------------------------------------------------------
[2021-04-06 08:55:58] cmb@php.net

If you want to build both LDAP and OCI, you need to use the Oracle
LDAP libraries, i.e. you need to pass the path to configure;
something like:

  ./configure --with-ldap=/usr/lib/oracle/21.1/client64/lib …

------------------------------------------------------------------------
[2021-04-01 08:23:06] tmp6 at turnov dot org

Description:
------------
It's unable to compile LDAP and PDO oci together.

/bin/bash /usr/local/src/php-8.0.3/libtool --silent --preserve-dup-deps --mode=compile cc -Imain/
-I/usr/local/src/php-8.0.3/main/ -I/usr/local/src/php-8.0.3/include -I/usr/local/src/php-8.0.3/main
-I/usr/local/src/php-8.0.3 -I/usr/local/src/php-8.0.3/ext/date/lib -I/usr/include/libxml2
-I/usr/local/include/oracle/21.1/client64 -I/usr/local/src/php-8.0.3/TSRM
-I/usr/local/src/php-8.0.3/Zend    -Wno-clobbered -Wall -Wextra -Wno-strict-aliasing
-Wno-implicit-fallthrough -Wno-unused-parameter -Wno-sign-compare -g -O2 -fvisibility=hidden
-DZEND_SIGNALS   -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -c main/internal_functions_cli.c -o
main/internal_functions_cli.lo 
In file included from /usr/local/src/php-8.0.3/ext/ldap/php_ldap.h:26:0,
                 from main/internal_functions_cli.c:37:
/usr/local/include/oracle/21.1/client64/ldap.h:48:0: warning: "LBER_CLASS_UNIVERSAL"
redefined
 #define LBER_CLASS_UNIVERSAL 0x00

...

In file included from /usr/local/src/php-8.0.3/ext/ldap/php_ldap.h:23:0,
                 from main/internal_functions_cli.c:37:
/usr/include/lber.h:335:1: note: previous declaration of ‘ber_scanf’ was here
 ber_scanf LDAP_P((
 ^~~~~~~~~
Makefile:1222: recipe for target 'main/internal_functions_cli.lo' failed
make: *** [main/internal_functions_cli.lo] Error 1


Test script:
---------------
PHPVER=8.0.3
./configure \
--prefix=/opt/php-$PHPVER \
--with-config-file-path=/opt/php-$PHPVER/etc \
--with-config-file-scan-dir=/opt/php-$PHPVER/etc/conf.d \
--with-pdo-oci=shared,instantclient,/usr/local/lib/oracle/21.1/client64/lib \
--with-ldap




------------------------------------------------------------------------



--
Edit this bug report at https://bugs.php.net/bug.php?id=80926&edit=1


Thread (8 messages)

« previous php.bugs (#233231) next »