|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2011-07-18 04:36 UTC] manuel at bouza dot ch
Description: ------------ If PHP is configured with --with-gd for compilation, make fails and aborts with an error. Test script: --------------- On my MAC OSX 10.6.8, I configured PHP as follows for compilation: > ./configure \ --prefix=/opt/local/php-5.4-dev \ --with-config-file-path=/opt/local/php-5.4-dev/etc \ --enable-fpm \ --with-fpm-user=_www \ --with-fpm-group=_www \ --enable-sockets \ --enable-mbstring \ --enable-pcntl \ --enable-soap \ --enable-sockets \ --enable-zip \ --with-zlib \ --with-curl \ --with-gd=/opt/local \ --with-jpeg-dir=/opt/local \ --with-png-dir=/opt/local \ --with-zlib-dir \ --with-gettext=/opt/local \ --with-mcrypt=/opt/local \ --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-pdo-sqlite \ --with-tidy \ --with-pear \ --with-iconv > make Produces error as stated in actual result (see below). Expected result: ---------------- I expect make to complete successfully when --with-gd is specified for configuration. Actual result: -------------- Make fails and aborts with the following error: /bin/sh /Users/manuel.bouza/tmp/php-5.4-dev/libtool --silent --preserve-dup-deps --mode=compile cc -I/opt/local/include -Iext/gd/ -I/Users/manuel.bouza/tmp/php- 5.4-dev/ext/gd/ -DPHP_ATOM_INC -I/Users/manuel.bouza/tmp/php-5.4-dev/include - I/Users/manuel.bouza/tmp/php-5.4-dev/main -I/Users/manuel.bouza/tmp/php-5.4-dev -I/Users/manuel.bouza/tmp/php-5.4-dev/ext/date/lib - I/Users/manuel.bouza/tmp/php-5.4-dev/ext/ereg/regex -I/usr/include/libxml2 - I/opt/local/include -I/usr/local/include -I/Users/manuel.bouza/tmp/php-5.4- dev/ext/mbstring/oniguruma -I/Users/manuel.bouza/tmp/php-5.4- dev/ext/mbstring/libmbfl -I/Users/manuel.bouza/tmp/php-5.4- dev/ext/mbstring/libmbfl/mbfl -I/Users/manuel.bouza/tmp/php-5.4- dev/ext/sqlite3/libsqlite -I/usr/include/tidy -I/Users/manuel.bouza/tmp/php-5.4- dev/TSRM -I/Users/manuel.bouza/tmp/php-5.4-dev/Zend -no-cpp-precomp - I/usr/local/include -g -O2 -fvisibility=hidden -DZEND_SIGNALS -c /Users/manuel.bouza/tmp/php-5.4-dev/ext/gd/gd.c -o ext/gd/gd.lo In file included from /Users/manuel.bouza/tmp/php-5.4-dev/ext/gd/gd.c:103: /Users/manuel.bouza/tmp/php-5.4-dev/ext/gd/gd_ctx.c: In function ‘_php_image_stream_putc’: /Users/manuel.bouza/tmp/php-5.4-dev/ext/gd/gd_ctx.c:51: error: ‘struct gdIOCtx’ has no member named ‘data’ /Users/manuel.bouza/tmp/php-5.4-dev/ext/gd/gd_ctx.c: In function ‘_php_image_stream_putbuf’: /Users/manuel.bouza/tmp/php-5.4-dev/ext/gd/gd_ctx.c:58: error: ‘struct gdIOCtx’ has no member named ‘data’ /Users/manuel.bouza/tmp/php-5.4-dev/ext/gd/gd_ctx.c: In function ‘_php_image_stream_ctxfree’: /Users/manuel.bouza/tmp/php-5.4-dev/ext/gd/gd_ctx.c:67: error: ‘struct gdIOCtx’ has no member named ‘data’ /Users/manuel.bouza/tmp/php-5.4-dev/ext/gd/gd_ctx.c:68: error: ‘struct gdIOCtx’ has no member named ‘data’ /Users/manuel.bouza/tmp/php-5.4-dev/ext/gd/gd_ctx.c:69: error: ‘struct gdIOCtx’ has no member named ‘data’ /Users/manuel.bouza/tmp/php-5.4-dev/ext/gd/gd_ctx.c: In function ‘_php_image_output_ctx’: /Users/manuel.bouza/tmp/php-5.4-dev/ext/gd/gd_ctx.c:153: error: ‘gdIOCtx’ has no member named ‘data’ make: *** [ext/gd/gd.lo] Error 1 PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Oct 26 23:00:02 2025 UTC |
Same here. I got this in clang compiler: (PHP5.4 on Mac OS 10.8) GD version: #define GD_VERSION_STRING "2.0.35" ext/gd//gd_ctx.c:51:43: error: no member named 'data' in 'struct gdIOCtx' php_stream * stream = (php_stream *)ctx->data; ~~~ ^ ext/gd//gd_ctx.c:58:43: error: no member named 'data' in 'struct gdIOCtx' php_stream * stream = (php_stream *)ctx->data; ~~~ ^ ext/gd//gd_ctx.c:67:10: error: no member named 'data' in 'struct gdIOCtx' if(ctx->data) { ~~~ ^ ext/gd//gd_ctx.c:68:40: error: no member named 'data' in 'struct gdIOCtx' php_stream_close((php_stream *) ctx->data); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ /Users/c9s/.phpbrew/build/php-5.4.0/main/php_streams.h:287:52: note: expanded from: #define php_stream_close(stream) _php_stream_free((stream), PHP_STREAM_FREE_CLOSE TSRMLS_CC) ^ In file included from /Users/c9s/.phpbrew/build/php-5.4.0/ext/gd/gd.c:103: ext/gd//gd_ctx.c:69:8: error: no member named 'data' in 'struct gdIOCtx' ctx->data = NULL; ~~~ ^ ext/gd//gd_ctx.c:153:8: error: no member named 'data' in 'struct gdIOCtx' ctx->data = (void *)stream; ~~~ ^On FreeBSD 9.0-STABLE,I tried to make php-5.4.3 --with-dg=/usr/local. I installed gd from /usr/ports/graphics/gd (gd-2.0.35). --- In file included from /usr/local/src/php-5.4.3/ext/gd/gd.c:103: /usr/local/src/php-5.4.3/ext/gd/gd_ctx.c: In function '_php_image_stream_putc': /usr/local/src/php-5.4.3/ext/gd/gd_ctx.c:51: error: 'struct gdIOCtx' has no member named 'data' /usr/local/src/php-5.4.3/ext/gd/gd_ctx.c: In function '_php_image_stream_putbuf': /usr/local/src/php-5.4.3/ext/gd/gd_ctx.c:58: error: 'struct gdIOCtx' has no member named 'data' /usr/local/src/php-5.4.3/ext/gd/gd_ctx.c: In function '_php_image_stream_ctxfree': /usr/local/src/php-5.4.3/ext/gd/gd_ctx.c:67: error: 'struct gdIOCtx' has no member named 'data' /usr/local/src/php-5.4.3/ext/gd/gd_ctx.c:68: error: 'struct gdIOCtx' has no member named 'data' /usr/local/src/php-5.4.3/ext/gd/gd_ctx.c:69: error: 'struct gdIOCtx' has no member named 'data' /usr/local/src/php-5.4.3/ext/gd/gd_ctx.c: In function '_php_image_output_ctx': /usr/local/src/php-5.4.3/ext/gd/gd_ctx.c:153: error: 'gdIOCtx' has no member named 'data' gmake: *** [ext/gd/gd.lo] Error 1 --- I made php-5.3.13 with same configure options.So I investigated the cause. In php-5.4.3/ext/gd/libgd/gd_io.h typedef struct gdIOCtx { int (*getC)(struct gdIOCtx*); int (*getBuf)(struct gdIOCtx*, void*, int); void (*putC)(struct gdIOCtx*, int); int (*putBuf)(struct gdIOCtx*, const void*, int); int (*seek)(struct gdIOCtx*, const int); long (*tell)(struct gdIOCtx*); void (*gd_free)(struct gdIOCtx*); void *data; } gdIOCtx; But in /usr/local/include/gd_io.h typedef struct gdIOCtx { int (*getC) (struct gdIOCtx *); int (*getBuf) (struct gdIOCtx *, void *, int); void (*putC) (struct gdIOCtx *, int); int (*putBuf) (struct gdIOCtx *, const void *, int); /* seek must return 1 on SUCCESS, 0 on FAILURE. Unlike fseek! */ int (*seek) (struct gdIOCtx *, const int); long (*tell) (struct gdIOCtx *); void (*gd_free) (struct gdIOCtx *); } gdIOCtx; These isn't void *data;.In some gd versions (ex:gd-2.0.36RC,gd-2.0.34) there ins't void *data;. I think that php-5.4.X was required extended gd library. Shuold we configure --with-gd not --with-gd=DIR?