file-5.12 GCC-4.7
- コンパイル時にundefined reference to `getline'が出て停止
- getline関数はsrc/getline.oにある.
- ライブラリsrc/.libs/libmagic.soにはgetline.oが含まれているが, nmをかけてみると, getline関数はLOCLになっていて参照できない.
- configure 中に GCC4以降で使用可能になったvisibilityをチェックしている部分があり, 'checking for simple visibility declarations' というメッセージが出ている場合, -fvisibility=hidden というコンパイラオプションがついてくる. これが必要な関数を隠蔽してしまうらしい.
- src/MakefileのCFLAG_VISIBILITY右辺の -fvisibility=hidden を削除.
- http://gcc.gnu.org/wiki/Visibility
- http://gihyo.jp/lifestyle/serial/01/ganshiki-soushi/0034
- 逆にhidden指定をしていないために大規模なライブラリがリンクできなくなる例
- http://nsrzakki.hateblo.jp/entry/2012/05/05/004248
- objdumpを使用して判定が行われている場合あり
- http://d.hatena.ne.jp/pyopyopyo/20050402/p1