编译器和工具链

编译器和工具链

gcc 的 include 里面有 loongson.h 干嘛用的?

flygoatfree 回复了问题 • 2 人关注 • 1 个回复 • 113 次浏览 • 2018-04-20 09:31 • 来自相关话题

这个 so 不能 strip 是什么原因?corrupt GNU build attribute note: wrong note type: Bad value

回复

jiangtao9999 发起了问题 • 1 人关注 • 0 个回复 • 57 次浏览 • 2018-04-18 21:54 • 来自相关话题

NetCore-SDK 在龙芯3A+中标麒麟7.0安装不了。

hzxm 回复了问题 • 2 人关注 • 2 个回复 • 163 次浏览 • 2018-04-12 13:59 • 来自相关话题

编译器的问题怎么那么多

jiangtao9999 回复了问题 • 2 人关注 • 2 个回复 • 167 次浏览 • 2018-04-09 23:07 • 来自相关话题

bintuils 不能 strip ,提示 Bad value 是什么原因?

回复

jiangtao9999 回复了问题 • 1 人关注 • 1 个回复 • 86 次浏览 • 2018-04-04 20:26 • 来自相关话题

[解决]编译 webkitgtk-2.18.6 有个奇怪的问题。是架构的特殊问题,还是 python 的浮点计算出错?

jiangtao9999 回复了问题 • 3 人关注 • 5 个回复 • 351 次浏览 • 2018-03-18 17:18 • 来自相关话题

gcc 8.0 又改语法规范要求了?

xuchenghua 回复了问题 • 2 人关注 • 1 个回复 • 288 次浏览 • 2018-03-17 09:53 • 来自相关话题

bus error 的原因是什么?

xen0n 回复了问题 • 2 人关注 • 1 个回复 • 135 次浏览 • 2018-03-11 16:46 • 来自相关话题

如何获取某个软件包的 srpm 在 dnf 的 source 源上已经更新?

回复

jiangtao9999 发起了问题 • 1 人关注 • 0 个回复 • 81 次浏览 • 2018-03-08 19:17 • 来自相关话题

好诡异,rpm 直行了 %install 后的程序出错,但是源代码目录里面编译好的程序没事

回复

jiangtao9999 回复了问题 • 1 人关注 • 1 个回复 • 166 次浏览 • 2018-03-04 19:12 • 来自相关话题

条新动态, 点击查看
xuchenghua

xuchenghua 回答了问题 • 2017-06-14 18:07 • 1 个回复 不感兴趣

PMON 在64位 Ubuntu下无法编译 ?

赞同来自:

在64位系统下安装32位库也是可以编译pmon的。
在64位系统下安装32位库也是可以编译pmon的。

gcc 的 include 里面有 loongson.h 干嘛用的?

回复

flygoatfree 回复了问题 • 2 人关注 • 1 个回复 • 113 次浏览 • 2018-04-20 09:31 • 来自相关话题

这个 so 不能 strip 是什么原因?corrupt GNU build attribute note: wrong note type: Bad value

回复

jiangtao9999 发起了问题 • 1 人关注 • 0 个回复 • 57 次浏览 • 2018-04-18 21:54 • 来自相关话题

NetCore-SDK 在龙芯3A+中标麒麟7.0安装不了。

回复

hzxm 回复了问题 • 2 人关注 • 2 个回复 • 163 次浏览 • 2018-04-12 13:59 • 来自相关话题

编译器的问题怎么那么多

回复

jiangtao9999 回复了问题 • 2 人关注 • 2 个回复 • 167 次浏览 • 2018-04-09 23:07 • 来自相关话题

bintuils 不能 strip ,提示 Bad value 是什么原因?

回复

jiangtao9999 回复了问题 • 1 人关注 • 1 个回复 • 86 次浏览 • 2018-04-04 20:26 • 来自相关话题

[解决]编译 webkitgtk-2.18.6 有个奇怪的问题。是架构的特殊问题,还是 python 的浮点计算出错?

回复

jiangtao9999 回复了问题 • 3 人关注 • 5 个回复 • 351 次浏览 • 2018-03-18 17:18 • 来自相关话题

gcc 8.0 又改语法规范要求了?

回复

xuchenghua 回复了问题 • 2 人关注 • 1 个回复 • 288 次浏览 • 2018-03-17 09:53 • 来自相关话题

bus error 的原因是什么?

回复

xen0n 回复了问题 • 2 人关注 • 1 个回复 • 135 次浏览 • 2018-03-11 16:46 • 来自相关话题

如何获取某个软件包的 srpm 在 dnf 的 source 源上已经更新?

回复

jiangtao9999 发起了问题 • 1 人关注 • 0 个回复 • 81 次浏览 • 2018-03-08 19:17 • 来自相关话题

好诡异,rpm 直行了 %install 后的程序出错,但是源代码目录里面编译好的程序没事

回复

jiangtao9999 回复了问题 • 1 人关注 • 1 个回复 • 166 次浏览 • 2018-03-04 19:12 • 来自相关话题

【笔记】fedora 27 在 mips64el 上编译需要做的修改。

jiangtao9999 发表了文章 • 0 个评论 • 189 次浏览 • 2018-02-25 23:11 • 来自相关话题

不知道提交到 fedora 官方容易不?
1、binutils 需要修改默认 ABI 为 N64 ,debian 有 patch ,不过只能参考,Debian 的 n64 是 -gnueabin64 的 arch 字段末尾才用 N64 做默认。另外打开 mips64el 的 ld.gold 似乎就是增加架构识别而已,debian 有补丁。另外 debian 的 bug 886222 也遇到了。应该会在新版本的 binutils 里面修复,不过感觉会是 2.30 系列的。
2、glibc 里面有个 -O3 的优化,会导致后面生成 locale 数据时段错误,改成 -O2 就行。注:glibc 2.27 没这个问题了。
3、elfutils 需要打补丁增加 mips64el 的支持,不然编译 rpm 包是没办法处理 debuginfo 的。debian 有补丁。
4、redhat-rpm-config 里面的 nodejs 增加 mips64el 的支持设定。
5、qt5-srpm-macros 里面去掉 qt5_qtwebengine_arches 的 mips 支持,现在的 webengine 不支持 mips 。
6、java-1.8.0-openjdk ,增加 mips64el 的 ZERO 支持。debian 有补丁。至于本地优化版,龙芯的那是哪年的版本啊?而且 srpm 也和 fedora 的无法有效合并,不如拆开,想用本地优化的就找龙芯的 rpm 装上就行了。
7、libsrtp 的 SOURCE 里面有 config.h ,需要加上 mips64 的识别为 64 位的内容。
8、libunwind 加上 mips64el 的支持,就是不知道这东西能不能在 mips64el 下面使用?编译通过是没问题。看了下 debian 似乎有 mips64el ,那就是支持了。
9、libvirt 需要去掉 zfs 的依赖。
10、mozjs17 打上 loongnix 的补丁也不行,还要 --disable-methodjit 是为什么。
11、mozjs38 需要修改 configure ,设置 64bit 识别,关闭 ION 的支持。
12、qt5-qtdeclarative 需要禁用 JIT ,debian 有补丁。
13、rdma-core 和 s390 一样不支持 mlx5 相关,搜索 ifnarch 和 s390x 一起略过即可。
14、webkitgtk4 不支持 jit ,需要修改 spec 关掉。
15、gcc 需要加 --with-madd4=no ,原因 http://ask.loongnix.org/?/question/266 ,另外 http://ask.loongnix.org/?/question/295  最好加上
16、compiler-rt 注释掉 # move sanitizer libs to better place 下面的 mv 命令,mips64el 没有生成这个目录。
17、R 需要增加 mips 的编译参数,默认导致增加 -m32 ,而且自带的居然有 mips64 识别(不是 mips64el),但是却是不支持的 -m64 。
18、spice 增加 mips 的支持即可。
19、gdb 需要和 arm 在一起设置 have_inproctrace 为 0 。因为不支持。
20、gjs 需要补丁 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=893485  ,不过估计新版本的时候不需要了。
21、mariadb-connector-c 需要修改 cmake/install.cmake ,71 行有架构识别的内容,没有把 mips64 也识别成 64 位导致 plugin 安装错了地方。
22、cargo 增加 mips64el 架构,并且因为 rust 的 n64 其实是 -gnuabi64 而不是 -gnu ,还要做区别对待,有spec 里的 lua 脚本干这个。
23、rust 同上。
24、python-pillow 需要增加 mips64 的目录。参考 https://src.fedoraproject.org/cgit/rpms/python-pillow.git/tree/python-pillow_libdirs.patch
25、openblas-srpm-macros 他的 macros 文件增加 %{mips}
26、openblas 有架构识别的问题,龙芯可以自动识别,但是问题是 -march 会冲突,现在系统默认优化 mips64r2 ,但是自动识别后会增加优化为 mips64 。不如设置 TARGET="TARGET=SICORTEX DYNAMIC_ARCH=0" 。似乎 SICORTEX 是一个更通用的设置。至少 debian 就是这么选择的。其后还有一个 ifarch 的地方,使用 TARGET=SICORTEX 的话,对应 suffix="_mips" 。剩下的就是 execstack 的问题了,这东西不支持 mips ?有没有补丁?现在只能是单独注释掉了。而且好奇怪,RHEL 7 才检测架构区别注释。但是 fc 就全系支持?
27、graphviz 的 lua 安装有问题。LIBPOSTFIX 没有在 mips64 下面正确被设置为 64 。
28、libipt 加上 mips 的支持,不过,这东西其实是调试 Intel CPU 的东西……反正能编译成功,就留着吧…… 查看全部
不知道提交到 fedora 官方容易不?
1、binutils 需要修改默认 ABI 为 N64 ,debian 有 patch ,不过只能参考,Debian 的 n64 是 -gnueabin64 的 arch 字段末尾才用 N64 做默认。另外打开 mips64el 的 ld.gold 似乎就是增加架构识别而已,debian 有补丁。另外 debian 的 bug 886222 也遇到了。应该会在新版本的 binutils 里面修复,不过感觉会是 2.30 系列的。
2、glibc 里面有个 -O3 的优化,会导致后面生成 locale 数据时段错误,改成 -O2 就行。注:glibc 2.27 没这个问题了。
3、elfutils 需要打补丁增加 mips64el 的支持,不然编译 rpm 包是没办法处理 debuginfo 的。debian 有补丁。
4、redhat-rpm-config 里面的 nodejs 增加 mips64el 的支持设定。
5、qt5-srpm-macros 里面去掉 qt5_qtwebengine_arches 的 mips 支持,现在的 webengine 不支持 mips 。
6、java-1.8.0-openjdk ,增加 mips64el 的 ZERO 支持。debian 有补丁。至于本地优化版,龙芯的那是哪年的版本啊?而且 srpm 也和 fedora 的无法有效合并,不如拆开,想用本地优化的就找龙芯的 rpm 装上就行了。
7、libsrtp 的 SOURCE 里面有 config.h ,需要加上 mips64 的识别为 64 位的内容。
8、libunwind 加上 mips64el 的支持,就是不知道这东西能不能在 mips64el 下面使用?编译通过是没问题。看了下 debian 似乎有 mips64el ,那就是支持了。
9、libvirt 需要去掉 zfs 的依赖。
10、mozjs17 打上 loongnix 的补丁也不行,还要 --disable-methodjit 是为什么。
11、mozjs38 需要修改 configure ,设置 64bit 识别,关闭 ION 的支持。
12、qt5-qtdeclarative 需要禁用 JIT ,debian 有补丁。
13、rdma-core 和 s390 一样不支持 mlx5 相关,搜索 ifnarch 和 s390x 一起略过即可。
14、webkitgtk4 不支持 jit ,需要修改 spec 关掉。
15、gcc 需要加 --with-madd4=no ,原因 http://ask.loongnix.org/?/question/266 ,另外 http://ask.loongnix.org/?/question/295  最好加上
16、compiler-rt 注释掉 # move sanitizer libs to better place 下面的 mv 命令,mips64el 没有生成这个目录。
17、R 需要增加 mips 的编译参数,默认导致增加 -m32 ,而且自带的居然有 mips64 识别(不是 mips64el),但是却是不支持的 -m64 。
18、spice 增加 mips 的支持即可。
19、gdb 需要和 arm 在一起设置 have_inproctrace 为 0 。因为不支持。
20、gjs 需要补丁 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=893485  ,不过估计新版本的时候不需要了。
21、mariadb-connector-c 需要修改 cmake/install.cmake ,71 行有架构识别的内容,没有把 mips64 也识别成 64 位导致 plugin 安装错了地方。
22、cargo 增加 mips64el 架构,并且因为 rust 的 n64 其实是 -gnuabi64 而不是 -gnu ,还要做区别对待,有spec 里的 lua 脚本干这个。
23、rust 同上。
24、python-pillow 需要增加 mips64 的目录。参考 https://src.fedoraproject.org/cgit/rpms/python-pillow.git/tree/python-pillow_libdirs.patch
25、openblas-srpm-macros 他的 macros 文件增加 %{mips}
26、openblas 有架构识别的问题,龙芯可以自动识别,但是问题是 -march 会冲突,现在系统默认优化 mips64r2 ,但是自动识别后会增加优化为 mips64 。不如设置 TARGET="TARGET=SICORTEX DYNAMIC_ARCH=0" 。似乎 SICORTEX 是一个更通用的设置。至少 debian 就是这么选择的。其后还有一个 ifarch 的地方,使用 TARGET=SICORTEX 的话,对应 suffix="_mips" 。剩下的就是 execstack 的问题了,这东西不支持 mips ?有没有补丁?现在只能是单独注释掉了。而且好奇怪,RHEL 7 才检测架构区别注释。但是 fc 就全系支持?
27、graphviz 的 lua 安装有问题。LIBPOSTFIX 没有在 mips64 下面正确被设置为 64 。
28、libipt 加上 mips 的支持,不过,这东西其实是调试 Intel CPU 的东西……反正能编译成功,就留着吧……

Fedora21/Loongnix 工具链升级

heiher 发表了文章 • 29 个评论 • 407 次浏览 • 2017-12-29 10:18 • 来自相关话题

最近将龙芯中科、航天龙梦等单位的工具链补丁向社区较新版本(最新发现不稳定,已经计划修复)做了移植,并在龙梦版 Fedora21 上打包,同源的 Loongnix 应该也是可用的,现向社区用户开放同步测试。

版本信息:
binutils 2.29.1
gcc 5.5.0
gdb 8.0.1
glibc 2.26

软件源:
os: http://mirror.lemote.com/fedora/toolchain/os/

debug: http://mirror.lemote.com/fedora/toolchain/debug/

source: http://mirror.lemote.com/fedora/toolchain/source/

源代码:
binutils: https://github.com/loongson-co ... 9.1-2

gcc: https://github.com/loongson-co ... 5.0-1

gdb: https://github.com/loongson-co ... 0.1-1 查看全部
最近将龙芯中科、航天龙梦等单位的工具链补丁向社区较新版本(最新发现不稳定,已经计划修复)做了移植,并在龙梦版 Fedora21 上打包,同源的 Loongnix 应该也是可用的,现向社区用户开放同步测试。

版本信息:
binutils 2.29.1
gcc 5.5.0
gdb 8.0.1
glibc 2.26

软件源:
os: http://mirror.lemote.com/fedora/toolchain/os/

debug: http://mirror.lemote.com/fedora/toolchain/debug/

source: http://mirror.lemote.com/fedora/toolchain/source/

源代码:
binutils: https://github.com/loongson-co ... 9.1-2

gcc: https://github.com/loongson-co ... 5.0-1

gdb: https://github.com/loongson-co ... 0.1-1

[分享]龙芯3交叉编译工具链

heiher 发表了文章 • 6 个评论 • 257 次浏览 • 2017-12-15 14:49 • 来自相关话题

我用来交叉编译 mozjs 和 linux kernel 等软件的龙芯3交叉工具链,预编译的运行在 x64 平台。

v7 版基于 binutils 2.26 、 gcc 5.3.0 和 glibc 2.22,只集成了 GNU Hash 补丁。一直在用,暂未发现明显问题。
v8 版基于 binutils 2.26.1 、gcc 5.5.0 和 glibc 2.22,集成了 GNU Hash、龙芯中科的 128-bit 访存优化、龙芯乘除、取模及 fused-madd 等等的各种补丁。
v9 版升级 binutils 2.29.1
v10 版升级 gdb 8.0.1,libstdc++ abi 配置为 gcc4 兼容模式。
v11 版升级 glibc 2.26,同步最新龙芯补丁。

资源位置:http://mirror.lemote.com/loongson3-toolchain/ 查看全部
我用来交叉编译 mozjs 和 linux kernel 等软件的龙芯3交叉工具链,预编译的运行在 x64 平台。

v7 版基于 binutils 2.26 、 gcc 5.3.0 和 glibc 2.22,只集成了 GNU Hash 补丁。一直在用,暂未发现明显问题。
v8 版基于 binutils 2.26.1 、gcc 5.5.0 和 glibc 2.22,集成了 GNU Hash、龙芯中科的 128-bit 访存优化、龙芯乘除、取模及 fused-madd 等等的各种补丁。
v9 版升级 binutils 2.29.1
v10 版升级 gdb 8.0.1,libstdc++ abi 配置为 gcc4 兼容模式。
v11 版升级 glibc 2.26,同步最新龙芯补丁。

资源位置:http://mirror.lemote.com/loongson3-toolchain/

汇编文件中的编译制导符

xuchenghua 发表了文章 • 1 个评论 • 193 次浏览 • 2017-06-14 18:05 • 来自相关话题

1、.set mipsXX
示例代码:
29 asm(".set mips64r2 \r\n"
30 "movn %0,%2,%1 \r\n"
31 ".set mips0 \r\n"
32 :"+&r"(tmp2):"r"(tmp1),"r"(tmp3):);
 
示例中的代码“.set mips64r2”标识以下汇编指令的指令集是mips64r2指令集,类是的还有“.set arch=loongson3a”,标识以下指令集是龙芯3a扩展指令。
注意:在用“.set mipsXXX”改变指令类型后,一定用“.set mips0”取消设定,否则会有隐患。
 

 
  查看全部
1、.set mipsXX
示例代码:
 29         asm(".set mips64r2 \r\n"
30 "movn %0,%2,%1 \r\n"
31 ".set mips0 \r\n"
32 :"+&r"(tmp2):"r"(tmp1),"r"(tmp3):);

 
示例中的代码“.set mips64r2”标识以下汇编指令的指令集是mips64r2指令集,类是的还有“.set arch=loongson3a”,标识以下指令集是龙芯3a扩展指令。
注意:在用“.set mipsXXX”改变指令类型后,一定用“.set mips0”取消设定,否则会有隐患。