Closed ghost closed 2 years ago
【現象】 osbook/devenv内のansible-playbookにてclang-7をインストールの後、オリジナルのOS開発に取り掛かろうと思い同一OS内の別フォルダを開発用に用意しました。 別環境の方では、clang-12を使おうと思いインストールしたのですが、どうやらclang-7から大幅に最適化機能が進化してしまっているようで、書籍に記載されている内容ではビルド後のイメージが実行できませんでした。 clang-7にバージョンを戻そうと"update-alternatives --config"を使い、バージョンを切り替え、update-alternatives上ではclang-7に切り替わっているのですが、"clang --version"と入力すると、"version 12.0.0"と表示され、内部的にversion 7に切り替わらないようです。
【結論】 ネットでいろいろ検索したのですが、どうやらclang-7はalternativesに登録できるものの、正式にalternativesのバージョン切り替えに対応していないようです。 clangのコマンド自体、内部的にlibclang1-7やlibclang-common-7などの関連するライブラリに依存しているみたいですが、そのライブラリ自体のあるディレクトリ名にバージョン番号が含まれており、単純にalternativesでそのライブラリを切り替えればいいという話でもなさそうです。
と、ここまでが調べたところなのですが、ほかの方で壊してはまずいOS環境を使われている方がいらっしゃる可能性もあるので、そういう方は仮想環境にて開発環境(clang-7)を整えて開発を行ったほうが良いと思い、情報提供の意味も込めてissueを挙げさせていただきました。
情報ありがとうございます。 alternativesの仕組みでは上手く切り替えできないんですね。初めて知りました。
【現象】 osbook/devenv内のansible-playbookにてclang-7をインストールの後、オリジナルのOS開発に取り掛かろうと思い同一OS内の別フォルダを開発用に用意しました。 別環境の方では、clang-12を使おうと思いインストールしたのですが、どうやらclang-7から大幅に最適化機能が進化してしまっているようで、書籍に記載されている内容ではビルド後のイメージが実行できませんでした。 clang-7にバージョンを戻そうと"update-alternatives --config"を使い、バージョンを切り替え、update-alternatives上ではclang-7に切り替わっているのですが、"clang --version"と入力すると、"version 12.0.0"と表示され、内部的にversion 7に切り替わらないようです。
【結論】 ネットでいろいろ検索したのですが、どうやらclang-7はalternativesに登録できるものの、正式にalternativesのバージョン切り替えに対応していないようです。 clangのコマンド自体、内部的にlibclang1-7やlibclang-common-7などの関連するライブラリに依存しているみたいですが、そのライブラリ自体のあるディレクトリ名にバージョン番号が含まれており、単純にalternativesでそのライブラリを切り替えればいいという話でもなさそうです。
と、ここまでが調べたところなのですが、ほかの方で壊してはまずいOS環境を使われている方がいらっしゃる可能性もあるので、そういう方は仮想環境にて開発環境(clang-7)を整えて開発を行ったほうが良いと思い、情報提供の意味も込めてissueを挙げさせていただきました。