lynx   »   [go: up one dir, main page]

タグ

gccに関するsiroccoのブックマーク (21)

  • 着想から13年、Googleから5倍早いGNUリンカの新実装が登場 - いつか書く

    面白かったので言及してみる。ちなみにまだググってない。 gold: Google Releases New and Improved GCC Linker | Google Open Source Blog Googleの中の人であるIan Lance Taylor氏が、GNUリンカを一から書き直した新実装「gold」をリリースした。既にbinutilsのHEADでは、configure時に「--enable-gold」を指定することで(従来のGNU ldに代わって)利用できるそうだ。 goldの売りは一点、高速性。氏によると、でかいC++アプリのリンクは五倍程度高速になるのを確認済らしい。またgold自体もC++で書かれていて、5万行しかないらしい。これってかなり小さいですよね? ただし現在、goldが使える環境はELF+x86/x64のみだそうだ。その点まだ未熟だが、当然Google

    着想から13年、Googleから5倍早いGNUリンカの新実装が登場 - いつか書く
    sirocco
    sirocco 2013/08/25
    goldって、Googleの中の人がGNUリンカを一から書き直したものなんですね。2008-04-08の記事。会社の業務ソフトをPostgreSQLとwxHaskellで書き直せばOSに依存しなくなるんでgoldを使えますが、チビチビと進みなせん。
  • __gxx_personality_v0 - DiaryException

    g++(gcc)で undefined reference to `__gxx_personality_v0'というエラーが出たら $ gcc foo.cpp -lstdc++とリンクするライブラリstdc++を指定する。 g++のバージョンによっては、起こる模様。 $ gcc -v /usr/lib/gcc-lib/i386-vine-linux/3.3.2/specs から spec を読み込み中 コンフィグオプション: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --host=i3

    __gxx_personality_v0 - DiaryException
  • tdm-gcc

    TDM-GCC 10.3.0 is now available, along with GDB 10.2, binutils 2.36.1, and new versions of the MinGW.org and MinGW-w64 runtime distributions. Thanks for your patience! Keep reading for download links and change notes. I'm proud to present a new series of TDM-GCC binaries based around GCC 9. It's been a long time coming, but getting back into the groove of delivering a Windows-friendly GCC toolchai

    tdm-gcc
  • 静的ライブラリのリンク時にundefined referenceエラーが出る(gcc)

    静的ライブラリのリンク時にundefined referenceエラーが出る(gcc) 概要 gccでリンク時にundefined referenceエラーが出る場合がある。 通常はオブジェクトやライブラリの指定忘れが原因であるが、 静的ライブラリをリンクする順番に間違いがあって出る場合もある (自分でMakefileを書く場合にこのミスをすることが多い) リンクの順番には依存性があり、あるオブジェクトが静的 ライブラリ内の関数を呼び出すときには呼び出される側の ライブラリは「後で」リンクする必要がある。 例えば foo.o が静的ライブラリ libfoo.a 内の関数を使用している、つまり foo.o → libfoo.a という依存関係があるとき、 g++ -o foo libfoo.a foo.o とするとundefined referenceエラーが出る。従って g++ -o fo

    sirocco
    sirocco 2010/10/06
  • Makefile の簡単な書き方

    プログラムパッケージを作る場合、 規模によって次のようなファイル構成が考えられます。 1ソースファイル 1実行ファイル nソースファイル 1実行ファイル n×(1ソースファイル 1実行ファイル) nソースファイル m実行ファイル いずれの場合でも 'make' コマンドを活用することによって、 開発段階から効率的に作業できます。 パッケージ生成の機能も持たすことができますので、是非活用して下さい。 それでは見て行きましょう。 また、"README" やパッケージそのものの 各種雛型 も用意しました。ぜひご活用下さい。 'make' コマンドとは? 'make' を実行すると、 カレントディレクトリの "Makefile" に従ってプログラムを実行しますが、 ファイル生成を目的に作られているだけあって、 ファイルのタイムスタンプを見て無用なプログラムを実行しない点が、 単なるシェルスクリプト

  • Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ

    今年の文化祭で書いた記事です。 - C言語といえば、いやなイメージ、過去の遺産といった感じがあるかもしれません。 C言語のネガティブな側面というと、やはりポインタやメモリ管理などが難しい、ということが思いつくかもしれません。 しかし、C言語のポインタは表記に騙されやすいだけで、仕組み自体は全く難しくありません。 文法も、どこぞのPerlC++と比べたら屁でもない単純さです。 実のところ、仕様が煩雑で難しいのは、Cプリプロセッサなのであります。 普段からあまり複雑な使いかたをしないから気づかないかもしれませんが、Cプリプロセッサの置換処理は、欺瞞と裏切りに満ちた世界なのです。 これが進化するとテンプレートなどといったもっと面白いものになるのですが、今回はCプリプロセッサで計算をしちゃったりするところまで試しにやってみましょう。 (なお、GCCにより実験的に調べた記事なので、他のCコンパイラ

    Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ
    sirocco
    sirocco 2009/11/08
  • KMC Staff Blog

    2023年12月06日 GNU ldとLLVM lldのロケーションカウンタの扱いの違い 従来は LinuxApple などのリッチ OS のアプリ向けというイメージだった LLVM の高速リンカ lld ですが、LLVM 17 で GNU ld との互換性がほぼ完璧になり、AArch64/ARM/RISC-V のベアメタルツールチェーンでも GNU ld を置き換えできることが確認できました。そこで弊社の SOLID もリンクの高速化や Clang での LTO などを期待して lld 対応を進めているのですが、その時に 1 点だけ非常にわかりにくい非互換性に悩まされたのでメモしておきます。 続きを読む kmckk at 20:24│コメント(0)│LLVM|若槻 2023年10月26日 MSYS2のバグ?(Bad address) 業務でシェルスクリプトを書いていて、非常に不可解

    sirocco
    sirocco 2009/07/04
  • 日本語版 skyfree.org

    ・GCCプログラミング工房特別編 Linux から目覚めるぼくらのゲームボーイ! 記事中で紹介したオプティマイズのパラレルポート版ブートケーブルが、当連載開始後早々に完売となってしまい、多くの読者の方々から「新しく発売されるUSB版ブートケーブルにも対応してほしい」とのリクエストを頂きました。 そこで、急遽Linux/*BSD上で動作可能な、USBケーブル用のダウンローダー(optusb)を用意しました。パラレル版に比べて10倍近く高速化されていますし、USBの恩恵でパラレルポートを持たないノートでも利用可能になりました。

  • ユメのチカラ: コードを読むな、理解しろ

    コードを読まないで理解するというと何やら心眼で読めとかテレパシーを使えとか、そーゆー荒唐無稽な方向に走れという事ではなく大局的に理解しましょうという話である。 カーネル読書会のネタで今回はmallocのお話だったのだが、そこでRubyのささださんがいらっしゃっていて、GC(ごみ集め)と記憶域管理の関係について熱い議論が沸騰し、その後いろいろブログなどでフォローされていたりする。 わたしもRubyでmallocやGCがどう実装されているか興味があったのでoprofileで実行プロファイルをとってみたりした。日頃利用しているノートPCRubyのテストプログラム(test/runner.rb)を実行してoprofileしたのは先日ブログに書いたとおりである。 「それとわたしのノートPCではキャッシュミスを測定できないので、Xeonのマシンでキャッシュミスを測定すると面白いと思った。GCの時ぼろ

  • Wataru's memo(2006-08-26)

    ● [UNIX] root のアクセス制御 今回は出版の話から離れ、先日神戸(かんべ)さんからご指摘頂いた、「ルートの場合、システムコールレベルで write パーミッションは無視される」というお話を peti-hacking を通じて確認してみましょう。 ただし、通常のプログラミングではプログラマーがシステムコールを直接呼び出したつもりでも、実際にはCライブラリ内の wrapper function が呼び出されてしまいます。途中で自分があずかり知らないコードが関与すると、カーネルの仕様にもとづく動作なのか、それともCライブラリ関数による介入が影響しているのか、判断がつきません。 そこで、今回は勉強がてら glibc に頼ることなく、Linux システムコールを直接呼び出す実験プログラムに挑戦してみましょう。 return.c による実験 まず手始めに、次の return.c を用意しま

    sirocco
    sirocco 2006/08/28
  • GCC: CPU に関する最適化オプション

    このページでは、GCC における最適化オプションに関する情報をまとめています。 対象としているのは x86 系 CPU, GCC 3.0 系以降です。 目次 各 CPU 向け最適化オプション 拡張命令向け最適化オプション リンク 各 CPU 向け最適化オプション GCC には以下の 3 つの各 CPU 向け最適化オプションがあります。 -march 指定した CPU だけで動作するようなコードを生成します。後述の -mcpu より速いコードを生成可能。 -mcpu -march と違い、同系列の CPU でも動作するようなコードを生成します。 -mtune GCC 3.4 系で導入された -mcpu の別名。 これらは、以下の表にある“CPU タイプ”と組み合わせて、-march=pentium2 の様に使います。

    sirocco
    sirocco 2006/07/15
  • GCC 解読室 Wiki*

    Wikiaへ引越し Wikiaへ引っ越す事になりました。 新しくページを作る時はWikiaの方にお願いします。 ▲ ▼ FrontPage GCC のソースコードをひらメソッドで読んでいこうかと思っています. GCC は,最も歴史が古く,よってたかって世界中の スーパハカー に知恵と技術の限りを尽くして叩かれ続け,今では全てのフリーソフトウェアの礎石となっている,地球が宇宙に誇れるプログラム ((c) shinichiro_h さん & wo さん) です.ぜひあなたも一緒に,この難攻不落の要塞に挑んでみませんか ? 私 (管理人 あろは) は,とりあえず今の所,フロントエンドが何をやっているのか (GCC の内部データ表現形式である木構造,GENERICTree と GIMPLE Tree がどのようにして生成されるのか) を理解したいです. (RTL を含む,ターゲットア

    sirocco
    sirocco 2006/07/15
  • Using and Porting the GNU Compiler Collection (GCC) - Table of Contents

    C、C++、Objective C、Fortranのコンパイル GCCコマンド・オプション オプションの要約 出力の種類を制御するオプション C++プログラムのコンパイル Cの方言を制御するオプション C++の方言を制御するオプション 警告を要求もしくは抑制するオプション ユーザ・プログラムまたはGCCをデバッグするためのオプション 最適化を制御するオプション プリプロセッサを制御するオプション アセンブラへのオプション渡し リンク処理用のオプション ディレクトリ探索のためのオプション ターゲット・マシンとコンパイラ・バージョンの指定 ハードウェアのモデルとコンフィギュレーション M680x0オプション VAXオプション SPARCオプション Convexオプション AMD29Kオプション ARMオプション Thumbオプション MN10200オプション MN10300オプション M32R

    sirocco
    sirocco 2006/07/15
  • introduction to x86-asm

    x86アセンブリ言語入門 昔に書いたのを発掘し, 若干手直しして出しました. 内容の古いところや間違ってるところがあればご指摘ください. 64bit環境についてはx64 アセンブリ言語プログラミングを参照してください. なおこのページではごく簡単なコードを書けるようになること, デバッグ時に知っておけばよいこともあるだろう程度の知識の取得を目指します. 高速化手法自体については触れません. レジスタについて 基用語 最初の一歩 Cとの連係 Cとの連係 その2 Cとの連係 その3 Windows DLL 少し応用 gasの場合は 実際に書くならこんなことも 簡易命令一覧

  • gcc のデバッグ術

    Unix系コマンドラインユーザーのための、 gcc/g++/g77 による開発におけるデバッグ術を簡単に紹介します。 以下の内容は gcc 2.7.2.3 での動作は確認しています。 g++/g77 でも恐らくは通用すると思うのですが、 ひょっとすると異なる部分があるかもしれません。 筆者は g++/g77 の使用経験がないので、その場合は御容赦を願います。 実行前 キーワード「コンパイルオプション, -Wall, -O2, -O4」 まずは gcc にオプション opt'-Wall' を付けてコンパイルし、 警告がなくなるまでソースを修正します。 これは 常識 です。 次に opt'-O4 -Wall' でコンパイルします。 「未初期化変数の使用」の警告 (`foo' might be used uninitialized in this function) は、 opt'-O4' を付

    sirocco
    sirocco 2006/07/15
  • レッドハット マガジン 64ビットコンピューティング: 32ビット環境での共存

    Guilt is usually considered a negative emotion, but by steering it well, you can achieve surprising success.

  • gccのx86インラインアセンブリに関して

    GCCでインラインアセンブリを使用 する方法と留意点等 for x86  (1999〜2006年10回改訂、2006年1月22日注意を追加、最終更新日2006年5月27日) 文: A. SAITOH <s-akira at users.sourceforge.net>  home ※システム名、CPU名は一般に開発会社の登録商標です。 以下の情報はあまり過度に信用しないで下さい。より正確な情報は、asやgccのinfoから得て下さい。 個々のプロセッサ命令の解説はここでは述べません。そのような技術資料は、インテルやAMDのウェブ サイトのdeveloper向けのページからpdf形式で入手できます。 以下の文及びプログラム例の運用結果に関して、筆者は一切責任を負いません。 参考文献 [0] D. Stancevic, K. Scheibler, J. Leto, Linux Assembly

  • Make と Makefile の説明

    まだ完成途中です back 注意: このページの内容には、おそらく多くの間違いがあります。 リンクされているので残しておきますが、利用には注意してください。(2008年3月、新山) ここではおもに make の使い方 と Makefile の書き方について 説明しています。じつは make の種類にはいろいろあり、ここでは GNU make (gmake というコマンド名のこともある) を 対象にしています (BSD の pmake でも基的な部分は同じですが、 マクロ定義などは違うところもあるので注意してください)。 わかりにくい箇所とか、まちがってる箇所がある場合はメールください。 Contents make はどんなときに使うか Makefile を作る make の実行 Makefile の文法リファレンス 多段 make について (未完成) Makefile の例 (未完成)

    sirocco
    sirocco 2006/07/15
  • フリーソフトウェア徹底活用講座 - GCC - 岸哲夫 - Interfaceコラム目次

    ◆移り気な情報工学 第62回  地震をきっかけにリアルタイム・システム再考 第61回  海を渡って卵を産む北京の「海亀族」 第60回  超遠距離通信とソフトウェア無線 第59回  IT先進国フィンランドの計画性 第58回  物理的に正しいITの環境対応 第57回  年金,e-チケットに見るディジタル時代の情報原 第56回  「着るコンピュータ」から「進化した布地」へ 第55回  技術を楽しむネットの文化 第54回  情報爆発2.0 第53回  プログラミングの現場感覚 第52回  GPS+LBS(Location Based Service)がおもしろい 第51回  技術の格差社会 第50回  フィンランドに見る,高齢化社会を支える技術 第49回  たかが技術倫理,されど技術倫理 第48回  若者の理科離れ,2007年問題から「浮遊」せよ 第47回  機械のためのWWW――Google

    sirocco
    sirocco 2006/05/07
  • GNU コンパイラ集(GCC) の使い方と移植について

    Node:Top, Next:G++ and GCC, Previous:(dir), Up:(dir) Introduction このマニュアルでは、GNU コンパイラの使い方、インストール方法、移植方法や、新しい機能や互換性の無い部分、それにバグレポートの方法などについて説明している。GNU CC のバージョン 2.95 に対応している。(日語版ドラフト-17 July 2001) G++ and GCC: C や C++ のプログラムがコンパイル可能Invoking GCC: gcc のコマンド行オプションInstallation: GCC のインストール方法C Extensions: C 言語の GNU の拡張C++ Extensions: C++ 言語の GNU の拡張Gcov: gcov: GCC のテストカバレージプログラムTrouble: GCC のインストールで問題が起

    sirocco
    sirocco 2006/05/07
Лучший частный хостинг