[Scim-imengine-dev 1013] Re: OT: 霞のGCC 4.1 対応。

Back to archive index

Akira TAGOH at****@gclab*****
2006年 3月 27日 (月) 18:23:34 JST


たごうです。

>>>>> On Sun, 26 Mar 2006 22:52:12 +0900,
>>>>> "AI" == AWASHIRO Ikuya <ikuya****@oooug*****> wrote:

AI> どもども。いくや@霞のコミット権もらった です。
AI> 表題のとおりですが、霞をGCC 4.1でmakeするとエラーが出ます。
AI> Debianでその修正パッチをもらい、ついでに霞のコミット権ももらったのでcvs
AI> にコミットしておきました。
AI> 差分は以下のとおりです。
AI> http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/kasumi/kasumi2/KasumiAddWindow.hxx?r1=1.9&r2=1.10
AI> http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/kasumi/kasumi2/KasumiMainWindow.hxx?r1=1.23&r2=1.24
AI> 実のところ4.1でテストしてませんが、4.0.3でも3.3.5でも問題ありませんでした。

AI> Fedora Core 5ではたごうさんが別な(そしてスマートな)修正をなさってます
AI> が、こちらの方式だと4.0でエラーになるので、現状では霞本体に取り込むのは
AI> あまり得策でないと勝手に思っています(作者さんに確認していません)。

それでいいと思います。-ffriend-injectionはgcc 4.1から登場し
たもので、後方互換のために存在しています。当時あまり時間がと
れなかったので、もっとも手っ取り早くbuildを通す方法をとった
だけなので。なお、

      -ffriend-injection
          Inject friend functions into the enclosing namespace, so that they
          are visible outside the scope of the class in which they are
          declared.  Friend functions were documented to work this way in
          the old Annotated C++ Reference Manual, and versions of G++ before
          4.1 always worked that way.  However, in ISO C++ a friend function
          which is not declared in an enclosing scope can only be found
          using argument dependent lookup.  This option causes friends to be
          injected as they were in earlier releases.

          This option is for compatibility, and may be removed in a future
          release of G++.

と、あるので、使わないにこしたことはないと思います。

--
Akira TAGOH



Scim-imengine-dev メーリングリストの案内
Back to archive index