gentoo prefix重生(llvm/clang)

简介: gentoo prefix重生(llvm/clang) 前天手贱,更新了mac上gentoo prefix的perl,然后发现git svn无法使用。更新perl其他组件的时候,遇到了一堆问题。 特别是subversion1.8,在gcc-apple下已经无法编译了。 gentoo prefi

gentoo prefix重生(llvm/clang)

前天手贱,更新了mac上gentoo prefix的perl,然后发现git svn无法使用。更新perl其他组件的时候,遇到了一堆问题。
特别是subversion1.8,在gcc-apple下已经无法编译了。

gentoo prefix portage镜像

之前gentoo prefix的portage rsync服务器挂掉过,然后改了其他一台,但是速度都非常慢。看见阿里云有gentoo prefix portage
的镜像,尝试修改成了这个镜像,但是后面更新的软件,包括portage都会存在问题。

刚开始都准备放弃重新做gentoo prefix了,下载了新的bootstrap-prefix.sh,发现了两个地方:
1. 新的脚本中portage树从rsync.prefix.bitzolder.nl下载
2. 新的脚本已经直接开始使用llvm作为prefix的构建编译器了

因此,还是先将portage的同步地址改了。由于新的portage已经去掉了make.conf中的SYNC变量,取而代之的是多了一个repos.conf目录
来存放仓库配置。因此在$EPREFIX/etc/portage/repos.conf下创建gentoo_prefix.conf文件,内容是:

[DEFAULT]
main-repo = gentoo_prefix

[gentoo_prefix]
location = /Users/babydragon/Gentoo/usr/portage
sync-type = rsync
sync-uri = rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix

更新llvm

刚开始用了阿里云的镜像,emerge了llvm之后没有问题,但是加上了clang的USE之后,怎么都emerge不了。切换成官方镜像之后,又遇到llvm3.5.2循环依赖。
搜索了下发现bootstrap-prefix脚本中是bootstrap先emerge了llvm 3.4。按照这个方式和漫长的等待,llvm 3.4 emerge完成之后,再升级到3.5,
所有依赖的cxx包都能够正常安装了。

然后就是更新系统了,因为之前是perl损坏,直接使用:


perl-cleaner --all

来更新所有perl的依赖,发现编译的时候还有问题,看上去没有使用新的clang。继续查看脚本,发现stage2的时候,脚本会向make.conf文件中追加:


CC=clang
CXX=clang++
BUILD_CC=clang
BUILD_CXX=clang++

这几个变量,强制将编译器改成clang/clang++。

改完之后,git, svn和其他Perl的依赖,都能够正常的emerge了,git svn终于可以继续使用了。由于使用了llvm新版本,以后emerge boost等的时候,应该不会再有问题了吧。


转载自:https://coolex.info/blog/506.html


目录
相关文章
|
8月前
|
Ubuntu
LLVM编译源码
LLVM编译源码
196 0
|
IDE Linux 编译器
【Linux】gcc/g++编译器、make/Makefile自动化构建工具
目录 1.gcc/c++的概念: 2.程序编译过程详解: 2.1程序编译过程:
109 0
|
6月前
|
自然语言处理 Linux C++
make和Cmake都有什么区别?(内附使用详解)
make: 是一个构建工具,它的任务是读取 Makefile 文件,并基于这些文件中的指令执行具体的构建操作。Makefile 文件包含了如何构建项目的规则,make 负责解析这些规则并执行必要的命令来编译和链接源代码,生成可执行文件或库。 CMake: 是一个构建系统生成器。它并不直接进行编译或链接,而是根据项目中 CMakeLists.txt 文件的内容生成一个或多个构建系统的描述文件(如 Makefile 或 Visual Studio 解决方案)。CMake 提供了一种更高级、更抽象的方式来描述构建过程,这使得它能够跨平台地生成各种构建系统。
606 0
|
8月前
|
编译器 Linux C语言
【Linux工具篇】编译器gcc/g++
【Linux工具篇】编译器gcc/g++
119 1
|
8月前
|
编译器 Linux 开发者
【cmake 交叉编译配置设置】CMAKE_TOOLCHAIN_FILE:跨平台编译的秘密武器
【cmake 交叉编译配置设置】CMAKE_TOOLCHAIN_FILE:跨平台编译的秘密武器
959 0
|
移动开发 小程序 Linux
Linux之make和makefile及其拓展
Linux之make和makefile及其拓展
Linux之make和makefile及其拓展
|
自然语言处理 前端开发 Linux
Linux工具学习之【gcc/g++】
书接上文,我们已经学习了 Linux 中的编辑器 vim 的相关使用方法,现在已经能直接在 Linux 中编写C/C++代码,有了代码之后就要尝试去编译并运行它,此时就可以学习一下 Linux 中的编译器 gcc/g++ 了,我们一般使用 gcc 编译C语言,g++ 编译C++(当然 g++ 也可编译C语言),这两个编译器我们可以当作一个来学习,因为它们的命令选项都是通用的,只是编译对象不同。除了编译器相关介绍外,本文还会库、自动化构建工具、提权等知识,一起来看看吧
312 0
Linux工具学习之【gcc/g++】
|
NoSQL IDE Linux
Linux系统编程—第二节—(Centos 7)开发工具等(yum vim gcc g++ gdb make Makefile )
会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作
327 0
Linux系统编程—第二节—(Centos 7)开发工具等(yum vim gcc g++ gdb make Makefile )
|
缓存 IDE Unix
【GUN和Linux到底是什么关系,gcc,make,cmake,yum是什么】
【GUN和Linux到底是什么关系,gcc,make,cmake,yum是什么】
172 0
|
前端开发 Unix C语言

热门文章

最新文章