パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

今度こそ、GCC 4.1正式リリース」記事へのコメント

  • propolice (スコア:3, 参考になる)

    by deleted user (19654) on 2006年03月05日 12時55分 (#895204) ホームページ 日記
    SSP とか ProPolice とかいうやつ [ibm.com]が
    ついに正式リリースに入ったんですね!

    これで普通の人でもバッファオーバーフローの脅威が減らせるわけで、すばらしい。

    うちにあるマシンでは Momonga [momonga-linux.org] でも OpenBSD [openbsd.org] でも
    SSP 有効だったので、なにも変わらないのですけど。

    • Re:propolice (スコア:3, 興味深い)

      by shadowin (23191) on 2006年03月05日 13時39分 (#895231)
      SSPによる性能劣化ってどんな感じなんでしょうか?
      まぁ、この劣化が気になるのは、カーネルとかドライバとかくらいでしょうけど。
      親コメント
    • Re:propolice (スコア:1, 興味深い)

      by Anonymous Coward on 2006年03月05日 17時16分 (#895333)
      SSPの対応プラットフォームってどこかに記載がありますっけ?
      あと、なんかIBMのがそのまま採用されたわけじゃなくって、RedHatの中の人が"再実装"したってIBMのページなんかにかいてあるのが気になるんですが、どういう意味なんでしょうか?
      親コメント
      • Re:propolice (スコア:3, 参考になる)

        by deleted user (19654) on 2006年03月05日 18時45分 (#895397) ホームページ 日記
        あ、ほんとですね。RedHat でほとんど完全書き下ろしみたいです:
        IBM のは 3000 行以上、RedHat のは 700 行程度の変更 [gnu.org]

        どうも IBM のは
        デカすぎる [gnu.org]し、
        作者が返事をしない [gnu.org]から
        ダメと評価されていたようです。

        気付かせてくださってありがとうございます。

        で、リリースに入ったということは、すべて、あるいはほとんどの
        アーキテクチャで使えるってことじゃないかと推測しますが…。

        親コメント
        • Re:propolice (スコア:2, 参考になる)

          by Tsann (15931) on 2006年03月06日 0時53分 (#895567)
          >IBM のは 3000 行以上、RedHat のは 700 行程度の変更

          行数だけ見ればそうですが、
          RedHat:
            config/i386/i386.c  |    3
            config/i386/i386.md |  122 ++++++++++++++++++-----------
           
          IBM:
            config/arm/arm.md |    8
            config/t-linux    |    2
          ということはすべてのアーキテクチャに対してi386.md相当の修正が必要になるような気がします。その場合、IBMのと行数が大差なく…。

          ちなみにgcc-4.1.0/configure.inを見たところ、AIXに対してlibsspのコンパイルを弾いていました。
          親コメント
          • by shadowin (23191) on 2006年03月06日 9時25分 (#895654)
            コードをリファクタリングして700行程度で実現したのではなく、
            IBMのものから700行程度(i386の部分のみ)を取り出してgccにマージした感じでしょうか。
            親コメント
            • Re:propolice (スコア:2, 興味深い)

              by Tsann (15931) on 2006年03月06日 15時48分 (#895825)
              # 中身を見ずに影響のあったファイル名だけでコメントしてます。

              IBMのはあくまでパッチとして提供することを意識して実装されています。オリジナルへのコード影響を最小限にするために、必要となる関数呼び出しを埋め込んで全てprotector.cで動いてるかと。たぶん、SSP本体はターゲットアーキテクチャに依存しない中間言語で実装されています。
              上の方でパフォーマンスへの影響は1-4%とありましたが、こちらの実装でしょうね。

              RedHatのはパフォーマンスへの影響を最小限にするために、適切なファイルに埋め込んでいますし、SSP本体はターゲットアーキテクチャに依存するmdファイル(machine descriptionファイル)も利用して実装されています。
              # 本家に取り込まれることを前提としてコードを書けるRedHatの強みですね。

              i386.mdだと"stack_protect_set"辺りであってるのかな? もしそうならこれが書かれているのは、
              • i386.md
              • rs6000.md
              • s390.md
              • sh.md
              • sparc.md

              でした。
              # 外れてたらごめんなさい。
              親コメント
          • by Anonymous Coward
            mdってなんのファイルでしたっけ?
            • Re:propolice (スコア:1, 参考になる)

              by Anonymous Coward on 2006年03月06日 1時30分 (#895595)
              共通の内部表現からターゲットの命令を生成するための規則を定義しとります。
              関数のプロローグ・エピローグはここで定義されているので、
              ここをいじってチェック用のコードを生成させているのでしょう。

              #ということをコードも読まずに書いているのでAC
              親コメント
        • by yuu3261 (11831) on 2006年03月05日 19時02分 (#895403)
          4.1のsspですが、どこだったかでx86/x86-64/sparc/s390/sh/ppcで使えるという話を聞きました。が、裏は取ってません。
          alphaとかmipsでは効かなかったという話も聞いたことがあるなぁ。

          ソース嫁?
          親コメント

身近な人の偉大さは半減する -- あるアレゲ人

処理中...