ID:               39522
 User updated by:  phoemix at harmless dot hu
 Reported By:      phoemix at harmless dot hu
-Status:           Feedback
+Status:           Open
 Bug Type:         Compile Failure
 Operating System: freebsd6, linux (but irrelevant)
 PHP Version:      5.2.0
 New Comment:

no, sorry, that's a source file.
it includes that headers from php


Previous Comments:
------------------------------------------------------------------------

[2006-11-15 09:57:59] [EMAIL PROTECTED]

>i have this in my header file

>In file included from /usr/local/include/php/main/php.h:242,
is this the header file? ----->   from phpext/phpfuncs.cc

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

[2006-11-15 09:53:25] phoemix at harmless dot hu

i have this in my header file:
extern "C" {
#include "php.h"
#include "php_ini.h"
#include "SAPI.h"
#include "ext/standard/info.h"
#include "ext/standard/head.h"
}

and when i compile it i have these errors:
g++ -c -O2 -march=pentium4 -ggdb -W -Wall -pedantic -pipe
-I/usr/local/include -fpic -DCOMPILE_DL_POLYLOOK=1 -Idbapi/ -Iinclude/
`/var/jails/httpdtest/usr/local/bin/php-config --includes` -o
phpext/obj/phpfuncs.o phpext/phpfuncs.cc
In file included from /usr/local/include/php/main/php.h:242,
                 from phpext/phpfuncs.cc:7:
/usr/local/include/php/main/snprintf.h:138: error: expected `,' or
`...' before "num"
/usr/local/include/php/main/snprintf.h:139: error: ISO C++ forbids
declaration of `wide_int' with no type
/usr/local/include/php/main/snprintf.h:144: error: expected `,' or
`...' before "num"
/usr/local/include/php/main/snprintf.h:145: error: ISO C++ forbids
declaration of `u_wide_int' with no type
gmake: *** [phpext/obj/phpfuncs.o] Error 1


and:
g++ -c -O2 -march=pentium4 -ggdb -W -Wall -pedantic -pipe
-I/usr/local/include -fpic -DCOMPILE_DL_POLYLOOK=1 -Idbapi/ -Iinclude/
`/var/jails/httpdtest/usr/local/bin/php-config --includes` -o
phpext/obj/phpfuncs.o phpext/phpfuncs.cc
In file included from /usr/local/include/php/main/php_streams.h:104,
                 from /usr/local/include/php/main/php.h:408,
                 from phpext/phpfuncs.cc:7:
/usr/local/include/php/main/streams/php_stream_filter_api.h:66: error:
comma at end of enumerator list
gmake: *** [phpext/obj/phpfuncs.o] Error 1

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

[2006-11-15 09:46:17] [EMAIL PROTECTED]

We have several C++ extensions in PECL and I'm happen to be the author
of one. And I didn't/don't see any problems with C++ and PHP headers,
even on FreeBSD.
Please elaborate and show what exactly is wrong before posting a patch
for a bug which is not reproducible.

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

[2006-11-15 07:35:47] phoemix at harmless dot hu

Description:
------------
(the php version is irrelevant, i just couldn't pick that for the
"compile failure" type. i had it on 4.x and on 5.x both"

create a new extensions, have a C++ source file, and include some php
headers. it will fail on two points.

1) C++ doesn't support "long long". lot's of architectures has stdint.h
(i think it's C99). that should be used instead of "long long"-ing
manually.

2) C++ prohobits havint a trailing coma at the end of an enum's last
member.

i have created a patch for the FreeBSD ports system. the errors are in
snprintf.h and in php_stream_filter_api.h/.

--- patch follows ---
diff -ur php-5.2.0-orig/main/snprintf.h php-5.2.0/main/snprintf.h
--- php-5.2.0-orig/main/snprintf.h      Sun Jan  1 13:50:17 2006
+++ php-5.2.0/main/snprintf.h   Tue Nov 14 14:23:31 2006
@@ -120,8 +120,14 @@
 #else
 # define WIDE_INT              long
 #endif
+#ifdef __FreeBSD__
+#include <stdint.h>
+typedef int64_t wide_int;
+typedef uint64_t u_wide_int;
+#else
 typedef WIDE_INT wide_int;
 typedef unsigned WIDE_INT u_wide_int;
+#endif

 typedef int bool_int;

diff -ur php-5.2.0-orig/main/streams/php_stream_filter_api.h
php-5.2.0/main/streams/php_stream_filter_api.h
--- php-5.2.0-orig/main/streams/php_stream_filter_api.h Sun Jan  1
13:50:18 2006
+++ php-5.2.0/main/streams/php_stream_filter_api.h      Tue Nov 14
14:24:33 2006
@@ -62,7 +62,7 @@
 typedef enum {
        PSFS_ERR_FATAL, /* error in data stream */
        PSFS_FEED_ME,   /* filter needs more data; stop processing
chain until more is available */
-       PSFS_PASS_ON,   /* filter generated output buckets; pass them
on to next in chain */
+       PSFS_PASS_ON    /* filter generated output buckets; pass them
on to next in chain */
 } php_stream_filter_status_t;

 /* Buckets API. */


Reproduce code:
---------------
create a new extensions, have a C++ source file, and include some php
headers. it will fail on two points.

Expected result:
----------------
a clean compilation.

Actual result:
--------------
i don't have the error output yet, since my local version is fixed
manually.


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


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

Reply via email to