タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

gccとcに関するhibomaのブックマーク (5)

  • GCCの組込みアトミック命令の使い方 | Everyday Deadlock

    ちょっと使うことがあったので、備忘録的にGCCの組込みアトミック命令の使い方についてまとめておきます。 前提知識 マルチスレッドプログラムにおいて、共有データを更新する際の定石は spin lock や mutex でデータを保護することです。 これらの道具は多くの場面において十分便利なのですが、例えば共有データが1個の int 変数のみであり、更に高頻度で更新が行われるといった場合にはやや同期のコストが高くついてしまいます。 そのような場合には、アトミック命令を用いることで同期オーバーヘッドを抑えることができます。 アトミック命令とは、複数のスレッドから実行されても、個々の命令が一つ一つ順番に適用されてゆくことが保証されている命令のことです。 (より正確には、個々の命令がとある順番で一つ一つ適用された時と同じ結果を得られることが保証されている命令のことです) 例えば、とある変数 X の値

    hiboma
    hiboma 2014/08/10
    __sync_fetch_and_add 等々
  • GCCでIntel Syntaxなアセンブリコードを出力 - // TODO: better name

    gcc -S -masm=intel objdumpとかも対応してるのかな? 調べてみる。 追記 objdump -M intel -S でできるっぽい。これは便利。

    GCCでIntel Syntaxなアセンブリコードを出力 - // TODO: better name
    hiboma
    hiboma 2013/12/17
    objdump -M intel
  • GCC 4.8のビルドはデフォルトでC++になるかも

    Diego Novillo - Switching to C++ by default in 4.8 GCC開発者の一人でGooglerのDiego Novilloは、今月の3日にMLで、GCC 4.8のビルドをデフォルトでC++にしようと提案している。これは、GCC自体をビルドする際のデフォルトの言語をC++にするという意味である。GCCがコードをデフォルトでC++としてコンパイルするのではない。現在のGCCビルドシステムの言語モードをC++に切り替えるのは非常に簡単で、必要なのはテストだけだという。 2011年、GCCの実装で、C++を使用可能にする採択が受け入られている。GCC自体のコンパイルをデフォルトでC++にすることは、GCC実装におけるC++の利用を更に加速するだろう。 GCCにおけるC++利用のコーディング規約は、目下作成中である。コーディング規約が完成する前に、GCCのビ

    hiboma
    hiboma 2012/04/06
    セルフホスト、ブートストラップ
  • テストのためには手段を選ばず Linux編

    hiboma
    hiboma 2009/11/16
    カーネルモジュールでシステムコールフックする
  • Linux glibcで、LD_AUDIT機能による関数トレース - torutkのブログ

    このの「#77 関数へのenter/exitをフックする」で、GCCのコンパイルオプション-finstrument-functionsを使い、関数が呼び出された時、関数から復帰するときにフックを入れる方法が紹介されています。これはコンパイルオプションで埋め込むものですが、同書に「もう1つのフック方法(LD_AUDIT)」というものがあることだけ参考紹介されています。LD_AUDITの方法だと、PLT経由(動的リンク用に作られた)の関数ならばコンパイルし直すことなくフックすることができます。 このLD_AUDITの方法を少し実験してみます。 サンプルを探して LD_AUDITを使う方法は、インターネット上にわずかしか情報を見つけることができませんでした。以下情報源とコメントです。 http://docs.sun.com/app/docs/doc/819-0391/chapter6-1242

    hiboma
    hiboma 2009/11/16
    LD_AUDIT
  • 1