Edit report at http://bugs.php.net/bug.php?id=53423&edit=1

 ID:                 53423
 User updated by:    jd at cpanel dot net
 Reported by:        jd at cpanel dot net
 Summary:            mysql_statement.c uses C99 syntax
 Status:             Bogus
 Type:               Bug
 Package:            PDO related
 Operating System:   Linux
 PHP Version:        5.3SVN-2010-11-29 (SVN)
 Block user comment: N
 Private report:     N

 New Comment:

Also, to be clear, the compile that failed was linking with
libmysqlclient (MySQL 4.0.27), not mysqlnd.  As far as I can tell
though, this has no bearing on the compile failure.


Previous Comments:
------------------------------------------------------------------------
[2010-11-29 17:07:25] jd at cpanel dot net

Just to be clear, the idea that RedHat 7.3 isn't supported is fine with
me.  It's an ancient system and supporting it shouldn't factor into
anyone else's decision making. I always test with RedHat 7.3 because GCC
2.95 points out these types of bugs that many modern compilers allow
without complaint.



I'm a little concerned that PHP is going to suddenly start requiring a
C99 compatible compiler without testing the compiler for C99 support or
putting the compiler into C99 mode though.



PHP 5.3.3 did not require a C99 compatible compiler as far as I'm aware.

------------------------------------------------------------------------
[2010-11-29 16:58:49] [email protected]

PS: Don't get me wrong when I say "from a MySQL perspective". Of course,
php.net can overrule me but "we MySQL guys" are the ones doing most of
the work on mysqlnd. So, "from a maintainer perspective", even with my
php.net hat on, ...

------------------------------------------------------------------------
[2010-11-29 16:54:26] [email protected]

>From a MySQL perspective supporting RH 7.3/gcc 2.95 is bogus. RH 7.4 has
been released in May 2002, hasn't it? That is a little too old for using
PHP 5.3 with mysqlnd. RH 7.3 is way before mysqlnd development has
started.



As there is an alternative (good old libmysqlclient) for those using 8
years old systems, I'm closing the report.



Of course, we'll check if we can add a test for the GCC version to bail
out in case of old GCC.

------------------------------------------------------------------------
[2010-11-29 16:43:39] jd at cpanel dot net

Description:
------------
PDO_MySQL fails to compile on an older RedHat 7.3 system using GCC 2.95
because the macros in mysql_statement.c expand into C99 style inline
variable declarations. This error was encountered while testing PHP
5.3.4RC1.



Error messages from the compiler:



/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c: In
function `pdo_mysql_stmt_dtor':

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c:52:
structure has no member named `stmt'

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c:70:
structure has no member named `params'

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c:71:
structure has no member named `params'

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c:73:
structure has no member named `in_null'

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c:74:
structure has no member named `in_null'

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c:76:
structure has no member named `in_length'

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c:77:
structure has no member named `in_length'

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c: In
function `pdo_mysql_stmt_set_row_count':

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c:127:
structure has no member named `stmt'

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c: In
function `pdo_mysql_stmt_execute':

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c:295:
structure has no member named `stmt'

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c: In
function `pdo_mysql_stmt_param_hook':

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c:469:
`MYSQL_BIND' undeclared (first use in this function)

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c:469:
(Each undeclared identifier is reported only once

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c:469:
for each function it appears in.)

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c:469:
`b' undeclared (first use in this function)

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c: In
function `pdo_mysql_stmt_describe':

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c:678:
structure has no member named `stmt'

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c: In
function `pdo_mysql_stmt_get_col':

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c:727:
structure has no member named `stmt'

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c: In
function `pdo_mysql_stmt_col_meta':

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c:831:
structure has no member named `stmt'

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c: In
function `pdo_mysql_stmt_cursor_closer':

/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql/mysql_statement.c:898:
structure has no member named `stmt'



Test script:
---------------
r...@rh73 [/home/cpeasyapache/src/php-5.3.4RC1/ext/pdo_mysql]# cat
/home/cpeasyapache/src/php-5.3.4RC1/config.nice 

#! /bin/sh

#

# Created by configure



CFLAGS=' -I/usr/kerberos/include' \

'./configure' \

--disable-fileinfo \

--enable-bcmath \

--enable-calendar \

--enable-exif \

--enable-ftp \

--enable-gd-native-ttf \

--enable-libxml \

--enable-magic-quotes \

--enable-mbstring \

--enable-pdo=shared \

--enable-safe-mode \

--enable-soap \

--enable-sockets \

--enable-wddx \

--enable-zend-multibyte \

--enable-zip \

--prefix=/usr/local \

--with-apxs2=/usr/local/apache/bin/apxs \

--with-bz2 \

--with-config-file-path=/usr/local/lib \

--with-config-file-scan-dir=/usr/local/lib/php.ini.d \

--with-curl=/opt/curlssl/ \

--with-curlwrappers \

--with-freetype-dir=/usr \

--with-gd \

--with-gettext \

--with-imap=/opt/php_with_imap_client/ \

--with-imap-ssl=/usr \

--with-jpeg-dir=/usr \

--with-kerberos \

--with-libexpat-dir=/usr \

--with-libxml-dir=/opt/xml2 \

--with-libxml-dir=/opt/xml2/ \

--with-mcrypt=/opt/libmcrypt/ \

--with-mm=/opt/mm/ \

--with-mysql=/usr \

--with-mysql-sock=/var/lib/mysql/mysql.sock \

--with-pcre-regex=/opt/pcre \

--with-pdo-mysql=shared \

--with-pdo-sqlite=shared \

--with-png-dir=/usr \

--with-pspell \

--with-sqlite=shared \

--with-tidy=/opt/tidy/ \

--with-xmlrpc \

--with-xpm-dir=/usr/X11R6 \

--with-xsl=/opt/xslt/ \

--with-zlib \

--with-zlib-dir=/usr \

"$@"





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



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

Reply via email to