[PHP-dev 1295] PHPにバンドルしているonigurumaについて

View: New views
17 Messages — Rating Filter:   Alert me  

[PHP-dev 1295] PHPにバンドルしているonigurumaについて

by Seiji Masugata :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

こんばんわ、桝形です。


PHP_5_2 Branchにonigurumaの最新バージョンを適用しようと考えています。
いくつか不明な点があるので、知っている方は教えて下さい。


小迫さんから「3.7.2」のアーカイブを頂いたので、比較してみたところ
バグ修正とは違うかな。。。と思われる差分がありました。


「oniguruma.h」の「#include "php_onig_compat.h"」は、恐らくPHP側で
修正したと思いますが「oniggnu.h」の変更は、どちらが修正したのか
分かりませんでした。


mbstringのソース内では利用されていないようなので「oniggnu.h」への
修正は除外しても問題ないでしょうか。

変更点を少なくして(なるべく)そのまま適用したいので。

他に使っている人がいた場合、最悪「onigcmpt200.h」内に定義したいと
思っています。

#define MBCTYPE_ASCII         RE_MBCTYPE_ASCII
#define MBCTYPE_EUC           RE_MBCTYPE_EUC
#define MBCTYPE_SJIS          RE_MBCTYPE_SJIS
#define MBCTYPE_UTF8          RE_MBCTYPE_UTF8

みたいな。

ちなみに「onigcmpt200.h」も、mbstringのソース内では何処にも定義
されていないようでした。


-------------------------------------------------------------------------------
--- /usr/local/src/php5.2-200606170630/ext/mbstring/oniguruma/oniggnu.h Sat Mar 19 17:52:22 2005
+++ /usr/local/src/oniguruma/oniggnu.h Thu Mar 10 16:29:00 2005
@@ -35,10 +35,10 @@
 extern "C" {
 #endif
 
-#define MBCTYPE_ASCII         0
-#define MBCTYPE_EUC           1
-#define MBCTYPE_SJIS          2
-#define MBCTYPE_UTF8          3
+#define RE_MBCTYPE_ASCII         0
+#define RE_MBCTYPE_EUC           1
+#define RE_MBCTYPE_SJIS          2
+#define RE_MBCTYPE_UTF8          3
 
 /* GNU regex options */
 #ifndef RE_NREGS
-------------------------------------------------------------------------------
--- /usr/local/src/php5.2-200606170630/ext/mbstring/oniguruma/oniguruma.h Sat Mar 19 17:52:22 2005
+++ /usr/local/src/oniguruma/oniguruma.h Fri Mar 25 11:02:33 2005
@@ -29,8 +29,6 @@
  * SUCH DAMAGE.
  */
 
-#include "php_onig_compat.h"
-
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -38,7 +36,7 @@
 #define ONIGURUMA
 #define ONIGURUMA_VERSION_MAJOR   3
 #define ONIGURUMA_VERSION_MINOR   7
-#define ONIGURUMA_VERSION_TEENY   1
+#define ONIGURUMA_VERSION_TEENY   2
 
 #ifdef __cplusplus
 # ifndef  HAVE_PROTOTYPES
@@ -484,6 +482,7 @@
   OnigOptionType options;    /* default option */
 } OnigSyntaxType;
 
+ONIG_EXTERN OnigSyntaxType OnigSyntaxASIS;
 ONIG_EXTERN OnigSyntaxType OnigSyntaxPosixBasic;
 ONIG_EXTERN OnigSyntaxType OnigSyntaxPosixExtended;
 ONIG_EXTERN OnigSyntaxType OnigSyntaxEmacs;
@@ -494,6 +493,7 @@
 ONIG_EXTERN OnigSyntaxType OnigSyntaxRuby;
 
 /* predefined syntaxes (see regsyntax.c) */
+#define ONIG_SYNTAX_ASIS               (&OnigSyntaxASIS)
 #define ONIG_SYNTAX_POSIX_BASIC        (&OnigSyntaxPosixBasic)
 #define ONIG_SYNTAX_POSIX_EXTENDED     (&OnigSyntaxPosixExtended)
 #define ONIG_SYNTAX_EMACS              (&OnigSyntaxEmacs)
@@ -560,6 +560,7 @@
 #define ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT (1<<17)  /* \p{^..}, \P{^..} */
 #define ONIG_SYN_OP2_CHAR_PROPERTY_PREFIX_IS    (1<<18)  /* \p{IsXDigit} */
 #define ONIG_SYN_OP2_ESC_H_XDIGIT               (1<<19)  /* \h, \H */
+#define ONIG_SYN_OP2_INEFFECTIVE_ESCAPE         (1<<20)  /* \ */
 
 /* syntax (behavior) */
 #define ONIG_SYN_CONTEXT_INDEP_ANCHORS           (1<<31) /* not implemented */
-------------------------------------------------------------------------------
--- /usr/local/src/php5.2-200606170630/ext/mbstring/oniguruma/reggnu.c Sat Mar 19 17:52:23 2005
+++ /usr/local/src/oniguruma/reggnu.c Thu Mar 10 16:29:29 2005
@@ -151,16 +151,16 @@
   OnigEncoding enc;
 
   switch (mb_code) {
-  case MBCTYPE_ASCII:
+  case RE_MBCTYPE_ASCII:
     enc = ONIG_ENCODING_ASCII;
     break;
-  case MBCTYPE_EUC:
+  case RE_MBCTYPE_EUC:
     enc = ONIG_ENCODING_EUC_JP;
     break;
-  case MBCTYPE_SJIS:
+  case RE_MBCTYPE_SJIS:
     enc = ONIG_ENCODING_SJIS;
     break;
-  case MBCTYPE_UTF8:
+  case RE_MBCTYPE_UTF8:
     enc = ONIG_ENCODING_UTF8;
     break;
   default:
-------------------------------------------------------------------------------


--
Seiji Masugata <s.masugata@...>

_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1296] Re: PHPにバンドルしているonigurumaについて

by K.Kosako :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

小迫です。

oniggnu.hで、MBCTYPE_をRE_MBCTYPE_に変えたのは、
私が3.7.2で変更したものです。
理由は、プレフィックスが何もないのは良くない
と思ったからだったと思います。
元がMBCTYPE_だったのは、Rubyがそうしていた
から同じ名前にしていただけです。
--
小迫

Seiji Masugata wrote:

> PHP_5_2 Branchにonigurumaの最新バージョンを適用しようと考えています。
> いくつか不明な点があるので、知っている方は教えて下さい。
>
>
> 小迫さんから「3.7.2」のアーカイブを頂いたので、比較してみたところ
> バグ修正とは違うかな。。。と思われる差分がありました。
>
>
> 「oniguruma.h」の「#include "php_onig_compat.h"」は、恐らくPHP側で
> 修正したと思いますが「oniggnu.h」の変更は、どちらが修正したのか
> 分かりませんでした。
>
>
> mbstringのソース内では利用されていないようなので「oniggnu.h」への
> 修正は除外しても問題ないでしょうか。
>
> 変更点を少なくして(なるべく)そのまま適用したいので。
>
> 他に使っている人がいた場合、最悪「onigcmpt200.h」内に定義したいと
> 思っています。
>
> #define MBCTYPE_ASCII         RE_MBCTYPE_ASCII
> #define MBCTYPE_EUC           RE_MBCTYPE_EUC
> #define MBCTYPE_SJIS          RE_MBCTYPE_SJIS
> #define MBCTYPE_UTF8          RE_MBCTYPE_UTF8
>
> みたいな。
>
> ちなみに「onigcmpt200.h」も、mbstringのソース内では何処にも定義
> されていないようでした。

_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1297] Re: PHPにバンドルしているonigurumaについて

by Seiji Masugata :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

こんばんわ、桝形です。

> 小迫です。

度々お世話になります。(w

以下、了解しました。
これで安心して作業できます。

取り急ぎ、お礼まで。


> oniggnu.hで、MBCTYPE_をRE_MBCTYPE_に変えたのは、
> 私が3.7.2で変更したものです。
> 理由は、プレフィックスが何もないのは良くない
> と思ったからだったと思います。
> 元がMBCTYPE_だったのは、Rubyがそうしていた
> から同じ名前にしていただけです。
> --
> 小迫
>
> Seiji Masugata wrote:
> > PHP_5_2 Branchにonigurumaの最新バージョンを適用しようと考えています。
> > いくつか不明な点があるので、知っている方は教えて下さい。
> >
> >
> > 小迫さんから「3.7.2」のアーカイブを頂いたので、比較してみたところ
> > バグ修正とは違うかな。。。と思われる差分がありました。
> >
> >
> > 「oniguruma.h」の「#include "php_onig_compat.h"」は、恐らくPHP側で
> > 修正したと思いますが「oniggnu.h」の変更は、どちらが修正したのか
> > 分かりませんでした。
> >
> >
> > mbstringのソース内では利用されていないようなので「oniggnu.h」への
> > 修正は除外しても問題ないでしょうか。
> >
> > 変更点を少なくして(なるべく)そのまま適用したいので。
> >
> > 他に使っている人がいた場合、最悪「onigcmpt200.h」内に定義したいと
> > 思っています。
> >
> > #define MBCTYPE_ASCII         RE_MBCTYPE_ASCII
> > #define MBCTYPE_EUC           RE_MBCTYPE_EUC
> > #define MBCTYPE_SJIS          RE_MBCTYPE_SJIS
> > #define MBCTYPE_UTF8          RE_MBCTYPE_UTF8
> >
> > みたいな。
> >
> > ちなみに「onigcmpt200.h」も、mbstringのソース内では何処にも定義
> > されていないようでした。

--
Seiji Masugata <s.masugata@...>

_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1311] Re: PHPにバンドルしているonigurumaについて

by Rui Hirokawa :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


廣川です。

Mac OS X環境でのPHP 5.2のmakeがonigurumaのところで
失敗するケースがバグデータベースに報告されています。

http://bugs.php.net/bug.php?id=38452

報告した人の環境のせいかもしれませんが,以前のバージョンでは
問題なかったようなので,Onigurumaのバージョン更新が関係しているのかと
思いました。

私自身がMac OS Xユーザではないので,よくわからないのですが,
varargsの仕様判別が正常にできていないようです。
何か問題となりそうなところがあるでしょうか?


K.Kosako wrote:

> 小迫です。
>
> oniggnu.hで、MBCTYPE_をRE_MBCTYPE_に変えたのは、
> 私が3.7.2で変更したものです。
> 理由は、プレフィックスが何もないのは良くない
> と思ったからだったと思います。
> 元がMBCTYPE_だったのは、Rubyがそうしていた
> から同じ名前にしていただけです。
> --
> 小迫
>
> Seiji Masugata wrote:
>> PHP_5_2 Branchにonigurumaの最新バージョンを適用しようと考えています。
>> いくつか不明な点があるので、知っている方は教えて下さい。
>>
>>
>> 小迫さんから「3.7.2」のアーカイブを頂いたので、比較してみたところ
>> バグ修正とは違うかな。。。と思われる差分がありました。
>>
>>
>> 「oniguruma.h」の「#include "php_onig_compat.h"」は、恐らくPHP側で
>> 修正したと思いますが「oniggnu.h」の変更は、どちらが修正したのか
>> 分かりませんでした。
>>
>>
>> mbstringのソース内では利用されていないようなので「oniggnu.h」への
>> 修正は除外しても問題ないでしょうか。
>>
>> 変更点を少なくして(なるべく)そのまま適用したいので。
>>
>> 他に使っている人がいた場合、最悪「onigcmpt200.h」内に定義したいと
>> 思っています。
>>
>> #define MBCTYPE_ASCII         RE_MBCTYPE_ASCII
>> #define MBCTYPE_EUC           RE_MBCTYPE_EUC
>> #define MBCTYPE_SJIS          RE_MBCTYPE_SJIS
>> #define MBCTYPE_UTF8          RE_MBCTYPE_UTF8
>>
>> みたいな。
>>
>> ちなみに「onigcmpt200.h」も、mbstringのソース内では何処にも定義
>> されていないようでした。
>
> _______________________________________________
> PHP-dev mailing list
> PHP-dev@...
> http://ns1.php.gr.jp/mailman/listinfo/php-dev
>
>
_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1312] Re: PHPにバンドルしているonigurumaについて

by KANAI Yasunori :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On Fri, 15 Sep 2006 14:47:15 -0900
Rui Hirokawa <rui_hirokawa@...> wrote:

> Mac OS X環境でのPHP 5.2のmakeがonigurumaのところで
> 失敗するケースがバグデータベースに報告されています。
>
> http://bugs.php.net/bug.php?id=38452
>
> 報告した人の環境のせいかもしれませんが,以前のバージョンでは
> 問題なかったようなので,Onigurumaのバージョン更新が関係しているのかと
> 思いました。

PHP 5.1.6もコンパイルできません。
Xcode 2.4のgcc4が問題なのだと思います。

Xcode 2.3のときにはコンパイルできたPHP5.1.4がXcode 2.4ではコンパイルでき
ませんでした。(5.1.6のコンパイルに失敗したので5.1.4のテストをしてみまし
た)
PHP側のonigurumaまわりのコードをちょっと追っかけてみたのですが、よくわか
りませんでした。


とりあえずの回避策としてはgcc 3.3 (/usr/bin/gcc-3.3)を使うとコンパイル
できます。後ろ向きですけど。
gcc 3.3もXcode 2.4に入っています。



●Macの環境

macmini:~ kanai$ uname -a
Darwin macmini 8.7.0 Darwin Kernel Version 8.7.0: Fri May 26 15:20:53 PDT 2006; root:xnu-792.6.76.obj~1/RELEASE_PPC Power Macintosh powerpc

macmini:~ kanai$ cc -v
Using built-in specs.
Target: powerpc-apple-darwin8
Configured with: /private/var/tmp/gcc/gcc-5363.obj~28/src/configure --disable-checking -enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.0/ --with-gxx-include-dir=/include/c++/4.0.0 --with-slibdir=/usr/lib --build=powerpc-apple-darwin8 --host=powerpc-apple-darwin8 --target=powerpc-apple-darwin8
Thread model: posix
gcc version 4.0.1 (Apple Computer, Inc. build 5363)



●PHPのconfigure

'./configure' '--prefix=/sw' '--with-apxs2=/sw/sbin/apxs' '--with-zlib' '--with-zlib-dir=/usr' '--with-bz2' '--enable-ftp' '--with-freetype-dir=/sw/lib/freetype2' '--with-jpeg-dir=/sw' '--with-png-dir=/sw' '--with-ttf=/sw' '--with-t1lib-dir=/sw' '--with-xpm-dir=/sw' '--with-gd=/sw' '--enable-gd-native-ttf' '--enable-gd-jis-conv' '--enable-mbstring' '--with-mcrypt=/sw' '--with-mhash=/sw' '--with-pgsql=/sw' '--enable-sockets' '--with-libxml-dir=/sw' '--with-libexpat-dir=/sw' '--with-iconv-dir=/sw' '--with-xsl=/sw' '--with-pdo-pgsql=/sw' '--enable-zend-multibyte' '--enable-maintainer-zts'



●コンパイルの状況
                        PHP5.1.4        PHP5.1.6
Xcode 2.3(gcc4.0)       ○              (未テスト)
Xcode 2.4(gcc4.0)       ×              ×
gcc 3.3                 ○              ○


●回避策(shellがbashの場合)
$ CC=/usr/bin/gcc-3.3
$ ./configure (引数省略)
$ make



------
金井/y_kanai@...

_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1313] Re: PHPにバンドルしているonigurumaについて

by Rui Hirokawa :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

廣川です。

やはり,環境(Xcode)依存の問題なんですね。
金井さんの環境で現れたエラーもvarginがらみだったのでしょうか。

main/php_config.h のHAVE_STDARG_PROTOTYPESは
どのように設定されていますか?

configureにより生成されたconfig.logの
"length prototypes and stdarg.h"直後に
エラーが発生していますか?

main/php_config.hに以下の行があった場合,
#undef HAVE_STDARG_PROTOTYPES
これを
#define HAVE_STDARG_PROTOTYPES 1
に変えるとコンパイルがとおりますか?

KANAI Yasunori wrote:

> On Fri, 15 Sep 2006 14:47:15 -0900
> Rui Hirokawa <rui_hirokawa@...> wrote:
>
>> Mac OS X環境でのPHP 5.2のmakeがonigurumaのところで
>> 失敗するケースがバグデータベースに報告されています。
>>
>> http://bugs.php.net/bug.php?id=38452
>>
>> 報告した人の環境のせいかもしれませんが,以前のバージョンでは
>> 問題なかったようなので,Onigurumaのバージョン更新が関係しているのかと
>> 思いました。
>
> PHP 5.1.6もコンパイルできません。
> Xcode 2.4のgcc4が問題なのだと思います。
>
> Xcode 2.3のときにはコンパイルできたPHP5.1.4がXcode 2.4ではコンパイルでき
> ませんでした。(5.1.6のコンパイルに失敗したので5.1.4のテストをしてみまし
> た)
> PHP側のonigurumaまわりのコードをちょっと追っかけてみたのですが、よくわか
> りませんでした。
>
>
> とりあえずの回避策としてはgcc 3.3 (/usr/bin/gcc-3.3)を使うとコンパイル
> できます。後ろ向きですけど。
> gcc 3.3もXcode 2.4に入っています。
>
>
>
> ●Macの環境
>
> macmini:~ kanai$ uname -a
> Darwin macmini 8.7.0 Darwin Kernel Version 8.7.0: Fri May 26 15:20:53 PDT 2006; root:xnu-792.6.76.obj~1/RELEASE_PPC Power Macintosh powerpc
>
> macmini:~ kanai$ cc -v
> Using built-in specs.
> Target: powerpc-apple-darwin8
> Configured with: /private/var/tmp/gcc/gcc-5363.obj~28/src/configure --disable-checking -enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.0/ --with-gxx-include-dir=/include/c++/4.0.0 --with-slibdir=/usr/lib --build=powerpc-apple-darwin8 --host=powerpc-apple-darwin8 --target=powerpc-apple-darwin8
> Thread model: posix
> gcc version 4.0.1 (Apple Computer, Inc. build 5363)
>
>
>
> ●PHPのconfigure
>
> './configure' '--prefix=/sw' '--with-apxs2=/sw/sbin/apxs' '--with-zlib' '--with-zlib-dir=/usr' '--with-bz2' '--enable-ftp' '--with-freetype-dir=/sw/lib/freetype2' '--with-jpeg-dir=/sw' '--with-png-dir=/sw' '--with-ttf=/sw' '--with-t1lib-dir=/sw' '--with-xpm-dir=/sw' '--with-gd=/sw' '--enable-gd-native-ttf' '--enable-gd-jis-conv' '--enable-mbstring' '--with-mcrypt=/sw' '--with-mhash=/sw' '--with-pgsql=/sw' '--enable-sockets' '--with-libxml-dir=/sw' '--with-libexpat-dir=/sw' '--with-iconv-dir=/sw' '--with-xsl=/sw' '--with-pdo-pgsql=/sw' '--enable-zend-multibyte' '--enable-maintainer-zts'
>
>
>
> ●コンパイルの状況
>                         PHP5.1.4        PHP5.1.6
> Xcode 2.3(gcc4.0)       ○              (未テスト)
> Xcode 2.4(gcc4.0)       ×              ×
> gcc 3.3                 ○              ○
>
>
> ●回避策(shellがbashの場合)
> $ CC=/usr/bin/gcc-3.3
> $ ./configure (引数省略)
> $ make
>
>
>
> ------
> 金井/y_kanai@...
>
> _______________________________________________
> PHP-dev mailing list
> PHP-dev@...
> http://ns1.php.gr.jp/mailman/listinfo/php-dev
>
>
_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1314] Re: PHPにバンドルしているonigurumaについて

by KOYAMA Tetsuji :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

小山です。

こちらにも macosx-ppc があるので調べてみました。

On 9/16/06, Rui Hirokawa <rui_hirokawa@...> wrote:

> 廣川です。
>
> やはり,環境(Xcode)依存の問題なんですね。
> 金井さんの環境で現れたエラーもvarginがらみだったのでしょうか。
>
> main/php_config.h のHAVE_STDARG_PROTOTYPESは
> どのように設定されていますか?
>
> configureにより生成されたconfig.logの
> "length prototypes and stdarg.h"直後に
> エラーが発生していますか?
>
> main/php_config.hに以下の行があった場合,
> #undef HAVE_STDARG_PROTOTYPES
> これを
> #define HAVE_STDARG_PROTOTYPES  1
> に変えるとコンパイルがとおりますか?

廣川さんの予想通り configure の stdarg.h のチェックに失敗しているせいでした。

#define HAVE_STDARG_PROTOTYPES  1

にするとコンパイルは通ります。

で、なぜ configure の stdarg.h チェックに失敗するかですが、どうも
Xcode 2.4 の gcc-4.0.1 の最適化のバグのようです。

config.m4 の該当部分のチェックコード


#include <stdarg.h>
int foo(int x, ...) {
        va_list va;
        va_start(va, x);
        va_arg(va, int);
        va_arg(va, char *);
        va_arg(va, double);
        return 0;
}
int main() { return foo(10, "", 3.14); }

を -O2 でコンパイルしたバイナリを実行すると Bus Error に
なります。最適化なしだと無事に実行できます。


--
    小山哲志@ビート・クラフト
    koyama@...
    koyama@...
_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1315] Re: PHPにバンドルしているonigurumaについて

by KANAI Yasunori :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


こんばんわ。

普段PHPを飯の種にしてますので、何かお返ししたいと思ってました。これくら
いなら、なんとか協力できます。ほかにもテストしたほうがいいものがあれば、
お知らせください。


On Sat, 16 Sep 2006 02:46:41 -0900
Rui Hirokawa <rui_hirokawa@...> wrote:

> やはり,環境(Xcode)依存の問題なんですね。
> 金井さんの環境で現れたエラーもvarginがらみだったのでしょうか。

puttyでログを採ったので、以下に置きました。(メールに添付したらrejectされ
ちゃいましたんで)
ttp://park8.wakwak.com/~kanai/php-make-errorlog.zip
(ファイルはしばらくしたら消すかもしれません)

tar.gzを展開してconfigure、makeと進むと、6188行目でエラーでmakeが止まり
ました
6189行から、cat main/php_config.h
9139行から、cat config.log
11181行から、main/php_config.hで#define HAVE_STDARG_PROTOTYPES 1に書き換
えて、make cleanしないで、6188行で止まった続きからmakeを仕掛けました
12160行、make完了



>main/php_config.h のHAVE_STDARG_PROTOTYPESは
>どのように設定されていますか?

/* Define if stdarg.h is available */
/* #undef HAVE_STDARG_PROTOTYPES */

となっていました。


>"length prototypes and stdarg.h"直後に
>エラーが発生していますか?

failedになっています。

configure:52940: checking for variable length prototypes and stdarg.h
configure:52974: gcc -o conftest -I/usr/include -g -O2  -no-cpp-precomp -liconv -L/usr/lib  -L/sw/lib -L/sw/lib -L/usr/X11R6/lib -L/usr/X11R6/lib -L/sw/lib/freetype2/lib -L/sw/lib/freetype2/lib conftest.c -liconv -lgd -lfreetype -lX11 -lXpm -lpng -lz -ljpeg -lbz2 -lz -lm  -lxml2 -lz -liconv -lm -lxml2 -lz -liconv -lm 1>&5
configure: failed program was:
#line 52959 "configure"
#include "confdefs.h"

#include <stdarg.h>
int foo(int x, ...) {
        va_list va;
        va_start(va, x);
        va_arg(va, int);
        va_arg(va, char *);
        va_arg(va, double);
        return 0;
}
int main() { return foo(10, "", 3.14); }


>main/php_config.hに以下の行があった場合,
>#undef HAVE_STDARG_PROTOTYPES
>これを
>#define HAVE_STDARG_PROTOTYPES 1
>に変えるとコンパイルがとおりますか?

通りました。とりあえず、-vは動くようです。(-iも動きました)

macmini:~/work1/php/php-5.1.6 kanai$ sapi/cli/php -v
PHP 5.1.6 (cli) (built: Sep 16 2006 22:17:36)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
    with the ionCube PHP Loader v3.1.22, Copyright (c) 2002-2006, by ionCube Ltd.



------
金井/y_kanai@...

_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1316] Re: PHPにバンドルしているonigurumaについて

by Rui Hirokawa :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


廣川です。

小山さん,金井さん,調査頂きありがとうございました。
やはり,PHP/onigurumaの問題ではなく,開発環境(Xcodeのgcc)のバグの
ようですね。
gccがbus errorとなるようではしょうがありません。

1.gcc-4.0.1以外(gcc-3.3)を使用する
2.最適化オプションを外す
3.Xcodeの他のバージョンを試す
4.php_config.h生成後にHAVE_STDARG_PROTOTYPESを書き換える

などを推奨しておくことにします。
(Xcodeの修正を促すのがより前向きですね。)

KANAI Yasunori wrote:

> こんばんわ。
>
> 普段PHPを飯の種にしてますので、何かお返ししたいと思ってました。これくら
> いなら、なんとか協力できます。ほかにもテストしたほうがいいものがあれば、
> お知らせください。
>
>
> On Sat, 16 Sep 2006 02:46:41 -0900
> Rui Hirokawa <rui_hirokawa@...> wrote:
>
>> やはり,環境(Xcode)依存の問題なんですね。
>> 金井さんの環境で現れたエラーもvarginがらみだったのでしょうか。
>
> puttyでログを採ったので、以下に置きました。(メールに添付したらrejectされ
> ちゃいましたんで)
> ttp://park8.wakwak.com/~kanai/php-make-errorlog.zip
> (ファイルはしばらくしたら消すかもしれません)
>
> tar.gzを展開してconfigure、makeと進むと、6188行目でエラーでmakeが止まり
> ました
> 6189行から、cat main/php_config.h
> 9139行から、cat config.log
> 11181行から、main/php_config.hで#define HAVE_STDARG_PROTOTYPES 1に書き換
> えて、make cleanしないで、6188行で止まった続きからmakeを仕掛けました
> 12160行、make完了
>
>
>
>> main/php_config.h のHAVE_STDARG_PROTOTYPESは
>> どのように設定されていますか?
>
> /* Define if stdarg.h is available */
> /* #undef HAVE_STDARG_PROTOTYPES */
>
> となっていました。
>
_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1317] Re: PHPにバンドルしているonigurumaについて

by KOYAMA Tetsuji :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

小山です。

On 9/17/06, Rui Hirokawa <rui_hirokawa@...> wrote:
> 小山さん,金井さん,調査頂きありがとうございました。
> やはり,PHP/onigurumaの問題ではなく,開発環境(Xcodeのgcc)のバグの
> ようですね。
> gccがbus errorとなるようではしょうがありません。

細かいですが念のため。Bus Error になるのは gcc ではなく
ext/mbstring/config.m4 の stdarg.h チェックコードを抜き出して
gcc -O2 でコンパイルしたバイナリです。

> 1.gcc-4.0.1以外(gcc-3.3)を使用する
> 2.最適化オプションを外す
> 3.Xcodeの他のバージョンを試す
> 4.php_config.h生成後にHAVE_STDARG_PROTOTYPESを書き換える
>
> などを推奨しておくことにします。
> (Xcodeの修正を促すのがより前向きですね。)

とりあえず他の修正案を。
configure の stdarg.h のチェックって本当に必要でしょうか。

ext/standard/array.c を見ると、特にチェックもなく普通に

#include <stdarg.h>

しているので、mbstring のみチェックを行ってもあまり意味はないような
気がしています。

--
    小山哲志@ビート・クラフト
    koyama@...
    koyama@...
_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1318] Re: PHPにバンドルしているonigurumaについて

by K.Kosako :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

小迫です。

どこで対処するのが適切なのか、私には分かりませんが、
鬼車でも対処したいと思います。
条件としてどのように記述すればよいのか、
どなたか教えていただけないでしょうか?

条件として考えられるのは、
MacOS Xであれば あるいは GCC 4.0以上なら
という感じでしょうか?

#ifdef 条件
#ifndef HAVE_STDARG_PROTOTYPES
#define HAVE_STDARG_PROTOTYPES
#endif
#endif
--
小迫

KOYAMA Tetsuji wrote:

> On 9/17/06, Rui Hirokawa <rui_hirokawa@...> wrote:
>> 小山さん,金井さん,調査頂きありがとうございました。
>> やはり,PHP/onigurumaの問題ではなく,開発環境(Xcodeのgcc)のバグの
>> ようですね。
>> gccがbus errorとなるようではしょうがありません。
>
> 細かいですが念のため。Bus Error になるのは gcc ではなく
> ext/mbstring/config.m4 の stdarg.h チェックコードを抜き出して
> gcc -O2 でコンパイルしたバイナリです。
>
>> 1.gcc-4.0.1以外(gcc-3.3)を使用する
>> 2.最適化オプションを外す
>> 3.Xcodeの他のバージョンを試す
>> 4.php_config.h生成後にHAVE_STDARG_PROTOTYPESを書き換える
>>
>> などを推奨しておくことにします。
>> (Xcodeの修正を促すのがより前向きですね。)
>
> とりあえず他の修正案を。
> configure の stdarg.h のチェックって本当に必要でしょうか。
>
> ext/standard/array.c を見ると、特にチェックもなく普通に
>
> #include <stdarg.h>
>
> しているので、mbstring のみチェックを行ってもあまり意味はないような
> 気がしています。
>


_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1319] Re: PHPにバンドルしているonigurumaについて

by KOYAMA Tetsuji :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

小山です。

On 9/17/06, K.Kosako <sndgk393@...> wrote:
> どこで対処するのが適切なのか、私には分かりませんが、
> 鬼車でも対処したいと思います。

ありがとうございます。

> 条件としてどのように記述すればよいのか、
> どなたか教えていただけないでしょうか?
>
> 条件として考えられるのは、
> MacOS Xであれば あるいは GCC 4.0以上なら
> という感じでしょうか?

同じ MacOS X でも、Intel アーキテクチャならばこの問題は起こらない
ようです。

% gcc --version
i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5250)

上記の環境で、例のチェックコードを -O2 付でコンパイル/実行したところ
無事に動作しました。

ということで、条件は
  MacOS X かつ PowerPC かつ gcc-4.0.1
ならば、というところだと思います。

# 一応、Apple にはバグレポートを送っておきました。

--
    小山哲志@ビート・クラフト
    koyama@...
    koyama@...
_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1321] Re: PHPにバンドルしているonigurumaについて

by KOYAMA Tetsuji :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

小山です。

On 9/17/06, KOYAMA Tetsuji <koyama@...> wrote:

> > 条件としてどのように記述すればよいのか、
> > どなたか教えていただけないでしょうか?
> >
> > 条件として考えられるのは、
> > MacOS Xであれば あるいは GCC 4.0以上なら
> > という感じでしょうか?
>
> ということで、条件は
>  MacOS X かつ PowerPC かつ gcc-4.0.1
> ならば、というところだと思います。

ちょっと勘違いしていました。

#define HAVE_STDARG_PROTOTYPES

を決めうちしちゃう条件ですよね。それなら
MacOS X ならば stdarg.h を持ってると考えてよさそうなので、

#if defined(__APPLE__) && defined(__GNUC__)

あたりでよいかもしれません。

--
    小山哲志@ビート・クラフト
    koyama@...
    koyama@...
_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1326] Re: PHPにバンドルしているonigurumaについて

by K.Kosako :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

小迫です。

ありがとうございます。
その線で変更します。
--
小迫

KOYAMA Tetsuji wrote:

>>> 条件として考えられるのは、
>>> MacOS Xであれば あるいは GCC 4.0以上なら
>>> という感じでしょうか?
>> ということで、条件は
>>  MacOS X かつ PowerPC かつ gcc-4.0.1
>> ならば、というところだと思います。
>
> ちょっと勘違いしていました。
>
> #define HAVE_STDARG_PROTOTYPES
>
> を決めうちしちゃう条件ですよね。それなら
> MacOS X ならば stdarg.h を持ってると考えてよさそうなので、
>
> #if defined(__APPLE__) && defined(__GNUC__)
>
> あたりでよいかもしれません。
>


_______________________________________________
PHP-dev mailing list
PHP-dev@...
http://ns1.php.gr.jp/mailman/listinfo/php-dev

[PHP-dev 1332] Re: PHPにバンドルしているonigurumaについて

by Rui Hirokawa :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


廣川です。

早速対応頂きありがとうございます。

最新の Oniguruma (4.4.4)に修正を反映いただきましたが,
PHP 5.2.0はりリース直前で試験の期間がないため,下記検出部のみ
(#if... #endif) 反映させました。

http://bugs.php.net/bug.php?id=38892&edit=1
が新たに報告されましたが,上記コミット後に解消が確認されました。

PHP 5.2.0リリース後にPHP 5.2.1に向けて Onigurumaの更新を行うことに
なると思います。

K.Kosako wrote:

> 小迫です。
>
> ありがとうございます。
> その線で変更します。
> --
> 小迫
>
> KOYAMA Tetsuji wrote:
>>>> 条件として考えられるのは、
>>>> MacOS Xであれば あるいは GCC 4.0以上なら
>>>> という感じでしょうか?
>>> ということで、条件は
>>>  MacOS X かつ PowerPC かつ gcc-4.0.1
>>> ならば、というところだと思います。
>> ちょっと勘違いしていました。
>>
>> #define HAVE_STDARG_PROTOTYPES
>>
>> を決めうちしちゃう条件ですよね。それなら
>> MacOS X ならば stdarg.h を持ってると考えてよさそうなので、
>>
>> #if defined(__APPLE__) && defined(__GNUC__)
>>
>> あたりでよいかもしれません。
>>
>
>
> _______________________________________________
> PHP-dev mailing list
> PHP-dev@...
> http://ns1