タグ

ブックマーク / blog.kmckk.com (3)

  • KMC Staff Blog:Ubuntuのmingw32のsnprintfのバグ

    2009年07月14日 Ubuntuのmingw32のsnprintfのバグ Ubuntuのmingw32のsnprintfのバグを見つけて修正しました。 どうやら既知の問題だったようですが、もしかしたら役に立つかもしれないのでここにメモを残します。 mingw32とwineについて Ubuntuのmingw32パッケージはWindows用のクロスコンパイルツールです。このコンパイラを使うとUbuntu上でWindowsアプリをビルドすることができます。 WineはWindowsアプリを動かすための互換レイヤです。全てのWindowsアプリを動かすことができるわけではありませんが、クロスコンパイルしたものをちょっと確認するには重宝します。 $ cat hello.c #include <stdio.h> main() { printf("Hello, world\n"); } $ $ gc

  • KMC Staff Blog:GCCでリンク時に不要なコードとデータを削除する方法

    2010年04月26日 GCCでリンク時に不要なコードとデータを削除する方法 これもまた、ELC(Embedded Linux Conference)でのセッションの紹介です。 ELCのスライドのページのDenys Vlasenkoさんの"Link time dead code and data elimination using GNU toolchain"を見てください。 組み込みシステムではやはりコードやデータのサイズの削減が必要になる場面がしばしばあります。これを毎回手作業でやるのではscaleしません。このセッションではGNU Tool chainでこれを行う方法を紹介しています。 必要なバージョンはgcc 4.x 以上、binutils 2.18以上。 gcc 4.5から入ったlto(link time optimization)はこのセッションの話とは別です。 通常はリンクす

  • KMC Staff Blog:gccの便利なオプション (-save-temps)

    2009年07月30日 gccの便利なオプション (-save-temps) 私がよく使うgccの -save-temps というオプションを紹介します。 gccはCのソースプルグラムをコンパイルするときに、プリプロセッサ、コンパイラ、アセンブラ、リンカがそれぞれ動作し、その間のやりとりには中間ファイルが作成されます。 通常は中間ファイルはテンポラリディレクトリに作られて用が済んだら消されてしまいます。しかし、gccにコンパイルオプション -save-temps をつけるとこれらの中間ファイルがカレントディレクトリに作られてそのまま残ります。 $ gcc -save-temps hello.c とすると、 hello.i, hello.s, hello.o がカレントディレクトリにできます。 hello.i がプリプロセッサを通した後の結果でhello.s がアセンブラ出力の結果です。 コ

  • 1