龙芯编译器指针分析移植 小记:

 

 

1 环境配置

 

移植之前先得有代码,所以先从龙芯组的SVN上CO了一份代码,在我们组的X86_64机器上开始倒腾。

在$TOOLROOT下直接make,不过,问了一下需要在osprey下编译,接着make,仍然不过

提示信息:

C++    /home/cmchen/OPEN_64/lgcc/osprey/targia32_loongson/libinstr2/../../instrumentation/libinstr2/dump.cxx

sh: mips64el-st-linux-gnu-g++: command not found 

缺少了mips的tool,从龙芯组拷来了STLSR22的binary,在.bashrc里添加了新的路径。这里需要注意的是由于mips64el-st-linux-gnu-g++等可执行文件和cc1,ld,as等在同一个文件夹,如果想用本地的gcc的话,则需要他们挪到其他文件夹下。

接下来顺利make, make install。

 

实际测试,运行了一个小程序,出错,提示信息:

/home/cmchen/OPEN_64/lgcc/loongson-linux/lib/as: /lib/libc.so.6: version `GLIBC_2.8' not found (required by /home/cmchen/OPEN_64/lgcc/loongson-linux/lib/as)

/home/cmchen/OPEN_64/lgcc/loongson-linux/lib/as: /lib/libc.so.6: version `GLIBC_2.7' not found (required by /home/cmchen/OPEN_64/lgcc/loongson-linux/lib/as)

由于open64自带的as支持的是x86的指令,与MIPS后端不一致,因此用STLSR22中的mips64el-st-linux-gnu-as替换掉loongson-linux/lib中的as,可解决此问题。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章