最近在安装gentoo。安装LVM2的时候根据依赖,需要安装boost的时候,总是出错,提示:
{standard input}: Assembler messages:
{standard input}:58054: Warning: end of file not at end of a line; newline inserted
{standard input}:58879: Error: open CFI at the end of file; missing .cfi_endproc directive
x86_64-pc-linux-gnu-g++: Internal error: Killed (program cc1plus)
经过搜索,找到了这里error on binutils emerge [Solved]
发现是内存溢出(out of memory)造成的g++不能正常工作。扩大内存或者增大swap,或者取消MAKEOPTS="-j5"就可以解决。
于是我增大的gentoo中的swap从1G到4G:
e2fsck /dev/vg/slash
resize2fs /dev/vg/slash -L10G
lvreduce -L10G /dev/vg/slash
swapoff /dev/vg/swap
lvextend -L4G /dev/vg/swap
mkswap /dev/vg/swap
swapon /dev/vg/swap
boost可以顺利编译通过。通过top查看内存使用情况,Kib Swap的used有时突破2G。