タグ

gccに関するindicationのブックマーク (12)

  • 822823回マクロを展開するとGCCが死ぬ - Qiita

    はじめに Rui UeyamaさんのCコンパイラ作成集中講座 (2020) 第14回を聞いて知ったのですが、GCCは「同じマクロ」が定義された時に、マクロの再定義警告をしないんですね。例えばこんなコードです。 #include <cstdio> #define A 1 #define B 1 #define A 1 // No warning #define B 2 // test.cpp:7:0: warning: "B" redefined int main() { printf("%d %d\n", A, B); }

    822823回マクロを展開するとGCCが死ぬ - Qiita
    indication
    indication 2020/07/29
    どこまでincludeできるのか、気になり始めた
  • リンカ

    ついに、リンカの説明をするときが来た。 ここに至るまでに、何度「リンカのところで説明する」と書いただろうか? ここまで読んできた人ならば、 リンカというものが、なにやら色々やっているんだな、というのはわかってきたのではないかと思う。 筆者が常々思っていることのひとつに、「C言語に関する書籍は、リンカの説明をおざなりにしすぎだ」というのがある。 多くのC言語の書籍は、 コンパイラがソースコードをアセンブリコードに変換します アセンブラがアセンブリコードを機械語に変換します リンカが機械語をリンクして実行ファイルが作られます と、いう解説がなされがちである。この説明を見たら、多くの人が、「え、リンクってなんですか?」と、思うに違いない。 アセンブラには、「人間が読めるニーモニックを、機械が読める機械語に変換する」みたいな、最低限の説明が付くものの、 リンカの説明は「リンクをします」のひとことだ

  • 本の虫: GCCのgit移行が難航中

    GCCはgitへの移行を計画しているが、GCCの既存のsubversionレポジトリをgitレポジトリに変換する作業が難航している。 GCCの移行作業を検証しているのは他ならぬEric S. Raymond(ESR)だ。 ESRお手製の変換ツール、reposurgeonはsubversionからgitへの変換ができる。 Resource page for reposurgeon 3.44 しかしGCCは30年もの歴史を持ち、そのsubversionレポジトリも複雑だ。 ESRはGCCのためにreposurgeonのバグを潰し、勢い変換しようと試みたが、意外な障害に出くわした。メモリ不足だ。 GCC's Conversion To Git Is Being Held Up By RAM, a.k.a. Crazy DDR4 Prices - Phoronix ESRの所有する64GBのメモリ

    indication
    indication 2018/07/31
    linuxって、どうやって移行したんだろ
  • C/C++プログラマのための開発ツール

    Windows 11 information that can be used at the development siteAtomu Hidaka

    C/C++プログラマのための開発ツール
  • 【組み込み】ハードウェアに近い組み込み開発でもテストの自動化を行いたい - 環境構築編 - - undefined

    普段、業務ではRenesasのRL78やRX、ARMのCoretexM0〜CoretexM3辺りを触ることが多いんですが、このあたりのハードウェアに近いレイヤーの開発はテストの自動化の浸透が遅れている領域の一つかと思っています。(自分の周りだけかもしれませんが・・。) Renesas製のマイコンとなるとホストwindowsになる場合が多く、それがテスト自動化の導入のしきいを上げる要因のひとつになっているのでは?と考えています。 今回はwindows上でCygwin/Eclipse/googleTestを使用し、テストを行えるところまでのメモを記載します。 基的には以下の書籍を参考にしていますが、書籍ではVirtualBox+Ubuntu上に環境を構築しています。 諸事情によりVirtualBox+Ubuntuが使用できない方の参考になればと思います。 参考書籍 モダンC言語プログラミン

    【組み込み】ハードウェアに近い組み込み開発でもテストの自動化を行いたい - 環境構築編 - - undefined
    indication
    indication 2015/01/24
    参考にする。
  • sprintf を最大10倍以上高速化するプリプロセッサ「qrintf」を作った

    最近H2OというHTTPサーバを書いているのですが、プロファイルを取ってみるとsprintfが結構な時間をっていて不満に感じていました。実際、sprintfは数値や文字列をフォーマットするのに十徳ナイフ的に便利なので、HTTPサーバに限らず良く使われる(そしてCPU時間を消費しがちな)関数です。 では、sprintfを最適化すれば、様々なプログラムが より高速に動作するようになるのではないでしょうか。ということで作ったのが、qrintfです。 qrintfは、Cプリプロセッサのラッパーとしてソースコードに含まれるsprintfの呼出フォーマットを解析し、フォーマットにあわせたコードに書き換えることで、sprintfを高速化します。 たとえば、以下のようなIPv4アドレスを文字列化するコード片を sprintf( buf, "%d.%d.%d.%d", (addr >> 24) & 0xf

  • Linus Torvalds、 GCC 4.9.0のコード生成にブチ切れる

    Phoronixで知ったが、Linus TorvaldsがGCC 4.9.0のコード生成にブチ切れている。 問題はLinuxカーネルのload_balance()がランダムにパニックを起こすというもので、その原因は、報告者の使っているコンパイラーであるGCC 4.9.0のコード生成がおかしかったという話だ。 Linus様は御自ら生成されたコードを読み給い、平生と変わらぬ調子で物事の道理を示された。 Linux-Kernel Archive: Re: Random panic in load_balance() with 3.16-rc From: Linus Torvalds Date: Thu Jul 24 2014 - 14:47:25 EST On Wed, Jul 23, 2014 at 6:43 PM, Michel DÃnzer <michel@xxxxxxxxxxx> wro

    indication
    indication 2014/07/28
    すごいとしか、言えない
  • IPA ISEC セキュア・プログラミング講座:C/C++言語編 第10章 著名な脆弱性対策:バッファオーバーフロー: #5 運用環境における防御

    第10章 著名な脆弱性対策 バッファオーバーフロー: #5 運用環境における防御 近年、オペレーティングシステムには、バッファオーバーフロー等の攻撃を失敗に終わらせるためのいくつかの防御機能が備わりつつある。それは、主に次の3つである スタック保護 関数リターンアドレス書き変えを検出し、それ以上の実行を止める メモリ空間レイアウトのランダマイズ メモリ上の特定の位置を狙ってのアドレスワードの不正書き変えや、侵害コードへのジャンプといった操作を失敗させる データ実行防止 万一侵害コードへのジャンプが行われたとしてもデータ領域に置かれた機械語コードを実行させない スタック保護 近年Cコンパイラも進歩し、関数をコンパイルして生成される機械語コードの中に、領域あふれによってスタック上の関数リターンアドレスが改変されていることを検知する機械語コードを挿入できるものが登場している。 その主なものが、G

    indication
    indication 2014/04/05
    linuxのCC_STACKPROTECTOR_REGULARってこれを有効にすることなのか?
  • スパコンで約2時間36分かかったという、5×5の魔方陣の全解列挙を、パソコンで試す(C ) | 配電盤

    魔方陣の解の列挙は並列化しやすそうな問題ですが、ここでの方針では、探索効率を上げるためには条件分岐が不可欠なので、(「数」を求めるだけだとしても)GPGPUでうまくやる方法がわかりません。そこで、CPUに載っているコアのみで並列化します(Xeon Phiなら簡単なのでしょうか→追記参照)。 一番外側の、0から(1<<25)-1まで変化する変数iのループをOpenMPで並列化します(schedule(guided)では遅くなります。schedule(auto)はVisual C++でサポートされたら試します)。変数iは上の図の緑の部分(カンで5個にしました)を各数5ビットで表現し、つなげたものです。マスに入りうる数は1から25までなので、5ビットというのはちょっと冗長ですが、とりあえずはよしとしましょう。 出力はバイナリ形式で、1つの解に25バイト使います(1つのマスに入る数を1バイトで表現

    スパコンで約2時間36分かかったという、5×5の魔方陣の全解列挙を、パソコンで試す(C ) | 配電盤
    indication
    indication 2014/03/16
    intel の parallel studioだともっと早くなるのかな?
  • 無料サービスを使え! – 役立つ無料サービスのレビュー、まとめ、比較記事を紹介

    コンテンツへスキップ 無料「Excel」 テンプレート 比較/まとめ フリーアイコンWebサービスの比較/まとめ 無料オンラインスキャン 比較/まとめ 無料でビジネスチャット、Web会議、スケジュール管理ができるグループウェア おすすめ無料レンタルサーバーの比較 無料ストレージサービス 比較/まとめ 就職・転職には必須となる履歴書・職務経歴書 これから就職活動をスタートContinue reading フリーアイコンって何? インターネットが世界的に普及し始めて20年程度Continue reading 急にパソコンの調子が悪くなったことありませんか? この記事を読んでいるContinue reading Chat&Messenger ってどんなサービス? ビジネスチContinue reading レンタルサーバーを導入したい 企業・個人問わず、今レンタルサーバーを導Continue r

    indication
    indication 2011/06/28
    警告をエラーにする
  • gcc バージョン 4.3 のビルドとインストール(Cygwin の場合)

    インストールの方針 Cygwin のパッケージのものと衝突しないように、/usr/local 下にインストール /usr/local/bin/gcc-4.exe, /usr/local/bin/g++-4.exe, /usr/local/bin/gfortran-4.exe のように,末尾に -4 が付いたファイル名でインストール. gcc, g++ 等では,バージョン 4.3 ではなく,Cygwin のパッケージのものが使用されるようにする. gcc バージョン 4.3 のビルドとインストールに役立つ下記のソフトウエアも同時にインストールします. make ・・・ インストールしておくと,トラブルの可能性が減る termcap ・・・ gdb のコンパイルに必須 gmp ・・・ gcc バージョン 4.3 のコンパイルに必須 mpfr ・・・ gcc バージョン 4.3 のコンパイル

    indication
    indication 2010/11/14
    コンパイル方法
  • LAIPE2 Exhibits a Consistent Performance on Intel and AMD processors

    Home '- - Programming Tools '- - Parallel Computing '- - Blog '- - In-Situ Evaluation '- - Numerical Analysis '- - Structural Mechanics | '- - IFAS | '- - mCable '- - Write Us | '- - Feedback | '- - Info | '- - Support | '- - Webmaster '- - Privacy Policy A consistent performance of LAIPE2 on Intel Xeon and AMD Opteron could be predictable. Any software, not in processor-dependent instructions, co

    indication
    indication 2010/11/14
    no-cygwin対策
  • 1