2022年07月28日 Thread Local StorageをOSに頼らず実装する方法 特定の OS を前提としないベアメタルのツールチェーン(いわゆる aarch64-unknown-elf のようなターゲット)に付属するライブラリは、マルチスレッド関係のライブラリの排他制御などが全て OFF になった状態です。pthread などのスレッドライブラリを前提にすることは当然できませんが、Thread Local Storage(TLS)だけならば OS に依存しない形で実装でき、かつ OS を使う場合は無変更でライブラリ関数のスレッドセーフ化が可能なのではないか?と思いつき、調査した時のメモです。 以下は clang で aarch64-unknown-elf ターゲットで、ダイナミックリンカが無い OS レス環境なので 当然 shared library も無効で、シンプルに TL