php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #76381 Getting fatal error over some header files missing
Submitted: 2018-05-27 11:08 UTC Modified: 2018-05-28 07:32 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:0 (0.0%)
Same OS:1 (100.0%)
From: mail at surjitsidhu dot com Assigned:
Status: Open Package: Compile Failure
PHP Version: 7.2.6 OS: Ubuntu 16.04
Private report: No CVE-ID: None
View Add Comment Developer Edit
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please — but make sure to vote on the bug!
Your email address:
MUST BE VALID
Solve the problem:
26 - 14 = ?
Subscribe to this entry?

 
 [2018-05-27 11:08 UTC] mail at surjitsidhu dot com
Description:
------------
/home/php-7.2.6/ext/pdo_odbc/pdo_odbc.c:28:25: fatal error: pdo/php_pdo.h: No such file or directory
compilation terminated.
Makefile:1749: recipe for target 'ext/pdo_odbc/pdo_odbc.lo' failed
make: *** [ext/pdo_odbc/pdo_odbc.lo] Error 1

Current 28 and 29 lines
#include "pdo/php_pdo.h"
#include "pdo/php_pdo_driver.h"

After below changes it works
#include "ext/pdo/php_pdo.h"
#include "ext/pdo/php_pdo_driver.h"


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2018-05-27 14:14 UTC] cmb@php.net
-Status: Open +Status: Feedback -Assigned To: +Assigned To: cmb
 [2018-05-27 14:14 UTC] cmb@php.net
What's your `./configure` line, and does `./configure` show some
errors?
 [2018-05-27 14:42 UTC] mail at surjitsidhu dot com
./configure does not show any errors

./configure --program-prefix= \
	--disable-dependency-tracking \
	--prefix=/opt/pop/pop-php72/root/usr \
	--exec-prefix=/opt/pop/pop-php72/root/usr \
	--bindir=/opt/pop/pop-php72/root/usr/bin \
	--sbindir=/opt/pop/pop-php72/root/usr/sbin \
	--sysconfdir=/opt/pop/pop-php72/root/etc \
	--datadir=/opt/pop/pop-php72/root/usr/share \
	--includedir=/opt/pop/pop-php72/root/usr/include \
	--libdir=/opt/pop/pop-php72/root/usr/lib64 \
	--libexecdir=/opt/pop/pop-php72/root/usr/libexec \
	--localstatedir=/opt/pop/pop-php72/root/usr/var \
	--sharedstatedir=/opt/pop/pop-php72/root/usr/com \
	--mandir=/opt/pop/pop-php72/root/usr/share/man \
	--infodir=/opt/pop/pop-php72/root/usr/share/info \
	--cache-file=../config.cache \
	--with-libdir=/lib/x86_64-linux-gnu \
	--with-config-file-path=/opt/pop/pop-php72/root/etc \
	--with-config-file-scan-dir=/opt/pop/pop-php72/root/etc/php.d \
	--disable-debug \
	--with-pic \
	--without-pear \
	--with-bz2 \
	--with-freetype-dir=/usr \
	--with-png-dir=/usr \
	--with-xpm-dir=/usr \
	--enable-gd-native-ttf \
	--without-gdbm \
	--with-gettext \
	--with-iconv \
	--with-jpeg-dir=/usr \
	--with-openssl \
	--with-pcre-regex=/usr \
	--with-zlib \
	--with-layout=GNU \
	--enable-exif \
	--enable-ftp \
	--enable-sockets \
	--with-kerberos \
	--enable-shmop \
	--with-libxml-dir=/usr \
	--with-system-tzdata \
	--with-mhash \
	--libdir=/opt/pop/pop-php72/root/usr/lib64/php \
	--enable-pcntl \
	--enable-opcache \
	--disable-opcache-file \
	--enable-phpdbg \
	--with-imap=shared,/opt/pop/pop-php72/root/usr \
	--with-imap-ssl \
	--enable-mbstring=shared \
	--enable-mbregex \
	--with-webp-dir=/usr \
	--with-gd=shared \
	--with-gmp=shared \
	--enable-calendar=shared \
	--enable-bcmath=shared \
	--with-bz2=shared \
	--enable-ctype=shared \
	--enable-dba=shared \
	--with-db4=/usr \
	--with-tcadb=/usr \
	--enable-exif=shared \
	--enable-ftp=shared \
	--with-gettext=shared \
	--with-iconv=shared \
	--enable-sockets=shared \
	--enable-tokenizer=shared \
	--with-xmlrpc=shared \
	--with-ldap=shared \
	--with-ldap-sasl \
	--enable-mysqlnd=shared \
	--with-mysqli=shared,mysqlnd \
	--with-mysql-sock=/var/run/mysqld/mysqld.sock \
	--enable-dom=shared \
	--with-pgsql=shared \
	--enable-simplexml=shared \
	--enable-xml=shared \
	--enable-wddx=shared \
	--with-snmp=shared,/usr \
	--enable-soap=shared \
	--with-xsl=shared,/usr \
	--enable-xmlreader=shared \
	--enable-xmlwriter=shared \
	--with-curl=shared \
	--enable-pdo=shared \
	--with-pdo-odbc=shared,unixODBC,/usr \
	--with-pdo-mysql=shared,mysqlnd \
	--with-pdo-pgsql=shared,/usr \
	--with-pdo-sqlite=shared,/usr \
	--with-sqlite3=shared,/usr \
	--enable-json=shared \
	--enable-zip=shared \
	--without-readline \
	--with-libedit \
	--with-pspell=shared \
	--enable-phar=shared \
	--with-mcrypt=shared \
	--with-tidy=shared \
	--enable-sysvmsg=shared \
	--enable-sysvshm=shared \
	--enable-sysvsem=shared \
	--enable-shmop=shared \
	--enable-posix=shared \
	--with-unixODBC=shared,/usr \
	--enable-intl=shared \
	--with-icu-dir=/usr \
	--with-enchant=shared,/usr \
	--with-recode=shared,/usr \
	--enable-fileinfo=shared

make
 [2018-05-28 07:32 UTC] cmb@php.net
-Status: Feedback +Status: Open -Assigned To: cmb +Assigned To:
 [2018-05-30 04:41 UTC] peterkokot at gmail dot com
1.) There are some options that aren't used in PHP 7.2 anymore:

configure: WARNING: unrecognized options: --disable-dependency-tracking, --enable-gd-native-ttf, --with-system-tzdata, --with-mcrypt

2.) There are two --libdir options (one is not needed)

3.) Imap and recode extensions can't work together. They can be built together with a bit of a patch of php source code but it's best to avoid the imap extension in such cases.

4.) Add --with-libzip (because the bundled libzip library has been removed in PHP 7.3 version) - for the future installations...

So the prerequisites for the Ubuntu 16.04:

  apt-get update && apt-get install -y \
    apt-utils \
    wget \
    xz-utils \
    build-essential \
    bison \
    re2c \
    libxml2-dev \
    libssl-dev \
    libpcre++-dev \
    libsqlite3-dev \
    libbz2-dev \
    libcurl4-openssl-dev \
    libdb5.3++-dev \
    libdb-dev \
    libsslcommon2-dev \
    pkg-config \
    libtokyocabinet-dev \
    libenchant-dev \
    libwebp-dev \
    libjpeg-dev \
    libpng-dev \
    libxpm-dev \
    libfreetype6-dev \
    libgmp-dev \
    libc-client-dev \
    libkrb5-dev \
    libldap2-dev \
    libsasl2-dev \
    libodbc1 \
    unixodbc-dev \
    libpq-dev \
    libpspell-dev \
    libedit-dev \
    librecode-dev \
    libsnmp-dev \
    libtidy-dev \
    libxslt-dev \
    libgdbm-dev \
    freetds-dev \
    libzip-dev


And the adjusted configure options:

  ./configure --program-prefix= \
    --prefix=/opt/pop/pop-php72/root/usr \
    --exec-prefix=/opt/pop/pop-php72/root/usr \
    --bindir=/opt/pop/pop-php72/root/usr/bin \
    --sbindir=/opt/pop/pop-php72/root/usr/sbin \
    --sysconfdir=/opt/pop/pop-php72/root/etc \
    --datadir=/opt/pop/pop-php72/root/usr/share \
    --includedir=/opt/pop/pop-php72/root/usr/include \
    --libdir=/opt/pop/pop-php72/root/usr/lib64 \
    --libexecdir=/opt/pop/pop-php72/root/usr/libexec \
    --localstatedir=/opt/pop/pop-php72/root/usr/var \
    --sharedstatedir=/opt/pop/pop-php72/root/usr/com \
    --mandir=/opt/pop/pop-php72/root/usr/share/man \
    --infodir=/opt/pop/pop-php72/root/usr/share/info \
    --cache-file=../config.cache \
    --with-config-file-path=/opt/pop/pop-php72/root/etc \
    --with-config-file-scan-dir=/opt/pop/pop-php72/root/etc/php.d \
    --disable-debug \
    --with-pic \
    --without-pear \
    --with-bz2 \
    --with-freetype-dir=/usr \
    --with-png-dir=/usr \
    --with-xpm-dir=/usr \
    --with-gettext \
    --with-iconv \
    --with-jpeg-dir=/usr \
    --with-openssl \
    --with-pcre-regex \
    --with-zlib \
    --with-layout=GNU \
    --enable-exif \
    --enable-ftp \
    --enable-sockets \
    --with-kerberos \
    --enable-shmop \
    --with-libxml-dir=/usr \
    --with-mhash \
    --enable-pcntl \
    --enable-opcache \
    --disable-opcache-file \
    --enable-phpdbg \
    --enable-mbstring=shared \
    --enable-mbregex \
    --with-webp-dir=/usr \
    --with-gd=shared \
    --with-gmp=shared \
    --enable-calendar=shared \
    --enable-bcmath=shared \
    --with-bz2=shared \
    --enable-ctype=shared \
    --enable-dba=shared \
      --without-gdbm \
      --with-db4 \
      --with-tcadb=/usr \
    --enable-exif=shared \
    --enable-ftp=shared \
    --with-gettext=shared \
    --with-iconv=shared \
    --enable-sockets=shared \
    --enable-tokenizer=shared \
    --with-xmlrpc=shared \
    --with-ldap=shared \
    --with-ldap-sasl \
    --enable-mysqlnd=shared \
    --with-mysqli=shared,mysqlnd \
    --with-mysql-sock=/var/run/mysqld/mysqld.sock \
    --enable-dom=shared \
    --with-pgsql=shared \
    --enable-simplexml=shared \
    --enable-xml=shared \
    --enable-wddx=shared \
    --with-snmp=shared,/usr \
    --enable-soap=shared \
    --with-xsl=shared,/usr \
    --enable-xmlreader=shared \
    --enable-xmlwriter=shared \
    --with-curl=shared \
    --enable-pdo=shared \
      --with-pdo-odbc=shared,unixODBC,/usr \
      --with-pdo-mysql=shared,mysqlnd \
      --with-pdo-pgsql=shared,/usr \
      --with-pdo-sqlite=shared,/usr \
      --with-pdo-dblib=shared \
    --with-sqlite3=shared,/usr \
    --enable-json=shared \
    --enable-zip=shared \
    --with-libzip=/usr \
    --without-readline \
    --with-libedit \
    --with-pspell=shared \
    --enable-phar=shared \
    --with-tidy=shared \
    --enable-sysvmsg=shared \
    --enable-sysvshm=shared \
    --enable-sysvsem=shared \
    --enable-shmop=shared \
    --enable-posix=shared \
    --with-unixODBC=shared,/usr \
    --enable-intl=shared \
    --with-icu-dir=/usr \
    --with-enchant=shared,/usr \
    --with-recode=shared,/usr \
    --enable-fileinfo=shared \
    --with-libdir=/lib/x86_64-linux-gnu

And this should go through with make then...
 [2018-05-30 11:59 UTC] spam2 at rhsoft dot net
> 1.) There are some options that aren't used in PHP 7.2 anymore:
>
> configure: WARNING: unrecognized options: --disable-dependency-tracking,
> --enable-gd-native-ttf, --with-system-tzdata, --with-mcrypt

this is not entirely true:

--disable-dependency-tracking is a completly different thing
https://www.gnu.org/software/automake/manual/html_node/Dependency-Tracking.html

--with-system-tzdata was officially never supported by PHP but for decades distributions ship patches - the same story was true over many years for "--with-gd=shared,%{_prefix}" while in the meantime php upstream changed it's mind 

the same for --with-libzip=%{_prefix} where the bundeled stuff is in the meantime even deprecated and using system libzip is the preferred method
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Apr 19 06:01:29 2024 UTC