gentoo设置单个软件编译的CFLAGS参数和patches

[20160510]最新:gcc-5.3编译wine已修复。

gentoo升级到gcc-5.3后,编译最新的wine,始终有问题(详见:https://bugs.gentoo.org/show_bug.cgi?id=574044)。

这是gcc-5.3的一个bug,一直没有修复,解决办法无非是给gcc或者wine打补丁,上述链接中也给出了这两种方案。

给wine打补丁,每次wine版本升级之后,需要重新打,比较麻烦,原来我一直这样做。

直接给gcc打补丁,也比较麻烦,后来有人给出了一个傻瓜式方案,简单的多了:

sudo mkdir -p /etc/portage/patches/sys-devel/gcc-5.3.0
curl https://574044.bugs.gentoo.org/attachment.cgi?id=428646 | sudo tee /etc/portage/patches/sys-devel/gcc-5.3.0/wine-fix.patch 
sudo emerge -1 gcc-5.3.0
sudo emerge -1u wine

这样,wine就可以直接安装了。

但是这样做还有一个问题,编译出来的wine,运行QQ的话,还是不行,打开后会直接崩溃。yuking说是编译参数CFLAGS的问题,不能用O2,必须用O0才行,有人遇到过这个问题。

因此,编译wine时,需要将CFLAGS修改为O0。每次编译时都去修改,也比较麻烦。后来搜索出了一个单独给软件设置参数的方法:

sudo mkdir /etc/portage/env
sudo echo "CFLAGS=\"-O0 -march=native -fomit-frame-pointer -pipe\"" > /etc/portage/env/wine
sudo echo "=app-emulation/wine-9999 wine" > /etc/portage/package.env
sudo emerge -1u wine

当然,上面有些参数根据你的实际情况填写。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据