Gentoo como compilar o LVM vinculado estaticamente?

2

Uma instalação do Gentoo ainda no estágio livecd (incapaz de inicializar até o momento) não consegue gerar o LVM estaticamente. Eu preciso de um lvm estaticamente compilado para usá-lo no meu initrd.

Meu make.conf:

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

O erro de compilação emerge:

/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'

Eu também noto que:

  • Atenção, não sobrescrevemos / sbin / lvm e / sbin / dmsetup com
  • suas versões estáticas. Se você precisar dos binários estáticos,
  • você deve anexar .static ao nome do arquivo!

O que isso significa? Como devo acrescentar este ".static" ao nome do arquivo?

Eu vejo que essa pessoa tinha o mesmo problema, mas sem resposta: link

Também vejo este tópico: link

eu tentei     exportar LDFLAGS="-lrt"

No entanto, não parece mudar nada, continua o mesmo erro.

    
por ioctlvoid 02.07.2013 / 17:40

1 resposta

4

Funciona bem para mim (em ~amd64 Gentoo), no entanto, tente remover o udev useflag de lvm2 como solução alternativa, já que o udev não é importante no estágio initramfs. O binário estático é chamado /sbin/lvm.static (requer que static useflag seja construído). Você pode verificar se um binário está estático ou não usando ldd .

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

Verifique também se você tem o static-libs useflag ativado, para as dependências dos pacotes que você deseja construir estaticamente. Normalmente, os ebuilds devem verificar essas dependências para você, mas é melhor verificar novamente.

    
por 02.07.2013 / 18:37