Gentooはどのように静的にリンクされたLVMをコンパイルしますか?

Gentooはどのように静的にリンクされたLVMをコンパイルしますか?

まだlivecdステップ(現在は開始できません)にあるGentooインストールでは、LVMを静的に表示できません。私のinitrdで使用するには、静的にコンパイルされたlvmが必要です。

私のmake.conf:

CFLAGS="-O2 -march=native -pipe"
CXXFLAGS="${CFLAGS}"
CHOST="x86_64-pc-linux-gnu"
USE="bindist mmx sse sse2 static"

コンパイルエラーが発生します。

/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/../../../../lib64/libudev.a(time-util.o): In function `now': (.text.now+0x8): undefined reference to `clock_gettime'

私も以下を見つけました。

  • 警告、/sbin/lvm および /sbin/dmsetup は次に上書きされません。
  • 静的バージョン。静的バイナリが必要な場合、
  • ファイル名に.staticを追加する必要があります!

どういう意味ですか?ファイル名に「.static」をどのように追加できますか?

同じ質問をしたが答えがない人を見ました。http://archives.gentoo.org/gentoo-user/msg_eb40f5d76161fda72d134551cc26d989.xml

私も次のスレッドを見つけました。http://forums.gentoo.org/viewtopic-p-4892618.html?sid=e41b07d9b8554c10430619e1f51d564a

LDFLAGS="-lrt" エクスポートを試みました。

しかし、何も変わらないようです。それでも同じエラーが発生します。

ベストアンサー1

私にとっては(Gentooでは)うまくいきますが、initramfsステップではudevが重要ではないので、回避策としてlvm2からuseflagを削除してみ~amd64てください。udev静的バイナリを呼び出します/sbin/lvm.static(ビルドuseflagが必要ですstatic)。以下をldd使用して、バイナリが静的であることを確認できます。

echo sys-fs/lvm2 static -udev >> /etc/portage/package.use

また、static-libs静的にビルドするパッケージの依存関係に対してuseflagが有効になっていることを確認してください。通常、ebuildはこれらの依存関係を確認する必要がありますが、再確認する方が良いでしょう。

おすすめ記事