Chinaunix首页 | 论坛 | 博客
  • 博客访问: 388960
  • 博文数量: 83
  • 博客积分: 1650
  • 博客等级: 上尉
  • 技术积分: 861
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-18 18:22
文章分类
文章存档

2021年(1)

2016年(1)

2015年(2)

2014年(3)

2013年(12)

2012年(16)

2011年(18)

2010年(30)

分类:

2012-06-27 16:56:36

原文地址:制作交叉工具链(龙芯) 作者:mxcai2005

系统环境:ubuntu10.04 + gcc-4.3.3

所需软件:
Binutils 2.20: 
GCC Core 4.4.2:  

Binutils 2.20 Loongson2f 补丁 binutils-2.20-loongson2f.zip   

设置环境变量和新建目录

$ mkdir -p /opt/loongson-cross-tools/usr/{bin, lib, share}

$ echo "PATH=$PATH:/opt/loongson-cross-tools/usr/bin" >> ~/.bashrc

编译 Binutils: 

$ tar xjf binutils-2.20.tar.bz2

$ cd binutils-2.20

$ patch -Np1 -i ../binutils-2.20-loongson2f.patch   //这步没做,没有找到patch

$ cd .. && mkdir binutils-build && cd binutils-build

$ ../binutils-2.20/configure --prefix=/opt/loongson-cross-tools/usr --target=mipsel-pc-linux-gnu --with-sysroot=/opt/loongson-cross-tools --enable-64-bit-bfd --disable-nls --enable-shared

$ make configure-host

$ make

$ make install

出错信息:

        rm -rf $backupdir; exit $rc

WARNING: `makeinfo' is missing on your system.  You should only need it if

         you modified a `.texi' or `.texinfo' file, or any other file

         indirectly affecting the aspect of the manual.  The spurious

         call might also be the consequence of using a buggy `make' (AIX,

         DU, IRIX).  You might want to install the `Texinfo' package or

         the `GNU make' package.  Grab either from any GNU archive site.

make[4]: *** [as.info] Error 1

make[4]: Leaving directory `/home/loongson/loongson-cross-tool/binutils-build/gas/doc'

make[3]: *** [install-am] Error 2

make[3]: Leaving directory `/home/loongson/loongson-cross-tool/binutils-build/gas/doc'

Making install in po

make[3]: Entering directory `/home/loongson/loongson-cross-tool/binutils-build/gas/po'

make[3]: Nothing to be done for `install'.

make[3]: Leaving directory `/home/loongson/loongson-cross-tool/binutils-build/gas/po'

make[3]: Entering directory `/home/loongson/loongson-cross-tool/binutils-build/gas'

make[4]: Entering directory `/home/loongson/loongson-cross-tool/binutils-build/gas'

/bin/bash ../../binutils-2.20/gas/../mkinstalldirs /opt/loongson-cross-tools/usr/bin

 /bin/bash ./libtool  --mode=install /usr/bin/install -c as-new /opt/loongson-cross-tools/usr/bin/mipsel-pc-linux-gnu-as

libtool: install: /usr/bin/install -c .libs/as-new /opt/loongson-cross-tools/usr/bin/mipsel-pc-linux-gnu-as

/bin/bash ../../binutils-2.20/gas/../mkinstalldirs /opt/loongson-cross-tools/usr/mipsel-pc-linux-gnu/bin

n=`echo as | sed 's&^&mipsel-pc-linux-gnu-&'`; \

        if [ "/opt/loongson-cross-tools/usr/bin/$n" != "/opt/loongson-cross-tools/usr/mipsel-pc-linux-gnu/bin/as" ]; then \

          rm -f /opt/loongson-cross-tools/usr/mipsel-pc-linux-gnu/bin/as; \

          ln /opt/loongson-cross-tools/usr/bin/$n /opt/loongson-cross-tools/usr/mipsel-pc-linux-gnu/bin/as >/dev/null 2>/dev/null \

            || /bin/bash ./libtool --mode=install /usr/bin/install -c as-new /opt/loongson-cross-tools/usr/mipsel-pc-linux-gnu/bin/as; \

        else \

          true ; \

        fi

make[4]: Nothing to be done for `install-data-am'.

make[4]: Leaving directory `/home/loongson/loongson-cross-tool/binutils-build/gas'

make[3]: Leaving directory `/home/loongson/loongson-cross-tool/binutils-build/gas'

make[2]: *** [install-recursive] Error 1

make[2]: Leaving directory `/home/loongson/loongson-cross-tool/binutils-build/gas'

make[1]: *** [install-gas] Error 2

make[1]: Leaving directory `/home/loongson/loongson-cross-tool/binutils-build'

make: *** [install] Error 2

参考解决办法:

原因是本机没有安装texinfo,安装之后版本也不够高,顾修改configure文件

$ sudo apt-get install texinfo

$ makeinfo --version

makeinfo (GNU texinfo) 4.13

$ vim ../binuitl-2.20/configure

改成:

$ make install

编译 GCC: 

$ tar xjf gcc-core-4.4.2.tar.bz2

$ mkdir gcc-build  && cd gcc-build

$ ../gcc-4.4.2/configure --prefix=/opt/loongson-cross-tools/usr --target=mipsel-pc-linux-gnu --with-sysroot=/opt/loongson-cross-tools --disable-multilib --with-newlib --disable-nls --disable-shared --disable-threads --enable-languages=c --with-abi=64

出错信息:

configure: error: Building GCC requires GMP 4.1+ and MPFR 2.3.2+.

Try the --with-gmp and/or --with-mpfr options to specify their locations.

Copies of these libraries' source code can be found at their respective

hosting sites as well as at ftp://gcc.gnu.org/pub/gcc/infrastructure/.

See also 

If you obtained GMP and/or MPFR from a vendor distribution package, make

sure that you have installed both the libraries and the header files.

They may be located in separate packages.

参考解决办法:

下载

下载

$ tar xf tar xf gmp-5.0.1.tar.bz2

$ tar xf mpfr-3.0.0.tar.bz2

$ mv gmp-5.0.1/ gmp 

$ mv mpfr-3.0.0/ mpfr 

$ mv gmp/ mpfr/ gcc-4.4.2/

$ cd gcc-build

$ ../gcc-4.4.2/configure --prefix=/opt/loongson-cross-tools/usr --target=mipsel-pc-linux-gnu --with-sysroot=/opt/loongson-cross-tools --disable-multilib --with-newlib --disable-nls --disable-shared --disable-threads --enable-languages=c --with-abi=64

$ make all-gcc

出错信息:

checking whether stripping libraries is possible... yes

checking if libtool supports shared libraries... yes

checking whether to build shared libraries... no

checking whether to build static libraries... yes

checking whether gcc __attribute__ ((mode (XX))) works... yes

checking for recent GMP... yes

checking for gmp internal files... configure: error: header files gmp-impl.h and longlong.h not found

make: *** [configure-mpfr] Error 1

参考解决办法:

mpfr3.0mpfr2.4.2

因为mpfr3.0改了默认路径(网上如此说)

$ tar xf mpfr-2.4.2.tar.bz2

$ mv mpfr-2.4.2/ mpfr 

$ rm gcc-4.4.2/mpfr

$ mv mpfr gcc-4.4.2

$ make all-gcc

$ make all-target-libgcc

$ make install-gcc

$ make install-target-libgcc

参考资料:

http://blog.sina.com.cn/s/blog_4e9da0010100dhvk.html

阅读(1199) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~