2013-07-01から1ヶ月間の記事一覧

ユニークなシンボルを自動生成

デバッグ用のマクロ等で時々必要となる,ユニークなシンボル名(関数名とか変数名)を自動生成するマクロ #define CAT_I(a,b) a##b #define CAT(a,b) CAT_I(a,b) #define UNIQSYM(tag) CAT(tag, __LINE__) 使い方はこんな感じ int UNIQSYM(hogehoge) = 123; こ…

dereferencing type-punned pointer will break strict-aliasing

dereferencing type-punned pointer will break strict-aliasing の警告を回避する方法.C/C++では,以下のようなType-punned pointerを使うコードは,厳密には動作が保証できない. float f = 123; uint32_t u = *(uint32_t*)&f; このようなコードは,例え…

LinuxだけでBIOSを更新する方法

WindowsやFreeDOSを使わずに,LinuxだけでマザーボードのBIOSを更新する手順をまとめます.同じ手順で,マザーボードだけでなく,NICやRAIDカード,グラッフィックボードまで様々なデバイスのファームウェアが更新できます. 手順1) flashrom のインストール…

[linux][debian][fedora] linux 3.10.x 用 NVIDIAドライバのパッチ

Linux 3.10.0 で NVIDIA-Linux-x86-319.32 をビルドするためのパッチ.32bit版/64bit版どちらもOK diff -up nvidia-319.32/nv-i2c.c.fix~ nvidia-319.32/nv-i2c.c --- nvidia-319.32/nv-i2c.c.fix~ 2013-07-01 13:13:12.220689324 +0900 +++ nvidia-319.32/n…