qspy 发表于 2008-7-4 10:26:53

谁用过crosstool-0.43.tar.gz这个包吗?

http://kegel.com/crosstool/

昨天找到这个时,以为发现了救星。按照howto一步一步做
mkdir /opt/crosstool
chown $USER /opt/crosstool
sh demo-arm.h
都完成,花了一个晚上的时间
早上醒来时很是高兴,可是当我要用这个编译内核映像文件时,敲入make,我就傻眼了

错误信息:
$ make
make: /usr/local/arm/3.4.1/bin/arm-linux-gcc:命令未找到
CHK   include/linux/version.h
make: “include/asm-arm/mach-types.h”是最新的。
CC      arch/arm/kernel/asm-offsets.s
/bin/sh: /usr/local/arm/3.4.1/bin/arm-linux-gcc: 没有那个文件或目录
make: *** 错误 1
make: *** 错误 2

后来我想起来了,我按照howto安装时,bin是装到/opt/crosstool/目录下,可是那里头的执行文件的名称也都与要求的不匹配,比如要求为arm-linux-gcc实际为arm-unknown-linux-gnu-gcc,详细请看

$ ls /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/bin/
arm-unknown-linux-gnu-addr2linearm-unknown-linux-gnu-cpp      arm-unknown-linux-gnu-gcov   arm-unknown-linux-gnu-objdumparm-unknown-linux-gnu-strip
arm-unknown-linux-gnu-ar         arm-unknown-linux-gnu-g++      arm-unknown-linux-gnu-gprof    arm-unknown-linux-gnu-ranlib   fix-embedded-paths
arm-unknown-linux-gnu-as         arm-unknown-linux-gnu-gcc      arm-unknown-linux-gnu-ld       arm-unknown-linux-gnu-readelf
arm-unknown-linux-gnu-c++      arm-unknown-linux-gnu-gcc-4.1.0arm-unknown-linux-gnu-nm       arm-unknown-linux-gnu-size
arm-unknown-linux-gnu-c++filt    arm-unknown-linux-gnu-gccbug   arm-unknown-linux-gnu-objcopyarm-unknown-linux-gnu-strings

谁能帮忙解答一下,这个时候怎么样往下走?
谢谢

jiangtao9999 发表于 2008-7-4 12:53:25

http://kegel.com/crosstool/crosstool-0.43/doc/crosstool-howto.html

楼主看了没?

qspy 发表于 2008-7-4 13:53:52

看了,就在下面这一步卡壳了。我不知道怎样才能把那么多的-unknown-去掉,或者怎么做好链接,是不是要一个一个地做?

When it finishes, you can run the new compiler as /opt/crosstool/gcc-3.4.0-glibc-2.3.2/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-gcc. (You might want to put /opt/crosstool/gcc-3.4.0-glibc-2.3.2/i686-unknown-linux-gnu/bin on your PATH; then you can run the compiler as i686-unknown-linux-gnu-gcc.)

qspy 发表于 2008-7-4 14:02:50

我用了一个笨方法,一个一个地链接,但是……

cd /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/bin/
ln -T arm-unknown-linux-gnu-gcc /usr/local/arm/3.4.1/bin/arm-linux-gcc
ln arm-unknown-linux-gnu-objdump /usr/local/arm/3.4.1/bin/arm-linux-objdump -T
ln arm-unknown-linux-gnu-ld /usr/local/arm/3.4.1/bin/arm-linux-ld -T

此时make出现错误:

arch/arm/mm/alignment.c: In function 'proc_alignment_write':
arch/arm/mm/alignment.c:119: error: read-only variable '__r2' used as 'asm' output
arch/arm/mm/alignment.c:119: error: read-only variable '__r2' used as 'asm' output
arch/arm/mm/alignment.c:119: error: read-only variable '__r2' used as 'asm' output
arch/arm/mm/alignment.c:119: error: read-only variable '__r2' used as 'asm' output
make: *** 错误 1
make: *** 错误 2

错误指向下面函数中的get_user一行
static int proc_alignment_write(struct file *file, const char __user *buffer,
                              unsigned long count, void *data)
{
      char mode;

      if (count > 0) {
                if (get_user(mode, buffer))
                        return -EFAULT;
                if (mode >= '0' && mode <= '5')
                        ai_usermode = mode - '0';
      }
      return count;
}

我看不出来get_user中有什么错误……

gaiwang0142 发表于 2008-7-29 14:39:09

在你使用的sh调用的那个.DAT文件中可以更改arm-unknown-linux-gnu名字
页: [1]
查看完整版本: 谁用过crosstool-0.43.tar.gz这个包吗?