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


目录
相关文章
|
IDE Linux 编译器
【Linux】gcc/g++编译器、make/Makefile自动化构建工具
目录 1.gcc/c++的概念: 2.程序编译过程详解: 2.1程序编译过程:
104 0
|
6月前
|
自然语言处理 Linux C++
make和Cmake都有什么区别?(内附使用详解)
make: 是一个构建工具,它的任务是读取 Makefile 文件,并基于这些文件中的指令执行具体的构建操作。Makefile 文件包含了如何构建项目的规则,make 负责解析这些规则并执行必要的命令来编译和链接源代码,生成可执行文件或库。 CMake: 是一个构建系统生成器。它并不直接进行编译或链接,而是根据项目中 CMakeLists.txt 文件的内容生成一个或多个构建系统的描述文件(如 Makefile 或 Visual Studio 解决方案)。CMake 提供了一种更高级、更抽象的方式来描述构建过程,这使得它能够跨平台地生成各种构建系统。
554 0
|
8月前
|
编译器 Linux C语言
【Linux工具篇】编译器gcc/g++
【Linux工具篇】编译器gcc/g++
114 1
|
8月前
|
编译器 Linux 开发者
【cmake 交叉编译配置设置】CMAKE_TOOLCHAIN_FILE:跨平台编译的秘密武器
【cmake 交叉编译配置设置】CMAKE_TOOLCHAIN_FILE:跨平台编译的秘密武器
871 0
|
移动开发 小程序 Linux
Linux之make和makefile及其拓展
Linux之make和makefile及其拓展
Linux之make和makefile及其拓展
|
Linux C语言
【Linux】gcc/g++的使用 自动化构建工具make/makefile的使用
【Linux】gcc/g++的使用 自动化构建工具make/makefile的使用
116 0
|
IDE Linux 编译器
ARM架构与编程(基于I.MX6ULL): keil_gcc_Makefile(八)(上)
ARM架构与编程(基于I.MX6ULL): keil_gcc_Makefile(八)
401 1
ARM架构与编程(基于I.MX6ULL): keil_gcc_Makefile(八)(上)
|
NoSQL Java 编译器
GNU/GCC 基础介绍
GNU/GCC 基础介绍
459 0
|
编译器 C语言
ARM架构与编程(基于I.MX6ULL): keil_gcc_Makefile(八)(下)
ARM架构与编程(基于I.MX6ULL): keil_gcc_Makefile(八)
122 0
|
C语言
ARM架构与编程(基于I.MX6ULL): keil_gcc_Makefile(八)(中)
ARM架构与编程(基于I.MX6ULL): keil_gcc_Makefile(八)
127 0

热门文章

最新文章