谁用过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
谁能帮忙解答一下,这个时候怎么样往下走?
谢谢 http://kegel.com/crosstool/crosstool-0.43/doc/crosstool-howto.html
楼主看了没? 看了,就在下面这一步卡壳了。我不知道怎样才能把那么多的-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.) 我用了一个笨方法,一个一个地链接,但是……
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中有什么错误…… 在你使用的sh调用的那个.DAT文件中可以更改arm-unknown-linux-gnu名字
页:
[1]