glibc関数呼び出しに関する質問があります。 gccに特定のglibc関数をインライン化させないように指示するフラグがありますか? memcpy?glibc - force関数呼び出し(インライン展開なし)
-fno-builtin-memcpyと他のフラグを試しましたが、動作しませんでした。目標は、実際のglibc memcpy関数が呼び出され、インラインコードがないことです(コンパイル時のglibcのバージョンと実行時のglibcのバージョンが異なるため)。これはテスト目的のみのものです。通常、私はそれをしません。
すべてのソリューションはありますか?
UPDATE:
ちょうどそれをより明確にする:過去にはmemcpyのは、オーバーラップ領域でさえも動作します。これは一方で変更され、異なるglibcのバージョンでコンパイルするときにこの変更を見ることができます。だから私は古いコード(memmoveを使ったはずのmemcpyを使ってください)が新しいglibc(例えば2.14)のシステムで正しいかどうかをテストしたいと思います。しかし、これを行うには、新しいmemcpyが呼び出され、インラインコードがないことを確認する必要があります。
敬具理論的には
としてyour_memcpy_replacementをマーク( params ..) ' – osgx
@osgx:これは' memcpy() 'マクロの展開を防ぎますが、実際の関数のインライン展開には影響しません。 –