gentoo为单个包生成配置环境变量

安装时选择的是LLVM+OpenRC,就会碰到一些GNU环境碰不到的奇奇怪怪的bug.jpg

在尝试emerge一个kde-plasma/plasma-meta的时候,ld.lld碰了个钉子:

1
2
3
4
...
ld.lld: error: version script assignment of 'KEYUTILS_1.7' to symbol 'keyctl_restrict' failed: symbol not defined
ld.lld: error: version script assignment of 'KEYUTILS_1.7' to symbol 'keyctl_dh_compute_kdf_alloc' failed: symbol not defined
...

其实早有前人踩过这个坑,原文给出的workaround是给sys-apps/keyutils添加一个环境变量,而修改单个包生成时环境变量的方法略加Google也不难找到,只需添加下面两个文件:

1
2
# /etc/portage/env/undefined-version.conf
LDFLAGS="${LDFLAGS} -Wl,--undefined-version"
1
2
# /etc/portage/package.env/ketutils
sys-apps/keyutils undefined-version.conf